@osdk/maker 0.13.0-beta.6 → 0.13.0-beta.8
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 +18 -0
- package/build/browser/api/defineOntology.js +1 -1
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/cli/main.js +3 -9
- package/build/browser/cli/main.js.map +1 -1
- package/build/cjs/index.cjs +4 -10
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/api/defineOntology.js +1 -1
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/cli/main.js +3 -9
- package/build/esm/cli/main.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.13.0-beta.8
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f9b6dc4: Write value types to ontology IR file
|
|
8
|
+
- b1c99bf: Revert .js -> .ts extension for codegen
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies [ca1fabe]
|
|
13
|
+
- @osdk/api@2.5.0-beta.8
|
|
14
|
+
|
|
15
|
+
## 0.13.0-beta.7
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 6da8fd2: Write value type IR correctly
|
|
20
|
+
|
|
3
21
|
## 0.13.0-beta.6
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
|
@@ -132,7 +132,7 @@ export const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFi
|
|
|
132
132
|
entityModuleNames.push(entityFileNameBase);
|
|
133
133
|
});
|
|
134
134
|
for (const entityModuleName of entityModuleNames) {
|
|
135
|
-
topLevelExportStatements.push(`export { ${entityModuleName} } from "./codegen/${typeDirName}/${entityModuleName}.
|
|
135
|
+
topLevelExportStatements.push(`export { ${entityModuleName} } from "./codegen/${typeDirName}/${entityModuleName}.js";`);
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
138
|
if (topLevelExportStatements.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineOntology.js","names":["fs","path","invariant","convertToDisplayName","isExotic","convertActionParameterConditionalOverride","convertActionVisibility","convertSectionConditionalOverride","getFormContentOrdering","convertNullabilityToDataConstraint","convertType","convertValueType","convertValueTypeDataConstraints","defaultTypeClasses","getPropertyTypeName","hasRenderHints","shouldNotHaveRenderHints","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","convertToWireOntologyIr","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","dependencyInjectionString","mainIndexFilePath","convertOntologyToValueTypeIr","ontology","valueTypes","convertValueTypesToIr","map","definitions","metadata","packageNamespace","displayMetadata","status","versions","Array","from","Map","definition","version","baseType","constraints","exampleValues","convertToWireBlockData","importedOntology","importedValueTypes","objectTypes","fromEntries","objectType","convertObject","sharedPropertyTypes","spt","sharedPropertyType","convertSpt","interfaceTypes","interfaceType","convertInterface","linkTypes","id","link","convertLink","actionTypes","action","convertAction","blockPermissionInformation","filter","validation","restrictionStatus","hasRolesApplied","ontologyPackageRid","publicProject","propertyDatasources","properties","flatMap","prop","extractPropertyDatasource","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","reduce","l","r","mandatoryInputGroup","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","description","displayName","groupDisplayName","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","propertyTypes","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","propertiesV2","propertyMapping","mapping","addNamespaceIfNone","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","dataSecurity","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","restrictedViewV2","restrictedViewRid","buildPropertyMapping","datasetV2","datasetRid","markingType","markingInputGroupName","editOnly","structMapping","struct","column","keys","structDefinition","fieldName","mappings","typeClasses","process","env","NODE_ENV","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","array","subtype","inlineAction","dataConstraints","valueType","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","convertCardinality","cardinality","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","cleanAndValidateLinkTypeId","active","step1","linkTypeId","toLowerCase","test","Error","other","required","extendsInterfaces","i","propertiesV3","dumpOntologyFullMetadata","dumpValueTypeWireType","gothamMapping","nullability","dataConstraint","aliases","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","parameterOrdering","parameters","p","actionType","actionTypeLogic","logic","rules","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","successMessage","submissionMetadata","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","defaultVisibility","defaultValue","prefill","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","conditionalOverrides","override","sectionValidations","sectionId","section","defaultDisplayMetadata","hidden","visible","parameterId","collapsedByDefault","columnCount","showTitleBar","style","box","minimal","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","datetime","objectTypeReference","interfaceTypeRids","geotimeSeriesReference","k","parameter","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","notRequired","listLength","listLengthValidation","sanitize","s","includes","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith"],"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 OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrActionValidation,\n OntologyIrAllowedParameterValues,\n OntologyIrBaseParameterType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrMarketplaceInterfaceType,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOneToManyLinkDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n ParameterId,\n ParameterRenderHint,\n ParameterRequiredConfiguration,\n PropertyTypeMappingInfo,\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 { convertToDisplayName, isExotic } from \"./defineObject.js\";\nimport {\n convertActionParameterConditionalOverride,\n convertActionVisibility,\n convertSectionConditionalOverride,\n getFormContentOrdering,\n} from \"./ontologyUtils.js\";\nimport {\n convertNullabilityToDataConstraint,\n convertType,\n convertValueType,\n convertValueTypeDataConstraints,\n defaultTypeClasses,\n getPropertyTypeName,\n hasRenderHints,\n shouldNotHaveRenderHints,\n} from \"./propertyConversionUtils.js\";\nimport type {\n ActionParameter,\n ActionParameterAllowedValues,\n ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n ObjectPropertyType,\n ObjectType,\n OneToManyLinkTypeDefinition,\n OntologyDefinition,\n OntologyEntityType,\n SharedPropertyType,\n ValueTypeDefinitionVersion,\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// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\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 | undefined,\n dependencyFile?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\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 if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n return convertToWireOntologyIr(ontologyDefinition);\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}.ts\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + 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: convertValueTypesToIr(\n ontology[OntologyEntityTypeEnum.VALUE_TYPE],\n ),\n };\n}\n\nfunction convertValueTypesToIr(\n valueTypes: Record<string, ValueTypeDefinitionVersion[]>,\n) {\n return Object.values(valueTypes).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n packageNamespace: definitions[0].packageNamespace,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n // TODO(dpaquin): instead of deduping here, we should refactor the value type types from arrays to maps\n versions: Array.from(\n new Map(definitions.map(definition => [definition.version, definition]))\n .values(),\n ).map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n }));\n}\n\nfunction convertToWireOntologyIr(\n ontology: OntologyDefinition,\n): OntologyIr {\n return {\n ontology: convertToWireBlockData(ontology),\n importedOntology: convertToWireBlockData(importedTypes),\n valueTypes: convertOntologyToValueTypeIr(ontology),\n importedValueTypes: convertOntologyToValueTypeIr(importedTypes),\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 classificationGroupMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"CBAC\",\n );\n\n const mandatoryMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"MANDATORY\",\n );\n\n const classificationInputGroup = classificationGroupMarkingNames.length > 0\n ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0\n ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\n classificationInputGroup,\n mandatoryInputGroup,\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 linksV2: {},\n propertiesV2: {},\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [addNamespaceIfNone(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 classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\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 \"restrictedView\":\n return {\n type: \"restrictedViewV2\",\n restrictedViewV2: {\n restrictedViewRid: objectType.apiName,\n propertyMapping: buildPropertyMapping(properties),\n },\n };\n case \"dataset\":\n default:\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: buildPropertyMapping(properties),\n },\n };\n }\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nfunction extractMarkingGroups(\n properties: ObjectPropertyType[],\n markingType: \"CBAC\" | \"MANDATORY\",\n): string[] {\n return properties\n .map(prop => {\n if (\n typeof prop.type === \"object\"\n && prop.type.type === \"marking\"\n && prop.type.markingType === markingType\n ) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n })\n .filter((val): val is string => val !== undefined);\n}\n\nfunction buildPropertyMapping(\n properties: ObjectPropertyType[],\n): Record<string, PropertyTypeMappingInfo> {\n return Object.fromEntries(\n properties.map((prop) => {\n // editOnly\n if (prop.editOnly) {\n return [prop.apiName, { type: \"editOnly\", editOnly: {} }];\n }\n // structs\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.keys(prop.type.structDefinition).map((fieldName) => [\n fieldName,\n { apiName: fieldName, mappings: {} },\n ]),\n ),\n },\n };\n return [prop.apiName, structMapping];\n }\n // default: column mapping\n return [prop.apiName, { type: \"column\", column: prop.apiName }];\n }),\n );\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: property.array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(property.type),\n },\n }\n : convertType(property.type),\n typeClasses: property.typeClasses\n ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType\n ? convertValueTypeDataConstraints(property.valueType.constraints)\n : convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: property.valueType\n ? convertValueType(property.valueType)\n : 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: convertCardinality(linkType.cardinality),\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.toMany.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: cleanAndValidateLinkTypeId(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 cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrMarketplaceInterfaceType {\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 displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description,\n },\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n // TODO(mwalther): Support propertiesV3\n propertiesV3: {},\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 === undefined ? undefined : {\n apiName: valueType.apiName,\n version: valueType.version,\n packageNamespace: valueType.packageNamespace,\n displayMetadata: valueType.displayMetadata,\n },\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 const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\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: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? 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: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\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 entities: action.entities,\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: convertActionVisibility(\n p.validation.defaultVisibility,\n ),\n ...p.defaultValue\n && { prefill: p.defaultValue },\n },\n validation: {\n allowedValues: extractAllowedValues(\n p.validation.allowedValues!,\n ),\n required: convertParameterRequirementConstraint(\n p.validation.required!,\n ),\n },\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(\n (override) =>\n convertActionParameterConditionalOverride(\n override,\n p.validation,\n ),\n ) ?? [],\n },\n ];\n }),\n ),\n sectionValidations: {\n ...Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, section],\n ) => [\n section.id,\n {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\"\n ? {\n visibility: {\n type: \"hidden\",\n hidden: {},\n },\n }\n : {\n visibility: {\n type: \"visible\",\n visible: {},\n },\n },\n conditionalOverrides: section.conditionalOverrides?.map(\n (override) =>\n convertSectionConditionalOverride(\n override,\n section.defaultVisibility ?? \"visible\",\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, section],\n ) => [sectionId, {\n id: sectionId,\n content: section.parameters.map(p => ({\n type: \"parameterId\",\n parameterId: p,\n })),\n displayMetadata: {\n collapsedByDefault: section.collapsedByDefault ?? false,\n columnCount: section.columnCount ?? 1,\n description: section.description ?? \"\",\n displayName: section.displayName ?? convertToDisplayName(sectionId),\n showTitleBar: section.showTitleBar ?? true,\n ...section.style\n && {\n style: section.style === \"box\"\n ? { type: \"box\", box: {} }\n : { type: \"minimal\", minimal: {} },\n },\n },\n }]),\n );\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = 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 } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = 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: 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 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\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\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n\nfunction convertCardinality(\n cardinality: OneToManyLinkTypeDefinition[\"cardinality\"],\n): OntologyIrOneToManyLinkDefinition[\"cardinalityHint\"] {\n if (cardinality === \"OneToMany\" || cardinality === undefined) {\n return \"ONE_TO_MANY\";\n }\n return \"ONE_TO_ONE\";\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineOntology.js","names":["fs","path","invariant","convertToDisplayName","isExotic","convertActionParameterConditionalOverride","convertActionVisibility","convertSectionConditionalOverride","getFormContentOrdering","convertNullabilityToDataConstraint","convertType","convertValueType","convertValueTypeDataConstraints","defaultTypeClasses","getPropertyTypeName","hasRenderHints","shouldNotHaveRenderHints","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","convertToWireOntologyIr","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","dependencyInjectionString","mainIndexFilePath","convertOntologyToValueTypeIr","ontology","valueTypes","convertValueTypesToIr","map","definitions","metadata","packageNamespace","displayMetadata","status","versions","Array","from","Map","definition","version","baseType","constraints","exampleValues","convertToWireBlockData","importedOntology","importedValueTypes","objectTypes","fromEntries","objectType","convertObject","sharedPropertyTypes","spt","sharedPropertyType","convertSpt","interfaceTypes","interfaceType","convertInterface","linkTypes","id","link","convertLink","actionTypes","action","convertAction","blockPermissionInformation","filter","validation","restrictionStatus","hasRolesApplied","ontologyPackageRid","publicProject","propertyDatasources","properties","flatMap","prop","extractPropertyDatasource","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","reduce","l","r","mandatoryInputGroup","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","description","displayName","groupDisplayName","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","propertyTypes","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","propertiesV2","propertyMapping","mapping","addNamespaceIfNone","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","dataSecurity","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","restrictedViewV2","restrictedViewRid","buildPropertyMapping","datasetV2","datasetRid","markingType","markingInputGroupName","editOnly","structMapping","struct","column","keys","structDefinition","fieldName","mappings","typeClasses","process","env","NODE_ENV","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","array","subtype","inlineAction","dataConstraints","valueType","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","convertCardinality","cardinality","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","cleanAndValidateLinkTypeId","active","step1","linkTypeId","toLowerCase","test","Error","other","required","extendsInterfaces","i","propertiesV3","dumpOntologyFullMetadata","dumpValueTypeWireType","gothamMapping","nullability","dataConstraint","aliases","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","parameterOrdering","parameters","p","actionType","actionTypeLogic","logic","rules","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","successMessage","submissionMetadata","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","defaultVisibility","defaultValue","prefill","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","conditionalOverrides","override","sectionValidations","sectionId","section","defaultDisplayMetadata","hidden","visible","parameterId","collapsedByDefault","columnCount","showTitleBar","style","box","minimal","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","datetime","objectTypeReference","interfaceTypeRids","geotimeSeriesReference","k","parameter","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","notRequired","listLength","listLengthValidation","sanitize","s","includes","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith"],"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 OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrActionValidation,\n OntologyIrAllowedParameterValues,\n OntologyIrBaseParameterType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrMarketplaceInterfaceType,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOneToManyLinkDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n ParameterId,\n ParameterRenderHint,\n ParameterRequiredConfiguration,\n PropertyTypeMappingInfo,\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 { convertToDisplayName, isExotic } from \"./defineObject.js\";\nimport {\n convertActionParameterConditionalOverride,\n convertActionVisibility,\n convertSectionConditionalOverride,\n getFormContentOrdering,\n} from \"./ontologyUtils.js\";\nimport {\n convertNullabilityToDataConstraint,\n convertType,\n convertValueType,\n convertValueTypeDataConstraints,\n defaultTypeClasses,\n getPropertyTypeName,\n hasRenderHints,\n shouldNotHaveRenderHints,\n} from \"./propertyConversionUtils.js\";\nimport type {\n ActionParameter,\n ActionParameterAllowedValues,\n ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n ObjectPropertyType,\n ObjectType,\n OneToManyLinkTypeDefinition,\n OntologyDefinition,\n OntologyEntityType,\n SharedPropertyType,\n ValueTypeDefinitionVersion,\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// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\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 | undefined,\n dependencyFile?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\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 if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n return convertToWireOntologyIr(ontologyDefinition);\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 = dependencyInjectionString()\n + 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: convertValueTypesToIr(\n ontology[OntologyEntityTypeEnum.VALUE_TYPE],\n ),\n };\n}\n\nfunction convertValueTypesToIr(\n valueTypes: Record<string, ValueTypeDefinitionVersion[]>,\n) {\n return Object.values(valueTypes).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n packageNamespace: definitions[0].packageNamespace,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n // TODO(dpaquin): instead of deduping here, we should refactor the value type types from arrays to maps\n versions: Array.from(\n new Map(definitions.map(definition => [definition.version, definition]))\n .values(),\n ).map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n }));\n}\n\nfunction convertToWireOntologyIr(\n ontology: OntologyDefinition,\n): OntologyIr {\n return {\n ontology: convertToWireBlockData(ontology),\n importedOntology: convertToWireBlockData(importedTypes),\n valueTypes: convertOntologyToValueTypeIr(ontology),\n importedValueTypes: convertOntologyToValueTypeIr(importedTypes),\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 classificationGroupMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"CBAC\",\n );\n\n const mandatoryMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"MANDATORY\",\n );\n\n const classificationInputGroup = classificationGroupMarkingNames.length > 0\n ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0\n ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\n classificationInputGroup,\n mandatoryInputGroup,\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 linksV2: {},\n propertiesV2: {},\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [addNamespaceIfNone(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 classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\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 \"restrictedView\":\n return {\n type: \"restrictedViewV2\",\n restrictedViewV2: {\n restrictedViewRid: objectType.apiName,\n propertyMapping: buildPropertyMapping(properties),\n },\n };\n case \"dataset\":\n default:\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: buildPropertyMapping(properties),\n },\n };\n }\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nfunction extractMarkingGroups(\n properties: ObjectPropertyType[],\n markingType: \"CBAC\" | \"MANDATORY\",\n): string[] {\n return properties\n .map(prop => {\n if (\n typeof prop.type === \"object\"\n && prop.type.type === \"marking\"\n && prop.type.markingType === markingType\n ) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n })\n .filter((val): val is string => val !== undefined);\n}\n\nfunction buildPropertyMapping(\n properties: ObjectPropertyType[],\n): Record<string, PropertyTypeMappingInfo> {\n return Object.fromEntries(\n properties.map((prop) => {\n // editOnly\n if (prop.editOnly) {\n return [prop.apiName, { type: \"editOnly\", editOnly: {} }];\n }\n // structs\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.keys(prop.type.structDefinition).map((fieldName) => [\n fieldName,\n { apiName: fieldName, mappings: {} },\n ]),\n ),\n },\n };\n return [prop.apiName, structMapping];\n }\n // default: column mapping\n return [prop.apiName, { type: \"column\", column: prop.apiName }];\n }),\n );\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: property.array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(property.type),\n },\n }\n : convertType(property.type),\n typeClasses: property.typeClasses\n ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType\n ? convertValueTypeDataConstraints(property.valueType.constraints)\n : convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: property.valueType\n ? convertValueType(property.valueType)\n : 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: convertCardinality(linkType.cardinality),\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.toMany.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: cleanAndValidateLinkTypeId(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 cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrMarketplaceInterfaceType {\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 displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description,\n },\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n // TODO(mwalther): Support propertiesV3\n propertiesV3: {},\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 === undefined ? undefined : {\n apiName: valueType.apiName,\n version: valueType.version,\n packageNamespace: valueType.packageNamespace,\n displayMetadata: valueType.displayMetadata,\n },\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 const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\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: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? 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: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\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 entities: action.entities,\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: convertActionVisibility(\n p.validation.defaultVisibility,\n ),\n ...p.defaultValue\n && { prefill: p.defaultValue },\n },\n validation: {\n allowedValues: extractAllowedValues(\n p.validation.allowedValues!,\n ),\n required: convertParameterRequirementConstraint(\n p.validation.required!,\n ),\n },\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(\n (override) =>\n convertActionParameterConditionalOverride(\n override,\n p.validation,\n ),\n ) ?? [],\n },\n ];\n }),\n ),\n sectionValidations: {\n ...Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, section],\n ) => [\n section.id,\n {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\"\n ? {\n visibility: {\n type: \"hidden\",\n hidden: {},\n },\n }\n : {\n visibility: {\n type: \"visible\",\n visible: {},\n },\n },\n conditionalOverrides: section.conditionalOverrides?.map(\n (override) =>\n convertSectionConditionalOverride(\n override,\n section.defaultVisibility ?? \"visible\",\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, section],\n ) => [sectionId, {\n id: sectionId,\n content: section.parameters.map(p => ({\n type: \"parameterId\",\n parameterId: p,\n })),\n displayMetadata: {\n collapsedByDefault: section.collapsedByDefault ?? false,\n columnCount: section.columnCount ?? 1,\n description: section.description ?? \"\",\n displayName: section.displayName ?? convertToDisplayName(sectionId),\n showTitleBar: section.showTitleBar ?? true,\n ...section.style\n && {\n style: section.style === \"box\"\n ? { type: \"box\", box: {} }\n : { type: \"minimal\", minimal: {} },\n },\n },\n }]),\n );\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = 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 } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = 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: 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 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\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\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n\nfunction convertCardinality(\n cardinality: OneToManyLinkTypeDefinition[\"cardinality\"],\n): OntologyIrOneToManyLinkDefinition[\"cardinalityHint\"] {\n if (cardinality === \"OneToMany\" || cardinality === undefined) {\n return \"ONE_TO_MANY\";\n }\n return \"ONE_TO_ONE\";\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ import { hideBin } from "yargs/helpers";
|
|
|
23
23
|
import { defineOntology } from "../api/defineOntology.js";
|
|
24
24
|
const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
25
25
|
export default async function main(args = process.argv) {
|
|
26
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.13.0-beta.
|
|
26
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.13.0-beta.8" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
27
27
|
input: {
|
|
28
28
|
alias: "i",
|
|
29
29
|
describe: "Input file",
|
|
@@ -77,16 +77,10 @@ export default async function main(args = process.argv) {
|
|
|
77
77
|
consola.info(`Loading ontology from ${commandLineOpts.input}`);
|
|
78
78
|
const ontologyIr = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.outputDir, commandLineOpts.dependencies);
|
|
79
79
|
consola.info(`Saving ontology to ${commandLineOpts.output}`);
|
|
80
|
-
await fs.writeFile(commandLineOpts.output, JSON.stringify(
|
|
81
|
-
ontology: ontologyIr.ontology,
|
|
82
|
-
importedOntology: ontologyIr.importedOntology
|
|
83
|
-
}, null, 2));
|
|
80
|
+
await fs.writeFile(commandLineOpts.output, JSON.stringify(ontologyIr, null, 2));
|
|
84
81
|
// No point in generating block if there aren't any value types
|
|
85
82
|
if (ontologyIr.valueTypes.valueTypes.length > 0 || ontologyIr.importedValueTypes.valueTypes.length > 0) {
|
|
86
|
-
await fs.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(
|
|
87
|
-
valueTypes: ontologyIr.valueTypes,
|
|
88
|
-
importedValueTypes: ontologyIr.importedValueTypes
|
|
89
|
-
}, null, 2));
|
|
83
|
+
await fs.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(ontologyIr.valueTypes, null, 2));
|
|
90
84
|
}
|
|
91
85
|
}
|
|
92
86
|
async function loadOntology(input, apiNamespace, outputDir, dependencyFile) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineOntology","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","outputDir","valueTypesOutput","dependencies","parseAsync","length","slice","env","NODE_ENV","test","info","ontologyIr","loadOntology","writeFile","JSON","stringify","
|
|
1
|
+
{"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineOntology","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","outputDir","valueTypesOutput","dependencies","parseAsync","length","slice","env","NODE_ENV","test","info","ontologyIr","loadOntology","writeFile","JSON","stringify","valueTypes","importedValueTypes","dependencyFile","q"],"sources":["main.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 { consola } from \"consola\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntology } from \"../api/defineOntology.js\";\n\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\n\nexport default async function main(\n args: string[] = process.argv,\n): Promise<void> {\n const commandLineOpts: {\n input: string;\n output: string;\n apiNamespace: string;\n snapshotDir: string;\n valueTypesOutput: string;\n outputDir?: string;\n dependencies?: string;\n } = await yargs(hideBin(args))\n .version(process.env.PACKAGE_VERSION ?? \"\")\n .wrap(Math.min(150, yargs().terminalWidth()))\n .strict()\n .help()\n .options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve,\n },\n output: {\n alias: \"o\",\n describe: \"Output file\",\n type: \"string\",\n default: \"ontology.json\",\n coerce: path.resolve,\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\",\n },\n snapshotDir: {\n alias: \"s\",\n describe: \"Snapshot directory\",\n type: \"string\",\n default: \"snapshots\",\n coerce: path.resolve,\n },\n outputDir: {\n alias: \"d\",\n describe: \"Directory for generated ontology entities\",\n type: \"string\",\n coerce: path.resolve,\n },\n valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve,\n },\n dependencies: {\n describe: \"File to write dependencies to\",\n type: \"string\",\n coerce: path.resolve,\n },\n })\n .parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = (commandLineOpts.apiNamespace.slice(-1) !== \".\")\n ? commandLineOpts.apiNamespace + \".\"\n : commandLineOpts.apiNamespace;\n invariant(apiNamespace.length < 1024, \"API namespace is too long.\");\n invariant(\n apiNamespaceRegex.test(apiNamespace),\n \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\",\n );\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n\n const ontologyIr = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n commandLineOpts.outputDir,\n commandLineOpts.dependencies,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(\n ontologyIr,\n null,\n 2,\n ),\n );\n // No point in generating block if there aren't any value types\n if (\n ontologyIr.valueTypes.valueTypes.length > 0\n || ontologyIr.importedValueTypes.valueTypes.length > 0\n ) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(\n ontologyIr.valueTypes,\n null,\n 2,\n ),\n );\n }\n}\n\nasync function loadOntology(\n input: string,\n apiNamespace: string,\n outputDir: string | undefined,\n dependencyFile: string | undefined,\n) {\n const q = await defineOntology(\n apiNamespace,\n async () => await import(input),\n outputDir,\n dependencyFile,\n );\n return q;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -739,7 +739,7 @@ export const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFi
|
|
|
739
739
|
entityModuleNames.push(entityFileNameBase);
|
|
740
740
|
});
|
|
741
741
|
for (const entityModuleName of entityModuleNames) {
|
|
742
|
-
topLevelExportStatements.push(`export { ${entityModuleName} } from "./codegen/${typeDirName}/${entityModuleName}.
|
|
742
|
+
topLevelExportStatements.push(`export { ${entityModuleName} } from "./codegen/${typeDirName}/${entityModuleName}.js";`);
|
|
743
743
|
}
|
|
744
744
|
});
|
|
745
745
|
if (topLevelExportStatements.length > 0) {
|
|
@@ -1647,7 +1647,7 @@ function convertCardinality(cardinality) {
|
|
|
1647
1647
|
// src/cli/main.ts
|
|
1648
1648
|
var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
1649
1649
|
async function main(args = process.argv) {
|
|
1650
|
-
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.13.0-beta.
|
|
1650
|
+
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.13.0-beta.8").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
|
|
1651
1651
|
input: {
|
|
1652
1652
|
alias: "i",
|
|
1653
1653
|
describe: "Input file",
|
|
@@ -1701,15 +1701,9 @@ async function main(args = process.argv) {
|
|
|
1701
1701
|
consola.consola.info(`Loading ontology from ${commandLineOpts.input}`);
|
|
1702
1702
|
const ontologyIr = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.outputDir, commandLineOpts.dependencies);
|
|
1703
1703
|
consola.consola.info(`Saving ontology to ${commandLineOpts.output}`);
|
|
1704
|
-
await fs2__namespace.writeFile(commandLineOpts.output, JSON.stringify(
|
|
1705
|
-
ontology: ontologyIr.ontology,
|
|
1706
|
-
importedOntology: ontologyIr.importedOntology
|
|
1707
|
-
}, null, 2));
|
|
1704
|
+
await fs2__namespace.writeFile(commandLineOpts.output, JSON.stringify(ontologyIr, null, 2));
|
|
1708
1705
|
if (ontologyIr.valueTypes.valueTypes.length > 0 || ontologyIr.importedValueTypes.valueTypes.length > 0) {
|
|
1709
|
-
await fs2__namespace.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(
|
|
1710
|
-
valueTypes: ontologyIr.valueTypes,
|
|
1711
|
-
importedValueTypes: ontologyIr.importedValueTypes
|
|
1712
|
-
}, null, 2));
|
|
1706
|
+
await fs2__namespace.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(ontologyIr.valueTypes, null, 2));
|
|
1713
1707
|
}
|
|
1714
1708
|
}
|
|
1715
1709
|
async function loadOntology(input, apiNamespace, outputDir, dependencyFile) {
|