@osdk/api 2.4.0-beta.1 → 2.4.0-beta.10
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.
- package/CHANGELOG.md +32 -0
- package/build/browser/Definitions.js.map +1 -1
- package/build/browser/OsdkObjectFrom.js.map +1 -1
- package/build/browser/aggregate/AggregateOptsThatErrors.js.map +1 -1
- package/build/browser/aggregate/AggregationResultsWithGroups.js.map +1 -1
- package/build/browser/groupby/GroupByClause.js.map +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/mapping/PropertyValueMapping.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +35 -4
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/ontology/WirePropertyTypes.js.map +1 -1
- package/build/browser/test/EmployeeApiTest.js.map +1 -1
- package/build/cjs/{ObjectSet-C67LQ5JX.d.cts → ObjectSet-DmnkezS6.d.cts} +86 -9
- package/build/cjs/index.d.cts +2 -2
- package/build/cjs/public/unstable.d.cts +2 -2
- package/build/esm/Definitions.js.map +1 -1
- package/build/esm/OsdkObjectFrom.js.map +1 -1
- package/build/esm/aggregate/AggregateOptsThatErrors.js.map +1 -1
- package/build/esm/aggregate/AggregationResultsWithGroups.js.map +1 -1
- package/build/esm/groupby/GroupByClause.js.map +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/mapping/PropertyValueMapping.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +35 -4
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/ontology/WirePropertyTypes.js.map +1 -1
- package/build/esm/test/EmployeeApiTest.js.map +1 -1
- package/build/types/Definitions.d.ts +9 -1
- package/build/types/Definitions.d.ts.map +1 -1
- package/build/types/OsdkObjectFrom.d.ts +8 -2
- package/build/types/OsdkObjectFrom.d.ts.map +1 -1
- package/build/types/aggregate/AggregateOptsThatErrors.d.ts +9 -1
- package/build/types/aggregate/AggregateOptsThatErrors.d.ts.map +1 -1
- package/build/types/aggregate/AggregationResultsWithGroups.d.ts +10 -1
- package/build/types/aggregate/AggregationResultsWithGroups.d.ts.map +1 -1
- package/build/types/groupby/GroupByClause.d.ts +10 -2
- package/build/types/groupby/GroupByClause.d.ts.map +1 -1
- package/build/types/index.d.ts +2 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/mapping/PropertyValueMapping.d.ts +26 -0
- package/build/types/mapping/PropertyValueMapping.d.ts.map +1 -1
- package/build/types/objectSet/ObjectSet.d.ts +16 -1
- package/build/types/objectSet/ObjectSet.d.ts.map +1 -1
- package/build/types/ontology/WirePropertyTypes.d.ts +1 -1
- package/build/types/ontology/WirePropertyTypes.d.ts.map +1 -1
- package/build/types/test/EmployeeApiTest.d.ts +5 -1
- package/build/types/test/EmployeeApiTest.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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","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"],"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 } 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 ],\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 ],\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 \"collectToSet, collectToList, 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 ],\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"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,EAAEC,YAAY,EAAEC,EAAE,EAAEC,IAAI,EAAEC,EAAE,QAAQ,QAAQ;AAc7D,OAAO,SAASC,mBAAmBA,CAAA,EAET;EACxB,IAAIC,UAA4B,EAC9BC,WAAgB,EAChBC,aAA4B;;EAE9B;EACAF,UAAU,GAAG;IACXG,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,mBAAmB,EAAE;UACnBC,GAAG,EAAE,CAAC;QACR;MACF;IACF;EACF,CAAqB;EAErBL,WAAW,GAAG;IACZM,IAAI,EAAE,CAACP,UAAU;EACnB,CAAC;EAEDE,aAAa,GAAG;IACdM,KAAK,EAAEV,EAAE,CAACW,EAAE,CAAC,MAAM;MACjB,OAAOP,aAAa;IACtB,CAAC,CAAC;IACFQ,cAAc,EAAEZ,EAAE,CAACW,EAAE,CAAC,MAAM;MAC1B,OAAOP,aAAa;IACtB,CAAC,CAAC;IACFS,SAAS,EAAEb,EAAE,CAACW,EAAE,CAAC,MAAMG,OAAO,CAACC,OAAO,CAACZ,WAAW,CAAC,CAAC;IACpDa,QAAQ,EAAEhB,EAAE,CAACW,EAAE,CAAC,MAAMT,UAAU,CAAC;IACjCe,SAAS,EAAEjB,EAAE,CAACW,EAAE,CAAC,MAAM;MACrB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACFO,SAAS,EAAElB,EAAE,CAACW,EAAE,CAAC,MAAM;MACrB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACFQ,OAAO,EAAEnB,EAAE,CAACW,EAAE,CAAC,MAAM;MACnB,OAAOP,aAAa;IACtB,CAAC;EACH,CAAyB;EAEzB,OAAOA,aAAa;AACtB;AAEAR,QAAQ,CAAC,WAAW,EAAE,MAAM;EAC1B,MAAMQ,aAAa,GAAGH,mBAAmB,CAAkB,CAAC;EAE5DL,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACvBG,IAAI,CAAC,aAAa,EAAE,YAAY;MACf,MAAMK,aAAa,CAACS,SAAS,CAAC,CAAC;MAC9ChB,YAAY,CAAwB,CAAC,CAACuB,aAAa,CAEjD,CAAC;;MAEH;MACA;MACgB,MAAMhB,aAAa,CAACS,SAAS,CAM3C,CAAC;IACL,CAAC,CAAC;IAEFd,IAAI,CAAC,YAAY,EAAE,YAAY;MACd,MAAMK,aAAa,CAACS,SAAS,CAAC;QAAE,SAAS,EAAE,CAAC,UAAU;MAAE,CAAC,CAAC;MACzEhB,YAAY,CAAwB,CAAC,CAACuB,aAAa,CAEjD,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFxB,QAAQ,CAAC,gCAAgC,EAAE,MAAM;IAC/CE,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAMuB,eAAe,GAAG,MAAMjB,aAAa,CACxCM,KAAK,CAAC;QAAEY,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBT,SAAS,CAAC;QAAEU,+BAA+B,EAAE;MAAK,CAAC,CAAC;MAEvD1B,YAAY,CAACwB,eAAe,CAAC,CAACD,aAAa,CAIzC,CAAC;MAEH,MAAMI,eAAe,GAAGpB,aAAa,CAClCM,KAAK,CAAC;QAAEY,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBL,SAAS,CAAC;QAAEM,+BAA+B,EAAE;MAAK,CAAC,CAAC;MAEvD1B,YAAY,CAAC2B,eAAe,CAAC,CAACJ,aAAa,CAIzC,CAAC;IACL,CAAC,CAAC;IAEFtB,EAAE,CAAC,gDAAgD,EAAE,YAAY;MACvC,MAAMM,aAAa,CACxCM,KAAK,CAAC;QAAEY,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBT,SAAS,CAAC;QACT;QACAU,+BAA+B,EAAE,IAAI;QACrCE,OAAO,EAAE,CAAC,YAAY;MACxB,CAAC,CAAC;MAEoBrB,aAAa,CAClCM,KAAK,CAAC;QAAEY,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBL,SAAS,CAAC;QACT;QACAM,+BAA+B,EAAE,IAAI;QACrCE,OAAO,EAAE,CAAC,YAAY;MACxB,CAAC,CAAC;IACN,CAAC,CAAC;IAEF3B,EAAE,CAAC,iDAAiD,EAAE,YAAY;MACxC,MAAMM,aAAa,CACxCM,KAAK,CAAC;QAAEY,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBT,SAAS,CAAC;QACTU,+BAA+B,EAAE,IAAI;QAErC;QACA;QACA;QACAE,OAAO,EAAE,CACP,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,aAAa;MAEjB,CAAC,CAAC;MAEoB,MAAMrB,aAAa,CACxCM,KAAK,CAAC;QAAEY,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBT,SAAS,CAAC;QACTU,+BAA+B,EAAE,IAAI;QAErC;QACA;QACA;QACAE,OAAO,EAAE,CACP,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,aAAa;MAEjB,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF1B,IAAI,CAAC,YAAY,EAAE,YAAY;IAC7B,MAAM2B,CAAC,GAAG,MAAMtB,aAAa,CAC1BM,KAAK,CAAC;MAAEY,KAAK,EAAE;IAAM,CAAC,CAAC,CACvBT,SAAS,CAAC;MAAEc,WAAW,EAAE;IAAK,CAAC,CAAC;IAEnC9B,YAAY,CAAC6B,CAAC,CAAC,CAACN,aAAa,CAI3B,CAAC;EACL,CAAC,CAAC;EAEFrB,IAAI,CAAC,SAAS,EAAE,YAAY;IACX,MAAMK,aAAa,CAACe,OAAO,CAAC,OAAO,CAAC,CAACN,SAAS,CAAC,CAAC,CAAC,CAAC;IACjE,MAAMe,SAAS,GAAG,MAAMxB,aAAa,CAACe,OAAO,CAAC,OAAO,CAAC,CAACN,SAAS,CAAC;MAC/DY,OAAO,EAAE,CAAC,YAAY,EAAE,OAAO;IACjC,CAAC,CAAC;IAEF5B,YAAY,CAAC+B,SAAS,CAAC,CAACR,aAAa,CAInC,CAAC;EACL,CAAC,CAAC;EAEFxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAChCG,IAAI,CAAC,iBAAiB,EAAE,YAAY;MAClC,MAAM8B,KAAK,GAAGzB,aAAa,CAACQ,cAAc,CAAC;QACzC,GAAG,EAAGkB,IAAI,IAAK;UACb,OAAOA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,qBAAqB,CAAC;QAC9D;MACF,CAAC,CAAC;MAIFrB,YAAY,CAACgC,KAAK,CAAC,CAACT,aAAa,CAI/B,CAAC;MAEkB,MAAMS,KAAK,CAAChB,SAAS,CAAC,CAAC;MAE5ChB,YAAY,CAAiC,CAAC,CAACuB,aAAa,CAI1D,CAAC;MAEHvB,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAAS,CAAC;IAC5B,CAAC,CAAC;IAEFtB,EAAE,CAAC,qBAAqB,EAAE,MAAM;MACCM,aAAa,CAACQ,cAAc,CAAC;QAC1D,qBAAqB,EAAGkB,IAAI,IAC1BA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY;MACpD,CAAC,CAAC,CAACf,QAAQ,CAAC,CAAC,EAAE;QACbS,OAAO,EAAE,CAAC,qBAAqB;MACjC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF1B,IAAI,CAAC,qBAAqB,EAAE,YAAY;MACtC,MAAMiC,UAAU,GAAG5B,aAAa,CAACQ,cAAc,CAAC;QAC9C,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QACzD,KAAK,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,UAAU,CAAC;QAChE,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB;MACxE,CAAC,CAAC;MACFrB,YAAY,CAACmC,UAAU,CAAC,CAACZ,aAAa,CAMpC,CAAC;MAEuB,MAAMY,UAAU,CAACnB,SAAS,CAAC,CAAC;MAEtDhB,YAAY,CAAsC,CAAC,CAACuB,aAAa,CAM/D,CAAC;MAEHvB,YAAY,CAA6C,CAAC,CACvDuB,aAAa,CAAS,CAAC;MAC1BvB,YAAY,CAA6C,CAAC,CACvDuB,aAAa,CAAqB,CAAC;MACtCvB,YAAY,CAAgD,CAAC,CAC1DuB,aAAa,CAAuB,CAAC;IAC1C,CAAC,CAAC;IAEFxB,QAAQ,CAAC,sBAAsB,EAAE,MAAM;MACrCG,IAAI,CAAC,eAAe,EAAE,MAAM;QAC1B,MAAMkC,OAAO,GAAG7B,aAAa,CAACQ,cAAc,CAAC;UAC3C,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;QAC1D,CAAC,CAAC;QAEF,MAAMgB,WAAW,GAAGD,OAAO,CAACrB,cAAc,CAAC;UACzC,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,UAAU;QACjE,CAAC,CAAC;QAEFlC,YAAY,CAACqC,WAAW,CAAC,CAACd,aAAa,CAKrC,CAAC;MACL,CAAC,CAAC;MAEFrB,IAAI,CAACoC,IAAI,CAAC,4BAA4B,CAAC;IACzC,CAAC,CAAC;IAEFvC,QAAQ,CAAC,aAAa,EAAE,MAAM;MAC5BE,EAAE,CAAC,+DAA+D,EAAE,YAAY;QAC9E,MAAMkC,UAAU,GAAG5B,aAAa,CAACQ,cAAc,CAAC;UAC9C,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;UACzD,KAAK,EAAGY,IAAI,IACVA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,qBAAqB,CAAC;UACvD,KAAK,EAAGY,IAAI,IACVA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,2BAA2B;QAC9D,CAAC,CAAC;QAEwB,MAAMc,UAAU,CAACnB,SAAS,CAAC,CAAC;QAEtDhB,YAAY,CAAsC,CAAC,CAACuB,aAAa,CAM/D,CAAC;MACL,CAAC,CAAC;MAEFtB,EAAE,CACA,oFAAoF,EACpF,YAAY;QACV,MAAMsC,gBAAgB,GAAGhC,aAAa,CAACQ,cAAc,CAAC;UACpD,YAAY,EAAGkB,IAAI,IACjBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,kBAAkB,CAAC;UACpD,QAAQ,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,UAAU,CAAC;UACnE,aAAa,EAAGD,IAAI,IAClBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;UACrD,KAAK,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,KAAK,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,KAAK,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,KAAK,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,uBAAuB,EAAGY,IAAI,IAC5BA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAC5B,kCACF;QACJ,CAAC,CAAC;QAE6B,MAAMkB,gBAAgB,CAACvB,SAAS,CAAC,CAAC;QAEjEhB,YAAY,CAA2C,CAAC,CACrDuB,aAAa,CAgBZ,CAAC;MACP,CACF,CAAC;IACH,CAAC,CAAC;IAEFxB,QAAQ,CAAC,8CAA8C,EAAE,MAAM;MAC7D,MAAMoC,UAAU,GAAG5B,aAAa,CAACQ,cAAc,CAAC;QAC9C,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QACzD,KAAK,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,UAAU,CAAC;QAChE,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB;MACxE,CAAC,CAAC;MAEFpB,EAAE,CAAC,mBAAmB,EAAE,YAAY;QAClC,MAAMY,KAAK,GAAGsB,UAAU,CAACtB,KAAK,CAAC;UAAE,KAAK,EAAE;QAAE,CAAC,CAAC;QAC5C,MAAM2B,YAAY,GAAG,MAAM3B,KAAK,CAACG,SAAS,CAAC,CAAC;;QAE5C;QACA;QAcA;QACA;QAUIwB,YAAY,CAAC5B,IAAI,CAAC,CAAC,CAAC;QAEd4B,YAAY,CAAC5B,IAAI,CAAC,CAAC,CAAC,CAACJ,KAAK,CAACC,KAAK,CAACC,mBAAmB,CAACC,GAAG,EAElE;QACAX,YAAY,CAAe,CAAC,CAACuB,aAAa,CAAoB,CAAC;QAC/DvB,YAAY,CAAiC,CAAC,CAC3CuB,aAAa,CAWZ,CAAC;;QAEL;QACA;QACA;QAYI,MAAMV,KAAK,CAACG,SAAS,CAAC,CAAC;QAWvB,MAAMmB,UAAU,CAAChB,QAAQ,CAAC,CAAC,CAAC;QAChC,MAAMgB,UAAU,CAAChB,QAAQ,CAAC,CAAC,CAAC;MAC9B,CAAC,CAAC;MAEFlB,EAAE,CAAC,mBAAmB,EAAE,MAAM;QACVkC,UAAU,CAACf,SAAS,CAAC,CAAC;QACxCpB,YAAY,CAAmB,CAAC,CAACuB,aAAa,CAa5C,CAAC;MACL,CAAC,CAAC;MAEFtB,EAAE,CAAC,sBAAsB,EAAE,YAAY;QACX,MAAMkC,UAAU,CAACnB,SAAS,CAAC,CAAC;QAEtDhB,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAWZ,CAAC;MACP,CAAC,CAAC;MAEFtB,EAAE,CAAC,+BAA+B,EAAE,YAAY;QACpB,MAAMkC,UAAU,CAACnB,SAAS,CAAC;UACnDY,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ;QAClC,CAAC,CAAC;QAEF5B,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAMZ,CAAC;QAELvB,YAAY,CAA6C,CAAC,CACvDuB,aAAa,CAAS,CAAC;MAC5B,CAAC,CAAC;MAEFtB,EAAE,CAAC,gCAAgC,EAAE,YAAY;QACrB,MAAMkC,UAAU,CAACnB,SAAS,CAAC;UACnDY,OAAO,EAAE,CAAC,KAAK;QACjB,CAAC,CAAC;QAEF5B,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAIZ,CAAC;MACP,CAAC,CAAC;MAEFtB,EAAE,CAAC,oCAAoC,EAAE,YAAY;QACzB,MAAMkC,UAAU,CAACnB,SAAS,CAAC;UACnDY,OAAO,EAAE,CACP,YAAY,EACZ,UAAU,EACV,OAAO,EACP,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,aAAa;QAEjB,CAAC,CAAC;QAEF5B,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAOZ,CAAC;QACLvB,YAAY,CAA+C,CAAC,CACzDuB,aAAa,CAEZ,CAAC;MACP,CAAC,CAAC;MAEFtB,EAAE,CAAC,qCAAqC,EAAE,YAAY;QAC1B,MAAMkC,UAAU,CAACnB,SAAS,CAAC;UACnDY,OAAO,EAAE,CAAC,OAAO;QACnB,CAAC,CAAC;QAEF5B,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAEZ,CAAC;MACP,CAAC,CAAC;MAEFtB,EAAE,CAAC,4BAA4B,EAAE,YAAY;QACjB,MAAMkC,UAAU,CAACnB,SAAS,CAAC;UACnDY,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK;QAC1B,CAAC,CAAC;QAEF5B,YAAY,CAAsC,CAAC,CAChDuB,aAAa,CAOZ,CAAC;MACP,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFtB,EAAE,CAAC,4BAA4B,EAAE,MAAM;MACnBM,aAAa,CAACQ,cAAc,CAAC;QAC7C,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;MAC1D,CAAC,CAAC;MAIFrB,YAAY,CAAgB,CAAC,CAACuB,aAAa,CAIzC,CAAC;MAEgBhB,aAAa,CAACQ,cAAc,CAAC;QAC9C,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFpB,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAQ5BM,aAAa,CAACQ,cAAc,CAAC;QAC3B,KAAK,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFpB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvCM,aAAa,CAACQ,cAAc,CAAC;QAC3B,SAAS,EAAGkB,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QAC7D,mBAAmB,EAAGY,IAAI,IACxBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;QAClD,QAAQ,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;QACvE,6BAA6B,EAAGY,IAAI;QAClC;QACAA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAGY,IAAI,IACfA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,8BAA8B,CAAC;QAChE,YAAY,EAAGY,IAAI,IACjBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,wBAAwB,CAAC;QAC1D,UAAU,EAAGY,IAAI,IACfA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,sBAAsB,CAAC;QACxD,mBAAmB,EAAGY,IAAI;QACxB;QACAA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;QAClD,gCAAgC,EAAGY,IAAI,IACrCA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,0BAA0B,CAAC;QAC5D,gBAAgB,EAAGY,IAAI;QACrB;QACAA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,oBAAoB,CAAC;QACtD,6BAA6B,EAAGY,IAAI,IAClCA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,8BAA8B,CAAC;QAChE,wBAAwB,EAAGY,IAAI;QAC7B;QACAA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,4BAA4B,CAAC;QAC9D,qCAAqC,EAAGY,IAAI,IAC1CA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAC5B,sCACF,CAAC;QACH,aAAa,EAAGY,IAAI,IAAK;UACvBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,iCAAiC,CAAC;UACjEY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,2BAA2B,CAAC;UAC3DY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,iBAAiB,CAAC;UACjDY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,iBAAiB,CAAC;UACjDY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,yBAAyB,CAAC;UACzD,OAAOY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,wBAAwB,CAAC;QACjE,CAAC;QACD,eAAe,EAAGY,IAAI,IAAK;UACzBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mCAAmC,CAAC;UACnEY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,6BAA6B,CAAC;UAC7DY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;UACnDY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;UACnDY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,2BAA2B,CAAC;UAC3D,OAAOY,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,0BAA0B,CAAC;QACnE;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFpB,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAMwC,gBAAgB,GAAGlC,aAAa,CAACQ,cAAc,CAAC;QACpD,gBAAgB,EAAGkB,IAAI,IACrBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;QACrD,gBAAgB,EAAGY,IAAI,IACrBA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;QACrD,sCAAsC,EAAGY,IAAI,IAC3CA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gCAAgC,CAAC;QAClE,gCAAgC,EAAGY,IAAI,IACrCA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,0BAA0B,CAAC;QAC5D,wBAAwB,EAAGY,IAAI,IAC7BA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QAC1C,WAAW,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;QACvE,WAAW,EAAGY,IAAI,IAAKA,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB;MACxE,CAAC,CAAC,CAACL,SAAS,CAAC,CAAC;MAEd,MAAM0B,MAAM,GAAG,CAAC,MAAMD,gBAAgB,EAAE7B,IAAI,CAAC,CAAC,CAAC;MAC/CZ,YAAY,CAAC,CAAC,MAAMyC,gBAAgB,EAAE7B,IAAI,CAAC,CAAC,CAAC,CAAC,CAACW,aAAa,CAU1D,CAAC;MAEHvB,YAAY,CAAC0C,MAAM,CAACC,cAAc,CAAC,CAACpB,aAAa,CAAqB,CAAC;MACvEvB,YAAY,CAAC0C,MAAM,CAACE,cAAc,CAAC,CAACrB,aAAa,CAAqB,CAAC;MACvEvB,YAAY,CAAC0C,MAAM,CAACG,oCAAoC,CAAC,CAACtB,aAAa,CAErE,CAAC;MACHvB,YAAY,CAAC0C,MAAM,CAACI,8BAA8B,CAAC,CAACvB,aAAa,CAE/D,CAAC;MACHvB,YAAY,CAAC0C,MAAM,CAACK,sBAAsB,CAAC,CAACxB,aAAa,CAAS,CAAC;MACnEvB,YAAY,CAAC0C,MAAM,CAACM,SAAS,CAAC,CAACzB,aAAa,CAAqB,CAAC;MAClEvB,YAAY,CAAC0C,MAAM,CAACO,SAAS,CAAC,CAAC1B,aAAa,CAAqB,CAAC;IACpE,CAAC,CAAC;IAEFtB,EAAE,CAAC,8CAA8C,EAAE,MAAM;MAOhD;;MAEPD,YAAY,CAEV,CAAC,CAACkD,OAAO,CAAC3B,aAAa,CAKvB,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;EACFxB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BE,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,KAAKM,aAAa,CAACc,SAAS,CAAC;QAC3B,SAAS,EAAE;UACT,iBAAiB,EAAE,KAAK;UACxB,iBAAiB,EAAE,MAAM;UACzB,iCAAiC,EAAE,KAAK;UACxC,2BAA2B,EAAE,MAAM;UACnC,mBAAmB,EAAE,MAAM;UAC3B,mBAAmB,EAAE,KAAK;UAC1B,mCAAmC,EAAE,KAAK;UAC1C,6BAA6B,EAAE;QACjC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACFtB,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC5B,yBAAyB;;IACzBA,QAAQ,CAAC,qBAAqB,EAAE,MAAM;MACpCE,EAAE,CAAC,+EAA+E,EAAE,MAAM;QACtEM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAMkB,eAAe,GAAGlB,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACzD,YACF,CAAC;YAEDlC,YAAY,CAACmD,eAAe,CAAC,CAAC5B,aAAa;YAO3C4B,eAAe,CAACC,GAAG,CAAC,CAAC,CAAC;YACtBD,eAAe,CAACE,QAAQ,CAAC,CAAC,CAAC;YAC3BF,eAAe,CAACG,QAAQ,CAAC,CAAC,CAAC;YAC3BH,eAAe,CAACI,MAAM,CAAC,CAAC,CAAC;YACzBJ,eAAe,CAACK,GAAG,CAAC,CAAC;YACrBL,eAAe,CAACM,MAAM,CAAC,CAAC;YACxBN,eAAe,CAACO,GAAG,CAAC,CAAC,CAAC;YACtBP,eAAe,CAACQ,GAAG,CAAC,CAAC,CAAC;;YAEtB;YACAR,eAAe,CAACS,WAAW,CAAC,GAAG,CAAC;YAEhC5D,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,kBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,MACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,mBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,YACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YAEH,OAAO4B,eAAe;UACxB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFlD,EAAE,CAAC,uDAAuD,EAAE,MAAM;QAC9CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAMkB,eAAe,GAAGlB,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACzD,YACF,CAAC;YAEDlC,YAAY,CAACmD,eAAe,CAAC,CAAC5B,aAAa;YAO3C4B,eAAe,CAACC,GAAG,CAAC,CAAC,CAAC;YACtBD,eAAe,CAACE,QAAQ,CAAC,CAAC,CAAC;YAC3BF,eAAe,CAACG,QAAQ,CAAC,CAAC,CAAC;YAC3BH,eAAe,CAACI,MAAM,CAAC,CAAC,CAAC;YACzBJ,eAAe,CAACK,GAAG,CAAC,CAAC;YACrBL,eAAe,CAACM,MAAM,CAAC,CAAC;YACxBN,eAAe,CAACO,GAAG,CAAC,CAAC,CAAC;YACtBP,eAAe,CAACQ,GAAG,CAAC,CAAC,CAAC;;YAEtB;YACAR,eAAe,CAACS,WAAW,CAAC,GAAG,CAAC;YAEhC5D,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,kBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,MACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,mBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjC,YACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YAEH,OAAO4B,eAAe;UACxB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFlD,EAAE,CAAC,uDAAuD,EAAE,MAAM;QAC9CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM4B,cAAc,GAAG5B,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CACnD,gBACF,CAAC;YAEDrB,YAAY,CAAC6D,cAAc,CAAC,CAACtC,aAAa;YAO1CsC,cAAc,CAACT,GAAG,CAAC,CAAC,CAAC;YACrBS,cAAc,CAACR,QAAQ,CAAC,CAAC,CAAC;YAC1BQ,cAAc,CAACP,QAAQ,CAAC,CAAC,CAAC;YAC1BO,cAAc,CAACN,MAAM,CAAC,CAAC,CAAC;YACxBM,cAAc,CAACL,GAAG,CAAC,CAAC;YACpBK,cAAc,CAACJ,MAAM,CAAC,CAAC;YACvBI,cAAc,CAACH,GAAG,CAAC,CAAC,CAAC;YACrBG,cAAc,CAACF,GAAG,CAAC,CAAC,CAAC;YAErB3D,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC,CAACE,aAAa,CAKb,CAAC;YAEHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC,CAACE,aAAa,CAKb,CAAC;YAEHvB,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC,CAACE,aAAa,CAKb,CAAC;YAEH,MAAMuC,WAAW,GAAG7B,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CACjD,wBACF,CAAC;YACDrB,YAAY,CACV8D,WACF,CAAC,CAACvC,aAAa,CAKb,CAAC;;YAEH;YACAuC,WAAW,CAACC,IAAI,CAAC,CAAC,CAAC;YAEnB/D,YAAY,CACViC,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAC7B,wBACF,CACF,CAAC,CAACE,aAAa,CAKb,CAAC;YAEH,OAAOsC,cAAc;UACvB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF5D,EAAE,CAAC,iCAAiC,EAAE,MAAM;QACxBM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM+B,UAAU,GAAG/B,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY,CAAC,CACjEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAACkB,GAAG,CAChDnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAClC,CAAC;YACHlC,YAAY,CAACgE,UAAU,CAAC,CAACzC,aAAa,CAEpC,CAAC;YAEH,MAAM0C,YAAY,GAAGhC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACtD,YACF,CAAC,CACEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAACkB,GAAG,CAC/CnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAClC,CAAC;YACHlC,YAAY,CAACiE,YAAY,CAAC,CAAC1C,aAAa,CAKtC,CAAC;YAEH,MAAM2C,aAAa,GAAGjC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACvD,mBACF,CAAC,CACEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAACkB,GAAG,CAC/CnB,IAAI,CAACC,cAAc,CAAC,mBAAmB,CACzC,CAAC;YACHlC,YAAY,CAACkE,aAAa,CAAC,CAAC3C,aAAa,CAKvC,CAAC;YAEH,MAAM4C,WAAW,GAAGlC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACrD,mBACF,CAAC,CACEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAChDlC,YAAY,CAACmE,WAAW,CAAC,CAAC5C,aAAa,CAErC,CAAC;YAEH,MAAM6C,SAAS,GAAGnC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY,CAAC,CAChEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YACzClC,YAAY,CAACoE,SAAS,CAAC,CAAC7C,aAAa,CAKnC,CAAC;YAEH,MAAM8C,kBAAkB,GAAGpC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAC5D,YACF,CAAC,CAACkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAACkB,GAAG,CACjDnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAClC,CAAC,CAACkB,GAAG,CACHnB,IAAI,CAACC,cAAc,CAAC,kBAAkB,CACxC,CAAC,CAACkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YACxClC,YAAY,CAACqE,kBAAkB,CAAC,CAAC9C,aAAa,CAK5C,CAAC;YAEH,MAAM+C,qBAAqB,GAAGrC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAC/D,MACF,CAAC,CAACkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YACxClC,YAAY,CAACsE,qBAAqB,CAAC,CAAC/C,aAAa,CAK/C,CAAC;YAEH,MAAMgD,0BAA0B,GAAGtC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CACpDY,cAAc,CACb,MACF,CAAC,CAACkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1ClC,YAAY,CAACuE,0BAA0B,CAAC,CAAChD,aAAa,CAKpD,CAAC;YAEH,OAAO8C,kBAAkB;UAC3B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFpE,EAAE,CAAC,2CAA2C,EAAE,MAAM;QAClCM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM8B,IAAI,GAAG9B,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY,CAAC,CAC3DkB,GAAG,CAAC,CAAC,CAAC;YACTpD,YAAY,CAAC+D,IAAI,CAAC,CAACxC,aAAa,CAK9B,CAAC;YAEH,OAAOwC,IAAI;UACb;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF9D,EAAE,CAAC,0CAA0C,EAAE,MAAM;QACjCM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM8B,IAAI,GAAG9B,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY,CAAC,CAC3DkB,GAAG,CAACnB,IAAI,CAACuC,QAAQ,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/BzE,YAAY,CAAC+D,IAAI,CAAC,CAACxC,aAAa,CAK9B,CAAC;YAEH,MAAMmD,oBAAoB,GAAGzC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAC9D,YACF,CAAC,CACEkB,GAAG,CAACnB,IAAI,CAACuC,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC3E,YAAY,CAAC0E,oBAAoB,CAAC,CAACnD,aAAa,CAK9C,CAAC;YAEH,OAAOwC,IAAI;UACb;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF9D,EAAE,CAAC,oDAAoD,EAAE,MAAM;QAC3CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY,CAAC,CAC7DkB,GAAG,CACFnB,IAAI,CAACX,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC;YACHrB,YAAY,CAAC4E,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF3E,EAAE,CAAC,wDAAwD,EAAE,MAAM;QAC/CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,YAAY,CAAC,CAC7DkB,GAAG,CACFnB,IAAI,CAACC,cAAc,CAAC,kBAAkB,CACxC,CAAC;YACHlC,YAAY,CAAC4E,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;IACF7E,QAAQ,CAAC,sBAAsB,EAAE,MAAM;MACrCE,EAAE,CAAC,qDAAqD,EAAE,MAAM;QAC5CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM4C,gBAAgB,GAAG5C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAC1D,eACF,CAAC;YAEDlC,YAAY,CAAC6E,gBAAgB,CAAC,CAACtD,aAAa,CAK1C,CAAC;YAEHsD,gBAAgB,CAACnB,GAAG,CAACzB,IAAI,CAACC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC1D2C,gBAAgB,CAAClB,GAAG,CAAC1B,IAAI,CAACC,cAAc,CAAC,aAAa,CAAC,CAAC;YAExDlC,YAAY,CAACiC,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,aAAa,CAAC,CAAC,CAC7DX,aAAa,CAKZ,CAAC;YAEL,OAAOsD,gBAAgB;UACzB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF5E,EAAE,CAAC,kCAAkC,EAAE,MAAM;QACzBM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAMyB,GAAG,GAAGzB,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,eAAe,CAAC,CAC7DwB,GAAG,CAACzB,IAAI,CAACC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC1ClC,YAAY,CAAC0D,GAAG,CAAC,CAACnC,aAAa,CAK7B,CAAC;YAEH,MAAMoC,GAAG,GAAG1B,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,eAAe,CAAC,CAC7DyB,GAAG,CAAC1B,IAAI,CAACC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC5ClC,YAAY,CAAC2D,GAAG,CAAC,CAACpC,aAAa,CAK7B,CAAC;YAEH,OAAOmC,GAAG;UACZ;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFzD,EAAE,CAAC,0CAA0C,EAAE,MAAM;QACjCM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM6C,qBAAqB,GAAG7C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAC/D,eACF,CAAC,CACEyB,GAAG,CAAC1B,IAAI,CAACuC,QAAQ,CAACO,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACtD/E,YAAY,CAAC8E,qBAAqB,CAAC,CAACvD,aAAa,CAK/C,CAAC;YAEH,MAAMyD,qBAAqB,GAAG/C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAC/D,eACF,CAAC,CACEyB,GAAG,CAAC1B,IAAI,CAACuC,QAAQ,CAACS,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACvDjF,YAAY,CAACgF,qBAAqB,CAAC,CAACzD,aAAa,CAK/C,CAAC;YAEH,OAAOyD,qBAAqB;UAC9B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF/E,EAAE,CAAC,oDAAoD,EAAE,MAAM;QAC3CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,eAAe,CAAC,CAChEyB,GAAG,CACF1B,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACA,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CACjD,aACF,CACF,CAAC;YACHlC,YAAY,CAAC4E,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF3E,EAAE,CAAC,wDAAwD,EAAE,MAAM;QAC/CM,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGkB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACX,OAAO,CAAC,MAAM,CAAC,CAACY,cAAc,CAAC,eAAe,CAAC,CAChEyB,GAAG,CACF1B,IAAI,CAACC,cAAc,CAAC,aAAa,CACnC,CAAC;YACHlC,YAAY,CAAC4E,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","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","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"],"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 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});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WirePropertyTypes.js","names":[],"sources":["WirePropertyTypes.ts"],"sourcesContent":["/*\n * Copyright 2023 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\nexport type WirePropertyTypes =\n | BaseWirePropertyTypes\n | Record<string, BaseWirePropertyTypes>;\n\nexport type BaseWirePropertyTypes =\n | \"string\"\n | \"datetime\"\n | \"double\"\n | \"boolean\"\n | \"integer\"\n | \"timestamp\"\n | \"short\"\n | \"long\"\n | \"float\"\n | \"decimal\"\n | \"byte\"\n | \"marking\"\n | \"mediaReference\"\n | \"numericTimeseries\"\n | \"stringTimeseries\"\n | \"sensorTimeseries\"\n | \"attachment\"\n | \"geopoint\"\n | \"geoshape\"\n | \"geotimeSeriesReference\";\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"WirePropertyTypes.js","names":[],"sources":["WirePropertyTypes.ts"],"sourcesContent":["/*\n * Copyright 2023 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\nexport type WirePropertyTypes =\n | BaseWirePropertyTypes\n | Record<string, BaseWirePropertyTypes>;\n\nexport type BaseWirePropertyTypes =\n | \"string\"\n | \"datetime\"\n | \"double\"\n | \"boolean\"\n | \"integer\"\n | \"timestamp\"\n | \"short\"\n | \"long\"\n | \"float\"\n | \"decimal\"\n | \"byte\"\n | \"marking\"\n | \"mediaReference\"\n | \"numericTimeseries\"\n | \"stringTimeseries\"\n | \"sensorTimeseries\"\n | \"attachment\"\n | \"geopoint\"\n | \"geoshape\"\n | \"geotimeSeriesReference\"\n | \"vector\";\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmployeeApiTest.js","names":["EmployeeApiTest","type","apiName"],"sources":["EmployeeApiTest.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 type {\n ObjectMetadata as $ObjectMetadata,\n ObjectSet as $ObjectSet,\n ObjectTypeDefinition as $ObjectTypeDefinition,\n PropertyDef as $PropertyDef,\n PropertyValueWireToClient as $PropType,\n SingleLinkAccessor as $SingleLinkAccessor,\n} from \"../index.js\";\n\nexport namespace EmployeeApiTest {\n export type PropertyKeys =\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\n export interface Links {\n readonly lead: $SingleLinkAccessor<EmployeeApiTest>;\n readonly peeps: EmployeeApiTest.ObjectSet;\n }\n\n export interface Props {\n readonly class: $PropType[\"string\"] | undefined;\n readonly fullName: $PropType[\"string\"] | undefined;\n readonly employeeId: $PropType[\"integer\"] | undefined;\n readonly attachment: $PropType[\"attachment\"] | undefined;\n readonly geopoint: $PropType[\"geopoint\"] | undefined;\n readonly timeseries: $PropType[\"numericTimeseries\"] | undefined;\n readonly mediaReference: $PropType[\"mediaReference\"] | undefined;\n readonly geotimeSeriesReference:\n | $PropType[\"geotimeSeriesReference\"]\n | undefined;\n readonly isActive: $PropType[\"boolean\"] | undefined;\n readonly yearsOfExperience: $PropType[\"long\"] | undefined;\n readonly rank: $PropType[\"short\"] | undefined;\n readonly performanceScore: $PropType[\"double\"] | undefined;\n readonly hourlyRate: $PropType[\"float\"] | undefined;\n readonly dateOfJoining: $PropType[\"datetime\"] | undefined;\n readonly lastUpdated: $PropType[\"timestamp\"] | undefined;\n }\n export type StrictProps = Props;\n\n export interface ObjectSet\n extends $ObjectSet<EmployeeApiTest, EmployeeApiTest.ObjectSet>\n {}\n}\n\nexport interface EmployeeApiTest extends $ObjectTypeDefinition {\n type: \"object\";\n apiName: \"Employee\";\n __DefinitionMetadata?: {\n objectSet: EmployeeApiTest.ObjectSet;\n props: EmployeeApiTest.Props;\n linksType: EmployeeApiTest.Links;\n strictProps: EmployeeApiTest.StrictProps;\n apiName: \"Employee\";\n description: \"A full-time or part-time \\n\\n employee of our firm\";\n displayName: \"Employee\";\n icon: {\n type: \"blueprint\";\n color: \"blue\";\n name: \"person\";\n };\n implements: [\"FooInterface\"];\n interfaceMap: {\n FooInterface: {\n fooSpt: \"fullName\";\n };\n };\n inverseInterfaceMap: {\n FooInterface: {\n fullName: \"fooSpt\";\n };\n };\n links: {\n lead: $ObjectMetadata.Link<EmployeeApiTest, false>;\n peeps: $ObjectMetadata.Link<EmployeeApiTest, true>;\n };\n pluralDisplayName: \"Employees\";\n primaryKeyApiName: \"employeeId\";\n primaryKeyType: \"integer\";\n properties: {\n class: $PropertyDef<\"string\", \"nullable\", \"single\">;\n fullName: $PropertyDef<\"string\", \"nullable\", \"single\">;\n employeeId: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n attachment: $PropertyDef<\"attachment\", \"nullable\", \"single\">;\n geopoint: $PropertyDef<\"geopoint\", \"nullable\", \"single\">;\n timeseries: $PropertyDef<\"numericTimeseries\", \"nullable\", \"single\">;\n mediaReference: $PropertyDef<\"mediaReference\", \"nullable\", \"single\">;\n geotimeSeriesReference: $PropertyDef<\n \"geotimeSeriesReference\",\n \"nullable\",\n \"single\"\n >;\n isActive: $PropertyDef<\"boolean\", \"nullable\", \"single\">;\n yearsOfExperience: $PropertyDef<\"long\", \"nullable\", \"single\">;\n rank: $PropertyDef<\"short\", \"nullable\", \"single\">;\n performanceScore: $PropertyDef<\"double\", \"nullable\", \"single\">;\n hourlyRate: $PropertyDef<\"float\", \"nullable\", \"single\">;\n dateOfJoining: $PropertyDef<\"datetime\", \"nullable\", \"single\">;\n lastUpdated: $PropertyDef<\"timestamp\", \"nullable\", \"single\">;\n };\n rid: \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\";\n status: \"ACTIVE\";\n titleProperty: \"fullName\";\n type: \"object\";\n visibility: \"NORMAL\";\n };\n}\n\nexport const EmployeeApiTest: EmployeeApiTest = {\n type: \"object\",\n apiName: \"Employee\",\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"file":"EmployeeApiTest.js","names":["EmployeeApiTest","type","apiName"],"sources":["EmployeeApiTest.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 type {\n ObjectMetadata as $ObjectMetadata,\n ObjectSet as $ObjectSet,\n ObjectTypeDefinition as $ObjectTypeDefinition,\n PropertyDef as $PropertyDef,\n PropertyValueWireToClient as $PropType,\n SingleLinkAccessor as $SingleLinkAccessor,\n} from \"../index.js\";\n\nexport namespace EmployeeApiTest {\n export type PropertyKeys =\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 export interface Links {\n readonly lead: $SingleLinkAccessor<EmployeeApiTest>;\n readonly peeps: EmployeeApiTest.ObjectSet;\n }\n\n export interface Props {\n readonly class: $PropType[\"string\"] | undefined;\n readonly fullName: $PropType[\"string\"] | undefined;\n readonly employeeId: $PropType[\"integer\"] | undefined;\n readonly attachment: $PropType[\"attachment\"] | undefined;\n readonly geopoint: $PropType[\"geopoint\"] | undefined;\n readonly timeseries: $PropType[\"numericTimeseries\"] | undefined;\n readonly mediaReference: $PropType[\"mediaReference\"] | undefined;\n readonly geotimeSeriesReference:\n | $PropType[\"geotimeSeriesReference\"]\n | undefined;\n readonly isActive: $PropType[\"boolean\"] | undefined;\n readonly yearsOfExperience: $PropType[\"long\"] | undefined;\n readonly rank: $PropType[\"short\"] | undefined;\n readonly performanceScore: $PropType[\"double\"] | undefined;\n readonly hourlyRate: $PropType[\"float\"] | undefined;\n readonly dateOfJoining: $PropType[\"datetime\"] | undefined;\n readonly lastUpdated: $PropType[\"timestamp\"] | undefined;\n readonly skillSet: $PropType[\"string\"] | undefined;\n readonly skillSetEmbedding: $PropType[\"vector\"] | undefined;\n }\n export type StrictProps = Props;\n\n export interface ObjectSet\n extends $ObjectSet<EmployeeApiTest, EmployeeApiTest.ObjectSet>\n {}\n}\n\nexport interface EmployeeApiTest extends $ObjectTypeDefinition {\n type: \"object\";\n apiName: \"Employee\";\n __DefinitionMetadata?: {\n objectSet: EmployeeApiTest.ObjectSet;\n props: EmployeeApiTest.Props;\n linksType: EmployeeApiTest.Links;\n strictProps: EmployeeApiTest.StrictProps;\n apiName: \"Employee\";\n description: \"A full-time or part-time \\n\\n employee of our firm\";\n displayName: \"Employee\";\n icon: {\n type: \"blueprint\";\n color: \"blue\";\n name: \"person\";\n };\n implements: [\"FooInterface\"];\n interfaceMap: {\n FooInterface: {\n fooSpt: \"fullName\";\n };\n };\n inverseInterfaceMap: {\n FooInterface: {\n fullName: \"fooSpt\";\n };\n };\n links: {\n lead: $ObjectMetadata.Link<EmployeeApiTest, false>;\n peeps: $ObjectMetadata.Link<EmployeeApiTest, true>;\n };\n pluralDisplayName: \"Employees\";\n primaryKeyApiName: \"employeeId\";\n primaryKeyType: \"integer\";\n properties: {\n class: $PropertyDef<\"string\", \"nullable\", \"single\">;\n fullName: $PropertyDef<\"string\", \"nullable\", \"single\">;\n employeeId: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n attachment: $PropertyDef<\"attachment\", \"nullable\", \"single\">;\n geopoint: $PropertyDef<\"geopoint\", \"nullable\", \"single\">;\n timeseries: $PropertyDef<\"numericTimeseries\", \"nullable\", \"single\">;\n mediaReference: $PropertyDef<\"mediaReference\", \"nullable\", \"single\">;\n geotimeSeriesReference: $PropertyDef<\n \"geotimeSeriesReference\",\n \"nullable\",\n \"single\"\n >;\n isActive: $PropertyDef<\"boolean\", \"nullable\", \"single\">;\n yearsOfExperience: $PropertyDef<\"long\", \"nullable\", \"single\">;\n rank: $PropertyDef<\"short\", \"nullable\", \"single\">;\n performanceScore: $PropertyDef<\"double\", \"nullable\", \"single\">;\n hourlyRate: $PropertyDef<\"float\", \"nullable\", \"single\">;\n dateOfJoining: $PropertyDef<\"datetime\", \"nullable\", \"single\">;\n lastUpdated: $PropertyDef<\"timestamp\", \"nullable\", \"single\">;\n skillSet: $PropertyDef<\"string\", \"nullable\", \"single\">;\n skillSetEmbedding: $PropertyDef<\"vector\", \"nullable\", \"single\">;\n };\n rid: \"ri.ontology.main.object-type.401ac022-89eb-4591-8b7e-0a912b9efb44\";\n status: \"ACTIVE\";\n titleProperty: \"fullName\";\n type: \"object\";\n visibility: \"NORMAL\";\n };\n}\n\nexport const EmployeeApiTest: EmployeeApiTest = {\n type: \"object\",\n apiName: \"Employee\",\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiIA,OAAO,MAAMA,eAAgC,GAAG;EAC9CC,IAAI,EAAE,QAAQ;EACdC,OAAO,EAAE;AACX,CAAC","ignoreList":[]}
|
|
@@ -224,6 +224,7 @@ interface PropertyValueWireToClient {
|
|
|
224
224
|
stringTimeseries: TimeSeriesProperty<string>;
|
|
225
225
|
sensorTimeseries: TimeSeriesProperty<string | number>;
|
|
226
226
|
geotimeSeriesReference: GeotimeSeriesProperty<GeoJSON.Point>;
|
|
227
|
+
vector: number[];
|
|
227
228
|
}
|
|
228
229
|
type GetClientPropertyValueFromWire<T extends keyof PropertyValueWireToClient | Record<string, keyof PropertyValueWireToClient>> = T extends keyof PropertyValueWireToClient ? PropertyValueWireToClient[T] : T extends Record<string, keyof PropertyValueWireToClient> ? {
|
|
229
230
|
[K in keyof T]: PropertyValueWireToClient[T[K]];
|
|
@@ -254,10 +255,37 @@ interface PropertyValueClientToWire {
|
|
|
254
255
|
stringTimeseries: TimeSeriesProperty<string>;
|
|
255
256
|
sensorTimeseries: TimeSeriesProperty<string | number>;
|
|
256
257
|
geotimeSeriesReference: GeotimeSeriesProperty<GeoJSON.Point>;
|
|
258
|
+
vector: number[];
|
|
257
259
|
}
|
|
258
260
|
type GetWirePropertyValueFromClient<T extends keyof PropertyValueClientToWire | Record<string, keyof PropertyValueClientToWire>> = T extends keyof PropertyValueClientToWire ? PropertyValueClientToWire[T] : T extends Record<string, keyof PropertyValueClientToWire> ? {
|
|
259
261
|
[K in keyof T]: PropertyValueClientToWire[T[K]];
|
|
260
262
|
} : never;
|
|
263
|
+
interface PropertyValueWireToCreate {
|
|
264
|
+
attachment: Attachment | string;
|
|
265
|
+
boolean: boolean;
|
|
266
|
+
byte: number;
|
|
267
|
+
datetime: string;
|
|
268
|
+
decimal: string;
|
|
269
|
+
double: number;
|
|
270
|
+
float: number;
|
|
271
|
+
geopoint: GeoJSON.Point;
|
|
272
|
+
geoshape: GeoJSON.GeoJSON;
|
|
273
|
+
integer: number;
|
|
274
|
+
long: string;
|
|
275
|
+
marking: string;
|
|
276
|
+
mediaReference: Media;
|
|
277
|
+
short: number;
|
|
278
|
+
string: string;
|
|
279
|
+
timestamp: string;
|
|
280
|
+
numericTimeseries: TimeSeriesProperty<number>;
|
|
281
|
+
stringTimeseries: TimeSeriesProperty<string>;
|
|
282
|
+
sensorTimeseries: TimeSeriesProperty<string | number>;
|
|
283
|
+
geotimeSeriesReference: GeotimeSeriesProperty<GeoJSON.Point>;
|
|
284
|
+
vector: number[];
|
|
285
|
+
}
|
|
286
|
+
type GetCreatePropertyValueFromWire<T extends keyof PropertyValueWireToCreate | Record<string, keyof PropertyValueWireToCreate>> = T extends keyof PropertyValueWireToCreate ? PropertyValueWireToCreate[T] : T extends Record<string, keyof PropertyValueWireToCreate> ? {
|
|
287
|
+
[K in keyof T]: PropertyValueWireToCreate[T[K]];
|
|
288
|
+
} : never;
|
|
261
289
|
|
|
262
290
|
type IncludeValuesExtending<T extends Record<keyof any, any>, M> = {
|
|
263
291
|
[K in keyof T as T[K] extends M ? K : never]: T[K];
|
|
@@ -272,7 +300,7 @@ type PrimaryKeyTypes = "string" | "datetime" | "double" | "integer" | "timestamp
|
|
|
272
300
|
type VersionString<Major extends number, Minor extends number, Patch extends number> = `${Major}.${Minor}.${Patch}`;
|
|
273
301
|
|
|
274
302
|
type WirePropertyTypes = BaseWirePropertyTypes | Record<string, BaseWirePropertyTypes>;
|
|
275
|
-
type BaseWirePropertyTypes = "string" | "datetime" | "double" | "boolean" | "integer" | "timestamp" | "short" | "long" | "float" | "decimal" | "byte" | "marking" | "mediaReference" | "numericTimeseries" | "stringTimeseries" | "sensorTimeseries" | "attachment" | "geopoint" | "geoshape" | "geotimeSeriesReference";
|
|
303
|
+
type BaseWirePropertyTypes = "string" | "datetime" | "double" | "boolean" | "integer" | "timestamp" | "short" | "long" | "float" | "decimal" | "byte" | "marking" | "mediaReference" | "numericTimeseries" | "stringTimeseries" | "sensorTimeseries" | "attachment" | "geopoint" | "geoshape" | "geotimeSeriesReference" | "vector";
|
|
276
304
|
|
|
277
305
|
type CompileTimeMetadata<T extends {
|
|
278
306
|
__DefinitionMetadata?: {};
|
|
@@ -431,8 +459,16 @@ type BaseGroupByValue = "exact" | {
|
|
|
431
459
|
type ExactGroupByWithOptions = {
|
|
432
460
|
$exact: {
|
|
433
461
|
$limit?: number;
|
|
434
|
-
|
|
435
|
-
|
|
462
|
+
} & ({
|
|
463
|
+
$defaultValue?: undefined;
|
|
464
|
+
$includeNullValue?: false;
|
|
465
|
+
} | {
|
|
466
|
+
$defaultValue: string;
|
|
467
|
+
$includeNullValue?: false;
|
|
468
|
+
} | {
|
|
469
|
+
$defaultValue?: never;
|
|
470
|
+
$includeNullValue: true;
|
|
471
|
+
});
|
|
436
472
|
};
|
|
437
473
|
type GroupByRange<T> = [T, T];
|
|
438
474
|
type StringGroupByValue = BaseGroupByValue;
|
|
@@ -509,10 +545,20 @@ type AggregateOpts<Q extends ObjectOrInterfaceDefinition> = {
|
|
|
509
545
|
$groupBy?: GroupByClause<Q>;
|
|
510
546
|
};
|
|
511
547
|
|
|
512
|
-
type AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<Q extends ObjectOrInterfaceDefinition, AO extends AggregateOpts<Q>> =
|
|
548
|
+
type AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<Q extends ObjectOrInterfaceDefinition, AO extends AggregateOpts<Q>> = ContainsExactMatchWithNull<AO["$groupBy"]> extends true ? {
|
|
549
|
+
$groupBy: AO["$groupBy"];
|
|
550
|
+
$select: UnorderedAggregationClause<Q>;
|
|
551
|
+
} : SingleKeyObject<AO["$groupBy"]> extends never ? (AO["$select"] extends UnorderedAggregationClause<Q> ? AggregateOptsThatErrors<Q, AO> : {} extends AO["$groupBy"] ? AggregateOptsThatErrors<Q, AO> : {
|
|
513
552
|
$groupBy: AO["$groupBy"];
|
|
514
553
|
$select: UnorderedAggregationClause<Q>;
|
|
515
554
|
}) : AggregateOptsThatErrors<Q, AO>;
|
|
555
|
+
type ContainsExactMatchWithNull<GB extends GroupByClause<any> | undefined> = undefined extends GB ? false : {} extends GB ? false : {
|
|
556
|
+
[P in keyof GB]: GB[P] extends {
|
|
557
|
+
$exact: {
|
|
558
|
+
$includeNullValue: true;
|
|
559
|
+
};
|
|
560
|
+
} ? true : false;
|
|
561
|
+
}[keyof GB];
|
|
516
562
|
type AggregateOptsThatErrors<Q extends ObjectOrInterfaceDefinition, AO extends AggregateOpts<Q>> = AO & {
|
|
517
563
|
$select: Pick<AO["$select"], keyof AggregateOpts<Q>["$select"] & keyof AO["$select"]> & Record<Exclude<keyof AO["$select"], keyof AggregateOpts<Q>["$select"]>, never>;
|
|
518
564
|
} & (unknown extends AO["$groupBy"] ? {} : Exclude<AO["$groupBy"], undefined> extends never ? {} : {
|
|
@@ -522,13 +568,18 @@ type AggregateOptsThatErrors<Q extends ObjectOrInterfaceDefinition, AO extends A
|
|
|
522
568
|
type MaybeArray<T extends {
|
|
523
569
|
multiplicity?: boolean | undefined;
|
|
524
570
|
}, U> = T["multiplicity"] extends true ? Array<U> : U;
|
|
525
|
-
type MaybeNullable<T extends ObjectMetadata.Property, U> = T["nullable"] extends true ? U | undefined : U;
|
|
571
|
+
type MaybeNullable$1<T extends ObjectMetadata.Property, U> = T["nullable"] extends true ? U | undefined : U;
|
|
526
572
|
type Converted<T> = T extends Array<any> ? T[1] : T;
|
|
527
573
|
/**
|
|
528
574
|
* @param {T} ObjectMetadata.Property in literal form
|
|
529
575
|
* @param {STRICTLY_ENFORCE_NULLABLE} S for strict. If false, always `|undefined`
|
|
530
576
|
*/
|
|
531
|
-
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<T, MaybeArray<T, Converted<GetClientPropertyValueFromWire<T["type"]>>>>;
|
|
577
|
+
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"]>>>>;
|
|
578
|
+
/**
|
|
579
|
+
* @param {T} ObjectMetadata.Property in literal form
|
|
580
|
+
* @param {STRICTLY_ENFORCE_NULLABLE} S for strict. If false, always `|undefined`
|
|
581
|
+
*/
|
|
582
|
+
type OsdkObjectCreatePropertyType<T extends ObjectMetadata.Property, STRICTLY_ENFORCE_NULLABLE extends boolean = true> = STRICTLY_ENFORCE_NULLABLE extends false ? MaybeArray<T, Converted<GetCreatePropertyValueFromWire<T["type"]>>> | undefined : MaybeNullable$1<T, MaybeArray<T, Converted<GetCreatePropertyValueFromWire<T["type"]>>>>;
|
|
532
583
|
|
|
533
584
|
type ExtractPropName<T extends string> = T extends `${infer PropName}:${string}` ? PropName : T extends "$count" ? T : never;
|
|
534
585
|
type ExtractMetricNameForPropName<T, PropName extends string> = T extends `${PropName}:${infer MetricName}` ? MetricName : never;
|
|
@@ -545,9 +596,14 @@ type AggregationResultsWithGroups<Q extends ObjectOrInterfaceDefinition, A exten
|
|
|
545
596
|
} ? {
|
|
546
597
|
startValue: T;
|
|
547
598
|
endValue: T;
|
|
548
|
-
} : OsdkObjectPropertyType<CompileTimeMetadata<Q>["properties"][P], true
|
|
599
|
+
} : MaybeNullable<G[P], OsdkObjectPropertyType<CompileTimeMetadata<Q>["properties"][P], true>>;
|
|
549
600
|
};
|
|
550
601
|
} & AggregationResultsWithoutGroups<Q, A>)[];
|
|
602
|
+
type MaybeNullable<GROUP, VALUE> = GROUP extends {
|
|
603
|
+
$exact: {
|
|
604
|
+
$includeNullValue: true;
|
|
605
|
+
};
|
|
606
|
+
} ? VALUE | null : VALUE;
|
|
551
607
|
|
|
552
608
|
type AggregationsResults<Q extends ObjectOrInterfaceDefinition, AO extends AggregateOpts<Q>> = Exclude<keyof AO["$select"], ValidAggregationKeys<Q>> extends never ? unknown extends AO["$groupBy"] ? AggregationResultsWithoutGroups<Q, AO["$select"]> : Exclude<AO["$groupBy"], undefined> extends never ? AggregationResultsWithoutGroups<Q, AO["$select"]> : Exclude<keyof AO["$groupBy"], AggregatableKeys<Q>> extends never ? AggregationResultsWithGroups<Q, AO["$select"], AO["$groupBy"]> : `Sorry, the following are not valid groups for an aggregation: ${Exclude<keyof AO["$groupBy"] & string, AggregatableKeys<Q>>}` : `Sorry, the following are not valid selectors for an aggregation: ${Exclude<keyof AO["$select"] & string, ValidAggregationKeys<Q>>}`;
|
|
553
609
|
|
|
@@ -698,6 +754,12 @@ declare namespace Osdk {
|
|
|
698
754
|
readonly $clone: <NEW_PROPS extends PropertyKeys<Q>>(updatedObject?: Osdk.Instance<Q, any, NEW_PROPS> | {
|
|
699
755
|
[K in NEW_PROPS]?: CompileTimeMetadata<Q>["props"][K];
|
|
700
756
|
}) => Osdk.Instance<Q, OPTIONS, P | NEW_PROPS>;
|
|
757
|
+
readonly $__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata: Q extends ObjectTypeDefinition ? {
|
|
758
|
+
ObjectMetadata: Q;
|
|
759
|
+
} : {
|
|
760
|
+
ObjectMetadata: ObjectMetadata;
|
|
761
|
+
InterfaceMetadata: InterfaceMetadata;
|
|
762
|
+
};
|
|
701
763
|
} & (IsNever<OPTIONS> extends true ? {} : IsAny<OPTIONS> extends true ? {} : "$rid" extends OPTIONS ? {
|
|
702
764
|
readonly $rid: string;
|
|
703
765
|
} : {});
|
|
@@ -1114,6 +1176,21 @@ interface FetchPageSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends
|
|
|
1114
1176
|
*/
|
|
1115
1177
|
<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>>>>>;
|
|
1116
1178
|
}
|
|
1179
|
+
interface NearestNeighbors<Q extends ObjectOrInterfaceDefinition> {
|
|
1180
|
+
/**
|
|
1181
|
+
* Finds the nearest neighbors for a given text or vector within the object set.
|
|
1182
|
+
*
|
|
1183
|
+
* @param query - Queries support either a vector matching the embedding model defined on the property, or text that is
|
|
1184
|
+
automatically embedded.
|
|
1185
|
+
* @param numNeighbors - The number of objects to return. If the number of documents in the objectType is less than the provided
|
|
1186
|
+
value, all objects will be returned. This value is limited to 1 ≤ numNeighbors ≥ 500.
|
|
1187
|
+
* @param property - The property key with a defined embedding model to search over.
|
|
1188
|
+
*
|
|
1189
|
+
* @returns An object set containing the `numNeighbors` nearest neighbors. To return the objects ordered by relevance and each
|
|
1190
|
+
* objects associated score, specify "relevance" in the orderBy.
|
|
1191
|
+
*/
|
|
1192
|
+
readonly nearestNeighbors: (query: string | number[], numNeighbors: number, property: PropertyKeys.Filtered<Q, "vector">) => this;
|
|
1193
|
+
}
|
|
1117
1194
|
interface FetchPageWithErrorsSignature<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = {}> {
|
|
1118
1195
|
/**
|
|
1119
1196
|
* Gets a page of objects of this type, with a result wrapper
|
|
@@ -1277,7 +1354,7 @@ interface Subscribe<Q extends ObjectOrInterfaceDefinition> {
|
|
|
1277
1354
|
unsubscribe: () => void;
|
|
1278
1355
|
};
|
|
1279
1356
|
}
|
|
1280
|
-
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> {
|
|
1357
|
+
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> {
|
|
1281
1358
|
}
|
|
1282
1359
|
|
|
1283
|
-
export {
|
|
1360
|
+
export { type InterfaceMetadata 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, ObjectSetArgs as H, type InterfaceDefinition as I, type SelectArg as J, type SelectArgToKeys as K, type FetchPageResult as L, type MediaReference as M, NullabilityAdherence as N, type ObjectTypeDefinition as O, type PropertyValueWireToClient as P, type SingleOsdkResult as Q, type ReleaseStatus as R, type SingleLinkAccessor as S, type Media as T, type MediaMetadata as U, type ValidAggregationKeys as V, type WhereClause as W, isOk as X, type Result as Y, type BaseObjectSet as Z, ObjectSetSubscription as _, type MediaUpload as a, type ObjectOrInterfaceDefinition 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, Osdk as aa, type PageResult as ab, TimeseriesDurationMapping as ac, type GeotimeSeriesProperty as ad, type TimeSeriesPoint as ae, type TimeSeriesProperty as af, type TimeSeriesQuery as ag, type LinkedType as ah, type LinkNames as ai, type ExtractOptions as aj, type MinimalObjectSet as ak, type Attachment as b, type ObjectIdentifiers as c, type OsdkObjectPrimaryKeyType as d, type ObjectSet as e, type OsdkMetadata 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 };
|