@osdk/api 2.6.0-rc.14 → 2.7.0-beta.1
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 +0 -9
- package/build/browser/OsdkObjectFrom.js.map +1 -1
- package/build/browser/derivedProperties/DerivedProperty.js.map +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +22 -0
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/ontology/ObjectTypeDefinition.js.map +1 -1
- package/build/browser/ontology/valueFormatting/PropertyBooleanFormattingRule.js +2 -0
- package/build/browser/ontology/valueFormatting/PropertyBooleanFormattingRule.js.map +1 -0
- package/build/browser/ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.js +2 -0
- package/build/browser/ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.js.map +1 -0
- package/build/browser/ontology/valueFormatting/PropertyKnownTypeFormattingRule.js +2 -0
- package/build/browser/ontology/valueFormatting/PropertyKnownTypeFormattingRule.js.map +1 -0
- package/build/browser/ontology/valueFormatting/PropertyNumberFormattingRule.js +2 -0
- package/build/browser/ontology/valueFormatting/PropertyNumberFormattingRule.js.map +1 -0
- package/build/browser/ontology/valueFormatting/PropertyValueFormattingRule.js +2 -0
- package/build/browser/ontology/valueFormatting/PropertyValueFormattingRule.js.map +1 -0
- package/build/browser/ontology/valueFormatting/PropertyValueFormattingUtils.js +2 -0
- package/build/browser/ontology/valueFormatting/PropertyValueFormattingUtils.js.map +1 -0
- package/build/cjs/{ObjectSet-DMlVNQym.d.cts → ObjectSet-Dtb6G0ll.d.cts} +203 -2
- package/build/cjs/index.d.cts +2 -2
- package/build/cjs/public/unstable.d.cts +2 -2
- package/build/esm/OsdkObjectFrom.js.map +1 -1
- package/build/esm/derivedProperties/DerivedProperty.js.map +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +22 -0
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/ontology/ObjectTypeDefinition.js.map +1 -1
- package/build/esm/ontology/valueFormatting/PropertyBooleanFormattingRule.js +2 -0
- package/build/esm/ontology/valueFormatting/PropertyBooleanFormattingRule.js.map +1 -0
- package/build/esm/ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.js +2 -0
- package/build/esm/ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.js.map +1 -0
- package/build/esm/ontology/valueFormatting/PropertyKnownTypeFormattingRule.js +2 -0
- package/build/esm/ontology/valueFormatting/PropertyKnownTypeFormattingRule.js.map +1 -0
- package/build/esm/ontology/valueFormatting/PropertyNumberFormattingRule.js +2 -0
- package/build/esm/ontology/valueFormatting/PropertyNumberFormattingRule.js.map +1 -0
- package/build/esm/ontology/valueFormatting/PropertyValueFormattingRule.js +2 -0
- package/build/esm/ontology/valueFormatting/PropertyValueFormattingRule.js.map +1 -0
- package/build/esm/ontology/valueFormatting/PropertyValueFormattingUtils.js +2 -0
- package/build/esm/ontology/valueFormatting/PropertyValueFormattingUtils.js.map +1 -0
- package/build/types/OsdkObjectFrom.d.ts +4 -0
- package/build/types/OsdkObjectFrom.d.ts.map +1 -1
- package/build/types/derivedProperties/DerivedProperty.d.ts +10 -1
- package/build/types/derivedProperties/DerivedProperty.d.ts.map +1 -1
- package/build/types/index.d.ts +6 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/ontology/ObjectTypeDefinition.d.ts +2 -0
- package/build/types/ontology/ObjectTypeDefinition.d.ts.map +1 -1
- package/build/types/ontology/valueFormatting/PropertyBooleanFormattingRule.d.ts +5 -0
- package/build/types/ontology/valueFormatting/PropertyBooleanFormattingRule.d.ts.map +1 -0
- package/build/types/ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.d.ts +37 -0
- package/build/types/ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.d.ts.map +1 -0
- package/build/types/ontology/valueFormatting/PropertyKnownTypeFormattingRule.d.ts +8 -0
- package/build/types/ontology/valueFormatting/PropertyKnownTypeFormattingRule.d.ts.map +1 -0
- package/build/types/ontology/valueFormatting/PropertyNumberFormattingRule.d.ts +117 -0
- package/build/types/ontology/valueFormatting/PropertyNumberFormattingRule.d.ts.map +1 -0
- package/build/types/ontology/valueFormatting/PropertyValueFormattingRule.d.ts +8 -0
- package/build/types/ontology/valueFormatting/PropertyValueFormattingRule.d.ts.map +1 -0
- package/build/types/ontology/valueFormatting/PropertyValueFormattingUtils.d.ts +12 -0
- package/build/types/ontology/valueFormatting/PropertyValueFormattingUtils.d.ts.map +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OsdkObjectFrom.js","names":["Osdk"],"sources":["OsdkObjectFrom.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\nimport type {\n DefaultToFalse,\n OsdkObjectLinksObject,\n} from \"./definitions/LinkDefinitions.js\";\nimport type {\n NullabilityAdherence,\n ObjectSetArgs,\n} from \"./object/FetchPageArgs.js\";\nimport type { UnionIfTrue } from \"./object/FetchPageResult.js\";\nimport type {\n InterfaceDefinition,\n InterfaceMetadata,\n} from \"./ontology/InterfaceDefinition.js\";\nimport type {\n ObjectOrInterfaceDefinition,\n PropertyKeys,\n} from \"./ontology/ObjectOrInterface.js\";\nimport type {\n CompileTimeMetadata,\n ObjectMetadata,\n ObjectTypeDefinition,\n} from \"./ontology/ObjectTypeDefinition.js\";\nimport type { SimplePropertyDef } from \"./ontology/SimplePropertyDef.js\";\nimport type { OsdkBase } from \"./OsdkBase.js\";\n\ntype DropDollarOptions<T extends string> = Exclude<\n T,\n \"$rid\" | \"$all\" | \"$notStrict\"\n>;\n\ntype DropDollarAll<T extends string> = Exclude<\n T,\n \"$all\"\n>;\n\ntype SpecialOsdkPropParams =\n | \"$all\"\n | \"$rid\"\n | \"$strict\"\n | \"$notStrict\";\n\ntype ValidOsdkPropParams<Q extends ObjectOrInterfaceDefinition> =\n | SpecialOsdkPropParams\n | PropertyKeys<Q>;\n\nexport type ApiNameAsString<\n T extends ObjectOrInterfaceDefinition,\n> = CompileTimeMetadata<T>[\"apiName\"];\n\nexport type JustProps<\n T extends ObjectOrInterfaceDefinition,\n P extends ValidOsdkPropParams<T>,\n> = P extends \"$all\" ? PropertyKeys<T>\n : Exclude<P, SpecialOsdkPropParams>;\n\nexport type PropMapToObject<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ObjectTypeDefinition,\n> = NonNullable<CompileTimeMetadata<TO>[\"interfaceMap\"]>[ApiNameAsString<FROM>];\n\nexport type MapPropNamesToObjectType<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ObjectTypeDefinition,\n P extends ValidOsdkPropParams<FROM>,\n OPTIONS extends never | \"$rid\" | \"$allBaseProperties\" = never,\n> = \"$allBaseProperties\" extends OPTIONS\n ? PropertyKeys<FROM> extends P ? PropertyKeys<TO>\n : PropMapToObject<\n FROM,\n TO\n >[JustProps<FROM, P> & keyof PropMapToObject<FROM, TO>]\n : PropMapToObject<\n FROM,\n TO\n >[JustProps<FROM, P> & keyof PropMapToObject<FROM, TO>];\n\ntype NamespaceOf<S extends string> = S extends `${infer Before}.${infer After}`\n ? After extends `${string}.${string}` ? `${Before}.${NamespaceOf<After>}`\n : Before\n : never;\n\ntype MaybeStripNamespaces<S extends string, TO extends InterfaceDefinition> =\n S extends `${NamespaceOf<S>}.${infer Rest}`\n ? NamespaceOf<S> extends NamespaceOf<ApiNameAsString<TO>> ? Rest : S\n : S;\n\nexport type PropMapToInterface<\n FROM extends ObjectTypeDefinition,\n TO extends InterfaceDefinition,\n> = NonNullable<\n CompileTimeMetadata<FROM>[\"inverseInterfaceMap\"]\n>[ApiNameAsString<TO>];\n\nexport type MapPropNamesToInterface<\n FROM extends ObjectTypeDefinition,\n TO extends InterfaceDefinition,\n P extends ValidOsdkPropParams<FROM>,\n> = MaybeStripNamespaces<\n PropMapToInterface<\n FROM,\n TO\n >[JustProps<FROM, P> & keyof PropMapToInterface<FROM, TO>],\n TO\n>;\n/**\n * Older version of this helper that allows for `$rid` and co in\n * the properties field.\n * @param FROM - the interface or object type to convert from\n * @param TO - the interface or object type to convert to\n * @param P - the property(s) to convert\n */\nexport type ConvertProps<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ValidToFrom<FROM>,\n P extends ValidOsdkPropParams<FROM>,\n OPTIONS extends never | \"$rid\" | \"$allBaseProperties\" = never,\n> = TO extends FROM ? P\n : TO extends ObjectTypeDefinition ? (\n UnionIfTrue<\n MapPropNamesToObjectType<FROM, TO, P, OPTIONS>,\n P extends \"$rid\" ? true : false,\n \"$rid\"\n >\n )\n : TO extends InterfaceDefinition ? FROM extends ObjectTypeDefinition ? (\n UnionIfTrue<\n MapPropNamesToInterface<FROM, TO, P>,\n P extends \"$rid\" ? true : false,\n \"$rid\"\n >\n )\n : never\n : never;\n\n/** DO NOT EXPORT FROM PACKAGE */\nexport type ValidToFrom<\n FROM extends ObjectOrInterfaceDefinition,\n> = FROM extends InterfaceDefinition ? ObjectOrInterfaceDefinition\n : InterfaceDefinition;\n\nexport type IsNever<T> = [T] extends [never] ? true : false;\n\ntype ExtractPropsKeysFromOldPropsStyle<\n Q extends ObjectOrInterfaceDefinition,\n P extends ValidOsdkPropParams<Q>,\n> = P extends \"$all\" ? PropertyKeys<Q>\n : Exclude<P, \"$strict\" | \"$notStrict\" | \"$rid\">;\n\nexport type IsAny<T> = unknown extends T\n ? [keyof T] extends [never] ? false : true\n : false;\n\nexport type GetPropsKeys<\n Q extends ObjectOrInterfaceDefinition,\n P extends PropertyKeys<Q>,\n N extends boolean = false,\n> = IsNever<P> extends true ? N extends true ? never : PropertyKeys<Q>\n : IsAny<P> extends true ? PropertyKeys<Q>\n : P;\n\n/**\n * Use `Osdk.Instance` or `YourType.OsdkInstance`\n */\nexport type Osdk<\n Q extends ObjectOrInterfaceDefinition,\n OPTIONS extends string = never,\n P extends PropertyKeys<Q> = PropertyKeys<Q>,\n> =\n // no middle options is simplest\n IsNever<OPTIONS> extends true ? Osdk.Instance<Q, never, P>\n : IsAny<OPTIONS> extends true ? Osdk.Instance<Q, never, P>\n // Options only includes the two allowed in the new style\n : (IsNever<Exclude<OPTIONS, \"$rid\">>) extends true\n ? Osdk.Instance<Q, OPTIONS & \"$rid\", P>\n // else we are in the old style which was just Q and OPTIONS\n // and OPTIONS was $things + prop names\n : Osdk.Instance<\n Q,\n (\"$rid\" extends OPTIONS ? \"$rid\" : never),\n ExtractPropsKeysFromOldPropsStyle<Q, OPTIONS>\n >;\n\nexport type MaybeScore<\n T extends Osdk.Instance<any>,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<any>,\n> = ORDER_BY_OPTIONS extends \"relevance\" ? T & { $score: number } : T;\n\nexport namespace Osdk {\n export type Instance<\n Q extends ObjectOrInterfaceDefinition,\n OPTIONS extends never | \"$rid\" | \"$allBaseProperties\" = never,\n P extends PropertyKeys<Q> = PropertyKeys<Q>,\n R extends Record<string, SimplePropertyDef> = {},\n > =\n & OsdkBase<Q>\n & Pick<\n CompileTimeMetadata<Q>[\"props\"],\n // If there aren't any additional properties, then we want GetPropsKeys to default to PropertyKeys<Q>\n GetPropsKeys<Q, P, [R] extends [{}] ? false : true>\n >\n & ([R] extends [never] ? {}\n : { [A in keyof R]: SimplePropertyDef.ToRuntimeProperty<R[A]> })\n & {\n readonly $link: Q extends { linksType?: any } ? Q[\"linksType\"]\n : Q extends ObjectOrInterfaceDefinition ? OsdkObjectLinksObject<Q>\n : never;\n\n readonly $as: <NEW_Q extends ValidToFrom<Q>>(\n type: NEW_Q | string,\n ) => Osdk.Instance<\n NEW_Q,\n OPTIONS,\n ConvertProps<Q, NEW_Q, P, OPTIONS>\n >;\n\n readonly $clone: <NEW_PROPS extends PropertyKeys<Q>>(\n updatedObject?:\n | Osdk.Instance<Q, any, NEW_PROPS>\n | {\n [K in NEW_PROPS]?: CompileTimeMetadata<\n Q\n >[\"props\"][K];\n },\n ) => Osdk.Instance<Q, OPTIONS, P | NEW_PROPS>;\n\n readonly $__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata: Q extends\n ObjectTypeDefinition ? {\n ObjectMetadata: ObjectMetadata;\n }\n : {\n ObjectMetadata: ObjectMetadata;\n InterfaceMetadata: InterfaceMetadata;\n };\n }\n // We are hiding the $rid field if it wasn't requested as we want to discourage its use\n & (IsNever<OPTIONS> extends true ? {}\n : IsAny<OPTIONS> extends true ? {}\n : \"$rid\" extends OPTIONS ? { readonly $rid: string }\n : {});\n}\n\n/**\n * NOT EXPORTED FROM PACKAGE\n *\n * Anything you throw at this that is not `false` should always be `never`.\n *\n * This is structured in a way that it should always short circuit to never early.\n */\nexport type ExtractStrictOption<S extends NullabilityAdherence> =\n IsNever<S> extends true ? never\n : \"throw\" extends S ? never // catches any time \"throw\" still exists (including any)\n : \"drop\" extends S ? never // catches any time \"drop\" still exists (including any)\n : \"$notStrict\";\n\n/**\n * NOT EXPORTED FROM PACKAGE\n *\n * Anything you throw at this that is not exactly `true` should always be `never`.\n */\nexport type ExtractRidOption<R extends boolean> = // comment for readability\n IsNever<R> extends true ? never\n : DefaultToFalse<R> extends false ? never\n : \"$rid\";\n\nexport type ExtractAllPropertiesOption<T extends boolean> = // comment for readability\n IsNever<T> extends true ? never\n : DefaultToFalse<T> extends false ? never\n : \"$allBaseProperties\";\n\n// not exported from package\nexport type ExtractOptions<\n R extends boolean,\n S extends NullabilityAdherence = NullabilityAdherence.Default,\n T extends boolean = false,\n> = ExtractRidOption<R> | ExtractAllPropertiesOption<T>;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0GA;AACA;AACA;AACA;AACA;AACA;AACA;AAwBA;AA0BA;AACA;AACA;AAFA,WA2BiBA,IAAI;AAsDrB;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AAWA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OsdkObjectFrom.js","names":["Osdk"],"sources":["OsdkObjectFrom.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\nimport type {\n DefaultToFalse,\n OsdkObjectLinksObject,\n} from \"./definitions/LinkDefinitions.js\";\nimport type {\n NullabilityAdherence,\n ObjectSetArgs,\n} from \"./object/FetchPageArgs.js\";\nimport type { UnionIfTrue } from \"./object/FetchPageResult.js\";\nimport type {\n InterfaceDefinition,\n InterfaceMetadata,\n} from \"./ontology/InterfaceDefinition.js\";\nimport type {\n ObjectOrInterfaceDefinition,\n PropertyKeys,\n} from \"./ontology/ObjectOrInterface.js\";\nimport type {\n CompileTimeMetadata,\n ObjectMetadata,\n ObjectTypeDefinition,\n} from \"./ontology/ObjectTypeDefinition.js\";\nimport type { SimplePropertyDef } from \"./ontology/SimplePropertyDef.js\";\nimport type { OsdkBase } from \"./OsdkBase.js\";\n\ntype DropDollarOptions<T extends string> = Exclude<\n T,\n \"$rid\" | \"$all\" | \"$notStrict\"\n>;\n\ntype DropDollarAll<T extends string> = Exclude<\n T,\n \"$all\"\n>;\n\ntype SpecialOsdkPropParams =\n | \"$all\"\n | \"$rid\"\n | \"$strict\"\n | \"$notStrict\";\n\ntype ValidOsdkPropParams<Q extends ObjectOrInterfaceDefinition> =\n | SpecialOsdkPropParams\n | PropertyKeys<Q>;\n\nexport type ApiNameAsString<\n T extends ObjectOrInterfaceDefinition,\n> = CompileTimeMetadata<T>[\"apiName\"];\n\nexport type JustProps<\n T extends ObjectOrInterfaceDefinition,\n P extends ValidOsdkPropParams<T>,\n> = P extends \"$all\" ? PropertyKeys<T>\n : Exclude<P, SpecialOsdkPropParams>;\n\nexport type PropMapToObject<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ObjectTypeDefinition,\n> = NonNullable<CompileTimeMetadata<TO>[\"interfaceMap\"]>[ApiNameAsString<FROM>];\n\nexport type MapPropNamesToObjectType<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ObjectTypeDefinition,\n P extends ValidOsdkPropParams<FROM>,\n OPTIONS extends never | \"$rid\" | \"$allBaseProperties\" = never,\n> = \"$allBaseProperties\" extends OPTIONS\n ? PropertyKeys<FROM> extends P ? PropertyKeys<TO>\n : PropMapToObject<\n FROM,\n TO\n >[JustProps<FROM, P> & keyof PropMapToObject<FROM, TO>]\n : PropMapToObject<\n FROM,\n TO\n >[JustProps<FROM, P> & keyof PropMapToObject<FROM, TO>];\n\ntype NamespaceOf<S extends string> = S extends `${infer Before}.${infer After}`\n ? After extends `${string}.${string}` ? `${Before}.${NamespaceOf<After>}`\n : Before\n : never;\n\ntype MaybeStripNamespaces<S extends string, TO extends InterfaceDefinition> =\n S extends `${NamespaceOf<S>}.${infer Rest}`\n ? NamespaceOf<S> extends NamespaceOf<ApiNameAsString<TO>> ? Rest : S\n : S;\n\nexport type PropMapToInterface<\n FROM extends ObjectTypeDefinition,\n TO extends InterfaceDefinition,\n> = NonNullable<\n CompileTimeMetadata<FROM>[\"inverseInterfaceMap\"]\n>[ApiNameAsString<TO>];\n\nexport type MapPropNamesToInterface<\n FROM extends ObjectTypeDefinition,\n TO extends InterfaceDefinition,\n P extends ValidOsdkPropParams<FROM>,\n> = MaybeStripNamespaces<\n PropMapToInterface<\n FROM,\n TO\n >[JustProps<FROM, P> & keyof PropMapToInterface<FROM, TO>],\n TO\n>;\n/**\n * Older version of this helper that allows for `$rid` and co in\n * the properties field.\n * @param FROM - the interface or object type to convert from\n * @param TO - the interface or object type to convert to\n * @param P - the property(s) to convert\n */\nexport type ConvertProps<\n FROM extends ObjectOrInterfaceDefinition,\n TO extends ValidToFrom<FROM>,\n P extends ValidOsdkPropParams<FROM>,\n OPTIONS extends never | \"$rid\" | \"$allBaseProperties\" = never,\n> = TO extends FROM ? P\n : TO extends ObjectTypeDefinition ? (\n UnionIfTrue<\n MapPropNamesToObjectType<FROM, TO, P, OPTIONS>,\n P extends \"$rid\" ? true : false,\n \"$rid\"\n >\n )\n : TO extends InterfaceDefinition ? FROM extends ObjectTypeDefinition ? (\n UnionIfTrue<\n MapPropNamesToInterface<FROM, TO, P>,\n P extends \"$rid\" ? true : false,\n \"$rid\"\n >\n )\n : never\n : never;\n\n/** DO NOT EXPORT FROM PACKAGE */\nexport type ValidToFrom<\n FROM extends ObjectOrInterfaceDefinition,\n> = FROM extends InterfaceDefinition ? ObjectOrInterfaceDefinition\n : InterfaceDefinition;\n\nexport type IsNever<T> = [T] extends [never] ? true : false;\n\ntype ExtractPropsKeysFromOldPropsStyle<\n Q extends ObjectOrInterfaceDefinition,\n P extends ValidOsdkPropParams<Q>,\n> = P extends \"$all\" ? PropertyKeys<Q>\n : Exclude<P, \"$strict\" | \"$notStrict\" | \"$rid\">;\n\nexport type IsAny<T> = unknown extends T\n ? [keyof T] extends [never] ? false : true\n : false;\n\nexport type GetPropsKeys<\n Q extends ObjectOrInterfaceDefinition,\n P extends PropertyKeys<Q>,\n N extends boolean = false,\n> = IsNever<P> extends true ? N extends true ? never : PropertyKeys<Q>\n : IsAny<P> extends true ? PropertyKeys<Q>\n : P;\n\n/**\n * Use `Osdk.Instance` or `YourType.OsdkInstance`\n */\nexport type Osdk<\n Q extends ObjectOrInterfaceDefinition,\n OPTIONS extends string = never,\n P extends PropertyKeys<Q> = PropertyKeys<Q>,\n> =\n // no middle options is simplest\n IsNever<OPTIONS> extends true ? Osdk.Instance<Q, never, P>\n : IsAny<OPTIONS> extends true ? Osdk.Instance<Q, never, P>\n // Options only includes the two allowed in the new style\n : (IsNever<Exclude<OPTIONS, \"$rid\">>) extends true\n ? Osdk.Instance<Q, OPTIONS & \"$rid\", P>\n // else we are in the old style which was just Q and OPTIONS\n // and OPTIONS was $things + prop names\n : Osdk.Instance<\n Q,\n (\"$rid\" extends OPTIONS ? \"$rid\" : never),\n ExtractPropsKeysFromOldPropsStyle<Q, OPTIONS>\n >;\n\nexport type MaybeScore<\n T extends Osdk.Instance<any>,\n ORDER_BY_OPTIONS extends ObjectSetArgs.OrderByOptions<any>,\n> = ORDER_BY_OPTIONS extends \"relevance\" ? T & { $score: number } : T;\n\nexport namespace Osdk {\n export type Instance<\n Q extends ObjectOrInterfaceDefinition,\n OPTIONS extends never | \"$rid\" | \"$allBaseProperties\" = never,\n P extends PropertyKeys<Q> = PropertyKeys<Q>,\n R extends Record<string, SimplePropertyDef> = {},\n > =\n & OsdkBase<Q>\n & Pick<\n CompileTimeMetadata<Q>[\"props\"],\n // If there aren't any additional properties, then we want GetPropsKeys to default to PropertyKeys<Q>\n GetPropsKeys<Q, P, [R] extends [{}] ? false : true>\n >\n & ([R] extends [never] ? {}\n : { [A in keyof R]: SimplePropertyDef.ToRuntimeProperty<R[A]> })\n & {\n readonly $link: Q extends { linksType?: any } ? Q[\"linksType\"]\n : Q extends ObjectOrInterfaceDefinition ? OsdkObjectLinksObject<Q>\n : never;\n\n readonly $as: <NEW_Q extends ValidToFrom<Q>>(\n type: NEW_Q | string,\n ) => Osdk.Instance<\n NEW_Q,\n OPTIONS,\n ConvertProps<Q, NEW_Q, P, OPTIONS>\n >;\n\n readonly $clone: <NEW_PROPS extends PropertyKeys<Q>>(\n updatedObject?:\n | Osdk.Instance<Q, any, NEW_PROPS>\n | {\n [K in NEW_PROPS]?: CompileTimeMetadata<\n Q\n >[\"props\"][K];\n },\n ) => Osdk.Instance<Q, OPTIONS, P | NEW_PROPS>;\n\n readonly $__EXPERIMENTAL__NOT_SUPPORTED_YET__metadata: Q extends\n ObjectTypeDefinition ? {\n ObjectMetadata: ObjectMetadata;\n }\n : {\n ObjectMetadata: ObjectMetadata;\n InterfaceMetadata: InterfaceMetadata;\n };\n\n readonly $__EXPERIMENTAL__NOT_SUPPORTED_YET__getFormattedValue: <\n PropertyApiName extends PropertyKeys<Q>,\n >(\n propertyApiName: PropertyApiName,\n options?: { locale?: string; timezoneId?: string },\n ) => string | undefined;\n }\n // We are hiding the $rid field if it wasn't requested as we want to discourage its use\n & (IsNever<OPTIONS> extends true ? {}\n : IsAny<OPTIONS> extends true ? {}\n : \"$rid\" extends OPTIONS ? { readonly $rid: string }\n : {});\n}\n\n/**\n * NOT EXPORTED FROM PACKAGE\n *\n * Anything you throw at this that is not `false` should always be `never`.\n *\n * This is structured in a way that it should always short circuit to never early.\n */\nexport type ExtractStrictOption<S extends NullabilityAdherence> =\n IsNever<S> extends true ? never\n : \"throw\" extends S ? never // catches any time \"throw\" still exists (including any)\n : \"drop\" extends S ? never // catches any time \"drop\" still exists (including any)\n : \"$notStrict\";\n\n/**\n * NOT EXPORTED FROM PACKAGE\n *\n * Anything you throw at this that is not exactly `true` should always be `never`.\n */\nexport type ExtractRidOption<R extends boolean> = // comment for readability\n IsNever<R> extends true ? never\n : DefaultToFalse<R> extends false ? never\n : \"$rid\";\n\nexport type ExtractAllPropertiesOption<T extends boolean> = // comment for readability\n IsNever<T> extends true ? never\n : DefaultToFalse<T> extends false ? never\n : \"$allBaseProperties\";\n\n// not exported from package\nexport type ExtractOptions<\n R extends boolean,\n S extends NullabilityAdherence = NullabilityAdherence.Default,\n T extends boolean = false,\n> = ExtractRidOption<R> | ExtractAllPropertiesOption<T>;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0GA;AACA;AACA;AACA;AACA;AACA;AACA;AAwBA;AA0BA;AACA;AACA;AAFA,WA2BiBA,IAAI;AA6DrB;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AAWA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DerivedProperty.js","names":["DerivedProperty"],"sources":["DerivedProperty.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { ValidAggregationKeys } from \"../aggregate/AggregatableKeys.js\";\nimport type { WhereClause } from \"../aggregate/WhereClause.js\";\nimport type {\n ObjectOrInterfaceDefinition,\n PropertyKeys,\n} from \"../ontology/ObjectOrInterface.js\";\nimport type { CompileTimeMetadata } from \"../ontology/ObjectTypeDefinition.js\";\nimport type { SimplePropertyDef } from \"../ontology/SimplePropertyDef.js\";\nimport type { LinkedType, LinkNames } from \"../util/LinkUtils.js\";\nimport type {\n DatetimeExpressions,\n DefinitionForType,\n NumericExpressions,\n} from \"./Expressions.js\";\nimport type {\n CollectWithPropAggregations,\n MinMaxWithPropAggregateOption,\n} from \"./WithPropertiesAggregationOptions.js\";\n\ndeclare const DerivedPropertyDefinitionBrand: unique symbol;\n\nexport namespace DerivedProperty {\n export interface Definition<\n T extends SimplePropertyDef,\n Q extends ObjectOrInterfaceDefinition,\n > {\n readonly [DerivedPropertyDefinitionBrand]: true;\n }\n\n export interface NumericPropertyDefinition<\n T extends SimplePropertyDef,\n Q extends ObjectOrInterfaceDefinition,\n > extends Definition<T, Q>, NumericExpressions<Q, T> {}\n\n export interface DatetimePropertyDefinition<\n T extends SimplePropertyDef,\n Q extends ObjectOrInterfaceDefinition,\n > extends Definition<T, Q>, DatetimeExpressions<Q, T> {}\n\n export type Creator<\n Q extends ObjectOrInterfaceDefinition,\n T extends SimplePropertyDef,\n > = (\n baseObjectSet: Builder<Q, false>,\n ) =>\n | Definition<T, Q>\n | NumericPropertyDefinition<T, Q>\n | DatetimePropertyDefinition<T, Q>;\n\n export type Clause<\n Q extends ObjectOrInterfaceDefinition,\n > = {\n [key: string]: Creator<Q, SimplePropertyDef>;\n };\n\n interface BaseBuilder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends Filterable<Q, CONSTRAINED>, Pivotable<Q, CONSTRAINED> {\n }\n\n export interface Builder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends BaseBuilder<Q, CONSTRAINED>, Selectable<Q> {\n }\n\n export interface AggregateBuilder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends BaseBuilder<Q, CONSTRAINED>, Aggregatable<Q> {\n }\n\n export interface SelectPropertyBuilder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends AggregateBuilder<Q, CONSTRAINED>, Selectable<Q> {\n }\n\n export type ValidParts = \"DAYS\" | \"MONTHS\" | \"QUARTERS\" | \"YEARS\";\n}\n\ntype BuilderTypeFromConstraint<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n> = CONSTRAINED extends true ? DerivedProperty.AggregateBuilder<Q, true>\n : DerivedProperty.SelectPropertyBuilder<Q, false>;\n\ntype Filterable<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n> = {\n readonly where: (\n clause: WhereClause<Q>,\n ) => BuilderTypeFromConstraint<Q, CONSTRAINED>;\n};\n\ntype Pivotable<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n> = {\n readonly pivotTo: <L extends LinkNames<Q>>(\n type: L,\n ) => CONSTRAINED extends true\n ? DerivedProperty.AggregateBuilder<LinkedType<Q, L>, true>\n : NonNullable<CompileTimeMetadata<Q>[\"links\"][L][\"multiplicity\"]> extends\n true ? DerivedProperty.AggregateBuilder<LinkedType<Q, L>, true>\n : DerivedProperty.SelectPropertyBuilder<LinkedType<Q, L>, false>;\n};\n\ntype Aggregatable<\n Q extends ObjectOrInterfaceDefinition,\n> = {\n readonly aggregate: <\n V extends ValidAggregationKeys<\n Q,\n \"withPropertiesAggregate\"\n >,\n >(\n aggregationSpecifier: V,\n opts?: V extends `${any}:${infer P}`\n ? P extends CollectWithPropAggregations ? { limit: number }\n : P extends \"approximatePercentile\" ? { percentile: number }\n : never\n : never,\n ) => DefinitionForType<\n Q,\n V extends `${infer N}:${infer P}`\n ? P extends CollectWithPropAggregations ? SimplePropertyDef.Make<\n CompileTimeMetadata<Q>[\"properties\"][N][\"type\"],\n \"nullable\",\n \"array\"\n >\n : P extends MinMaxWithPropAggregateOption ? SimplePropertyDef.Make<\n CompileTimeMetadata<Q>[\"properties\"][N][\"type\"],\n \"nullable\",\n \"single\"\n >\n : P extends \"approximateDistinct\" | \"exactDistinct\"\n ? SimplePropertyDef.Make<\n \"integer\",\n \"non-nullable\",\n \"single\"\n >\n : SimplePropertyDef.Make<\n \"double\",\n \"nullable\",\n \"single\"\n >\n : V extends \"$count\" ? SimplePropertyDef.Make<\n \"integer\",\n \"non-nullable\",\n \"single\"\n >\n : never\n >;\n};\n\ntype Selectable<Q extends ObjectOrInterfaceDefinition> = {\n readonly selectProperty: <R extends PropertyKeys<Q>>(\n propertyName: R,\n ) => DefinitionForType<\n Q,\n SimplePropertyDef.Make<\n CompileTimeMetadata<Q>[\"properties\"][R][\"type\"],\n CompileTimeMetadata<Q>[\"properties\"][R][\"nullable\"] extends true\n ? \"nullable\"\n : \"non-nullable\",\n CompileTimeMetadata<Q>[\"properties\"][R][\"multiplicity\"] extends true\n ? \"array\"\n : \"single\"\n >\n >;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,WAqCiBA,eAAe","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DerivedProperty.js","names":["DerivedProperty"],"sources":["DerivedProperty.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { ValidAggregationKeys } from \"../aggregate/AggregatableKeys.js\";\nimport type { WhereClause } from \"../aggregate/WhereClause.js\";\nimport type {\n ObjectOrInterfaceDefinition,\n PropertyKeys,\n} from \"../ontology/ObjectOrInterface.js\";\nimport type { CompileTimeMetadata } from \"../ontology/ObjectTypeDefinition.js\";\nimport type { SimplePropertyDef } from \"../ontology/SimplePropertyDef.js\";\nimport type { LinkedType, LinkNames } from \"../util/LinkUtils.js\";\nimport type {\n DatetimeExpressions,\n DefinitionForType,\n NumericExpressions,\n} from \"./Expressions.js\";\nimport type {\n CollectWithPropAggregations,\n MinMaxWithPropAggregateOption,\n} from \"./WithPropertiesAggregationOptions.js\";\n\ndeclare const DerivedPropertyDefinitionBrand: unique symbol;\n\nexport namespace DerivedProperty {\n export interface Definition<\n T extends SimplePropertyDef,\n Q extends ObjectOrInterfaceDefinition,\n > {\n readonly [DerivedPropertyDefinitionBrand]: true;\n }\n\n export interface NumericPropertyDefinition<\n T extends SimplePropertyDef,\n Q extends ObjectOrInterfaceDefinition,\n > extends Definition<T, Q>, NumericExpressions<Q, T> {}\n\n export interface DatetimePropertyDefinition<\n T extends SimplePropertyDef,\n Q extends ObjectOrInterfaceDefinition,\n > extends Definition<T, Q>, DatetimeExpressions<Q, T> {}\n\n export type Creator<\n Q extends ObjectOrInterfaceDefinition,\n T extends SimplePropertyDef,\n > = (\n baseObjectSet: Builder<Q, false>,\n ) =>\n | Definition<T, Q>\n | NumericPropertyDefinition<T, Q>\n | DatetimePropertyDefinition<T, Q>;\n\n export type Clause<\n Q extends ObjectOrInterfaceDefinition,\n > = {\n [key: string]: Creator<Q, SimplePropertyDef>;\n };\n\n interface BaseBuilder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends Filterable<Q, CONSTRAINED>, Pivotable<Q, CONSTRAINED> {\n }\n\n export interface Builder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends BaseBuilder<Q, CONSTRAINED>, Selectable<Q>, Constant<Q> {\n }\n\n export interface AggregateBuilder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends BaseBuilder<Q, CONSTRAINED>, Aggregatable<Q> {\n }\n\n export interface SelectPropertyBuilder<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n > extends AggregateBuilder<Q, CONSTRAINED>, Selectable<Q> {\n }\n\n export type ValidParts = \"DAYS\" | \"MONTHS\" | \"QUARTERS\" | \"YEARS\";\n}\n\ntype BuilderTypeFromConstraint<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n> = CONSTRAINED extends true ? DerivedProperty.AggregateBuilder<Q, true>\n : DerivedProperty.SelectPropertyBuilder<Q, false>;\n\ntype Filterable<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n> = {\n readonly where: (\n clause: WhereClause<Q>,\n ) => BuilderTypeFromConstraint<Q, CONSTRAINED>;\n};\n\ntype Pivotable<\n Q extends ObjectOrInterfaceDefinition,\n CONSTRAINED extends boolean,\n> = {\n readonly pivotTo: <L extends LinkNames<Q>>(\n type: L,\n ) => CONSTRAINED extends true\n ? DerivedProperty.AggregateBuilder<LinkedType<Q, L>, true>\n : NonNullable<CompileTimeMetadata<Q>[\"links\"][L][\"multiplicity\"]> extends\n true ? DerivedProperty.AggregateBuilder<LinkedType<Q, L>, true>\n : DerivedProperty.SelectPropertyBuilder<LinkedType<Q, L>, false>;\n};\n\ntype Constant<Q extends ObjectOrInterfaceDefinition> = {\n readonly constant: {\n readonly double: (\n value: number,\n ) => DerivedProperty.NumericPropertyDefinition<\n SimplePropertyDef.Make<\"double\", \"non-nullable\", \"single\">,\n Q\n >;\n\n readonly integer: (\n value: number,\n ) => DerivedProperty.NumericPropertyDefinition<\n SimplePropertyDef.Make<\"integer\", \"non-nullable\", \"single\">,\n Q\n >;\n readonly long: (\n value: string,\n ) => DerivedProperty.NumericPropertyDefinition<\n SimplePropertyDef.Make<\"long\", \"non-nullable\", \"single\">,\n Q\n >;\n\n readonly datetime: (\n value: string,\n ) => DerivedProperty.DatetimePropertyDefinition<\n SimplePropertyDef.Make<\"datetime\", \"non-nullable\", \"single\">,\n Q\n >;\n readonly timestamp: (\n value: string,\n ) => DerivedProperty.DatetimePropertyDefinition<\n SimplePropertyDef.Make<\"timestamp\", \"non-nullable\", \"single\">,\n Q\n >;\n };\n};\n\ntype Aggregatable<\n Q extends ObjectOrInterfaceDefinition,\n> = {\n readonly aggregate: <\n V extends ValidAggregationKeys<\n Q,\n \"withPropertiesAggregate\"\n >,\n >(\n aggregationSpecifier: V,\n opts?: V extends `${any}:${infer P}`\n ? P extends CollectWithPropAggregations ? { limit: number }\n : P extends \"approximatePercentile\" ? { percentile: number }\n : never\n : never,\n ) => DefinitionForType<\n Q,\n V extends `${infer N}:${infer P}`\n ? P extends CollectWithPropAggregations ? SimplePropertyDef.Make<\n CompileTimeMetadata<Q>[\"properties\"][N][\"type\"],\n \"nullable\",\n \"array\"\n >\n : P extends MinMaxWithPropAggregateOption ? SimplePropertyDef.Make<\n CompileTimeMetadata<Q>[\"properties\"][N][\"type\"],\n \"nullable\",\n \"single\"\n >\n : P extends \"approximateDistinct\" | \"exactDistinct\"\n ? SimplePropertyDef.Make<\n \"integer\",\n \"non-nullable\",\n \"single\"\n >\n : SimplePropertyDef.Make<\n \"double\",\n \"nullable\",\n \"single\"\n >\n : V extends \"$count\" ? SimplePropertyDef.Make<\n \"integer\",\n \"non-nullable\",\n \"single\"\n >\n : never\n >;\n};\n\ntype Selectable<Q extends ObjectOrInterfaceDefinition> = {\n readonly selectProperty: <R extends PropertyKeys<Q>>(\n propertyName: R,\n ) => DefinitionForType<\n Q,\n SimplePropertyDef.Make<\n CompileTimeMetadata<Q>[\"properties\"][R][\"type\"],\n CompileTimeMetadata<Q>[\"properties\"][R][\"nullable\"] extends true\n ? \"nullable\"\n : \"non-nullable\",\n CompileTimeMetadata<Q>[\"properties\"][R][\"multiplicity\"] extends true\n ? \"array\"\n : \"single\"\n >\n >;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,WAqCiBA,eAAe","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["NULL_VALUE","DistanceUnitMapping","DurationMapping","isOk","TimeseriesDurationMapping"],"sources":["index.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 { ActionReturnTypeForOptions } from \"./actions/ActionReturnTypeForOptions.js\";\nexport type {\n ActionEditResponse,\n ActionParam,\n ActionValidationResponse,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n} from \"./actions/Actions.js\";\nexport { NULL_VALUE } from \"./actions/NullValue.js\";\nexport type { ValidAggregationKeys } from \"./aggregate/AggregatableKeys.js\";\nexport type { AggregateOpts } from \"./aggregate/AggregateOpts.js\";\nexport type { AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy } from \"./aggregate/AggregateOptsThatErrors.js\";\nexport type { AggregationResultsWithGroups } from \"./aggregate/AggregationResultsWithGroups.js\";\nexport type { AggregationResultsWithoutGroups } from \"./aggregate/AggregationResultsWithoutGroups.js\";\nexport type { AggregationClause } from \"./aggregate/AggregationsClause.js\";\nexport type { AggregationsResults } from \"./aggregate/AggregationsResults.js\";\nexport type { GeoFilterOptions } from \"./aggregate/GeoFilter.js\";\nexport { DistanceUnitMapping } from \"./aggregate/WhereClause.js\";\nexport type {\n AndWhereClause,\n GeoFilter_Intersects,\n GeoFilter_Within,\n NotWhereClause,\n OrWhereClause,\n PossibleWhereClauseFilters,\n WhereClause,\n} from \"./aggregate/WhereClause.js\";\nexport type {\n OsdkObjectCreatePropertyType,\n OsdkObjectPropertyType,\n} from \"./Definitions.js\";\nexport type {\n OsdkObjectLinksObject,\n SingleLinkAccessor,\n} from \"./definitions/LinkDefinitions.js\";\nexport { type DerivedProperty } from \"./derivedProperties/DerivedProperty.js\";\nexport { DurationMapping } from \"./groupby/GroupByClause.js\";\nexport type {\n AllGroupByValues,\n GroupByClause,\n GroupByRange,\n} from \"./groupby/GroupByClause.js\";\nexport type { Logger } from \"./Logger.js\";\nexport type {\n AllowedBucketKeyTypes,\n AllowedBucketTypes,\n DataValueClientToWire,\n DataValueWireToClient,\n} from \"./mapping/DataValueMapping.js\";\nexport type {\n PropertyValueWireToClient,\n} from \"./mapping/PropertyValueMapping.js\";\nexport type { Attachment, AttachmentUpload } from \"./object/Attachment.js\";\nexport type {\n AsyncIterArgs,\n Augment,\n Augments,\n FetchPageArgs,\n NullabilityAdherence,\n ObjectSetArgs,\n SelectArg,\n SelectArgToKeys,\n} from \"./object/FetchPageArgs.js\";\nexport type {\n FetchPageResult,\n SingleOsdkResult,\n} from \"./object/FetchPageResult.js\";\nexport type {\n Media,\n MediaMetadata,\n MediaReference,\n MediaUpload,\n} from \"./object/Media.js\";\nexport { isOk } from \"./object/Result.js\";\nexport type { Result } from \"./object/Result.js\";\nexport type { BaseObjectSet } from \"./objectSet/BaseObjectSet.js\";\nexport type { ObjectSet } from \"./objectSet/ObjectSet.js\";\nexport type { ObjectSetSubscription } from \"./objectSet/ObjectSetListener.js\";\nexport type {\n ActionDefinition,\n ActionMetadata,\n} from \"./ontology/ActionDefinition.js\";\nexport type {\n InterfaceDefinition,\n InterfaceMetadata,\n} from \"./ontology/InterfaceDefinition.js\";\nexport type {\n ObjectOrInterfaceDefinition,\n PropertyKeys,\n} from \"./ontology/ObjectOrInterface.js\";\nexport type { ObjectSpecifier } from \"./ontology/ObjectSpecifier.js\";\nexport type {\n CompileTimeMetadata,\n ObjectMetadata,\n ObjectTypeDefinition,\n PropertyDef,\n VersionBound,\n} from \"./ontology/ObjectTypeDefinition.js\";\nexport type { OntologyMetadata } from \"./ontology/OntologyMetadata.js\";\nexport type { PrimaryKeyTypes } from \"./ontology/PrimaryKeyTypes.js\";\nexport type {\n InterfaceQueryDataType,\n ObjectQueryDataType,\n ObjectSetQueryDataType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n QueryParameterDefinition,\n ThreeDimensionalQueryAggregationDefinition,\n TwoDimensionalQueryAggregationDefinition,\n} from \"./ontology/QueryDefinition.js\";\nexport type { SimplePropertyDef } from \"./ontology/SimplePropertyDef.js\";\nexport type {\n BaseWirePropertyTypes,\n WirePropertyTypes,\n} from \"./ontology/WirePropertyTypes.js\";\nexport type {\n ObjectIdentifiers,\n OsdkBase,\n PrimaryKeyType,\n} from \"./OsdkBase.js\";\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type { OsdkObject } from \"./OsdkObject.js\";\nexport type { ConvertProps, MaybeScore, Osdk } from \"./OsdkObjectFrom.js\";\nexport type { PageResult } from \"./PageResult.js\";\nexport type {\n Range,\n ThreeDimensionalAggregation,\n TwoDimensionalAggregation,\n} from \"./queries/Aggregations.js\";\nexport type { QueryParam, QueryResult } from \"./queries/Queries.js\";\nexport { TimeseriesDurationMapping } from \"./timeseries/timeseries.js\";\nexport type {\n GeotimeSeriesProperty,\n TimeSeriesPoint,\n TimeSeriesProperty,\n TimeSeriesQuery,\n} from \"./timeseries/timeseries.js\";\nexport type { LinkedType, LinkNames } from \"./util/LinkUtils.js\";\nexport {};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,SAASA,UAAU,QAAQ,wBAAwB;AASnD,SAASC,mBAAmB,QAAQ,4BAA4B;AAmBhE,SAASC,eAAe,QAAQ,4BAA4B;AAqC5D,SAASC,IAAI,QAAQ,oBAAoB;;
|
|
1
|
+
{"version":3,"file":"index.js","names":["NULL_VALUE","DistanceUnitMapping","DurationMapping","isOk","TimeseriesDurationMapping"],"sources":["index.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 { ActionReturnTypeForOptions } from \"./actions/ActionReturnTypeForOptions.js\";\nexport type {\n ActionEditResponse,\n ActionParam,\n ActionValidationResponse,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n} from \"./actions/Actions.js\";\nexport { NULL_VALUE } from \"./actions/NullValue.js\";\nexport type { ValidAggregationKeys } from \"./aggregate/AggregatableKeys.js\";\nexport type { AggregateOpts } from \"./aggregate/AggregateOpts.js\";\nexport type { AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy } from \"./aggregate/AggregateOptsThatErrors.js\";\nexport type { AggregationResultsWithGroups } from \"./aggregate/AggregationResultsWithGroups.js\";\nexport type { AggregationResultsWithoutGroups } from \"./aggregate/AggregationResultsWithoutGroups.js\";\nexport type { AggregationClause } from \"./aggregate/AggregationsClause.js\";\nexport type { AggregationsResults } from \"./aggregate/AggregationsResults.js\";\nexport type { GeoFilterOptions } from \"./aggregate/GeoFilter.js\";\nexport { DistanceUnitMapping } from \"./aggregate/WhereClause.js\";\nexport type {\n AndWhereClause,\n GeoFilter_Intersects,\n GeoFilter_Within,\n NotWhereClause,\n OrWhereClause,\n PossibleWhereClauseFilters,\n WhereClause,\n} from \"./aggregate/WhereClause.js\";\nexport type {\n OsdkObjectCreatePropertyType,\n OsdkObjectPropertyType,\n} from \"./Definitions.js\";\nexport type {\n OsdkObjectLinksObject,\n SingleLinkAccessor,\n} from \"./definitions/LinkDefinitions.js\";\nexport { type DerivedProperty } from \"./derivedProperties/DerivedProperty.js\";\nexport { DurationMapping } from \"./groupby/GroupByClause.js\";\nexport type {\n AllGroupByValues,\n GroupByClause,\n GroupByRange,\n} from \"./groupby/GroupByClause.js\";\nexport type { Logger } from \"./Logger.js\";\nexport type {\n AllowedBucketKeyTypes,\n AllowedBucketTypes,\n DataValueClientToWire,\n DataValueWireToClient,\n} from \"./mapping/DataValueMapping.js\";\nexport type {\n PropertyValueWireToClient,\n} from \"./mapping/PropertyValueMapping.js\";\nexport type { Attachment, AttachmentUpload } from \"./object/Attachment.js\";\nexport type {\n AsyncIterArgs,\n Augment,\n Augments,\n FetchPageArgs,\n NullabilityAdherence,\n ObjectSetArgs,\n SelectArg,\n SelectArgToKeys,\n} from \"./object/FetchPageArgs.js\";\nexport type {\n FetchPageResult,\n SingleOsdkResult,\n} from \"./object/FetchPageResult.js\";\nexport type {\n Media,\n MediaMetadata,\n MediaReference,\n MediaUpload,\n} from \"./object/Media.js\";\nexport { isOk } from \"./object/Result.js\";\nexport type { Result } from \"./object/Result.js\";\nexport type { BaseObjectSet } from \"./objectSet/BaseObjectSet.js\";\nexport type { ObjectSet } from \"./objectSet/ObjectSet.js\";\nexport type { ObjectSetSubscription } from \"./objectSet/ObjectSetListener.js\";\nexport type {\n ActionDefinition,\n ActionMetadata,\n} from \"./ontology/ActionDefinition.js\";\nexport type {\n InterfaceDefinition,\n InterfaceMetadata,\n} from \"./ontology/InterfaceDefinition.js\";\nexport type {\n ObjectOrInterfaceDefinition,\n PropertyKeys,\n} from \"./ontology/ObjectOrInterface.js\";\nexport type { ObjectSpecifier } from \"./ontology/ObjectSpecifier.js\";\nexport type {\n CompileTimeMetadata,\n ObjectMetadata,\n ObjectTypeDefinition,\n PropertyDef,\n VersionBound,\n} from \"./ontology/ObjectTypeDefinition.js\";\nexport type { OntologyMetadata } from \"./ontology/OntologyMetadata.js\";\nexport type { PrimaryKeyTypes } from \"./ontology/PrimaryKeyTypes.js\";\nexport type {\n InterfaceQueryDataType,\n ObjectQueryDataType,\n ObjectSetQueryDataType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryMetadata,\n QueryParameterDefinition,\n ThreeDimensionalQueryAggregationDefinition,\n TwoDimensionalQueryAggregationDefinition,\n} from \"./ontology/QueryDefinition.js\";\nexport type { SimplePropertyDef } from \"./ontology/SimplePropertyDef.js\";\nexport type { PropertyBooleanFormattingRule } from \"./ontology/valueFormatting/PropertyBooleanFormattingRule.js\";\nexport type {\n DatetimeFormat,\n DatetimeLocalizedFormat,\n DatetimeLocalizedFormatType,\n DatetimeStringFormat,\n DatetimeTimezone,\n DatetimeTimezoneStatic,\n DatetimeTimezoneUser,\n PropertyDateFormattingRule,\n PropertyTimestampFormattingRule,\n} from \"./ontology/valueFormatting/PropertyDateAndTimestampFormattingRule.js\";\nexport type {\n KnownType,\n PropertyKnownTypeFormattingRule,\n} from \"./ontology/valueFormatting/PropertyKnownTypeFormattingRule.js\";\nexport type {\n Affix,\n DurationBaseValue,\n DurationFormatStyle,\n DurationPrecision,\n HumanReadableFormat,\n NumberFormatAffix,\n NumberFormatCurrency,\n NumberFormatCurrencyStyle,\n NumberFormatCustomUnit,\n NumberFormatDuration,\n NumberFormatFixedValues,\n NumberFormatNotation,\n NumberFormatOptions,\n NumberFormatRatio,\n NumberFormatScale,\n NumberFormatStandard,\n NumberFormatStandardUnit,\n NumberRatioType,\n NumberRoundingMode,\n NumberScaleType,\n PropertyNumberFormattingRule,\n PropertyNumberFormattingRuleType,\n TimeCodeFormat,\n} from \"./ontology/valueFormatting/PropertyNumberFormattingRule.js\";\nexport type { PropertyValueFormattingRule } from \"./ontology/valueFormatting/PropertyValueFormattingRule.js\";\nexport type {\n PropertyTypeReference,\n PropertyTypeReferenceOrStringConstant,\n StringConstant,\n} from \"./ontology/valueFormatting/PropertyValueFormattingUtils.js\";\nexport type {\n BaseWirePropertyTypes,\n WirePropertyTypes,\n} from \"./ontology/WirePropertyTypes.js\";\nexport type {\n ObjectIdentifiers,\n OsdkBase,\n PrimaryKeyType,\n} from \"./OsdkBase.js\";\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type { OsdkObject } from \"./OsdkObject.js\";\nexport type { ConvertProps, MaybeScore, Osdk } from \"./OsdkObjectFrom.js\";\nexport type { PageResult } from \"./PageResult.js\";\nexport type {\n Range,\n ThreeDimensionalAggregation,\n TwoDimensionalAggregation,\n} from \"./queries/Aggregations.js\";\nexport type { QueryParam, QueryResult } from \"./queries/Queries.js\";\nexport { TimeseriesDurationMapping } from \"./timeseries/timeseries.js\";\nexport type {\n GeotimeSeriesProperty,\n TimeSeriesPoint,\n TimeSeriesProperty,\n TimeSeriesQuery,\n} from \"./timeseries/timeseries.js\";\nexport type { LinkedType, LinkNames } from \"./util/LinkUtils.js\";\nexport {};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,SAASA,UAAU,QAAQ,wBAAwB;AASnD,SAASC,mBAAmB,QAAQ,4BAA4B;AAmBhE,SAASC,eAAe,QAAQ,4BAA4B;AAqC5D,SAASC,IAAI,QAAQ,oBAAoB;;AA+FzC;;AAUA,SAASC,yBAAyB,QAAQ,4BAA4B;AAQtE","ignoreList":[]}
|
|
@@ -491,6 +491,17 @@ describe("ObjectSet", () => {
|
|
|
491
491
|
}
|
|
492
492
|
});
|
|
493
493
|
});
|
|
494
|
+
it("allows adding literals via base.constant", () => {
|
|
495
|
+
fauxObjectSet.withProperties({
|
|
496
|
+
"myProp1": base => {
|
|
497
|
+
const plus = base.pivotTo("lead").selectProperty("employeeId").add(base.constant.double(1));
|
|
498
|
+
expectTypeOf(plus).toEqualTypeOf();
|
|
499
|
+
const intPlusIntReturnsInt = base.pivotTo("lead").selectProperty("employeeId").add(base.constant.integer(1));
|
|
500
|
+
expectTypeOf(intPlusIntReturnsInt).toEqualTypeOf();
|
|
501
|
+
return plus;
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
});
|
|
494
505
|
it("allows correctly typed nested property definitions", () => {
|
|
495
506
|
fauxObjectSet.withProperties({
|
|
496
507
|
"myProp1": base => {
|
|
@@ -536,6 +547,17 @@ describe("ObjectSet", () => {
|
|
|
536
547
|
}
|
|
537
548
|
});
|
|
538
549
|
});
|
|
550
|
+
it("allows adding literals via base.constant", () => {
|
|
551
|
+
fauxObjectSet.withProperties({
|
|
552
|
+
"myProp1": base => {
|
|
553
|
+
const dateAndDateReturnDate = base.pivotTo("lead").selectProperty("dateOfJoining").min(base.constant.datetime("2025-01-01T00:00:00Z"));
|
|
554
|
+
expectTypeOf(dateAndDateReturnDate).toEqualTypeOf();
|
|
555
|
+
const dateAndTimeReturnTime = base.pivotTo("lead").selectProperty("dateOfJoining").min(base.constant.timestamp("2025-01-01T00:00:00Z"));
|
|
556
|
+
expectTypeOf(dateAndTimeReturnTime).toEqualTypeOf();
|
|
557
|
+
return dateAndTimeReturnTime;
|
|
558
|
+
}
|
|
559
|
+
});
|
|
560
|
+
});
|
|
539
561
|
it("allows correctly typed nested property definitions", () => {
|
|
540
562
|
fauxObjectSet.withProperties({
|
|
541
563
|
"myProp1": base => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectSet.test.js","names":["describe","expectTypeOf","it","test","vi","EmployeeApiTest","FooInterfaceApiTest","createMockObjectSet","fauxObject","fauxResults","fauxObjectSet","$link","peeps","$objectSetInternals","def","data","where","fn","withProperties","fetchPage","Promise","resolve","fetchPageWithErrors","value","fetchOne","asyncIter","aggregate","pivotTo","nearestNeighbors","toEqualTypeOf","fetchPageResult","class","$includeAllBaseObjectProperties","asyncIterResult","$select","x","$includeRid","subselect","withA","base","selectProperty","withFamily","withMom","withParents","todo","withAggregations","whereResults","aggTestObjectSet","result","maxHasSameType","minHasSameType","approximateDistinctNumberNoUndefined","exactDistinctNumberNoUndefined","countNumberNoUndefined","sumNumber","avgNumber","branded","selectedInteger","add","subtract","multiply","divide","abs","negate","max","min","extractPart","maxAggregation","collectList","plus","intAndLong","intAndDouble","longAndDouble","longAndLong","intAndInt","intLongDoubleChain","shortAndIntReturnsInt","shortAndFloatReturnsDouble","nested","selectedDatetime","nearestNeighborsObjectSet","employees","vectorQuery","Array","from","length","$orderBy","nearestNeighborsObjectSetWithErrors","knn","not","toHaveProperty","objectSet","narrowToType","type","apiName"],"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 { EmployeeApiTest } from \"../test/EmployeeApiTest.js\";\nimport { FooInterfaceApiTest } from \"../test/FooInterfaceApiTest.js\";\n\nexport function createMockObjectSet<\n Q extends ObjectOrInterfaceDefinition,\n>(): $ObjectSet<Q, never> {\n let fauxObject: Osdk.Instance<Q>,\n fauxResults: any,\n fauxObjectSet: $ObjectSet<Q>;\n\n // eslint-disable-next-line prefer-const\n fauxObject = {\n $link: {\n peeps: {\n $objectSetInternals: {\n def: {},\n },\n },\n },\n } as Osdk.Instance<Q>;\n\n fauxResults = {\n data: [fauxObject],\n };\n\n fauxObjectSet = {\n where: vi.fn(() => {\n return fauxObjectSet;\n }),\n withProperties: vi.fn(() => {\n return fauxObjectSet;\n }),\n fetchPage: vi.fn(() => Promise.resolve(fauxResults)),\n fetchPageWithErrors: vi.fn(() => Promise.resolve({ value: fauxResults })),\n fetchOne: vi.fn(() => fauxObject),\n asyncIter: vi.fn(() => {\n return {};\n }),\n aggregate: vi.fn(() => {\n return {};\n }),\n pivotTo: vi.fn(() => {\n return fauxObjectSet;\n }),\n nearestNeighbors: vi.fn(() => {\n return fauxObjectSet;\n }),\n } as any as $ObjectSet<Q>;\n\n return fauxObjectSet;\n}\n\ndescribe(\"ObjectSet\", () => {\n const fauxObjectSet = createMockObjectSet<EmployeeApiTest>();\n\n const interfaceObjectSet = createMockObjectSet<FooInterfaceApiTest>();\n\n describe(\"normal\", () => {\n test(\"select none\", async () => {\n const result = await fauxObjectSet.fetchPage();\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>\n >();\n\n // Do it again but be explicit about the params to be sure\n // we don't break them\n const result2 = await fauxObjectSet.fetchPage<\n PropertyKeys<EmployeeApiTest>,\n false,\n never,\n NullabilityAdherence.Default,\n false\n >();\n });\n\n test(\"select one\", async () => {\n const result = await fauxObjectSet.fetchPage({ \"$select\": [\"fullName\"] });\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"fullName\">\n >();\n });\n });\n\n describe(\"includeAllBaseObjectProperties\", () => {\n it(\"has the right types if you pass true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(fetchPageResult).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(asyncIterResult).toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n });\n\n it(\"does not let you pass partial $select and true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n });\n\n it(\"does let you pass full select options and false\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n const asyncIterResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n });\n });\n\n test(\"includeRid\", async () => {\n const x = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeRid: true });\n\n expectTypeOf(x).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$rid\">\n >\n >();\n });\n\n test(\"pivotTo\", async () => {\n const noArgs = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({});\n const subselect = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({\n $select: [\"employeeId\", \"class\"],\n });\n\n expectTypeOf(subselect).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, never, \"employeeId\" | \"class\">\n >\n >();\n });\n\n describe(\".withProperties\", () => {\n test(\"single property\", async () => {\n const withA = fauxObjectSet.withProperties({\n \"a\": (base) => {\n return base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\");\n },\n });\n\n const isWithAAssignable: $ObjectSet<EmployeeApiTest, {}> = withA;\n\n expectTypeOf(withA).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n a: \"integer\";\n }>\n >();\n\n const withAResults = await withA.fetchPage();\n\n expectTypeOf<typeof withAResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n a: \"integer\";\n }>\n >();\n\n expectTypeOf<typeof withAResults[\"data\"][0][\"a\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"can be sub-selected\", () => {\n const objectWithUndefinedRdp = fauxObjectSet.withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(3, {\n $select: [\"derivedPropertyName\"],\n });\n });\n\n test(\"multiple properties\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n expectTypeOf(withFamily).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"dad\"]>()\n .toEqualTypeOf<string | undefined>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"sister\"]>()\n .toEqualTypeOf<string[] | undefined>();\n });\n\n describe(\"called in succession\", () => {\n test(\"independently\", () => {\n const withMom = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n const withParents = withMom.withProperties({\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n });\n\n expectTypeOf(withParents).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n }>\n >();\n });\n\n test.todo(\"with calculated properties\");\n });\n\n describe(\"nullability\", () => {\n it(\"count, exactDistinct, and approximateDistinct aren't nullable\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\"),\n \"sis\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:approximateDistinct\"),\n });\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"integer\";\n sis: \"integer\";\n }>\n >();\n });\n\n it(\n \"collectSet, collectList, selectProperty, and numeric aggregations are nullable\",\n async () => {\n const withAggregations = fauxObjectSet.withProperties({\n \"collectSet\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectSet\"),\n \"select\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"collectList\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"min\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:max\"),\n \"max\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:min\"),\n \"sum\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avg\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n \"approximatePercentile\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"employeeId:approximatePercentile\",\n ),\n });\n\n const withAggregationResults = await withAggregations.fetchPage();\n\n expectTypeOf<typeof withAggregationResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n collectSet: \"string\"[] | undefined;\n select: \"string\" | undefined;\n collectList: \"string\"[] | undefined;\n min: \"double\" | undefined;\n max: \"double\" | undefined;\n sum: \"double\" | undefined;\n avg: \"double\" | undefined;\n approximatePercentile: \"double\" | undefined;\n }\n >\n >();\n },\n );\n });\n\n describe(\"fetch functions return correct Osdk.Instance\", () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n\n it(\"works with .where\", async () => {\n const where = withFamily.where({ \"mom\": 1 });\n const whereResults = await where.fetchPage();\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredPages: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = whereResults;\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredInstance: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = whereResults.data[0];\n\n const q = whereResults.data[0].$link.peeps.$objectSetInternals.def;\n\n // same as above but with expectTypeOf\n expectTypeOf<typeof where>().toEqualTypeOf<typeof withFamily>();\n expectTypeOf<typeof whereResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n\n // Checks that when you directly assign, it infers correctly.\n // Sometimes an explicit assignment can affect how typescript infers\n // types.\n const shouldBeAssignablePage: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = await where.fetchPage();\n\n const _shouldBeAssignableSingle: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = await withFamily.fetchOne(1);\n await withFamily.fetchOne(1);\n });\n\n it(\"works with .async\", () => {\n const asyncIter = withFamily.asyncIter();\n expectTypeOf<typeof asyncIter>().toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >\n >();\n });\n\n it(\"Works with no select\", async () => {\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n });\n\n it(\"Works with selecting all RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\", \"dad\", \"sister\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"Works with selecting some RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n }>\n >();\n });\n\n it(\"Works with selecting all non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\n \"employeeId\",\n \"fullName\",\n \"class\",\n \"attachment\",\n \"geopoint\",\n \"timeseries\",\n \"mediaReference\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"hourlyRate\",\n \"dateOfJoining\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n >();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"class\"]>()\n .toEqualTypeOf<\n string | undefined\n >();\n });\n\n it(\"Works with selecting some non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"class\", {}>\n >();\n });\n\n it(\"Works with selecting a mix\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\", \"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n \"class\",\n { mom: \"integer\" }\n >\n >();\n });\n });\n\n it(\"allows extracting the type\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n type ObjectSetType = typeof objectSet;\n\n expectTypeOf<ObjectSetType>().toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n }>\n >();\n\n const objectSet2 = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"Defining the Type\", () => {\n type ObjectSetType = $ObjectSet<\n EmployeeApiTest,\n {\n mom: \"integer\";\n }\n >;\n\n fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"has correct aggregation keys\", () => {\n fauxObjectSet.withProperties({\n \"integer\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"integerNumericAgg\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"string\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"stringDoesNotHaveNumericAgg\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"class:sum\"),\n \"isActive\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"isActive:approximateDistinct\"),\n \"attachment\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"attachment:collectList\"),\n \"geopoint\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"geopoint:collectList\"),\n \"numericTimeseries\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"timeseries:sum\"),\n \"numericTimeseriesExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"timeseries:exactDistinct\"),\n \"mediaReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"mediaReference:avg\"),\n \"mediaReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"mediaReference:exactDistinct\"),\n \"geotimeSeriesReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"geotimeSeriesReference:sum\"),\n \"geotimeSeriesReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"geotimeSeriesReference:exactDistinct\",\n ),\n \"lastUpdated\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:max\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:min\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectSet\");\n },\n \"dateOfJoining\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectSet\");\n },\n });\n });\n\n it(\"has correct aggregation return types\", async () => {\n const aggTestObjectSet = fauxObjectSet.withProperties({\n \"maxHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\"),\n \"minHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\"),\n \"approximateDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:approximateDistinct\"),\n \"exactDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:exactDistinct\"),\n \"countNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"sumNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avgNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n }).fetchPage();\n\n const result = (await aggTestObjectSet).data[0];\n expectTypeOf((await aggTestObjectSet).data[0]).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n maxHasSameType: \"datetime\" | undefined;\n minHasSameType: \"datetime\" | undefined;\n avgNumber: \"double\" | undefined;\n approximateDistinctNumberNoUndefined: \"integer\";\n exactDistinctNumberNoUndefined: \"integer\";\n countNumberNoUndefined: \"integer\";\n sumNumber: \"double\" | undefined;\n }>\n >();\n\n expectTypeOf(result.maxHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.minHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.approximateDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.exactDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.countNumberNoUndefined).toEqualTypeOf<number>();\n expectTypeOf(result.sumNumber).toEqualTypeOf<number | undefined>();\n expectTypeOf(result.avgNumber).toEqualTypeOf<number | undefined>();\n });\n\n it(\"Merged object type is equivalent to original\", () => {\n const a = {} as EmployeeApiTest;\n let b = {} as DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >;\n\n b = a; // should be assignable. testing explicitly due to break in 2.2 release.\n\n expectTypeOf<\n EmployeeApiTest\n >().branded.toEqualTypeOf<\n DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >\n >();\n });\n });\n describe(\"aggregate\", () => {\n it(\"has correct aggregation keys\", () => {\n void fauxObjectSet.aggregate({\n \"$select\": {\n \"lastUpdated:max\": \"asc\",\n \"lastUpdated:min\": \"desc\",\n \"lastUpdated:approximateDistinct\": \"asc\",\n \"lastUpdated:exactDistinct\": \"desc\",\n \"dateOfJoining:max\": \"desc\",\n \"dateOfJoining:min\": \"asc\",\n \"dateOfJoining:approximateDistinct\": \"asc\",\n \"dateOfJoining:exactDistinct\": \"desc\",\n },\n });\n });\n });\n describe(\"expressions\", () => {\n \"Test all property types\";\n describe(\"numeric expressions\", () => {\n it(\"provides correct methods off of selected numeric derived property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of selection definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of aggregated properties\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const maxAggregation = base.pivotTo(\"lead\").aggregate(\n \"employeeId:max\",\n );\n\n expectTypeOf(maxAggregation).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n maxAggregation.add(1);\n maxAggregation.subtract(1);\n maxAggregation.multiply(1);\n maxAggregation.divide(1);\n maxAggregation.abs();\n maxAggregation.negate();\n maxAggregation.max(1);\n maxAggregation.min(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:avg\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:min\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >();\n\n const collectList = base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n );\n expectTypeOf(\n collectList,\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n // @ts-expect-error\n collectList.plus(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n return maxAggregation;\n },\n });\n });\n\n it(\"correctly coerces numeric types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const intAndLong = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"yearsOfExperience\"),\n );\n expectTypeOf(longAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndLong = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"yearsOfExperience\"));\n expectTypeOf(longAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndInt = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intAndInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const intLongDoubleChain = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n ).add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n ).add(\n base.selectProperty(\"performanceScore\"),\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intLongDoubleChain).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const shortAndIntReturnsInt = base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(shortAndIntReturnsInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const shortAndFloatReturnsDouble = base.pivotTo(\"lead\")\n .selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"hourlyRate\"));\n expectTypeOf(shortAndFloatReturnsDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return intLongDoubleChain;\n },\n });\n });\n\n it(\"allows adding number literals as a double\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const plus = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(1);\n expectTypeOf(plus).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return plus;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly types property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.selectProperty(\"performanceScore\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly types property keys off the base OT\", () => {});\n });\n describe(\"datetime expressions\", () => {\n it(\"provides correct methods off of datetime selections\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedDatetime = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n );\n\n expectTypeOf(selectedDatetime).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\" | undefined,\n EmployeeApiTest\n >\n >();\n\n selectedDatetime.max(base.selectProperty(\"dateOfJoining\"));\n selectedDatetime.min(base.selectProperty(\"lastUpdated\"));\n\n expectTypeOf(base.pivotTo(\"lead\").selectProperty(\"lastUpdated\"))\n .toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedDatetime;\n },\n });\n });\n\n it(\"correctly coerces datetime types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const max = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .max(base.selectProperty(\"lastUpdated\"));\n expectTypeOf(max).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n const min = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(base.selectProperty(\"dateOfJoining\"));\n expectTypeOf(min).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\",\n EmployeeApiTest\n >\n >();\n\n return max;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.pivotTo(\"lead\").pivotTo(\"lead\").selectProperty(\n \"lastUpdated\",\n ),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly typed property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.selectProperty(\"lastUpdated\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly typed property keys off the base OT\", () => {});\n });\n });\n\n describe(\"nearestNeighbors\", () => {\n it(\"has correct nearest neighbors object set query return type\", () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n expectTypeOf(nearestNeighborsObjectSet).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest>\n >();\n });\n\n it(\"allows text queries\", async () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"allows vector queries\", async () => {\n const vectorQuery = Array.from({ length: 1536 }, () => 0.3);\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n vectorQuery,\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"only supports queries on vector properties\", () => {\n fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n // @ts-expect-error\n \"skillSet\",\n );\n });\n\n it(\"appropriately types fetchPage ordered by relevance\", async () => {\n const nearestNeighborsObjectSet = await fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPage({ $orderBy: \"relevance\" });\n\n type expectedType =\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number };\n\n expectTypeOf(nearestNeighborsObjectSet.data[0]).toEqualTypeOf<\n expectedType\n >();\n });\n\n it(\"appropriately types fetchPageWithErrors ordered by relevance\", async () => {\n const nearestNeighborsObjectSetWithErrors = await fauxObjectSet\n .nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPageWithErrors({ $orderBy: \"relevance\" });\n\n type expectedType =\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number };\n expectTypeOf(nearestNeighborsObjectSetWithErrors.value!.data[0])\n .toEqualTypeOf<expectedType>();\n });\n\n it(\"appropriately types asyncIters ordered by relevance\", () => {\n const asyncIter = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).asyncIter(\n { $orderBy: \"relevance\" },\n );\n\n type expectedType = AsyncIterableIterator<\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number }\n >;\n expectTypeOf(asyncIter).toEqualTypeOf<expectedType>();\n });\n\n it(\"no arbitrary order bys\", () => {\n const knn = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n\n // @ts-expect-error\n void knn.fetchPage({ $orderBy: \"invalid\" });\n // @ts-expect-error\n void knn.fetchPageWithErrors({ $orderBy: \"invalid\" });\n // @ts-expect-error\n void knn.asyncIter({ $orderBy: \"random\" });\n });\n\n it(\"does not include score for property order by\", async () => {\n const nearestNeighborsObjectSet = await fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPage({ $orderBy: { \"fullName\": \"desc\" } });\n\n expectTypeOf(nearestNeighborsObjectSet.data[0]).not.toHaveProperty(\n \"$score\",\n );\n\n const nearestNeighborsObjectSetWithErrors = await fauxObjectSet\n .nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPageWithErrors({ $orderBy: { \"fullName\": \"desc\" } });\n\n expectTypeOf(nearestNeighborsObjectSetWithErrors.value?.data[0]).not\n .toHaveProperty(\"$score\");\n });\n });\n describe(\"narrowToType\", () => {\n it(\"restricts casting from interface to object type\", () => {\n const objectSet = { narrowToType: () => {} } as unknown as $ObjectSet<\n FooInterfaceApiTest\n >;\n\n objectSet.narrowToType(EmployeeApiTest);\n\n objectSet.narrowToType(FooInterfaceApiTest);\n\n objectSet.narrowToType({ type: \"interface\", apiName: \"AnyInterface :)\" });\n\n // @ts-expect-error\n objectSet.narrowToType({ type: \"object\", apiName: \"NotImplemented\" });\n\n // Interfaces that don't have any implementedBy fields should still accept any interface\n const objectSet2 = { narrowToType: () => {} } as unknown as $ObjectSet<\n FooInterfaceApiTest & { __DefinitionMetadata: { implementedBy: [] } }\n >;\n\n objectSet2.narrowToType({ type: \"interface\", apiName: \"NotImplemented\" });\n });\n it(\"restricts casting from object type to interface\", () => {\n const objectSet = {} as $ObjectSet<EmployeeApiTest>;\n type narrowToTypeAllowedInterfaceTypes = Parameters<\n typeof objectSet.narrowToType\n >[0][\"apiName\"];\n type narrowToTypeAllowedTypes = Parameters<\n typeof objectSet.narrowToType\n >[0][\"type\"];\n\n expectTypeOf<narrowToTypeAllowedTypes>().toEqualTypeOf<\"interface\">();\n\n expectTypeOf<narrowToTypeAllowedInterfaceTypes>().toEqualTypeOf<\n \"FooInterface\"\n >();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ObjectSet.test.js","names":["describe","expectTypeOf","it","test","vi","EmployeeApiTest","FooInterfaceApiTest","createMockObjectSet","fauxObject","fauxResults","fauxObjectSet","$link","peeps","$objectSetInternals","def","data","where","fn","withProperties","fetchPage","Promise","resolve","fetchPageWithErrors","value","fetchOne","asyncIter","aggregate","pivotTo","nearestNeighbors","toEqualTypeOf","fetchPageResult","class","$includeAllBaseObjectProperties","asyncIterResult","$select","x","$includeRid","subselect","withA","base","selectProperty","withFamily","withMom","withParents","todo","withAggregations","whereResults","aggTestObjectSet","result","maxHasSameType","minHasSameType","approximateDistinctNumberNoUndefined","exactDistinctNumberNoUndefined","countNumberNoUndefined","sumNumber","avgNumber","branded","selectedInteger","add","subtract","multiply","divide","abs","negate","max","min","extractPart","maxAggregation","collectList","plus","intAndLong","intAndDouble","longAndDouble","longAndLong","intAndInt","intLongDoubleChain","shortAndIntReturnsInt","shortAndFloatReturnsDouble","constant","double","intPlusIntReturnsInt","integer","nested","selectedDatetime","dateAndDateReturnDate","datetime","dateAndTimeReturnTime","timestamp","nearestNeighborsObjectSet","employees","vectorQuery","Array","from","length","$orderBy","nearestNeighborsObjectSetWithErrors","knn","not","toHaveProperty","objectSet","narrowToType","type","apiName"],"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 { EmployeeApiTest } from \"../test/EmployeeApiTest.js\";\nimport { FooInterfaceApiTest } from \"../test/FooInterfaceApiTest.js\";\n\nexport function createMockObjectSet<\n Q extends ObjectOrInterfaceDefinition,\n>(): $ObjectSet<Q, never> {\n let fauxObject: Osdk.Instance<Q>,\n fauxResults: any,\n fauxObjectSet: $ObjectSet<Q>;\n\n // eslint-disable-next-line prefer-const\n fauxObject = {\n $link: {\n peeps: {\n $objectSetInternals: {\n def: {},\n },\n },\n },\n } as Osdk.Instance<Q>;\n\n fauxResults = {\n data: [fauxObject],\n };\n\n fauxObjectSet = {\n where: vi.fn(() => {\n return fauxObjectSet;\n }),\n withProperties: vi.fn(() => {\n return fauxObjectSet;\n }),\n fetchPage: vi.fn(() => Promise.resolve(fauxResults)),\n fetchPageWithErrors: vi.fn(() => Promise.resolve({ value: fauxResults })),\n fetchOne: vi.fn(() => fauxObject),\n asyncIter: vi.fn(() => {\n return {};\n }),\n aggregate: vi.fn(() => {\n return {};\n }),\n pivotTo: vi.fn(() => {\n return fauxObjectSet;\n }),\n nearestNeighbors: vi.fn(() => {\n return fauxObjectSet;\n }),\n } as any as $ObjectSet<Q>;\n\n return fauxObjectSet;\n}\n\ndescribe(\"ObjectSet\", () => {\n const fauxObjectSet = createMockObjectSet<EmployeeApiTest>();\n\n const interfaceObjectSet = createMockObjectSet<FooInterfaceApiTest>();\n\n describe(\"normal\", () => {\n test(\"select none\", async () => {\n const result = await fauxObjectSet.fetchPage();\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>\n >();\n\n // Do it again but be explicit about the params to be sure\n // we don't break them\n const result2 = await fauxObjectSet.fetchPage<\n PropertyKeys<EmployeeApiTest>,\n false,\n never,\n NullabilityAdherence.Default,\n false\n >();\n });\n\n test(\"select one\", async () => {\n const result = await fauxObjectSet.fetchPage({ \"$select\": [\"fullName\"] });\n expectTypeOf<typeof result.data[0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"fullName\">\n >();\n });\n });\n\n describe(\"includeAllBaseObjectProperties\", () => {\n it(\"has the right types if you pass true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(fetchPageResult).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({ $includeAllBaseObjectProperties: true });\n\n expectTypeOf(asyncIterResult).toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<EmployeeApiTest, \"$allBaseProperties\">\n >\n >();\n });\n\n it(\"does not let you pass partial $select and true\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n\n const asyncIterResult = fauxObjectSet\n .where({ class: \"idk\" })\n .asyncIter({\n // @ts-expect-error\n $includeAllBaseObjectProperties: true,\n $select: [\"attachment\"],\n });\n });\n\n it(\"does let you pass full select options and false\", async () => {\n const fetchPageResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n const asyncIterResult = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({\n $includeAllBaseObjectProperties: true,\n\n // this select list is intended to represent all properties on `EmployeeApiTest`,\n // so if you get an error here later and you added properties to that object,\n // be sure to add them here too.\n $select: [\n \"attachment\",\n \"class\",\n \"employeeId\",\n \"fullName\",\n \"geopoint\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"mediaReference\",\n \"timeseries\",\n \"dateOfJoining\",\n \"hourlyRate\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"mediaReference\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n });\n });\n\n test(\"includeRid\", async () => {\n const x = await fauxObjectSet\n .where({ class: \"idk\" })\n .fetchPage({ $includeRid: true });\n\n expectTypeOf(x).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, \"$rid\">\n >\n >();\n });\n\n test(\"pivotTo\", async () => {\n const noArgs = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({});\n const subselect = await fauxObjectSet.pivotTo(\"peeps\").fetchPage({\n $select: [\"employeeId\", \"class\"],\n });\n\n expectTypeOf(subselect).toEqualTypeOf<\n PageResult<\n Osdk.Instance<EmployeeApiTest, never, \"employeeId\" | \"class\">\n >\n >();\n });\n\n describe(\".withProperties\", () => {\n test(\"single property\", async () => {\n const withA = fauxObjectSet.withProperties({\n \"a\": (base) => {\n return base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\");\n },\n });\n\n const isWithAAssignable: $ObjectSet<EmployeeApiTest, {}> = withA;\n\n expectTypeOf(withA).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n a: \"integer\";\n }>\n >();\n\n const withAResults = await withA.fetchPage();\n\n expectTypeOf<typeof withAResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n a: \"integer\";\n }>\n >();\n\n expectTypeOf<typeof withAResults[\"data\"][0][\"a\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"can be sub-selected\", () => {\n const objectWithUndefinedRdp = fauxObjectSet.withProperties({\n \"derivedPropertyName\": (base) =>\n base.pivotTo(\"lead\").selectProperty(\"employeeId\"),\n }).fetchOne(3, {\n $select: [\"derivedPropertyName\"],\n });\n });\n\n test(\"multiple properties\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n expectTypeOf(withFamily).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"dad\"]>()\n .toEqualTypeOf<string | undefined>();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"sister\"]>()\n .toEqualTypeOf<string[] | undefined>();\n });\n\n describe(\"called in succession\", () => {\n test(\"independently\", () => {\n const withMom = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n const withParents = withMom.withProperties({\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n });\n\n expectTypeOf(withParents).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n }>\n >();\n });\n\n test.todo(\"with calculated properties\");\n });\n\n describe(\"nullability\", () => {\n it(\"count, exactDistinct, and approximateDistinct aren't nullable\", async () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:exactDistinct\"),\n \"sis\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:approximateDistinct\"),\n });\n\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>().toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n mom: \"integer\";\n dad: \"integer\";\n sis: \"integer\";\n }>\n >();\n });\n\n it(\n \"collectSet, collectList, selectProperty, and numeric aggregations are nullable\",\n async () => {\n const withAggregations = fauxObjectSet.withProperties({\n \"collectSet\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectSet\"),\n \"select\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"collectList\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"min\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:max\"),\n \"max\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:min\"),\n \"sum\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avg\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n \"approximatePercentile\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"employeeId:approximatePercentile\",\n ),\n });\n\n const withAggregationResults = await withAggregations.fetchPage();\n\n expectTypeOf<typeof withAggregationResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n collectSet: \"string\"[] | undefined;\n select: \"string\" | undefined;\n collectList: \"string\"[] | undefined;\n min: \"double\" | undefined;\n max: \"double\" | undefined;\n sum: \"double\" | undefined;\n avg: \"double\" | undefined;\n approximatePercentile: \"double\" | undefined;\n }\n >\n >();\n },\n );\n });\n\n describe(\"fetch functions return correct Osdk.Instance\", () => {\n const withFamily = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"dad\": (base) => base.pivotTo(\"lead\").selectProperty(\"fullName\"),\n \"sister\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n });\n\n it(\"works with .where\", async () => {\n const where = withFamily.where({ \"mom\": 1 });\n const whereResults = await where.fetchPage();\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredPages: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = whereResults;\n\n // Checks that if you did an `await where.fetchPage()` that you can then\n // pass/assign it to something explicit.\n const _assignPreviouslyInferredInstance: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = whereResults.data[0];\n\n const q = whereResults.data[0].$link.peeps.$objectSetInternals.def;\n\n // same as above but with expectTypeOf\n expectTypeOf<typeof where>().toEqualTypeOf<typeof withFamily>();\n expectTypeOf<typeof whereResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n\n // Checks that when you directly assign, it infers correctly.\n // Sometimes an explicit assignment can affect how typescript infers\n // types.\n const shouldBeAssignablePage: PageResult<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n > = await where.fetchPage();\n\n const _shouldBeAssignableSingle: Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n > = await withFamily.fetchOne(1);\n await withFamily.fetchOne(1);\n });\n\n it(\"works with .async\", () => {\n const asyncIter = withFamily.asyncIter();\n expectTypeOf<typeof asyncIter>().toEqualTypeOf<\n AsyncIterableIterator<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >\n >();\n });\n\n it(\"Works with no select\", async () => {\n const withFamilyResults = await withFamily.fetchPage();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }\n >\n >();\n });\n\n it(\"Works with selecting all RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\", \"dad\", \"sister\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n dad: \"string\" | undefined;\n sister: \"string\"[] | undefined;\n }>\n >();\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"mom\"]>()\n .toEqualTypeOf<number>();\n });\n\n it(\"Works with selecting some RDPs\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, never, {\n mom: \"integer\";\n }>\n >();\n });\n\n it(\"Works with selecting all non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\n \"employeeId\",\n \"fullName\",\n \"class\",\n \"attachment\",\n \"geopoint\",\n \"timeseries\",\n \"mediaReference\",\n \"geotimeSeriesReference\",\n \"isActive\",\n \"yearsOfExperience\",\n \"rank\",\n \"performanceScore\",\n \"hourlyRate\",\n \"dateOfJoining\",\n \"lastUpdated\",\n \"skillSet\",\n \"skillSetEmbedding\",\n ],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n >();\n expectTypeOf<typeof withFamilyResults[\"data\"][0][\"class\"]>()\n .toEqualTypeOf<\n string | undefined\n >();\n });\n\n it(\"Works with selecting some non-RDP's\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, \"class\", {}>\n >();\n });\n\n it(\"Works with selecting a mix\", async () => {\n const withFamilyResults = await withFamily.fetchPage({\n $select: [\"class\", \"mom\"],\n });\n\n expectTypeOf<typeof withFamilyResults[\"data\"][0]>()\n .toEqualTypeOf<\n Osdk.Instance<\n EmployeeApiTest,\n never,\n \"class\",\n { mom: \"integer\" }\n >\n >();\n });\n });\n\n it(\"allows extracting the type\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n });\n\n type ObjectSetType = typeof objectSet;\n\n expectTypeOf<ObjectSetType>().toEqualTypeOf<\n $ObjectSet<EmployeeApiTest, {\n mom: \"integer\";\n }>\n >();\n\n const objectSet2 = fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"Defining the Type\", () => {\n type ObjectSetType = $ObjectSet<\n EmployeeApiTest,\n {\n mom: \"integer\";\n }\n >;\n\n fauxObjectSet.withProperties({\n \"mom\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n }) satisfies ObjectSetType;\n });\n\n it(\"has correct aggregation keys\", () => {\n fauxObjectSet.withProperties({\n \"integer\": (base) => base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"integerNumericAgg\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"string\": (base) => base.pivotTo(\"lead\").aggregate(\"class:collectList\"),\n \"stringDoesNotHaveNumericAgg\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"class:sum\"),\n \"isActive\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"isActive:approximateDistinct\"),\n \"attachment\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"attachment:collectList\"),\n \"geopoint\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"geopoint:collectList\"),\n \"numericTimeseries\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"timeseries:sum\"),\n \"numericTimeseriesExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"timeseries:exactDistinct\"),\n \"mediaReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"mediaReference:avg\"),\n \"mediaReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"mediaReference:exactDistinct\"),\n \"geotimeSeriesReference\": (base) =>\n // @ts-expect-error\n base.pivotTo(\"lead\").aggregate(\"geotimeSeriesReference:sum\"),\n \"geotimeSeriesReferenceExactDistinct\": (base) =>\n base.pivotTo(\"lead\").aggregate(\n \"geotimeSeriesReference:exactDistinct\",\n ),\n \"lastUpdated\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:max\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:min\");\n base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"lastUpdated:collectSet\");\n },\n \"dateOfJoining\": (base) => {\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:approximateDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:exactDistinct\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\");\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectList\");\n return base.pivotTo(\"lead\").aggregate(\"dateOfJoining:collectSet\");\n },\n });\n });\n\n it(\"has correct aggregation return types\", async () => {\n const aggTestObjectSet = fauxObjectSet.withProperties({\n \"maxHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:max\"),\n \"minHasSameType\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"dateOfJoining:min\"),\n \"approximateDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:approximateDistinct\"),\n \"exactDistinctNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"employeeId:exactDistinct\"),\n \"countNumberNoUndefined\": (base) =>\n base.pivotTo(\"lead\").aggregate(\"$count\"),\n \"sumNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:sum\"),\n \"avgNumber\": (base) => base.pivotTo(\"lead\").aggregate(\"employeeId:avg\"),\n }).fetchPage();\n\n const result = (await aggTestObjectSet).data[0];\n expectTypeOf((await aggTestObjectSet).data[0]).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>, {\n maxHasSameType: \"datetime\" | undefined;\n minHasSameType: \"datetime\" | undefined;\n avgNumber: \"double\" | undefined;\n approximateDistinctNumberNoUndefined: \"integer\";\n exactDistinctNumberNoUndefined: \"integer\";\n countNumberNoUndefined: \"integer\";\n sumNumber: \"double\" | undefined;\n }>\n >();\n\n expectTypeOf(result.maxHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.minHasSameType).toEqualTypeOf<string | undefined>();\n expectTypeOf(result.approximateDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.exactDistinctNumberNoUndefined).toEqualTypeOf<\n number\n >();\n expectTypeOf(result.countNumberNoUndefined).toEqualTypeOf<number>();\n expectTypeOf(result.sumNumber).toEqualTypeOf<number | undefined>();\n expectTypeOf(result.avgNumber).toEqualTypeOf<number | undefined>();\n });\n\n it(\"Merged object type is equivalent to original\", () => {\n const a = {} as EmployeeApiTest;\n let b = {} as DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >;\n\n b = a; // should be assignable. testing explicitly due to break in 2.2 release.\n\n expectTypeOf<\n EmployeeApiTest\n >().branded.toEqualTypeOf<\n DerivedObjectOrInterfaceDefinition.WithDerivedProperties<\n EmployeeApiTest,\n {}\n >\n >();\n });\n });\n describe(\"aggregate\", () => {\n it(\"has correct aggregation keys\", () => {\n void fauxObjectSet.aggregate({\n \"$select\": {\n \"lastUpdated:max\": \"asc\",\n \"lastUpdated:min\": \"desc\",\n \"lastUpdated:approximateDistinct\": \"asc\",\n \"lastUpdated:exactDistinct\": \"desc\",\n \"dateOfJoining:max\": \"desc\",\n \"dateOfJoining:min\": \"asc\",\n \"dateOfJoining:approximateDistinct\": \"asc\",\n \"dateOfJoining:exactDistinct\": \"desc\",\n },\n });\n });\n });\n describe(\"expressions\", () => {\n \"Test all property types\";\n describe(\"numeric expressions\", () => {\n it(\"provides correct methods off of selected numeric derived property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of selection definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedInteger = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n );\n\n expectTypeOf(selectedInteger).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n selectedInteger.add(1);\n selectedInteger.subtract(1);\n selectedInteger.multiply(1);\n selectedInteger.divide(1);\n selectedInteger.abs();\n selectedInteger.negate();\n selectedInteger.max(1);\n selectedInteger.min(1);\n\n // @ts-expect-error\n selectedInteger.extractPart(\"1\");\n\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"performanceScore\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"short\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"long\" | undefined,\n EmployeeApiTest\n >\n >();\n expectTypeOf(\n base.pivotTo(\"lead\").selectProperty(\n \"hourlyRate\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"float\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedInteger;\n },\n });\n });\n\n it(\"provides correct methods off of aggregated properties\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const maxAggregation = base.pivotTo(\"lead\").aggregate(\n \"employeeId:max\",\n );\n\n expectTypeOf(maxAggregation).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >;\n\n maxAggregation.add(1);\n maxAggregation.subtract(1);\n maxAggregation.multiply(1);\n maxAggregation.divide(1);\n maxAggregation.abs();\n maxAggregation.negate();\n maxAggregation.max(1);\n maxAggregation.min(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:avg\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\" | undefined,\n EmployeeApiTest\n >\n >();\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:min\"),\n ).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\" | undefined,\n EmployeeApiTest\n >\n >();\n\n const collectList = base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n );\n expectTypeOf(\n collectList,\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n // @ts-expect-error\n collectList.plus(1);\n\n expectTypeOf(\n base.pivotTo(\"peeps\").aggregate(\n \"employeeId:collectList\",\n ),\n ).toEqualTypeOf<\n DerivedProperty.Definition<\n \"integer\"[] | undefined,\n EmployeeApiTest\n >\n >();\n\n return maxAggregation;\n },\n });\n });\n\n it(\"correctly coerces numeric types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const intAndLong = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"employeeId\"),\n );\n expectTypeOf(intAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndDouble = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"performanceScore\")).add(\n base.selectProperty(\"yearsOfExperience\"),\n );\n expectTypeOf(longAndDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const longAndLong = base.pivotTo(\"lead\").selectProperty(\n \"yearsOfExperience\",\n )\n .add(base.selectProperty(\"yearsOfExperience\"));\n expectTypeOf(longAndLong).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\"long\", EmployeeApiTest>\n >();\n\n const intAndInt = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intAndInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const intLongDoubleChain = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n ).add(base.selectProperty(\"yearsOfExperience\")).add(\n base.selectProperty(\"employeeId\"),\n ).add(\n base.selectProperty(\"performanceScore\"),\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(intLongDoubleChain).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const shortAndIntReturnsInt = base.pivotTo(\"lead\").selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"employeeId\"));\n expectTypeOf(shortAndIntReturnsInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n const shortAndFloatReturnsDouble = base.pivotTo(\"lead\")\n .selectProperty(\n \"rank\",\n ).add(base.selectProperty(\"hourlyRate\"));\n expectTypeOf(shortAndFloatReturnsDouble).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return intLongDoubleChain;\n },\n });\n });\n\n it(\"allows adding number literals as a double\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const plus = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(1);\n expectTypeOf(plus).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return plus;\n },\n });\n });\n\n it(\"allows adding literals via base.constant\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const plus = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(base.constant.double(1));\n expectTypeOf(plus).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n const intPlusIntReturnsInt = base.pivotTo(\"lead\").selectProperty(\n \"employeeId\",\n )\n .add(base.constant.integer(1));\n expectTypeOf(intPlusIntReturnsInt).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"integer\",\n EmployeeApiTest\n >\n >();\n\n return plus;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.pivotTo(\"peeps\").aggregate(\"employeeId:sum\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly types property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"employeeId\")\n .add(\n base.selectProperty(\"performanceScore\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.NumericPropertyDefinition<\n \"double\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly types property keys off the base OT\", () => {});\n });\n describe(\"datetime expressions\", () => {\n it(\"provides correct methods off of datetime selections\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const selectedDatetime = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n );\n\n expectTypeOf(selectedDatetime).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\" | undefined,\n EmployeeApiTest\n >\n >();\n\n selectedDatetime.max(base.selectProperty(\"dateOfJoining\"));\n selectedDatetime.min(base.selectProperty(\"lastUpdated\"));\n\n expectTypeOf(base.pivotTo(\"lead\").selectProperty(\"lastUpdated\"))\n .toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\" | undefined,\n EmployeeApiTest\n >\n >();\n\n return selectedDatetime;\n },\n });\n });\n\n it(\"correctly coerces datetime types\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const max = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .max(base.selectProperty(\"lastUpdated\"));\n expectTypeOf(max).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n const min = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(base.selectProperty(\"dateOfJoining\"));\n expectTypeOf(min).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\",\n EmployeeApiTest\n >\n >();\n\n return max;\n },\n });\n });\n\n it(\"allows adding literals via base.constant\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const dateAndDateReturnDate = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n )\n .min(base.constant.datetime(\"2025-01-01T00:00:00Z\"));\n expectTypeOf(dateAndDateReturnDate).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"datetime\",\n EmployeeApiTest\n >\n >();\n\n const dateAndTimeReturnTime = base.pivotTo(\"lead\").selectProperty(\n \"dateOfJoining\",\n )\n .min(base.constant.timestamp(\"2025-01-01T00:00:00Z\"));\n expectTypeOf(dateAndTimeReturnTime).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return dateAndTimeReturnTime;\n },\n });\n });\n\n it(\"allows correctly typed nested property definitions\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.pivotTo(\"lead\").pivotTo(\"lead\").selectProperty(\n \"lastUpdated\",\n ),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n it(\"allows correctly typed property keys off the linked OT\", () => {\n const objectSet = fauxObjectSet.withProperties({\n \"myProp1\": (base) => {\n const nested = base.pivotTo(\"lead\").selectProperty(\"dateOfJoining\")\n .min(\n base.selectProperty(\"lastUpdated\"),\n );\n expectTypeOf(nested).toEqualTypeOf<\n DerivedProperty.DatetimePropertyDefinition<\n \"timestamp\",\n EmployeeApiTest\n >\n >();\n\n return nested;\n },\n });\n });\n\n // it(\"allows correctly typed property keys off the base OT\", () => {});\n });\n });\n\n describe(\"nearestNeighbors\", () => {\n it(\"has correct nearest neighbors object set query return type\", () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n expectTypeOf(nearestNeighborsObjectSet).toEqualTypeOf<\n $ObjectSet<EmployeeApiTest>\n >();\n });\n\n it(\"allows text queries\", async () => {\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"allows vector queries\", async () => {\n const vectorQuery = Array.from({ length: 1536 }, () => 0.3);\n const nearestNeighborsObjectSet = fauxObjectSet.nearestNeighbors(\n vectorQuery,\n 3,\n \"skillSetEmbedding\",\n );\n const { data: employees } = await nearestNeighborsObjectSet.fetchPage();\n expectTypeOf(employees).toEqualTypeOf<\n Osdk.Instance<EmployeeApiTest, never, PropertyKeys<EmployeeApiTest>>[]\n >();\n });\n\n it(\"only supports queries on vector properties\", () => {\n fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n // @ts-expect-error\n \"skillSet\",\n );\n });\n\n it(\"appropriately types fetchPage ordered by relevance\", async () => {\n const nearestNeighborsObjectSet = await fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPage({ $orderBy: \"relevance\" });\n\n type expectedType =\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number };\n\n expectTypeOf(nearestNeighborsObjectSet.data[0]).toEqualTypeOf<\n expectedType\n >();\n });\n\n it(\"appropriately types fetchPageWithErrors ordered by relevance\", async () => {\n const nearestNeighborsObjectSetWithErrors = await fauxObjectSet\n .nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPageWithErrors({ $orderBy: \"relevance\" });\n\n type expectedType =\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number };\n expectTypeOf(nearestNeighborsObjectSetWithErrors.value!.data[0])\n .toEqualTypeOf<expectedType>();\n });\n\n it(\"appropriately types asyncIters ordered by relevance\", () => {\n const asyncIter = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).asyncIter(\n { $orderBy: \"relevance\" },\n );\n\n type expectedType = AsyncIterableIterator<\n & Osdk.Instance<\n EmployeeApiTest,\n never,\n PropertyKeys<EmployeeApiTest>,\n {}\n >\n & { $score: number }\n >;\n expectTypeOf(asyncIter).toEqualTypeOf<expectedType>();\n });\n\n it(\"no arbitrary order bys\", () => {\n const knn = fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n );\n\n // @ts-expect-error\n void knn.fetchPage({ $orderBy: \"invalid\" });\n // @ts-expect-error\n void knn.fetchPageWithErrors({ $orderBy: \"invalid\" });\n // @ts-expect-error\n void knn.asyncIter({ $orderBy: \"random\" });\n });\n\n it(\"does not include score for property order by\", async () => {\n const nearestNeighborsObjectSet = await fauxObjectSet.nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPage({ $orderBy: { \"fullName\": \"desc\" } });\n\n expectTypeOf(nearestNeighborsObjectSet.data[0]).not.toHaveProperty(\n \"$score\",\n );\n\n const nearestNeighborsObjectSetWithErrors = await fauxObjectSet\n .nearestNeighbors(\n \"textQuery\",\n 3,\n \"skillSetEmbedding\",\n ).fetchPageWithErrors({ $orderBy: { \"fullName\": \"desc\" } });\n\n expectTypeOf(nearestNeighborsObjectSetWithErrors.value?.data[0]).not\n .toHaveProperty(\"$score\");\n });\n });\n describe(\"narrowToType\", () => {\n it(\"restricts casting from interface to object type\", () => {\n const objectSet = { narrowToType: () => {} } as unknown as $ObjectSet<\n FooInterfaceApiTest\n >;\n\n objectSet.narrowToType(EmployeeApiTest);\n\n objectSet.narrowToType(FooInterfaceApiTest);\n\n objectSet.narrowToType({ type: \"interface\", apiName: \"AnyInterface :)\" });\n\n // @ts-expect-error\n objectSet.narrowToType({ type: \"object\", apiName: \"NotImplemented\" });\n\n // Interfaces that don't have any implementedBy fields should still accept any interface\n const objectSet2 = { narrowToType: () => {} } as unknown as $ObjectSet<\n FooInterfaceApiTest & { __DefinitionMetadata: { implementedBy: [] } }\n >;\n\n objectSet2.narrowToType({ type: \"interface\", apiName: \"NotImplemented\" });\n });\n it(\"restricts casting from object type to interface\", () => {\n const objectSet = {} as $ObjectSet<EmployeeApiTest>;\n type narrowToTypeAllowedInterfaceTypes = Parameters<\n typeof objectSet.narrowToType\n >[0][\"apiName\"];\n type narrowToTypeAllowedTypes = Parameters<\n typeof objectSet.narrowToType\n >[0][\"type\"];\n\n expectTypeOf<narrowToTypeAllowedTypes>().toEqualTypeOf<\"interface\">();\n\n expectTypeOf<narrowToTypeAllowedInterfaceTypes>().toEqualTypeOf<\n \"FooInterface\"\n >();\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;AAY7D,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,mBAAmB,QAAQ,gCAAgC;AAEpE,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,EAAEZ,EAAE,CAACa,EAAE,CAAC,MAAM;MACjB,OAAOP,aAAa;IACtB,CAAC,CAAC;IACFQ,cAAc,EAAEd,EAAE,CAACa,EAAE,CAAC,MAAM;MAC1B,OAAOP,aAAa;IACtB,CAAC,CAAC;IACFS,SAAS,EAAEf,EAAE,CAACa,EAAE,CAAC,MAAMG,OAAO,CAACC,OAAO,CAACZ,WAAW,CAAC,CAAC;IACpDa,mBAAmB,EAAElB,EAAE,CAACa,EAAE,CAAC,MAAMG,OAAO,CAACC,OAAO,CAAC;MAAEE,KAAK,EAAEd;IAAY,CAAC,CAAC,CAAC;IACzEe,QAAQ,EAAEpB,EAAE,CAACa,EAAE,CAAC,MAAMT,UAAU,CAAC;IACjCiB,SAAS,EAAErB,EAAE,CAACa,EAAE,CAAC,MAAM;MACrB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACFS,SAAS,EAAEtB,EAAE,CAACa,EAAE,CAAC,MAAM;MACrB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACFU,OAAO,EAAEvB,EAAE,CAACa,EAAE,CAAC,MAAM;MACnB,OAAOP,aAAa;IACtB,CAAC,CAAC;IACFkB,gBAAgB,EAAExB,EAAE,CAACa,EAAE,CAAC,MAAM;MAC5B,OAAOP,aAAa;IACtB,CAAC;EACH,CAAyB;EAEzB,OAAOA,aAAa;AACtB;AAEAV,QAAQ,CAAC,WAAW,EAAE,MAAM;EAC1B,MAAMU,aAAa,GAAGH,mBAAmB,CAAkB,CAAC;EAEjCA,mBAAmB,CAAsB,CAAC;EAErEP,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACvBG,IAAI,CAAC,aAAa,EAAE,YAAY;MACf,MAAMO,aAAa,CAACS,SAAS,CAAC,CAAC;MAC9ClB,YAAY,CAAwB,CAAC,CAAC4B,aAAa,CAEjD,CAAC;;MAEH;MACA;MACgB,MAAMnB,aAAa,CAACS,SAAS,CAM3C,CAAC;IACL,CAAC,CAAC;IAEFhB,IAAI,CAAC,YAAY,EAAE,YAAY;MACd,MAAMO,aAAa,CAACS,SAAS,CAAC;QAAE,SAAS,EAAE,CAAC,UAAU;MAAE,CAAC,CAAC;MACzElB,YAAY,CAAwB,CAAC,CAAC4B,aAAa,CAEjD,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF7B,QAAQ,CAAC,gCAAgC,EAAE,MAAM;IAC/CE,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAM4B,eAAe,GAAG,MAAMpB,aAAa,CACxCM,KAAK,CAAC;QAAEe,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBZ,SAAS,CAAC;QAAEa,+BAA+B,EAAE;MAAK,CAAC,CAAC;MAEvD/B,YAAY,CAAC6B,eAAe,CAAC,CAACD,aAAa,CAIzC,CAAC;MAEH,MAAMI,eAAe,GAAGvB,aAAa,CAClCM,KAAK,CAAC;QAAEe,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBN,SAAS,CAAC;QAAEO,+BAA+B,EAAE;MAAK,CAAC,CAAC;MAEvD/B,YAAY,CAACgC,eAAe,CAAC,CAACJ,aAAa,CAIzC,CAAC;IACL,CAAC,CAAC;IAEF3B,EAAE,CAAC,gDAAgD,EAAE,YAAY;MACvC,MAAMQ,aAAa,CACxCM,KAAK,CAAC;QAAEe,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBZ,SAAS,CAAC;QACT;QACAa,+BAA+B,EAAE,IAAI;QACrCE,OAAO,EAAE,CAAC,YAAY;MACxB,CAAC,CAAC;MAEoBxB,aAAa,CAClCM,KAAK,CAAC;QAAEe,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBN,SAAS,CAAC;QACT;QACAO,+BAA+B,EAAE,IAAI;QACrCE,OAAO,EAAE,CAAC,YAAY;MACxB,CAAC,CAAC;IACN,CAAC,CAAC;IAEFhC,EAAE,CAAC,iDAAiD,EAAE,YAAY;MACxC,MAAMQ,aAAa,CACxCM,KAAK,CAAC;QAAEe,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBZ,SAAS,CAAC;QACTa,+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,EACb,UAAU,EACV,mBAAmB;MAEvB,CAAC,CAAC;MAEoB,MAAMxB,aAAa,CACxCM,KAAK,CAAC;QAAEe,KAAK,EAAE;MAAM,CAAC,CAAC,CACvBZ,SAAS,CAAC;QACTa,+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,EACb,UAAU,EACV,mBAAmB;MAEvB,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF/B,IAAI,CAAC,YAAY,EAAE,YAAY;IAC7B,MAAMgC,CAAC,GAAG,MAAMzB,aAAa,CAC1BM,KAAK,CAAC;MAAEe,KAAK,EAAE;IAAM,CAAC,CAAC,CACvBZ,SAAS,CAAC;MAAEiB,WAAW,EAAE;IAAK,CAAC,CAAC;IAEnCnC,YAAY,CAACkC,CAAC,CAAC,CAACN,aAAa,CAI3B,CAAC;EACL,CAAC,CAAC;EAEF1B,IAAI,CAAC,SAAS,EAAE,YAAY;IACX,MAAMO,aAAa,CAACiB,OAAO,CAAC,OAAO,CAAC,CAACR,SAAS,CAAC,CAAC,CAAC,CAAC;IACjE,MAAMkB,SAAS,GAAG,MAAM3B,aAAa,CAACiB,OAAO,CAAC,OAAO,CAAC,CAACR,SAAS,CAAC;MAC/De,OAAO,EAAE,CAAC,YAAY,EAAE,OAAO;IACjC,CAAC,CAAC;IAEFjC,YAAY,CAACoC,SAAS,CAAC,CAACR,aAAa,CAInC,CAAC;EACL,CAAC,CAAC;EAEF7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAChCG,IAAI,CAAC,iBAAiB,EAAE,YAAY;MAClC,MAAMmC,KAAK,GAAG5B,aAAa,CAACQ,cAAc,CAAC;QACzC,GAAG,EAAGqB,IAAI,IAAK;UACb,OAAOA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,qBAAqB,CAAC;QAC9D;MACF,CAAC,CAAC;MAIFzB,YAAY,CAACqC,KAAK,CAAC,CAACT,aAAa,CAI/B,CAAC;MAEkB,MAAMS,KAAK,CAACnB,SAAS,CAAC,CAAC;MAE5ClB,YAAY,CAAiC,CAAC,CAAC4B,aAAa,CAI1D,CAAC;MAEH5B,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAAS,CAAC;IAC5B,CAAC,CAAC;IAEF3B,EAAE,CAAC,qBAAqB,EAAE,MAAM;MACCQ,aAAa,CAACQ,cAAc,CAAC;QAC1D,qBAAqB,EAAGqB,IAAI,IAC1BA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY;MACpD,CAAC,CAAC,CAAChB,QAAQ,CAAC,CAAC,EAAE;QACbU,OAAO,EAAE,CAAC,qBAAqB;MACjC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF/B,IAAI,CAAC,qBAAqB,EAAE,YAAY;MACtC,MAAMsC,UAAU,GAAG/B,aAAa,CAACQ,cAAc,CAAC;QAC9C,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QACzD,KAAK,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,UAAU,CAAC;QAChE,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB;MACxE,CAAC,CAAC;MACFzB,YAAY,CAACwC,UAAU,CAAC,CAACZ,aAAa,CAMpC,CAAC;MAEuB,MAAMY,UAAU,CAACtB,SAAS,CAAC,CAAC;MAEtDlB,YAAY,CAAsC,CAAC,CAAC4B,aAAa,CAM/D,CAAC;MAEH5B,YAAY,CAA6C,CAAC,CACvD4B,aAAa,CAAS,CAAC;MAC1B5B,YAAY,CAA6C,CAAC,CACvD4B,aAAa,CAAqB,CAAC;MACtC5B,YAAY,CAAgD,CAAC,CAC1D4B,aAAa,CAAuB,CAAC;IAC1C,CAAC,CAAC;IAEF7B,QAAQ,CAAC,sBAAsB,EAAE,MAAM;MACrCG,IAAI,CAAC,eAAe,EAAE,MAAM;QAC1B,MAAMuC,OAAO,GAAGhC,aAAa,CAACQ,cAAc,CAAC;UAC3C,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;QAC1D,CAAC,CAAC;QAEF,MAAMiB,WAAW,GAAGD,OAAO,CAACxB,cAAc,CAAC;UACzC,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,UAAU;QACjE,CAAC,CAAC;QAEFvC,YAAY,CAAC0C,WAAW,CAAC,CAACd,aAAa,CAKrC,CAAC;MACL,CAAC,CAAC;MAEF1B,IAAI,CAACyC,IAAI,CAAC,4BAA4B,CAAC;IACzC,CAAC,CAAC;IAEF5C,QAAQ,CAAC,aAAa,EAAE,MAAM;MAC5BE,EAAE,CAAC,+DAA+D,EAAE,YAAY;QAC9E,MAAMuC,UAAU,GAAG/B,aAAa,CAACQ,cAAc,CAAC;UAC9C,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;UACzD,KAAK,EAAGa,IAAI,IACVA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,qBAAqB,CAAC;UACvD,KAAK,EAAGa,IAAI,IACVA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,2BAA2B;QAC9D,CAAC,CAAC;QAEwB,MAAMe,UAAU,CAACtB,SAAS,CAAC,CAAC;QAEtDlB,YAAY,CAAsC,CAAC,CAAC4B,aAAa,CAM/D,CAAC;MACL,CAAC,CAAC;MAEF3B,EAAE,CACA,gFAAgF,EAChF,YAAY;QACV,MAAM2C,gBAAgB,GAAGnC,aAAa,CAACQ,cAAc,CAAC;UACpD,YAAY,EAAGqB,IAAI,IACjBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,kBAAkB,CAAC;UACpD,QAAQ,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,UAAU,CAAC;UACnE,aAAa,EAAGD,IAAI,IAClBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;UACrD,KAAK,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,KAAK,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,KAAK,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,KAAK,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;UACjE,uBAAuB,EAAGa,IAAI,IAC5BA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAC5B,kCACF;QACJ,CAAC,CAAC;QAE6B,MAAMmB,gBAAgB,CAAC1B,SAAS,CAAC,CAAC;QAEjElB,YAAY,CAA2C,CAAC,CACrD4B,aAAa,CAgBZ,CAAC;MACP,CACF,CAAC;IACH,CAAC,CAAC;IAEF7B,QAAQ,CAAC,8CAA8C,EAAE,MAAM;MAC7D,MAAMyC,UAAU,GAAG/B,aAAa,CAACQ,cAAc,CAAC;QAC9C,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QACzD,KAAK,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,UAAU,CAAC;QAChE,QAAQ,EAAGD,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB;MACxE,CAAC,CAAC;MAEFxB,EAAE,CAAC,mBAAmB,EAAE,YAAY;QAClC,MAAMc,KAAK,GAAGyB,UAAU,CAACzB,KAAK,CAAC;UAAE,KAAK,EAAE;QAAE,CAAC,CAAC;QAC5C,MAAM8B,YAAY,GAAG,MAAM9B,KAAK,CAACG,SAAS,CAAC,CAAC;;QAE5C;QACA;QAcA;QACA;QAUI2B,YAAY,CAAC/B,IAAI,CAAC,CAAC,CAAC;QAEd+B,YAAY,CAAC/B,IAAI,CAAC,CAAC,CAAC,CAACJ,KAAK,CAACC,KAAK,CAACC,mBAAmB,CAACC,GAAG,EAElE;QACAb,YAAY,CAAe,CAAC,CAAC4B,aAAa,CAAoB,CAAC;QAC/D5B,YAAY,CAAiC,CAAC,CAC3C4B,aAAa,CAWZ,CAAC;;QAEL;QACA;QACA;QAYI,MAAMb,KAAK,CAACG,SAAS,CAAC,CAAC;QAWvB,MAAMsB,UAAU,CAACjB,QAAQ,CAAC,CAAC,CAAC;QAChC,MAAMiB,UAAU,CAACjB,QAAQ,CAAC,CAAC,CAAC;MAC9B,CAAC,CAAC;MAEFtB,EAAE,CAAC,mBAAmB,EAAE,MAAM;QACVuC,UAAU,CAAChB,SAAS,CAAC,CAAC;QACxCxB,YAAY,CAAmB,CAAC,CAAC4B,aAAa,CAa5C,CAAC;MACL,CAAC,CAAC;MAEF3B,EAAE,CAAC,sBAAsB,EAAE,YAAY;QACX,MAAMuC,UAAU,CAACtB,SAAS,CAAC,CAAC;QAEtDlB,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAWZ,CAAC;MACP,CAAC,CAAC;MAEF3B,EAAE,CAAC,+BAA+B,EAAE,YAAY;QACpB,MAAMuC,UAAU,CAACtB,SAAS,CAAC;UACnDe,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ;QAClC,CAAC,CAAC;QAEFjC,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAMZ,CAAC;QAEL5B,YAAY,CAA6C,CAAC,CACvD4B,aAAa,CAAS,CAAC;MAC5B,CAAC,CAAC;MAEF3B,EAAE,CAAC,gCAAgC,EAAE,YAAY;QACrB,MAAMuC,UAAU,CAACtB,SAAS,CAAC;UACnDe,OAAO,EAAE,CAAC,KAAK;QACjB,CAAC,CAAC;QAEFjC,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAIZ,CAAC;MACP,CAAC,CAAC;MAEF3B,EAAE,CAAC,oCAAoC,EAAE,YAAY;QACzB,MAAMuC,UAAU,CAACtB,SAAS,CAAC;UACnDe,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,EACb,UAAU,EACV,mBAAmB;QAEvB,CAAC,CAAC;QAEFjC,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAOZ,CAAC;QACL5B,YAAY,CAA+C,CAAC,CACzD4B,aAAa,CAEZ,CAAC;MACP,CAAC,CAAC;MAEF3B,EAAE,CAAC,qCAAqC,EAAE,YAAY;QAC1B,MAAMuC,UAAU,CAACtB,SAAS,CAAC;UACnDe,OAAO,EAAE,CAAC,OAAO;QACnB,CAAC,CAAC;QAEFjC,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAEZ,CAAC;MACP,CAAC,CAAC;MAEF3B,EAAE,CAAC,4BAA4B,EAAE,YAAY;QACjB,MAAMuC,UAAU,CAACtB,SAAS,CAAC;UACnDe,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK;QAC1B,CAAC,CAAC;QAEFjC,YAAY,CAAsC,CAAC,CAChD4B,aAAa,CAOZ,CAAC;MACP,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF3B,EAAE,CAAC,4BAA4B,EAAE,MAAM;MACnBQ,aAAa,CAACQ,cAAc,CAAC;QAC7C,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;MAC1D,CAAC,CAAC;MAIFzB,YAAY,CAAgB,CAAC,CAAC4B,aAAa,CAIzC,CAAC;MAEgBnB,aAAa,CAACQ,cAAc,CAAC;QAC9C,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFxB,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAQ5BQ,aAAa,CAACQ,cAAc,CAAC;QAC3B,KAAK,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFxB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvCQ,aAAa,CAACQ,cAAc,CAAC;QAC3B,SAAS,EAAGqB,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QAC7D,mBAAmB,EAAGa,IAAI,IACxBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;QAClD,QAAQ,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;QACvE,6BAA6B,EAAGa,IAAI;QAClC;QACAA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAGa,IAAI,IACfA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,8BAA8B,CAAC;QAChE,YAAY,EAAGa,IAAI,IACjBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,wBAAwB,CAAC;QAC1D,UAAU,EAAGa,IAAI,IACfA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,sBAAsB,CAAC;QACxD,mBAAmB,EAAGa,IAAI;QACxB;QACAA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;QAClD,gCAAgC,EAAGa,IAAI,IACrCA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,0BAA0B,CAAC;QAC5D,gBAAgB,EAAGa,IAAI;QACrB;QACAA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,oBAAoB,CAAC;QACtD,6BAA6B,EAAGa,IAAI,IAClCA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,8BAA8B,CAAC;QAChE,wBAAwB,EAAGa,IAAI;QAC7B;QACAA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,4BAA4B,CAAC;QAC9D,qCAAqC,EAAGa,IAAI,IAC1CA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAC5B,sCACF,CAAC;QACH,aAAa,EAAGa,IAAI,IAAK;UACvBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,iCAAiC,CAAC;UACjEa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,2BAA2B,CAAC;UAC3Da,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,iBAAiB,CAAC;UACjDa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,iBAAiB,CAAC;UACjDa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,yBAAyB,CAAC;UACzD,OAAOa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,wBAAwB,CAAC;QACjE,CAAC;QACD,eAAe,EAAGa,IAAI,IAAK;UACzBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mCAAmC,CAAC;UACnEa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,6BAA6B,CAAC;UAC7Da,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;UACnDa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;UACnDa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,2BAA2B,CAAC;UAC3D,OAAOa,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,0BAA0B,CAAC;QACnE;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFxB,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAM6C,gBAAgB,GAAGrC,aAAa,CAACQ,cAAc,CAAC;QACpD,gBAAgB,EAAGqB,IAAI,IACrBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;QACrD,gBAAgB,EAAGa,IAAI,IACrBA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,mBAAmB,CAAC;QACrD,sCAAsC,EAAGa,IAAI,IAC3CA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gCAAgC,CAAC;QAClE,gCAAgC,EAAGa,IAAI,IACrCA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,0BAA0B,CAAC;QAC5D,wBAAwB,EAAGa,IAAI,IAC7BA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,QAAQ,CAAC;QAC1C,WAAW,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAAC;QACvE,WAAW,EAAGa,IAAI,IAAKA,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CAAC,gBAAgB;MACxE,CAAC,CAAC,CAACP,SAAS,CAAC,CAAC;MAEd,MAAM6B,MAAM,GAAG,CAAC,MAAMD,gBAAgB,EAAEhC,IAAI,CAAC,CAAC,CAAC;MAC/Cd,YAAY,CAAC,CAAC,MAAM8C,gBAAgB,EAAEhC,IAAI,CAAC,CAAC,CAAC,CAAC,CAACc,aAAa,CAU1D,CAAC;MAEH5B,YAAY,CAAC+C,MAAM,CAACC,cAAc,CAAC,CAACpB,aAAa,CAAqB,CAAC;MACvE5B,YAAY,CAAC+C,MAAM,CAACE,cAAc,CAAC,CAACrB,aAAa,CAAqB,CAAC;MACvE5B,YAAY,CAAC+C,MAAM,CAACG,oCAAoC,CAAC,CAACtB,aAAa,CAErE,CAAC;MACH5B,YAAY,CAAC+C,MAAM,CAACI,8BAA8B,CAAC,CAACvB,aAAa,CAE/D,CAAC;MACH5B,YAAY,CAAC+C,MAAM,CAACK,sBAAsB,CAAC,CAACxB,aAAa,CAAS,CAAC;MACnE5B,YAAY,CAAC+C,MAAM,CAACM,SAAS,CAAC,CAACzB,aAAa,CAAqB,CAAC;MAClE5B,YAAY,CAAC+C,MAAM,CAACO,SAAS,CAAC,CAAC1B,aAAa,CAAqB,CAAC;IACpE,CAAC,CAAC;IAEF3B,EAAE,CAAC,8CAA8C,EAAE,MAAM;MAOhD;;MAEPD,YAAY,CAEV,CAAC,CAACuD,OAAO,CAAC3B,aAAa,CAKvB,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;EACF7B,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BE,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,KAAKQ,aAAa,CAACgB,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;EACF1B,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC5B,yBAAyB;;IACzBA,QAAQ,CAAC,qBAAqB,EAAE,MAAM;MACpCE,EAAE,CAAC,+EAA+E,EAAE,MAAM;QACtEQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAMkB,eAAe,GAAGlB,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACzD,YACF,CAAC;YAEDvC,YAAY,CAACwD,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;YAEhCjE,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,kBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,MACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,mBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,YACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YAEH,OAAO4B,eAAe;UACxB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFvD,EAAE,CAAC,uDAAuD,EAAE,MAAM;QAC9CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAMkB,eAAe,GAAGlB,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACzD,YACF,CAAC;YAEDvC,YAAY,CAACwD,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;YAEhCjE,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,kBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,MACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,mBACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YACH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjC,YACF,CACF,CAAC,CAACX,aAAa,CAKb,CAAC;YAEH,OAAO4B,eAAe;UACxB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFvD,EAAE,CAAC,uDAAuD,EAAE,MAAM;QAC9CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM4B,cAAc,GAAG5B,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACD,SAAS,CACnD,gBACF,CAAC;YAEDzB,YAAY,CAACkE,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;YAErBhE,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC,CAACG,aAAa,CAKb,CAAC;YAEH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC,CAACG,aAAa,CAKb,CAAC;YAEH5B,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC,CAACG,aAAa,CAKb,CAAC;YAEH,MAAMuC,WAAW,GAAG7B,IAAI,CAACZ,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CACjD,wBACF,CAAC;YACDzB,YAAY,CACVmE,WACF,CAAC,CAACvC,aAAa,CAKb,CAAC;;YAEH;YACAuC,WAAW,CAACC,IAAI,CAAC,CAAC,CAAC;YAEnBpE,YAAY,CACVsC,IAAI,CAACZ,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAC7B,wBACF,CACF,CAAC,CAACG,aAAa,CAKb,CAAC;YAEH,OAAOsC,cAAc;UACvB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFjE,EAAE,CAAC,iCAAiC,EAAE,MAAM;QACxBQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM+B,UAAU,GAAG/B,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY,CAAC,CACjEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAACkB,GAAG,CAChDnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAClC,CAAC;YACHvC,YAAY,CAACqE,UAAU,CAAC,CAACzC,aAAa,CAEpC,CAAC;YAEH,MAAM0C,YAAY,GAAGhC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,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;YACHvC,YAAY,CAACsE,YAAY,CAAC,CAAC1C,aAAa,CAKtC,CAAC;YAEH,MAAM2C,aAAa,GAAGjC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,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;YACHvC,YAAY,CAACuE,aAAa,CAAC,CAAC3C,aAAa,CAKvC,CAAC;YAEH,MAAM4C,WAAW,GAAGlC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACrD,mBACF,CAAC,CACEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAChDvC,YAAY,CAACwE,WAAW,CAAC,CAAC5C,aAAa,CAErC,CAAC;YAEH,MAAM6C,SAAS,GAAGnC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY,CAAC,CAChEkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YACzCvC,YAAY,CAACyE,SAAS,CAAC,CAAC7C,aAAa,CAKnC,CAAC;YAEH,MAAM8C,kBAAkB,GAAGpC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,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;YACxCvC,YAAY,CAAC0E,kBAAkB,CAAC,CAAC9C,aAAa,CAK5C,CAAC;YAEH,MAAM+C,qBAAqB,GAAGrC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAC/D,MACF,CAAC,CAACkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YACxCvC,YAAY,CAAC2E,qBAAqB,CAAC,CAAC/C,aAAa,CAK/C,CAAC;YAEH,MAAMgD,0BAA0B,GAAGtC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CACpDa,cAAc,CACb,MACF,CAAC,CAACkB,GAAG,CAACnB,IAAI,CAACC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1CvC,YAAY,CAAC4E,0BAA0B,CAAC,CAAChD,aAAa,CAKpD,CAAC;YAEH,OAAO8C,kBAAkB;UAC3B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFzE,EAAE,CAAC,2CAA2C,EAAE,MAAM;QAClCQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM8B,IAAI,GAAG9B,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY,CAAC,CAC3DkB,GAAG,CAAC,CAAC,CAAC;YACTzD,YAAY,CAACoE,IAAI,CAAC,CAACxC,aAAa,CAK9B,CAAC;YAEH,OAAOwC,IAAI;UACb;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFnE,EAAE,CAAC,0CAA0C,EAAE,MAAM;QACjCQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM8B,IAAI,GAAG9B,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY,CAAC,CAC3DkB,GAAG,CAACnB,IAAI,CAACuC,QAAQ,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B9E,YAAY,CAACoE,IAAI,CAAC,CAACxC,aAAa,CAK9B,CAAC;YAEH,MAAMmD,oBAAoB,GAAGzC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAC9D,YACF,CAAC,CACEkB,GAAG,CAACnB,IAAI,CAACuC,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAAC;YAChChF,YAAY,CAAC+E,oBAAoB,CAAC,CAACnD,aAAa,CAK9C,CAAC;YAEH,OAAOwC,IAAI;UACb;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFnE,EAAE,CAAC,oDAAoD,EAAE,MAAM;QAC3CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY,CAAC,CAC7DkB,GAAG,CACFnB,IAAI,CAACZ,OAAO,CAAC,OAAO,CAAC,CAACD,SAAS,CAAC,gBAAgB,CAClD,CAAC;YACHzB,YAAY,CAACiF,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFhF,EAAE,CAAC,wDAAwD,EAAE,MAAM;QAC/CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,YAAY,CAAC,CAC7DkB,GAAG,CACFnB,IAAI,CAACC,cAAc,CAAC,kBAAkB,CACxC,CAAC;YACHvC,YAAY,CAACiF,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;IACFlF,QAAQ,CAAC,sBAAsB,EAAE,MAAM;MACrCE,EAAE,CAAC,qDAAqD,EAAE,MAAM;QAC5CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM4C,gBAAgB,GAAG5C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAC1D,eACF,CAAC;YAEDvC,YAAY,CAACkF,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;YAExDvC,YAAY,CAACsC,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,aAAa,CAAC,CAAC,CAC7DX,aAAa,CAKZ,CAAC;YAEL,OAAOsD,gBAAgB;UACzB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFjF,EAAE,CAAC,kCAAkC,EAAE,MAAM;QACzBQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAMyB,GAAG,GAAGzB,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,eAAe,CAAC,CAC7DwB,GAAG,CAACzB,IAAI,CAACC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC1CvC,YAAY,CAAC+D,GAAG,CAAC,CAACnC,aAAa,CAK7B,CAAC;YAEH,MAAMoC,GAAG,GAAG1B,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,eAAe,CAAC,CAC7DyB,GAAG,CAAC1B,IAAI,CAACC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC5CvC,YAAY,CAACgE,GAAG,CAAC,CAACpC,aAAa,CAK7B,CAAC;YAEH,OAAOmC,GAAG;UACZ;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF9D,EAAE,CAAC,0CAA0C,EAAE,MAAM;QACjCQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM6C,qBAAqB,GAAG7C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAC/D,eACF,CAAC,CACEyB,GAAG,CAAC1B,IAAI,CAACuC,QAAQ,CAACO,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACtDpF,YAAY,CAACmF,qBAAqB,CAAC,CAACvD,aAAa,CAK/C,CAAC;YAEH,MAAMyD,qBAAqB,GAAG/C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAC/D,eACF,CAAC,CACEyB,GAAG,CAAC1B,IAAI,CAACuC,QAAQ,CAACS,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACvDtF,YAAY,CAACqF,qBAAqB,CAAC,CAACzD,aAAa,CAK/C,CAAC;YAEH,OAAOyD,qBAAqB;UAC9B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFpF,EAAE,CAAC,oDAAoD,EAAE,MAAM;QAC3CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,eAAe,CAAC,CAChEyB,GAAG,CACF1B,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACA,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CACjD,aACF,CACF,CAAC;YACHvC,YAAY,CAACiF,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFhF,EAAE,CAAC,wDAAwD,EAAE,MAAM;QAC/CQ,aAAa,CAACQ,cAAc,CAAC;UAC7C,SAAS,EAAGqB,IAAI,IAAK;YACnB,MAAM2C,MAAM,GAAG3C,IAAI,CAACZ,OAAO,CAAC,MAAM,CAAC,CAACa,cAAc,CAAC,eAAe,CAAC,CAChEyB,GAAG,CACF1B,IAAI,CAACC,cAAc,CAAC,aAAa,CACnC,CAAC;YACHvC,YAAY,CAACiF,MAAM,CAAC,CAACrD,aAAa,CAKhC,CAAC;YAEH,OAAOqD,MAAM;UACf;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFlF,QAAQ,CAAC,kBAAkB,EAAE,MAAM;IACjCE,EAAE,CAAC,4DAA4D,EAAE,MAAM;MACrE,MAAMsF,yBAAyB,GAAG9E,aAAa,CAACkB,gBAAgB,CAC9D,WAAW,EACX,CAAC,EACD,mBACF,CAAC;MACD3B,YAAY,CAACuF,yBAAyB,CAAC,CAAC3D,aAAa,CAEnD,CAAC;IACL,CAAC,CAAC;IAEF3B,EAAE,CAAC,qBAAqB,EAAE,YAAY;MACpC,MAAMsF,yBAAyB,GAAG9E,aAAa,CAACkB,gBAAgB,CAC9D,WAAW,EACX,CAAC,EACD,mBACF,CAAC;MACD,MAAM;QAAEb,IAAI,EAAE0E;MAAU,CAAC,GAAG,MAAMD,yBAAyB,CAACrE,SAAS,CAAC,CAAC;MACvElB,YAAY,CAACwF,SAAS,CAAC,CAAC5D,aAAa,CAEnC,CAAC;IACL,CAAC,CAAC;IAEF3B,EAAE,CAAC,uBAAuB,EAAE,YAAY;MACtC,MAAMwF,WAAW,GAAGC,KAAK,CAACC,IAAI,CAAC;QAAEC,MAAM,EAAE;MAAK,CAAC,EAAE,MAAM,GAAG,CAAC;MAC3D,MAAML,yBAAyB,GAAG9E,aAAa,CAACkB,gBAAgB,CAC9D8D,WAAW,EACX,CAAC,EACD,mBACF,CAAC;MACD,MAAM;QAAE3E,IAAI,EAAE0E;MAAU,CAAC,GAAG,MAAMD,yBAAyB,CAACrE,SAAS,CAAC,CAAC;MACvElB,YAAY,CAACwF,SAAS,CAAC,CAAC5D,aAAa,CAEnC,CAAC;IACL,CAAC,CAAC;IAEF3B,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACrDQ,aAAa,CAACkB,gBAAgB,CAC5B,WAAW,EACX,CAAC;MACD;MACA,UACF,CAAC;IACH,CAAC,CAAC;IAEF1B,EAAE,CAAC,oDAAoD,EAAE,YAAY;MACnE,MAAMsF,yBAAyB,GAAG,MAAM9E,aAAa,CAACkB,gBAAgB,CACpE,WAAW,EACX,CAAC,EACD,mBACF,CAAC,CAACT,SAAS,CAAC;QAAE2E,QAAQ,EAAE;MAAY,CAAC,CAAC;MAWtC7F,YAAY,CAACuF,yBAAyB,CAACzE,IAAI,CAAC,CAAC,CAAC,CAAC,CAACc,aAAa,CAE3D,CAAC;IACL,CAAC,CAAC;IAEF3B,EAAE,CAAC,8DAA8D,EAAE,YAAY;MAC7E,MAAM6F,mCAAmC,GAAG,MAAMrF,aAAa,CAC5DkB,gBAAgB,CACf,WAAW,EACX,CAAC,EACD,mBACF,CAAC,CAACN,mBAAmB,CAAC;QAAEwE,QAAQ,EAAE;MAAY,CAAC,CAAC;MAUlD7F,YAAY,CAAC8F,mCAAmC,CAACxE,KAAK,CAAER,IAAI,CAAC,CAAC,CAAC,CAAC,CAC7Dc,aAAa,CAAe,CAAC;IAClC,CAAC,CAAC;IAEF3B,EAAE,CAAC,qDAAqD,EAAE,MAAM;MAC9D,MAAMuB,SAAS,GAAGf,aAAa,CAACkB,gBAAgB,CAC9C,WAAW,EACX,CAAC,EACD,mBACF,CAAC,CAACH,SAAS,CACT;QAAEqE,QAAQ,EAAE;MAAY,CAC1B,CAAC;MAWD7F,YAAY,CAACwB,SAAS,CAAC,CAACI,aAAa,CAAe,CAAC;IACvD,CAAC,CAAC;IAEF3B,EAAE,CAAC,wBAAwB,EAAE,MAAM;MACjC,MAAM8F,GAAG,GAAGtF,aAAa,CAACkB,gBAAgB,CACxC,WAAW,EACX,CAAC,EACD,mBACF,CAAC;;MAED;MACA,KAAKoE,GAAG,CAAC7E,SAAS,CAAC;QAAE2E,QAAQ,EAAE;MAAU,CAAC,CAAC;MAC3C;MACA,KAAKE,GAAG,CAAC1E,mBAAmB,CAAC;QAAEwE,QAAQ,EAAE;MAAU,CAAC,CAAC;MACrD;MACA,KAAKE,GAAG,CAACvE,SAAS,CAAC;QAAEqE,QAAQ,EAAE;MAAS,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF5F,EAAE,CAAC,8CAA8C,EAAE,YAAY;MAC7D,MAAMsF,yBAAyB,GAAG,MAAM9E,aAAa,CAACkB,gBAAgB,CACpE,WAAW,EACX,CAAC,EACD,mBACF,CAAC,CAACT,SAAS,CAAC;QAAE2E,QAAQ,EAAE;UAAE,UAAU,EAAE;QAAO;MAAE,CAAC,CAAC;MAEjD7F,YAAY,CAACuF,yBAAyB,CAACzE,IAAI,CAAC,CAAC,CAAC,CAAC,CAACkF,GAAG,CAACC,cAAc,CAChE,QACF,CAAC;MAED,MAAMH,mCAAmC,GAAG,MAAMrF,aAAa,CAC5DkB,gBAAgB,CACf,WAAW,EACX,CAAC,EACD,mBACF,CAAC,CAACN,mBAAmB,CAAC;QAAEwE,QAAQ,EAAE;UAAE,UAAU,EAAE;QAAO;MAAE,CAAC,CAAC;MAE7D7F,YAAY,CAAC8F,mCAAmC,CAACxE,KAAK,EAAER,IAAI,CAAC,CAAC,CAAC,CAAC,CAACkF,GAAG,CACjEC,cAAc,CAAC,QAAQ,CAAC;IAC7B,CAAC,CAAC;EACJ,CAAC,CAAC;EACFlG,QAAQ,CAAC,cAAc,EAAE,MAAM;IAC7BE,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAC1D,MAAMiG,SAAS,GAAG;QAAEC,YAAY,EAAEA,CAAA,KAAM,CAAC;MAAE,CAE1C;MAEDD,SAAS,CAACC,YAAY,CAAC/F,eAAe,CAAC;MAEvC8F,SAAS,CAACC,YAAY,CAAC9F,mBAAmB,CAAC;MAE3C6F,SAAS,CAACC,YAAY,CAAC;QAAEC,IAAI,EAAE,WAAW;QAAEC,OAAO,EAAE;MAAkB,CAAC,CAAC;;MAEzE;MACAH,SAAS,CAACC,YAAY,CAAC;QAAEC,IAAI,EAAE,QAAQ;QAAEC,OAAO,EAAE;MAAiB,CAAC,CAAC;;MAErE;;MAKA,CAJmB;QAAEF,YAAY,EAAEA,CAAA,KAAM,CAAC;MAAE,CAAC,EAIlCA,YAAY,CAAC;QAAEC,IAAI,EAAE,WAAW;QAAEC,OAAO,EAAE;MAAiB,CAAC,CAAC;IAC3E,CAAC,CAAC;IACFpG,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAS1DD,YAAY,CAA2B,CAAC,CAAC4B,aAAa,CAAc,CAAC;MAErE5B,YAAY,CAAoC,CAAC,CAAC4B,aAAa,CAE7D,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|