@osdk/maker 0.10.0-beta.13 → 0.10.0-beta.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"defineOntology.js","names":["ontologyDefinition","namespace","defineOntology","ns","body","actionTypes","objectTypes","queryTypes","interfaceTypes","sharedPropertyTypes","valueTypes","linkTypes","importedTypes","e","console","error","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","Object","values","map","definitions","metadata","apiName","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","fromEntries","entries","objectType","convertObject","spt","sharedPropertyType","convertSpt","interfaceType","convertInterface","id","link","convertLink","blockPermissionInformation","propertyDatasource","properties","forEach","property","type","column","datasource","rid","concat","datasetV2","datasetRid","propertyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","implementations","implementsInterfaces","description","displayName","groupDisplayName","undefined","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","propertyTypes","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","active","implementsInterfaces2","impl","interfaceTypeApiName","implements","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","propertiesV2","required","allExtendsInterfaces","allLinks","allProperties","allPropertiesV2","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","dataConstraint","propertyTypeConstraints","nullability","nullabilityV2","noEmptyCollections","noNulls","subtype","aliases","provenance","marking","markingType","structFields","Array","key","structDefinition","fieldTypeDefinition","field","fieldType","push","struct","geohash","precision","scale","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","mediaReference","distributeTypeHelper"],"sources":["defineOntology.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\n/*\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 {\n OntologyIr,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrPropertyType,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n PropertyTypeMappingInfo,\n} from \"@osdk/client.unstable\";\nimport type {\n InterfaceType,\n LinkTypeDefinition,\n ObjectPropertyType,\n ObjectType,\n Ontology,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\n/** @internal */\nexport let ontologyDefinition: Ontology;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n actionTypes: {},\n objectTypes: {},\n queryTypes: {},\n interfaceTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n linkTypes: {},\n importedTypes: {\n sharedPropertyTypes: [],\n },\n };\n\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: Ontology,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology.valueTypes).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n })),\n };\n}\n\nfunction convertToWireOntologyIr(\n ontology: Ontology,\n): OntologyIr {\n return {\n blockData: {\n objectTypes: Object.fromEntries(\n Object.entries(ontology.objectTypes).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology.sharedPropertyTypes,\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology.interfaceTypes,\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology.linkTypes).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n },\n importedTypes: ontology.importedTypes,\n };\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasource: Record<string, PropertyTypeMappingInfo> = {};\n (objectType.properties ?? []).forEach((property) => {\n propertyDatasource[property.apiName] = {\n type: \"column\",\n column: property.apiName,\n };\n });\n\n const datasource: OntologyIrObjectTypeDatasource = {\n rid: \"ri.ontology.main.datasource.\".concat(objectType.apiName),\n datasource: {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: propertyDatasource,\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n };\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: objectType.primaryKeys,\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertProperty(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: objectType.status ?? {\n type: \"active\",\n active: {},\n },\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [namespace + mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [datasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction convertProperty(property: ObjectPropertyType): OntologyIrPropertyType {\n const output: OntologyIrPropertyType = {\n apiName: property.apiName,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\",\n },\n indexedForSearch: property.indexedForSearch ?? true,\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: convertType(property.type),\n typeClasses: property.typeClasses ?? [],\n status: property.status ?? { type: \"active\", active: {} },\n inlineAction: undefined,\n dataConstraints: property.dataConstraints,\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkTypeDefinition,\n): OntologyIrLinkTypeBlockDataV2 {\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: \"ONE_TO_ONE\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeys[0],\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.id),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.id),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: linkType.id,\n status: linkType.status ?? { type: \"active\", active: {} },\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n },\n };\n}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrInterfaceType {\n return {\n ...interfaceType,\n propertiesV2: Object.fromEntries(\n Object.values(interfaceType.propertiesV2)\n .map((\n spt,\n ) => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType),\n }]),\n ),\n // these are omitted from our internal types but we need to re-add them for the final json\n allExtendsInterfaces: [],\n allLinks: [],\n allProperties: [],\n allPropertiesV2: {},\n properties: [],\n };\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertToWireOntologyIr(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nfunction convertSpt(\n {\n type,\n array,\n description,\n apiName,\n displayName,\n gothamMapping,\n typeClasses,\n valueType,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = (typeof type === \"object\" && type.type === \"marking\")\n ? {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n }\n : undefined;\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: \"NORMAL\",\n description,\n },\n type: array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(type),\n },\n }\n : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n provenance: undefined,\n typeClasses: typeClasses ?? [],\n valueType: valueType,\n };\n}\n\nfunction convertType(\n type: PropertyTypeType,\n): OntologyIrType {\n switch (true) {\n case (typeof type === \"object\" && \"markingType\" in type):\n return {\n \"type\": \"marking\",\n marking: { markingType: type.markingType },\n };\n\n case (typeof type === \"object\" && \"structDefinition\" in type):\n const structFields: Array<OntologyIrStructFieldType> = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field: OntologyIrStructFieldType;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? [],\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n }\n }\n\n structFields.push(field);\n }\n\n return {\n type: \"struct\",\n struct: { structFields },\n };\n\n case (type === \"geopoint\"):\n return { type: \"geohash\", geohash: {} };\n\n case (type === \"decimal\"):\n return { type, [type]: { precision: undefined, scale: undefined } };\n\n case (type === \"string\"):\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true,\n },\n };\n\n case (type === \"mediaReference\"):\n return {\n type: type,\n mediaReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nfunction distributeTypeHelper<T extends string>(\n type: T,\n): T extends any ? { type: T } & { [K in T]: {} } : never {\n return { type, [type]: {} } as any; // any cast to match conditional return type\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineOntology.js","names":["ontologyDefinition","namespace","defineOntology","ns","body","actionTypes","objectTypes","queryTypes","interfaceTypes","sharedPropertyTypes","valueTypes","linkTypes","importedTypes","e","console","error","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","Object","values","map","definitions","metadata","apiName","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","fromEntries","entries","objectType","convertObject","spt","sharedPropertyType","convertSpt","interfaceType","convertInterface","id","link","convertLink","blockPermissionInformation","datasource","rid","concat","convertDatasourceDefinition","editsConfiguration","onlyAllowPrivilegedEdits","redacted","implementations","implementsInterfaces","description","displayName","groupDisplayName","undefined","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","propertyTypes","properties","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","active","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","window","retentionPeriod","retentionPolicy","time","none","prop","streamV2","streamLocator","propertySecurityGroups","datasetV2","datasetRid","column","property","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","propertiesV2","required","allExtendsInterfaces","allLinks","allProperties","allPropertiesV2","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","dataConstraint","propertyTypeConstraints","nullability","nullabilityV2","noEmptyCollections","noNulls","subtype","aliases","provenance","marking","markingType","structFields","Array","key","structDefinition","fieldTypeDefinition","field","fieldType","push","struct","geohash","precision","scale","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","mediaReference","distributeTypeHelper"],"sources":["defineOntology.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\n/*\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 {\n OntologyIr,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrPropertyType,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n RetentionPolicy,\n} from \"@osdk/client.unstable\";\nimport type {\n InterfaceType,\n LinkTypeDefinition,\n ObjectPropertyType,\n ObjectType,\n Ontology,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\n/** @internal */\nexport let ontologyDefinition: Ontology;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n actionTypes: {},\n objectTypes: {},\n queryTypes: {},\n interfaceTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n linkTypes: {},\n importedTypes: {\n sharedPropertyTypes: [],\n },\n };\n\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: Ontology,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology.valueTypes).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n })),\n };\n}\n\nfunction convertToWireOntologyIr(\n ontology: Ontology,\n): OntologyIr {\n return {\n blockData: {\n objectTypes: Object.fromEntries(\n Object.entries(ontology.objectTypes).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology.sharedPropertyTypes,\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology.interfaceTypes,\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology.linkTypes).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n },\n importedTypes: ontology.importedTypes,\n };\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const datasource: OntologyIrObjectTypeDatasource = {\n rid: \"ri.ontology.main.datasource.\".concat(objectType.apiName),\n datasource: convertDatasourceDefinition(objectType),\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n };\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: objectType.primaryKeys,\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertProperty(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: objectType.status ?? {\n type: \"active\",\n active: {},\n },\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [namespace + mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [datasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n): OntologyIrObjectTypeDatasourceDefinition {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy: RetentionPolicy = window\n ? { type: \"time\", time: { window } }\n : { type: \"none\", none: {} };\n const propertyMapping = Object.fromEntries(\n (objectType.properties ?? []).map((\n prop,\n ) => [prop.apiName, prop.apiName]),\n );\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: objectType.apiName,\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined,\n },\n };\n case \"dataset\":\n default:\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: Object.fromEntries(\n (objectType.properties ?? []).map((prop) => [\n prop.apiName,\n { type: \"column\", column: prop.apiName },\n ]),\n ),\n },\n };\n }\n}\n\nfunction convertProperty(property: ObjectPropertyType): OntologyIrPropertyType {\n const output: OntologyIrPropertyType = {\n apiName: property.apiName,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\",\n },\n indexedForSearch: property.indexedForSearch ?? true,\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: convertType(property.type),\n typeClasses: property.typeClasses ?? [],\n status: property.status ?? { type: \"active\", active: {} },\n inlineAction: undefined,\n dataConstraints: property.dataConstraints,\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkTypeDefinition,\n): OntologyIrLinkTypeBlockDataV2 {\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: \"ONE_TO_ONE\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeys[0],\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.id),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.id),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: linkType.id,\n status: linkType.status ?? { type: \"active\", active: {} },\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n },\n };\n}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrInterfaceType {\n return {\n ...interfaceType,\n propertiesV2: Object.fromEntries(\n Object.values(interfaceType.propertiesV2)\n .map((\n spt,\n ) => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType),\n }]),\n ),\n // these are omitted from our internal types but we need to re-add them for the final json\n allExtendsInterfaces: [],\n allLinks: [],\n allProperties: [],\n allPropertiesV2: {},\n properties: [],\n };\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertToWireOntologyIr(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nfunction convertSpt(\n {\n type,\n array,\n description,\n apiName,\n displayName,\n gothamMapping,\n typeClasses,\n valueType,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = (typeof type === \"object\" && type.type === \"marking\")\n ? {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n }\n : undefined;\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: \"NORMAL\",\n description,\n },\n type: array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(type),\n },\n }\n : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n provenance: undefined,\n typeClasses: typeClasses ?? [],\n valueType: valueType,\n };\n}\n\nfunction convertType(\n type: PropertyTypeType,\n): OntologyIrType {\n switch (true) {\n case (typeof type === \"object\" && \"markingType\" in type):\n return {\n \"type\": \"marking\",\n marking: { markingType: type.markingType },\n };\n\n case (typeof type === \"object\" && \"structDefinition\" in type):\n const structFields: Array<OntologyIrStructFieldType> = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field: OntologyIrStructFieldType;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? [],\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n }\n }\n\n structFields.push(field);\n }\n\n return {\n type: \"struct\",\n struct: { structFields },\n };\n\n case (type === \"geopoint\"):\n return { type: \"geohash\", geohash: {} };\n\n case (type === \"decimal\"):\n return { type, [type]: { precision: undefined, scale: undefined } };\n\n case (type === \"string\"):\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true,\n },\n };\n\n case (type === \"mediaReference\"):\n return {\n type: type,\n mediaReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nfunction distributeTypeHelper<T extends string>(\n type: T,\n): T extends any ? { type: T } & { [K in T]: {} } : never {\n return { type, [type]: {} } as any; // any cast to match conditional return type\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2584,6 +2584,389 @@ describe("Ontology Defining", () => {
2584
2584
  }
2585
2585
  `);
2586
2586
  });
2587
+ it("Explicit datasource definitions are properly defined", () => {
2588
+ defineObject({
2589
+ titlePropertyApiName: "bar",
2590
+ displayName: "datasetBackedObject",
2591
+ pluralDisplayName: "datasetBackedObject",
2592
+ apiName: "foo",
2593
+ primaryKeys: ["bar"],
2594
+ properties: [{
2595
+ apiName: "bar",
2596
+ type: "string",
2597
+ displayName: "Bar"
2598
+ }],
2599
+ datasource: {
2600
+ type: "dataset"
2601
+ }
2602
+ });
2603
+ defineObject({
2604
+ titlePropertyApiName: "fizz",
2605
+ displayName: "streamBackedObjectNoRetention",
2606
+ pluralDisplayName: "streamBackedObjectNoRetention",
2607
+ apiName: "fizz",
2608
+ primaryKeys: ["fizz"],
2609
+ properties: [{
2610
+ apiName: "fizz",
2611
+ type: "string",
2612
+ displayName: "Fizz"
2613
+ }, {
2614
+ apiName: "bar",
2615
+ type: "string",
2616
+ displayName: "Bar"
2617
+ }],
2618
+ datasource: {
2619
+ type: "stream"
2620
+ }
2621
+ });
2622
+ defineObject({
2623
+ titlePropertyApiName: "buzz",
2624
+ displayName: "streamBackedObjectWithRetention",
2625
+ pluralDisplayName: "streamBackedObjectWithRetention",
2626
+ apiName: "buzz",
2627
+ primaryKeys: ["buzz"],
2628
+ properties: [{
2629
+ apiName: "buzz",
2630
+ type: "string",
2631
+ displayName: "Buzz"
2632
+ }],
2633
+ datasource: {
2634
+ type: "stream",
2635
+ retentionPeriod: "PT1H"
2636
+ }
2637
+ });
2638
+ expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`
2639
+ {
2640
+ "blockPermissionInformation": {
2641
+ "actionTypes": {},
2642
+ "linkTypes": {},
2643
+ "objectTypes": {},
2644
+ },
2645
+ "interfaceTypes": {},
2646
+ "linkTypes": {},
2647
+ "objectTypes": {
2648
+ "com.palantir.buzz": {
2649
+ "datasources": [
2650
+ {
2651
+ "datasource": {
2652
+ "streamV2": {
2653
+ "propertyMapping": {
2654
+ "buzz": "buzz",
2655
+ },
2656
+ "propertySecurityGroups": undefined,
2657
+ "retentionPolicy": {
2658
+ "time": {
2659
+ "window": "PT1H",
2660
+ },
2661
+ "type": "time",
2662
+ },
2663
+ "streamLocator": "com.palantir.buzz",
2664
+ },
2665
+ "type": "streamV2",
2666
+ },
2667
+ "editsConfiguration": {
2668
+ "onlyAllowPrivilegedEdits": false,
2669
+ },
2670
+ "redacted": false,
2671
+ "rid": "ri.ontology.main.datasource.com.palantir.buzz",
2672
+ },
2673
+ ],
2674
+ "entityMetadata": {
2675
+ "arePatchesEnabled": false,
2676
+ },
2677
+ "objectType": {
2678
+ "allImplementsInterfaces": {},
2679
+ "apiName": "com.palantir.buzz",
2680
+ "displayMetadata": {
2681
+ "description": undefined,
2682
+ "displayName": "streamBackedObjectWithRetention",
2683
+ "groupDisplayName": undefined,
2684
+ "icon": {
2685
+ "blueprint": {
2686
+ "color": "#2D72D2",
2687
+ "locator": "cube",
2688
+ },
2689
+ "type": "blueprint",
2690
+ },
2691
+ "pluralDisplayName": "streamBackedObjectWithRetention",
2692
+ "visibility": "NORMAL",
2693
+ },
2694
+ "implementsInterfaces2": [],
2695
+ "primaryKeys": [
2696
+ "buzz",
2697
+ ],
2698
+ "propertyTypes": {
2699
+ "buzz": {
2700
+ "apiName": "buzz",
2701
+ "baseFormatter": undefined,
2702
+ "dataConstraints": undefined,
2703
+ "displayMetadata": {
2704
+ "description": undefined,
2705
+ "displayName": "Buzz",
2706
+ "visibility": "NORMAL",
2707
+ },
2708
+ "indexedForSearch": true,
2709
+ "inlineAction": undefined,
2710
+ "ruleSetBinding": undefined,
2711
+ "sharedPropertyTypeApiName": undefined,
2712
+ "sharedPropertyTypeRid": undefined,
2713
+ "status": {
2714
+ "active": {},
2715
+ "type": "active",
2716
+ },
2717
+ "type": {
2718
+ "string": {
2719
+ "analyzerOverride": undefined,
2720
+ "enableAsciiFolding": undefined,
2721
+ "isLongText": false,
2722
+ "supportsEfficientLeadingWildcard": false,
2723
+ "supportsExactMatching": true,
2724
+ },
2725
+ "type": "string",
2726
+ },
2727
+ "typeClasses": [],
2728
+ "valueType": undefined,
2729
+ },
2730
+ },
2731
+ "redacted": false,
2732
+ "status": {
2733
+ "active": {},
2734
+ "type": "active",
2735
+ },
2736
+ "titlePropertyTypeRid": "buzz",
2737
+ },
2738
+ },
2739
+ "com.palantir.fizz": {
2740
+ "datasources": [
2741
+ {
2742
+ "datasource": {
2743
+ "streamV2": {
2744
+ "propertyMapping": {
2745
+ "bar": "bar",
2746
+ "fizz": "fizz",
2747
+ },
2748
+ "propertySecurityGroups": undefined,
2749
+ "retentionPolicy": {
2750
+ "none": {},
2751
+ "type": "none",
2752
+ },
2753
+ "streamLocator": "com.palantir.fizz",
2754
+ },
2755
+ "type": "streamV2",
2756
+ },
2757
+ "editsConfiguration": {
2758
+ "onlyAllowPrivilegedEdits": false,
2759
+ },
2760
+ "redacted": false,
2761
+ "rid": "ri.ontology.main.datasource.com.palantir.fizz",
2762
+ },
2763
+ ],
2764
+ "entityMetadata": {
2765
+ "arePatchesEnabled": false,
2766
+ },
2767
+ "objectType": {
2768
+ "allImplementsInterfaces": {},
2769
+ "apiName": "com.palantir.fizz",
2770
+ "displayMetadata": {
2771
+ "description": undefined,
2772
+ "displayName": "streamBackedObjectNoRetention",
2773
+ "groupDisplayName": undefined,
2774
+ "icon": {
2775
+ "blueprint": {
2776
+ "color": "#2D72D2",
2777
+ "locator": "cube",
2778
+ },
2779
+ "type": "blueprint",
2780
+ },
2781
+ "pluralDisplayName": "streamBackedObjectNoRetention",
2782
+ "visibility": "NORMAL",
2783
+ },
2784
+ "implementsInterfaces2": [],
2785
+ "primaryKeys": [
2786
+ "fizz",
2787
+ ],
2788
+ "propertyTypes": {
2789
+ "bar": {
2790
+ "apiName": "bar",
2791
+ "baseFormatter": undefined,
2792
+ "dataConstraints": undefined,
2793
+ "displayMetadata": {
2794
+ "description": undefined,
2795
+ "displayName": "Bar",
2796
+ "visibility": "NORMAL",
2797
+ },
2798
+ "indexedForSearch": true,
2799
+ "inlineAction": undefined,
2800
+ "ruleSetBinding": undefined,
2801
+ "sharedPropertyTypeApiName": undefined,
2802
+ "sharedPropertyTypeRid": undefined,
2803
+ "status": {
2804
+ "active": {},
2805
+ "type": "active",
2806
+ },
2807
+ "type": {
2808
+ "string": {
2809
+ "analyzerOverride": undefined,
2810
+ "enableAsciiFolding": undefined,
2811
+ "isLongText": false,
2812
+ "supportsEfficientLeadingWildcard": false,
2813
+ "supportsExactMatching": true,
2814
+ },
2815
+ "type": "string",
2816
+ },
2817
+ "typeClasses": [],
2818
+ "valueType": undefined,
2819
+ },
2820
+ "fizz": {
2821
+ "apiName": "fizz",
2822
+ "baseFormatter": undefined,
2823
+ "dataConstraints": undefined,
2824
+ "displayMetadata": {
2825
+ "description": undefined,
2826
+ "displayName": "Fizz",
2827
+ "visibility": "NORMAL",
2828
+ },
2829
+ "indexedForSearch": true,
2830
+ "inlineAction": undefined,
2831
+ "ruleSetBinding": undefined,
2832
+ "sharedPropertyTypeApiName": undefined,
2833
+ "sharedPropertyTypeRid": undefined,
2834
+ "status": {
2835
+ "active": {},
2836
+ "type": "active",
2837
+ },
2838
+ "type": {
2839
+ "string": {
2840
+ "analyzerOverride": undefined,
2841
+ "enableAsciiFolding": undefined,
2842
+ "isLongText": false,
2843
+ "supportsEfficientLeadingWildcard": false,
2844
+ "supportsExactMatching": true,
2845
+ },
2846
+ "type": "string",
2847
+ },
2848
+ "typeClasses": [],
2849
+ "valueType": undefined,
2850
+ },
2851
+ },
2852
+ "redacted": false,
2853
+ "status": {
2854
+ "active": {},
2855
+ "type": "active",
2856
+ },
2857
+ "titlePropertyTypeRid": "fizz",
2858
+ },
2859
+ },
2860
+ "com.palantir.foo": {
2861
+ "datasources": [
2862
+ {
2863
+ "datasource": {
2864
+ "datasetV2": {
2865
+ "datasetRid": "com.palantir.foo",
2866
+ "propertyMapping": {
2867
+ "bar": {
2868
+ "column": "bar",
2869
+ "type": "column",
2870
+ },
2871
+ },
2872
+ },
2873
+ "type": "datasetV2",
2874
+ },
2875
+ "editsConfiguration": {
2876
+ "onlyAllowPrivilegedEdits": false,
2877
+ },
2878
+ "redacted": false,
2879
+ "rid": "ri.ontology.main.datasource.com.palantir.foo",
2880
+ },
2881
+ ],
2882
+ "entityMetadata": {
2883
+ "arePatchesEnabled": false,
2884
+ },
2885
+ "objectType": {
2886
+ "allImplementsInterfaces": {},
2887
+ "apiName": "com.palantir.foo",
2888
+ "displayMetadata": {
2889
+ "description": undefined,
2890
+ "displayName": "datasetBackedObject",
2891
+ "groupDisplayName": undefined,
2892
+ "icon": {
2893
+ "blueprint": {
2894
+ "color": "#2D72D2",
2895
+ "locator": "cube",
2896
+ },
2897
+ "type": "blueprint",
2898
+ },
2899
+ "pluralDisplayName": "datasetBackedObject",
2900
+ "visibility": "NORMAL",
2901
+ },
2902
+ "implementsInterfaces2": [],
2903
+ "primaryKeys": [
2904
+ "bar",
2905
+ ],
2906
+ "propertyTypes": {
2907
+ "bar": {
2908
+ "apiName": "bar",
2909
+ "baseFormatter": undefined,
2910
+ "dataConstraints": undefined,
2911
+ "displayMetadata": {
2912
+ "description": undefined,
2913
+ "displayName": "Bar",
2914
+ "visibility": "NORMAL",
2915
+ },
2916
+ "indexedForSearch": true,
2917
+ "inlineAction": undefined,
2918
+ "ruleSetBinding": undefined,
2919
+ "sharedPropertyTypeApiName": undefined,
2920
+ "sharedPropertyTypeRid": undefined,
2921
+ "status": {
2922
+ "active": {},
2923
+ "type": "active",
2924
+ },
2925
+ "type": {
2926
+ "string": {
2927
+ "analyzerOverride": undefined,
2928
+ "enableAsciiFolding": undefined,
2929
+ "isLongText": false,
2930
+ "supportsEfficientLeadingWildcard": false,
2931
+ "supportsExactMatching": true,
2932
+ },
2933
+ "type": "string",
2934
+ },
2935
+ "typeClasses": [],
2936
+ "valueType": undefined,
2937
+ },
2938
+ },
2939
+ "redacted": false,
2940
+ "status": {
2941
+ "active": {},
2942
+ "type": "active",
2943
+ },
2944
+ "titlePropertyTypeRid": "bar",
2945
+ },
2946
+ },
2947
+ },
2948
+ "sharedPropertyTypes": {},
2949
+ }
2950
+ `);
2951
+ });
2952
+ it("Fail if stream retention period is not ISO 8601 compliant", () => {
2953
+ expect(() => defineObject({
2954
+ titlePropertyApiName: "buzz",
2955
+ displayName: "streamBackedObjectWithRetention",
2956
+ pluralDisplayName: "streamBackedObjectWithRetention",
2957
+ apiName: "buzz",
2958
+ primaryKeys: ["buzz"],
2959
+ properties: [{
2960
+ apiName: "buzz",
2961
+ type: "string",
2962
+ displayName: "Buzz"
2963
+ }],
2964
+ datasource: {
2965
+ type: "stream",
2966
+ retentionPeriod: "bad retention period string"
2967
+ }
2968
+ })).toThrowErrorMatchingInlineSnapshot(`[Error: Invariant failed: Retention period "bad retention period string" on object "buzz" is not a valid ISO 8601 duration string]`);
2969
+ });
2587
2970
  });
2588
2971
  });
2589
2972
  //# sourceMappingURL=overall.test.js.map