@osdk/maker 0.14.0-beta.1 → 0.14.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/browser/api/defineAction.js +6 -6
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/cli/main.js +1 -1
  5. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +2 -2
  6. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  7. package/build/browser/conversion/toMarketplace/convertActionValidation.js +2 -16
  8. package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  9. package/build/browser/conversion/toMarketplace/convertConditionDefinition.js +4 -4
  10. package/build/browser/conversion/toMarketplace/convertConditionDefinition.js.map +1 -1
  11. package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js +2 -2
  12. package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -1
  13. package/build/cjs/index.cjs +17 -31
  14. package/build/cjs/index.cjs.map +1 -1
  15. package/build/esm/api/defineAction.js +6 -6
  16. package/build/esm/api/defineAction.js.map +1 -1
  17. package/build/esm/cli/main.js +1 -1
  18. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +2 -2
  19. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  20. package/build/esm/conversion/toMarketplace/convertActionValidation.js +2 -16
  21. package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  22. package/build/esm/conversion/toMarketplace/convertConditionDefinition.js +4 -4
  23. package/build/esm/conversion/toMarketplace/convertConditionDefinition.js.map +1 -1
  24. package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js +2 -2
  25. package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -1
  26. package/build/types/api/defineAction.d.ts.map +1 -1
  27. package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts +2 -2
  28. package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts.map +1 -1
  29. package/build/types/conversion/toMarketplace/convertActionValidation.d.ts +0 -1
  30. package/build/types/conversion/toMarketplace/convertActionValidation.d.ts.map +1 -1
  31. package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts +2 -1
  32. package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts.map +1 -1
  33. package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts +2 -1
  34. package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts.map +1 -1
  35. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.14.0-beta.2
4
+
5
+ ### Minor Changes
6
+
7
+ - 7601f9f: Fix condition validation
8
+
3
9
  ## 0.13.0-beta.18
4
10
 
5
11
  ### Minor Changes
@@ -134,7 +134,7 @@ export function defineCreateObjectAction(def) {
134
134
  }],
135
135
  parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters),
136
136
  ...(def.actionLevelValidation ? {
137
- validation: convertValidationRule(def.actionLevelValidation, Object.keys(def.objectType.properties ?? {}))
137
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
138
138
  } : {}),
139
139
  ...(def.defaultFormat && {
140
140
  defaultFormat: def.defaultFormat
@@ -274,7 +274,7 @@ export function defineModifyObjectAction(def) {
274
274
  },
275
275
  parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, MODIFY_OBJECT_PARAMETER),
276
276
  ...(def.actionLevelValidation ? {
277
- validation: convertValidationRule(def.actionLevelValidation, Object.keys(def.objectType.properties ?? {}))
277
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
278
278
  } : {}),
279
279
  ...(def.defaultFormat && {
280
280
  defaultFormat: def.defaultFormat
@@ -327,7 +327,7 @@ export function defineDeleteObjectAction(def) {
327
327
  typeGroups: []
328
328
  },
329
329
  ...(def.actionLevelValidation ? {
330
- validation: convertValidationRule(def.actionLevelValidation, Object.keys(def.objectType.properties ?? {}))
330
+ validation: convertValidationRule(def.actionLevelValidation)
331
331
  } : {})
332
332
  });
333
333
  }
@@ -384,7 +384,7 @@ export function defineCreateOrModifyObjectAction(def) {
384
384
  },
385
385
  parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, CREATE_OR_MODIFY_OBJECT_PARAMETER),
386
386
  ...(def.actionLevelValidation ? {
387
- validation: convertValidationRule(def.actionLevelValidation, Object.keys(def.objectType.properties ?? {}))
387
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
388
388
  } : {}),
389
389
  ...(def.defaultFormat && {
390
390
  defaultFormat: def.defaultFormat
@@ -810,10 +810,10 @@ function kebab(s) {
810
810
  function sanitize(s) {
811
811
  return s.includes(".") ? s : namespace + s;
812
812
  }
813
- function convertValidationRule(actionValidation, objectProperties) {
813
+ function convertValidationRule(actionValidation, actionParameters) {
814
814
  return actionValidation.map(rule => {
815
815
  return {
816
- condition: convertConditionDefinition(rule.condition, objectProperties),
816
+ condition: convertConditionDefinition(rule.condition, actionParameters),
817
817
  displayMetadata: rule.displayMetadata ?? {
818
818
  failureMessage: "Did not satisfy validation",
819
819
  typeClasses: []
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["consola","invariant","convertConditionDefinition","convertMappingValue","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","importedTypes","namespace","ontologyDefinition","updateOntology","getFlattenedInterfaceProperties","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","defineCreateInterfaceObjectAction","def","allProperties","Object","entries","interfaceType","filter","_","prop","sharedPropertyType","type","excludedProperties","includes","nonNameSpacedApiName","length","info","apiName","defineAction","kebab","split","pop","objectType","undefined","displayName","displayMetadata","parameters","id","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","map","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromPropertyType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","_prop","parameterId","convertValidationRule","defineCreateObjectAction","validateActionParameters","propertyParameters","keys","properties","nonParameterMappings","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","parameterOrdering","validateParameterOrdering","createParameters","mappings","addObjectRule","propertyValues","p","structFieldValues","createDefaultParameterOrdering","actionLevelValidation","defaultFormat","enableLayoutSwitch","displayAndFormat","sections","section","submissionMetadata","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","primaryKeyPropertyApiName","defaultValue","objectParameterPropertyValue","propertyTypeId","modifyObjectRule","objectToModify","defineDeleteObjectAction","objectReference","deleteObjectRule","objectToDelete","defineCreateOrModifyObjectAction","addOrModifyObjectRuleV2","actionDef","parameterIds","ACTION_TYPE","Error","test","process","env","NODE_ENV","parameterIdsSet","size","parameterIdsNotFound","Array","from","referencedParameterIds","has","JSON","stringify","definedSectionIds","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","rule","some","interfaceParam","find","interfaceReferenceList","INTERFACE_TYPE","spt","fullAction","__type","validateActionConfiguration","parameterSet","targetParam","name","push","description","delete","maybeCreateObjectOption","primaryKeyOption","autoGenerated","userInput","customParameterType","extractAllowedValuesFromActionParameterType","nullability","noNulls","noEmptyCollections","min","values","pId","item","sanitize","k","v","staticValue","integer","max","markingType","pt","typeType","maybeAddList","replace","toLowerCase","actionValidation","objectProperties","condition","failureMessage","action","seenParameterIds","parameterMap","reduce","acc","orderedParameters","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","priorityId","orderingSet","missingParameters","extraneousParameters"],"sources":["defineAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DisplayMetadataConfigurationDefaultLayout,\n DisplayMetadataConfigurationDisplayAndFormat,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\nimport type { SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n // FIXME: Should not use conjure types\n defaultFormat?: DisplayMetadataConfigurationDefaultLayout;\n enableLayoutSwitch?: boolean;\n // FIXME: Should not use conjure types\n displayAndFormat?: DisplayMetadataConfigurationDisplayAndFormat;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n validation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n};\n\nexport function defineCreateInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n const allProperties = Object.entries(\n getFlattenedInterfaceProperties(def.interfaceType),\n ).filter(([_, prop]) =>\n !isStruct(prop.sharedPropertyType.type)\n && !(def.excludedProperties ?? []).includes(\n prop.sharedPropertyType.nonNameSpacedApiName,\n )\n );\n\n if (\n allProperties.length\n !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType))\n .length\n ) {\n consola.info(\n `Some properties on ${def.interfaceType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`,\n displayName: `Create ${def.interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? 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(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status,\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: def.interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(def.validation\n ? {\n validation: convertValidationRule(def.validation),\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n const actionApiName = def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\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(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(def, parameters),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n Object.keys(def.objectType.properties ?? {}),\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n const allProperties = Object.entries(\n getFlattenedInterfaceProperties(def.interfaceType),\n ).filter(([_, prop]) =>\n !isStruct(prop.sharedPropertyType.type)\n && !(def.excludedProperties ?? []).includes(\n prop.sharedPropertyType.nonNameSpacedApiName,\n )\n );\n if (\n allProperties.length\n !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType))\n .length\n ) {\n consola.info(\n `Some properties on ${def.interfaceType.apiName} were skipped in the modify action because they are structs`,\n );\n }\n return defineAction({\n apiName: `modify-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`,\n displayName: `Modify ${def.interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: def.interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? 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(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status,\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(def.validation\n ? {\n validation: convertValidationRule(def.validation),\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `modify-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(\n 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 );\n\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\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(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\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\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n Object.keys(def.objectType.properties ?? {}),\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineDeleteObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { 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 ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n Object.keys(def.objectType.properties ?? {}),\n ),\n }\n : {}),\n });\n}\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `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(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\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\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n Object.keys(def.objectType.properties ?? {}),\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\n });\n }\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 } as ActionType;\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nfunction createParameters(\n def: ActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParam: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\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\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName,\n maybeCreateObjectOption:\n !def.primaryKeyOption || def.primaryKeyOption === \"autoGenerated\"\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\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 [\n ...targetParam,\n ...Array.from(parameterSet).map(\n id => (\n {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? def.objectType.properties?.[id]?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(def.objectType.properties?.[id]!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (def.objectType.properties?.[id]?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (def.objectType.properties?.[id].array ?? false)\n ? {\n listLength: def.objectType.properties?.[id].nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : def.objectType.properties?.[id].nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n }\n ),\n ),\n ];\n}\n\nfunction referencedParameterIds(\n actionDef: ActionTypeDefinition,\n): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .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(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([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 );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([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 );\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(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\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 { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n return { type: \"geohash\" };\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"string\":\n return { type: \"text\" };\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}\n\nfunction extractActionParameterType(\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\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 (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\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}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nfunction convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n objectProperties?: Array<String>,\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, objectProperties),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\n condition: ConditionDefinition,\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n): void {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n invariant(\n parameters?.some(p => p.id === overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`,\n );\n invariant(\n overrideParamId !== currentParameterId,\n `Parameter condition on ${currentParameterId} is referencing itself`,\n );\n invariant(\n seenParameterIds.has(overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`,\n );\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 =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\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(\n `Unknown condition type on parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\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(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateActionParameters(def: ActionTypeUserDefinition): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || id === MODIFY_OBJECT_PARAMETER\n || id === CREATE_OR_MODIFY_OBJECT_PARAMETER,\n `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist as a property on ${def.objectType.apiName}`,\n );\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(\n def: ActionTypeUserDefinition,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}),\n ...Object.keys(def.objectType.properties ?? {}).filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nfunction validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineAction.js","names":["consola","invariant","convertConditionDefinition","convertMappingValue","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","importedTypes","namespace","ontologyDefinition","updateOntology","getFlattenedInterfaceProperties","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","defineCreateInterfaceObjectAction","def","allProperties","Object","entries","interfaceType","filter","_","prop","sharedPropertyType","type","excludedProperties","includes","nonNameSpacedApiName","length","info","apiName","defineAction","kebab","split","pop","objectType","undefined","displayName","displayMetadata","parameters","id","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","map","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromPropertyType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","_prop","parameterId","convertValidationRule","defineCreateObjectAction","validateActionParameters","propertyParameters","keys","properties","nonParameterMappings","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","parameterOrdering","validateParameterOrdering","createParameters","mappings","addObjectRule","propertyValues","p","structFieldValues","createDefaultParameterOrdering","actionLevelValidation","defaultFormat","enableLayoutSwitch","displayAndFormat","sections","section","submissionMetadata","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","primaryKeyPropertyApiName","defaultValue","objectParameterPropertyValue","propertyTypeId","modifyObjectRule","objectToModify","defineDeleteObjectAction","objectReference","deleteObjectRule","objectToDelete","defineCreateOrModifyObjectAction","addOrModifyObjectRuleV2","actionDef","parameterIds","ACTION_TYPE","Error","test","process","env","NODE_ENV","parameterIdsSet","size","parameterIdsNotFound","Array","from","referencedParameterIds","has","JSON","stringify","definedSectionIds","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","rule","some","interfaceParam","find","interfaceReferenceList","INTERFACE_TYPE","spt","fullAction","__type","validateActionConfiguration","parameterSet","targetParam","name","push","description","delete","maybeCreateObjectOption","primaryKeyOption","autoGenerated","userInput","customParameterType","extractAllowedValuesFromActionParameterType","nullability","noNulls","noEmptyCollections","min","values","pId","item","sanitize","k","v","staticValue","integer","max","markingType","pt","typeType","maybeAddList","replace","toLowerCase","actionValidation","actionParameters","condition","failureMessage","action","seenParameterIds","parameterMap","reduce","acc","orderedParameters","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","priorityId","orderingSet","missingParameters","extraneousParameters"],"sources":["defineAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DisplayMetadataConfigurationDefaultLayout,\n DisplayMetadataConfigurationDisplayAndFormat,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\nimport type { SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n // FIXME: Should not use conjure types\n defaultFormat?: DisplayMetadataConfigurationDefaultLayout;\n enableLayoutSwitch?: boolean;\n // FIXME: Should not use conjure types\n displayAndFormat?: DisplayMetadataConfigurationDisplayAndFormat;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n validation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n};\n\nexport function defineCreateInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n const allProperties = Object.entries(\n getFlattenedInterfaceProperties(def.interfaceType),\n ).filter(([_, prop]) =>\n !isStruct(prop.sharedPropertyType.type)\n && !(def.excludedProperties ?? []).includes(\n prop.sharedPropertyType.nonNameSpacedApiName,\n )\n );\n\n if (\n allProperties.length\n !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType))\n .length\n ) {\n consola.info(\n `Some properties on ${def.interfaceType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`,\n displayName: `Create ${def.interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? 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(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status,\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: def.interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(def.validation\n ? {\n validation: convertValidationRule(def.validation),\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n const actionApiName = def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\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(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(def, parameters),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n const allProperties = Object.entries(\n getFlattenedInterfaceProperties(def.interfaceType),\n ).filter(([_, prop]) =>\n !isStruct(prop.sharedPropertyType.type)\n && !(def.excludedProperties ?? []).includes(\n prop.sharedPropertyType.nonNameSpacedApiName,\n )\n );\n if (\n allProperties.length\n !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType))\n .length\n ) {\n consola.info(\n `Some properties on ${def.interfaceType.apiName} were skipped in the modify action because they are structs`,\n );\n }\n return defineAction({\n apiName: `modify-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`,\n displayName: `Modify ${def.interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: def.interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? 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(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status,\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(def.validation\n ? {\n validation: convertValidationRule(def.validation),\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `modify-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(\n 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 );\n\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\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(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\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\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineDeleteObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { 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 ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n ),\n }\n : {}),\n });\n}\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `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(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\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\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\n });\n }\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 } as ActionType;\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nfunction createParameters(\n def: ActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParam: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\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\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName,\n maybeCreateObjectOption:\n !def.primaryKeyOption || def.primaryKeyOption === \"autoGenerated\"\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\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 [\n ...targetParam,\n ...Array.from(parameterSet).map(\n id => (\n {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? def.objectType.properties?.[id]?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(def.objectType.properties?.[id]!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (def.objectType.properties?.[id]?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (def.objectType.properties?.[id].array ?? false)\n ? {\n listLength: def.objectType.properties?.[id].nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : def.objectType.properties?.[id].nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n }\n ),\n ),\n ];\n}\n\nfunction referencedParameterIds(\n actionDef: ActionTypeDefinition,\n): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .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(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([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 );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([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 );\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(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\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 { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n return { type: \"geohash\" };\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"string\":\n return { type: \"text\" };\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}\n\nfunction extractActionParameterType(\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\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 (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\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}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nfunction convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\n condition: ConditionDefinition,\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n): void {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n invariant(\n parameters?.some(p => p.id === overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`,\n );\n invariant(\n overrideParamId !== currentParameterId,\n `Parameter condition on ${currentParameterId} is referencing itself`,\n );\n invariant(\n seenParameterIds.has(overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`,\n );\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 =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\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(\n `Unknown condition type on parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\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(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateActionParameters(def: ActionTypeUserDefinition): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || id === MODIFY_OBJECT_PARAMETER\n || id === CREATE_OR_MODIFY_OBJECT_PARAMETER,\n `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist as a property on ${def.objectType.apiName}`,\n );\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(\n def: ActionTypeUserDefinition,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}),\n ...Object.keys(def.objectType.properties ?? {}).filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nfunction validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ import { defineOntology } from "../api/defineOntology.js";
24
24
  const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
25
25
  const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
26
26
  export default async function main(args = process.argv) {
27
- const commandLineOpts = await yargs(hideBin(args)).version("0.14.0-beta.1" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
27
+ const commandLineOpts = await yargs(hideBin(args)).version("0.14.0-beta.2" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
28
28
  input: {
29
29
  alias: "i",
30
30
  describe: "Input file",
@@ -16,7 +16,7 @@
16
16
 
17
17
  import { extractAllowedValues } from "../../api/defineOntology.js";
18
18
  import { convertConditionDefinition } from "./convertConditionDefinition.js";
19
- export function convertActionParameterConditionalOverride(override, validation, objectProperties) {
19
+ export function convertActionParameterConditionalOverride(override, validation, actionParameters) {
20
20
  let parameterBlockOverride;
21
21
  switch (override.type) {
22
22
  case "required":
@@ -81,7 +81,7 @@ export function convertActionParameterConditionalOverride(override, validation,
81
81
  throw new Error(`Unknown parameter override type`);
82
82
  }
83
83
  return {
84
- condition: convertConditionDefinition(override.condition, objectProperties),
84
+ condition: convertConditionDefinition(override.condition, actionParameters),
85
85
  parameterBlockOverrides: [parameterBlockOverride]
86
86
  };
87
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"convertActionParameterConditionalOverride.js","names":["extractAllowedValues","convertConditionDefinition","convertActionParameterConditionalOverride","override","validation","objectProperties","parameterBlockOverride","type","parameterRequired","required","notRequired","visibility","defaultVisibility","hidden","editable","disabled","prefill","defaultValue","allowedValues","constraint","Error","condition","parameterBlockOverrides"],"sources":["convertActionParameterConditionalOverride.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n OntologyIrConditionalOverride,\n OntologyIrParameterValidationBlockOverride,\n} from \"@osdk/client.unstable\";\nimport type { ActionParameterValidation } from \"../../api/action/ActionParameter.js\";\nimport type { ActionParameterConditionalOverride } from \"../../api/action/ActionParameterConditionalOverride.js\";\nimport { extractAllowedValues } from \"../../api/defineOntology.js\";\nimport { convertConditionDefinition } from \"./convertConditionDefinition.js\";\n\nexport function convertActionParameterConditionalOverride(\n override: ActionParameterConditionalOverride,\n validation: ActionParameterValidation,\n objectProperties?: Array<String>,\n): OntologyIrConditionalOverride {\n let parameterBlockOverride: OntologyIrParameterValidationBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required\n ? {\n type: \"notRequired\",\n notRequired: {},\n }\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 ? {\n type: \"hidden\",\n hidden: {},\n }\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 ? {\n type: \"disabled\",\n disabled: {},\n }\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, objectProperties),\n parameterBlockOverrides: [parameterBlockOverride],\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,0BAA0B,QAAQ,iCAAiC;AAE5E,OAAO,SAASC,yCAAyCA,CACvDC,QAA4C,EAC5CC,UAAqC,EACrCC,gBAAgC,EACD;EAC/B,IAAIC,sBAAkE;EACtE,QAAQH,QAAQ,CAACI,IAAI;IACnB,KAAK,UAAU;MACbD,sBAAsB,GAAG;QACvBC,IAAI,EAAE,mBAAmB;QACzBC,iBAAiB,EAAE;UACjBC,QAAQ,EAAEL,UAAU,CAACK,QAAQ,GACzB;YACAF,IAAI,EAAE,aAAa;YACnBG,WAAW,EAAE,CAAC;UAChB,CAAC,GACC;YACAH,IAAI,EAAE,UAAU;YAChBE,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfH,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBI,UAAU,EAAE;UACVA,UAAU,EAAEP,UAAU,CAACQ,iBAAiB,KAAK,UAAU,GACnD;YACAL,IAAI,EAAE,QAAQ;YACdM,MAAM,EAAE,CAAC;UACX,CAAC,GACC;YACAN,IAAI,EAAE,UAAU;YAChBO,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,UAAU;MACbR,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBI,UAAU,EAAE;UACVA,UAAU,EAAEP,UAAU,CAACQ,iBAAiB,KAAK,UAAU,GACnD;YACAL,IAAI,EAAE,UAAU;YAChBQ,QAAQ,EAAE,CAAC;UACb,CAAC,GACC;YACAR,IAAI,EAAE,UAAU;YAChBO,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,cAAc;MACjBR,sBAAsB,GAAG;QACvBC,IAAI,EAAE,SAAS;QACfS,OAAO,EAAE;UACPA,OAAO,EAAEb,QAAQ,CAACc;QACpB;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfX,sBAAsB,GAAG;QACvBC,IAAI,EAAE,eAAe;QACrBW,aAAa,EAAE;UACbA,aAAa,EAAElB,oBAAoB,CAACG,QAAQ,CAACgB,UAAU;QACzD;MACF,CAAC;MACD;IACF;MACE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EACtD;EACA,OAAO;IACLC,SAAS,EAAEpB,0BAA0B,CAACE,QAAQ,CAACkB,SAAS,EAAEhB,gBAAgB,CAAC;IAC3EiB,uBAAuB,EAAE,CAAChB,sBAAsB;EAClD,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"convertActionParameterConditionalOverride.js","names":["extractAllowedValues","convertConditionDefinition","convertActionParameterConditionalOverride","override","validation","actionParameters","parameterBlockOverride","type","parameterRequired","required","notRequired","visibility","defaultVisibility","hidden","editable","disabled","prefill","defaultValue","allowedValues","constraint","Error","condition","parameterBlockOverrides"],"sources":["convertActionParameterConditionalOverride.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n OntologyIrConditionalOverride,\n OntologyIrParameterValidationBlockOverride,\n} from \"@osdk/client.unstable\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"../../api/action/ActionParameter.js\";\nimport type { ActionParameterConditionalOverride } from \"../../api/action/ActionParameterConditionalOverride.js\";\nimport { extractAllowedValues } from \"../../api/defineOntology.js\";\nimport { convertConditionDefinition } from \"./convertConditionDefinition.js\";\n\nexport function convertActionParameterConditionalOverride(\n override: ActionParameterConditionalOverride,\n validation: ActionParameterValidation,\n actionParameters?: ActionParameter[],\n): OntologyIrConditionalOverride {\n let parameterBlockOverride: OntologyIrParameterValidationBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required\n ? {\n type: \"notRequired\",\n notRequired: {},\n }\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 ? {\n type: \"hidden\",\n hidden: {},\n }\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 ? {\n type: \"disabled\",\n disabled: {},\n }\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, actionParameters),\n parameterBlockOverrides: [parameterBlockOverride],\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASA,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,0BAA0B,QAAQ,iCAAiC;AAE5E,OAAO,SAASC,yCAAyCA,CACvDC,QAA4C,EAC5CC,UAAqC,EACrCC,gBAAoC,EACL;EAC/B,IAAIC,sBAAkE;EACtE,QAAQH,QAAQ,CAACI,IAAI;IACnB,KAAK,UAAU;MACbD,sBAAsB,GAAG;QACvBC,IAAI,EAAE,mBAAmB;QACzBC,iBAAiB,EAAE;UACjBC,QAAQ,EAAEL,UAAU,CAACK,QAAQ,GACzB;YACAF,IAAI,EAAE,aAAa;YACnBG,WAAW,EAAE,CAAC;UAChB,CAAC,GACC;YACAH,IAAI,EAAE,UAAU;YAChBE,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfH,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBI,UAAU,EAAE;UACVA,UAAU,EAAEP,UAAU,CAACQ,iBAAiB,KAAK,UAAU,GACnD;YACAL,IAAI,EAAE,QAAQ;YACdM,MAAM,EAAE,CAAC;UACX,CAAC,GACC;YACAN,IAAI,EAAE,UAAU;YAChBO,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,UAAU;MACbR,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBI,UAAU,EAAE;UACVA,UAAU,EAAEP,UAAU,CAACQ,iBAAiB,KAAK,UAAU,GACnD;YACAL,IAAI,EAAE,UAAU;YAChBQ,QAAQ,EAAE,CAAC;UACb,CAAC,GACC;YACAR,IAAI,EAAE,UAAU;YAChBO,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,cAAc;MACjBR,sBAAsB,GAAG;QACvBC,IAAI,EAAE,SAAS;QACfS,OAAO,EAAE;UACPA,OAAO,EAAEb,QAAQ,CAACc;QACpB;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfX,sBAAsB,GAAG;QACvBC,IAAI,EAAE,eAAe;QACrBW,aAAa,EAAE;UACbA,aAAa,EAAElB,oBAAoB,CAACG,QAAQ,CAACgB,UAAU;QACzD;MACF,CAAC;MACD;IACF;MACE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EACtD;EACA,OAAO;IACLC,SAAS,EAAEpB,0BAA0B,CAACE,QAAQ,CAACkB,SAAS,EAAEhB,gBAAgB,CAAC;IAC3EiB,uBAAuB,EAAE,CAAChB,sBAAsB;EAClD,CAAC;AACH","ignoreList":[]}
@@ -47,7 +47,7 @@ export function convertActionValidation(action) {
47
47
  required: convertParameterRequirementConstraint(p.validation.required)
48
48
  }
49
49
  },
50
- conditionalOverrides: p.validation.conditionalOverrides?.map(override => convertActionParameterConditionalOverride(override, p.validation, getActionTypeObjectParameters(action))) ?? []
50
+ conditionalOverrides: p.validation.conditionalOverrides?.map(override => convertActionParameterConditionalOverride(override, p.validation, action.parameters)) ?? []
51
51
  }];
52
52
  })),
53
53
  sectionValidations: {
@@ -63,7 +63,7 @@ export function convertActionValidation(action) {
63
63
  visible: {}
64
64
  }
65
65
  },
66
- conditionalOverrides: section.conditionalOverrides?.map(override => convertSectionConditionalOverride(override, section.defaultVisibility ?? "visible", getActionTypeObjectParameters(action))) ?? []
66
+ conditionalOverrides: section.conditionalOverrides?.map(override => convertSectionConditionalOverride(override, section.defaultVisibility ?? "visible", action.parameters)) ?? []
67
67
  }]))
68
68
  }
69
69
  };
@@ -90,18 +90,4 @@ function convertParameterRequirementConstraint(required) {
90
90
  }
91
91
  };
92
92
  }
93
- export function getActionTypeObjectParameters(actionType) {
94
- switch (actionType.rules[0].type) {
95
- case "addObjectRule":
96
- return Object.keys(actionType.rules[0].addObjectRule.propertyValues);
97
- case "modifyObjectRule":
98
- return Object.keys(actionType.rules[0].modifyObjectRule.propertyValues);
99
- case "addOrModifyObjectRuleV2":
100
- return Object.keys(actionType.rules[0].addOrModifyObjectRuleV2.propertyValues);
101
- case "deleteObjectRule":
102
- return [];
103
- default:
104
- return undefined;
105
- }
106
- }
107
93
  //# sourceMappingURL=convertActionValidation.js.map