@osdk/maker 0.12.0-beta.8 → 0.12.0-beta.9

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +88 -62
  3. package/build/browser/api/defineAction.js +91 -78
  4. package/build/browser/api/defineAction.js.map +1 -1
  5. package/build/browser/api/defineLink.js +2 -2
  6. package/build/browser/api/defineLink.js.map +1 -1
  7. package/build/browser/api/defineObject.js +6 -2
  8. package/build/browser/api/defineObject.js.map +1 -1
  9. package/build/browser/api/defineOntology.js +2 -2
  10. package/build/browser/api/defineOntology.js.map +1 -1
  11. package/build/browser/api/overall.test.js +1123 -452
  12. package/build/browser/api/overall.test.js.map +1 -1
  13. package/build/browser/api/types.js.map +1 -1
  14. package/build/browser/cli/main.js +1 -1
  15. package/build/browser/index.js.map +1 -1
  16. package/build/cjs/index.cjs +100 -84
  17. package/build/cjs/index.cjs.map +1 -1
  18. package/build/cjs/index.d.cts +23 -14
  19. package/build/esm/api/defineAction.js +91 -78
  20. package/build/esm/api/defineAction.js.map +1 -1
  21. package/build/esm/api/defineLink.js +2 -2
  22. package/build/esm/api/defineLink.js.map +1 -1
  23. package/build/esm/api/defineObject.js +6 -2
  24. package/build/esm/api/defineObject.js.map +1 -1
  25. package/build/esm/api/defineOntology.js +2 -2
  26. package/build/esm/api/defineOntology.js.map +1 -1
  27. package/build/esm/api/overall.test.js +1123 -452
  28. package/build/esm/api/overall.test.js.map +1 -1
  29. package/build/esm/api/types.js.map +1 -1
  30. package/build/esm/cli/main.js +1 -1
  31. package/build/esm/index.js.map +1 -1
  32. package/build/types/api/defineAction.d.ts +6 -6
  33. package/build/types/api/defineAction.d.ts.map +1 -1
  34. package/build/types/api/defineObject.d.ts +2 -2
  35. package/build/types/api/defineObject.d.ts.map +1 -1
  36. package/build/types/api/types.d.ts +15 -6
  37. package/build/types/api/types.d.ts.map +1 -1
  38. package/build/types/index.d.ts +1 -1
  39. package/build/types/index.d.ts.map +1 -1
  40. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"defineLink.js","names":["invariant","convertToDisplayName","convertToPluralDisplayName","updateOntology","OntologyEntityTypeEnum","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","find","prop","apiName","manyForeignKeyProperty","undefined","process","env","NODE_ENV","test","typesMatch","type","one","primaryKeyPropertyApiName","fullLinkDefinition","convertUserOneToManyLinkDefinition","many","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport {\n convertToDisplayName,\n convertToPluralDisplayName,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.find(prop =>\n prop.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch =\n foreignKey.type === linkDefinition.one.object.properties?.find(prop =>\n prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n const fullLinkDefinition = \"one\" in linkDefinition\n ? {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n }\n : {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? convertToDisplayName(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineLink.js","names":["invariant","convertToDisplayName","convertToPluralDisplayName","updateOntology","OntologyEntityTypeEnum","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","fullLinkDefinition","convertUserOneToManyLinkDefinition","many","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport {\n convertToDisplayName,\n convertToPluralDisplayName,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n const fullLinkDefinition = \"one\" in linkDefinition\n ? {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n }\n : {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? convertToDisplayName(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -73,7 +73,7 @@ export function defineObject(objectDef) {
73
73
  const allFailedValidations = validations.concat(nonExistentInterfaceProperties).filter(val => val.type === "invalid");
74
74
  !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== "production" ? invariant(false, "\n" + allFailedValidations.map(formatValidationErrors).join("\n")) : invariant(false) : void 0;
75
75
  });
76
- const flattenedProperties = Object.entries(objectDef.properties ?? {}).map(([apiName, property]) => convertUserObjectPropertyType(apiName, property));
76
+ const flattenedProperties = Object.entries(objectDef.properties ?? {}).map(([apiName, property]) => convertUserObjectPropertyType(property.apiName ?? apiName, property));
77
77
  const finalObject = {
78
78
  ...objectDef,
79
79
  apiName: apiName,
@@ -81,7 +81,8 @@ export function defineObject(objectDef) {
81
81
  properties: flattenedProperties
82
82
  };
83
83
  updateOntology(finalObject);
84
- return finalObject;
84
+ objectDef.apiName = apiName;
85
+ return objectDef;
85
86
  }
86
87
  export function isExotic(type) {
87
88
  if (type === undefined) {
@@ -136,6 +137,9 @@ export function getAllInterfaceProperties(interfaceType) {
136
137
  return properties;
137
138
  }
138
139
  function convertUserObjectPropertyType(apiName, property) {
140
+ // fill in missing fields to be used by actions
141
+ property.apiName = apiName;
142
+ property.displayName = property.displayName ?? convertToDisplayName(apiName);
139
143
  return {
140
144
  ...property,
141
145
  apiName: apiName,
@@ -1 +1 @@
1
- {"version":3,"file":"defineObject.js","names":["invariant","addNamespaceIfNone","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","ISO_8601_DURATION","ISO_8601_DATETIME","defineObject","objectDef","apiName","propertyApiNames","properties","Object","keys","OBJECT_TYPE","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeyPropertyApiName","editOnly","retentionPeriod","datasource","test","status","activeProperties","entries","forEach","property","push","length","join","type","deadline","isExotic","implementsInterfaces","interfaceImpl","allInterfaceProperties","getAllInterfaceProperties","implements","nonExistentInterfaceProperties","propertyMapping","map","val","interfaceProperty","filter","interfaceProp","reason","interfaceToObjectProperties","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","validateInterfaceImplProperty","validations","allFailedValidations","concat","formatValidationErrors","flattenedProperties","convertUserObjectPropertyType","finalObject","__type","error","spt","mappedObjectProp","object","objProp","JSON","stringify","convertToDisplayName","s","charAt","toUpperCase","slice","convertToPluralDisplayName","endsWith","interfaceType","propertiesV2","extendsInterfaces","ext","displayName"],"sources":["defineObject.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 invariant from \"tiny-invariant\";\nimport {\n addNamespaceIfNone,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n InterfaceType,\n ObjectPropertyType,\n ObjectPropertyTypeUserDefinition,\n ObjectType,\n ObjectTypeDefinition,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport function defineObject(\n objectDef: ObjectTypeDefinition,\n): ObjectType {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties\n ? Object.keys(objectDef.properties)\n : [];\n if (\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n\n invariant(\n !(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`,\n );\n\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties: string[] = [];\n Object.entries(objectDef.properties ?? {}).forEach(\n ([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n },\n );\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n !isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n !isExotic(\n objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type,\n ),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(\n interfaceImpl.implements,\n );\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n allInterfaceProperties[addNamespaceIfNone(interfaceProperty)]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [\n addNamespaceIfNone(mapping.interfaceProperty),\n mapping.mapsTo,\n ],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.apiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${\n interfaceProp[1].sharedPropertyType.apiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const validations = Object.entries(\n getAllInterfaceProperties(interfaceImpl.implements),\n ).map(validateProperty);\n const allFailedValidations = validations.concat(\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n const flattenedProperties: Array<ObjectPropertyType> = Object.entries(\n objectDef.properties ?? {},\n ).map(([apiName, property]) =>\n convertUserObjectPropertyType(apiName, property)\n );\n\n const finalObject: ObjectType = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties,\n };\n updateOntology(finalObject);\n return finalObject;\n}\n\nexport function isExotic(\n type: PropertyTypeType | undefined,\n): type is PropertyTypeTypeExotic {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectTypeDefinition,\n): ValidationResult {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (JSON.stringify(spt.type) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n\nexport function convertToDisplayName(s: string | undefined | null): string {\n return s === undefined || s == null\n ? \"\"\n : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(\n s: string | undefined | null,\n): string {\n return s === undefined || s == null\n ? \"\"\n : s.endsWith(\"s\")\n ? convertToDisplayName(s)\n : convertToDisplayName(s) + \"s\";\n}\n\nexport function getAllInterfaceProperties(\n interfaceType: InterfaceType,\n): Record<string, InterfacePropertyType> {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = { ...properties, ...getAllInterfaceProperties(ext) };\n });\n return properties;\n}\n\nfunction convertUserObjectPropertyType(\n apiName: string,\n property: ObjectPropertyTypeUserDefinition,\n): ObjectPropertyType {\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? convertToDisplayName(apiName),\n type: property.type,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineObject.js","names":["invariant","addNamespaceIfNone","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","ISO_8601_DURATION","ISO_8601_DATETIME","defineObject","objectDef","apiName","propertyApiNames","properties","Object","keys","OBJECT_TYPE","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeyPropertyApiName","editOnly","retentionPeriod","datasource","test","status","activeProperties","entries","forEach","property","push","length","join","type","deadline","isExotic","implementsInterfaces","interfaceImpl","allInterfaceProperties","getAllInterfaceProperties","implements","nonExistentInterfaceProperties","propertyMapping","map","val","interfaceProperty","filter","interfaceProp","reason","interfaceToObjectProperties","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","validateInterfaceImplProperty","validations","allFailedValidations","concat","formatValidationErrors","flattenedProperties","convertUserObjectPropertyType","finalObject","__type","error","spt","mappedObjectProp","object","objProp","JSON","stringify","convertToDisplayName","s","charAt","toUpperCase","slice","convertToPluralDisplayName","endsWith","interfaceType","propertiesV2","extendsInterfaces","ext","displayName"],"sources":["defineObject.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 invariant from \"tiny-invariant\";\nimport {\n addNamespaceIfNone,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n InterfaceType,\n ObjectPropertyType,\n ObjectPropertyTypeUserDefinition,\n ObjectType,\n ObjectTypeDefinition,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport function defineObject(\n objectDef: ObjectTypeDefinition,\n): ObjectTypeDefinition {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties\n ? Object.keys(objectDef.properties)\n : [];\n if (\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n\n invariant(\n !(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`,\n );\n\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties: string[] = [];\n Object.entries(objectDef.properties ?? {}).forEach(\n ([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n },\n );\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n !isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n !isExotic(\n objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type,\n ),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(\n interfaceImpl.implements,\n );\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n allInterfaceProperties[addNamespaceIfNone(interfaceProperty)]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [\n addNamespaceIfNone(mapping.interfaceProperty),\n mapping.mapsTo,\n ],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.apiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${\n interfaceProp[1].sharedPropertyType.apiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const validations = Object.entries(\n getAllInterfaceProperties(interfaceImpl.implements),\n ).map(validateProperty);\n const allFailedValidations = validations.concat(\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n const flattenedProperties: Array<ObjectPropertyType> = Object.entries(\n objectDef.properties ?? {},\n ).map(([apiName, property]) =>\n convertUserObjectPropertyType(property.apiName ?? apiName, property)\n );\n\n const finalObject: ObjectType = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties,\n };\n updateOntology(finalObject);\n objectDef.apiName = apiName;\n return objectDef;\n}\n\nexport function isExotic(\n type: PropertyTypeType | undefined,\n): type is PropertyTypeTypeExotic {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectTypeDefinition,\n): ValidationResult {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (JSON.stringify(spt.type) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n\nexport function convertToDisplayName(s: string | undefined | null): string {\n return s === undefined || s == null\n ? \"\"\n : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(\n s: string | undefined | null,\n): string {\n return s === undefined || s == null\n ? \"\"\n : s.endsWith(\"s\")\n ? convertToDisplayName(s)\n : convertToDisplayName(s) + \"s\";\n}\n\nexport function getAllInterfaceProperties(\n interfaceType: InterfaceType,\n): Record<string, InterfacePropertyType> {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = { ...properties, ...getAllInterfaceProperties(ext) };\n });\n return properties;\n}\n\nfunction convertUserObjectPropertyType(\n apiName: string,\n property: ObjectPropertyTypeUserDefinition,\n): ObjectPropertyType {\n // fill in missing fields to be used by actions\n property.apiName = apiName;\n property.displayName = property.displayName ?? convertToDisplayName(apiName);\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? convertToDisplayName(apiName),\n type: property.type,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -979,12 +979,12 @@ function renderHintFromBaseType(parameter) {
979
979
  };
980
980
  case "marking":
981
981
  case "markingList":
982
- if (parameter.validation.allowedValues.type === "mandatoryMarking") {
982
+ if (parameter.validation.allowedValues?.type === "mandatoryMarking") {
983
983
  return {
984
984
  type: "mandatoryMarkingPicker",
985
985
  mandatoryMarkingPicker: {}
986
986
  };
987
- } else if (parameter.validation.allowedValues.type === "cbacMarking") {
987
+ } else if (parameter.validation.allowedValues?.type === "cbacMarking") {
988
988
  return {
989
989
  type: "cbacMarkingPicker",
990
990
  cbacMarkingPicker: {}
@@ -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","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","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","reduce","r","mandatoryInputGroup","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","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","indexedForSearch","ruleSetBinding","baseFormatter","array","subtype","inlineAction","dataConstraints","sharedPropertyTypeRid","convertCardinality","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","cleanAndValidateLinkTypeId","active","step1","linkTypeId","toLowerCase","test","Error","other","extendsInterfaces","propertiesV3","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 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 { 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 OneToManyLinkTypeDefinition,\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.links.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 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.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 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 // TODO(mwalther): Support propertiesV3\n propertiesV3: {},\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\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","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","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","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","reduce","r","mandatoryInputGroup","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","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","indexedForSearch","ruleSetBinding","baseFormatter","array","subtype","inlineAction","dataConstraints","sharedPropertyTypeRid","convertCardinality","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","cleanAndValidateLinkTypeId","active","step1","linkTypeId","toLowerCase","test","Error","other","extendsInterfaces","propertiesV3","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 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 { 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 OneToManyLinkTypeDefinition,\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.links.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 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.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 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 // TODO(mwalther): Support propertiesV3\n propertiesV3: {},\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\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":[]}