@osdk/maker 0.12.0-beta.2 → 0.12.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.12.0-beta.3
4
+
5
+ ### Minor Changes
6
+
7
+ - 988bf66: Use block data type for imports
8
+
9
+ ### Patch Changes
10
+
11
+ - @osdk/api@2.4.0-beta.3
12
+
3
13
  ## 0.12.0-beta.2
4
14
 
5
15
  ### Minor Changes
@@ -166,89 +166,7 @@ function convertOntologyToValueTypeIr(ontology) {
166
166
  function convertToWireOntologyIr(ontology) {
167
167
  return {
168
168
  blockData: convertToWireBlockData(ontology),
169
- importedTypes: convertToWireImportedTypes(importedTypes)
170
- };
171
- }
172
- function convertToWireImportedTypes(importedTypes) {
173
- const asBlockData = convertToWireBlockData(importedTypes); // this just makes things easier to work with
174
- return {
175
- sharedPropertyTypes: Object.values(asBlockData.sharedPropertyTypes).map(spt => ({
176
- apiName: spt.sharedPropertyType.apiName,
177
- displayName: spt.sharedPropertyType.displayMetadata.displayName,
178
- description: spt.sharedPropertyType.displayMetadata.description,
179
- type: spt.sharedPropertyType.type
180
- })),
181
- objectTypes: Object.values(asBlockData.objectTypes).map(ot => ({
182
- apiName: ot.objectType.apiName,
183
- displayName: ot.objectType.displayMetadata.displayName,
184
- description: ot.objectType.displayMetadata.description,
185
- propertyTypes: Object.values(ot.objectType.propertyTypes).map(p => ({
186
- apiName: p.apiName,
187
- displayName: p.displayMetadata.displayName,
188
- description: p.displayMetadata.description,
189
- type: p.type,
190
- sharedPropertyType: p.sharedPropertyTypeApiName
191
- }))
192
- })),
193
- interfaceTypes: Object.values(asBlockData.interfaceTypes).map(i => ({
194
- apiName: i.interfaceType.apiName,
195
- displayName: i.interfaceType.displayMetadata.displayName,
196
- description: i.interfaceType.displayMetadata.description,
197
- properties: Object.values(i.interfaceType.propertiesV2).map(p => ({
198
- apiName: p.sharedPropertyType.apiName,
199
- displayName: p.sharedPropertyType.displayMetadata.displayName,
200
- description: p.sharedPropertyType.displayMetadata.description,
201
- type: p.sharedPropertyType.type
202
- })),
203
- links: i.interfaceType.allLinks.map(l => ({
204
- apiName: l.metadata.apiName,
205
- displayName: l.metadata.displayName,
206
- description: l.metadata.description,
207
- cardinality: l.cardinality,
208
- required: l.required
209
- }))
210
- })),
211
- actionTypes: Object.values(asBlockData.actionTypes).map(a => ({
212
- apiName: a.actionType.metadata.apiName,
213
- displayName: a.actionType.metadata.displayMetadata.displayName,
214
- description: a.actionType.metadata.displayMetadata.description,
215
- parameters: Object.values(a.actionType.metadata.parameters).map(p => ({
216
- id: p.id,
217
- displayName: p.displayMetadata.displayName,
218
- description: p.displayMetadata.description,
219
- type: p.type
220
- }))
221
- })),
222
- linkTypes: Object.values(asBlockData.linkTypes).map(l => {
223
- if (l.linkType.definition.type === "oneToMany") {
224
- return {
225
- id: l.linkType.id,
226
- definition: {
227
- type: "oneToMany",
228
- "oneToMany": {
229
- objectTypeApiNameOneSide: l.linkType.definition.oneToMany.objectTypeRidOneSide,
230
- objectTypeApiNameManySide: l.linkType.definition.oneToMany.objectTypeRidManySide,
231
- manyToOneLinkDisplayName: l.linkType.definition.oneToMany.manyToOneLinkMetadata.displayMetadata.displayName,
232
- oneToManyLinkDisplayName: l.linkType.definition.oneToMany.oneToManyLinkMetadata.displayMetadata.displayName,
233
- cardinality: l.linkType.definition.oneToMany.cardinalityHint
234
- }
235
- }
236
- };
237
- } else {
238
- return {
239
- id: l.linkType.id,
240
- definition: {
241
- type: "manyToMany",
242
- "manyToMany": {
243
- objectTypeApiNameA: l.linkType.definition.manyToMany.objectTypeRidA,
244
- objectTypeApiNameB: l.linkType.definition.manyToMany.objectTypeRidB,
245
- objectTypeAToBLinkDisplayName: l.linkType.definition.manyToMany.objectTypeAToBLinkMetadata.displayMetadata.displayName,
246
- objectTypeBToALinkDisplayName: l.linkType.definition.manyToMany.objectTypeBToALinkMetadata.displayMetadata.displayName
247
- }
248
- }
249
- };
250
- }
251
- })
169
+ importedTypes: convertToWireBlockData(importedTypes)
252
170
  };
253
171
  }
254
172
  function convertToWireBlockData(ontology) {
@@ -315,7 +233,9 @@ function convertObject(objectType) {
315
233
  interfaceTypeApiName: impl.implements.apiName,
316
234
  properties: Object.fromEntries(impl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), {
317
235
  propertyTypeRid: mapping.mapsTo
318
- }]))
236
+ }])),
237
+ propertiesV2: {},
238
+ linksV2: {}
319
239
  })),
320
240
  allImplementsInterfaces: {}
321
241
  },
@@ -588,16 +508,16 @@ function convertInterface(interfaceType) {
588
508
  required: spt.required,
589
509
  sharedPropertyType: convertSpt(spt.sharedPropertyType)
590
510
  }])),
511
+ displayMetadata: {
512
+ displayName: interfaceType.displayMetadata.displayName,
513
+ description: interfaceType.displayMetadata.description
514
+ },
591
515
  extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),
592
516
  // these are omitted from our internal types but we need to re-add them for the final json
593
- allExtendsInterfaces: [],
594
- allLinks: [],
595
- allProperties: [],
596
- allPropertiesV2: {},
517
+ links: [],
518
+ properties: [],
597
519
  // TODO(mwalther): Support propertiesV3
598
- propertiesV3: {},
599
- allPropertiesV3: {},
600
- properties: []
520
+ propertiesV3: {}
601
521
  };
602
522
  }
603
523
  export function dumpOntologyFullMetadata() {
@@ -1 +1 @@
1
- {"version":3,"file":"defineOntology.js","names":["fs","path","invariant","isExotic","convertActionParameterConditionalOverride","convertActionVisibility","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","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","valueTypes","map","definitions","metadata","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","convertToWireBlockData","convertToWireImportedTypes","asBlockData","sharedPropertyTypes","spt","sharedPropertyType","displayName","description","type","objectTypes","ot","objectType","propertyTypes","p","sharedPropertyTypeApiName","interfaceTypes","i","interfaceType","properties","propertiesV2","links","allLinks","l","cardinality","required","actionTypes","a","actionType","parameters","id","linkTypes","linkType","objectTypeApiNameOneSide","oneToMany","objectTypeRidOneSide","objectTypeApiNameManySide","objectTypeRidManySide","manyToOneLinkDisplayName","manyToOneLinkMetadata","oneToManyLinkDisplayName","oneToManyLinkMetadata","cardinalityHint","objectTypeApiNameA","manyToMany","objectTypeRidA","objectTypeApiNameB","objectTypeRidB","objectTypeAToBLinkDisplayName","objectTypeAToBLinkMetadata","objectTypeBToALinkDisplayName","objectTypeBToALinkMetadata","fromEntries","convertObject","convertSpt","convertInterface","link","convertLink","action","convertAction","blockPermissionInformation","filter","validation","restrictionStatus","hasRolesApplied","ontologyPackageRid","publicProject","propertyDatasources","flatMap","prop","extractPropertyDatasource","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","addNamespaceIfNone","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","restrictedViewV2","restrictedViewRid","buildPropertyMapping","datasetV2","datasetRid","editOnly","structMapping","struct","column","keys","structDefinition","fieldName","mappings","typeClasses","process","env","NODE_ENV","output","indexedForSearch","ruleSetBinding","baseFormatter","array","subtype","inlineAction","dataConstraints","sharedPropertyTypeRid","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","cleanAndValidateLinkTypeId","active","step1","linkTypeId","toLowerCase","test","Error","other","extendsInterfaces","allExtendsInterfaces","allProperties","allPropertiesV2","propertiesV3","allPropertiesV3","dumpOntologyFullMetadata","dumpValueTypeWireType","gothamMapping","nullability","dataConstraint","aliases","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","actionTypeLogic","logic","rules","configuration","defaultLayout","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","successMessage","formContentOrdering","parameterOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","defaultVisibility","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","conditionalOverrides","override","sectionId","parameterIds","parameterId","collapsedByDefault","columnCount","showTitleBar","parameter","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","minimumLength","maximumLength","datetime","objectTypeReference","interfaceTypeRids","geotimeSeriesReference","k","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 OntologyIrImportedTypes,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n 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 { isExotic } from \"./defineObject.js\";\nimport {\n convertActionParameterConditionalOverride,\n convertActionVisibility,\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 ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n ObjectPropertyType,\n ObjectType,\n OntologyDefinition,\n OntologyEntityType,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n): Promise<OntologyAndValueTypeIrs> {\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 {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = 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: Object.values(ontology[OntologyEntityTypeEnum.VALUE_TYPE]).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n })),\n };\n}\n\nfunction convertToWireOntologyIr(\n ontology: OntologyDefinition,\n): OntologyIr {\n return {\n blockData: convertToWireBlockData(ontology),\n importedTypes: convertToWireImportedTypes(importedTypes),\n };\n}\n\nfunction convertToWireImportedTypes(\n importedTypes: OntologyDefinition,\n): OntologyIrImportedTypes {\n const asBlockData = convertToWireBlockData(importedTypes); // this just makes things easier to work with\n return {\n sharedPropertyTypes: Object.values(asBlockData.sharedPropertyTypes).map(\n spt => ({\n apiName: spt.sharedPropertyType.apiName,\n displayName: spt.sharedPropertyType.displayMetadata.displayName,\n description: spt.sharedPropertyType.displayMetadata.description,\n type: spt.sharedPropertyType.type,\n }),\n ),\n objectTypes: Object.values(\n asBlockData.objectTypes,\n ).map(ot => ({\n apiName: ot.objectType.apiName,\n displayName: ot.objectType.displayMetadata.displayName,\n description: ot.objectType.displayMetadata.description,\n propertyTypes: Object.values(ot.objectType.propertyTypes).map(p => ({\n apiName: p.apiName,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n sharedPropertyType: p.sharedPropertyTypeApiName,\n })),\n })),\n interfaceTypes: Object.values(asBlockData.interfaceTypes).map(i => ({\n apiName: i.interfaceType.apiName,\n displayName: i.interfaceType.displayMetadata.displayName,\n description: i.interfaceType.displayMetadata.description,\n properties: Object.values(i.interfaceType.propertiesV2).map(p => ({\n apiName: p.sharedPropertyType.apiName,\n displayName: p.sharedPropertyType.displayMetadata.displayName,\n description: p.sharedPropertyType.displayMetadata.description,\n type: p.sharedPropertyType.type,\n })),\n links: i.interfaceType.allLinks.map(l => ({\n apiName: l.metadata.apiName,\n displayName: l.metadata.displayName,\n description: l.metadata.description,\n cardinality: l.cardinality,\n required: l.required,\n })),\n })),\n actionTypes: Object.values(asBlockData.actionTypes).map(a => ({\n apiName: a.actionType.metadata.apiName,\n displayName: a.actionType.metadata.displayMetadata.displayName,\n description: a.actionType.metadata.displayMetadata.description,\n parameters: Object.values(a.actionType.metadata.parameters).map(p => ({\n id: p.id,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n })),\n })),\n linkTypes: Object.values(asBlockData.linkTypes).map(l => {\n if (l.linkType.definition.type === \"oneToMany\") {\n return {\n id: l.linkType.id,\n definition: {\n type: \"oneToMany\",\n \"oneToMany\": {\n objectTypeApiNameOneSide:\n l.linkType.definition.oneToMany.objectTypeRidOneSide,\n objectTypeApiNameManySide:\n l.linkType.definition.oneToMany.objectTypeRidManySide,\n manyToOneLinkDisplayName:\n l.linkType.definition.oneToMany.manyToOneLinkMetadata\n .displayMetadata.displayName,\n oneToManyLinkDisplayName:\n l.linkType.definition.oneToMany.oneToManyLinkMetadata\n .displayMetadata.displayName,\n cardinality: l.linkType.definition.oneToMany.cardinalityHint,\n },\n },\n };\n } else {\n return {\n id: l.linkType.id,\n definition: {\n type: \"manyToMany\",\n \"manyToMany\": {\n objectTypeApiNameA:\n l.linkType.definition.manyToMany.objectTypeRidA,\n objectTypeApiNameB:\n l.linkType.definition.manyToMany.objectTypeRidB,\n objectTypeAToBLinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeAToBLinkMetadata\n .displayMetadata.displayName,\n objectTypeBToALinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeBToALinkMetadata\n .displayMetadata.displayName,\n },\n },\n };\n }\n }),\n };\n}\n\nfunction convertToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE])\n .filter(([apiName, action]) => action.validation)\n .map<\n [string, ActionTypePermissionInformation]\n >(([apiName, action]) => {\n return [apiName, {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null,\n publicProject: false,\n },\n }];\n }),\n ),\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\n );\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertProperty(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [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): OntologyIrObjectTypeDatasource {\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n });\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n properties: ObjectPropertyType[],\n): OntologyIrObjectTypeDatasourceDefinition {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy: RetentionPolicy = window\n ? { type: \"time\", time: { window } }\n : { type: \"none\", none: {} };\n const propertyMapping = Object.fromEntries(\n properties.map((\n prop,\n ) => [prop.apiName, prop.apiName]),\n );\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: objectType.apiName,\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined,\n },\n };\n case \"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\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: \"ONE_TO_MANY\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeyPropertyApiName,\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: 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): OntologyIrInterfaceType {\n const { __type, ...other } = interfaceType;\n return {\n ...other,\n propertiesV2: Object.fromEntries(\n Object.values(interfaceType.propertiesV2)\n .map((\n spt,\n ) => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType),\n }]),\n ),\n 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 allExtendsInterfaces: [],\n allLinks: [],\n allProperties: [],\n allPropertiesV2: {},\n // TODO(mwalther): Support propertiesV3\n propertiesV3: {},\n allPropertiesV3: {},\n properties: [],\n };\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertToWireOntologyIr(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nfunction convertSpt(\n {\n type,\n array,\n description,\n apiName,\n displayName,\n visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = convertNullabilityToDataConstraint({ type, nullability });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: visibility ?? \"NORMAL\",\n description,\n },\n type: array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(type),\n },\n }\n : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n typeClasses: typeClasses ?? [],\n valueType: valueType,\n };\n}\n\nfunction convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nfunction convertAction(action: ActionType): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? [],\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n 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 },\n validation: {\n allowedValues: extractAllowedValues(p),\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 };\n}\n\nfunction convertActionParameters(\n action: ActionType,\n): Record<ParameterId, OntologyIrParameter> {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: (typeof p.type === \"string\"\n ? { type: p.type, [p.type]: {} }\n : p.type) as OntologyIrBaseParameterType,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: [],\n },\n }]));\n}\n\nfunction convertActionSections(\n action: ActionType,\n): Record<SectionId, OntologyIrSection> {\n return Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, parameterIds],\n ) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({ type: \"parameterId\", parameterId: p })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true,\n },\n }]),\n );\n}\n\nfunction extractAllowedValues(\n parameter: ActionParameter,\n): OntologyIrAllowedParameterValues {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: { allowed: false },\n },\n },\n };\n case \"range\":\n const { min, max } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } =\n parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minimumLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maximumLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids:\n parameter.validation.allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nfunction renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nfunction convertParameterRequirementConstraint(\n required: ActionParameterRequirementConstraint,\n): ParameterRequiredConfiguration {\n if (typeof required === \"boolean\") {\n return required\n ? { type: \"required\", required: {} }\n : { type: \"notRequired\", notRequired: {} };\n }\n const { min, max } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: { minLength: min, maxLength: max },\n };\n}\n\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\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineOntology.js","names":["fs","path","invariant","isExotic","convertActionParameterConditionalOverride","convertActionVisibility","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","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","valueTypes","map","definitions","metadata","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","convertToWireBlockData","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","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","propertyMapping","mapping","addNamespaceIfNone","interfaceProperty","propertyTypeRid","mapsTo","propertiesV2","linksV2","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","restrictedViewV2","restrictedViewRid","buildPropertyMapping","datasetV2","datasetRid","editOnly","structMapping","struct","column","keys","structDefinition","fieldName","mappings","typeClasses","process","env","NODE_ENV","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","array","subtype","inlineAction","dataConstraints","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","cleanAndValidateLinkTypeId","active","step1","linkTypeId","toLowerCase","test","Error","other","required","extendsInterfaces","i","links","propertiesV3","dumpOntologyFullMetadata","dumpValueTypeWireType","gothamMapping","nullability","dataConstraint","aliases","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","actionType","actionTypeLogic","logic","rules","configuration","defaultLayout","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","successMessage","formContentOrdering","parameterOrdering","parameters","p","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","defaultVisibility","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","conditionalOverrides","override","sectionId","parameterIds","parameterId","collapsedByDefault","columnCount","showTitleBar","parameter","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","minimumLength","maximumLength","datetime","objectTypeReference","interfaceTypeRids","geotimeSeriesReference","k","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 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 { isExotic } from \"./defineObject.js\";\nimport {\n convertActionParameterConditionalOverride,\n convertActionVisibility,\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 ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n ObjectPropertyType,\n ObjectType,\n OntologyDefinition,\n OntologyEntityType,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n): Promise<OntologyAndValueTypeIrs> {\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 {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = 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: Object.values(ontology[OntologyEntityTypeEnum.VALUE_TYPE]).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n })),\n };\n}\n\nfunction convertToWireOntologyIr(\n ontology: OntologyDefinition,\n): OntologyIr {\n return {\n blockData: convertToWireBlockData(ontology),\n importedTypes: convertToWireBlockData(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 objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\n );\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertProperty(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [addNamespaceIfNone(mapping.interfaceProperty), {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n propertiesV2: {},\n linksV2: {},\n })),\n allImplementsInterfaces: {},\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n): OntologyIrObjectTypeDatasource {\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n });\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n properties: ObjectPropertyType[],\n): OntologyIrObjectTypeDatasourceDefinition {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy: RetentionPolicy = window\n ? { type: \"time\", time: { window } }\n : { type: \"none\", none: {} };\n const propertyMapping = Object.fromEntries(\n properties.map((\n prop,\n ) => [prop.apiName, prop.apiName]),\n );\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: objectType.apiName,\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined,\n },\n };\n case \"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\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: \"ONE_TO_MANY\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeyPropertyApiName,\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: 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 links: [],\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,\n };\n}\n\nfunction convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nfunction convertAction(action: ActionType): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? [],\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n 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 },\n validation: {\n allowedValues: extractAllowedValues(p),\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 };\n}\n\nfunction convertActionParameters(\n action: ActionType,\n): Record<ParameterId, OntologyIrParameter> {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: (typeof p.type === \"string\"\n ? { type: p.type, [p.type]: {} }\n : p.type) as OntologyIrBaseParameterType,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: [],\n },\n }]));\n}\n\nfunction convertActionSections(\n action: ActionType,\n): Record<SectionId, OntologyIrSection> {\n return Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, parameterIds],\n ) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({ type: \"parameterId\", parameterId: p })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true,\n },\n }]),\n );\n}\n\nfunction extractAllowedValues(\n parameter: ActionParameter,\n): OntologyIrAllowedParameterValues {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: { allowed: false },\n },\n },\n };\n case \"range\":\n const { min, max } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } =\n parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minimumLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maximumLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids:\n parameter.validation.allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nfunction renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nfunction convertParameterRequirementConstraint(\n required: ActionParameterRequirementConstraint,\n): ParameterRequiredConfiguration {\n if (typeof required === \"boolean\") {\n return required\n ? { type: \"required\", required: {} }\n : { type: \"notRequired\", notRequired: {} };\n }\n const { min, max } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: { minLength: min, maxLength: max },\n };\n}\n\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\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"],"mappings":"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","ignoreList":[]}