@osdk/faux 0.3.0-beta.2 → 0.3.0-beta.4

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 CHANGED
@@ -1,5 +1,34 @@
1
1
  # @osdk/shared.test
2
2
 
3
+ ## 0.3.0-beta.4
4
+
5
+ ### Minor Changes
6
+
7
+ - a00d2ed: Update Platform SDK dependencies
8
+ - a96d89e: Update Platform SDK dependencies
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [a00d2ed]
13
+ - Updated dependencies [a96d89e]
14
+ - @osdk/generator-converters@2.5.0-beta.4
15
+ - @osdk/api@2.5.0-beta.4
16
+
17
+ ## 0.3.0-beta.3
18
+
19
+ ### Minor Changes
20
+
21
+ - 7bdac45: Update Platform SDK dependency
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [7bdac45]
26
+ - Updated dependencies [7bdac45]
27
+ - Updated dependencies [20962bc]
28
+ - Updated dependencies [e48be06]
29
+ - @osdk/generator-converters@2.5.0-beta.3
30
+ - @osdk/api@2.5.0-beta.3
31
+
3
32
  ## 0.3.0-beta.2
4
33
 
5
34
  ### Minor Changes
@@ -33,7 +33,8 @@ export class FauxOntology {
33
33
  objectTypes: {},
34
34
  ontology,
35
35
  queryTypes: {},
36
- sharedPropertyTypes: {}
36
+ sharedPropertyTypes: {},
37
+ valueTypes: {}
37
38
  };
38
39
  }
39
40
  get apiName() {
@@ -52,7 +53,8 @@ export class FauxOntology {
52
53
  actionTypes: filterRecord(this.#ontology.actionTypes, request.actionTypes),
53
54
  queryTypes: this.#getFilteredQueryTypes(request),
54
55
  interfaceTypes: filterRecord(this.#ontology.interfaceTypes, request.interfaceTypes),
55
- sharedPropertyTypes: {}
56
+ sharedPropertyTypes: {},
57
+ valueTypes: {}
56
58
  };
57
59
  }
58
60
  getAllInterfaceTypes() {
@@ -1 +1 @@
1
- {"version":3,"file":"FauxOntology.js","names":["semver","valid","invariant","ActionNotFoundError","LinkTypeNotFound","ObjectNotFoundError","ObjectTypeDoesNotExistError","QueryNotFoundError","OpenApiCallError","FauxOntology","ontology","actionImpl","Map","queryImpl","constructor","actionTypes","interfaceTypes","objectTypes","queryTypes","sharedPropertyTypes","apiName","getOntologyFullMetadata","getFilteredOntologyMetadata","request","Object","fromEntries","entries","filter","objectType","includes","map","objectTypeApiName","objectTypeDefinition","linkTypes","linkType","filterRecord","getFilteredQueryTypes","getAllInterfaceTypes","values","getAllObjectTypes","getAllActionTypes","getAllQueryTypes","getInterfaceType","interfaceType","ret","undefined","getObjectTypeFullMetadata","getObjectTypeFullMetadataOrThrow","getActionDef","actionTypeApiName","actionType","getActionImpl","impl","get","process","env","NODE_ENV","getQueryDef","queryTypeApiNameAndVersion","queryType","convertToVersionedApiName","getQueryImpl","queryTypeApiName","version","versionMap","rsort","Array","from","keys","getInterfaceToObjectTypeMappings","objectApiNames","objectDefs","ifaceToObjMap","objDef","ifaceApiName","properties","implementsInterfaces2","getLinkTypeSideV2","linkTypeName","find","a","getOtherLinkTypeSideV2OrThrow","thisSideLink","otherObj","candidates","l","linkTypeRid","length","candidate","getBothLinkTypeSides","leftObjectType","leftLinkName","rightObjectType","leftTypeSideV2","rightTypeSideV2","registerObjectType","def","Error","registerActionType","implementation","set","registerQueryType","has","registerInterfaceType","registerSharedPropertyType","#getFilteredQueryTypes","remappedQueryTypes","x","queryTypeDefinition","indexOf","#convertToVersionedApiName","extractVersion","split","record","key"],"sources":["FauxOntology.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 ObjectTypeDefinition } from \"@osdk/api\";\nimport type * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type {\n LoadOntologyMetadataRequest,\n VersionedQueryTypeApiName,\n} from \"@osdk/internal.foundry.ontologies\";\nimport semver, { valid } from \"semver\";\nimport invariant from \"tiny-invariant\";\nimport type { ReadonlyDeep } from \"type-fest\";\nimport {\n ActionNotFoundError,\n LinkTypeNotFound,\n ObjectNotFoundError,\n ObjectTypeDoesNotExistError,\n QueryNotFoundError,\n} from \"../errors.js\";\nimport { OpenApiCallError } from \"../handlers/util/handleOpenApiCall.js\";\nimport type { FauxActionImpl } from \"./FauxActionImpl.js\";\nimport type { FauxQueryImpl } from \"./FauxQueryImpl.js\";\nimport type { TH_ObjectTypeFullMetadata } from \"./typeHelpers/TH_ObjectTypeFullMetadata.js\";\n\n/**\n * Currently Unsupported Concepts:\n * - many:many links.\n */\nexport class FauxOntology {\n #ontology: OntologiesV2.OntologyFullMetadata;\n #actionImpl: Map<OntologiesV2.ActionTypeApiName, FauxActionImpl> = new Map();\n #queryImpl: Map<\n OntologiesV2.QueryApiName,\n Map<OntologiesV2.FunctionVersion, FauxQueryImpl>\n > = new Map();\n\n constructor(ontology: OntologiesV2.OntologyV2) {\n this.#ontology = {\n actionTypes: {},\n interfaceTypes: {},\n objectTypes: {},\n ontology,\n queryTypes: {},\n sharedPropertyTypes: {},\n };\n }\n\n get apiName(): OntologiesV2.OntologyApiName {\n return this.#ontology.ontology.apiName;\n }\n\n getOntologyFullMetadata(): OntologiesV2.OntologyFullMetadata {\n return this.#ontology;\n }\n\n getFilteredOntologyMetadata(\n request: OntologiesV2.LoadOntologyMetadataRequest,\n ): OntologiesV2.OntologyFullMetadata {\n return {\n ontology: this.#ontology.ontology,\n objectTypes: Object.fromEntries(\n Object.entries(this.#ontology.objectTypes).filter(([objectType]) =>\n request.objectTypes.includes(objectType)\n ).map(([objectTypeApiName, objectTypeDefinition]) => [\n objectTypeApiName,\n {\n ...objectTypeDefinition,\n linkTypes: objectTypeDefinition.linkTypes.filter(linkType =>\n request.linkTypes.includes(linkType.apiName)\n ),\n },\n ]),\n ),\n actionTypes: filterRecord(\n this.#ontology.actionTypes,\n request.actionTypes,\n ),\n queryTypes: this.#getFilteredQueryTypes(request),\n\n interfaceTypes: filterRecord(\n this.#ontology.interfaceTypes,\n request.interfaceTypes,\n ),\n sharedPropertyTypes: {},\n };\n }\n\n getAllInterfaceTypes(): OntologiesV2.InterfaceType[] {\n return Object.values(this.#ontology.interfaceTypes);\n }\n\n getAllObjectTypes(): OntologiesV2.ObjectTypeFullMetadata[] {\n return Object.values(this.#ontology.objectTypes);\n }\n\n getAllActionTypes(): OntologiesV2.ActionTypeV2[] {\n return Object.values(this.#ontology.actionTypes);\n }\n\n getAllQueryTypes(): OntologiesV2.QueryTypeV2[] {\n return Object.values(this.#ontology.queryTypes);\n }\n\n getInterfaceType(interfaceType: string): OntologiesV2.InterfaceType {\n const ret = this.#ontology.interfaceTypes[interfaceType];\n\n if (ret === undefined) {\n throw new OpenApiCallError(\n 404,\n ObjectNotFoundError(interfaceType, \"\"),\n );\n }\n\n return (\n this.#ontology.interfaceTypes[interfaceType]\n );\n }\n\n public getObjectTypeFullMetadata(\n objectTypeApiName: string,\n ): OntologiesV2.ObjectTypeFullMetadata | undefined {\n return this.#ontology.objectTypes[objectTypeApiName];\n }\n\n public getObjectTypeFullMetadataOrThrow(\n objectTypeApiName: string,\n ): OntologiesV2.ObjectTypeFullMetadata {\n const objectType = this.#ontology.objectTypes[objectTypeApiName];\n if (objectType === undefined) {\n throw new OpenApiCallError(\n 404,\n ObjectTypeDoesNotExistError(objectTypeApiName),\n );\n }\n return objectType;\n }\n\n public getActionDef(actionTypeApiName: string): OntologiesV2.ActionTypeV2 {\n const actionType = this.#ontology.actionTypes[actionTypeApiName];\n if (actionType === undefined) {\n throw new OpenApiCallError(\n 404,\n ActionNotFoundError(),\n );\n }\n return actionType;\n }\n\n public getActionImpl(actionTypeApiName: string): FauxActionImpl {\n const impl = this.#actionImpl.get(actionTypeApiName);\n invariant(impl, \"Action implementation not found for \" + actionTypeApiName);\n return impl;\n }\n\n public getQueryDef(\n queryTypeApiNameAndVersion: string,\n ): OntologiesV2.QueryTypeV2 {\n const queryType = this.#ontology\n .queryTypes[this.#convertToVersionedApiName(queryTypeApiNameAndVersion)];\n if (queryType === undefined) {\n throw new OpenApiCallError(\n 404,\n QueryNotFoundError(queryTypeApiNameAndVersion),\n );\n }\n return queryType;\n }\n\n public getQueryImpl(\n queryTypeApiName: string,\n version?: string,\n ): FauxQueryImpl {\n const versionMap = this.#queryImpl.get(queryTypeApiName);\n\n const impl = version !== undefined\n ? versionMap?.get(version)\n : versionMap?.get(semver.rsort(Array.from(versionMap.keys() ?? []))[0]);\n\n if (!impl) {\n throw new OpenApiCallError(\n 404,\n QueryNotFoundError(queryTypeApiName),\n );\n }\n invariant(impl, \"Query implementation not found for \" + queryTypeApiName);\n return impl;\n }\n\n public getInterfaceToObjectTypeMappings(\n objectApiNames: Iterable<OntologiesV2.ObjectTypeApiName>,\n ): Record<\n OntologiesV2.InterfaceTypeApiName,\n OntologiesV2.InterfaceToObjectTypeMappings\n > {\n const objectDefs = Array.from(objectApiNames).map(apiName =>\n this.getObjectTypeFullMetadataOrThrow(apiName)\n );\n\n const ifaceToObjMap: Record<\n OntologiesV2.InterfaceTypeApiName,\n OntologiesV2.InterfaceToObjectTypeMappings\n > = {};\n\n for (const objDef of objectDefs) {\n for (\n const [ifaceApiName, { properties }] of Object.entries(\n objDef.implementsInterfaces2,\n )\n ) {\n if (ifaceToObjMap[ifaceApiName] === undefined) {\n ifaceToObjMap[ifaceApiName] = {};\n }\n\n ifaceToObjMap[ifaceApiName][objDef.objectType.apiName] = properties;\n }\n }\n\n return ifaceToObjMap;\n }\n\n public getLinkTypeSideV2(\n objectTypeApiName: string,\n linkTypeName: string,\n ): OntologiesV2.LinkTypeSideV2 {\n const objectType = this.getObjectTypeFullMetadataOrThrow(objectTypeApiName);\n const linkType = objectType.linkTypes.find((a) =>\n a.apiName === linkTypeName\n );\n if (linkType === undefined) {\n throw new OpenApiCallError(\n 404,\n LinkTypeNotFound(objectTypeApiName, linkTypeName),\n );\n }\n return linkType;\n }\n\n public getOtherLinkTypeSideV2OrThrow(\n objectTypeApiName: string,\n linkTypeName: string,\n ): OntologiesV2.LinkTypeSideV2 {\n const thisSideLink = this.getLinkTypeSideV2(\n objectTypeApiName,\n linkTypeName,\n );\n const otherObj = this.getObjectTypeFullMetadataOrThrow(\n thisSideLink.objectTypeApiName,\n );\n const candidates = otherObj.linkTypes.filter(l =>\n l.linkTypeRid === thisSideLink.linkTypeRid\n );\n if (otherObj.objectType.apiName !== objectTypeApiName) {\n // if its not the same object type then there should only be one\n invariant(\n candidates.length === 1,\n \"Expected only one candidate link type\",\n );\n return candidates[0];\n }\n // if its the same object type, then this could be a link that points to itself that\n // is 1:1, many:1 or many:many. In the 1:1 case, the link could have the same name\n // and there would only be 1 entry in that case. Otherwise there should be 2 entries\n // and we want the one that doesn't match the one passed in.\n if (candidates.length === 1) {\n return candidates[0];\n }\n invariant(\n candidates.length === 2,\n \"Expected only two candidate link types\",\n );\n const candidate = candidates.find(l => l.apiName !== thisSideLink.apiName);\n invariant(\n candidate,\n \"Expected to find a candidate link type that is not the same as the one passed in\",\n );\n return candidate;\n }\n\n getBothLinkTypeSides(\n leftObjectType: string,\n leftLinkName: string,\n rightObjectType: string,\n ): [OntologiesV2.LinkTypeSideV2, OntologiesV2.LinkTypeSideV2] {\n const leftTypeSideV2 = this.getLinkTypeSideV2(\n leftObjectType,\n leftLinkName,\n );\n\n // the rhs passed in should match the target of the lhs\n invariant(rightObjectType === leftTypeSideV2.objectTypeApiName);\n\n const rightTypeSideV2 = this.getOtherLinkTypeSideV2OrThrow(\n leftObjectType,\n leftLinkName,\n );\n\n return [leftTypeSideV2, rightTypeSideV2];\n }\n\n registerObjectType<Q extends ObjectTypeDefinition>(\n def: TH_ObjectTypeFullMetadata<Q>,\n ): void;\n registerObjectType(\n def: ReadonlyDeep<OntologiesV2.ObjectTypeFullMetadata>,\n ): void;\n registerObjectType<Q extends ObjectTypeDefinition>(\n def:\n | TH_ObjectTypeFullMetadata<Q>\n | OntologiesV2.ObjectTypeFullMetadata,\n ): void {\n if (def.objectType.apiName in this.#ontology.objectTypes) {\n throw new Error(\n `ObjectType ${def.objectType.apiName} already registered`,\n );\n }\n this.#ontology.objectTypes[def.objectType.apiName] = def;\n }\n\n registerActionType<Q extends OntologiesV2.ActionTypeV2>(\n def: Q,\n implementation?: FauxActionImpl<Q>,\n ): void;\n registerActionType(\n def: OntologiesV2.ActionTypeV2,\n implementation?: FauxActionImpl,\n ): void;\n registerActionType(\n def: OntologiesV2.ActionTypeV2,\n implementation?: FauxActionImpl,\n ): void {\n if (def.apiName in this.#ontology.actionTypes) {\n throw new Error(\n `ActionType ${def.apiName} already registered`,\n );\n }\n this.#ontology.actionTypes[def.apiName] = def;\n if (implementation) {\n this.#actionImpl.set(def.apiName, implementation);\n }\n }\n\n registerQueryType(\n def: OntologiesV2.QueryTypeV2,\n implementation?: FauxQueryImpl,\n ): void {\n if (`${def.apiName}:${def.version}` in this.#ontology.queryTypes) {\n throw new Error(\n `QueryType ${def.apiName} already registered`,\n );\n }\n this.#ontology\n .queryTypes[\n `${def.apiName}:${def.version}` as VersionedQueryTypeApiName\n ] = def;\n if (implementation) {\n if (!this.#queryImpl.has(def.apiName)) {\n this.#queryImpl.set(def.apiName, new Map());\n }\n if (!valid(def.version)) {\n throw new Error(\n `QueryType ${def.apiName} version ${def.version} is not semver valid`,\n );\n }\n this.#queryImpl.get(def.apiName)?.set(\n def.version,\n implementation,\n );\n }\n }\n\n registerInterfaceType(def: OntologiesV2.InterfaceType): void {\n if (def.apiName in this.#ontology.interfaceTypes) {\n throw new Error(\n `InterfaceType ${def.apiName} already registered`,\n );\n }\n this.#ontology.interfaceTypes[def.apiName] = def;\n }\n\n registerSharedPropertyType(def: OntologiesV2.SharedPropertyType): void {\n if (def.apiName in this.#ontology.sharedPropertyTypes) {\n throw new Error(\n `SharedPropertyType ${def.apiName} already registered`,\n );\n }\n this.#ontology.sharedPropertyTypes[def.apiName] = def;\n }\n\n #getFilteredQueryTypes(request: LoadOntologyMetadataRequest): Record<\n OntologiesV2.QueryApiName,\n OntologiesV2.QueryTypeV2\n > {\n const remappedQueryTypes = request.queryTypes.map(x =>\n this.#convertToVersionedApiName(x)\n );\n return Object.fromEntries(\n Object.entries(this.#ontology.queryTypes).filter((\n [queryTypeApiName],\n ) => remappedQueryTypes.includes(queryTypeApiName)).map((\n [queryTypeApiName, queryTypeDefinition],\n ) => [\n request.queryTypes[remappedQueryTypes.indexOf(queryTypeApiName)],\n queryTypeDefinition,\n ]),\n );\n }\n\n #convertToVersionedApiName(\n apiName: string,\n ): VersionedQueryTypeApiName {\n // If a query is requested without a version, we remap it to include a versioned api name with the latest version\n if (extractVersion(apiName) !== undefined) {\n return apiName as VersionedQueryTypeApiName;\n }\n const version = semver.rsort(\n Object.keys(this.#ontology.queryTypes).filter(\n queryTypeApiName => queryTypeApiName.split(\":\")[0] === apiName,\n ).map(x => extractVersion(x)),\n )[0];\n return `${apiName}:${version}`;\n }\n}\n\nfunction filterRecord<T>(\n record: Record<string, T>,\n keys: string[],\n): Record<string, T> {\n return Object.fromEntries(\n Object.entries(record).filter(([key]) => keys.includes(key)),\n );\n}\n\nfunction extractVersion(\n apiName: string,\n): string {\n return apiName.split(\":\")[1];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FauxOntology.js","names":["semver","valid","invariant","ActionNotFoundError","LinkTypeNotFound","ObjectNotFoundError","ObjectTypeDoesNotExistError","QueryNotFoundError","OpenApiCallError","FauxOntology","ontology","actionImpl","Map","queryImpl","constructor","actionTypes","interfaceTypes","objectTypes","queryTypes","sharedPropertyTypes","valueTypes","apiName","getOntologyFullMetadata","getFilteredOntologyMetadata","request","Object","fromEntries","entries","filter","objectType","includes","map","objectTypeApiName","objectTypeDefinition","linkTypes","linkType","filterRecord","getFilteredQueryTypes","getAllInterfaceTypes","values","getAllObjectTypes","getAllActionTypes","getAllQueryTypes","getInterfaceType","interfaceType","ret","undefined","getObjectTypeFullMetadata","getObjectTypeFullMetadataOrThrow","getActionDef","actionTypeApiName","actionType","getActionImpl","impl","get","process","env","NODE_ENV","getQueryDef","queryTypeApiNameAndVersion","queryType","convertToVersionedApiName","getQueryImpl","queryTypeApiName","version","versionMap","rsort","Array","from","keys","getInterfaceToObjectTypeMappings","objectApiNames","objectDefs","ifaceToObjMap","objDef","ifaceApiName","properties","implementsInterfaces2","getLinkTypeSideV2","linkTypeName","find","a","getOtherLinkTypeSideV2OrThrow","thisSideLink","otherObj","candidates","l","linkTypeRid","length","candidate","getBothLinkTypeSides","leftObjectType","leftLinkName","rightObjectType","leftTypeSideV2","rightTypeSideV2","registerObjectType","def","Error","registerActionType","implementation","set","registerQueryType","has","registerInterfaceType","registerSharedPropertyType","#getFilteredQueryTypes","remappedQueryTypes","x","queryTypeDefinition","indexOf","#convertToVersionedApiName","extractVersion","split","record","key"],"sources":["FauxOntology.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 ObjectTypeDefinition } from \"@osdk/api\";\nimport type * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type {\n LoadOntologyMetadataRequest,\n VersionedQueryTypeApiName,\n} from \"@osdk/internal.foundry.ontologies\";\nimport semver, { valid } from \"semver\";\nimport invariant from \"tiny-invariant\";\nimport type { ReadonlyDeep } from \"type-fest\";\nimport {\n ActionNotFoundError,\n LinkTypeNotFound,\n ObjectNotFoundError,\n ObjectTypeDoesNotExistError,\n QueryNotFoundError,\n} from \"../errors.js\";\nimport { OpenApiCallError } from \"../handlers/util/handleOpenApiCall.js\";\nimport type { FauxActionImpl } from \"./FauxActionImpl.js\";\nimport type { FauxQueryImpl } from \"./FauxQueryImpl.js\";\nimport type { TH_ObjectTypeFullMetadata } from \"./typeHelpers/TH_ObjectTypeFullMetadata.js\";\n\n/**\n * Currently Unsupported Concepts:\n * - many:many links.\n */\nexport class FauxOntology {\n #ontology: OntologiesV2.OntologyFullMetadata;\n #actionImpl: Map<OntologiesV2.ActionTypeApiName, FauxActionImpl> = new Map();\n #queryImpl: Map<\n OntologiesV2.QueryApiName,\n Map<OntologiesV2.FunctionVersion, FauxQueryImpl>\n > = new Map();\n\n constructor(ontology: OntologiesV2.OntologyV2) {\n this.#ontology = {\n actionTypes: {},\n interfaceTypes: {},\n objectTypes: {},\n ontology,\n queryTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n };\n }\n\n get apiName(): OntologiesV2.OntologyApiName {\n return this.#ontology.ontology.apiName;\n }\n\n getOntologyFullMetadata(): OntologiesV2.OntologyFullMetadata {\n return this.#ontology;\n }\n\n getFilteredOntologyMetadata(\n request: OntologiesV2.LoadOntologyMetadataRequest,\n ): OntologiesV2.OntologyFullMetadata {\n return {\n ontology: this.#ontology.ontology,\n objectTypes: Object.fromEntries(\n Object.entries(this.#ontology.objectTypes).filter(([objectType]) =>\n request.objectTypes.includes(objectType)\n ).map(([objectTypeApiName, objectTypeDefinition]) => [\n objectTypeApiName,\n {\n ...objectTypeDefinition,\n linkTypes: objectTypeDefinition.linkTypes.filter(linkType =>\n request.linkTypes.includes(linkType.apiName)\n ),\n },\n ]),\n ),\n actionTypes: filterRecord(\n this.#ontology.actionTypes,\n request.actionTypes,\n ),\n queryTypes: this.#getFilteredQueryTypes(request),\n\n interfaceTypes: filterRecord(\n this.#ontology.interfaceTypes,\n request.interfaceTypes,\n ),\n sharedPropertyTypes: {},\n valueTypes: {},\n };\n }\n\n getAllInterfaceTypes(): OntologiesV2.InterfaceType[] {\n return Object.values(this.#ontology.interfaceTypes);\n }\n\n getAllObjectTypes(): OntologiesV2.ObjectTypeFullMetadata[] {\n return Object.values(this.#ontology.objectTypes);\n }\n\n getAllActionTypes(): OntologiesV2.ActionTypeV2[] {\n return Object.values(this.#ontology.actionTypes);\n }\n\n getAllQueryTypes(): OntologiesV2.QueryTypeV2[] {\n return Object.values(this.#ontology.queryTypes);\n }\n\n getInterfaceType(interfaceType: string): OntologiesV2.InterfaceType {\n const ret = this.#ontology.interfaceTypes[interfaceType];\n\n if (ret === undefined) {\n throw new OpenApiCallError(\n 404,\n ObjectNotFoundError(interfaceType, \"\"),\n );\n }\n\n return (\n this.#ontology.interfaceTypes[interfaceType]\n );\n }\n\n public getObjectTypeFullMetadata(\n objectTypeApiName: string,\n ): OntologiesV2.ObjectTypeFullMetadata | undefined {\n return this.#ontology.objectTypes[objectTypeApiName];\n }\n\n public getObjectTypeFullMetadataOrThrow(\n objectTypeApiName: string,\n ): OntologiesV2.ObjectTypeFullMetadata {\n const objectType = this.#ontology.objectTypes[objectTypeApiName];\n if (objectType === undefined) {\n throw new OpenApiCallError(\n 404,\n ObjectTypeDoesNotExistError(objectTypeApiName),\n );\n }\n return objectType;\n }\n\n public getActionDef(actionTypeApiName: string): OntologiesV2.ActionTypeV2 {\n const actionType = this.#ontology.actionTypes[actionTypeApiName];\n if (actionType === undefined) {\n throw new OpenApiCallError(\n 404,\n ActionNotFoundError(),\n );\n }\n return actionType;\n }\n\n public getActionImpl(actionTypeApiName: string): FauxActionImpl {\n const impl = this.#actionImpl.get(actionTypeApiName);\n invariant(impl, \"Action implementation not found for \" + actionTypeApiName);\n return impl;\n }\n\n public getQueryDef(\n queryTypeApiNameAndVersion: string,\n ): OntologiesV2.QueryTypeV2 {\n const queryType = this.#ontology\n .queryTypes[this.#convertToVersionedApiName(queryTypeApiNameAndVersion)];\n if (queryType === undefined) {\n throw new OpenApiCallError(\n 404,\n QueryNotFoundError(queryTypeApiNameAndVersion),\n );\n }\n return queryType;\n }\n\n public getQueryImpl(\n queryTypeApiName: string,\n version?: string,\n ): FauxQueryImpl {\n const versionMap = this.#queryImpl.get(queryTypeApiName);\n\n const impl = version !== undefined\n ? versionMap?.get(version)\n : versionMap?.get(semver.rsort(Array.from(versionMap.keys() ?? []))[0]);\n\n if (!impl) {\n throw new OpenApiCallError(\n 404,\n QueryNotFoundError(queryTypeApiName),\n );\n }\n invariant(impl, \"Query implementation not found for \" + queryTypeApiName);\n return impl;\n }\n\n public getInterfaceToObjectTypeMappings(\n objectApiNames: Iterable<OntologiesV2.ObjectTypeApiName>,\n ): Record<\n OntologiesV2.InterfaceTypeApiName,\n OntologiesV2.InterfaceToObjectTypeMappings\n > {\n const objectDefs = Array.from(objectApiNames).map(apiName =>\n this.getObjectTypeFullMetadataOrThrow(apiName)\n );\n\n const ifaceToObjMap: Record<\n OntologiesV2.InterfaceTypeApiName,\n OntologiesV2.InterfaceToObjectTypeMappings\n > = {};\n\n for (const objDef of objectDefs) {\n for (\n const [ifaceApiName, { properties }] of Object.entries(\n objDef.implementsInterfaces2,\n )\n ) {\n if (ifaceToObjMap[ifaceApiName] === undefined) {\n ifaceToObjMap[ifaceApiName] = {};\n }\n\n ifaceToObjMap[ifaceApiName][objDef.objectType.apiName] = properties;\n }\n }\n\n return ifaceToObjMap;\n }\n\n public getLinkTypeSideV2(\n objectTypeApiName: string,\n linkTypeName: string,\n ): OntologiesV2.LinkTypeSideV2 {\n const objectType = this.getObjectTypeFullMetadataOrThrow(objectTypeApiName);\n const linkType = objectType.linkTypes.find((a) =>\n a.apiName === linkTypeName\n );\n if (linkType === undefined) {\n throw new OpenApiCallError(\n 404,\n LinkTypeNotFound(objectTypeApiName, linkTypeName),\n );\n }\n return linkType;\n }\n\n public getOtherLinkTypeSideV2OrThrow(\n objectTypeApiName: string,\n linkTypeName: string,\n ): OntologiesV2.LinkTypeSideV2 {\n const thisSideLink = this.getLinkTypeSideV2(\n objectTypeApiName,\n linkTypeName,\n );\n const otherObj = this.getObjectTypeFullMetadataOrThrow(\n thisSideLink.objectTypeApiName,\n );\n const candidates = otherObj.linkTypes.filter(l =>\n l.linkTypeRid === thisSideLink.linkTypeRid\n );\n if (otherObj.objectType.apiName !== objectTypeApiName) {\n // if its not the same object type then there should only be one\n invariant(\n candidates.length === 1,\n \"Expected only one candidate link type\",\n );\n return candidates[0];\n }\n // if its the same object type, then this could be a link that points to itself that\n // is 1:1, many:1 or many:many. In the 1:1 case, the link could have the same name\n // and there would only be 1 entry in that case. Otherwise there should be 2 entries\n // and we want the one that doesn't match the one passed in.\n if (candidates.length === 1) {\n return candidates[0];\n }\n invariant(\n candidates.length === 2,\n \"Expected only two candidate link types\",\n );\n const candidate = candidates.find(l => l.apiName !== thisSideLink.apiName);\n invariant(\n candidate,\n \"Expected to find a candidate link type that is not the same as the one passed in\",\n );\n return candidate;\n }\n\n getBothLinkTypeSides(\n leftObjectType: string,\n leftLinkName: string,\n rightObjectType: string,\n ): [OntologiesV2.LinkTypeSideV2, OntologiesV2.LinkTypeSideV2] {\n const leftTypeSideV2 = this.getLinkTypeSideV2(\n leftObjectType,\n leftLinkName,\n );\n\n // the rhs passed in should match the target of the lhs\n invariant(rightObjectType === leftTypeSideV2.objectTypeApiName);\n\n const rightTypeSideV2 = this.getOtherLinkTypeSideV2OrThrow(\n leftObjectType,\n leftLinkName,\n );\n\n return [leftTypeSideV2, rightTypeSideV2];\n }\n\n registerObjectType<Q extends ObjectTypeDefinition>(\n def: TH_ObjectTypeFullMetadata<Q>,\n ): void;\n registerObjectType(\n def: ReadonlyDeep<OntologiesV2.ObjectTypeFullMetadata>,\n ): void;\n registerObjectType<Q extends ObjectTypeDefinition>(\n def:\n | TH_ObjectTypeFullMetadata<Q>\n | OntologiesV2.ObjectTypeFullMetadata,\n ): void {\n if (def.objectType.apiName in this.#ontology.objectTypes) {\n throw new Error(\n `ObjectType ${def.objectType.apiName} already registered`,\n );\n }\n this.#ontology.objectTypes[def.objectType.apiName] = def;\n }\n\n registerActionType<Q extends OntologiesV2.ActionTypeV2>(\n def: Q,\n implementation?: FauxActionImpl<Q>,\n ): void;\n registerActionType(\n def: OntologiesV2.ActionTypeV2,\n implementation?: FauxActionImpl,\n ): void;\n registerActionType(\n def: OntologiesV2.ActionTypeV2,\n implementation?: FauxActionImpl,\n ): void {\n if (def.apiName in this.#ontology.actionTypes) {\n throw new Error(\n `ActionType ${def.apiName} already registered`,\n );\n }\n this.#ontology.actionTypes[def.apiName] = def;\n if (implementation) {\n this.#actionImpl.set(def.apiName, implementation);\n }\n }\n\n registerQueryType(\n def: OntologiesV2.QueryTypeV2,\n implementation?: FauxQueryImpl,\n ): void {\n if (`${def.apiName}:${def.version}` in this.#ontology.queryTypes) {\n throw new Error(\n `QueryType ${def.apiName} already registered`,\n );\n }\n this.#ontology\n .queryTypes[\n `${def.apiName}:${def.version}` as VersionedQueryTypeApiName\n ] = def;\n if (implementation) {\n if (!this.#queryImpl.has(def.apiName)) {\n this.#queryImpl.set(def.apiName, new Map());\n }\n if (!valid(def.version)) {\n throw new Error(\n `QueryType ${def.apiName} version ${def.version} is not semver valid`,\n );\n }\n this.#queryImpl.get(def.apiName)?.set(\n def.version,\n implementation,\n );\n }\n }\n\n registerInterfaceType(def: OntologiesV2.InterfaceType): void {\n if (def.apiName in this.#ontology.interfaceTypes) {\n throw new Error(\n `InterfaceType ${def.apiName} already registered`,\n );\n }\n this.#ontology.interfaceTypes[def.apiName] = def;\n }\n\n registerSharedPropertyType(def: OntologiesV2.SharedPropertyType): void {\n if (def.apiName in this.#ontology.sharedPropertyTypes) {\n throw new Error(\n `SharedPropertyType ${def.apiName} already registered`,\n );\n }\n this.#ontology.sharedPropertyTypes[def.apiName] = def;\n }\n\n #getFilteredQueryTypes(request: LoadOntologyMetadataRequest): Record<\n OntologiesV2.QueryApiName,\n OntologiesV2.QueryTypeV2\n > {\n const remappedQueryTypes = request.queryTypes.map(x =>\n this.#convertToVersionedApiName(x)\n );\n return Object.fromEntries(\n Object.entries(this.#ontology.queryTypes).filter((\n [queryTypeApiName],\n ) => remappedQueryTypes.includes(queryTypeApiName)).map((\n [queryTypeApiName, queryTypeDefinition],\n ) => [\n request.queryTypes[remappedQueryTypes.indexOf(queryTypeApiName)],\n queryTypeDefinition,\n ]),\n );\n }\n\n #convertToVersionedApiName(\n apiName: string,\n ): VersionedQueryTypeApiName {\n // If a query is requested without a version, we remap it to include a versioned api name with the latest version\n if (extractVersion(apiName) !== undefined) {\n return apiName as VersionedQueryTypeApiName;\n }\n const version = semver.rsort(\n Object.keys(this.#ontology.queryTypes).filter(\n queryTypeApiName => queryTypeApiName.split(\":\")[0] === apiName,\n ).map(x => extractVersion(x)),\n )[0];\n return `${apiName}:${version}`;\n }\n}\n\nfunction filterRecord<T>(\n record: Record<string, T>,\n keys: string[],\n): Record<string, T> {\n return Object.fromEntries(\n Object.entries(record).filter(([key]) => keys.includes(key)),\n );\n}\n\nfunction extractVersion(\n apiName: string,\n): string {\n return apiName.split(\":\")[1];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1683,7 +1683,7 @@ __export(Actions_exports, {
1683
1683
  applyBatch: () => applyBatch2
1684
1684
  });
1685
1685
 
1686
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1686
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1687
1687
  var Action_exports = {};
1688
1688
  __export(Action_exports, {
1689
1689
  apply: () => apply,
@@ -1790,7 +1790,7 @@ function parseUrl(baseUrl, endpointPath) {
1790
1790
  return new URL(`api${endpointPath}`, baseUrl);
1791
1791
  }
1792
1792
 
1793
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1793
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1794
1794
  var _apply = [1, "/v2/ontologies/{0}/actions/{1}/apply", 3];
1795
1795
  function apply($ctx, ...args) {
1796
1796
  return foundryPlatformFetch($ctx, _apply, ...args);
@@ -1804,7 +1804,7 @@ function applyBatch($ctx, ...args) {
1804
1804
  return foundryPlatformFetch($ctx, _applyBatch, ...args);
1805
1805
  }
1806
1806
 
1807
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
1807
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
1808
1808
  var ActionTypeV2_exports = {};
1809
1809
  __export(ActionTypeV2_exports, {
1810
1810
  get: () => get,
@@ -1824,7 +1824,7 @@ function getByRid($ctx, ...args) {
1824
1824
  return foundryPlatformFetch($ctx, _getByRid, ...args);
1825
1825
  }
1826
1826
 
1827
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
1827
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
1828
1828
  var Attachment_exports = {};
1829
1829
  __export(Attachment_exports, {
1830
1830
  get: () => get2,
@@ -1849,7 +1849,7 @@ function get2($ctx, ...args) {
1849
1849
  return foundryPlatformFetch($ctx, _get2, ...args);
1850
1850
  }
1851
1851
 
1852
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/AttachmentPropertyV2.js
1852
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/AttachmentPropertyV2.js
1853
1853
  var AttachmentPropertyV2_exports = {};
1854
1854
  __export(AttachmentPropertyV2_exports, {
1855
1855
  getAttachment: () => getAttachment,
@@ -1874,7 +1874,7 @@ function readAttachmentByRid($ctx, ...args) {
1874
1874
  return foundryPlatformFetch($ctx, _readAttachmentByRid, ...args);
1875
1875
  }
1876
1876
 
1877
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/LinkedObjectV2.js
1877
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/LinkedObjectV2.js
1878
1878
  var LinkedObjectV2_exports = {};
1879
1879
  __export(LinkedObjectV2_exports, {
1880
1880
  getLinkedObject: () => getLinkedObject,
@@ -1889,7 +1889,7 @@ function getLinkedObject($ctx, ...args) {
1889
1889
  return foundryPlatformFetch($ctx, _getLinkedObject, ...args);
1890
1890
  }
1891
1891
 
1892
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
1892
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
1893
1893
  var MediaReferenceProperty_exports = {};
1894
1894
  __export(MediaReferenceProperty_exports, {
1895
1895
  getMediaContent: () => getMediaContent,
@@ -1914,7 +1914,7 @@ function uploadMedia($ctx, ...args) {
1914
1914
  return foundryPlatformFetch($ctx, _uploadMedia, ...args);
1915
1915
  }
1916
1916
 
1917
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
1917
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
1918
1918
  var ObjectTypeV2_exports = {};
1919
1919
  __export(ObjectTypeV2_exports, {
1920
1920
  get: () => get3,
@@ -1944,13 +1944,14 @@ function getOutgoingLinkType($ctx, ...args) {
1944
1944
  return foundryPlatformFetch($ctx, _getOutgoingLinkType, ...args);
1945
1945
  }
1946
1946
 
1947
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
1947
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
1948
1948
  var OntologyInterface_exports = {};
1949
1949
  __export(OntologyInterface_exports, {
1950
1950
  aggregate: () => aggregate,
1951
1951
  get: () => get4,
1952
1952
  getOutgoingInterfaceLinkType: () => getOutgoingInterfaceLinkType,
1953
1953
  list: () => list3,
1954
+ listObjectsForInterface: () => listObjectsForInterface,
1954
1955
  listOutgoingInterfaceLinkTypes: () => listOutgoingInterfaceLinkTypes,
1955
1956
  search: () => search
1956
1957
  });
@@ -1962,6 +1963,10 @@ var _get4 = [0, "/v2/ontologies/{0}/interfaceTypes/{1}", 2];
1962
1963
  function get4($ctx, ...args) {
1963
1964
  return foundryPlatformFetch($ctx, _get4, ...args);
1964
1965
  }
1966
+ var _listObjectsForInterface = [0, "/v2/ontologies/{0}/interfaces/{1}", 2];
1967
+ function listObjectsForInterface($ctx, ...args) {
1968
+ return foundryPlatformFetch($ctx, _listObjectsForInterface, ...args);
1969
+ }
1965
1970
  var _search = [1, "/v2/ontologies/{0}/interfaces/{1}/search", 3];
1966
1971
  function search($ctx, ...args) {
1967
1972
  return foundryPlatformFetch($ctx, _search, ...args);
@@ -1979,7 +1984,7 @@ function getOutgoingInterfaceLinkType($ctx, ...args) {
1979
1984
  return foundryPlatformFetch($ctx, _getOutgoingInterfaceLinkType, ...args);
1980
1985
  }
1981
1986
 
1982
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
1987
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
1983
1988
  var OntologyObjectSet_exports = {};
1984
1989
  __export(OntologyObjectSet_exports, {
1985
1990
  aggregate: () => aggregate2,
@@ -1989,7 +1994,7 @@ __export(OntologyObjectSet_exports, {
1989
1994
  loadMultipleObjectTypes: () => loadMultipleObjectTypes,
1990
1995
  loadObjectsOrInterfaces: () => loadObjectsOrInterfaces
1991
1996
  });
1992
- var _createTemporary = [1, "/v2/ontologies/{0}/objectSets/createTemporary", 1];
1997
+ var _createTemporary = [1, "/v2/ontologies/{0}/objectSets/createTemporary", 3];
1993
1998
  function createTemporary($ctx, ...args) {
1994
1999
  return foundryPlatformFetch($ctx, _createTemporary, ...args);
1995
2000
  }
@@ -2014,7 +2019,7 @@ function aggregate2($ctx, ...args) {
2014
2019
  return foundryPlatformFetch($ctx, _aggregate2, ...args);
2015
2020
  }
2016
2021
 
2017
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectV2.js
2022
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectV2.js
2018
2023
  var OntologyObjectV2_exports = {};
2019
2024
  __export(OntologyObjectV2_exports, {
2020
2025
  aggregate: () => aggregate3,
@@ -2044,17 +2049,17 @@ function aggregate3($ctx, ...args) {
2044
2049
  return foundryPlatformFetch($ctx, _aggregate3, ...args);
2045
2050
  }
2046
2051
 
2047
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js
2052
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js
2048
2053
  var OntologyTransaction_exports = {};
2049
2054
  __export(OntologyTransaction_exports, {
2050
2055
  postEdits: () => postEdits
2051
2056
  });
2052
- var _postEdits = [1, "/v2/ontologies/{0}/transactions/{1}/edits", 1];
2057
+ var _postEdits = [1, "/v2/ontologies/{0}/transactions/{1}/edits", 3];
2053
2058
  function postEdits($ctx, ...args) {
2054
2059
  return foundryPlatformFetch($ctx, _postEdits, ...args);
2055
2060
  }
2056
2061
 
2057
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyV2.js
2062
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyV2.js
2058
2063
  var OntologyV2_exports = {};
2059
2064
  __export(OntologyV2_exports, {
2060
2065
  get: () => get7,
@@ -2079,7 +2084,7 @@ function loadMetadata($ctx, ...args) {
2079
2084
  return foundryPlatformFetch($ctx, _loadMetadata, ...args);
2080
2085
  }
2081
2086
 
2082
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
2087
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
2083
2088
  var Query_exports = {};
2084
2089
  __export(Query_exports, {
2085
2090
  execute: () => execute
@@ -2089,7 +2094,7 @@ function execute($ctx, ...args) {
2089
2094
  return foundryPlatformFetch($ctx, _execute, ...args);
2090
2095
  }
2091
2096
 
2092
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
2097
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
2093
2098
  var QueryType_exports = {};
2094
2099
  __export(QueryType_exports, {
2095
2100
  get: () => get8,
@@ -2104,7 +2109,7 @@ function get8($ctx, ...args) {
2104
2109
  return foundryPlatformFetch($ctx, _get8, ...args);
2105
2110
  }
2106
2111
 
2107
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
2112
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
2108
2113
  var TimeSeriesPropertyV2_exports = {};
2109
2114
  __export(TimeSeriesPropertyV2_exports, {
2110
2115
  getFirstPoint: () => getFirstPoint,
@@ -2124,7 +2129,7 @@ function streamPoints($ctx, ...args) {
2124
2129
  return foundryPlatformFetch($ctx, _streamPoints, ...args);
2125
2130
  }
2126
2131
 
2127
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.26.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
2132
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
2128
2133
  var TimeSeriesValueBankProperty_exports = {};
2129
2134
  __export(TimeSeriesValueBankProperty_exports, {
2130
2135
  getLatestValue: () => getLatestValue,
@@ -2885,7 +2890,8 @@ var FauxOntology = class {
2885
2890
  objectTypes: {},
2886
2891
  ontology,
2887
2892
  queryTypes: {},
2888
- sharedPropertyTypes: {}
2893
+ sharedPropertyTypes: {},
2894
+ valueTypes: {}
2889
2895
  };
2890
2896
  }
2891
2897
  get apiName() {
@@ -2904,7 +2910,8 @@ var FauxOntology = class {
2904
2910
  actionTypes: filterRecord(this.#ontology.actionTypes, request.actionTypes),
2905
2911
  queryTypes: this.#getFilteredQueryTypes(request),
2906
2912
  interfaceTypes: filterRecord(this.#ontology.interfaceTypes, request.interfaceTypes),
2907
- sharedPropertyTypes: {}
2913
+ sharedPropertyTypes: {},
2914
+ valueTypes: {}
2908
2915
  };
2909
2916
  }
2910
2917
  getAllInterfaceTypes() {