@osdk/maker 0.11.0-beta.2 → 0.11.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 +16 -0
- package/build/browser/api/defineAction.js +69 -10
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineImportSpt.js +3 -1
- package/build/browser/api/defineImportSpt.js.map +1 -1
- package/build/browser/api/defineLink.js +0 -7
- package/build/browser/api/defineLink.js.map +1 -1
- package/build/browser/api/defineOntology.js +30 -2
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/defineSpt.js +3 -17
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/overall.test.js +3126 -2088
- package/build/browser/api/overall.test.js.map +1 -1
- package/build/browser/api/types.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/cjs/index.cjs +103 -28
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +11 -5
- package/build/esm/api/defineAction.js +69 -10
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineImportSpt.js +3 -1
- package/build/esm/api/defineImportSpt.js.map +1 -1
- package/build/esm/api/defineLink.js +0 -7
- package/build/esm/api/defineLink.js.map +1 -1
- package/build/esm/api/defineOntology.js +30 -2
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/defineSpt.js +3 -17
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/overall.test.js +3126 -2088
- package/build/esm/api/overall.test.js.map +1 -1
- package/build/esm/api/types.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/types/api/defineAction.d.ts +6 -6
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineImportSpt.d.ts +1 -0
- package/build/types/api/defineImportSpt.d.ts.map +1 -1
- package/build/types/api/defineLink.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts +5 -1
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/defineSpt.d.ts.map +1 -1
- package/build/types/api/types.d.ts +7 -1
- package/build/types/api/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineOntology.js","names":["fs","path","invariant","isExotic","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","mainIndexFilePath","valueTypes","map","definitions","metadata","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","convertToWireBlockData","convertToWireImportedTypes","asBlockData","sharedPropertyTypes","spt","sharedPropertyType","displayName","description","type","objectTypes","ot","objectType","propertyTypes","p","sharedPropertyTypeApiName","interfaceTypes","i","interfaceType","properties","allPropertiesV2","links","allLinks","l","cardinality","required","actionTypes","a","actionType","parameters","id","linkTypes","linkType","objectTypeApiNameOneSide","oneToMany","objectTypeRidOneSide","objectTypeApiNameManySide","objectTypeRidManySide","manyToOneLinkDisplayName","manyToOneLinkMetadata","oneToManyLinkDisplayName","oneToManyLinkMetadata","cardinalityHint","objectTypeApiNameA","manyToMany","objectTypeRidA","objectTypeApiNameB","objectTypeRidB","objectTypeAToBLinkDisplayName","objectTypeAToBLinkMetadata","objectTypeBToALinkDisplayName","objectTypeBToALinkMetadata","fromEntries","convertObject","convertSpt","convertInterface","link","convertLink","action","convertAction","blockPermissionInformation","propertyDatasources","flatMap","prop","extractPropertyDatasource","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","datasetPropertyMapping","structMapping","struct","column","structDefinition","fieldName","_fieldType","mappings","datasetV2","datasetRid","output","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","convertNullabilityToDataConstraint","sharedPropertyTypeRid","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","active","other","propertiesV2","allExtendsInterfaces","allProperties","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","nullability","dataConstraint","subtype","aliases","marking","markingType","structFields","Array","key","fieldTypeDefinition","field","fieldType","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","geohash","precision","scale","mediaReference","geotimeSeriesReference","distributeTypeHelper","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","actionTypeLogic","logic","rules","validation","configuration","defaultLayout","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","successMessage","formContentOrdering","parameterOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","editable","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","sectionId","parameterIds","parameterId","collapsedByDefault","columnCount","showTitleBar","parameter","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","minimumLength","maximumLength","datetime","objectTypeReference","interfaceTypeRids","k","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","Error","dropdown","notRequired","listLength","listLengthValidation","propertyTypeConstraints","nullabilityV2","noEmptyCollections","noNulls","process","env","NODE_ENV","sanitize","s","includes","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","toLowerCase"],"sources":["defineOntology.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 {\n ActionTypeStatus,\n DataConstraints,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrActionValidation,\n OntologyIrAllowedParameterValues,\n OntologyIrBaseParameterType,\n OntologyIrImportedTypes,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n ParameterId,\n ParameterRenderHint,\n ParameterRequiredConfiguration,\n RetentionPolicy,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport invariant from \"tiny-invariant\";\nimport { isExotic } from \"./defineObject.js\";\nimport type {\n ActionParameter,\n ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n Nullability,\n ObjectPropertyType,\n ObjectType,\n OntologyDefinition,\n OntologyEntityType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\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 writeStaticObjects(outputDir);\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: OntologyDefinition,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology[OntologyEntityTypeEnum.VALUE_TYPE]).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: OntologyDefinition,\n): OntologyIr {\n return {\n blockData: convertToWireBlockData(ontology),\n importedTypes: convertToWireImportedTypes(importedTypes),\n };\n}\n\nfunction convertToWireImportedTypes(\n importedTypes: OntologyDefinition,\n): OntologyIrImportedTypes {\n const asBlockData = convertToWireBlockData(importedTypes); // this just makes things easier to work with\n return {\n sharedPropertyTypes: Object.values(asBlockData.sharedPropertyTypes).map(\n spt => ({\n apiName: spt.sharedPropertyType.apiName,\n displayName: spt.sharedPropertyType.displayMetadata.displayName,\n description: spt.sharedPropertyType.displayMetadata.description,\n type: spt.sharedPropertyType.type,\n }),\n ),\n objectTypes: Object.values(\n asBlockData.objectTypes,\n ).map(ot => ({\n apiName: ot.objectType.apiName,\n displayName: ot.objectType.displayMetadata.displayName,\n description: ot.objectType.displayMetadata.description,\n propertyTypes: Object.values(ot.objectType.propertyTypes).map(p => ({\n apiName: p.apiName,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n sharedPropertyType: p.sharedPropertyTypeApiName,\n })),\n })),\n interfaceTypes: Object.values(asBlockData.interfaceTypes).map(i => ({\n apiName: i.interfaceType.apiName,\n displayName: i.interfaceType.displayMetadata.displayName,\n description: i.interfaceType.displayMetadata.description,\n properties: Object.values(i.interfaceType.allPropertiesV2).map(p => ({\n apiName: p.sharedPropertyType.apiName,\n displayName: p.sharedPropertyType.displayMetadata.displayName,\n description: p.sharedPropertyType.displayMetadata.description,\n type: p.sharedPropertyType.type,\n })),\n links: i.interfaceType.allLinks.map(l => ({\n apiName: l.metadata.apiName,\n displayName: l.metadata.displayName,\n description: l.metadata.description,\n cardinality: l.cardinality,\n required: l.required,\n })),\n })),\n actionTypes: Object.values(asBlockData.actionTypes).map(a => ({\n apiName: a.actionType.metadata.apiName,\n displayName: a.actionType.metadata.displayMetadata.displayName,\n description: a.actionType.metadata.displayMetadata.description,\n parameters: Object.values(a.actionType.metadata.parameters).map(p => ({\n id: p.id,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n })),\n })),\n linkTypes: Object.values(asBlockData.linkTypes).map(l => {\n if (l.linkType.definition.type === \"oneToMany\") {\n return {\n id: l.linkType.id,\n definition: {\n type: \"oneToMany\",\n \"oneToMany\": {\n objectTypeApiNameOneSide:\n l.linkType.definition.oneToMany.objectTypeRidOneSide,\n objectTypeApiNameManySide:\n l.linkType.definition.oneToMany.objectTypeRidManySide,\n manyToOneLinkDisplayName:\n l.linkType.definition.oneToMany.manyToOneLinkMetadata\n .displayMetadata.displayName,\n oneToManyLinkDisplayName:\n l.linkType.definition.oneToMany.oneToManyLinkMetadata\n .displayMetadata.displayName,\n cardinality: l.linkType.definition.oneToMany.cardinalityHint,\n },\n },\n };\n } else {\n return {\n id: l.linkType.id,\n definition: {\n type: \"manyToMany\",\n \"manyToMany\": {\n objectTypeApiNameA:\n l.linkType.definition.manyToMany.objectTypeRidA,\n objectTypeApiNameB:\n l.linkType.definition.manyToMany.objectTypeRidB,\n objectTypeAToBLinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeAToBLinkMetadata\n .displayMetadata.displayName,\n objectTypeBToALinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeBToALinkMetadata\n .displayMetadata.displayName,\n },\n },\n };\n }\n }),\n };\n}\n\nfunction convertToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\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[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\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.primaryKeyPropertyApiName],\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: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n): OntologyIrObjectTypeDatasource {\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n });\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n properties: ObjectPropertyType[],\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 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 const datasetPropertyMapping = Object.fromEntries(\n properties.map((prop) => {\n prop.type;\n if (typeof prop.type === \"object\" && prop.type?.type === \"struct\") {\n const structMapping = {\n type: \"struct\",\n struct: {\n column: prop.apiName,\n mapping: Object.fromEntries(\n Object.entries(prop.type.structDefinition).map((\n [fieldName, _fieldType],\n ) => [\n fieldName,\n { apiName: fieldName, mappings: {} },\n ]),\n ),\n },\n };\n return [prop.apiName, structMapping];\n } else {\n return [\n prop.apiName,\n { type: \"column\", column: prop.apiName },\n ];\n }\n }),\n );\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: datasetPropertyMapping,\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: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkType,\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.primaryKeyPropertyApiName,\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.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\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.apiName,\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 const { __type, ...other } = interfaceType;\n return {\n ...other,\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 visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = convertNullabilityToDataConstraint({ type, nullability });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: 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 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 (typeof type === \"object\" && \"isLongText\" in type):\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard:\n type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching,\n },\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 case (type === \"geotimeSeries\"):\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\nfunction convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nfunction convertAction(action: ActionType): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? [],\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n },\n },\n };\n}\n\nfunction convertActionValidation(\n action: ActionType,\n): OntologyIrActionValidation {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries(\n (action.validation\n ?? [{\n condition: { type: \"true\", true: {} },\n displayMetadata: { failureMessage: \"\", typeClasses: [] },\n }]).map((rule, idx) => [idx, rule]),\n ),\n },\n parameterValidations: Object.fromEntries(\n (action.parameters ?? []).map(p => {\n return [\n p.id,\n {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p),\n visibility: { type: \"editable\", editable: {} },\n },\n validation: {\n allowedValues: extractAllowedValues(p),\n required: convertParameterRequirementConstraint(\n p.validation.required,\n ),\n },\n },\n },\n ];\n }),\n ),\n };\n}\n\nfunction convertActionParameters(\n action: ActionType,\n): Record<ParameterId, OntologyIrParameter> {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: (typeof p.type === \"string\"\n ? { type: p.type, [p.type]: {} }\n : p.type) as OntologyIrBaseParameterType,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: [],\n },\n }]));\n}\n\nfunction convertActionSections(\n action: ActionType,\n): Record<SectionId, OntologyIrSection> {\n return Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, parameterIds],\n ) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({ type: \"parameterId\", parameterId: p })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true,\n },\n }]),\n );\n}\n\nfunction extractAllowedValues(\n parameter: ActionParameter,\n): OntologyIrAllowedParameterValues {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: { allowed: false },\n },\n },\n };\n case \"range\":\n const { min, max } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } =\n parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minimumLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maximumLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids:\n parameter.validation.allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nfunction renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nfunction convertParameterRequirementConstraint(\n required: ActionParameterRequirementConstraint,\n): ParameterRequiredConfiguration {\n if (typeof required === \"boolean\") {\n return required\n ? { type: \"required\", required: {} }\n : { type: \"notRequired\", notRequired: {} };\n }\n const { min, max } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: { minLength: min, maxLength: max },\n };\n}\n\nfunction convertNullabilityToDataConstraint(\n prop: { type: PropertyTypeType; nullability?: Nullability },\n): DataConstraints | undefined {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n };\n }\n invariant(\n prop.nullability?.noNulls,\n \"Marking property type has noNulls set to false, marking properties must not be nullable\",\n );\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\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\nexport function sanitize(namespace: string, s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineOntology.js","names":["fs","path","invariant","isExotic","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","mainIndexFilePath","valueTypes","map","definitions","metadata","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","convertToWireBlockData","convertToWireImportedTypes","asBlockData","sharedPropertyTypes","spt","sharedPropertyType","displayName","description","type","objectTypes","ot","objectType","propertyTypes","p","sharedPropertyTypeApiName","interfaceTypes","i","interfaceType","properties","allPropertiesV2","links","allLinks","l","cardinality","required","actionTypes","a","actionType","parameters","id","linkTypes","linkType","objectTypeApiNameOneSide","oneToMany","objectTypeRidOneSide","objectTypeApiNameManySide","objectTypeRidManySide","manyToOneLinkDisplayName","manyToOneLinkMetadata","oneToManyLinkDisplayName","oneToManyLinkMetadata","cardinalityHint","objectTypeApiNameA","manyToMany","objectTypeRidA","objectTypeApiNameB","objectTypeRidB","objectTypeAToBLinkDisplayName","objectTypeAToBLinkMetadata","objectTypeBToALinkDisplayName","objectTypeBToALinkMetadata","fromEntries","convertObject","convertSpt","convertInterface","link","convertLink","action","convertAction","blockPermissionInformation","filter","validation","restrictionStatus","hasRolesApplied","ontologyPackageRid","publicProject","propertyDatasources","flatMap","prop","extractPropertyDatasource","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","datasetPropertyMapping","structMapping","struct","column","structDefinition","fieldName","_fieldType","mappings","datasetV2","datasetRid","defaultTypeClasses","kind","name","shouldNotHaveRenderHints","includes","getPropertyTypeName","hasRenderHints","typeClasses","some","tc","toLowerCase","process","env","NODE_ENV","output","indexedForSearch","ruleSetBinding","baseFormatter","convertType","inlineAction","dataConstraints","convertNullabilityToDataConstraint","sharedPropertyTypeRid","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","active","other","propertiesV2","allExtendsInterfaces","allProperties","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","nullability","dataConstraint","subtype","aliases","marking","markingType","structFields","Array","key","fieldTypeDefinition","field","fieldType","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","geohash","precision","scale","mediaReference","geotimeSeriesReference","distributeTypeHelper","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","actionTypeLogic","logic","rules","configuration","defaultLayout","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","successMessage","formContentOrdering","parameterOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","editable","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","sectionId","parameterIds","parameterId","collapsedByDefault","columnCount","showTitleBar","parameter","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","minimumLength","maximumLength","datetime","objectTypeReference","interfaceTypeRids","k","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","Error","dropdown","notRequired","listLength","listLengthValidation","propertyTypeConstraints","nullabilityV2","noEmptyCollections","noNulls","sanitize","s","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt"],"sources":["defineOntology.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 {\n ActionTypePermissionInformation,\n ActionTypeStatus,\n DataConstraints,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrActionValidation,\n OntologyIrAllowedParameterValues,\n OntologyIrBaseParameterType,\n OntologyIrImportedTypes,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n ParameterId,\n ParameterRenderHint,\n ParameterRequiredConfiguration,\n RetentionPolicy,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport invariant from \"tiny-invariant\";\nimport { isExotic } from \"./defineObject.js\";\nimport type {\n ActionParameter,\n ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n Nullability,\n ObjectPropertyType,\n ObjectType,\n OntologyDefinition,\n OntologyEntityType,\n PropertyTypeType,\n SharedPropertyType,\n TypeClass,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\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 writeStaticObjects(outputDir);\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: OntologyDefinition,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology[OntologyEntityTypeEnum.VALUE_TYPE]).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: OntologyDefinition,\n): OntologyIr {\n return {\n blockData: convertToWireBlockData(ontology),\n importedTypes: convertToWireImportedTypes(importedTypes),\n };\n}\n\nfunction convertToWireImportedTypes(\n importedTypes: OntologyDefinition,\n): OntologyIrImportedTypes {\n const asBlockData = convertToWireBlockData(importedTypes); // this just makes things easier to work with\n return {\n sharedPropertyTypes: Object.values(asBlockData.sharedPropertyTypes).map(\n spt => ({\n apiName: spt.sharedPropertyType.apiName,\n displayName: spt.sharedPropertyType.displayMetadata.displayName,\n description: spt.sharedPropertyType.displayMetadata.description,\n type: spt.sharedPropertyType.type,\n }),\n ),\n objectTypes: Object.values(\n asBlockData.objectTypes,\n ).map(ot => ({\n apiName: ot.objectType.apiName,\n displayName: ot.objectType.displayMetadata.displayName,\n description: ot.objectType.displayMetadata.description,\n propertyTypes: Object.values(ot.objectType.propertyTypes).map(p => ({\n apiName: p.apiName,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n sharedPropertyType: p.sharedPropertyTypeApiName,\n })),\n })),\n interfaceTypes: Object.values(asBlockData.interfaceTypes).map(i => ({\n apiName: i.interfaceType.apiName,\n displayName: i.interfaceType.displayMetadata.displayName,\n description: i.interfaceType.displayMetadata.description,\n properties: Object.values(i.interfaceType.allPropertiesV2).map(p => ({\n apiName: p.sharedPropertyType.apiName,\n displayName: p.sharedPropertyType.displayMetadata.displayName,\n description: p.sharedPropertyType.displayMetadata.description,\n type: p.sharedPropertyType.type,\n })),\n links: i.interfaceType.allLinks.map(l => ({\n apiName: l.metadata.apiName,\n displayName: l.metadata.displayName,\n description: l.metadata.description,\n cardinality: l.cardinality,\n required: l.required,\n })),\n })),\n actionTypes: Object.values(asBlockData.actionTypes).map(a => ({\n apiName: a.actionType.metadata.apiName,\n displayName: a.actionType.metadata.displayMetadata.displayName,\n description: a.actionType.metadata.displayMetadata.description,\n parameters: Object.values(a.actionType.metadata.parameters).map(p => ({\n id: p.id,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n })),\n })),\n linkTypes: Object.values(asBlockData.linkTypes).map(l => {\n if (l.linkType.definition.type === \"oneToMany\") {\n return {\n id: l.linkType.id,\n definition: {\n type: \"oneToMany\",\n \"oneToMany\": {\n objectTypeApiNameOneSide:\n l.linkType.definition.oneToMany.objectTypeRidOneSide,\n objectTypeApiNameManySide:\n l.linkType.definition.oneToMany.objectTypeRidManySide,\n manyToOneLinkDisplayName:\n l.linkType.definition.oneToMany.manyToOneLinkMetadata\n .displayMetadata.displayName,\n oneToManyLinkDisplayName:\n l.linkType.definition.oneToMany.oneToManyLinkMetadata\n .displayMetadata.displayName,\n cardinality: l.linkType.definition.oneToMany.cardinalityHint,\n },\n },\n };\n } else {\n return {\n id: l.linkType.id,\n definition: {\n type: \"manyToMany\",\n \"manyToMany\": {\n objectTypeApiNameA:\n l.linkType.definition.manyToMany.objectTypeRidA,\n objectTypeApiNameB:\n l.linkType.definition.manyToMany.objectTypeRidB,\n objectTypeAToBLinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeAToBLinkMetadata\n .displayMetadata.displayName,\n objectTypeBToALinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeBToALinkMetadata\n .displayMetadata.displayName,\n },\n },\n };\n }\n }),\n };\n}\n\nfunction convertToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\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[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE])\n .filter(([apiName, action]) => action.validation)\n .map<\n [string, ActionTypePermissionInformation]\n >(([apiName, action]) => {\n return [apiName, {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null,\n publicProject: false,\n },\n }];\n }),\n ),\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\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.primaryKeyPropertyApiName],\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: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n): OntologyIrObjectTypeDatasource {\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n });\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n properties: ObjectPropertyType[],\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 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 const datasetPropertyMapping = Object.fromEntries(\n properties.map((prop) => {\n prop.type;\n if (typeof prop.type === \"object\" && prop.type?.type === \"struct\") {\n const structMapping = {\n type: \"struct\",\n struct: {\n column: prop.apiName,\n mapping: Object.fromEntries(\n Object.entries(prop.type.structDefinition).map((\n [fieldName, _fieldType],\n ) => [\n fieldName,\n { apiName: fieldName, mappings: {} },\n ]),\n ),\n },\n };\n return [prop.apiName, structMapping];\n } else {\n return [\n prop.apiName,\n { type: \"column\", column: prop.apiName },\n ];\n }\n }),\n );\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: datasetPropertyMapping,\n },\n };\n }\n}\n\nexport const defaultTypeClasses: TypeClass[] = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\",\n}, { kind: \"render_hint\", name: \"SORTABLE\" }];\n\n// ExperimentalTimeDependentV1 and Attachment types should be included here once supported\nexport function shouldNotHaveRenderHints(type: PropertyTypeType): boolean {\n return [\"struct\", \"mediaReference\", \"geotimeSeries\"].includes(\n getPropertyTypeName(type),\n );\n}\n\nexport function hasRenderHints(typeClasses: TypeClass[] | undefined): boolean {\n return (typeClasses ?? []).some(tc =>\n tc.kind.toLowerCase() === \"render_hint\"\n );\n}\n\nexport function getPropertyTypeName(type: PropertyTypeType): string {\n return typeof type === \"object\" ? type.type : type;\n}\n\nfunction convertProperty(property: ObjectPropertyType): OntologyIrPropertyType {\n const apiName = namespace + property.apiName;\n invariant(\n !shouldNotHaveRenderHints(property.type)\n || !hasRenderHints(property.typeClasses),\n `Property type ${apiName} of type '${\n getPropertyTypeName(property.type)\n }' should not have render hints`,\n );\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 ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkType,\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.primaryKeyPropertyApiName,\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.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\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.apiName,\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 const { __type, ...other } = interfaceType;\n return {\n ...other,\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 visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = convertNullabilityToDataConstraint({ type, nullability });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: 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 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 (typeof type === \"object\" && \"isLongText\" in type):\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard:\n type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching,\n },\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 case (type === \"geotimeSeries\"):\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\nfunction convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nfunction convertAction(action: ActionType): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? [],\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n },\n },\n };\n}\n\nfunction convertActionValidation(\n action: ActionType,\n): OntologyIrActionValidation {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries(\n (action.validation\n ?? [{\n condition: { type: \"true\", true: {} },\n displayMetadata: { failureMessage: \"\", typeClasses: [] },\n }]).map((rule, idx) => [idx, rule]),\n ),\n },\n parameterValidations: Object.fromEntries(\n (action.parameters ?? []).map(p => {\n return [\n p.id,\n {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p),\n visibility: { type: \"editable\", editable: {} },\n },\n validation: {\n allowedValues: extractAllowedValues(p),\n required: convertParameterRequirementConstraint(\n p.validation.required,\n ),\n },\n },\n },\n ];\n }),\n ),\n };\n}\n\nfunction convertActionParameters(\n action: ActionType,\n): Record<ParameterId, OntologyIrParameter> {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: (typeof p.type === \"string\"\n ? { type: p.type, [p.type]: {} }\n : p.type) as OntologyIrBaseParameterType,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: [],\n },\n }]));\n}\n\nfunction convertActionSections(\n action: ActionType,\n): Record<SectionId, OntologyIrSection> {\n return Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, parameterIds],\n ) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({ type: \"parameterId\", parameterId: p })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true,\n },\n }]),\n );\n}\n\nfunction extractAllowedValues(\n parameter: ActionParameter,\n): OntologyIrAllowedParameterValues {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: { allowed: false },\n },\n },\n };\n case \"range\":\n const { min, max } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } =\n parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minimumLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maximumLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids:\n parameter.validation.allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nfunction renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nfunction convertParameterRequirementConstraint(\n required: ActionParameterRequirementConstraint,\n): ParameterRequiredConfiguration {\n if (typeof required === \"boolean\") {\n return required\n ? { type: \"required\", required: {} }\n : { type: \"notRequired\", notRequired: {} };\n }\n const { min, max } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: { minLength: min, maxLength: max },\n };\n}\n\nfunction convertNullabilityToDataConstraint(\n prop: { type: PropertyTypeType; nullability?: Nullability },\n): DataConstraints | undefined {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n };\n }\n invariant(\n prop.nullability?.noNulls,\n \"Marking property type has noNulls set to false, marking properties must not be nullable\",\n );\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\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\nexport function sanitize(namespace: string, s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,36 +15,22 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import invariant from "tiny-invariant";
|
|
18
|
-
import { namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
|
|
18
|
+
import { defaultTypeClasses, getPropertyTypeName, hasRenderHints, namespace, ontologyDefinition, shouldNotHaveRenderHints, updateOntology } from "./defineOntology.js";
|
|
19
19
|
import { OntologyEntityTypeEnum } from "./types.js";
|
|
20
|
-
const defaultTypeClasses = [{
|
|
21
|
-
kind: "render_hint",
|
|
22
|
-
name: "SELECTABLE"
|
|
23
|
-
}, {
|
|
24
|
-
kind: "render_hint",
|
|
25
|
-
name: "SORTABLE"
|
|
26
|
-
}];
|
|
27
20
|
export function defineSharedPropertyType(sptDef) {
|
|
28
21
|
const apiName = namespace + sptDef.apiName;
|
|
29
22
|
!(ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Shared property type ${apiName} already exists`) : invariant(false) : void 0;
|
|
30
|
-
|
|
31
|
-
// ExperimentalTimeDependentV1 and Attachment types should be included here once supported
|
|
32
|
-
const shouldNotHaveRenderHints = ["struct", "mediaReference", "geotimeSeries"].includes(getPropertyTypeName(sptDef.type));
|
|
33
|
-
const hasRenderHints = (sptDef.typeClasses ?? []).some(tc => tc.kind.toLowerCase() === "render_hint");
|
|
34
|
-
!(!shouldNotHaveRenderHints || !hasRenderHints) ? process.env.NODE_ENV !== "production" ? invariant(false, `Shared property type ${apiName} of type '${getPropertyTypeName(sptDef.type)}' should not have render hints`) : invariant(false) : void 0;
|
|
23
|
+
!(!shouldNotHaveRenderHints(sptDef.type) || !hasRenderHints(sptDef.typeClasses)) ? process.env.NODE_ENV !== "production" ? invariant(false, `Shared property type ${apiName} of type '${getPropertyTypeName(sptDef.type)}' should not have render hints`) : invariant(false) : void 0;
|
|
35
24
|
const fullSpt = {
|
|
36
25
|
...sptDef,
|
|
37
26
|
apiName,
|
|
38
27
|
nonNameSpacedApiName: sptDef.apiName,
|
|
39
28
|
displayName: sptDef.displayName ?? sptDef.apiName,
|
|
40
29
|
// This way the non-namespaced api name is the display name (maybe not ideal)
|
|
41
|
-
typeClasses: sptDef.typeClasses ?? (shouldNotHaveRenderHints ? [] : defaultTypeClasses),
|
|
30
|
+
typeClasses: sptDef.typeClasses ?? (shouldNotHaveRenderHints(sptDef.type) ? [] : defaultTypeClasses),
|
|
42
31
|
__type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE
|
|
43
32
|
};
|
|
44
33
|
updateOntology(fullSpt);
|
|
45
34
|
return fullSpt;
|
|
46
35
|
}
|
|
47
|
-
function getPropertyTypeName(type) {
|
|
48
|
-
return typeof type === "object" ? type.type : type;
|
|
49
|
-
}
|
|
50
36
|
//# sourceMappingURL=defineSpt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineSpt.js","names":["invariant","
|
|
1
|
+
{"version":3,"file":"defineSpt.js","names":["invariant","defaultTypeClasses","getPropertyTypeName","hasRenderHints","namespace","ontologyDefinition","shouldNotHaveRenderHints","updateOntology","OntologyEntityTypeEnum","defineSharedPropertyType","sptDef","apiName","SHARED_PROPERTY_TYPE","undefined","process","env","NODE_ENV","type","typeClasses","fullSpt","nonNameSpacedApiName","displayName","__type"],"sources":["defineSpt.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 {\n ApiNameValueTypeReference,\n SharedPropertyTypeGothamMapping,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport {\n defaultTypeClasses,\n getPropertyTypeName,\n hasRenderHints,\n namespace,\n ontologyDefinition,\n shouldNotHaveRenderHints,\n updateOntology,\n} from \"./defineOntology.js\";\nimport {\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport interface SharedPropertyTypeDefinition {\n apiName: string;\n type: PropertyTypeType;\n array?: boolean;\n description?: string;\n displayName?: string;\n valueType?: ApiNameValueTypeReference;\n visibility?: Visibility;\n typeClasses?: SharedPropertyType[\"typeClasses\"];\n gothamMapping?: SharedPropertyTypeGothamMapping;\n}\n\nexport function defineSharedPropertyType(\n sptDef: SharedPropertyTypeDefinition,\n): SharedPropertyType {\n const apiName = namespace + sptDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName]\n === undefined,\n `Shared property type ${apiName} already exists`,\n );\n\n invariant(\n !shouldNotHaveRenderHints(sptDef.type)\n || !hasRenderHints(sptDef.typeClasses),\n `Shared property type ${apiName} of type '${\n getPropertyTypeName(sptDef.type)\n }' should not have render hints`,\n );\n\n const fullSpt: SharedPropertyType = {\n ...sptDef,\n apiName,\n nonNameSpacedApiName: sptDef.apiName,\n displayName: sptDef.displayName ?? sptDef.apiName, // This way the non-namespaced api name is the display name (maybe not ideal)\n typeClasses: sptDef.typeClasses\n ?? (shouldNotHaveRenderHints(sptDef.type) ? [] : defaultTypeClasses),\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE,\n };\n updateOntology(fullSpt);\n return fullSpt;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,SAAS,EACTC,kBAAkB,EAClBC,wBAAwB,EACxBC,cAAc,QACT,qBAAqB;AAC5B,SACEC,sBAAsB,QAGjB,YAAY;AAcnB,OAAO,SAASC,wBAAwBA,CACtCC,MAAoC,EAChB;EACpB,MAAMC,OAAO,GAAGP,SAAS,GAAGM,MAAM,CAACC,OAAO;EAC1C,EACEN,kBAAkB,CAACG,sBAAsB,CAACI,oBAAoB,CAAC,CAACD,OAAO,CAAC,KAClEE,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFjBhB,SAAS,QAGP,wBAAwBW,OAAO,iBAAiB,IAHlDX,SAAS;EAMT,EACE,CAACM,wBAAwB,CAACI,MAAM,CAACO,IAAI,CAAC,IACjC,CAACd,cAAc,CAACO,MAAM,CAACQ,WAAW,CAAC,IAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAF1ChB,SAAS,QAGP,wBAAwBW,OAAO,aAC7BT,mBAAmB,CAACQ,MAAM,CAACO,IAAI,CAAC,gCACF,IALlCjB,SAAS;EAQT,MAAMmB,OAA2B,GAAG;IAClC,GAAGT,MAAM;IACTC,OAAO;IACPS,oBAAoB,EAAEV,MAAM,CAACC,OAAO;IACpCU,WAAW,EAAEX,MAAM,CAACW,WAAW,IAAIX,MAAM,CAACC,OAAO;IAAE;IACnDO,WAAW,EAAER,MAAM,CAACQ,WAAW,KACzBZ,wBAAwB,CAACI,MAAM,CAACO,IAAI,CAAC,GAAG,EAAE,GAAGhB,kBAAkB,CAAC;IACtEqB,MAAM,EAAEd,sBAAsB,CAACI;EACjC,CAAC;EACDL,cAAc,CAACY,OAAO,CAAC;EACvB,OAAOA,OAAO;AAChB","ignoreList":[]}
|