@osdk/maker 0.15.0-beta.3 → 0.15.0-beta.5

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 (50) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/build/browser/api/action/ActionParameterAllowedValues.js.map +1 -1
  3. package/build/browser/api/defineAction.js +84 -3
  4. package/build/browser/api/defineAction.js.map +1 -1
  5. package/build/browser/api/defineCreateOrModifyObjectAction.js +2 -1
  6. package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -1
  7. package/build/browser/api/defineDeleteObjectAction.js +3 -18
  8. package/build/browser/api/defineDeleteObjectAction.js.map +1 -1
  9. package/build/browser/api/defineModifyObjectAction.js +2 -1
  10. package/build/browser/api/defineModifyObjectAction.js.map +1 -1
  11. package/build/browser/api/defineOntology.js +41 -1
  12. package/build/browser/api/defineOntology.js.map +1 -1
  13. package/build/browser/api/test/actions.test.js +2129 -1318
  14. package/build/browser/api/test/actions.test.js.map +1 -1
  15. package/build/browser/cli/main.js +1 -1
  16. package/build/browser/conversion/toMarketplace/convertActionValidation.js +1 -1
  17. package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  18. package/build/browser/index.js +1 -1
  19. package/build/browser/index.js.map +1 -1
  20. package/build/cjs/index.cjs +132 -25
  21. package/build/cjs/index.cjs.map +1 -1
  22. package/build/cjs/index.d.cts +16 -1
  23. package/build/esm/api/action/ActionParameterAllowedValues.js.map +1 -1
  24. package/build/esm/api/defineAction.js +84 -3
  25. package/build/esm/api/defineAction.js.map +1 -1
  26. package/build/esm/api/defineCreateOrModifyObjectAction.js +2 -1
  27. package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -1
  28. package/build/esm/api/defineDeleteObjectAction.js +3 -18
  29. package/build/esm/api/defineDeleteObjectAction.js.map +1 -1
  30. package/build/esm/api/defineModifyObjectAction.js +2 -1
  31. package/build/esm/api/defineModifyObjectAction.js.map +1 -1
  32. package/build/esm/api/defineOntology.js +41 -1
  33. package/build/esm/api/defineOntology.js.map +1 -1
  34. package/build/esm/api/test/actions.test.js +2129 -1318
  35. package/build/esm/api/test/actions.test.js.map +1 -1
  36. package/build/esm/cli/main.js +1 -1
  37. package/build/esm/conversion/toMarketplace/convertActionValidation.js +1 -1
  38. package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  39. package/build/esm/index.js +1 -1
  40. package/build/esm/index.js.map +1 -1
  41. package/build/types/api/action/ActionParameterAllowedValues.d.ts +14 -0
  42. package/build/types/api/action/ActionParameterAllowedValues.d.ts.map +1 -1
  43. package/build/types/api/defineAction.d.ts +1 -0
  44. package/build/types/api/defineAction.d.ts.map +1 -1
  45. package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -1
  46. package/build/types/api/defineOntology.d.ts +2 -2
  47. package/build/types/api/defineOntology.d.ts.map +1 -1
  48. package/build/types/index.d.ts +1 -1
  49. package/build/types/index.d.ts.map +1 -1
  50. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.15.0-beta.5
4
+
5
+ ### Minor Changes
6
+
7
+ - 1cb0862: fix property parameter defaults
8
+
9
+ ## 0.15.0-beta.4
10
+
11
+ ### Minor Changes
12
+
13
+ - 9088072: Add users from static groups as action parameters in OAC
14
+ - bb8d059: Support customizations for delete object action parameters
15
+ - 33e10e3: Implement user and group action parameters
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [c9ca08d]
20
+ - @osdk/api@2.7.0-beta.6
21
+
3
22
  ## 0.15.0-beta.3
4
23
 
5
24
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"ActionParameterAllowedValues.js","names":[],"sources":["ActionParameterAllowedValues.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 InterfaceTypeApiName,\n OntologyIrConditionValue,\n OntologyIrLabelledValue,\n OntologyIrParameterDateRangeValue,\n} from \"@osdk/client.unstable\";\n\n// TODO(dpaquin): cleanup? or does \"type: foo\" actually make sense here\n\nexport type ActionParameterAllowedValues =\n | {\n type: \"oneOf\";\n oneOf: Array<OntologyIrLabelledValue>;\n otherValueAllowed?: boolean;\n }\n | {\n type: \"range\";\n min?: OntologyIrConditionValue;\n max?: OntologyIrConditionValue;\n }\n | { type: \"text\"; minLength?: number; maxLength?: number; regex?: string }\n | {\n type: \"datetime\";\n maximum?: OntologyIrParameterDateRangeValue;\n minimum?: OntologyIrParameterDateRangeValue;\n }\n | { type: \"objectTypeReference\"; interfaceTypes: Array<InterfaceTypeApiName> }\n | { type: \"objectQuery\" }\n | { type: \"attachment\" }\n | { type: \"boolean\" }\n | { type: \"objectSetRid\" }\n | { type: \"cbacMarking\" }\n | { type: \"mandatoryMarking\" }\n | { type: \"objectList\" }\n | { type: \"mediaReference\" }\n | { type: \"timeSeriesReference\" }\n | { type: \"geohash\" }\n | { type: \"geoshape\" }\n | { type: \"geotimeSeriesReference\" }\n | { type: \"interfaceObjectQuery\" }\n | { type: \"redacted\" };\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ActionParameterAllowedValues.js","names":[],"sources":["ActionParameterAllowedValues.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 InterfaceTypeApiName,\n OntologyIrConditionValue,\n OntologyIrLabelledValue,\n OntologyIrParameterDateRangeValue,\n} from \"@osdk/client.unstable\";\n\n// TODO(dpaquin): cleanup? or does \"type: foo\" actually make sense here\n\nexport type ActionParameterAllowedValues =\n | {\n type: \"oneOf\";\n oneOf: Array<OntologyIrLabelledValue>;\n otherValueAllowed?: boolean;\n }\n | {\n type: \"range\";\n min?: OntologyIrConditionValue;\n max?: OntologyIrConditionValue;\n }\n | { type: \"text\"; minLength?: number; maxLength?: number; regex?: string }\n | {\n type: \"datetime\";\n maximum?: OntologyIrParameterDateRangeValue;\n minimum?: OntologyIrParameterDateRangeValue;\n }\n | { type: \"objectTypeReference\"; interfaceTypes: Array<InterfaceTypeApiName> }\n | { type: \"objectQuery\" }\n | { type: \"attachment\" }\n | { type: \"boolean\" }\n | { type: \"objectSetRid\" }\n | { type: \"cbacMarking\" }\n | { type: \"mandatoryMarking\" }\n | { type: \"objectList\" }\n | { type: \"mediaReference\" }\n | { type: \"timeSeriesReference\" }\n | { type: \"geohash\" }\n | { type: \"geoshape\" }\n | { type: \"geotimeSeriesReference\" }\n | { type: \"interfaceObjectQuery\" }\n | { type: \"redacted\" }\n | { type: \"multipassGroup\" }\n | {\n type: \"user\";\n fromGroups?: Array<UserGroup>;\n };\n\nexport type UserGroup =\n | ParameterUserGroup\n | StaticUserGroup;\n\nexport type ParameterUserGroup = {\n type: \"parameter\";\n parameter: string;\n};\n\nexport type StaticUserGroup = {\n type: \"static\";\n name: string;\n};\n"],"mappings":"","ignoreList":[]}
@@ -24,6 +24,7 @@ import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfa
24
24
  import { isStruct } from "./properties/PropertyTypeType.js";
25
25
  export const MODIFY_OBJECT_PARAMETER = "objectToModifyParameter";
26
26
  export const CREATE_OR_MODIFY_OBJECT_PARAMETER = "objectToCreateOrModifyParameter";
27
+ export const DELETE_OBJECT_PARAMETER = "objectToDeleteParameter";
27
28
  export const CREATE_INTERFACE_OBJECT_PARAMETER = "objectTypeParameter";
28
29
  export const MODIFY_INTERFACE_OBJECT_PARAMETER = "interfaceObjectToModifyParameter";
29
30
  export function defineAction(actionDef) {
@@ -119,7 +120,12 @@ function getTargetParameters(def, parameterSet) {
119
120
  targetParams.push({
120
121
  id: MODIFY_OBJECT_PARAMETER,
121
122
  displayName: def.parameterConfiguration?.[name]?.displayName ?? "Modify object",
122
- type: {
123
+ type: typeof def.parameterConfiguration?.[name]?.required === "object" && "listLength" in def.parameterConfiguration?.[name]?.required ? {
124
+ type: "objectReferenceList",
125
+ objectReferenceList: {
126
+ objectTypeId: def.objectType.apiName
127
+ }
128
+ } : {
123
129
  type: "objectReference",
124
130
  objectReference: {
125
131
  objectTypeId: def.objectType.apiName
@@ -169,11 +175,43 @@ function getTargetParameters(def, parameterSet) {
169
175
  });
170
176
  parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);
171
177
  }
178
+ if (name === DELETE_OBJECT_PARAMETER && !("interfaceType" in def)) {
179
+ targetParams.push({
180
+ id: DELETE_OBJECT_PARAMETER,
181
+ displayName: def.parameterConfiguration?.[name]?.displayName ?? "Delete object",
182
+ type: typeof def.parameterConfiguration?.[name]?.required === "object" && "listLength" in def.parameterConfiguration?.[name]?.required ? {
183
+ type: "objectReferenceList",
184
+ objectReferenceList: {
185
+ objectTypeId: def.objectType.apiName
186
+ }
187
+ } : {
188
+ type: "objectReference",
189
+ objectReference: {
190
+ objectTypeId: def.objectType.apiName
191
+ }
192
+ },
193
+ validation: {
194
+ ...def.parameterConfiguration?.[name],
195
+ allowedValues: {
196
+ type: "objectQuery"
197
+ },
198
+ required: def.parameterConfiguration?.[name]?.required ?? true
199
+ },
200
+ defaultValue: def.parameterConfiguration?.[name]?.defaultValue,
201
+ description: def.parameterConfiguration?.[name]?.description
202
+ });
203
+ parameterSet.delete(DELETE_OBJECT_PARAMETER);
204
+ }
172
205
  if (name === CREATE_INTERFACE_OBJECT_PARAMETER && "interfaceType" in def) {
173
206
  targetParams.push({
174
207
  id: CREATE_INTERFACE_OBJECT_PARAMETER,
175
208
  displayName: def.parameterConfiguration?.[name]?.displayName ?? "Object type to create",
176
- type: {
209
+ type: typeof def.parameterConfiguration?.[name]?.required === "object" && "listLength" in def.parameterConfiguration?.[name]?.required ? {
210
+ type: "objectReferenceList",
211
+ objectReferenceList: {
212
+ objectTypeId: def.objectType.apiName
213
+ }
214
+ } : {
177
215
  type: "objectTypeReference",
178
216
  objectTypeReference: {
179
217
  interfaceTypeRids: [def.interfaceType.apiName]
@@ -207,7 +245,12 @@ function getTargetParameters(def, parameterSet) {
207
245
  targetParams.push({
208
246
  id: MODIFY_INTERFACE_OBJECT_PARAMETER,
209
247
  displayName: def.parameterConfiguration?.[name]?.displayName ?? "Object type to modify",
210
- type: {
248
+ type: typeof def.parameterConfiguration?.[name]?.required === "object" && "listLength" in def.parameterConfiguration?.[name]?.required ? {
249
+ type: "interfaceReferenceList",
250
+ interfaceReferenceList: {
251
+ interfaceTypeRid: def.interfaceType.apiName
252
+ }
253
+ } : {
211
254
  type: "interfaceReference",
212
255
  interfaceReference: {
213
256
  interfaceTypeRid: def.interfaceType.apiName
@@ -236,6 +279,44 @@ function getTargetParameters(def, parameterSet) {
236
279
  });
237
280
  parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);
238
281
  }
282
+ if (name === DELETE_OBJECT_PARAMETER && "interfaceType" in def) {
283
+ targetParams.push({
284
+ id: DELETE_OBJECT_PARAMETER,
285
+ displayName: def.parameterConfiguration?.[name]?.displayName ?? "Delete Object",
286
+ type: typeof def.parameterConfiguration?.[name]?.required === "object" && "listLength" in def.parameterConfiguration?.[name]?.required ? {
287
+ type: "interfaceReferenceList",
288
+ interfaceReferenceList: {
289
+ interfaceTypeRid: def.interfaceType.apiName
290
+ }
291
+ } : {
292
+ type: "interfaceReference",
293
+ interfaceReference: {
294
+ interfaceTypeRid: def.interfaceType.apiName
295
+ }
296
+ },
297
+ validation: {
298
+ ...def.parameterConfiguration?.[name],
299
+ required: true,
300
+ allowedValues: def.objectType === undefined ? {
301
+ type: "interfaceObjectQuery"
302
+ } : {
303
+ type: "oneOf",
304
+ oneOf: [{
305
+ label: def.objectType.displayName,
306
+ value: {
307
+ type: "objectType",
308
+ objectType: {
309
+ objectTypeId: def.objectType.apiName
310
+ }
311
+ }
312
+ }]
313
+ }
314
+ },
315
+ defaultValue: def.parameterConfiguration?.[name]?.defaultValue,
316
+ description: def.parameterConfiguration?.[name]?.description
317
+ });
318
+ parameterSet.delete(DELETE_OBJECT_PARAMETER);
319
+ }
239
320
  });
240
321
  return targetParams;
241
322
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","getFlattenedInterfaceProperties","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","push","objectReference","objectTypeId","objectType","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","properties","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop"],"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 OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.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 { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\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 const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\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 defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\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<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\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\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n return (\n !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, SharedPropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => (\n {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMap[id]?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMap[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 propertyMap[id]?.type!,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMap[id]?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMap[id]?.array ?? false)\n ? {\n listLength: propertyMap[id]?.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMap[id]?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMap[id]?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n }\n ),\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.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 targetParams.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: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (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 if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\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 defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: def.interfaceType.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\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 defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\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\nexport function 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\nexport function 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 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\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): 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 properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id)),\n `Property ${id} does not exist as a property on ${name}`,\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.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function 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\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","getFlattenedInterfaceProperties","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","push","objectReferenceList","objectTypeId","objectType","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","properties","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop"],"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 OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.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 { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\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 const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\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 defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\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<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\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\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n return (\n !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, SharedPropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => (\n {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMap[id]?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMap[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 propertyMap[id]?.type!,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMap[id]?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMap[id]?.array ?? false)\n ? {\n listLength: propertyMap[id]?.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMap[id]?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMap[id]?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n }\n ),\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\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 targetParams.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: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (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 if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\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(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\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 defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\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 defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\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 defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\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\nexport function 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\nexport function 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 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\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): 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 properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id)),\n `Property ${id} does not exist as a property on ${name}`,\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.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function 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\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,8 @@ export function defineCreateOrModifyObjectAction(def) {
33
33
  }
34
34
  const parameters = createParameters(def, def.objectType.properties ?? {}, parameterNames);
35
35
  parameters.forEach(p => {
36
- if (p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {
36
+ // create prefilled parameters for object type properties unless overridden
37
+ if (def.objectType.properties?.[p.id] && p.defaultValue === undefined) {
37
38
  p.defaultValue = {
38
39
  type: "objectParameterPropertyValue",
39
40
  objectParameterPropertyValue: {
@@ -1 +1 @@
1
- {"version":3,"file":"defineCreateOrModifyObjectAction.js","names":["convertMappingValue","convertValidationRule","CREATE_OR_MODIFY_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","kebab","validateActionParameters","validateParameterOrdering","isStruct","defineCreateOrModifyObjectAction","def","Object","keys","objectType","properties","apiName","propertiesWithDerivedDatasources","datasources","filter","ds","type","flatMap","propertyMapping","propertyParameters","id","nonParameterMappings","includes","excludedProperties","primaryKeyPropertyApiName","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","unshift","parameters","p","defaultValue","undefined","objectParameterPropertyValue","parameterId","propertyTypeId","mappings","fromEntries","entries","map","value","displayName","status","rules","addOrModifyObjectRuleV2","objectToModify","propertyValues","structFieldValues","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata","icon"],"sources":["defineCreateOrModifyObjectAction.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 { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { isStruct } from \"./properties/PropertyTypeType.js\";\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertiesWithDerivedDatasources = (def.objectType.datasources ?? [])\n .filter(ds => ds.type === \"derived\").flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\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 && !propertiesWithDerivedDatasources.includes(id),\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.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\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 Object.keys(def.objectType.properties ?? {}),\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.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\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 ...(def.icon && { icon: def.icon }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineCreateOrModifyObjectAction.js","names":["convertMappingValue","convertValidationRule","CREATE_OR_MODIFY_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","kebab","validateActionParameters","validateParameterOrdering","isStruct","defineCreateOrModifyObjectAction","def","Object","keys","objectType","properties","apiName","propertiesWithDerivedDatasources","datasources","filter","ds","type","flatMap","propertyMapping","propertyParameters","id","nonParameterMappings","includes","excludedProperties","primaryKeyPropertyApiName","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","unshift","parameters","p","defaultValue","undefined","objectParameterPropertyValue","parameterId","propertyTypeId","mappings","fromEntries","entries","map","value","displayName","status","rules","addOrModifyObjectRuleV2","objectToModify","propertyValues","structFieldValues","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata","icon"],"sources":["defineCreateOrModifyObjectAction.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 { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { isStruct } from \"./properties/PropertyTypeType.js\";\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertiesWithDerivedDatasources = (def.objectType.datasources ?? [])\n .filter(ds => ds.type === \"derived\").flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\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 && !propertiesWithDerivedDatasources.includes(id),\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.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n parameters.forEach(\n p => {\n // create prefilled parameters for object type properties unless overridden\n if (def.objectType.properties?.[p.id] && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\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 Object.keys(def.objectType.properties ?? {}),\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.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\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 ...(def.icon && { icon: def.icon }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,32 +14,17 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { convertValidationRule, defineAction, kebab } from "./defineAction.js";
17
+ import { convertValidationRule, createParameters, defineAction, DELETE_OBJECT_PARAMETER, kebab } from "./defineAction.js";
18
18
  export function defineDeleteObjectAction(def) {
19
19
  return defineAction({
20
20
  apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
21
21
  displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,
22
- parameters: [{
23
- id: "objectToDeleteParameter",
24
- displayName: "Delete object",
25
- type: {
26
- type: "objectReference",
27
- objectReference: {
28
- objectTypeId: def.objectType.apiName
29
- }
30
- },
31
- validation: {
32
- required: true,
33
- allowedValues: {
34
- type: "objectQuery"
35
- }
36
- }
37
- }],
22
+ parameters: createParameters(def, {}, new Set([DELETE_OBJECT_PARAMETER])),
38
23
  status: def.status ?? "active",
39
24
  rules: [{
40
25
  type: "deleteObjectRule",
41
26
  deleteObjectRule: {
42
- objectToDelete: "objectToDeleteParameter"
27
+ objectToDelete: DELETE_OBJECT_PARAMETER
43
28
  }
44
29
  }],
45
30
  entities: {