@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.
- package/CHANGELOG.md +19 -0
- package/build/browser/api/action/ActionParameterAllowedValues.js.map +1 -1
- package/build/browser/api/defineAction.js +84 -3
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineCreateOrModifyObjectAction.js +2 -1
- package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -1
- package/build/browser/api/defineDeleteObjectAction.js +3 -18
- package/build/browser/api/defineDeleteObjectAction.js.map +1 -1
- package/build/browser/api/defineModifyObjectAction.js +2 -1
- package/build/browser/api/defineModifyObjectAction.js.map +1 -1
- package/build/browser/api/defineOntology.js +41 -1
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/test/actions.test.js +2129 -1318
- package/build/browser/api/test/actions.test.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/convertActionValidation.js +1 -1
- package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/cjs/index.cjs +132 -25
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +16 -1
- package/build/esm/api/action/ActionParameterAllowedValues.js.map +1 -1
- package/build/esm/api/defineAction.js +84 -3
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineCreateOrModifyObjectAction.js +2 -1
- package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -1
- package/build/esm/api/defineDeleteObjectAction.js +3 -18
- package/build/esm/api/defineDeleteObjectAction.js.map +1 -1
- package/build/esm/api/defineModifyObjectAction.js +2 -1
- package/build/esm/api/defineModifyObjectAction.js.map +1 -1
- package/build/esm/api/defineOntology.js +41 -1
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/test/actions.test.js +2129 -1318
- package/build/esm/api/test/actions.test.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/convertActionValidation.js +1 -1
- package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/types/api/action/ActionParameterAllowedValues.d.ts +14 -0
- package/build/types/api/action/ActionParameterAllowedValues.d.ts.map +1 -1
- package/build/types/api/defineAction.d.ts +1 -0
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts +2 -2
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- 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
|
-
|
|
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:
|
|
27
|
+
objectToDelete: DELETE_OBJECT_PARAMETER
|
|
43
28
|
}
|
|
44
29
|
}],
|
|
45
30
|
entities: {
|