@osdk/maker 0.15.0-beta.5 → 0.15.0-beta.7
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 +17 -0
- package/build/browser/api/action/ActionParameter.js.map +1 -1
- package/build/browser/api/action/ActionParameterConfiguration.js.map +1 -1
- package/build/browser/api/defineAction.js +65 -22
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineCreateInterfaceObjectAction.js +28 -8
- package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineInterface.js +40 -34
- package/build/browser/api/defineInterface.js.map +1 -1
- package/build/browser/api/defineModifyInterfaceObjectAction.js +31 -8
- package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineObject.js +53 -14
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/interface/InterfacePropertyType.js +22 -1
- package/build/browser/api/interface/InterfacePropertyType.js.map +1 -1
- package/build/browser/api/interface/InterfaceType.js.map +1 -1
- package/build/browser/api/interface/getFlattenedInterfaceProperties.js +9 -3
- package/build/browser/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
- package/build/browser/api/object/ObjectType.js.map +1 -1
- package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -1
- package/build/browser/api/properties/PropertyTypeType.js +1 -1
- package/build/browser/api/properties/PropertyTypeType.js.map +1 -1
- package/build/browser/api/properties/SharedPropertyType.js.map +1 -1
- package/build/browser/api/test/actions.test.js +6105 -5850
- package/build/browser/api/test/actions.test.js.map +1 -1
- package/build/browser/api/test/interfaces.test.js +723 -470
- package/build/browser/api/test/interfaces.test.js.map +1 -1
- package/build/browser/api/test/links.test.js +1334 -1325
- package/build/browser/api/test/links.test.js.map +1 -1
- package/build/browser/api/test/misc.test.js +262 -11
- package/build/browser/api/test/misc.test.js.map +1 -1
- package/build/browser/api/test/objects.test.js +1872 -1412
- package/build/browser/api/test/objects.test.js.map +1 -1
- package/build/browser/api/test/spt.test.js +250 -103
- package/build/browser/api/test/spt.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/conversion/toMarketplace/convertInterface.js +2 -2
- package/build/browser/conversion/toMarketplace/convertInterface.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
- package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
- package/build/browser/conversion/toMarketplace/convertMappingValue.js +35 -0
- package/build/browser/conversion/toMarketplace/convertMappingValue.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObject.js +4 -2
- package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
- package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertSpt.js +4 -2
- package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -1
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/cjs/index.cjs +417 -114
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +28 -13
- package/build/esm/api/action/ActionParameter.js.map +1 -1
- package/build/esm/api/action/ActionParameterConfiguration.js.map +1 -1
- package/build/esm/api/defineAction.js +65 -22
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineCreateInterfaceObjectAction.js +28 -8
- package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineInterface.js +40 -34
- package/build/esm/api/defineInterface.js.map +1 -1
- package/build/esm/api/defineModifyInterfaceObjectAction.js +31 -8
- package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineObject.js +53 -14
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/interface/InterfacePropertyType.js +22 -1
- package/build/esm/api/interface/InterfacePropertyType.js.map +1 -1
- package/build/esm/api/interface/InterfaceType.js.map +1 -1
- package/build/esm/api/interface/getFlattenedInterfaceProperties.js +9 -3
- package/build/esm/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
- package/build/esm/api/object/ObjectType.js.map +1 -1
- package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -1
- package/build/esm/api/properties/PropertyTypeType.js +1 -1
- package/build/esm/api/properties/PropertyTypeType.js.map +1 -1
- package/build/esm/api/properties/SharedPropertyType.js.map +1 -1
- package/build/esm/api/test/actions.test.js +6105 -5850
- package/build/esm/api/test/actions.test.js.map +1 -1
- package/build/esm/api/test/interfaces.test.js +723 -470
- package/build/esm/api/test/interfaces.test.js.map +1 -1
- package/build/esm/api/test/links.test.js +1334 -1325
- package/build/esm/api/test/links.test.js.map +1 -1
- package/build/esm/api/test/misc.test.js +262 -11
- package/build/esm/api/test/misc.test.js.map +1 -1
- package/build/esm/api/test/objects.test.js +1872 -1412
- package/build/esm/api/test/objects.test.js.map +1 -1
- package/build/esm/api/test/spt.test.js +250 -103
- package/build/esm/api/test/spt.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/conversion/toMarketplace/convertInterface.js +2 -2
- package/build/esm/conversion/toMarketplace/convertInterface.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
- package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
- package/build/esm/conversion/toMarketplace/convertMappingValue.js +35 -0
- package/build/esm/conversion/toMarketplace/convertMappingValue.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObject.js +4 -2
- package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
- package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertSpt.js +4 -2
- package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -1
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/types/api/action/ActionParameter.d.ts +2 -1
- package/build/types/api/action/ActionParameter.d.ts.map +1 -1
- package/build/types/api/action/ActionParameterConfiguration.d.ts +2 -1
- package/build/types/api/action/ActionParameterConfiguration.d.ts.map +1 -1
- package/build/types/api/defineAction.d.ts +4 -3
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineInterface.d.ts +5 -5
- package/build/types/api/defineInterface.d.ts.map +1 -1
- package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineObject.d.ts.map +1 -1
- package/build/types/api/defineSpt.d.ts +3 -0
- package/build/types/api/defineSpt.d.ts.map +1 -1
- package/build/types/api/interface/InterfacePropertyType.d.ts +12 -2
- package/build/types/api/interface/InterfacePropertyType.d.ts.map +1 -1
- package/build/types/api/interface/InterfaceType.d.ts +3 -2
- package/build/types/api/interface/InterfaceType.d.ts.map +1 -1
- package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts +1 -1
- package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts.map +1 -1
- package/build/types/api/object/ObjectType.d.ts +1 -0
- package/build/types/api/object/ObjectType.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeDefinition.d.ts +1 -0
- package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -1
- package/build/types/api/properties/PropertyTypeType.d.ts +1 -0
- package/build/types/api/properties/PropertyTypeType.d.ts.map +1 -1
- package/build/types/api/properties/SharedPropertyType.d.ts +1 -0
- package/build/types/api/properties/SharedPropertyType.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertInterface.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts +3 -0
- package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts.map +1 -0
- package/build/types/conversion/toMarketplace/convertMappingValue.d.ts +2 -1
- package/build/types/conversion/toMarketplace/convertMappingValue.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertSpt.d.ts +1 -1
- package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts +3 -0
- package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts.map +1 -0
- package/build/types/index.d.ts +1 -0
- package/build/types/index.d.ts.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.15.0-beta.7
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8381ac2: Alias and render hint overrides for oac
|
|
8
|
+
- c95f3bc: Support IDPs in OAC
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- @osdk/api@2.7.0-beta.9
|
|
13
|
+
|
|
14
|
+
## 0.15.0-beta.6
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 2fd6f6e: Fix self-referential derived datasources
|
|
19
|
+
|
|
3
20
|
## 0.15.0-beta.5
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionParameter.js","names":[],"sources":["ActionParameter.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 type { TypeClass } from \"../common/TypeClass.js\";\nimport type { ActionParameterConfiguration } from \"./ActionParameterConfiguration.js\";\nimport type { ActionParameterType } from \"./ActionParameterType.js\";\n\nexport interface ActionParameter {\n id: ParameterId;\n displayName: string;\n type: ActionParameterType;\n validation: ActionParameterValidation;\n description?: string;\n typeClasses?: Array<TypeClass>;\n defaultValue?: OntologyIrParameterPrefill;\n}\nexport type ActionParameterValidation = Omit<\n ActionParameterConfiguration,\n \"displayName\" | \"defaultValue\"\n>;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ActionParameter.js","names":[],"sources":["ActionParameter.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 ParameterRenderHint,\n} from \"@osdk/client.unstable\";\nimport type { TypeClass } from \"../common/TypeClass.js\";\nimport type { ActionParameterConfiguration } from \"./ActionParameterConfiguration.js\";\nimport type { ActionParameterType } from \"./ActionParameterType.js\";\n\nexport interface ActionParameter {\n id: ParameterId;\n displayName: string;\n type: ActionParameterType;\n validation: ActionParameterValidation;\n description?: string;\n typeClasses?: Array<TypeClass>;\n defaultValue?: OntologyIrParameterPrefill;\n renderHint?: ParameterRenderHint;\n}\nexport type ActionParameterValidation = Omit<\n ActionParameterConfiguration,\n \"displayName\" | \"defaultValue\"\n>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionParameterConfiguration.js","names":[],"sources":["ActionParameterConfiguration.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 {
|
|
1
|
+
{"version":3,"file":"ActionParameterConfiguration.js","names":[],"sources":["ActionParameterConfiguration.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 ParameterRenderHint,\n} from \"@osdk/client.unstable\";\nimport type { ActionParameterAllowedValues } from \"./ActionParameterAllowedValues.js\";\nimport type { ActionParameterConditionalOverride } from \"./ActionParameterConditionalOverride.js\";\nimport type { ActionParameterType } from \"./ActionParameterType.js\";\n\nexport interface ActionParameterConfiguration {\n allowedValues?: ActionParameterAllowedValues;\n required?: ActionParameterRequirementConstraint;\n defaultVisibility?: \"editable\" | \"disabled\" | \"hidden\";\n conditionalOverrides?: Array<ActionParameterConditionalOverride>;\n defaultValue?: OntologyIrParameterPrefill;\n renderHint?: ParameterRenderHint;\n displayName?: string;\n description?: string;\n // should only be used on non-property parameters\n customParameterType?: ActionParameterType;\n}\n\nexport type ActionParameterRequirementConstraint =\n | boolean\n | { listLength: { min?: number; max?: number } };\n"],"mappings":"","ignoreList":[]}
|
|
@@ -19,8 +19,9 @@ import { convertConditionDefinition } from "../conversion/toMarketplace/convertC
|
|
|
19
19
|
import { isActionParameterTypePrimitive } from "./action/ActionParameterType.js";
|
|
20
20
|
import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
|
|
21
21
|
import { uppercaseFirstLetter } from "./defineObject.js";
|
|
22
|
-
import { addNamespaceIfNone, importedTypes, namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
|
|
22
|
+
import { addNamespaceIfNone, importedTypes, namespace, ontologyDefinition, updateOntology, withoutNamespace } from "./defineOntology.js";
|
|
23
23
|
import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfaceProperties.js";
|
|
24
|
+
import { getInterfacePropertyTypeType, isInterfaceSharedPropertyType } from "./interface/InterfacePropertyType.js";
|
|
24
25
|
import { isStruct } from "./properties/PropertyTypeType.js";
|
|
25
26
|
export const MODIFY_OBJECT_PARAMETER = "objectToModifyParameter";
|
|
26
27
|
export const CREATE_OR_MODIFY_OBJECT_PARAMETER = "objectToCreateOrModifyParameter";
|
|
@@ -89,29 +90,39 @@ export function defineAction(actionDef) {
|
|
|
89
90
|
return fullAction;
|
|
90
91
|
}
|
|
91
92
|
export function isPropertyParameter(def, name, type) {
|
|
92
|
-
|
|
93
|
+
if ("interfaceType" in def) {
|
|
94
|
+
return Object.keys(getFlattenedInterfaceProperties(def.interfaceType)).includes(name) && !Object.keys(def.nonParameterMappings ?? {}).includes(name) && !isStruct(type) && !def.excludedProperties?.includes(name);
|
|
95
|
+
}
|
|
96
|
+
return Object.keys(def.objectType.properties ?? {}).includes(name) && !Object.keys(def.nonParameterMappings ?? {}).includes(name) && !isStruct(type) && !def.excludedProperties?.includes(name);
|
|
93
97
|
}
|
|
94
98
|
export function createParameters(def, propertyMap, parameterSet, requiredMap) {
|
|
95
99
|
const targetParams = getTargetParameters(def, parameterSet);
|
|
96
|
-
return [...targetParams, ...Array.from(parameterSet).map(id =>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
} :
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
100
|
+
return [...targetParams, ...Array.from(parameterSet).map(id => {
|
|
101
|
+
let propertyMetadata = undefined;
|
|
102
|
+
if (id in propertyMap) {
|
|
103
|
+
propertyMetadata = "sharedPropertyType" in propertyMap[id] ? propertyMap[id].sharedPropertyType : propertyMap[id];
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
id,
|
|
107
|
+
displayName: def.parameterConfiguration?.[id]?.displayName ?? propertyMetadata?.displayName ?? uppercaseFirstLetter(id),
|
|
108
|
+
type: def.parameterConfiguration?.[id]?.customParameterType ?? extractActionParameterType(propertyMetadata),
|
|
109
|
+
validation: def.parameterConfiguration?.[id] !== undefined ? {
|
|
110
|
+
...def.parameterConfiguration?.[id],
|
|
111
|
+
allowedValues: def.parameterConfiguration?.[id].allowedValues ?? (def.parameterConfiguration?.[id].customParameterType ? extractAllowedValuesFromActionParameterType(def.parameterConfiguration?.[id].customParameterType) : extractAllowedValuesFromPropertyType(propertyMetadata.type)),
|
|
112
|
+
required: def.parameterConfiguration?.[id].required ?? propertyMetadata?.nullability?.noNulls ?? false
|
|
113
|
+
} : {
|
|
114
|
+
required: propertyMetadata.array ?? false ? {
|
|
115
|
+
listLength: propertyMetadata.nullability?.noEmptyCollections ? {
|
|
116
|
+
min: 1
|
|
117
|
+
} : {}
|
|
118
|
+
} : requiredMap?.[id] ?? propertyMetadata?.nullability?.noNulls ?? false,
|
|
119
|
+
allowedValues: extractAllowedValuesFromPropertyType(propertyMetadata?.type)
|
|
120
|
+
},
|
|
121
|
+
defaultValue: def.parameterConfiguration?.[id]?.defaultValue,
|
|
122
|
+
description: def.parameterConfiguration?.[id]?.description,
|
|
123
|
+
renderHint: def.parameterConfiguration?.[id]?.renderHint
|
|
124
|
+
};
|
|
125
|
+
})];
|
|
115
126
|
}
|
|
116
127
|
function getTargetParameters(def, parameterSet) {
|
|
117
128
|
const targetParams = [];
|
|
@@ -675,7 +686,7 @@ export function validateActionParameters(def, properties, name) {
|
|
|
675
686
|
!(properties.includes(id) || properties.includes(addNamespaceIfNone(id)) || def.parameterConfiguration?.[id].customParameterType !== undefined || isTargetParameter(id)) ? process.env.NODE_ENV !== "production" ? invariant(false, `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`) : invariant(false) : void 0;
|
|
676
687
|
});
|
|
677
688
|
[...Object.keys(def.nonParameterMappings ?? {}), ...(def.excludedProperties ?? [])].forEach(id => {
|
|
678
|
-
!(properties.includes(id) || properties.includes(addNamespaceIfNone(id))) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist as a property on ${name}`) : invariant(false) : void 0;
|
|
689
|
+
!(properties.includes(id) || properties.includes(addNamespaceIfNone(id)) || properties.includes(withoutNamespace(id))) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist as a property on ${name}`) : invariant(false) : void 0;
|
|
679
690
|
});
|
|
680
691
|
}
|
|
681
692
|
|
|
@@ -713,4 +724,36 @@ export function getInterfaceParameterName(def, parameter) {
|
|
|
713
724
|
export function getNonNamespacedParameterName(def, parameter) {
|
|
714
725
|
return def.conflictingParameterOverrides?.[parameter] ?? (parameter.split(".").pop() || parameter);
|
|
715
726
|
}
|
|
727
|
+
export function createInterfacePropertyLogicRuleValue(id, def, actionDef) {
|
|
728
|
+
const type = getInterfacePropertyTypeType(def);
|
|
729
|
+
const array = isInterfaceSharedPropertyType(def) ? def.sharedPropertyType.array : def.array;
|
|
730
|
+
const parameterId = actionDef.useNonNamespacedParameters ? getNonNamespacedParameterName(actionDef, id) : id;
|
|
731
|
+
if (isStruct(type)) {
|
|
732
|
+
return {
|
|
733
|
+
type: "structLogicRuleValue",
|
|
734
|
+
structLogicRuleValue: Object.fromEntries(Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {
|
|
735
|
+
return [apiName, array ? {
|
|
736
|
+
type: "structListParameterFieldValue",
|
|
737
|
+
structListParameterFieldValue: {
|
|
738
|
+
parameterId: parameterId,
|
|
739
|
+
structFieldApiName: apiName
|
|
740
|
+
}
|
|
741
|
+
} : {
|
|
742
|
+
type: "structParameterFieldValue",
|
|
743
|
+
structParameterFieldValue: {
|
|
744
|
+
parameterId: parameterId,
|
|
745
|
+
structFieldApiName: apiName
|
|
746
|
+
}
|
|
747
|
+
}];
|
|
748
|
+
}))
|
|
749
|
+
};
|
|
750
|
+
}
|
|
751
|
+
return {
|
|
752
|
+
type: "logicRuleValue",
|
|
753
|
+
logicRuleValue: {
|
|
754
|
+
type: "parameterId",
|
|
755
|
+
parameterId: parameterId
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
}
|
|
716
759
|
//# sourceMappingURL=defineAction.js.map
|
|
@@ -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","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":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","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","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","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","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"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 OntologyIrInterfacePropertyLogicRuleValue,\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 withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.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\";\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 if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\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, InterfacePropertyType>,\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 let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\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 propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\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 | InterfaceDefinedProperty\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 | InterfaceDefinedProperty\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 || properties.includes(withoutNamespace(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\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,16 +14,17 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
|
|
18
|
-
import {
|
|
17
|
+
import { convertInterfacePropertyMappingValue, convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
|
|
18
|
+
import { convertValidationRule, CREATE_INTERFACE_OBJECT_PARAMETER, createDefaultParameterOrdering, createParameters, defineAction, getInterfaceParameterName, getNonNamespacedParameterName, isPropertyParameter, kebab, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
|
|
19
19
|
import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfaceProperties.js";
|
|
20
|
+
import { getInterfacePropertyTypeType, isInterfaceSharedPropertyType } from "./interface/InterfacePropertyType.js";
|
|
20
21
|
export function defineCreateInterfaceObjectAction(def) {
|
|
21
|
-
addNamespaceToActionDefinition(def);
|
|
22
22
|
const allProperties = getFlattenedInterfaceProperties(def.interfaceType);
|
|
23
23
|
validateActionParameters(def, Object.keys(allProperties), def.interfaceType.apiName);
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
24
|
+
const actionInterfaceProperties = Object.entries(allProperties).filter(([apiName, type]) => isPropertyParameter(def, apiName, getInterfacePropertyTypeType(type)));
|
|
25
|
+
const sptNames = actionInterfaceProperties.filter(([_apiName, type]) => isInterfaceSharedPropertyType(type)).map(([apiName]) => apiName);
|
|
26
|
+
const parameterNames = new Set(actionInterfaceProperties.map(([apiName, _type]) => getInterfaceParameterName(def, apiName)));
|
|
27
|
+
const propertyMap = Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [getInterfaceParameterName(def, id), prop]));
|
|
27
28
|
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(getInterfaceParameterName(def, param)));
|
|
28
29
|
parameterNames.add(CREATE_INTERFACE_OBJECT_PARAMETER);
|
|
29
30
|
const actionApiName = def.apiName ?? `create-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === undefined ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`;
|
|
@@ -33,8 +34,17 @@ export function defineCreateInterfaceObjectAction(def) {
|
|
|
33
34
|
}
|
|
34
35
|
validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
|
|
35
36
|
}
|
|
36
|
-
const parameters = createParameters(def, propertyMap, parameterNames, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.required])));
|
|
37
|
-
|
|
37
|
+
const parameters = createParameters(def, propertyMap, parameterNames, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.required ?? true])));
|
|
38
|
+
let sptMappings = {};
|
|
39
|
+
const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => {
|
|
40
|
+
if (sptNames.includes(id)) {
|
|
41
|
+
sptMappings = {
|
|
42
|
+
...sptMappings,
|
|
43
|
+
[id]: convertMappingValue(value)
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return [id, convertInterfacePropertyMappingValue(value)];
|
|
47
|
+
}));
|
|
38
48
|
return defineAction({
|
|
39
49
|
apiName: actionApiName,
|
|
40
50
|
displayName: def.displayName ?? `Create ${def.interfaceType.displayMetadata.displayName}`,
|
|
@@ -56,6 +66,16 @@ export function defineCreateInterfaceObjectAction(def) {
|
|
|
56
66
|
type: "parameterId",
|
|
57
67
|
parameterId: def.useNonNamespacedParameters ? getNonNamespacedParameterName(def, id) : id
|
|
58
68
|
}])),
|
|
69
|
+
...sptMappings
|
|
70
|
+
},
|
|
71
|
+
interfacePropertyValues: {
|
|
72
|
+
...Object.fromEntries(actionInterfaceProperties.map(([id, _type]) => [id, {
|
|
73
|
+
type: "logicRuleValue",
|
|
74
|
+
logicRuleValue: {
|
|
75
|
+
type: "parameterId",
|
|
76
|
+
parameterId: def.useNonNamespacedParameters ? getNonNamespacedParameterName(def, id) : id
|
|
77
|
+
}
|
|
78
|
+
}])),
|
|
59
79
|
...mappings
|
|
60
80
|
}
|
|
61
81
|
}
|