@osdk/maker 0.13.0-beta.6 → 0.13.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/types.ts","../../src/api/defineObject.ts","../../src/api/ontologyUtils.ts","../../src/api/propertyConversionUtils.ts","../../src/api/defineOntology.ts","../../src/cli/main.ts","../../src/api/addDependency.ts","../../src/api/defineAction.ts","../../src/api/importOntologyEntity.ts","../../src/api/defineImportSpt.ts","../../src/api/defineSpt.ts","../../src/api/defineInterface.ts","../../src/api/defineInterfaceLinkConstraint.ts","../../src/api/defineLink.ts","../../src/api/defineValueType.ts","../../src/api/wrapWithProxy.ts"],"names":["OntologyEntityTypeEnum","invariant","apiName","randomUUID","path","fs","namespace","yargs","hideBin","path2","consola","fs2","path3","fs3","sanitize"],"mappings":"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","file":"index.cjs","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\nexport let OntologyEntityTypeEnum = /*#__PURE__*/function (OntologyEntityTypeEnum) {\n OntologyEntityTypeEnum[\"OBJECT_TYPE\"] = \"OBJECT_TYPE\";\n OntologyEntityTypeEnum[\"LINK_TYPE\"] = \"LINK_TYPE\";\n OntologyEntityTypeEnum[\"INTERFACE_TYPE\"] = \"INTERFACE_TYPE\";\n OntologyEntityTypeEnum[\"SHARED_PROPERTY_TYPE\"] = \"SHARED_PROPERTY_TYPE\";\n OntologyEntityTypeEnum[\"ACTION_TYPE\"] = \"ACTION_TYPE\";\n OntologyEntityTypeEnum[\"VALUE_TYPE\"] = \"VALUE_TYPE\";\n return OntologyEntityTypeEnum;\n}({});\nexport const MODIFY_OBJECT_PARAMETER = \"objectToModifyParameter\";\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER = \"objectToCreateOrModifyParameter\";\n\n// TODO(ethana): add more commonly used conditions - parameter matching, organizations, etc.\n\n// TODO(dpaquin): cleanup? or does \"type: foo\" actually make sense here","/*\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 { addNamespaceIfNone, namespace, ontologyDefinition, updateOntology } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION = /^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 = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\nexport function defineObject(objectDef) {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties ? Object.keys(objectDef.properties) : [];\n if (ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName] !== undefined) {\n throw new Error(`Object type with apiName ${objectDef.apiName} is already defined`);\n }\n !propertyApiNames.includes(objectDef.titlePropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`) : invariant(false) : void 0;\n !propertyApiNames.includes(objectDef.primaryKeyPropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;\n !!objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`) : invariant(false) : void 0;\n const retentionPeriod = objectDef.datasource?.retentionPeriod;\n !(retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`) : invariant(false) : void 0;\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 = [];\n Object.entries(objectDef.properties ?? {}).forEach(([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n });\n !(activeProperties.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${activeProperties.join(\", \")}`) : invariant(false) : void 0;\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (objectDef.status && typeof objectDef.status === \"object\" && objectDef.status.type === \"deprecated\") {\n const deadline = objectDef.status.deadline;\n !(deadline !== undefined && ISO_8601_DATETIME.test(deadline)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`) : invariant(false) : void 0;\n }\n !!isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} must be a primitive type`) : invariant(false) : void 0;\n !!isExotic(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`) : invariant(false) : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(interfaceImpl.implements);\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => allInterfaceProperties[addNamespaceIfNone(interfaceProperty)] === undefined).map(interfaceProp => ({\n type: \"invalid\",\n reason: `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`\n }));\n const interfaceToObjectProperties = Object.fromEntries(interfaceImpl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), mapping.mapsTo]));\n const validateProperty = interfaceProp => {\n if (interfaceProp[1].sharedPropertyType.apiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1].sharedPropertyType, interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceProp[1].sharedPropertyType.apiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const validations = Object.entries(getAllInterfaceProperties(interfaceImpl.implements)).map(validateProperty);\n const allFailedValidations = validations.concat(nonExistentInterfaceProperties).filter(val => val.type === \"invalid\");\n !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\")) : invariant(false) : void 0;\n });\n const flattenedProperties = Object.entries(objectDef.properties ?? {}).map(([apiName, property]) => convertUserObjectPropertyType(property.apiName ?? apiName, property));\n const finalObject = {\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}\nexport function isExotic(type) {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(type);\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\nfunction formatValidationErrors(error) {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(spt, mappedObjectProp, object) {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason: `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: `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`\n };\n }\n return {\n type: \"valid\"\n };\n}\nexport function convertToDisplayName(s) {\n return s === undefined || s == null ? \"\" : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(s) {\n return s === undefined || s == null ? \"\" : s.endsWith(\"s\") ? convertToDisplayName(s) : convertToDisplayName(s) + \"s\";\n}\nexport function getAllInterfaceProperties(interfaceType) {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = {\n ...properties,\n ...getAllInterfaceProperties(ext)\n };\n });\n return properties;\n}\nfunction convertUserObjectPropertyType(apiName, property) {\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 * 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 { randomUUID } from \"node:crypto\";\nimport { extractAllowedValues } from \"./defineOntology.js\";\nexport function convertActionVisibility(visibility) {\n switch (visibility) {\n case \"editable\":\n return {\n type: \"editable\",\n editable: {}\n };\n case \"disabled\":\n return {\n type: \"disabled\",\n disabled: {}\n };\n case \"hidden\":\n return {\n type: \"hidden\",\n hidden: {}\n };\n default:\n return {\n type: \"editable\",\n editable: {}\n };\n }\n}\nexport function convertActionParameterConditionalOverride(override, validation) {\n let parameterBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required ? {\n type: \"notRequired\",\n notRequired: {}\n } : {\n type: \"required\",\n required: {}\n }\n }\n };\n break;\n case \"visibility\":\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: validation.defaultVisibility === \"editable\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"editable\",\n editable: {}\n }\n }\n };\n break;\n case \"disabled\":\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: validation.defaultVisibility === \"editable\" ? {\n type: \"disabled\",\n disabled: {}\n } : {\n type: \"editable\",\n editable: {}\n }\n }\n };\n break;\n case \"defaultValue\":\n parameterBlockOverride = {\n type: \"prefill\",\n prefill: {\n prefill: override.defaultValue\n }\n };\n break;\n case \"constraint\":\n parameterBlockOverride = {\n type: \"allowedValues\",\n allowedValues: {\n allowedValues: extractAllowedValues(override.constraint)\n }\n };\n break;\n default:\n throw new Error(`Unknown parameter override type`);\n }\n return {\n condition: convertConditionDefinition(override.condition),\n parameterBlockOverrides: [parameterBlockOverride]\n };\n}\nexport function convertSectionConditionalOverride(override, defaultVisibility) {\n return {\n condition: convertConditionDefinition(override.condition),\n sectionBlockOverrides: [{\n type: \"visibility\",\n visibility: {\n visibility: defaultVisibility === \"visible\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"visible\",\n visible: {}\n }\n }\n }]\n };\n}\nexport function convertConditionDefinition(condition) {\n switch (condition.type) {\n case \"and\":\n if (\"conditions\" in condition) {\n return {\n type: \"and\",\n and: {\n conditions: condition.conditions.map(c => convertConditionDefinition(c))\n }\n };\n } else {\n return condition;\n }\n case \"or\":\n if (\"conditions\" in condition) {\n return {\n type: \"or\",\n or: {\n conditions: condition.conditions.map(c => convertConditionDefinition(c))\n }\n };\n } else {\n return condition;\n }\n case \"group\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"INTERSECTS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n userId: {\n type: \"currentUser\",\n currentUser: {}\n },\n propertyValue: {\n type: \"groupIds\",\n groupIds: {}\n }\n }\n },\n right: {\n type: \"staticValue\",\n staticValue: {\n type: \"stringList\",\n stringList: {\n strings: [condition.name]\n }\n }\n }\n }\n };\n case \"parameter\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"EQUALS\",\n left: {\n type: \"parameterId\",\n parameterId: condition.parameterId\n },\n right: condition.matches\n }\n };\n default:\n return condition;\n }\n}\nexport function getFormContentOrdering(action, parameterOrdering) {\n if (!action.sections) return [];\n const parametersToSection = Object.fromEntries(Object.entries(action.sections).flatMap(([sectionId, section]) => section.parameters.map(param => [param, sectionId])));\n const seenIds = new Set();\n const formContentOrdering = [];\n parameterOrdering.forEach(param => {\n if (param in parametersToSection && !seenIds.has(parametersToSection[param])) {\n formContentOrdering.push({\n type: \"sectionId\",\n sectionId: parametersToSection[param]\n });\n seenIds.add(parametersToSection[param]);\n } else if (!(param in parametersToSection)) {\n formContentOrdering.push({\n type: \"parameterId\",\n parameterId: param\n });\n seenIds.add(param);\n }\n });\n return formContentOrdering;\n}\nexport function convertMappingValue(value) {\n switch (value.type) {\n case \"uuid\":\n return {\n type: \"uniqueIdentifier\",\n uniqueIdentifier: {\n linkId: value.linkId ?? randomUUID()\n }\n };\n case \"currentTime\":\n return {\n type: \"currentTime\",\n currentTime: {}\n };\n case \"currentUser\":\n return {\n type: \"currentUser\",\n currentUser: {}\n };\n default:\n return value;\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nexport const defaultTypeClasses = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\"\n}, {\n kind: \"render_hint\",\n name: \"SORTABLE\"\n}];\n\n// ExperimentalTimeDependentV1 and Attachment types should be included here once supported\nexport function shouldNotHaveRenderHints(type) {\n return [\"struct\", \"mediaReference\", \"geotimeSeries\"].includes(getPropertyTypeName(type));\n}\nexport function hasRenderHints(typeClasses) {\n return (typeClasses ?? []).some(tc => tc.kind.toLowerCase() === \"render_hint\");\n}\nexport function getPropertyTypeName(type) {\n return typeof type === \"object\" ? type.type : type;\n}\nexport function convertValueType(valueType) {\n return {\n apiName: valueType.apiName,\n version: valueType.version,\n packageNamespace: valueType.packageNamespace,\n displayMetadata: valueType.displayMetadata\n };\n}\nexport function convertValueTypeDataConstraints(dataConstraints) {\n if (dataConstraints.length === 0) {\n return undefined;\n }\n const propertyTypeConstraints = dataConstraints.map(constraint => ({\n constraints: dataConstraintToPropertyTypeDataConstraint(constraint.constraint.constraint),\n failureMessage: constraint.constraint.failureMessage\n }));\n return {\n propertyTypeConstraints\n };\n}\nexport function dataConstraintToPropertyTypeDataConstraint(dc) {\n switch (dc.type) {\n case \"array\":\n return {\n ...dc\n };\n case \"boolean\":\n return {\n ...dc\n };\n case \"binary\":\n throw new Error(\"Binary type constraints are not supported\");\n case \"date\":\n return {\n ...dc\n };\n case \"decimal\":\n return {\n ...dc\n };\n case \"double\":\n return {\n ...dc\n };\n case \"float\":\n return {\n ...dc\n };\n case \"integer\":\n return {\n ...dc\n };\n case \"long\":\n return {\n ...dc\n };\n case \"map\":\n throw new Error(\"Map type constraints are not supported\");\n case \"nullable\":\n throw new Error(\"Nullable constraints are not supported\");\n case \"short\":\n return {\n ...dc\n };\n case \"string\":\n return {\n ...dc\n };\n case \"struct\":\n return {\n type: \"struct\",\n struct: {\n elementConstraints: Object.fromEntries(Object.entries(dc.struct.elementConstraints).map(([field, constraint]) => [field, convertDataConstraintToDataConstraints(constraint)]))\n }\n };\n case \"structV2\":\n throw new Error(\"StructV2 constraints are not supported\");\n case \"timestamp\":\n return {\n ...dc\n };\n default:\n throw new Error(`Unknown DataConstraint type: ${dc.type}`);\n }\n}\nexport function convertDataConstraintToDataConstraints(dc) {\n return {\n propertyTypeConstraints: [{\n constraints: dataConstraintToPropertyTypeDataConstraint(dc)\n // known limitation: structs don't carry field-level data constraint failure messages\n }]\n };\n}\nexport function convertNullabilityToDataConstraint(prop) {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noEmptyCollections: true,\n noNulls: true\n }\n };\n }\n !prop.nullability?.noNulls ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Marking property type has noNulls set to false, marking properties must not be nullable\") : invariant(false) : void 0;\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n}\nexport function convertType(type) {\n switch (true) {\n case typeof type === \"object\" && \"markingType\" in type:\n return {\n \"type\": \"marking\",\n marking: {\n markingType: type.markingType\n }\n };\n case typeof type === \"object\" && \"structDefinition\" in type:\n const structFields = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? []\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n }\n }\n structFields.push(field);\n }\n return {\n type: \"struct\",\n struct: {\n structFields\n }\n };\n case typeof type === \"object\" && \"isLongText\" in type:\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard: type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching\n }\n };\n case type === \"geopoint\":\n return {\n type: \"geohash\",\n geohash: {}\n };\n case type === \"decimal\":\n return {\n type,\n [type]: {\n precision: undefined,\n scale: undefined\n }\n };\n case type === \"string\":\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true\n }\n };\n case type === \"mediaReference\":\n return {\n type: type,\n mediaReference: {}\n };\n case type === \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nexport function distributeTypeHelper(type) {\n return {\n type,\n [type]: {}\n }; // any cast to match conditional return type\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport invariant from \"tiny-invariant\";\nimport { convertToDisplayName, isExotic } from \"./defineObject.js\";\nimport { convertActionParameterConditionalOverride, convertActionVisibility, convertSectionConditionalOverride, getFormContentOrdering } from \"./ontologyUtils.js\";\nimport { convertNullabilityToDataConstraint, convertType, convertValueType, convertValueTypeDataConstraints, defaultTypeClasses, getPropertyTypeName, hasRenderHints, shouldNotHaveRenderHints } from \"./propertyConversionUtils.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes;\n\n// namespace -> version\n/** @internal */\nexport let dependencies;\n\n/** @internal */\nexport let namespace;\nexport function updateOntology(entity) {\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 (ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] === undefined) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName].push(entity);\n}\nexport async function defineOntology(ns, body, outputDir, dependencyFile) {\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(\"Unexpected error while processing the body of the ontology\", e);\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n return convertToWireOntologyIr(ontologyDefinition);\n}\nexport function writeStaticObjects(outputDir) {\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 if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, {\n 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, {\n recursive: true,\n force: true\n });\n }\n fs.mkdirSync(currentTypeDirPath, {\n recursive: true\n });\n });\n const topLevelExportStatements = [];\n Object.entries(ontologyDefinition).forEach(([ontologyTypeEnumKey, entities]) => {\n const typeDirName = typeDirs[ontologyTypeEnumKey];\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames = [];\n Object.entries(entities).forEach(([apiName, entity]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName)) + (ontologyTypeEnumKey === OntologyEntityTypeEnum.VALUE_TYPE ? \"ValueType\" : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(/(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g, (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`);\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${ontologyTypeEnumKey === \"VALUE_TYPE\" ? entityJSON.slice(1, -2) : entityJSON} as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, {\n flag: \"w\"\n });\n entityModuleNames.push(entityFileNameBase);\n });\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(`export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.ts\";`);\n }\n });\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString() + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, {\n flag: \"w\"\n });\n }\n}\nfunction convertOntologyToValueTypeIr(ontology) {\n return {\n valueTypes: convertValueTypesToIr(ontology[OntologyEntityTypeEnum.VALUE_TYPE])\n };\n}\nfunction convertValueTypesToIr(valueTypes) {\n return Object.values(valueTypes).map(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n packageNamespace: definitions[0].packageNamespace,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status\n },\n // TODO(dpaquin): instead of deduping here, we should refactor the value type types from arrays to maps\n versions: Array.from(new Map(definitions.map(definition => [definition.version, definition])).values()).map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues\n }))\n }));\n}\nfunction convertToWireOntologyIr(ontology) {\n return {\n ontology: convertToWireBlockData(ontology),\n importedOntology: convertToWireBlockData(importedTypes),\n valueTypes: convertOntologyToValueTypeIr(ontology),\n importedValueTypes: convertOntologyToValueTypeIr(importedTypes)\n };\n}\nfunction convertToWireBlockData(ontology) {\n return {\n objectTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n })),\n sharedPropertyTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]).map(([apiName, spt]) => [apiName, {\n sharedPropertyType: convertSpt(spt)\n }])),\n interfaceTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.INTERFACE_TYPE]).map(([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType)\n }];\n })),\n linkTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map(([id, link]) => {\n return [id, convertLink(link)];\n })),\n actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map(([apiName, action]) => {\n return [apiName, convertAction(action)];\n })),\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).filter(([apiName, action]) => action.validation).map(([apiName, action]) => {\n return [apiName, {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null,\n publicProject: false\n }\n }];\n })),\n linkTypes: {},\n objectTypes: {}\n }\n };\n}\nfunction convertObject(objectType) {\n const propertyDatasources = (objectType.properties ?? []).flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n const classificationGroupMarkingNames = extractMarkingGroups(objectType.properties ?? [], \"CBAC\");\n const mandatoryMarkingNames = extractMarkingGroups(objectType.properties ?? [], \"MANDATORY\");\n const classificationInputGroup = classificationGroupMarkingNames.length > 0 ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r) : undefined;\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0 ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r) : undefined;\n const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, objectType.properties ?? []), classificationInputGroup, mandatoryInputGroup);\n const implementations = objectType.implementsInterfaces ?? [];\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 ?? {\n locator: \"cube\",\n color: \"#2D72D2\"\n }\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\"\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),\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(impl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), {\n propertyTypeRid: mapping.mapsTo\n }]))\n })),\n allImplementsInterfaces: {}\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false\n }\n };\n}\nfunction extractPropertyDatasource(property, objectTypeApiName) {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type) {\n case \"geotimeSeries\":\n const geotimeDefinition = {\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 = {\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}\nfunction buildDatasource(apiName, definition, classificationMarkingGroupName, mandatoryMarkingGroupName) {\n const needsSecurity = classificationMarkingGroupName !== undefined || mandatoryMarkingGroupName !== undefined;\n const securityConfig = needsSecurity ? {\n classificationConstraint: classificationMarkingGroupName ? {\n markingGroupName: classificationMarkingGroupName\n } : undefined,\n markingConstraint: mandatoryMarkingGroupName ? {\n markingGroupName: mandatoryMarkingGroupName\n } : undefined\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 && {\n dataSecurity: securityConfig\n })\n };\n}\nfunction convertDatasourceDefinition(objectType, properties) {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy = window ? {\n type: \"time\",\n time: {\n window\n }\n } : {\n type: \"none\",\n none: {}\n };\n const propertyMapping = Object.fromEntries(properties.map(prop => [prop.apiName, prop.apiName]));\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(properties, markingType) {\n return properties.map(prop => {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\" && prop.type.markingType === markingType) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n }).filter(val => val !== undefined);\n}\nfunction buildPropertyMapping(properties) {\n return Object.fromEntries(properties.map(prop => {\n // editOnly\n if (prop.editOnly) {\n return [prop.apiName, {\n type: \"editOnly\",\n editOnly: {}\n }];\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(Object.keys(prop.type.structDefinition).map(fieldName => [fieldName, {\n apiName: fieldName,\n mappings: {}\n }]))\n }\n };\n return [prop.apiName, structMapping];\n }\n // default: column mapping\n return [prop.apiName, {\n type: \"column\",\n column: prop.apiName\n }];\n }));\n}\nfunction convertProperty(property) {\n const apiName = namespace + property.apiName;\n !(!shouldNotHaveRenderHints(property.type) || !hasRenderHints(property.typeClasses)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property type ${apiName} of type '${getPropertyTypeName(property.type)}' should not have render hints`) : invariant(false) : void 0;\n const output = {\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 type: \"array\",\n array: {\n subtype: convertType(property.type)\n }\n } : convertType(property.type),\n typeClasses: property.typeClasses ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType ? convertValueTypeDataConstraints(property.valueType.constraints) : convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: property.valueType ? convertValueType(property.valueType) : undefined\n };\n return output;\n}\nfunction convertLink(linkType) {\n let definition;\n let datasource = 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 datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n },\n column: linkType.many.object.primaryKeyPropertyApiName\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n },\n column: linkType.toMany.object.primaryKeyPropertyApiName\n }]\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: linkType.redacted\n };\n }\n return {\n linkType: {\n definition: definition,\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: linkType.status ?? {\n type: \"active\",\n active: {}\n },\n redacted: linkType.redacted ?? false\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false\n }\n };\n}\nfunction cleanAndValidateLinkTypeId(apiName) {\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\").toLowerCase();\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(`LinkType id '${linkTypeId}' must be lower case with dashes.`);\n }\n return linkTypeId;\n}\nfunction convertInterface(interfaceType) {\n const {\n __type,\n ...other\n } = interfaceType;\n return {\n ...other,\n propertiesV2: Object.fromEntries(Object.values(interfaceType.propertiesV2).map(spt => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType)\n }])),\n displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description\n },\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n // TODO(mwalther): Support propertiesV3\n propertiesV3: {}\n };\n}\nexport function dumpOntologyFullMetadata() {\n return convertToWireOntologyIr(ontologyDefinition);\n}\nexport function dumpValueTypeWireType() {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\nfunction convertSpt({\n type,\n array,\n description,\n apiName,\n displayName,\n visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability\n}) {\n const dataConstraint = convertNullabilityToDataConstraint({\n type,\n nullability\n });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: visibility ?? \"NORMAL\",\n description\n },\n type: array ? {\n type: \"array\",\n array: {\n subtype: convertType(type)\n }\n } : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n typeClasses: typeClasses ?? [],\n valueType: valueType === undefined ? undefined : {\n apiName: valueType.apiName,\n version: valueType.version,\n packageNamespace: valueType.packageNamespace,\n displayMetadata: valueType.displayMetadata\n }\n };\n}\nfunction convertObjectStatus(status) {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {}\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 return status;\n}\nfunction convertAction(action) {\n const actionValidation = convertActionValidation(action);\n const actionParameters = convertActionParameters(action);\n const actionSections = convertActionSections(action);\n const parameterOrdering = action.parameterOrdering ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules\n },\n validation: actionValidation\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1\n }\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? {\n locator: \"edit\",\n color: \"#000000\"\n }\n },\n successMessage: action.submissionMetadata?.successMessage ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage\n }] : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata && {\n submitButtonDisplayMetadata: action.submissionMetadata.submitButtonDisplayMetadata\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration && {\n undoButtonConfiguration: action.submissionMetadata.undoButtonConfiguration\n })\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\" ? {\n type: action.status,\n [action.status]: {}\n } : action.status,\n entities: action.entities\n }\n }\n };\n}\nfunction convertActionValidation(action) {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries((action.validation ?? [{\n condition: {\n type: \"true\",\n true: {}\n },\n displayMetadata: {\n failureMessage: \"\",\n typeClasses: []\n }\n }]).map((rule, idx) => [idx, rule]))\n },\n parameterValidations: Object.fromEntries((action.parameters ?? []).map(p => {\n return [p.id, {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p),\n visibility: convertActionVisibility(p.validation.defaultVisibility),\n ...(p.defaultValue && {\n prefill: p.defaultValue\n })\n },\n validation: {\n allowedValues: extractAllowedValues(p.validation.allowedValues),\n required: convertParameterRequirementConstraint(p.validation.required)\n }\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(override => convertActionParameterConditionalOverride(override, p.validation)) ?? []\n }];\n })),\n sectionValidations: {\n ...Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, section]) => [section.id, {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\" ? {\n visibility: {\n type: \"hidden\",\n hidden: {}\n }\n } : {\n visibility: {\n type: \"visible\",\n visible: {}\n }\n },\n conditionalOverrides: section.conditionalOverrides?.map(override => convertSectionConditionalOverride(override, section.defaultVisibility ?? \"visible\")) ?? []\n }]))\n }\n };\n}\nfunction convertActionParameters(action) {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: typeof p.type === \"string\" ? {\n type: p.type,\n [p.type]: {}\n } : p.type,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: []\n }\n }]));\n}\nfunction convertActionSections(action) {\n return Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, section]) => [sectionId, {\n id: sectionId,\n content: section.parameters.map(p => ({\n type: \"parameterId\",\n parameterId: p\n })),\n displayMetadata: {\n collapsedByDefault: section.collapsedByDefault ?? false,\n columnCount: section.columnCount ?? 1,\n description: section.description ?? \"\",\n displayName: section.displayName ?? convertToDisplayName(sectionId),\n showTitleBar: section.showTitleBar ?? true,\n ...(section.style && {\n style: section.style === \"box\" ? {\n type: \"box\",\n box: {}\n } : {\n type: \"minimal\",\n minimal: {}\n }\n })\n }\n }]));\n}\nexport function extractAllowedValues(allowedValues) {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed ?? false\n }\n }\n }\n };\n case \"range\":\n const {\n min,\n max\n } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined ? {} : {\n minimum: {\n inclusive: true,\n value: min\n }\n }),\n ...(max === undefined ? {} : {\n maximum: {\n inclusive: true,\n value: max\n }\n })\n }\n }\n };\n case \"text\":\n const {\n minLength,\n maxLength,\n regex\n } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined ? {} : {\n minLength: minLength\n }),\n ...(maxLength === undefined ? {} : {\n maxLength: maxLength\n }),\n ...(regex === undefined ? {} : {\n regex: {\n regex: regex,\n failureMessage: \"Invalid input\"\n }\n })\n }\n }\n };\n case \"datetime\":\n const {\n minimum,\n maximum\n } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum\n }\n }\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes\n }\n }\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {}\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {}\n }\n };\n default:\n const k = allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {}\n }\n };\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\nfunction renderHintFromBaseType(parameter) {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\" ? parameter.type : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"checkbox\",\n checkbox: {}\n };\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 {\n type: \"numericInput\",\n numericInput: {}\n };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return {\n type: \"textInput\",\n textInput: {}\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"dateTimePicker\",\n dateTimePicker: {}\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"filePicker\",\n filePicker: {}\n };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return {\n type: \"mandatoryMarkingPicker\",\n mandatoryMarkingPicker: {}\n };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return {\n type: \"cbacMarkingPicker\",\n cbacMarkingPicker: {}\n };\n } else {\n throw new Error(`The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`);\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 {\n type: \"dropdown\",\n dropdown: {}\n };\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}\nfunction convertParameterRequirementConstraint(required) {\n if (typeof required === \"boolean\") {\n return required ? {\n type: \"required\",\n required: {}\n } : {\n type: \"notRequired\",\n notRequired: {}\n };\n }\n const {\n min,\n max\n } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: {\n minLength: min,\n maxLength: max\n }\n };\n}\nexport function sanitize(namespace, s) {\n return s.includes(\".\") ? s : namespace + s;\n}\nexport function extractNamespace(apiName) {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\nexport function withoutNamespace(apiName) {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\nfunction camel(str) {\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) {\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}\nfunction writeDependencyFile(dependencyFile) {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\nfunction dependencyInjectionString() {\n const namespaceNoDot = namespace.endsWith(\".\") ? namespace.slice(0, -1) : namespace;\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\nexport function addNamespaceIfNone(apiName) {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\nfunction convertCardinality(cardinality) {\n if (cardinality === \"OneToMany\" || cardinality === undefined) {\n return \"ONE_TO_MANY\";\n }\n return \"ONE_TO_ONE\";\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"consola\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nexport default async function main(args = process.argv) {\n const commandLineOpts = await yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve\n },\n output: {\n alias: \"o\",\n describe: \"Output file\",\n type: \"string\",\n default: \"ontology.json\",\n coerce: path.resolve\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\"\n },\n snapshotDir: {\n alias: \"s\",\n describe: \"Snapshot directory\",\n type: \"string\",\n default: \"snapshots\",\n coerce: path.resolve\n },\n outputDir: {\n alias: \"d\",\n describe: \"Directory for generated ontology entities\",\n type: \"string\",\n coerce: path.resolve\n },\n valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve\n },\n dependencies: {\n describe: \"File to write dependencies to\",\n type: \"string\",\n coerce: path.resolve\n }\n }).parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = commandLineOpts.apiNamespace.slice(-1) !== \".\" ? commandLineOpts.apiNamespace + \".\" : commandLineOpts.apiNamespace;\n !(apiNamespace.length < 1024) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is too long.\") : invariant(false) : void 0;\n !apiNamespaceRegex.test(apiNamespace) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\") : invariant(false) : void 0;\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n const ontologyIr = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.outputDir, commandLineOpts.dependencies);\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(commandLineOpts.output, JSON.stringify({\n ontology: ontologyIr.ontology,\n importedOntology: ontologyIr.importedOntology\n }, null, 2));\n // No point in generating block if there aren't any value types\n if (ontologyIr.valueTypes.valueTypes.length > 0 || ontologyIr.importedValueTypes.valueTypes.length > 0) {\n await fs.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify({\n valueTypes: ontologyIr.valueTypes,\n importedValueTypes: ontologyIr.importedValueTypes\n }, null, 2));\n }\n}\nasync function loadOntology(input, apiNamespace, outputDir, dependencyFile) {\n const q = await defineOntology(apiNamespace, async () => await import(input), outputDir, dependencyFile);\n return q;\n}","/*\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 * as fs from \"fs\";\nimport * as path from \"path\";\nimport { dependencies } from \"./defineOntology.js\";\nconst MAX_SEARCH_DEPTH = 5;\nexport function addDependency(namespaceNoDot, fileInPackage) {\n let dir = path.dirname(fileInPackage);\n let packageJsonPath = null;\n for (let i = 0; i < MAX_SEARCH_DEPTH; i++) {\n const candidate = path.join(dir, \"package.json\");\n if (fs.existsSync(candidate)) {\n packageJsonPath = candidate;\n break;\n }\n const parentDir = path.dirname(dir);\n if (parentDir === dir) break;\n dir = parentDir;\n }\n if (!packageJsonPath) {\n throw new Error(`Could not find a package.json within ${MAX_SEARCH_DEPTH} parent directories of ${fileInPackage}`);\n }\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n dependencies[namespaceNoDot] = packageJson.version ?? \"\";\n}","/*\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 { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport { convertToDisplayName, getAllInterfaceProperties } from \"./defineObject.js\";\nimport { namespace, ontologyDefinition, updateOntology } from \"./defineOntology.js\";\nimport { convertConditionDefinition, convertMappingValue } from \"./ontologyUtils.js\";\nimport { CREATE_OR_MODIFY_OBJECT_PARAMETER, MODIFY_OBJECT_PARAMETER, OntologyEntityTypeEnum } from \"./types.js\";\nexport function defineCreateInterfaceObjectAction(interfaceType, objectType, validation) {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (allProperties.length !== Object.entries(getAllInterfaceProperties(interfaceType)).length) {\n consola.info(`Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`);\n }\n return defineAction({\n apiName: `create-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [interfaceType.apiName]\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName]\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...allProperties.map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: []\n },\n rules: [{\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }],\n ...(validation ? {\n validation: convertValidationRule(validation)\n } : {})\n });\n}\nexport function defineCreateObjectAction(def) {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type));\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));\n const actionApiName = def.apiName ?? `create-object-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`;\n if (def.parameterOrdering) {\n validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);\n }\n const parameters = createParameters(def, parameterNames);\n const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: {\n ...Object.fromEntries(propertyParameters.map(p => [p, {\n type: \"parameterId\",\n parameterId: p\n }])),\n ...mappings\n },\n structFieldValues: {}\n }\n }],\n parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters),\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {}),\n ...(def.defaultFormat && {\n defaultFormat: def.defaultFormat\n }),\n ...(def.enableLayoutSwitch && {\n enableLayoutSwitch: def.enableLayoutSwitch\n }),\n ...(def.displayAndFormat && {\n displayAndFormat: def.displayAndFormat\n }),\n ...(def.sections && {\n sections: Object.fromEntries(def.sections.map(section => [section.id, section]))\n }),\n ...(def.submissionMetadata && {\n submissionMetadata: def.submissionMetadata\n })\n });\n}\nexport function defineModifyInterfaceObjectAction(interfaceType, objectType, validation) {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (allProperties.length !== Object.entries(getAllInterfaceProperties(interfaceType)).length) {\n consola.info(`Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`);\n }\n return defineAction({\n apiName: `modify-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: interfaceType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"interfaceObjectQuery\"\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...allProperties.map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: []\n },\n rules: [{\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }],\n ...(validation ? {\n validation: convertValidationRule(validation)\n } : {})\n });\n}\nexport function defineModifyObjectAction(def) {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [MODIFY_OBJECT_PARAMETER, ...def.parameterOrdering];\n }\n validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(p => {\n if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id\n }\n };\n }\n });\n const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(propertyParameters.map(p => [p, {\n type: \"parameterId\",\n parameterId: p\n }])),\n ...mappings\n },\n structFieldValues: {}\n }\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, MODIFY_OBJECT_PARAMETER),\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {}),\n ...(def.defaultFormat && {\n defaultFormat: def.defaultFormat\n }),\n ...(def.enableLayoutSwitch && {\n enableLayoutSwitch: def.enableLayoutSwitch\n }),\n ...(def.displayAndFormat && {\n displayAndFormat: def.displayAndFormat\n }),\n ...(def.sections && {\n sections: Object.fromEntries(def.sections.map(section => [section.id, section]))\n }),\n ...(def.submissionMetadata && {\n submissionMetadata: def.submissionMetadata\n })\n });\n}\nexport function defineDeleteObjectAction(def) {\n return defineAction({\n apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [{\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: {\n type: \"objectQuery\"\n }\n }\n }],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\"\n }\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {})\n });\n}\nexport function defineCreateOrModifyObjectAction(def) {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `create-or-modify-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [CREATE_OR_MODIFY_OBJECT_PARAMETER, ...def.parameterOrdering];\n }\n validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(p => {\n if (p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id\n }\n };\n }\n });\n const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(propertyParameters.map(p => [p, {\n type: \"parameterId\",\n parameterId: p\n }])),\n ...mappings\n },\n structFieldValues: {}\n }\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, CREATE_OR_MODIFY_OBJECT_PARAMETER),\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {}),\n ...(def.defaultFormat && {\n defaultFormat: def.defaultFormat\n }),\n ...(def.enableLayoutSwitch && {\n enableLayoutSwitch: def.enableLayoutSwitch\n }),\n ...(def.displayAndFormat && {\n displayAndFormat: def.displayAndFormat\n }),\n ...(def.sections && {\n sections: Object.fromEntries(def.sections.map(section => [section.id, section]))\n }),\n ...(def.submissionMetadata && {\n submissionMetadata: def.submissionMetadata\n })\n });\n}\nexport function defineAction(actionDef) {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n if (ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName] !== undefined) {\n throw new Error(`Action type with apiName ${actionDef.apiName} is already defined`);\n }\n !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`) : invariant(false) : void 0;\n const parameterIdsSet = new Set(parameterIds);\n !(parameterIdsSet.size === parameterIds.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter ids must be unique`) : invariant(false) : void 0;\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef)).filter(p => !parameterIdsSet.has(p));\n !(parameterIdsNotFound.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameters ${JSON.stringify(parameterIdsNotFound)} were referenced but not defined`) : invariant(false) : void 0;\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? []).flatMap(s => s.type === \"parameterId\" ? [] : [s.sectionId]).filter(sId => !definedSectionIds.has(sId));\n !(undefinedSectionsInOrdering.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`) : invariant(false) : void 0;\n !(actionDef.rules.length > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type ${actionDef.apiName} must have at least one logic rule`) : invariant(false) : void 0;\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n !parameterIds.some(id => id === rule.modifyObjectRule.objectToModify) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to modify parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n if (rule.type === \"deleteObjectRule\") {\n !parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to delete parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n });\n const fullAction = {\n ...actionDef,\n apiName: apiName,\n entities: actionDef.entities ?? {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: []\n },\n __type: OntologyEntityTypeEnum.ACTION_TYPE\n };\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\nfunction createParameters(def, parameterSet) {\n const targetParam = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName ?? \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName\n }\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: {\n type: \"objectQuery\"\n },\n required: def.parameterConfiguration?.[name]?.required ?? true\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName,\n maybeCreateObjectOption: !def.primaryKeyOption || def.primaryKeyOption === \"autoGenerated\" ? {\n type: \"autoGenerated\",\n autoGenerated: {}\n } : {\n type: \"userInput\",\n userInput: {}\n }\n }\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: {\n type: \"objectQuery\"\n },\n required: def.parameterConfiguration?.[name]?.required ?? true\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n });\n return [...targetParam, ...Array.from(parameterSet).map(id => ({\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName ?? def.objectType.properties?.[id]?.displayName ?? convertToDisplayName(id),\n type: def.parameterConfiguration?.[id]?.customParameterType ?? extractActionParameterType(def.objectType.properties?.[id]),\n validation: def.parameterConfiguration?.[id] !== undefined ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues ?? (def.parameterConfiguration?.[id].customParameterType ? extractAllowedValuesFromActionParameterType(def.parameterConfiguration?.[id].customParameterType) : extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)),\n required: def.parameterConfiguration?.[id].required ?? def.objectType.properties?.[id]?.nullability?.noNulls ?? false\n } : {\n required: def.objectType.properties?.[id].array ?? false ? {\n listLength: def.objectType.properties?.[id].nullability?.noEmptyCollections ? {\n min: 1\n } : {}\n } : def.objectType.properties?.[id].nullability?.noNulls ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description\n }))];\n}\nfunction referencedParameterIds(actionDef) {\n const parameterIds = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {}).flatMap(p => p.parameters).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(rule.addInterfaceRule.interfaceApiName);\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n });\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(rule.modifyInterfaceRule.interfaceObjectToModifyParameter);\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n });\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n }\n });\n return parameterIds;\n}\nfunction extractAllowedValuesFromActionParameterType(type) {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return {\n type: \"objectQuery\"\n };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`);\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"boolean\"\n };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return {\n type: \"range\"\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"datetime\"\n };\n case \"string\":\n case \"stringList\":\n return {\n type: \"text\"\n };\n case \"geohash\":\n case \"geohashList\":\n return {\n type: \"geohash\"\n };\n case \"geoshape\":\n case \"geoshapeList\":\n return {\n type: \"geoshape\"\n };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return {\n type: \"mediaReference\"\n };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return {\n type: \"geotimeSeriesReference\"\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"attachment\"\n };\n default:\n throw new Error(`Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`);\n }\n}\nfunction extractAllowedValuesFromPropertyType(type) {\n switch (type) {\n case \"boolean\":\n return {\n type: \"boolean\"\n };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 255\n }\n }\n };\n case \"timestamp\":\n case \"date\":\n return {\n type: \"datetime\"\n };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return {\n type: \"range\"\n };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 65535\n }\n }\n };\n case \"string\":\n return {\n type: \"text\"\n };\n case \"geopoint\":\n return {\n type: \"geohash\"\n };\n case \"geoshape\":\n return {\n type: \"geoshape\"\n };\n case \"mediaReference\":\n return {\n type: \"mediaReference\"\n };\n case \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\"\n };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\" ? {\n type: \"cbacMarking\"\n } : {\n type: \"mandatoryMarking\"\n };\n case \"string\":\n return {\n type: \"text\"\n };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\nfunction extractActionParameterType(pt) {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\nfunction maybeAddList(type, pt) {\n return pt.array ?? false ? type + \"List\" : type;\n}\nfunction isActionParameterTypePrimitive(type) {\n return [\"boolean\", \"booleanList\", \"integer\", \"integerList\", \"long\", \"longList\", \"double\", \"doubleList\", \"string\", \"stringList\", \"decimal\", \"decimalList\", \"timestamp\", \"timestampList\", \"geohash\", \"geohashList\", \"geoshape\", \"geoshapeList\", \"timeSeriesReference\", \"date\", \"dateList\", \"objectTypeReference\", \"objectReference\", \"attachment\", \"attachmentList\", \"marking\", \"markingList\", \"mediaReference\", \"mediaReferenceList\", \"geotimeSeriesReference\", \"geotimeSeriesReferenceList\"].includes(type);\n}\nfunction isStruct(type) {\n return typeof type === \"object\" && type.type === \"struct\";\n}\nfunction kebab(s) {\n return s.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\").replace(/\\./g, \"-\").toLowerCase();\n}\nfunction sanitize(s) {\n return s.includes(\".\") ? s : namespace + s;\n}\nfunction convertValidationRule(actionValidation) {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: []\n }\n };\n });\n}\nfunction validateActionConfiguration(action) {\n const seenParameterIds = new Set();\n const parameterMap = action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {}) ?? {};\n const orderedParameters = action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(override.condition, param.id, seenParameterIds, action.parameters);\n });\n validateParameterPrefill(param.id, seenParameterIds, action.parameters, param.defaultValue);\n seenParameterIds.add(param.id);\n });\n}\nfunction validateParameterCondition(condition, currentParameterId, seenParameterIds, parameters) {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n !parameters?.some(p => p.id === overrideParamId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`) : invariant(false) : void 0;\n !(overrideParamId !== currentParameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter condition on ${currentParameterId} is referencing itself`) : invariant(false) : void 0;\n !seenParameterIds.has(overrideParamId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`) : invariant(false) : void 0;\n break;\n case \"and\":\n // this will not catch the niche edge case where users use the full syntax for unions\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));\n }\n break;\n case \"comparison\":\n case \"group\":\n case \"not\":\n case \"markings\":\n case \"regex\":\n case \"redacted\":\n case \"true\":\n break;\n default:\n throw new Error(`Unknown condition type on parameter ${currentParameterId}`);\n }\n}\nfunction validateParameterPrefill(currentParameterId, seenParameterIds, parameters, defaultValue) {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n !parameters?.some(p => p.id === defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant(false) : void 0;\n !seenParameterIds.has(defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant(false) : void 0;\n break;\n case \"staticValue\":\n !(defaultValue.staticValue.type === parameters?.find(p => p.id === currentParameterId)?.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Default static value for parameter ${currentParameterId} does not match type`) : invariant(false) : void 0;\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(`Unknown default value type for parameter ${currentParameterId}`);\n }\n}\nfunction validateActionParameters(def) {\n // validates that parameters either exist as object properties or have a type defined\n [...Object.keys(def.parameterConfiguration ?? {})].forEach(id => {\n !(def.objectType.properties?.[id] !== undefined || def.parameterConfiguration?.[id].customParameterType !== undefined || id === MODIFY_OBJECT_PARAMETER || id === CREATE_OR_MODIFY_OBJECT_PARAMETER) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`) : invariant(false) : void 0;\n });\n [...Object.keys(def.nonParameterMappings ?? {}), ...(def.excludedProperties ?? [])].forEach(id => {\n !(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property ${id} does not exist as a property on ${def.objectType.apiName}`) : invariant(false) : void 0;\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type\nfunction createDefaultParameterOrdering(def, parameters, priorityId) {\n return [...(priorityId ? [priorityId] : []), ...Object.keys(def.parameterConfiguration ?? {}), ...Object.keys(def.objectType.properties ?? {}).filter(id => !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id))];\n}\nfunction validateParameterOrdering(parameterOrdering, parameterSet, actionApiName) {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(param => !orderingSet.has(param));\n const extraneousParameters = parameterOrdering.filter(param => !parameterSet.has(param));\n !(extraneousParameters.length === 0 && missingParameters.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`) : invariant(false) : void 0;\n}","/*\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 { importedTypes } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nexport function importOntologyEntity(e) {\n if (e.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n importedTypes[e.__type][e.apiName] = e;\n return;\n }\n // value types are a special case\n if (importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName] === undefined) {\n importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName] = [];\n }\n importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName].push(e);\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { importOntologyEntity } from \"./importOntologyEntity.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n/**\n * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation\n */\nexport function importSharedPropertyType(opts) {\n const {\n apiName,\n packageName,\n typeHint,\n array\n } = opts;\n const fullApiName = packageName === undefined ? apiName : `${packageName}.${apiName}`;\n if (packageName !== undefined) {\n !!packageName.endsWith(\".\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name format invalid ends with period\") : invariant(false) : void 0;\n !(packageName.match(\"[A-Z]\") == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name includes upper case characters\") : invariant(false) : void 0;\n }\n const spt = {\n apiName: fullApiName,\n type: typeHint,\n nonNameSpacedApiName: apiName,\n array: array ?? false,\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n };\n importOntologyEntity(spt);\n return spt;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition, updateOntology } from \"./defineOntology.js\";\nimport { defaultTypeClasses, getPropertyTypeName, hasRenderHints, shouldNotHaveRenderHints } from \"./propertyConversionUtils.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nexport function defineSharedPropertyType(sptDef) {\n const apiName = namespace + sptDef.apiName;\n !(ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Shared property type ${apiName} already exists`) : invariant(false) : void 0;\n !(!shouldNotHaveRenderHints(sptDef.type) || !hasRenderHints(sptDef.typeClasses)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Shared property type ${apiName} of type '${getPropertyTypeName(sptDef.type)}' should not have render hints`) : invariant(false) : void 0;\n const fullSpt = {\n ...sptDef,\n apiName,\n nonNameSpacedApiName: sptDef.apiName,\n displayName: sptDef.displayName ?? sptDef.apiName,\n // This way the non-namespaced api name is the display name (maybe not ideal)\n typeClasses: sptDef.typeClasses ?? (shouldNotHaveRenderHints(sptDef.type) ? [] : defaultTypeClasses),\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n };\n updateOntology(fullSpt);\n return fullSpt;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition, updateOntology, withoutNamespace } from \"./defineOntology.js\";\nimport { defineSharedPropertyType } from \"./defineSpt.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nexport function defineInterface(interfaceDef) {\n const apiName = namespace + interfaceDef.apiName;\n !(ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Interface ${apiName} already exists`) : invariant(false) : void 0;\n const properties = Object.fromEntries(Object.entries(interfaceDef.properties ?? {}).map(([propApiName, type]) => {\n if (typeof type === \"object\" && \"propertyDefinition\" in type) {\n return [namespace + propApiName, {\n required: type.required,\n sharedPropertyType: unifyBasePropertyDefinition(namespace, propApiName, type.propertyDefinition)\n }];\n }\n return [namespace + propApiName, {\n required: true,\n sharedPropertyType: unifyBasePropertyDefinition(namespace, propApiName, type)\n }];\n }));\n const extendsInterfaces = interfaceDef.extends ? Array.isArray(interfaceDef.extends) ? interfaceDef.extends : [interfaceDef.extends] : [];\n const status = mapSimplifiedStatusToInterfaceTypeStatus(interfaceDef.status ?? {\n type: \"active\"\n });\n !(status.type !== \"deprecated\" || status.deprecated.message && status.deprecated.deadline) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status must include message and deadline properties.`) : invariant(false) : void 0;\n const fullInterface = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator\n }\n } : undefined\n },\n extendsInterfaces,\n links: [],\n status,\n propertiesV2: properties,\n searchable: interfaceDef.searchable ?? true,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE\n };\n updateOntology(fullInterface);\n return fullInterface;\n}\nfunction isPropertyTypeType(v) {\n return v === \"boolean\" || v === \"byte\" || v === \"date\" || v === \"decimal\" || v === \"double\" || v === \"float\" || v === \"geopoint\" || v === \"geoshape\" || v === \"integer\" || v === \"long\" || typeof v === \"object\" && v.type === \"marking\" || v === \"short\" || v === \"string\" || v === \"timestamp\";\n}\nfunction mapSimplifiedStatusToInterfaceTypeStatus(status) {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n case \"active\":\n return {\n type: \"active\",\n active: {}\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {}\n };\n default:\n throw new Error(`Invalid status type: ${status.type}`);\n }\n}\nfunction unifyBasePropertyDefinition(namespace, apiName, type) {\n if (typeof type === \"string\" || typeof type === \"object\" && !(\"apiName\" in type)) {\n !isPropertyTypeType(type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Invalid data type ${JSON.stringify(type)} for property ${apiName} on InterfaceType ${apiName}`) : invariant(false) : void 0;\n const spt = defineSharedPropertyType({\n apiName,\n displayName: apiName,\n type,\n array: false\n });\n return spt;\n } else {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n !(namespace + apiName === type.apiName || apiName === unNamespacedTypeApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `property key and it's apiName must be identical. ${JSON.stringify({\n key: apiName,\n apiName: type.apiName\n })}`) : invariant(false) : void 0;\n return type;\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, sanitize, withoutNamespace } from \"./defineOntology.js\";\nexport function defineInterfaceLinkConstraint(linkDef) {\n const fromLinkMeta = getLinkMeta(linkDef);\n !(linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName) == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`) : invariant(false) : void 0;\n linkDef.from.links.push({\n cardinality: linkDef.toMany ? \"MANY\" : \"SINGLE\",\n linkedEntityTypeId: getLinkedType(linkDef.toMany ?? linkDef.toOne),\n metadata: fromLinkMeta,\n required: linkDef.required ?? true\n });\n}\nfunction getLinkedType(t) {\n return {\n type: \"interfaceType\",\n interfaceType: typeof t === \"string\" ? t : t.apiName\n };\n}\nfunction getLinkMeta(meta) {\n const {\n apiName,\n displayName,\n description\n } = meta;\n const apiNameWithNamespace = sanitize(namespace, apiName);\n const apiNameWithoutNamespace = withoutNamespace(apiNameWithNamespace);\n return {\n apiName: apiNameWithNamespace,\n displayName: displayName ?? apiNameWithoutNamespace,\n description: description ?? displayName ?? apiNameWithoutNamespace\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { convertToDisplayName, convertToPluralDisplayName } from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\nexport function defineLink(linkDefinition) {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.[linkDefinition.manyForeignKeyProperty];\n !(foreignKey !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;\n !typeIdPattern.test(linkDefinition.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`) : invariant(false) : void 0;\n const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n !typesMatch ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;\n }\n const fullLinkDefinition = \"one\" in linkDefinition ? {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)\n } : {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)\n };\n const linkType = {\n cardinality: \"one\" in linkDefinition ? linkDefinition.cardinality : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE\n };\n updateOntology(linkType);\n return linkType;\n}\nfunction convertUserOneToManyLinkDefinition(oneToMany) {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata)\n };\n}\nfunction convertUserManyToManyLinkDefinition(manyToMany) {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata)\n };\n}\nfunction convertLinkTypeMetadata(metadata) {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName ?? convertToDisplayName(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\"\n },\n typeClasses: []\n };\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, updateOntology } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nfunction convertValueTypeTypeToBaseType(valueType) {\n if (typeof valueType === \"string\") {}\n switch (true) {\n case typeof valueType === \"object\" && valueType.type === \"array\":\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"struct\":\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType)\n }))\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"map\":\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"optional\":\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType)\n }\n };\n case typeof valueType === \"string\":\n return {\n type: valueType,\n [valueType]: {}\n };\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\nexport function defineValueType(valueTypeDef) {\n const {\n apiName,\n displayName,\n description,\n type,\n version\n } = valueTypeDef;\n const semverValidation = /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n !semverValidation.test(version) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Version is not a valid semver\") : invariant(false) : void 0;\n const typeName = typeof type.type === \"string\" ? type.type : type.type.type === \"struct\" ? \"structV2\" : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints ? type.constraints.map(constraint => {\n const output = {\n constraint: {\n type: typeName,\n [typeName]: constraint.constraint\n },\n failureMessage: constraint.failureMessage\n };\n return {\n constraint: output\n };\n }) : [];\n const baseType = convertValueTypeTypeToBaseType(type.type);\n const vt = {\n apiName,\n packageNamespace: namespace.substring(0, namespace.length - 1),\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\"\n },\n status: {\n type: \"active\",\n active: {}\n },\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: [],\n __type: OntologyEntityTypeEnum.VALUE_TYPE\n };\n updateOntology(vt);\n return vt;\n}","/*\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 { importOntologyEntity } from \"./importOntologyEntity.js\";\n/**\n * Wraps an OntologyEntityType with a Proxy that calls importOntologyEntity when properties are accessed.\n *\n * @param entity - The OntologyEntityType to wrap with a Proxy\n * @returns A Proxy that imports the entity when properties are accessed\n */\nexport function wrapWithProxy(entity) {\n return new Proxy(entity, {\n get(target, prop, receiver) {\n importOntologyEntity(target);\n return Reflect.get(target, prop, receiver);\n }\n });\n}"]}
1
+ {"version":3,"sources":["../../src/api/types.ts","../../src/api/defineObject.ts","../../src/api/ontologyUtils.ts","../../src/api/propertyConversionUtils.ts","../../src/api/defineOntology.ts","../../src/cli/main.ts","../../src/api/addDependency.ts","../../src/api/defineAction.ts","../../src/api/importOntologyEntity.ts","../../src/api/defineImportSpt.ts","../../src/api/defineSpt.ts","../../src/api/defineInterface.ts","../../src/api/defineInterfaceLinkConstraint.ts","../../src/api/defineLink.ts","../../src/api/defineValueType.ts","../../src/api/wrapWithProxy.ts"],"names":["OntologyEntityTypeEnum","invariant","apiName","randomUUID","path","fs","namespace","yargs","hideBin","path2","consola","fs2","path3","fs3","sanitize"],"mappings":"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","file":"index.cjs","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\nexport let OntologyEntityTypeEnum = /*#__PURE__*/function (OntologyEntityTypeEnum) {\n OntologyEntityTypeEnum[\"OBJECT_TYPE\"] = \"OBJECT_TYPE\";\n OntologyEntityTypeEnum[\"LINK_TYPE\"] = \"LINK_TYPE\";\n OntologyEntityTypeEnum[\"INTERFACE_TYPE\"] = \"INTERFACE_TYPE\";\n OntologyEntityTypeEnum[\"SHARED_PROPERTY_TYPE\"] = \"SHARED_PROPERTY_TYPE\";\n OntologyEntityTypeEnum[\"ACTION_TYPE\"] = \"ACTION_TYPE\";\n OntologyEntityTypeEnum[\"VALUE_TYPE\"] = \"VALUE_TYPE\";\n return OntologyEntityTypeEnum;\n}({});\nexport const MODIFY_OBJECT_PARAMETER = \"objectToModifyParameter\";\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER = \"objectToCreateOrModifyParameter\";\n\n// TODO(ethana): add more commonly used conditions - parameter matching, organizations, etc.\n\n// TODO(dpaquin): cleanup? or does \"type: foo\" actually make sense here","/*\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 { addNamespaceIfNone, namespace, ontologyDefinition, updateOntology } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION = /^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 = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\nexport function defineObject(objectDef) {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties ? Object.keys(objectDef.properties) : [];\n if (ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName] !== undefined) {\n throw new Error(`Object type with apiName ${objectDef.apiName} is already defined`);\n }\n !propertyApiNames.includes(objectDef.titlePropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`) : invariant(false) : void 0;\n !propertyApiNames.includes(objectDef.primaryKeyPropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;\n !!objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`) : invariant(false) : void 0;\n const retentionPeriod = objectDef.datasource?.retentionPeriod;\n !(retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`) : invariant(false) : void 0;\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 = [];\n Object.entries(objectDef.properties ?? {}).forEach(([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n });\n !(activeProperties.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${activeProperties.join(\", \")}`) : invariant(false) : void 0;\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (objectDef.status && typeof objectDef.status === \"object\" && objectDef.status.type === \"deprecated\") {\n const deadline = objectDef.status.deadline;\n !(deadline !== undefined && ISO_8601_DATETIME.test(deadline)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`) : invariant(false) : void 0;\n }\n !!isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} must be a primitive type`) : invariant(false) : void 0;\n !!isExotic(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`) : invariant(false) : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(interfaceImpl.implements);\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => allInterfaceProperties[addNamespaceIfNone(interfaceProperty)] === undefined).map(interfaceProp => ({\n type: \"invalid\",\n reason: `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`\n }));\n const interfaceToObjectProperties = Object.fromEntries(interfaceImpl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), mapping.mapsTo]));\n const validateProperty = interfaceProp => {\n if (interfaceProp[1].sharedPropertyType.apiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1].sharedPropertyType, interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceProp[1].sharedPropertyType.apiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const validations = Object.entries(getAllInterfaceProperties(interfaceImpl.implements)).map(validateProperty);\n const allFailedValidations = validations.concat(nonExistentInterfaceProperties).filter(val => val.type === \"invalid\");\n !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\")) : invariant(false) : void 0;\n });\n const flattenedProperties = Object.entries(objectDef.properties ?? {}).map(([apiName, property]) => convertUserObjectPropertyType(property.apiName ?? apiName, property));\n const finalObject = {\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}\nexport function isExotic(type) {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(type);\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\nfunction formatValidationErrors(error) {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(spt, mappedObjectProp, object) {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason: `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: `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`\n };\n }\n return {\n type: \"valid\"\n };\n}\nexport function convertToDisplayName(s) {\n return s === undefined || s == null ? \"\" : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(s) {\n return s === undefined || s == null ? \"\" : s.endsWith(\"s\") ? convertToDisplayName(s) : convertToDisplayName(s) + \"s\";\n}\nexport function getAllInterfaceProperties(interfaceType) {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = {\n ...properties,\n ...getAllInterfaceProperties(ext)\n };\n });\n return properties;\n}\nfunction convertUserObjectPropertyType(apiName, property) {\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 * 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 { randomUUID } from \"node:crypto\";\nimport { extractAllowedValues } from \"./defineOntology.js\";\nexport function convertActionVisibility(visibility) {\n switch (visibility) {\n case \"editable\":\n return {\n type: \"editable\",\n editable: {}\n };\n case \"disabled\":\n return {\n type: \"disabled\",\n disabled: {}\n };\n case \"hidden\":\n return {\n type: \"hidden\",\n hidden: {}\n };\n default:\n return {\n type: \"editable\",\n editable: {}\n };\n }\n}\nexport function convertActionParameterConditionalOverride(override, validation) {\n let parameterBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required ? {\n type: \"notRequired\",\n notRequired: {}\n } : {\n type: \"required\",\n required: {}\n }\n }\n };\n break;\n case \"visibility\":\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: validation.defaultVisibility === \"editable\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"editable\",\n editable: {}\n }\n }\n };\n break;\n case \"disabled\":\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: validation.defaultVisibility === \"editable\" ? {\n type: \"disabled\",\n disabled: {}\n } : {\n type: \"editable\",\n editable: {}\n }\n }\n };\n break;\n case \"defaultValue\":\n parameterBlockOverride = {\n type: \"prefill\",\n prefill: {\n prefill: override.defaultValue\n }\n };\n break;\n case \"constraint\":\n parameterBlockOverride = {\n type: \"allowedValues\",\n allowedValues: {\n allowedValues: extractAllowedValues(override.constraint)\n }\n };\n break;\n default:\n throw new Error(`Unknown parameter override type`);\n }\n return {\n condition: convertConditionDefinition(override.condition),\n parameterBlockOverrides: [parameterBlockOverride]\n };\n}\nexport function convertSectionConditionalOverride(override, defaultVisibility) {\n return {\n condition: convertConditionDefinition(override.condition),\n sectionBlockOverrides: [{\n type: \"visibility\",\n visibility: {\n visibility: defaultVisibility === \"visible\" ? {\n type: \"hidden\",\n hidden: {}\n } : {\n type: \"visible\",\n visible: {}\n }\n }\n }]\n };\n}\nexport function convertConditionDefinition(condition) {\n switch (condition.type) {\n case \"and\":\n if (\"conditions\" in condition) {\n return {\n type: \"and\",\n and: {\n conditions: condition.conditions.map(c => convertConditionDefinition(c))\n }\n };\n } else {\n return condition;\n }\n case \"or\":\n if (\"conditions\" in condition) {\n return {\n type: \"or\",\n or: {\n conditions: condition.conditions.map(c => convertConditionDefinition(c))\n }\n };\n } else {\n return condition;\n }\n case \"group\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"INTERSECTS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n userId: {\n type: \"currentUser\",\n currentUser: {}\n },\n propertyValue: {\n type: \"groupIds\",\n groupIds: {}\n }\n }\n },\n right: {\n type: \"staticValue\",\n staticValue: {\n type: \"stringList\",\n stringList: {\n strings: [condition.name]\n }\n }\n }\n }\n };\n case \"parameter\":\n return {\n type: \"comparison\",\n comparison: {\n operator: \"EQUALS\",\n left: {\n type: \"parameterId\",\n parameterId: condition.parameterId\n },\n right: condition.matches\n }\n };\n default:\n return condition;\n }\n}\nexport function getFormContentOrdering(action, parameterOrdering) {\n if (!action.sections) return [];\n const parametersToSection = Object.fromEntries(Object.entries(action.sections).flatMap(([sectionId, section]) => section.parameters.map(param => [param, sectionId])));\n const seenIds = new Set();\n const formContentOrdering = [];\n parameterOrdering.forEach(param => {\n if (param in parametersToSection && !seenIds.has(parametersToSection[param])) {\n formContentOrdering.push({\n type: \"sectionId\",\n sectionId: parametersToSection[param]\n });\n seenIds.add(parametersToSection[param]);\n } else if (!(param in parametersToSection)) {\n formContentOrdering.push({\n type: \"parameterId\",\n parameterId: param\n });\n seenIds.add(param);\n }\n });\n return formContentOrdering;\n}\nexport function convertMappingValue(value) {\n switch (value.type) {\n case \"uuid\":\n return {\n type: \"uniqueIdentifier\",\n uniqueIdentifier: {\n linkId: value.linkId ?? randomUUID()\n }\n };\n case \"currentTime\":\n return {\n type: \"currentTime\",\n currentTime: {}\n };\n case \"currentUser\":\n return {\n type: \"currentUser\",\n currentUser: {}\n };\n default:\n return value;\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nexport const defaultTypeClasses = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\"\n}, {\n kind: \"render_hint\",\n name: \"SORTABLE\"\n}];\n\n// ExperimentalTimeDependentV1 and Attachment types should be included here once supported\nexport function shouldNotHaveRenderHints(type) {\n return [\"struct\", \"mediaReference\", \"geotimeSeries\"].includes(getPropertyTypeName(type));\n}\nexport function hasRenderHints(typeClasses) {\n return (typeClasses ?? []).some(tc => tc.kind.toLowerCase() === \"render_hint\");\n}\nexport function getPropertyTypeName(type) {\n return typeof type === \"object\" ? type.type : type;\n}\nexport function convertValueType(valueType) {\n return {\n apiName: valueType.apiName,\n version: valueType.version,\n packageNamespace: valueType.packageNamespace,\n displayMetadata: valueType.displayMetadata\n };\n}\nexport function convertValueTypeDataConstraints(dataConstraints) {\n if (dataConstraints.length === 0) {\n return undefined;\n }\n const propertyTypeConstraints = dataConstraints.map(constraint => ({\n constraints: dataConstraintToPropertyTypeDataConstraint(constraint.constraint.constraint),\n failureMessage: constraint.constraint.failureMessage\n }));\n return {\n propertyTypeConstraints\n };\n}\nexport function dataConstraintToPropertyTypeDataConstraint(dc) {\n switch (dc.type) {\n case \"array\":\n return {\n ...dc\n };\n case \"boolean\":\n return {\n ...dc\n };\n case \"binary\":\n throw new Error(\"Binary type constraints are not supported\");\n case \"date\":\n return {\n ...dc\n };\n case \"decimal\":\n return {\n ...dc\n };\n case \"double\":\n return {\n ...dc\n };\n case \"float\":\n return {\n ...dc\n };\n case \"integer\":\n return {\n ...dc\n };\n case \"long\":\n return {\n ...dc\n };\n case \"map\":\n throw new Error(\"Map type constraints are not supported\");\n case \"nullable\":\n throw new Error(\"Nullable constraints are not supported\");\n case \"short\":\n return {\n ...dc\n };\n case \"string\":\n return {\n ...dc\n };\n case \"struct\":\n return {\n type: \"struct\",\n struct: {\n elementConstraints: Object.fromEntries(Object.entries(dc.struct.elementConstraints).map(([field, constraint]) => [field, convertDataConstraintToDataConstraints(constraint)]))\n }\n };\n case \"structV2\":\n throw new Error(\"StructV2 constraints are not supported\");\n case \"timestamp\":\n return {\n ...dc\n };\n default:\n throw new Error(`Unknown DataConstraint type: ${dc.type}`);\n }\n}\nexport function convertDataConstraintToDataConstraints(dc) {\n return {\n propertyTypeConstraints: [{\n constraints: dataConstraintToPropertyTypeDataConstraint(dc)\n // known limitation: structs don't carry field-level data constraint failure messages\n }]\n };\n}\nexport function convertNullabilityToDataConstraint(prop) {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noEmptyCollections: true,\n noNulls: true\n }\n };\n }\n !prop.nullability?.noNulls ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Marking property type has noNulls set to false, marking properties must not be nullable\") : invariant(false) : void 0;\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n}\nexport function convertType(type) {\n switch (true) {\n case typeof type === \"object\" && \"markingType\" in type:\n return {\n \"type\": \"marking\",\n marking: {\n markingType: type.markingType\n }\n };\n case typeof type === \"object\" && \"structDefinition\" in type:\n const structFields = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? []\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n }\n }\n structFields.push(field);\n }\n return {\n type: \"struct\",\n struct: {\n structFields\n }\n };\n case typeof type === \"object\" && \"isLongText\" in type:\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard: type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching\n }\n };\n case type === \"geopoint\":\n return {\n type: \"geohash\",\n geohash: {}\n };\n case type === \"decimal\":\n return {\n type,\n [type]: {\n precision: undefined,\n scale: undefined\n }\n };\n case type === \"string\":\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true\n }\n };\n case type === \"mediaReference\":\n return {\n type: type,\n mediaReference: {}\n };\n case type === \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nexport function distributeTypeHelper(type) {\n return {\n type,\n [type]: {}\n }; // any cast to match conditional return type\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport invariant from \"tiny-invariant\";\nimport { convertToDisplayName, isExotic } from \"./defineObject.js\";\nimport { convertActionParameterConditionalOverride, convertActionVisibility, convertSectionConditionalOverride, getFormContentOrdering } from \"./ontologyUtils.js\";\nimport { convertNullabilityToDataConstraint, convertType, convertValueType, convertValueTypeDataConstraints, defaultTypeClasses, getPropertyTypeName, hasRenderHints, shouldNotHaveRenderHints } from \"./propertyConversionUtils.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes;\n\n// namespace -> version\n/** @internal */\nexport let dependencies;\n\n/** @internal */\nexport let namespace;\nexport function updateOntology(entity) {\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 (ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] === undefined) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName].push(entity);\n}\nexport async function defineOntology(ns, body, outputDir, dependencyFile) {\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(\"Unexpected error while processing the body of the ontology\", e);\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n return convertToWireOntologyIr(ontologyDefinition);\n}\nexport function writeStaticObjects(outputDir) {\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 if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, {\n 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, {\n recursive: true,\n force: true\n });\n }\n fs.mkdirSync(currentTypeDirPath, {\n recursive: true\n });\n });\n const topLevelExportStatements = [];\n Object.entries(ontologyDefinition).forEach(([ontologyTypeEnumKey, entities]) => {\n const typeDirName = typeDirs[ontologyTypeEnumKey];\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames = [];\n Object.entries(entities).forEach(([apiName, entity]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName)) + (ontologyTypeEnumKey === OntologyEntityTypeEnum.VALUE_TYPE ? \"ValueType\" : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(/(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g, (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`);\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${ontologyTypeEnumKey === \"VALUE_TYPE\" ? entityJSON.slice(1, -2) : entityJSON} as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, {\n flag: \"w\"\n });\n entityModuleNames.push(entityFileNameBase);\n });\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(`export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`);\n }\n });\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString() + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, {\n flag: \"w\"\n });\n }\n}\nfunction convertOntologyToValueTypeIr(ontology) {\n return {\n valueTypes: convertValueTypesToIr(ontology[OntologyEntityTypeEnum.VALUE_TYPE])\n };\n}\nfunction convertValueTypesToIr(valueTypes) {\n return Object.values(valueTypes).map(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n packageNamespace: definitions[0].packageNamespace,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status\n },\n // TODO(dpaquin): instead of deduping here, we should refactor the value type types from arrays to maps\n versions: Array.from(new Map(definitions.map(definition => [definition.version, definition])).values()).map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues\n }))\n }));\n}\nfunction convertToWireOntologyIr(ontology) {\n return {\n ontology: convertToWireBlockData(ontology),\n importedOntology: convertToWireBlockData(importedTypes),\n valueTypes: convertOntologyToValueTypeIr(ontology),\n importedValueTypes: convertOntologyToValueTypeIr(importedTypes)\n };\n}\nfunction convertToWireBlockData(ontology) {\n return {\n objectTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n })),\n sharedPropertyTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]).map(([apiName, spt]) => [apiName, {\n sharedPropertyType: convertSpt(spt)\n }])),\n interfaceTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.INTERFACE_TYPE]).map(([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType)\n }];\n })),\n linkTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map(([id, link]) => {\n return [id, convertLink(link)];\n })),\n actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map(([apiName, action]) => {\n return [apiName, convertAction(action)];\n })),\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).filter(([apiName, action]) => action.validation).map(([apiName, action]) => {\n return [apiName, {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null,\n publicProject: false\n }\n }];\n })),\n linkTypes: {},\n objectTypes: {}\n }\n };\n}\nfunction convertObject(objectType) {\n const propertyDatasources = (objectType.properties ?? []).flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n const classificationGroupMarkingNames = extractMarkingGroups(objectType.properties ?? [], \"CBAC\");\n const mandatoryMarkingNames = extractMarkingGroups(objectType.properties ?? [], \"MANDATORY\");\n const classificationInputGroup = classificationGroupMarkingNames.length > 0 ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r) : undefined;\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0 ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r) : undefined;\n const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, objectType.properties ?? []), classificationInputGroup, mandatoryInputGroup);\n const implementations = objectType.implementsInterfaces ?? [];\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 ?? {\n locator: \"cube\",\n color: \"#2D72D2\"\n }\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\"\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),\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(impl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), {\n propertyTypeRid: mapping.mapsTo\n }]))\n })),\n allImplementsInterfaces: {}\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false\n }\n };\n}\nfunction extractPropertyDatasource(property, objectTypeApiName) {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type) {\n case \"geotimeSeries\":\n const geotimeDefinition = {\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 = {\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}\nfunction buildDatasource(apiName, definition, classificationMarkingGroupName, mandatoryMarkingGroupName) {\n const needsSecurity = classificationMarkingGroupName !== undefined || mandatoryMarkingGroupName !== undefined;\n const securityConfig = needsSecurity ? {\n classificationConstraint: classificationMarkingGroupName ? {\n markingGroupName: classificationMarkingGroupName\n } : undefined,\n markingConstraint: mandatoryMarkingGroupName ? {\n markingGroupName: mandatoryMarkingGroupName\n } : undefined\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 && {\n dataSecurity: securityConfig\n })\n };\n}\nfunction convertDatasourceDefinition(objectType, properties) {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy = window ? {\n type: \"time\",\n time: {\n window\n }\n } : {\n type: \"none\",\n none: {}\n };\n const propertyMapping = Object.fromEntries(properties.map(prop => [prop.apiName, prop.apiName]));\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(properties, markingType) {\n return properties.map(prop => {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\" && prop.type.markingType === markingType) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n }).filter(val => val !== undefined);\n}\nfunction buildPropertyMapping(properties) {\n return Object.fromEntries(properties.map(prop => {\n // editOnly\n if (prop.editOnly) {\n return [prop.apiName, {\n type: \"editOnly\",\n editOnly: {}\n }];\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(Object.keys(prop.type.structDefinition).map(fieldName => [fieldName, {\n apiName: fieldName,\n mappings: {}\n }]))\n }\n };\n return [prop.apiName, structMapping];\n }\n // default: column mapping\n return [prop.apiName, {\n type: \"column\",\n column: prop.apiName\n }];\n }));\n}\nfunction convertProperty(property) {\n const apiName = namespace + property.apiName;\n !(!shouldNotHaveRenderHints(property.type) || !hasRenderHints(property.typeClasses)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property type ${apiName} of type '${getPropertyTypeName(property.type)}' should not have render hints`) : invariant(false) : void 0;\n const output = {\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 type: \"array\",\n array: {\n subtype: convertType(property.type)\n }\n } : convertType(property.type),\n typeClasses: property.typeClasses ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType ? convertValueTypeDataConstraints(property.valueType.constraints) : convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: property.valueType ? convertValueType(property.valueType) : undefined\n };\n return output;\n}\nfunction convertLink(linkType) {\n let definition;\n let datasource = 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 datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n },\n column: linkType.many.object.primaryKeyPropertyApiName\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n },\n column: linkType.toMany.object.primaryKeyPropertyApiName\n }]\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: linkType.redacted\n };\n }\n return {\n linkType: {\n definition: definition,\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: linkType.status ?? {\n type: \"active\",\n active: {}\n },\n redacted: linkType.redacted ?? false\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false\n }\n };\n}\nfunction cleanAndValidateLinkTypeId(apiName) {\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\").toLowerCase();\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(`LinkType id '${linkTypeId}' must be lower case with dashes.`);\n }\n return linkTypeId;\n}\nfunction convertInterface(interfaceType) {\n const {\n __type,\n ...other\n } = interfaceType;\n return {\n ...other,\n propertiesV2: Object.fromEntries(Object.values(interfaceType.propertiesV2).map(spt => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType)\n }])),\n displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description\n },\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n // TODO(mwalther): Support propertiesV3\n propertiesV3: {}\n };\n}\nexport function dumpOntologyFullMetadata() {\n return convertToWireOntologyIr(ontologyDefinition);\n}\nexport function dumpValueTypeWireType() {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\nfunction convertSpt({\n type,\n array,\n description,\n apiName,\n displayName,\n visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability\n}) {\n const dataConstraint = convertNullabilityToDataConstraint({\n type,\n nullability\n });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: visibility ?? \"NORMAL\",\n description\n },\n type: array ? {\n type: \"array\",\n array: {\n subtype: convertType(type)\n }\n } : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n typeClasses: typeClasses ?? [],\n valueType: valueType === undefined ? undefined : {\n apiName: valueType.apiName,\n version: valueType.version,\n packageNamespace: valueType.packageNamespace,\n displayMetadata: valueType.displayMetadata\n }\n };\n}\nfunction convertObjectStatus(status) {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {}\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 return status;\n}\nfunction convertAction(action) {\n const actionValidation = convertActionValidation(action);\n const actionParameters = convertActionParameters(action);\n const actionSections = convertActionSections(action);\n const parameterOrdering = action.parameterOrdering ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules\n },\n validation: actionValidation\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1\n }\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? {\n locator: \"edit\",\n color: \"#000000\"\n }\n },\n successMessage: action.submissionMetadata?.successMessage ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage\n }] : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata && {\n submitButtonDisplayMetadata: action.submissionMetadata.submitButtonDisplayMetadata\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration && {\n undoButtonConfiguration: action.submissionMetadata.undoButtonConfiguration\n })\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\" ? {\n type: action.status,\n [action.status]: {}\n } : action.status,\n entities: action.entities\n }\n }\n };\n}\nfunction convertActionValidation(action) {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries((action.validation ?? [{\n condition: {\n type: \"true\",\n true: {}\n },\n displayMetadata: {\n failureMessage: \"\",\n typeClasses: []\n }\n }]).map((rule, idx) => [idx, rule]))\n },\n parameterValidations: Object.fromEntries((action.parameters ?? []).map(p => {\n return [p.id, {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p),\n visibility: convertActionVisibility(p.validation.defaultVisibility),\n ...(p.defaultValue && {\n prefill: p.defaultValue\n })\n },\n validation: {\n allowedValues: extractAllowedValues(p.validation.allowedValues),\n required: convertParameterRequirementConstraint(p.validation.required)\n }\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(override => convertActionParameterConditionalOverride(override, p.validation)) ?? []\n }];\n })),\n sectionValidations: {\n ...Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, section]) => [section.id, {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\" ? {\n visibility: {\n type: \"hidden\",\n hidden: {}\n }\n } : {\n visibility: {\n type: \"visible\",\n visible: {}\n }\n },\n conditionalOverrides: section.conditionalOverrides?.map(override => convertSectionConditionalOverride(override, section.defaultVisibility ?? \"visible\")) ?? []\n }]))\n }\n };\n}\nfunction convertActionParameters(action) {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: typeof p.type === \"string\" ? {\n type: p.type,\n [p.type]: {}\n } : p.type,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: []\n }\n }]));\n}\nfunction convertActionSections(action) {\n return Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, section]) => [sectionId, {\n id: sectionId,\n content: section.parameters.map(p => ({\n type: \"parameterId\",\n parameterId: p\n })),\n displayMetadata: {\n collapsedByDefault: section.collapsedByDefault ?? false,\n columnCount: section.columnCount ?? 1,\n description: section.description ?? \"\",\n displayName: section.displayName ?? convertToDisplayName(sectionId),\n showTitleBar: section.showTitleBar ?? true,\n ...(section.style && {\n style: section.style === \"box\" ? {\n type: \"box\",\n box: {}\n } : {\n type: \"minimal\",\n minimal: {}\n }\n })\n }\n }]));\n}\nexport function extractAllowedValues(allowedValues) {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed ?? false\n }\n }\n }\n };\n case \"range\":\n const {\n min,\n max\n } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined ? {} : {\n minimum: {\n inclusive: true,\n value: min\n }\n }),\n ...(max === undefined ? {} : {\n maximum: {\n inclusive: true,\n value: max\n }\n })\n }\n }\n };\n case \"text\":\n const {\n minLength,\n maxLength,\n regex\n } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined ? {} : {\n minLength: minLength\n }),\n ...(maxLength === undefined ? {} : {\n maxLength: maxLength\n }),\n ...(regex === undefined ? {} : {\n regex: {\n regex: regex,\n failureMessage: \"Invalid input\"\n }\n })\n }\n }\n };\n case \"datetime\":\n const {\n minimum,\n maximum\n } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum\n }\n }\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes\n }\n }\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {}\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {}\n }\n };\n default:\n const k = allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {}\n }\n };\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\nfunction renderHintFromBaseType(parameter) {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\" ? parameter.type : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"checkbox\",\n checkbox: {}\n };\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 {\n type: \"numericInput\",\n numericInput: {}\n };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return {\n type: \"textInput\",\n textInput: {}\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"dateTimePicker\",\n dateTimePicker: {}\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"filePicker\",\n filePicker: {}\n };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return {\n type: \"mandatoryMarkingPicker\",\n mandatoryMarkingPicker: {}\n };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return {\n type: \"cbacMarkingPicker\",\n cbacMarkingPicker: {}\n };\n } else {\n throw new Error(`The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`);\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 {\n type: \"dropdown\",\n dropdown: {}\n };\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}\nfunction convertParameterRequirementConstraint(required) {\n if (typeof required === \"boolean\") {\n return required ? {\n type: \"required\",\n required: {}\n } : {\n type: \"notRequired\",\n notRequired: {}\n };\n }\n const {\n min,\n max\n } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: {\n minLength: min,\n maxLength: max\n }\n };\n}\nexport function sanitize(namespace, s) {\n return s.includes(\".\") ? s : namespace + s;\n}\nexport function extractNamespace(apiName) {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\nexport function withoutNamespace(apiName) {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\nfunction camel(str) {\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) {\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}\nfunction writeDependencyFile(dependencyFile) {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\nfunction dependencyInjectionString() {\n const namespaceNoDot = namespace.endsWith(\".\") ? namespace.slice(0, -1) : namespace;\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\nexport function addNamespaceIfNone(apiName) {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\nfunction convertCardinality(cardinality) {\n if (cardinality === \"OneToMany\" || cardinality === undefined) {\n return \"ONE_TO_MANY\";\n }\n return \"ONE_TO_ONE\";\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"consola\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nexport default async function main(args = process.argv) {\n const commandLineOpts = await yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve\n },\n output: {\n alias: \"o\",\n describe: \"Output file\",\n type: \"string\",\n default: \"ontology.json\",\n coerce: path.resolve\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\"\n },\n snapshotDir: {\n alias: \"s\",\n describe: \"Snapshot directory\",\n type: \"string\",\n default: \"snapshots\",\n coerce: path.resolve\n },\n outputDir: {\n alias: \"d\",\n describe: \"Directory for generated ontology entities\",\n type: \"string\",\n coerce: path.resolve\n },\n valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve\n },\n dependencies: {\n describe: \"File to write dependencies to\",\n type: \"string\",\n coerce: path.resolve\n }\n }).parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = commandLineOpts.apiNamespace.slice(-1) !== \".\" ? commandLineOpts.apiNamespace + \".\" : commandLineOpts.apiNamespace;\n !(apiNamespace.length < 1024) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is too long.\") : invariant(false) : void 0;\n !apiNamespaceRegex.test(apiNamespace) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\") : invariant(false) : void 0;\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n const ontologyIr = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.outputDir, commandLineOpts.dependencies);\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(commandLineOpts.output, JSON.stringify(ontologyIr, null, 2));\n // No point in generating block if there aren't any value types\n if (ontologyIr.valueTypes.valueTypes.length > 0 || ontologyIr.importedValueTypes.valueTypes.length > 0) {\n await fs.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(ontologyIr.valueTypes, null, 2));\n }\n}\nasync function loadOntology(input, apiNamespace, outputDir, dependencyFile) {\n const q = await defineOntology(apiNamespace, async () => await import(input), outputDir, dependencyFile);\n return q;\n}","/*\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 * as fs from \"fs\";\nimport * as path from \"path\";\nimport { dependencies } from \"./defineOntology.js\";\nconst MAX_SEARCH_DEPTH = 5;\nexport function addDependency(namespaceNoDot, fileInPackage) {\n let dir = path.dirname(fileInPackage);\n let packageJsonPath = null;\n for (let i = 0; i < MAX_SEARCH_DEPTH; i++) {\n const candidate = path.join(dir, \"package.json\");\n if (fs.existsSync(candidate)) {\n packageJsonPath = candidate;\n break;\n }\n const parentDir = path.dirname(dir);\n if (parentDir === dir) break;\n dir = parentDir;\n }\n if (!packageJsonPath) {\n throw new Error(`Could not find a package.json within ${MAX_SEARCH_DEPTH} parent directories of ${fileInPackage}`);\n }\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n dependencies[namespaceNoDot] = packageJson.version ?? \"\";\n}","/*\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 { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport { convertToDisplayName, getAllInterfaceProperties } from \"./defineObject.js\";\nimport { namespace, ontologyDefinition, updateOntology } from \"./defineOntology.js\";\nimport { convertConditionDefinition, convertMappingValue } from \"./ontologyUtils.js\";\nimport { CREATE_OR_MODIFY_OBJECT_PARAMETER, MODIFY_OBJECT_PARAMETER, OntologyEntityTypeEnum } from \"./types.js\";\nexport function defineCreateInterfaceObjectAction(interfaceType, objectType, validation) {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (allProperties.length !== Object.entries(getAllInterfaceProperties(interfaceType)).length) {\n consola.info(`Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`);\n }\n return defineAction({\n apiName: `create-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [interfaceType.apiName]\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName]\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...allProperties.map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: []\n },\n rules: [{\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }],\n ...(validation ? {\n validation: convertValidationRule(validation)\n } : {})\n });\n}\nexport function defineCreateObjectAction(def) {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type));\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));\n const actionApiName = def.apiName ?? `create-object-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`;\n if (def.parameterOrdering) {\n validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);\n }\n const parameters = createParameters(def, parameterNames);\n const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: {\n ...Object.fromEntries(propertyParameters.map(p => [p, {\n type: \"parameterId\",\n parameterId: p\n }])),\n ...mappings\n },\n structFieldValues: {}\n }\n }],\n parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters),\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {}),\n ...(def.defaultFormat && {\n defaultFormat: def.defaultFormat\n }),\n ...(def.enableLayoutSwitch && {\n enableLayoutSwitch: def.enableLayoutSwitch\n }),\n ...(def.displayAndFormat && {\n displayAndFormat: def.displayAndFormat\n }),\n ...(def.sections && {\n sections: Object.fromEntries(def.sections.map(section => [section.id, section]))\n }),\n ...(def.submissionMetadata && {\n submissionMetadata: def.submissionMetadata\n })\n });\n}\nexport function defineModifyInterfaceObjectAction(interfaceType, objectType, validation) {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (allProperties.length !== Object.entries(getAllInterfaceProperties(interfaceType)).length) {\n consola.info(`Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`);\n }\n return defineAction({\n apiName: `modify-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: interfaceType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"interfaceObjectQuery\"\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...allProperties.map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: []\n },\n rules: [{\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }],\n ...(validation ? {\n validation: convertValidationRule(validation)\n } : {})\n });\n}\nexport function defineModifyObjectAction(def) {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [MODIFY_OBJECT_PARAMETER, ...def.parameterOrdering];\n }\n validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(p => {\n if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id\n }\n };\n }\n });\n const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(propertyParameters.map(p => [p, {\n type: \"parameterId\",\n parameterId: p\n }])),\n ...mappings\n },\n structFieldValues: {}\n }\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, MODIFY_OBJECT_PARAMETER),\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {}),\n ...(def.defaultFormat && {\n defaultFormat: def.defaultFormat\n }),\n ...(def.enableLayoutSwitch && {\n enableLayoutSwitch: def.enableLayoutSwitch\n }),\n ...(def.displayAndFormat && {\n displayAndFormat: def.displayAndFormat\n }),\n ...(def.sections && {\n sections: Object.fromEntries(def.sections.map(section => [section.id, section]))\n }),\n ...(def.submissionMetadata && {\n submissionMetadata: def.submissionMetadata\n })\n });\n}\nexport function defineDeleteObjectAction(def) {\n return defineAction({\n apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [{\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: {\n type: \"objectQuery\"\n }\n }\n }],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\"\n }\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {})\n });\n}\nexport function defineCreateOrModifyObjectAction(def) {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `create-or-modify-${kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)}`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [CREATE_OR_MODIFY_OBJECT_PARAMETER, ...def.parameterOrdering];\n }\n validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(p => {\n if (p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id\n }\n };\n }\n });\n const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(propertyParameters.map(p => [p, {\n type: \"parameterId\",\n parameterId: p\n }])),\n ...mappings\n },\n structFieldValues: {}\n }\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: []\n },\n parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, CREATE_OR_MODIFY_OBJECT_PARAMETER),\n ...(def.actionLevelValidation ? {\n validation: convertValidationRule(def.actionLevelValidation)\n } : {}),\n ...(def.defaultFormat && {\n defaultFormat: def.defaultFormat\n }),\n ...(def.enableLayoutSwitch && {\n enableLayoutSwitch: def.enableLayoutSwitch\n }),\n ...(def.displayAndFormat && {\n displayAndFormat: def.displayAndFormat\n }),\n ...(def.sections && {\n sections: Object.fromEntries(def.sections.map(section => [section.id, section]))\n }),\n ...(def.submissionMetadata && {\n submissionMetadata: def.submissionMetadata\n })\n });\n}\nexport function defineAction(actionDef) {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n if (ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName] !== undefined) {\n throw new Error(`Action type with apiName ${actionDef.apiName} is already defined`);\n }\n !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`) : invariant(false) : void 0;\n const parameterIdsSet = new Set(parameterIds);\n !(parameterIdsSet.size === parameterIds.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter ids must be unique`) : invariant(false) : void 0;\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef)).filter(p => !parameterIdsSet.has(p));\n !(parameterIdsNotFound.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameters ${JSON.stringify(parameterIdsNotFound)} were referenced but not defined`) : invariant(false) : void 0;\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? []).flatMap(s => s.type === \"parameterId\" ? [] : [s.sectionId]).filter(sId => !definedSectionIds.has(sId));\n !(undefinedSectionsInOrdering.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`) : invariant(false) : void 0;\n !(actionDef.rules.length > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type ${actionDef.apiName} must have at least one logic rule`) : invariant(false) : void 0;\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n !parameterIds.some(id => id === rule.modifyObjectRule.objectToModify) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to modify parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n if (rule.type === \"deleteObjectRule\") {\n !parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to delete parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n });\n const fullAction = {\n ...actionDef,\n apiName: apiName,\n entities: actionDef.entities ?? {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: []\n },\n __type: OntologyEntityTypeEnum.ACTION_TYPE\n };\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\nfunction createParameters(def, parameterSet) {\n const targetParam = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName ?? \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName\n }\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: {\n type: \"objectQuery\"\n },\n required: def.parameterConfiguration?.[name]?.required ?? true\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName,\n maybeCreateObjectOption: !def.primaryKeyOption || def.primaryKeyOption === \"autoGenerated\" ? {\n type: \"autoGenerated\",\n autoGenerated: {}\n } : {\n type: \"userInput\",\n userInput: {}\n }\n }\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: {\n type: \"objectQuery\"\n },\n required: def.parameterConfiguration?.[name]?.required ?? true\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n });\n return [...targetParam, ...Array.from(parameterSet).map(id => ({\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName ?? def.objectType.properties?.[id]?.displayName ?? convertToDisplayName(id),\n type: def.parameterConfiguration?.[id]?.customParameterType ?? extractActionParameterType(def.objectType.properties?.[id]),\n validation: def.parameterConfiguration?.[id] !== undefined ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues ?? (def.parameterConfiguration?.[id].customParameterType ? extractAllowedValuesFromActionParameterType(def.parameterConfiguration?.[id].customParameterType) : extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)),\n required: def.parameterConfiguration?.[id].required ?? def.objectType.properties?.[id]?.nullability?.noNulls ?? false\n } : {\n required: def.objectType.properties?.[id].array ?? false ? {\n listLength: def.objectType.properties?.[id].nullability?.noEmptyCollections ? {\n min: 1\n } : {}\n } : def.objectType.properties?.[id].nullability?.noNulls ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description\n }))];\n}\nfunction referencedParameterIds(actionDef) {\n const parameterIds = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {}).flatMap(p => p.parameters).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(rule.addInterfaceRule.interfaceApiName);\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n });\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(rule.modifyInterfaceRule.interfaceObjectToModifyParameter);\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n });\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n }\n });\n return parameterIds;\n}\nfunction extractAllowedValuesFromActionParameterType(type) {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return {\n type: \"objectQuery\"\n };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`);\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"boolean\"\n };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return {\n type: \"range\"\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"datetime\"\n };\n case \"string\":\n case \"stringList\":\n return {\n type: \"text\"\n };\n case \"geohash\":\n case \"geohashList\":\n return {\n type: \"geohash\"\n };\n case \"geoshape\":\n case \"geoshapeList\":\n return {\n type: \"geoshape\"\n };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return {\n type: \"mediaReference\"\n };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return {\n type: \"geotimeSeriesReference\"\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"attachment\"\n };\n default:\n throw new Error(`Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`);\n }\n}\nfunction extractAllowedValuesFromPropertyType(type) {\n switch (type) {\n case \"boolean\":\n return {\n type: \"boolean\"\n };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 255\n }\n }\n };\n case \"timestamp\":\n case \"date\":\n return {\n type: \"datetime\"\n };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return {\n type: \"range\"\n };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 65535\n }\n }\n };\n case \"string\":\n return {\n type: \"text\"\n };\n case \"geopoint\":\n return {\n type: \"geohash\"\n };\n case \"geoshape\":\n return {\n type: \"geoshape\"\n };\n case \"mediaReference\":\n return {\n type: \"mediaReference\"\n };\n case \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\"\n };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\" ? {\n type: \"cbacMarking\"\n } : {\n type: \"mandatoryMarking\"\n };\n case \"string\":\n return {\n type: \"text\"\n };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\nfunction extractActionParameterType(pt) {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\nfunction maybeAddList(type, pt) {\n return pt.array ?? false ? type + \"List\" : type;\n}\nfunction isActionParameterTypePrimitive(type) {\n return [\"boolean\", \"booleanList\", \"integer\", \"integerList\", \"long\", \"longList\", \"double\", \"doubleList\", \"string\", \"stringList\", \"decimal\", \"decimalList\", \"timestamp\", \"timestampList\", \"geohash\", \"geohashList\", \"geoshape\", \"geoshapeList\", \"timeSeriesReference\", \"date\", \"dateList\", \"objectTypeReference\", \"objectReference\", \"attachment\", \"attachmentList\", \"marking\", \"markingList\", \"mediaReference\", \"mediaReferenceList\", \"geotimeSeriesReference\", \"geotimeSeriesReferenceList\"].includes(type);\n}\nfunction isStruct(type) {\n return typeof type === \"object\" && type.type === \"struct\";\n}\nfunction kebab(s) {\n return s.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\").replace(/\\./g, \"-\").toLowerCase();\n}\nfunction sanitize(s) {\n return s.includes(\".\") ? s : namespace + s;\n}\nfunction convertValidationRule(actionValidation) {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: []\n }\n };\n });\n}\nfunction validateActionConfiguration(action) {\n const seenParameterIds = new Set();\n const parameterMap = action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {}) ?? {};\n const orderedParameters = action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(override.condition, param.id, seenParameterIds, action.parameters);\n });\n validateParameterPrefill(param.id, seenParameterIds, action.parameters, param.defaultValue);\n seenParameterIds.add(param.id);\n });\n}\nfunction validateParameterCondition(condition, currentParameterId, seenParameterIds, parameters) {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n !parameters?.some(p => p.id === overrideParamId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`) : invariant(false) : void 0;\n !(overrideParamId !== currentParameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter condition on ${currentParameterId} is referencing itself`) : invariant(false) : void 0;\n !seenParameterIds.has(overrideParamId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`) : invariant(false) : void 0;\n break;\n case \"and\":\n // this will not catch the niche edge case where users use the full syntax for unions\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));\n }\n break;\n case \"comparison\":\n case \"group\":\n case \"not\":\n case \"markings\":\n case \"regex\":\n case \"redacted\":\n case \"true\":\n break;\n default:\n throw new Error(`Unknown condition type on parameter ${currentParameterId}`);\n }\n}\nfunction validateParameterPrefill(currentParameterId, seenParameterIds, parameters, defaultValue) {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n !parameters?.some(p => p.id === defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant(false) : void 0;\n !seenParameterIds.has(defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant(false) : void 0;\n break;\n case \"staticValue\":\n !(defaultValue.staticValue.type === parameters?.find(p => p.id === currentParameterId)?.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Default static value for parameter ${currentParameterId} does not match type`) : invariant(false) : void 0;\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(`Unknown default value type for parameter ${currentParameterId}`);\n }\n}\nfunction validateActionParameters(def) {\n // validates that parameters either exist as object properties or have a type defined\n [...Object.keys(def.parameterConfiguration ?? {})].forEach(id => {\n !(def.objectType.properties?.[id] !== undefined || def.parameterConfiguration?.[id].customParameterType !== undefined || id === MODIFY_OBJECT_PARAMETER || id === CREATE_OR_MODIFY_OBJECT_PARAMETER) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`) : invariant(false) : void 0;\n });\n [...Object.keys(def.nonParameterMappings ?? {}), ...(def.excludedProperties ?? [])].forEach(id => {\n !(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Property ${id} does not exist as a property on ${def.objectType.apiName}`) : invariant(false) : void 0;\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type\nfunction createDefaultParameterOrdering(def, parameters, priorityId) {\n return [...(priorityId ? [priorityId] : []), ...Object.keys(def.parameterConfiguration ?? {}), ...Object.keys(def.objectType.properties ?? {}).filter(id => !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id))];\n}\nfunction validateParameterOrdering(parameterOrdering, parameterSet, actionApiName) {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(param => !orderingSet.has(param));\n const extraneousParameters = parameterOrdering.filter(param => !parameterSet.has(param));\n !(extraneousParameters.length === 0 && missingParameters.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`) : invariant(false) : void 0;\n}","/*\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 { importedTypes } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nexport function importOntologyEntity(e) {\n if (e.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n importedTypes[e.__type][e.apiName] = e;\n return;\n }\n // value types are a special case\n if (importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName] === undefined) {\n importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName] = [];\n }\n importedTypes[OntologyEntityTypeEnum.VALUE_TYPE][e.apiName].push(e);\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { importOntologyEntity } from \"./importOntologyEntity.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n/**\n * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation\n */\nexport function importSharedPropertyType(opts) {\n const {\n apiName,\n packageName,\n typeHint,\n array\n } = opts;\n const fullApiName = packageName === undefined ? apiName : `${packageName}.${apiName}`;\n if (packageName !== undefined) {\n !!packageName.endsWith(\".\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name format invalid ends with period\") : invariant(false) : void 0;\n !(packageName.match(\"[A-Z]\") == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name includes upper case characters\") : invariant(false) : void 0;\n }\n const spt = {\n apiName: fullApiName,\n type: typeHint,\n nonNameSpacedApiName: apiName,\n array: array ?? false,\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n };\n importOntologyEntity(spt);\n return spt;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition, updateOntology } from \"./defineOntology.js\";\nimport { defaultTypeClasses, getPropertyTypeName, hasRenderHints, shouldNotHaveRenderHints } from \"./propertyConversionUtils.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nexport function defineSharedPropertyType(sptDef) {\n const apiName = namespace + sptDef.apiName;\n !(ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Shared property type ${apiName} already exists`) : invariant(false) : void 0;\n !(!shouldNotHaveRenderHints(sptDef.type) || !hasRenderHints(sptDef.typeClasses)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Shared property type ${apiName} of type '${getPropertyTypeName(sptDef.type)}' should not have render hints`) : invariant(false) : void 0;\n const fullSpt = {\n ...sptDef,\n apiName,\n nonNameSpacedApiName: sptDef.apiName,\n displayName: sptDef.displayName ?? sptDef.apiName,\n // This way the non-namespaced api name is the display name (maybe not ideal)\n typeClasses: sptDef.typeClasses ?? (shouldNotHaveRenderHints(sptDef.type) ? [] : defaultTypeClasses),\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n };\n updateOntology(fullSpt);\n return fullSpt;\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition, updateOntology, withoutNamespace } from \"./defineOntology.js\";\nimport { defineSharedPropertyType } from \"./defineSpt.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nexport function defineInterface(interfaceDef) {\n const apiName = namespace + interfaceDef.apiName;\n !(ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Interface ${apiName} already exists`) : invariant(false) : void 0;\n const properties = Object.fromEntries(Object.entries(interfaceDef.properties ?? {}).map(([propApiName, type]) => {\n if (typeof type === \"object\" && \"propertyDefinition\" in type) {\n return [namespace + propApiName, {\n required: type.required,\n sharedPropertyType: unifyBasePropertyDefinition(namespace, propApiName, type.propertyDefinition)\n }];\n }\n return [namespace + propApiName, {\n required: true,\n sharedPropertyType: unifyBasePropertyDefinition(namespace, propApiName, type)\n }];\n }));\n const extendsInterfaces = interfaceDef.extends ? Array.isArray(interfaceDef.extends) ? interfaceDef.extends : [interfaceDef.extends] : [];\n const status = mapSimplifiedStatusToInterfaceTypeStatus(interfaceDef.status ?? {\n type: \"active\"\n });\n !(status.type !== \"deprecated\" || status.deprecated.message && status.deprecated.deadline) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status must include message and deadline properties.`) : invariant(false) : void 0;\n const fullInterface = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator\n }\n } : undefined\n },\n extendsInterfaces,\n links: [],\n status,\n propertiesV2: properties,\n searchable: interfaceDef.searchable ?? true,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE\n };\n updateOntology(fullInterface);\n return fullInterface;\n}\nfunction isPropertyTypeType(v) {\n return v === \"boolean\" || v === \"byte\" || v === \"date\" || v === \"decimal\" || v === \"double\" || v === \"float\" || v === \"geopoint\" || v === \"geoshape\" || v === \"integer\" || v === \"long\" || typeof v === \"object\" && v.type === \"marking\" || v === \"short\" || v === \"string\" || v === \"timestamp\";\n}\nfunction mapSimplifiedStatusToInterfaceTypeStatus(status) {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n case \"active\":\n return {\n type: \"active\",\n active: {}\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {}\n };\n default:\n throw new Error(`Invalid status type: ${status.type}`);\n }\n}\nfunction unifyBasePropertyDefinition(namespace, apiName, type) {\n if (typeof type === \"string\" || typeof type === \"object\" && !(\"apiName\" in type)) {\n !isPropertyTypeType(type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Invalid data type ${JSON.stringify(type)} for property ${apiName} on InterfaceType ${apiName}`) : invariant(false) : void 0;\n const spt = defineSharedPropertyType({\n apiName,\n displayName: apiName,\n type,\n array: false\n });\n return spt;\n } else {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n !(namespace + apiName === type.apiName || apiName === unNamespacedTypeApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `property key and it's apiName must be identical. ${JSON.stringify({\n key: apiName,\n apiName: type.apiName\n })}`) : invariant(false) : void 0;\n return type;\n }\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, sanitize, withoutNamespace } from \"./defineOntology.js\";\nexport function defineInterfaceLinkConstraint(linkDef) {\n const fromLinkMeta = getLinkMeta(linkDef);\n !(linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName) == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`) : invariant(false) : void 0;\n linkDef.from.links.push({\n cardinality: linkDef.toMany ? \"MANY\" : \"SINGLE\",\n linkedEntityTypeId: getLinkedType(linkDef.toMany ?? linkDef.toOne),\n metadata: fromLinkMeta,\n required: linkDef.required ?? true\n });\n}\nfunction getLinkedType(t) {\n return {\n type: \"interfaceType\",\n interfaceType: typeof t === \"string\" ? t : t.apiName\n };\n}\nfunction getLinkMeta(meta) {\n const {\n apiName,\n displayName,\n description\n } = meta;\n const apiNameWithNamespace = sanitize(namespace, apiName);\n const apiNameWithoutNamespace = withoutNamespace(apiNameWithNamespace);\n return {\n apiName: apiNameWithNamespace,\n displayName: displayName ?? apiNameWithoutNamespace,\n description: description ?? displayName ?? apiNameWithoutNamespace\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { convertToDisplayName, convertToPluralDisplayName } from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\nexport function defineLink(linkDefinition) {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.[linkDefinition.manyForeignKeyProperty];\n !(foreignKey !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;\n !typeIdPattern.test(linkDefinition.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`) : invariant(false) : void 0;\n const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n !typesMatch ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;\n }\n const fullLinkDefinition = \"one\" in linkDefinition ? {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)\n } : {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)\n };\n const linkType = {\n cardinality: \"one\" in linkDefinition ? linkDefinition.cardinality : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE\n };\n updateOntology(linkType);\n return linkType;\n}\nfunction convertUserOneToManyLinkDefinition(oneToMany) {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata)\n };\n}\nfunction convertUserManyToManyLinkDefinition(manyToMany) {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata)\n };\n}\nfunction convertLinkTypeMetadata(metadata) {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName ?? convertToDisplayName(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\"\n },\n typeClasses: []\n };\n}","/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, updateOntology } from \"./defineOntology.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\nfunction convertValueTypeTypeToBaseType(valueType) {\n if (typeof valueType === \"string\") {}\n switch (true) {\n case typeof valueType === \"object\" && valueType.type === \"array\":\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"struct\":\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType)\n }))\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"map\":\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"optional\":\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType)\n }\n };\n case typeof valueType === \"string\":\n return {\n type: valueType,\n [valueType]: {}\n };\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\nexport function defineValueType(valueTypeDef) {\n const {\n apiName,\n displayName,\n description,\n type,\n version\n } = valueTypeDef;\n const semverValidation = /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n !semverValidation.test(version) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Version is not a valid semver\") : invariant(false) : void 0;\n const typeName = typeof type.type === \"string\" ? type.type : type.type.type === \"struct\" ? \"structV2\" : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints ? type.constraints.map(constraint => {\n const output = {\n constraint: {\n type: typeName,\n [typeName]: constraint.constraint\n },\n failureMessage: constraint.failureMessage\n };\n return {\n constraint: output\n };\n }) : [];\n const baseType = convertValueTypeTypeToBaseType(type.type);\n const vt = {\n apiName,\n packageNamespace: namespace.substring(0, namespace.length - 1),\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\"\n },\n status: {\n type: \"active\",\n active: {}\n },\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: [],\n __type: OntologyEntityTypeEnum.VALUE_TYPE\n };\n updateOntology(vt);\n return vt;\n}","/*\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 { importOntologyEntity } from \"./importOntologyEntity.js\";\n/**\n * Wraps an OntologyEntityType with a Proxy that calls importOntologyEntity when properties are accessed.\n *\n * @param entity - The OntologyEntityType to wrap with a Proxy\n * @returns A Proxy that imports the entity when properties are accessed\n */\nexport function wrapWithProxy(entity) {\n return new Proxy(entity, {\n get(target, prop, receiver) {\n importOntologyEntity(target);\n return Reflect.get(target, prop, receiver);\n }\n });\n}"]}