@osdk/api 2.4.0-rc.19 → 2.5.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +4 -10
  2. package/build/browser/Definitions.js.map +1 -1
  3. package/build/browser/OsdkObjectFrom.js.map +1 -1
  4. package/build/browser/actions/Actions.js.map +1 -1
  5. package/build/browser/aggregate/AggregationResultsWithGroups.js.map +1 -1
  6. package/build/browser/derivedProperties/DerivedProperty.js.map +1 -1
  7. package/build/browser/index.js +1 -0
  8. package/build/browser/index.js.map +1 -1
  9. package/build/browser/mapping/DataValueMapping.js.map +1 -1
  10. package/build/browser/object/FetchPageArgs.js.map +1 -1
  11. package/build/browser/object/FetchPageResult.js.map +1 -1
  12. package/build/browser/object/Media.js.map +1 -1
  13. package/build/browser/objectSet/ObjectSet.js.map +1 -1
  14. package/build/browser/objectSet/ObjectSet.test.js +73 -0
  15. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  16. package/build/cjs/{ObjectSet-BdIHDSBH.d.cts → ObjectSet-D7TbKiih.d.cts} +50 -26
  17. package/build/cjs/index.cjs +4 -0
  18. package/build/cjs/index.cjs.map +1 -1
  19. package/build/cjs/index.d.cts +13 -4
  20. package/build/cjs/public/unstable.d.cts +2 -2
  21. package/build/esm/Definitions.js.map +1 -1
  22. package/build/esm/OsdkObjectFrom.js.map +1 -1
  23. package/build/esm/actions/Actions.js.map +1 -1
  24. package/build/esm/aggregate/AggregationResultsWithGroups.js.map +1 -1
  25. package/build/esm/derivedProperties/DerivedProperty.js.map +1 -1
  26. package/build/esm/index.js +1 -0
  27. package/build/esm/index.js.map +1 -1
  28. package/build/esm/mapping/DataValueMapping.js.map +1 -1
  29. package/build/esm/object/FetchPageArgs.js.map +1 -1
  30. package/build/esm/object/FetchPageResult.js.map +1 -1
  31. package/build/esm/object/Media.js.map +1 -1
  32. package/build/esm/objectSet/ObjectSet.js.map +1 -1
  33. package/build/esm/objectSet/ObjectSet.test.js +73 -0
  34. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  35. package/build/types/Definitions.d.ts +4 -0
  36. package/build/types/Definitions.d.ts.map +1 -1
  37. package/build/types/OsdkObjectFrom.d.ts +7 -1
  38. package/build/types/OsdkObjectFrom.d.ts.map +1 -1
  39. package/build/types/actions/Actions.d.ts +2 -0
  40. package/build/types/actions/Actions.d.ts.map +1 -1
  41. package/build/types/aggregate/AggregationResultsWithGroups.d.ts +2 -2
  42. package/build/types/aggregate/AggregationResultsWithGroups.d.ts.map +1 -1
  43. package/build/types/derivedProperties/DerivedProperty.d.ts +10 -1
  44. package/build/types/derivedProperties/DerivedProperty.d.ts.map +1 -1
  45. package/build/types/index.d.ts +4 -3
  46. package/build/types/index.d.ts.map +1 -1
  47. package/build/types/mapping/DataValueMapping.d.ts +2 -2
  48. package/build/types/mapping/DataValueMapping.d.ts.map +1 -1
  49. package/build/types/object/FetchPageArgs.d.ts +21 -12
  50. package/build/types/object/FetchPageArgs.d.ts.map +1 -1
  51. package/build/types/object/FetchPageResult.d.ts +8 -6
  52. package/build/types/object/FetchPageResult.d.ts.map +1 -1
  53. package/build/types/object/Media.d.ts +7 -0
  54. package/build/types/object/Media.d.ts.map +1 -1
  55. package/build/types/objectSet/ObjectSet.d.ts +26 -18
  56. package/build/types/objectSet/ObjectSet.d.ts.map +1 -1
  57. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSet.test.js","names":["describe","expectTypeOf","it","test","vi","createMockObjectSet","fauxObject","fauxResults","fauxObjectSet","$link","peeps","$objectSetInternals","def","data","where","fn","withProperties","fetchPage","Promise","resolve","fetchOne","asyncIter","aggregate","pivotTo","nearestNeighbors","toEqualTypeOf","fetchPageResult","class","$includeAllBaseObjectProperties","asyncIterResult","$select","x","$includeRid","subselect","withA","base","selectProperty","withFamily","withMom","withParents","todo","withAggregations","whereResults","aggTestObjectSet","result","maxHasSameType","minHasSameType","approximateDistinctNumberNoUndefined","exactDistinctNumberNoUndefined","countNumberNoUndefined","sumNumber","avgNumber","branded","selectedInteger","add","subtract","multiply","divide","abs","negate","max","min","extractPart","maxAggregation","collectList","plus","intAndLong","intAndDouble","longAndDouble","longAndLong","intAndInt","intLongDoubleChain","shortAndIntReturnsInt","shortAndFloatReturnsDouble","nested","selectedDatetime","nearestNeighborsObjectSet","employees","vectorQuery","Array","from","length"],"sources":["ObjectSet.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { describe, expectTypeOf, it, test, vi } from \"vitest\";\n\nimport type {\n DerivedProperty,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk,\n PageResult,\n PropertyKeys,\n} from \"../index.js\";\nimport type { DerivedObjectOrInterfaceDefinition } from \"../ontology/ObjectOrInterface.js\";\nimport type { EmployeeApiTest } from \"../test/EmployeeApiTest.js\";\n\nexport function createMockObjectSet<\n Q extends ObjectOrInterfaceDefinition,\n>(): $ObjectSet<Q, never> {\n let fauxObject: Osdk.Instance<Q>,\n fauxResults: any,\n fauxObjectSet: $ObjectSet<Q>;\n\n // eslint-disable-next-line prefer-const\n fauxObject = {\n $link: {\n peeps: {\n $objectSetInternals: {\n def: {},\n },\n },\n },\n } as Osdk.Instance<Q>;\n\n fauxResults = {\n data: [fauxObject],\n };\n\n fauxObjectSet = {\n where: vi.fn(() => {\n return fauxObjectSet;\n }),\n withProperties: vi.fn(() => {\n return fauxObjectSet;\n }),\n fetchPage: vi.fn(() => Promise.resolve(fauxResults)),\n fetchOne: vi.fn(() => fauxObject),\n asyncIter: vi.fn(() => {\n return {};\n }),\n aggregate: vi.fn(() => {\n return {};\n }),\n pivotTo: vi.fn(() => {\n return fauxObjectSet;\n }),\n nearestNeighbors: vi.fn(() => {\n return fauxObjectSet;\n }),\n } as any as $ObjectSet<Q>;\n\n return fauxObjectSet;\n}\n\ndescribe(\"ObjectSet\", () => {\n const fauxObjectSet = createMockObjectSet<EmployeeApiTest>();\n\n describe(\"normal\", () => {\n test(\"select none\", async () => {\n const result = await fauxObjectSet.fetchPage();\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>\n >();\n\n // Do it again but be explicit about the params to be sure\n // we don't break them\n const result2 = await fauxObjectSet.fetchPage<\n PropertyKeys<EmployeeApiTest>,\n false,\n never,\n NullabilityAdherence.Default,\n false\n >();\n });\n\n test(\"select one\", async () => {\n const result = await fauxObjectSet.fetchPage({ \"$select\": [\"fullName\"] });\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"fullName\">\n >();\n });\n });\n\n describe(\"includeAllBaseObjectProperties\", () => {\n it(\"has the right types if you pass true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(fetchPageResult).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(asyncIterResult).toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n });\n\n it(\"does not let you pass partial $select and true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n });\n\n it(\"does let you pass full select options and false\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n const asyncIterResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n });\n });\n\n test(\"includeRid\", async () => {\n const x = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeRid: true });\n\n expectTypeOf(x).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$rid\">\n >\n >();\n });\n\n test(\"pivotTo\", async () => {\n const noArgs = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({});\n const subselect = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({\n $select: [\"employeeId\", \"class\"],\n });\n\n expectTypeOf(subselect).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, never, \"employeeId\" | \"class\">\n >\n >();\n });\n\n describe(\".withProperties\", () => {\n test(\"single property\", async () => {\n const withA = fauxObjectSet.withProperties({\n \"a\": (base) => {\n return base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\");\n },\n });\n\n const isWithAAssignable: $ObjectSet<EmployeeApiTest, {}> = withA;\n\n expectTypeOf(withA).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n a: \"integer\";\n }>\n >();\n\n const withAResults = await withA.fetchPage();\n\n expectTypeOf<typeof withAResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n a: \"integer\";\n }>\n >();\n\n expectTypeOf<typeof withAResults[\"data\"][0][\"a\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"can be sub-selected\", () => {\n const objectWithUndefinedRdp = fauxObjectSet.withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(3, {\n $select: [\"derivedPropertyName\"],\n });\n });\n\n test(\"multiple properties\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n expectTypeOf(withFamily).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"dad\"]>()\n .toEqualTypeOf<string | undefined>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"sister\"]>()\n .toEqualTypeOf<string[] | undefined>();\n });\n\n describe(\"called in succession\", () => {\n test(\"independently\", () => {\n const withMom = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n const withParents = withMom.withProperties({\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n });\n\n expectTypeOf(withParents).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n }>\n >();\n });\n\n test.todo(\"with calculated properties\");\n });\n\n describe(\"nullability\", () => {\n it(\"count, exactDistinct, and approximateDistinct aren't nullable\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\"),\n \"sis\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:approximateDistinct\"),\n });\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"integer\";\n sis: \"integer\";\n }>\n >();\n });\n\n it(\n \"collectSet, collectList, selectProperty, and numeric aggregations are nullable\",\n async () => {\n const withAggregations = fauxObjectSet.withProperties({\n \"collectSet\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectSet\"),\n \"select\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"collectList\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"min\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:max\"),\n \"max\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:min\"),\n \"sum\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avg\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n \"approximatePercentile\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"employeeId:approximatePercentile\",\n ),\n });\n\n const withAggregationResults = await withAggregations.fetchPage();\n\n expectTypeOf<typeof withAggregationResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n collectSet: \"string\"[] | undefined;\n select: \"string\" | undefined;\n collectList: \"string\"[] | undefined;\n min: \"double\" | undefined;\n max: \"double\" | undefined;\n sum: \"double\" | undefined;\n avg: \"double\" | undefined;\n approximatePercentile: \"double\" | undefined;\n }\n >\n >();\n },\n );\n });\n\n describe(\"fetch functions return correct Osdk.Instance\", () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n\n it(\"works with .where\", async () => {\n const where = withFamily.where({ \"mom\": 1 });\n const whereResults = await where.fetchPage();\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredPages: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = whereResults;\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredInstance: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = whereResults.data[0];\n\n const q = whereResults.data[0].$link.peeps.$objectSetInternals.def;\n\n // same as above but with expectTypeOf\n expectTypeOf<typeof where>().toEqualTypeOf<typeof withFamily>();\n expectTypeOf<typeof whereResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n\n // Checks that when you directly assign, it infers correctly.\n // Sometimes an explicit assignment can affect how typescript infers\n // types.\n const shouldBeAssignablePage: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = await where.fetchPage();\n\n const _shouldBeAssignableSingle: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = await withFamily.fetchOne(1);\n await withFamily.fetchOne(1);\n });\n\n it(\"works with .async\", () => {\n const asyncIter = withFamily.asyncIter();\n expectTypeOf<typeof asyncIter>().toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >\n >();\n });\n\n it(\"Works with no select\", async () => {\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n });\n\n it(\"Works with selecting all RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\", \"dad\", \"sister\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"Works with selecting some RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n }>\n >();\n });\n\n it(\"Works with selecting all non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\n \"employeeId\",\n \"fullName\",\n \"class\",\n \"attachment\",\n \"geopoint\",\n \"timeseries\",\n \"mediaReference\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"hourlyRate\",\n \"dateOfJoining\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n >();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"class\"]>()\n .toEqualTypeOf<\n string | undefined\n >();\n });\n\n it(\"Works with selecting some non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"class\", {}>\n >();\n });\n\n it(\"Works with selecting a mix\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\", \"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n \"class\",\n { mom: \"integer\" }\n >\n >();\n });\n });\n\n it(\"allows extracting the type\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n type ObjectSetType = typeof objectSet;\n\n expectTypeOf<ObjectSetType>().toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n }>\n >();\n\n const objectSet2 = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"Defining the Type\", () => {\n type ObjectSetType = $ObjectSet<\n EmployeeApiTest,\n {\n mom: \"integer\";\n }\n >;\n\n fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"has correct aggregation keys\", () => {\n fauxObjectSet.withProperties({\n \"integer\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"integerNumericAgg\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"string\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"stringDoesNotHaveNumericAgg\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"class:sum\"),\n \"isActive\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"isActive:approximateDistinct\"),\n \"attachment\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"attachment:collectList\"),\n \"geopoint\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"geopoint:collectList\"),\n \"numericTimeseries\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"timeseries:sum\"),\n \"numericTimeseriesExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"timeseries:exactDistinct\"),\n \"mediaReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"mediaReference:avg\"),\n \"mediaReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"mediaReference:exactDistinct\"),\n \"geotimeSeriesReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"geotimeSeriesReference:sum\"),\n \"geotimeSeriesReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"geotimeSeriesReference:exactDistinct\",\n ),\n \"lastUpdated\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:max\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:min\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectSet\");\n },\n \"dateOfJoining\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectSet\");\n },\n });\n });\n\n it(\"has correct aggregation return types\", async () => {\n const aggTestObjectSet = fauxObjectSet.withProperties({\n \"maxHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\"),\n \"minHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\"),\n \"approximateDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:approximateDistinct\"),\n \"exactDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:exactDistinct\"),\n \"countNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"sumNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avgNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n }).fetchPage();\n\n const result = (await aggTestObjectSet).data[0];\n expectTypeOf((await aggTestObjectSet).data[0]).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n maxHasSameType: \"datetime\" | undefined;\n minHasSameType: \"datetime\" | undefined;\n avgNumber: \"double\" | undefined;\n approximateDistinctNumberNoUndefined: \"integer\";\n exactDistinctNumberNoUndefined: \"integer\";\n countNumberNoUndefined: \"integer\";\n sumNumber: \"double\" | undefined;\n }>\n >();\n\n expectTypeOf(result.maxHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.minHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.approximateDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.exactDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.countNumberNoUndefined).toEqualTypeOf<number>();\n expectTypeOf(result.sumNumber).toEqualTypeOf<number | undefined>();\n expectTypeOf(result.avgNumber).toEqualTypeOf<number | undefined>();\n });\n\n it(\"Merged object type is equivalent to original\", () => {\n const a = {} as EmployeeApiTest;\n let b = {} as DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >;\n\n b = a; // should be assignable. testing explicitly due to break in 2.2 release.\n\n expectTypeOf<\n EmployeeApiTest\n >().branded.toEqualTypeOf<\n DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >\n >();\n });\n });\n describe(\"aggregate\", () => {\n it(\"has correct aggregation keys\", () => {\n void fauxObjectSet.aggregate({\n \"$select\": {\n \"lastUpdated:max\": \"asc\",\n \"lastUpdated:min\": \"desc\",\n \"lastUpdated:approximateDistinct\": \"asc\",\n \"lastUpdated:exactDistinct\": \"desc\",\n \"dateOfJoining:max\": \"desc\",\n \"dateOfJoining:min\": \"asc\",\n \"dateOfJoining:approximateDistinct\": \"asc\",\n \"dateOfJoining:exactDistinct\": \"desc\",\n },\n });\n });\n });\n describe(\"expressions\", () => {\n \"Test all property types\";\n describe(\"numeric expressions\", () => {\n it(\"provides correct methods off of selected numeric derived property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of selection definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of aggregated properties\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const maxAggregation = base.pivotTo(\"lead\").aggregate(\n \"employeeId:max\",\n );\n\n expectTypeOf(maxAggregation).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n maxAggregation.add(1);\n maxAggregation.subtract(1);\n maxAggregation.multiply(1);\n maxAggregation.divide(1);\n maxAggregation.abs();\n maxAggregation.negate();\n maxAggregation.max(1);\n maxAggregation.min(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:avg\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:min\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >();\n\n const collectList = base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n );\n expectTypeOf(\n collectList,\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n // @ts-expect-error\n collectList.plus(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n return maxAggregation;\n },\n });\n });\n\n it(\"correctly coerces numeric types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const intAndLong = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"yearsOfExperience\"),\n );\n expectTypeOf(longAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndLong = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"yearsOfExperience\"));\n expectTypeOf(longAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndInt = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intAndInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const intLongDoubleChain = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n ).add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n ).add(\n base.selectProperty(\"performanceScore\"),\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intLongDoubleChain).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const shortAndIntReturnsInt = base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(shortAndIntReturnsInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const shortAndFloatReturnsDouble = base.pivotTo(\"lead\")\n .selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"hourlyRate\"));\n expectTypeOf(shortAndFloatReturnsDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return intLongDoubleChain;\n },\n });\n });\n\n it(\"allows adding number literals as a double\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const plus = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(1);\n expectTypeOf(plus).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return plus;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly types property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.selectProperty(\"performanceScore\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly types property keys off the base OT\", () => {});\n });\n describe(\"datetime expressions\", () => {\n it(\"provides correct methods off of datetime selections\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedDatetime = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n );\n\n expectTypeOf(selectedDatetime).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\" | undefined,\n EmployeeApiTest\n >\n >();\n\n selectedDatetime.max(base.selectProperty(\"dateOfJoining\"));\n selectedDatetime.min(base.selectProperty(\"lastUpdated\"));\n\n expectTypeOf(base.pivotTo(\"lead\").selectProperty(\"lastUpdated\"))\n .toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedDatetime;\n },\n });\n });\n\n it(\"correctly coerces datetime types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const max = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .max(base.selectProperty(\"lastUpdated\"));\n expectTypeOf(max).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n const min = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(base.selectProperty(\"dateOfJoining\"));\n expectTypeOf(min).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\",\n EmployeeApiTest\n >\n >();\n\n return max;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.pivotTo(\"lead\").pivotTo(\"lead\").selectProperty(\n \"lastUpdated\",\n ),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly typed property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.selectProperty(\"lastUpdated\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly typed property keys off the base OT\", () => {});\n });\n });\n\n describe(\"nearestNeighbors\", () => {\n it(\"has correct nearest neighbors object set query return type\", () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n expectTypeOf(nearestNeighborsObjectSet).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest>\n >();\n });\n\n it(\"allows text queries\", async () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"allows vector queries\", async () => {\n const vectorQuery = Array.from({ length: 1536 }, () => 0.3);\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n vectorQuery,\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"only supports queries on vector properties\", () => {\n fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n // @ts-expect-error\n \"skillSet\",\n );\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSet.test.js","names":["describe","expectTypeOf","it","test","vi","createMockObjectSet","fauxObject","fauxResults","fauxObjectSet","$link","peeps","$objectSetInternals","def","data","where","fn","withProperties","fetchPage","Promise","resolve","fetchPageWithErrors","value","fetchOne","asyncIter","aggregate","pivotTo","nearestNeighbors","toEqualTypeOf","fetchPageResult","class","$includeAllBaseObjectProperties","asyncIterResult","$select","x","$includeRid","subselect","withA","base","selectProperty","withFamily","withMom","withParents","todo","withAggregations","whereResults","aggTestObjectSet","result","maxHasSameType","minHasSameType","approximateDistinctNumberNoUndefined","exactDistinctNumberNoUndefined","countNumberNoUndefined","sumNumber","avgNumber","branded","selectedInteger","add","subtract","multiply","divide","abs","negate","max","min","extractPart","maxAggregation","collectList","plus","intAndLong","intAndDouble","longAndDouble","longAndLong","intAndInt","intLongDoubleChain","shortAndIntReturnsInt","shortAndFloatReturnsDouble","constant","double","intPlusIntReturnsInt","integer","nested","selectedDatetime","dateAndDateReturnDate","datetime","dateAndTimeReturnTime","timestamp","nearestNeighborsObjectSet","employees","vectorQuery","Array","from","length","$orderBy","nearestNeighborsObjectSetWithErrors","knn","not","toHaveProperty"],"sources":["ObjectSet.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { describe, expectTypeOf, it, test, vi } from \"vitest\";\n\nimport type {\n DerivedProperty,\n NullabilityAdherence,\n ObjectOrInterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk,\n PageResult,\n PropertyKeys,\n} from \"../index.js\";\nimport type { DerivedObjectOrInterfaceDefinition } from \"../ontology/ObjectOrInterface.js\";\nimport type { EmployeeApiTest } from \"../test/EmployeeApiTest.js\";\n\nexport function createMockObjectSet<\n Q extends ObjectOrInterfaceDefinition,\n>(): $ObjectSet<Q, never> {\n let fauxObject: Osdk.Instance<Q>,\n fauxResults: any,\n fauxObjectSet: $ObjectSet<Q>;\n\n // eslint-disable-next-line prefer-const\n fauxObject = {\n $link: {\n peeps: {\n $objectSetInternals: {\n def: {},\n },\n },\n },\n } as Osdk.Instance<Q>;\n\n fauxResults = {\n data: [fauxObject],\n };\n\n fauxObjectSet = {\n where: vi.fn(() => {\n return fauxObjectSet;\n }),\n withProperties: vi.fn(() => {\n return fauxObjectSet;\n }),\n fetchPage: vi.fn(() => Promise.resolve(fauxResults)),\n fetchPageWithErrors: vi.fn(() => Promise.resolve({ value: fauxResults })),\n fetchOne: vi.fn(() => fauxObject),\n asyncIter: vi.fn(() => {\n return {};\n }),\n aggregate: vi.fn(() => {\n return {};\n }),\n pivotTo: vi.fn(() => {\n return fauxObjectSet;\n }),\n nearestNeighbors: vi.fn(() => {\n return fauxObjectSet;\n }),\n } as any as $ObjectSet<Q>;\n\n return fauxObjectSet;\n}\n\ndescribe(\"ObjectSet\", () => {\n const fauxObjectSet = createMockObjectSet<EmployeeApiTest>();\n\n describe(\"normal\", () => {\n test(\"select none\", async () => {\n const result = await fauxObjectSet.fetchPage();\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>\n >();\n\n // Do it again but be explicit about the params to be sure\n // we don't break them\n const result2 = await fauxObjectSet.fetchPage<\n PropertyKeys<EmployeeApiTest>,\n false,\n never,\n NullabilityAdherence.Default,\n false\n >();\n });\n\n test(\"select one\", async () => {\n const result = await fauxObjectSet.fetchPage({ \"$select\": [\"fullName\"] });\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"fullName\">\n >();\n });\n });\n\n describe(\"includeAllBaseObjectProperties\", () => {\n it(\"has the right types if you pass true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(fetchPageResult).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(asyncIterResult).toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n });\n\n it(\"does not let you pass partial $select and true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n });\n\n it(\"does let you pass full select options and false\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n const asyncIterResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n });\n });\n\n test(\"includeRid\", async () => {\n const x = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeRid: true });\n\n expectTypeOf(x).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$rid\">\n >\n >();\n });\n\n test(\"pivotTo\", async () => {\n const noArgs = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({});\n const subselect = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({\n $select: [\"employeeId\", \"class\"],\n });\n\n expectTypeOf(subselect).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, never, \"employeeId\" | \"class\">\n >\n >();\n });\n\n describe(\".withProperties\", () => {\n test(\"single property\", async () => {\n const withA = fauxObjectSet.withProperties({\n \"a\": (base) => {\n return base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\");\n },\n });\n\n const isWithAAssignable: $ObjectSet<EmployeeApiTest, {}> = withA;\n\n expectTypeOf(withA).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n a: \"integer\";\n }>\n >();\n\n const withAResults = await withA.fetchPage();\n\n expectTypeOf<typeof withAResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n a: \"integer\";\n }>\n >();\n\n expectTypeOf<typeof withAResults[\"data\"][0][\"a\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"can be sub-selected\", () => {\n const objectWithUndefinedRdp = fauxObjectSet.withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(3, {\n $select: [\"derivedPropertyName\"],\n });\n });\n\n test(\"multiple properties\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n expectTypeOf(withFamily).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"dad\"]>()\n .toEqualTypeOf<string | undefined>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"sister\"]>()\n .toEqualTypeOf<string[] | undefined>();\n });\n\n describe(\"called in succession\", () => {\n test(\"independently\", () => {\n const withMom = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n const withParents = withMom.withProperties({\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n });\n\n expectTypeOf(withParents).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n }>\n >();\n });\n\n test.todo(\"with calculated properties\");\n });\n\n describe(\"nullability\", () => {\n it(\"count, exactDistinct, and approximateDistinct aren't nullable\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\"),\n \"sis\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:approximateDistinct\"),\n });\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"integer\";\n sis: \"integer\";\n }>\n >();\n });\n\n it(\n \"collectSet, collectList, selectProperty, and numeric aggregations are nullable\",\n async () => {\n const withAggregations = fauxObjectSet.withProperties({\n \"collectSet\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectSet\"),\n \"select\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"collectList\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"min\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:max\"),\n \"max\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:min\"),\n \"sum\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avg\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n \"approximatePercentile\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"employeeId:approximatePercentile\",\n ),\n });\n\n const withAggregationResults = await withAggregations.fetchPage();\n\n expectTypeOf<typeof withAggregationResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n collectSet: \"string\"[] | undefined;\n select: \"string\" | undefined;\n collectList: \"string\"[] | undefined;\n min: \"double\" | undefined;\n max: \"double\" | undefined;\n sum: \"double\" | undefined;\n avg: \"double\" | undefined;\n approximatePercentile: \"double\" | undefined;\n }\n >\n >();\n },\n );\n });\n\n describe(\"fetch functions return correct Osdk.Instance\", () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n\n it(\"works with .where\", async () => {\n const where = withFamily.where({ \"mom\": 1 });\n const whereResults = await where.fetchPage();\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredPages: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = whereResults;\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredInstance: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = whereResults.data[0];\n\n const q = whereResults.data[0].$link.peeps.$objectSetInternals.def;\n\n // same as above but with expectTypeOf\n expectTypeOf<typeof where>().toEqualTypeOf<typeof withFamily>();\n expectTypeOf<typeof whereResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n\n // Checks that when you directly assign, it infers correctly.\n // Sometimes an explicit assignment can affect how typescript infers\n // types.\n const shouldBeAssignablePage: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = await where.fetchPage();\n\n const _shouldBeAssignableSingle: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = await withFamily.fetchOne(1);\n await withFamily.fetchOne(1);\n });\n\n it(\"works with .async\", () => {\n const asyncIter = withFamily.asyncIter();\n expectTypeOf<typeof asyncIter>().toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >\n >();\n });\n\n it(\"Works with no select\", async () => {\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n });\n\n it(\"Works with selecting all RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\", \"dad\", \"sister\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"Works with selecting some RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n }>\n >();\n });\n\n it(\"Works with selecting all non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\n \"employeeId\",\n \"fullName\",\n \"class\",\n \"attachment\",\n \"geopoint\",\n \"timeseries\",\n \"mediaReference\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"hourlyRate\",\n \"dateOfJoining\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n >();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"class\"]>()\n .toEqualTypeOf<\n string | undefined\n >();\n });\n\n it(\"Works with selecting some non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"class\", {}>\n >();\n });\n\n it(\"Works with selecting a mix\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\", \"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n \"class\",\n { mom: \"integer\" }\n >\n >();\n });\n });\n\n it(\"allows extracting the type\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n type ObjectSetType = typeof objectSet;\n\n expectTypeOf<ObjectSetType>().toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n }>\n >();\n\n const objectSet2 = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"Defining the Type\", () => {\n type ObjectSetType = $ObjectSet<\n EmployeeApiTest,\n {\n mom: \"integer\";\n }\n >;\n\n fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"has correct aggregation keys\", () => {\n fauxObjectSet.withProperties({\n \"integer\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"integerNumericAgg\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"string\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"stringDoesNotHaveNumericAgg\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"class:sum\"),\n \"isActive\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"isActive:approximateDistinct\"),\n \"attachment\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"attachment:collectList\"),\n \"geopoint\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"geopoint:collectList\"),\n \"numericTimeseries\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"timeseries:sum\"),\n \"numericTimeseriesExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"timeseries:exactDistinct\"),\n \"mediaReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"mediaReference:avg\"),\n \"mediaReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"mediaReference:exactDistinct\"),\n \"geotimeSeriesReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"geotimeSeriesReference:sum\"),\n \"geotimeSeriesReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"geotimeSeriesReference:exactDistinct\",\n ),\n \"lastUpdated\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:max\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:min\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectSet\");\n },\n \"dateOfJoining\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectSet\");\n },\n });\n });\n\n it(\"has correct aggregation return types\", async () => {\n const aggTestObjectSet = fauxObjectSet.withProperties({\n \"maxHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\"),\n \"minHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\"),\n \"approximateDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:approximateDistinct\"),\n \"exactDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:exactDistinct\"),\n \"countNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"sumNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avgNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n }).fetchPage();\n\n const result = (await aggTestObjectSet).data[0];\n expectTypeOf((await aggTestObjectSet).data[0]).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n maxHasSameType: \"datetime\" | undefined;\n minHasSameType: \"datetime\" | undefined;\n avgNumber: \"double\" | undefined;\n approximateDistinctNumberNoUndefined: \"integer\";\n exactDistinctNumberNoUndefined: \"integer\";\n countNumberNoUndefined: \"integer\";\n sumNumber: \"double\" | undefined;\n }>\n >();\n\n expectTypeOf(result.maxHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.minHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.approximateDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.exactDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.countNumberNoUndefined).toEqualTypeOf<number>();\n expectTypeOf(result.sumNumber).toEqualTypeOf<number | undefined>();\n expectTypeOf(result.avgNumber).toEqualTypeOf<number | undefined>();\n });\n\n it(\"Merged object type is equivalent to original\", () => {\n const a = {} as EmployeeApiTest;\n let b = {} as DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >;\n\n b = a; // should be assignable. testing explicitly due to break in 2.2 release.\n\n expectTypeOf<\n EmployeeApiTest\n >().branded.toEqualTypeOf<\n DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >\n >();\n });\n });\n describe(\"aggregate\", () => {\n it(\"has correct aggregation keys\", () => {\n void fauxObjectSet.aggregate({\n \"$select\": {\n \"lastUpdated:max\": \"asc\",\n \"lastUpdated:min\": \"desc\",\n \"lastUpdated:approximateDistinct\": \"asc\",\n \"lastUpdated:exactDistinct\": \"desc\",\n \"dateOfJoining:max\": \"desc\",\n \"dateOfJoining:min\": \"asc\",\n \"dateOfJoining:approximateDistinct\": \"asc\",\n \"dateOfJoining:exactDistinct\": \"desc\",\n },\n });\n });\n });\n describe(\"expressions\", () => {\n \"Test all property types\";\n describe(\"numeric expressions\", () => {\n it(\"provides correct methods off of selected numeric derived property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of selection definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of aggregated properties\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const maxAggregation = base.pivotTo(\"lead\").aggregate(\n \"employeeId:max\",\n );\n\n expectTypeOf(maxAggregation).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n maxAggregation.add(1);\n maxAggregation.subtract(1);\n maxAggregation.multiply(1);\n maxAggregation.divide(1);\n maxAggregation.abs();\n maxAggregation.negate();\n maxAggregation.max(1);\n maxAggregation.min(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:avg\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:min\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >();\n\n const collectList = base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n );\n expectTypeOf(\n collectList,\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n // @ts-expect-error\n collectList.plus(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n return maxAggregation;\n },\n });\n });\n\n it(\"correctly coerces numeric types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const intAndLong = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"yearsOfExperience\"),\n );\n expectTypeOf(longAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndLong = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"yearsOfExperience\"));\n expectTypeOf(longAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndInt = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intAndInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const intLongDoubleChain = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n ).add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n ).add(\n base.selectProperty(\"performanceScore\"),\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intLongDoubleChain).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const shortAndIntReturnsInt = base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(shortAndIntReturnsInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const shortAndFloatReturnsDouble = base.pivotTo(\"lead\")\n .selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"hourlyRate\"));\n expectTypeOf(shortAndFloatReturnsDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return intLongDoubleChain;\n },\n });\n });\n\n it(\"allows adding number literals as a double\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const plus = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(1);\n expectTypeOf(plus).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return plus;\n },\n });\n });\n\n it(\"allows adding literals via base.constant\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const plus = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.constant.double(1));\n expectTypeOf(plus).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const intPlusIntReturnsInt = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n )\n .add(base.constant.integer(1));\n expectTypeOf(intPlusIntReturnsInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n return plus;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly types property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.selectProperty(\"performanceScore\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly types property keys off the base OT\", () => {});\n });\n describe(\"datetime expressions\", () => {\n it(\"provides correct methods off of datetime selections\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedDatetime = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n );\n\n expectTypeOf(selectedDatetime).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\" | undefined,\n EmployeeApiTest\n >\n >();\n\n selectedDatetime.max(base.selectProperty(\"dateOfJoining\"));\n selectedDatetime.min(base.selectProperty(\"lastUpdated\"));\n\n expectTypeOf(base.pivotTo(\"lead\").selectProperty(\"lastUpdated\"))\n .toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedDatetime;\n },\n });\n });\n\n it(\"correctly coerces datetime types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const max = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .max(base.selectProperty(\"lastUpdated\"));\n expectTypeOf(max).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n const min = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(base.selectProperty(\"dateOfJoining\"));\n expectTypeOf(min).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\",\n EmployeeApiTest\n >\n >();\n\n return max;\n },\n });\n });\n\n it(\"allows adding literals via base.constant\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const dateAndDateReturnDate = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n )\n .min(base.constant.datetime(\"2025-01-01T00:00:00Z\"));\n expectTypeOf(dateAndDateReturnDate).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\",\n EmployeeApiTest\n >\n >();\n\n const dateAndTimeReturnTime = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n )\n .min(base.constant.timestamp(\"2025-01-01T00:00:00Z\"));\n expectTypeOf(dateAndTimeReturnTime).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return dateAndTimeReturnTime;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.pivotTo(\"lead\").pivotTo(\"lead\").selectProperty(\n \"lastUpdated\",\n ),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly typed property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.selectProperty(\"lastUpdated\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly typed property keys off the base OT\", () => {});\n });\n });\n\n describe(\"nearestNeighbors\", () => {\n it(\"has correct nearest neighbors object set query return type\", () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n expectTypeOf(nearestNeighborsObjectSet).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest>\n >();\n });\n\n it(\"allows text queries\", async () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"allows vector queries\", async () => {\n const vectorQuery = Array.from({ length: 1536 }, () => 0.3);\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n vectorQuery,\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"only supports queries on vector properties\", () => {\n fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n // @ts-expect-error\n \"skillSet\",\n );\n });\n\n it(\"appropriately types fetchPage ordered by relevance\", async () => {\n const nearestNeighborsObjectSet = await fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPage({ $orderBy: \"relevance\" });\n\n type expectedType =\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number };\n\n expectTypeOf(nearestNeighborsObjectSet.data[0]).toEqualTypeOf<\n expectedType\n >();\n });\n\n it(\"appropriately types fetchPageWithErrors ordered by relevance\", async () => {\n const nearestNeighborsObjectSetWithErrors = await fauxObjectSet\n .nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPageWithErrors({ $orderBy: \"relevance\" });\n\n type expectedType =\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number };\n expectTypeOf(nearestNeighborsObjectSetWithErrors.value!.data[0])\n .toEqualTypeOf<expectedType>();\n });\n\n it(\"appropriately types asyncIters ordered by relevance\", () => {\n const asyncIter = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).asyncIter(\n { $orderBy: \"relevance\" },\n );\n\n type expectedType = AsyncIterableIterator<\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number }\n >;\n expectTypeOf(asyncIter).toEqualTypeOf<expectedType>();\n });\n\n it(\"no arbitrary order bys\", () => {\n const knn = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n\n // @ts-expect-error\n void knn.fetchPage({ $orderBy: \"invalid\" });\n // @ts-expect-error\n void knn.fetchPageWithErrors({ $orderBy: \"invalid\" });\n // @ts-expect-error\n void knn.asyncIter({ $orderBy: \"random\" });\n });\n\n it(\"does not include score for property order by\", async () => {\n const nearestNeighborsObjectSet = await fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPage({ $orderBy: { \"fullName\": \"desc\" } });\n\n expectTypeOf(nearestNeighborsObjectSet.data[0]).not.toHaveProperty(\n \"$score\",\n );\n\n const nearestNeighborsObjectSetWithErrors = await fauxObjectSet\n .nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPageWithErrors({ $orderBy: { \"fullName\": \"desc\" } });\n\n expectTypeOf(nearestNeighborsObjectSetWithErrors.value?.data[0]).not\n .toHaveProperty(\"$score\");\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -52,6 +52,13 @@ interface MediaReference {
52
52
  };
53
53
  };
54
54
  }
55
+ /**
56
+ * Object for uploading Media
57
+ */
58
+ interface MediaUpload {
59
+ readonly path: string;
60
+ readonly data: Blob;
61
+ }
55
62
  /**
56
63
  * Metadata of a media item
57
64
  */
@@ -577,6 +584,10 @@ type Converted<T> = T extends Array<any> ? T[1] : T;
577
584
  * @param {STRICTLY_ENFORCE_NULLABLE} S for strict. If false, always `|undefined`
578
585
  */
579
586
  type OsdkObjectPropertyType<T extends ObjectMetadata.Property, STRICTLY_ENFORCE_NULLABLE extends boolean = true> = STRICTLY_ENFORCE_NULLABLE extends false ? MaybeArray<T, Converted<GetClientPropertyValueFromWire<T["type"]>>> | undefined : MaybeNullable$1<T, MaybeArray<T, Converted<GetClientPropertyValueFromWire<T["type"]>>>>;
587
+ /**
588
+ * @param {T} ObjectMetadata.Property in literal form
589
+ */
590
+ type OsdkObjectPropertyTypeNotUndefined<T extends ObjectMetadata.Property> = MaybeArray<T, Converted<GetClientPropertyValueFromWire<T["type"]>>>;
580
591
  /**
581
592
  * @param {T} ObjectMetadata.Property in literal form
582
593
  * @param {STRICTLY_ENFORCE_NULLABLE} S for strict. If false, always `|undefined`
@@ -598,7 +609,7 @@ type AggregationResultsWithGroups<Q extends ObjectOrInterfaceDefinition, A exten
598
609
  } ? {
599
610
  startValue: T;
600
611
  endValue: T;
601
- } : MaybeNullable<G[P], OsdkObjectPropertyType<CompileTimeMetadata<Q>["properties"][P], true>>;
612
+ } : MaybeNullable<G[P], OsdkObjectPropertyTypeNotUndefined<CompileTimeMetadata<Q>["properties"][P]>>;
602
613
  };
603
614
  } & AggregationResultsWithoutGroups<Q, A>)[];
604
615
  type MaybeNullable<GROUP, VALUE> = GROUP extends {
@@ -618,16 +629,17 @@ declare namespace ObjectSetArgs {
618
629
  $select?: readonly (OBJECT_KEYS | RDP_KEYS)[];
619
630
  $includeRid?: boolean;
620
631
  }
621
- interface OrderBy<L extends string = never> {
622
- $orderBy?: {
623
- [K in L]?: "asc" | "desc";
624
- };
632
+ type OrderByOptions<L extends string> = {
633
+ [K in L]?: "asc" | "desc";
634
+ } | "relevance";
635
+ interface OrderBy<ORDER_BY_OPTIONS extends OrderByOptions<L>, L extends string = never> {
636
+ $orderBy?: ORDER_BY_OPTIONS;
625
637
  }
626
- interface AsyncIter<Q extends ObjectOrInterfaceDefinition, K extends PropertyKeys<Q> = never, T extends boolean = false, RDP_KEYS extends string = never> extends Select<K, RDP_KEYS>, OrderBy<K> {
638
+ interface AsyncIter<Q extends ObjectOrInterfaceDefinition, K extends PropertyKeys<Q> = never, T extends boolean = false, RDP_KEYS extends string = never, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<K> = never> extends Select<K, RDP_KEYS>, OrderBy<ORDER_BY_OPTIONS, K> {
627
639
  $__UNSTABLE_useOldInterfaceApis?: boolean;
628
640
  $includeAllBaseObjectProperties?: PropertyKeys<Q> extends K ? T : never;
629
641
  }
630
- interface FetchPage<Q extends ObjectOrInterfaceDefinition, K extends PropertyKeys<Q> = never, T extends boolean = false, RDP_KEYS extends string = never> extends AsyncIter<Q, K, T, RDP_KEYS> {
642
+ interface FetchPage<Q extends ObjectOrInterfaceDefinition, K extends PropertyKeys<Q> = never, T extends boolean = false, RDP_KEYS extends string = never, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<K> = never> extends AsyncIter<Q, K, T, RDP_KEYS, ORDER_BY_OPTIONS> {
631
643
  $nextPageToken?: string;
632
644
  $pageSize?: number;
633
645
  }
@@ -636,14 +648,14 @@ interface SelectArg<Q extends ObjectOrInterfaceDefinition, L extends string = Pr
636
648
  $select?: readonly L[];
637
649
  $includeRid?: R;
638
650
  }
639
- interface OrderByArg<Q extends ObjectOrInterfaceDefinition, L extends string = PropertyKeys<Q>> extends ObjectSetArgs.OrderBy<L> {
651
+ interface OrderByArg<Q extends ObjectOrInterfaceDefinition, L extends string = PropertyKeys<Q>, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = never> extends ObjectSetArgs.OrderBy<ORDER_BY_OPTIONS, L> {
640
652
  }
641
653
  type SelectArgToKeys<Q extends ObjectOrInterfaceDefinition, A extends SelectArg<Q, any, any>> = A extends SelectArg<Q, never> ? PropertyKeys<Q> : A["$select"] extends readonly string[] ? A["$select"][number] : PropertyKeys<Q>;
642
- interface FetchPageArgs<Q extends ObjectOrInterfaceDefinition, K extends string = PropertyKeys<Q>, R extends boolean = false, A extends Augments = never, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, RDP_KEYS extends string = never> extends AsyncIterArgs<Q, K, R, A, S, T, RDP_KEYS> {
654
+ interface FetchPageArgs<Q extends ObjectOrInterfaceDefinition, K extends string = PropertyKeys<Q>, R extends boolean = false, A extends Augments = never, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, RDP_KEYS extends string = never, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<K> = {}> extends AsyncIterArgs<Q, K, R, A, S, T, RDP_KEYS, ORDER_BY_OPTIONS> {
643
655
  $nextPageToken?: string;
644
656
  $pageSize?: number;
645
657
  }
646
- interface AsyncIterArgs<Q extends ObjectOrInterfaceDefinition, K extends string = PropertyKeys<Q>, R extends boolean = false, A extends Augments = never, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, RDP_KEYS extends string = never> extends SelectArg<Q, K, R, S, RDP_KEYS>, OrderByArg<Q, PropertyKeys<Q> | RDP_KEYS> {
658
+ interface AsyncIterArgs<Q extends ObjectOrInterfaceDefinition, K extends string = PropertyKeys<Q>, R extends boolean = false, A extends Augments = never, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, RDP_KEYS extends string = never, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<K> = never> extends SelectArg<Q, K, R, S, RDP_KEYS>, OrderByArg<Q, PropertyKeys<Q> | RDP_KEYS, ORDER_BY_OPTIONS> {
647
659
  $__UNSTABLE_useOldInterfaceApis?: boolean;
648
660
  $includeAllBaseObjectProperties?: PropertyKeys<Q> extends K ? T : never;
649
661
  }
@@ -694,13 +706,13 @@ type UnionIfTrue<S extends string, UNION_IF_TRUE extends boolean, E extends stri
694
706
  /**
695
707
  * Helper type for converting fetch options into an Osdk object
696
708
  */
697
- type FetchPageResult<Q extends ObjectOrInterfaceDefinition, L extends PropertyKeys<Q>, R extends boolean, S extends NullabilityAdherence, T extends boolean = false> = PageResult<PropertyKeys<Q> extends L ? Osdk.Instance<Q, ExtractOptions<R, S, T>> : Osdk.Instance<Q, ExtractOptions<R, S, T>, L>>;
709
+ type FetchPageResult<Q extends ObjectOrInterfaceDefinition, L extends PropertyKeys<Q>, R extends boolean, S extends NullabilityAdherence, T extends boolean = false, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = {}> = PageResult<MaybeScore<Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q> extends L ? never : L>, ORDER_BY_OPTIONS>>;
698
710
  /**
699
711
  * Helper type for converting fetch options into an Osdk object
700
712
  */
701
- type SingleOsdkResult<Q extends ObjectOrInterfaceDefinition, L extends PropertyKeys<Q> | (keyof RDPs & string), R extends boolean, S extends NullabilityAdherence, RDPs extends Record<string, SimplePropertyDef> = {}, T extends boolean = false> = Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L, {
713
+ type SingleOsdkResult<Q extends ObjectOrInterfaceDefinition, L extends PropertyKeys<Q> | (keyof RDPs & string), R extends boolean, S extends NullabilityAdherence, RDPs extends Record<string, SimplePropertyDef> = {}, T extends boolean = false, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = {}> = MaybeScore<Osdk.Instance<Q, ExtractOptions<R, S, T>, PropertyKeys<Q> extends L ? PropertyKeys<Q> : PropertyKeys<Q> & L, {
702
714
  [K in Extract<keyof RDPs, L>]: RDPs[K];
703
- }>;
715
+ }>, ORDER_BY_OPTIONS>;
704
716
 
705
717
  type ObjectSpecifier<Q extends ObjectOrInterfaceDefinition> = string & {
706
718
  __apiName: Q["apiName"] | (Q extends InterfaceDefinition ? CompileTimeMetadata<Q> extends InterfaceMetadata ? NonNullable<CompileTimeMetadata<Q>["implementedBy"]>[number] : never : never);
@@ -741,6 +753,9 @@ type IsNever<T> = [T] extends [never] ? true : false;
741
753
  type ExtractPropsKeysFromOldPropsStyle<Q extends ObjectOrInterfaceDefinition, P extends ValidOsdkPropParams<Q>> = P extends "$all" ? PropertyKeys<Q> : Exclude<P, "$strict" | "$notStrict" | "$rid">;
742
754
  type IsAny<T> = unknown extends T ? [keyof T] extends [never] ? false : true : false;
743
755
  type GetPropsKeys<Q extends ObjectOrInterfaceDefinition, P extends PropertyKeys<Q>, N extends boolean = false> = IsNever<P> extends true ? N extends true ? never : PropertyKeys<Q> : IsAny<P> extends true ? PropertyKeys<Q> : P;
756
+ type MaybeScore<T extends Osdk.Instance<any>, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<any>> = ORDER_BY_OPTIONS extends "relevance" ? T & {
757
+ $score: number;
758
+ } : T;
744
759
  /**
745
760
  * Use `Osdk.Instance` or `YourType.OsdkInstance`
746
761
  */
@@ -1061,7 +1076,7 @@ declare namespace DerivedProperty {
1061
1076
  };
1062
1077
  interface BaseBuilder<Q extends ObjectOrInterfaceDefinition, CONSTRAINED extends boolean> extends Filterable<Q, CONSTRAINED>, Pivotable<Q, CONSTRAINED> {
1063
1078
  }
1064
- export interface Builder<Q extends ObjectOrInterfaceDefinition, CONSTRAINED extends boolean> extends BaseBuilder<Q, CONSTRAINED>, Selectable<Q> {
1079
+ export interface Builder<Q extends ObjectOrInterfaceDefinition, CONSTRAINED extends boolean> extends BaseBuilder<Q, CONSTRAINED>, Selectable<Q>, Constant<Q> {
1065
1080
  }
1066
1081
  export interface AggregateBuilder<Q extends ObjectOrInterfaceDefinition, CONSTRAINED extends boolean> extends BaseBuilder<Q, CONSTRAINED>, Aggregatable<Q> {
1067
1082
  }
@@ -1078,6 +1093,15 @@ type Filterable<Q extends ObjectOrInterfaceDefinition, CONSTRAINED extends boole
1078
1093
  type Pivotable<Q extends ObjectOrInterfaceDefinition, CONSTRAINED extends boolean> = {
1079
1094
  readonly pivotTo: <L extends LinkNames<Q>>(type: L) => CONSTRAINED extends true ? DerivedProperty.AggregateBuilder<LinkedType<Q, L>, true> : NonNullable<CompileTimeMetadata<Q>["links"][L]["multiplicity"]> extends true ? DerivedProperty.AggregateBuilder<LinkedType<Q, L>, true> : DerivedProperty.SelectPropertyBuilder<LinkedType<Q, L>, false>;
1080
1095
  };
1096
+ type Constant<Q extends ObjectOrInterfaceDefinition> = {
1097
+ readonly constant: {
1098
+ readonly double: (value: number) => DerivedProperty.NumericPropertyDefinition<SimplePropertyDef.Make<"double", "non-nullable", "single">, Q>;
1099
+ readonly integer: (value: number) => DerivedProperty.NumericPropertyDefinition<SimplePropertyDef.Make<"integer", "non-nullable", "single">, Q>;
1100
+ readonly long: (value: string) => DerivedProperty.NumericPropertyDefinition<SimplePropertyDef.Make<"long", "non-nullable", "single">, Q>;
1101
+ readonly datetime: (value: string) => DerivedProperty.DatetimePropertyDefinition<SimplePropertyDef.Make<"datetime", "non-nullable", "single">, Q>;
1102
+ readonly timestamp: (value: string) => DerivedProperty.DatetimePropertyDefinition<SimplePropertyDef.Make<"timestamp", "non-nullable", "single">, Q>;
1103
+ };
1104
+ };
1081
1105
  type Aggregatable<Q extends ObjectOrInterfaceDefinition> = {
1082
1106
  readonly aggregate: <V extends ValidAggregationKeys<Q, "withPropertiesAggregate">>(aggregationSpecifier: V, opts?: V extends `${any}:${infer P}` ? P extends CollectWithPropAggregations ? {
1083
1107
  limit: number;
@@ -1140,11 +1164,11 @@ type SubSelectKeys<Q extends ObjectOrInterfaceDefinition, X extends SelectArg<Q,
1140
1164
  type NOOP<T> = T extends (...args: any[]) => any ? T : T extends abstract new (...args: any[]) => any ? T : {
1141
1165
  [K in keyof T]: T[K];
1142
1166
  };
1143
- type SubSelectRDPsHelper<X extends ValidFetchPageArgs<any, any> | ValidAsyncIterArgs<any, any>, DEFAULT extends string> = [X] extends [never] ? DEFAULT : (X["$select"] & string[])[number] & DEFAULT;
1144
- type SubSelectRDPs<RDPs extends Record<string, SimplePropertyDef>, X extends ValidFetchPageArgs<any, RDPs> | ValidAsyncIterArgs<any, RDPs>> = [RDPs] extends [never] ? never : NOOP<{
1167
+ type SubSelectRDPsHelper<X extends ValidFetchPageArgs<any, any, any> | ValidAsyncIterArgs<any, any>, DEFAULT extends string> = [X] extends [never] ? DEFAULT : (X["$select"] & string[])[number] & DEFAULT;
1168
+ type SubSelectRDPs<RDPs extends Record<string, SimplePropertyDef>, X extends ValidFetchPageArgs<any, RDPs, any> | ValidAsyncIterArgs<any, RDPs>> = [RDPs] extends [never] ? never : NOOP<{
1145
1169
  [K in SubSelectRDPsHelper<X, string & keyof RDPs>]: RDPs[K];
1146
1170
  }>;
1147
- interface MinimalObjectSet<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> extends BaseObjectSet<Q>, FetchPage<Q, RDPs>, AsyncIter<Q, RDPs>, Where<Q, RDPs> {
1171
+ interface MinimalObjectSet<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<PropertyKeys<Q>> = {}> extends BaseObjectSet<Q>, FetchPage<Q, RDPs>, AsyncIter<Q, RDPs, ORDER_BY_OPTIONS>, Where<Q, RDPs> {
1148
1172
  }
1149
1173
  type ExtractOptions2<X extends FetchPageArgs<any, any, any, any, any, any, any>> = [X] extends [never] ? never : ExtractRidOption<X["$includeRid"] extends true ? true : false> | ExtractAllPropertiesOption<X["$includeAllBaseObjectProperties"] extends true ? true : false>;
1150
1174
  type Extract$Select<X extends FetchPageArgs<any, any>> = NonNullable<X["$select"]>[number];
@@ -1152,7 +1176,7 @@ interface FetchPage<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<s
1152
1176
  readonly fetchPage: FetchPageSignature<Q, RDPs>;
1153
1177
  readonly fetchPageWithErrors: FetchPageWithErrorsSignature<Q, RDPs>;
1154
1178
  }
1155
- type ValidFetchPageArgs<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef>> = ObjectSetArgs.FetchPage<Q, PropertyKeys<Q>, boolean, string & keyof RDPs>;
1179
+ type ValidFetchPageArgs<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef>, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<PropertyKeys<Q>>> = ObjectSetArgs.FetchPage<Q, PropertyKeys<Q>, boolean, string & keyof RDPs, ORDER_BY_OPTIONS>;
1156
1180
  type ValidAsyncIterArgs<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef>> = ObjectSetArgs.AsyncIter<Q, PropertyKeys<Q>, false, string & keyof RDPs> | AsyncIterArgs<Q, never, any, any, any, true, string & keyof RDPs>;
1157
1181
  interface FetchPageSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
1158
1182
  /**
@@ -1167,7 +1191,7 @@ interface FetchPageSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends
1167
1191
 
1168
1192
  * @returns a page of objects
1169
1193
  */
1170
- <L extends PropertyKeys<Q> | (string & keyof RDPs), R extends boolean, const A extends Augments, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false>(args?: FetchPageArgs<Q, L, R, A, S, T>): Promise<PageResult<Osdk.Instance<Q, ExtractOptions<R, S, T>, NoInfer<SubSelectKeys<Q, NonNullable<typeof args>>>, SubSelectRDPs<RDPs, NonNullable<typeof args>>>>>;
1194
+ <L extends PropertyKeys<Q> | (string & keyof RDPs), R extends boolean, const A extends Augments, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = {}>(args?: FetchPageArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS>): Promise<PageResult<MaybeScore<Osdk.Instance<Q, ExtractOptions<R, S, T>, NoInfer<SubSelectKeys<Q, NonNullable<typeof args>>>, SubSelectRDPs<RDPs, NonNullable<typeof args>>>, ORDER_BY_OPTIONS>>>;
1171
1195
  }
1172
1196
  interface NearestNeighbors<Q extends ObjectOrInterfaceDefinition> {
1173
1197
  /**
@@ -1199,7 +1223,7 @@ interface FetchPageWithErrorsSignature<Q extends ObjectOrInterfaceDefinition, RD
1199
1223
  }
1200
1224
  * @returns a page of objects, wrapped in a result wrapper
1201
1225
  */
1202
- <L extends PropertyKeys<Q> | (string & keyof RDPs), R extends boolean, const A extends Augments, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false>(args?: FetchPageArgs<Q, L, R, A, S, T>): Promise<Result<PageResult<Osdk.Instance<Q, ExtractOptions<R, S, T>, NoInfer<SubSelectKeys<Q, NonNullable<typeof args>>>, SubSelectRDPs<RDPs, NonNullable<typeof args>>>>>>;
1226
+ <L extends PropertyKeys<Q> | (string & keyof RDPs), R extends boolean, const A extends Augments, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<L> = {}>(args?: FetchPageArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS>): Promise<Result<PageResult<MaybeScore<Osdk.Instance<Q, ExtractOptions<R, S, T>, NoInfer<SubSelectKeys<Q, NonNullable<typeof args>>>, SubSelectRDPs<RDPs, NonNullable<typeof args>>>, ORDER_BY_OPTIONS>>>>;
1203
1227
  }
1204
1228
  interface Where<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
1205
1229
  /**
@@ -1214,7 +1238,7 @@ interface Where<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<strin
1214
1238
  */
1215
1239
  readonly where: (clause: WhereClause<MergeObjectSet<Q, RDPs>>) => this;
1216
1240
  }
1217
- interface AsyncIterSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
1241
+ interface AsyncIterSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<PropertyKeys<Q>> = {}> {
1218
1242
  /**
1219
1243
  * Returns an async iterator to load all objects of this type
1220
1244
  * @example
@@ -1232,10 +1256,10 @@ interface AsyncIterSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends
1232
1256
  * }
1233
1257
  * @returns an async iterator to load all objects
1234
1258
  */
1235
- <L extends PropertyKeys<Q> | (string & keyof RDPs), R extends boolean, const A extends Augments, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false>(args?: AsyncIterArgs<Q, L, R, A, S, T>): AsyncIterableIterator<Osdk.Instance<Q, ExtractOptions<R, S, T>, NoInfer<SubSelectKeys<Q, NonNullable<typeof args>>>, SubSelectRDPs<RDPs, NonNullable<typeof args>>>>;
1259
+ <L extends PropertyKeys<Q> | (string & keyof RDPs), R extends boolean, const A extends Augments, S extends NullabilityAdherence = NullabilityAdherence.Default, T extends boolean = false, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<PropertyKeys<Q>> = {}>(args?: AsyncIterArgs<Q, L, R, A, S, T, never, ORDER_BY_OPTIONS>): AsyncIterableIterator<MaybeScore<Osdk.Instance<Q, ExtractOptions<R, S, T>, NoInfer<SubSelectKeys<Q, NonNullable<typeof args>>>, SubSelectRDPs<RDPs, NonNullable<typeof args>>>, ORDER_BY_OPTIONS>>;
1236
1260
  }
1237
- interface AsyncIter<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
1238
- asyncIter: AsyncIterSignature<Q, RDPs>;
1261
+ interface AsyncIter<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<PropertyKeys<Q>> = {}> {
1262
+ asyncIter: AsyncIterSignature<Q, RDPs, ORDER_BY_OPTIONS>;
1239
1263
  }
1240
1264
  interface WithProperties<Q extends ObjectOrInterfaceDefinition = any, RDPs extends Record<string, SimplePropertyDef> = {}> {
1241
1265
  readonly withProperties: <NEW extends Record<string, SimplePropertyDef>>(clause: {
@@ -1347,7 +1371,7 @@ interface Subscribe<Q extends ObjectOrInterfaceDefinition> {
1347
1371
  unsubscribe: () => void;
1348
1372
  };
1349
1373
  }
1350
- interface ObjectSetCleanedTypes<Q extends ObjectOrInterfaceDefinition, D extends Record<string, SimplePropertyDef>, MERGED extends ObjectOrInterfaceDefinition & Q> extends MinimalObjectSet<Q, D>, WithProperties<Q, D>, Aggregate<MERGED>, SetArithmetic<MERGED>, PivotTo<Q>, FetchOne<Q, D>, Subscribe<MERGED>, NearestNeighbors<Q> {
1374
+ interface ObjectSetCleanedTypes<Q extends ObjectOrInterfaceDefinition, D extends Record<string, SimplePropertyDef>, MERGED extends ObjectOrInterfaceDefinition & Q, ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<PropertyKeys<Q>> = {}> extends MinimalObjectSet<Q, D, ORDER_BY_OPTIONS>, WithProperties<Q, D>, Aggregate<MERGED>, SetArithmetic<MERGED>, PivotTo<Q>, FetchOne<Q, D>, Subscribe<MERGED>, NearestNeighbors<Q> {
1351
1375
  }
1352
1376
 
1353
- export { PropertyKeys as $, type AttachmentUpload as A, type Augment as B, type CompileTimeMetadata as C, DistanceUnitMapping as D, type Augments as E, type FetchPageArgs as F, type GeoFilterOptions as G, type SelectArg as H, type InterfaceDefinition as I, type SelectArgToKeys as J, type FetchPageResult as K, type SingleOsdkResult as L, type MediaReference as M, NullabilityAdherence as N, type ObjectTypeDefinition as O, type PropertyValueWireToClient as P, type Media as Q, type ReleaseStatus as R, type SingleLinkAccessor as S, type MediaMetadata as T, isOk as U, type ValidAggregationKeys as V, type WhereClause as W, type Result as X, type BaseObjectSet as Y, ObjectSetSubscription as Z, InterfaceMetadata as _, type Attachment as a, type ObjectSpecifier as a0, ObjectMetadata as a1, type PropertyDef as a2, type VersionBound as a3, type BaseWirePropertyTypes as a4, type WirePropertyTypes as a5, type PrimaryKeyType as a6, type ConvertProps as a7, Osdk as a8, type PageResult as a9, TimeseriesDurationMapping as aa, type GeotimeSeriesProperty as ab, type TimeSeriesPoint as ac, type TimeSeriesProperty as ad, type TimeSeriesQuery as ae, type LinkedType as af, type LinkNames as ag, type ExtractOptions as ah, type MinimalObjectSet as ai, type ObjectIdentifiers as b, type OsdkObjectPrimaryKeyType as c, type ObjectSet as d, type OsdkMetadata as e, type ObjectOrInterfaceDefinition as f, type PrimaryKeyTypes as g, type OsdkBase as h, type AggregateOpts as i, type AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy as j, type AggregationResultsWithGroups as k, type AggregationResultsWithoutGroups as l, type AggregationClause as m, type AggregationsResults as n, type GeoFilter_Intersects as o, type GeoFilter_Within as p, type PossibleWhereClauseFilters as q, type OsdkObjectCreatePropertyType as r, type OsdkObjectPropertyType as s, type OsdkObjectLinksObject as t, DerivedProperty as u, DurationMapping as v, type AllGroupByValues as w, type GroupByClause as x, type GroupByRange as y, type AsyncIterArgs as z };
1377
+ export { ObjectSetSubscription as $, type AttachmentUpload as A, type AsyncIterArgs as B, type CompileTimeMetadata as C, DistanceUnitMapping as D, type Augment as E, type Augments as F, type GeoFilterOptions as G, type FetchPageArgs as H, type InterfaceDefinition as I, ObjectSetArgs as J, type SelectArg as K, type SelectArgToKeys as L, type MediaReference as M, NullabilityAdherence as N, type ObjectTypeDefinition as O, type PropertyValueWireToClient as P, type FetchPageResult as Q, type ReleaseStatus as R, type SingleLinkAccessor as S, type SingleOsdkResult as T, type Media as U, type ValidAggregationKeys as V, type WhereClause as W, type MediaMetadata as X, isOk as Y, type Result as Z, type BaseObjectSet as _, type MediaUpload as a, InterfaceMetadata as a0, PropertyKeys as a1, type ObjectSpecifier as a2, ObjectMetadata as a3, type PropertyDef as a4, type VersionBound as a5, type BaseWirePropertyTypes as a6, type WirePropertyTypes as a7, type PrimaryKeyType as a8, type ConvertProps as a9, type MaybeScore as aa, Osdk as ab, type PageResult as ac, TimeseriesDurationMapping as ad, type GeotimeSeriesProperty as ae, type TimeSeriesPoint as af, type TimeSeriesProperty as ag, type TimeSeriesQuery as ah, type LinkedType as ai, type LinkNames as aj, type ExtractOptions as ak, type MinimalObjectSet as al, type Attachment as b, type ObjectIdentifiers as c, type OsdkObjectPrimaryKeyType as d, type ObjectSet as e, type OsdkMetadata as f, type ObjectOrInterfaceDefinition as g, type PrimaryKeyTypes as h, type OsdkBase as i, type AggregateOpts as j, type AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy as k, type AggregationResultsWithGroups as l, type AggregationResultsWithoutGroups as m, type AggregationClause as n, type AggregationsResults as o, type GeoFilter_Intersects as p, type GeoFilter_Within as q, type PossibleWhereClauseFilters as r, type OsdkObjectCreatePropertyType as s, type OsdkObjectPropertyType as t, type OsdkObjectLinksObject as u, DerivedProperty as v, DurationMapping as w, type AllGroupByValues as x, type GroupByClause as y, type GroupByRange as z };