@osdk/maker 0.13.0 → 0.14.0-beta.10
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 +102 -36
- package/README.md +86 -22
- package/build/browser/api/action/DefaultFormat.js +2 -0
- package/build/browser/api/action/DefaultFormat.js.map +1 -0
- package/build/browser/api/action/TableConfiguration.js +2 -0
- package/build/browser/api/action/TableConfiguration.js.map +1 -0
- package/build/browser/api/code-snippets/createCodeSnippets.js +91 -0
- package/build/browser/api/code-snippets/createCodeSnippets.js.map +1 -0
- package/build/browser/api/code-snippets/snippetTypes.js +60 -0
- package/build/browser/api/code-snippets/snippetTypes.js.map +1 -0
- package/build/browser/api/defineAction.js +131 -414
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineCreateInterfaceObjectAction.js +85 -0
- package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -0
- package/build/browser/api/defineCreateObjectAction.js +80 -0
- package/build/browser/api/defineCreateObjectAction.js.map +1 -0
- package/build/browser/api/defineCreateOrModifyObjectAction.js +95 -0
- package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -0
- package/build/browser/api/defineDeleteInterfaceObjectAction.js +53 -0
- package/build/browser/api/defineDeleteInterfaceObjectAction.js.map +1 -0
- package/build/browser/api/defineDeleteObjectAction.js +56 -0
- package/build/browser/api/defineDeleteObjectAction.js.map +1 -0
- package/build/browser/api/defineLink.js +5 -13
- package/build/browser/api/defineLink.js.map +1 -1
- package/build/browser/api/defineModifyInterfaceObjectAction.js +84 -0
- package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -0
- package/build/browser/api/defineModifyObjectAction.js +93 -0
- package/build/browser/api/defineModifyObjectAction.js.map +1 -0
- package/build/browser/api/defineObject.js +94 -3
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineOntology.js +6 -1
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/links/LinkType.js.map +1 -1
- package/build/browser/api/object/ObjectType.js.map +1 -1
- package/build/browser/api/object/ObjectTypeDatasourceDefinition.js.map +1 -1
- package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -1
- package/build/browser/api/test/actions.test.js +12034 -0
- package/build/browser/api/test/actions.test.js.map +1 -0
- package/build/browser/api/test/interfaces.test.js +924 -0
- package/build/browser/api/test/interfaces.test.js.map +1 -0
- package/build/browser/api/test/links.test.js +1974 -0
- package/build/browser/api/test/links.test.js.map +1 -0
- package/build/browser/api/{markingconstraint.test.js → test/markingconstraint.test.js} +28 -2
- package/build/browser/api/test/markingconstraint.test.js.map +1 -0
- package/build/browser/api/test/misc.test.js +1058 -0
- package/build/browser/api/test/misc.test.js.map +1 -0
- package/build/browser/api/{objectStatus.test.js → test/objectStatus.test.js} +2 -2
- package/build/browser/api/test/objectStatus.test.js.map +1 -0
- package/build/browser/api/test/objects.test.js +2591 -0
- package/build/browser/api/test/objects.test.js.map +1 -0
- package/build/browser/api/test/spt.test.js +387 -0
- package/build/browser/api/test/spt.test.js.map +1 -0
- package/build/browser/api/test/valueTypes.test.js +156 -0
- package/build/browser/api/test/valueTypes.test.js.map +1 -0
- package/build/browser/cli/main.js +25 -6
- package/build/browser/cli/main.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +2 -2
- package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertActionValidation.js +2 -2
- package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertConditionDefinition.js +5 -3
- package/build/browser/conversion/toMarketplace/convertConditionDefinition.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js +3 -2
- package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertLink.js +109 -24
- package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObject.js +81 -4
- package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js +2 -2
- package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -1
- package/build/browser/index.js +8 -1
- package/build/browser/index.js.map +1 -1
- package/build/cjs/index.cjs +1716 -797
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +184 -115
- package/build/esm/api/action/DefaultFormat.js +2 -0
- package/build/esm/api/action/DefaultFormat.js.map +1 -0
- package/build/esm/api/action/TableConfiguration.js +2 -0
- package/build/esm/api/action/TableConfiguration.js.map +1 -0
- package/build/esm/api/code-snippets/createCodeSnippets.js +91 -0
- package/build/esm/api/code-snippets/createCodeSnippets.js.map +1 -0
- package/build/esm/api/code-snippets/snippetTypes.js +60 -0
- package/build/esm/api/code-snippets/snippetTypes.js.map +1 -0
- package/build/esm/api/defineAction.js +131 -414
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineCreateInterfaceObjectAction.js +85 -0
- package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -0
- package/build/esm/api/defineCreateObjectAction.js +80 -0
- package/build/esm/api/defineCreateObjectAction.js.map +1 -0
- package/build/esm/api/defineCreateOrModifyObjectAction.js +95 -0
- package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -0
- package/build/esm/api/defineDeleteInterfaceObjectAction.js +53 -0
- package/build/esm/api/defineDeleteInterfaceObjectAction.js.map +1 -0
- package/build/esm/api/defineDeleteObjectAction.js +56 -0
- package/build/esm/api/defineDeleteObjectAction.js.map +1 -0
- package/build/esm/api/defineLink.js +5 -13
- package/build/esm/api/defineLink.js.map +1 -1
- package/build/esm/api/defineModifyInterfaceObjectAction.js +84 -0
- package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -0
- package/build/esm/api/defineModifyObjectAction.js +93 -0
- package/build/esm/api/defineModifyObjectAction.js.map +1 -0
- package/build/esm/api/defineObject.js +94 -3
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineOntology.js +6 -1
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/links/LinkType.js.map +1 -1
- package/build/esm/api/object/ObjectType.js.map +1 -1
- package/build/esm/api/object/ObjectTypeDatasourceDefinition.js.map +1 -1
- package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -1
- package/build/esm/api/test/actions.test.js +12034 -0
- package/build/esm/api/test/actions.test.js.map +1 -0
- package/build/esm/api/test/interfaces.test.js +924 -0
- package/build/esm/api/test/interfaces.test.js.map +1 -0
- package/build/esm/api/test/links.test.js +1974 -0
- package/build/esm/api/test/links.test.js.map +1 -0
- package/build/esm/api/{markingconstraint.test.js → test/markingconstraint.test.js} +28 -2
- package/build/esm/api/test/markingconstraint.test.js.map +1 -0
- package/build/esm/api/test/misc.test.js +1058 -0
- package/build/esm/api/test/misc.test.js.map +1 -0
- package/build/esm/api/{objectStatus.test.js → test/objectStatus.test.js} +2 -2
- package/build/esm/api/test/objectStatus.test.js.map +1 -0
- package/build/esm/api/test/objects.test.js +2591 -0
- package/build/esm/api/test/objects.test.js.map +1 -0
- package/build/esm/api/test/spt.test.js +387 -0
- package/build/esm/api/test/spt.test.js.map +1 -0
- package/build/esm/api/test/valueTypes.test.js +156 -0
- package/build/esm/api/test/valueTypes.test.js.map +1 -0
- package/build/esm/cli/main.js +25 -6
- package/build/esm/cli/main.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +2 -2
- package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertActionValidation.js +2 -2
- package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertConditionDefinition.js +5 -3
- package/build/esm/conversion/toMarketplace/convertConditionDefinition.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js +3 -2
- package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertLink.js +109 -24
- package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObject.js +81 -4
- package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js +2 -2
- package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -1
- package/build/esm/index.js +8 -1
- package/build/esm/index.js.map +1 -1
- package/build/types/api/action/DefaultFormat.d.ts +1 -0
- package/build/types/api/action/DefaultFormat.d.ts.map +1 -0
- package/build/types/api/action/TableConfiguration.d.ts +8 -0
- package/build/types/api/action/TableConfiguration.d.ts.map +1 -0
- package/build/types/api/code-snippets/createCodeSnippets.d.ts +2 -0
- package/build/types/api/code-snippets/createCodeSnippets.d.ts.map +1 -0
- package/build/types/api/code-snippets/snippetTypes.d.ts +23 -0
- package/build/types/api/code-snippets/snippetTypes.d.ts.map +1 -0
- package/build/types/api/defineAction.d.ts +34 -10
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineCreateInterfaceObjectAction.d.ts +3 -0
- package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -0
- package/build/types/api/defineCreateObjectAction.d.ts +3 -0
- package/build/types/api/defineCreateObjectAction.d.ts.map +1 -0
- package/build/types/api/defineCreateOrModifyObjectAction.d.ts +3 -0
- package/build/types/api/defineCreateOrModifyObjectAction.d.ts.map +1 -0
- package/build/types/api/defineDeleteInterfaceObjectAction.d.ts +3 -0
- package/build/types/api/defineDeleteInterfaceObjectAction.d.ts.map +1 -0
- package/build/types/api/defineDeleteObjectAction.d.ts +3 -0
- package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -0
- package/build/types/api/defineLink.d.ts.map +1 -1
- package/build/types/api/defineModifyInterfaceObjectAction.d.ts +3 -0
- package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -0
- package/build/types/api/defineModifyObjectAction.d.ts +3 -0
- package/build/types/api/defineModifyObjectAction.d.ts.map +1 -0
- package/build/types/api/defineObject.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts +1 -1
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/links/LinkType.d.ts +7 -7
- package/build/types/api/object/ObjectType.d.ts +1 -1
- package/build/types/api/object/ObjectType.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts +41 -1
- package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeDefinition.d.ts +1 -1
- package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -1
- package/build/types/api/test/actions.test.d.ts.map +1 -0
- package/build/types/api/test/interfaces.test.d.ts.map +1 -0
- package/build/types/api/test/links.test.d.ts.map +1 -0
- package/build/types/api/test/markingconstraint.test.d.ts +1 -0
- package/build/types/api/test/markingconstraint.test.d.ts.map +1 -0
- package/build/types/api/test/misc.test.d.ts +1 -0
- package/build/types/api/test/misc.test.d.ts.map +1 -0
- package/build/types/api/test/objectStatus.test.d.ts +1 -0
- package/build/types/api/test/objectStatus.test.d.ts.map +1 -0
- package/build/types/api/test/objects.test.d.ts +1 -0
- package/build/types/api/test/objects.test.d.ts.map +1 -0
- package/build/types/api/test/spt.test.d.ts +1 -0
- package/build/types/api/test/spt.test.d.ts.map +1 -0
- package/build/types/api/test/valueTypes.test.d.ts +1 -0
- package/build/types/api/test/valueTypes.test.d.ts.map +1 -0
- package/build/types/cli/main.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts +2 -2
- package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts +2 -1
- package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertLink.d.ts +6 -0
- package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts +2 -1
- package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts.map +1 -1
- package/build/types/index.d.ts +8 -1
- package/build/types/index.d.ts.map +1 -1
- package/package.json +6 -6
- package/build/browser/api/markingconstraint.test.js.map +0 -1
- package/build/browser/api/objectStatus.test.js.map +0 -1
- package/build/browser/api/overall.test.js +0 -13998
- package/build/browser/api/overall.test.js.map +0 -1
- package/build/esm/api/markingconstraint.test.js.map +0 -1
- package/build/esm/api/objectStatus.test.js.map +0 -1
- package/build/esm/api/overall.test.js +0 -13998
- package/build/esm/api/overall.test.js.map +0 -1
- package/build/types/api/markingconstraint.test.d.ts.map +0 -1
- package/build/types/api/objectStatus.test.d.ts.map +0 -1
- package/build/types/api/overall.test.d.ts.map +0 -1
- /package/build/types/api/{markingconstraint.test.d.ts → test/actions.test.d.ts} +0 -0
- /package/build/types/api/{objectStatus.test.d.ts → test/interfaces.test.d.ts} +0 -0
- /package/build/types/api/{overall.test.d.ts → test/links.test.d.ts} +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
|
|
18
|
+
import { convertValidationRule, CREATE_OR_MODIFY_OBJECT_PARAMETER, createDefaultParameterOrdering, createParameters, defineAction, kebab, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
|
|
19
|
+
import { isStruct } from "./properties/PropertyTypeType.js";
|
|
20
|
+
export function defineCreateOrModifyObjectAction(def) {
|
|
21
|
+
validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
|
|
22
|
+
const propertiesWithDerivedDatasources = (def.objectType.datasources ?? []).filter(ds => ds.type === "derived").flatMap(ds => Object.keys(ds.propertyMapping));
|
|
23
|
+
const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName && !propertiesWithDerivedDatasources.includes(id));
|
|
24
|
+
const parameterNames = new Set(propertyParameters);
|
|
25
|
+
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
|
|
26
|
+
parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);
|
|
27
|
+
const actionApiName = def.apiName ?? `create-or-modify-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
|
|
28
|
+
if (def.parameterOrdering) {
|
|
29
|
+
if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {
|
|
30
|
+
def.parameterOrdering.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);
|
|
31
|
+
}
|
|
32
|
+
validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
|
|
33
|
+
}
|
|
34
|
+
const parameters = createParameters(def, def.objectType.properties ?? {}, parameterNames);
|
|
35
|
+
parameters.forEach(p => {
|
|
36
|
+
if (p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {
|
|
37
|
+
p.defaultValue = {
|
|
38
|
+
type: "objectParameterPropertyValue",
|
|
39
|
+
objectParameterPropertyValue: {
|
|
40
|
+
parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,
|
|
41
|
+
propertyTypeId: p.id
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
|
|
47
|
+
return defineAction({
|
|
48
|
+
apiName: actionApiName,
|
|
49
|
+
displayName: def.displayName ?? `Create or Modify ${def.objectType.displayName}`,
|
|
50
|
+
parameters: parameters,
|
|
51
|
+
status: def.status ?? "active",
|
|
52
|
+
rules: [{
|
|
53
|
+
type: "addOrModifyObjectRuleV2",
|
|
54
|
+
addOrModifyObjectRuleV2: {
|
|
55
|
+
objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,
|
|
56
|
+
propertyValues: {
|
|
57
|
+
...Object.fromEntries(propertyParameters.map(p => [p, {
|
|
58
|
+
type: "parameterId",
|
|
59
|
+
parameterId: p
|
|
60
|
+
}])),
|
|
61
|
+
...mappings
|
|
62
|
+
},
|
|
63
|
+
structFieldValues: {}
|
|
64
|
+
}
|
|
65
|
+
}],
|
|
66
|
+
entities: {
|
|
67
|
+
affectedInterfaceTypes: [],
|
|
68
|
+
affectedObjectTypes: [def.objectType.apiName],
|
|
69
|
+
affectedLinkTypes: [],
|
|
70
|
+
typeGroups: []
|
|
71
|
+
},
|
|
72
|
+
parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(def.objectType.properties ?? {}), parameters, CREATE_OR_MODIFY_OBJECT_PARAMETER),
|
|
73
|
+
...(def.actionLevelValidation ? {
|
|
74
|
+
validation: convertValidationRule(def.actionLevelValidation, parameters)
|
|
75
|
+
} : {}),
|
|
76
|
+
...(def.defaultFormat && {
|
|
77
|
+
defaultFormat: def.defaultFormat
|
|
78
|
+
}),
|
|
79
|
+
...(def.enableLayoutSwitch && {
|
|
80
|
+
enableLayoutSwitch: def.enableLayoutSwitch
|
|
81
|
+
}),
|
|
82
|
+
...(def.tableConfiguration && {
|
|
83
|
+
displayAndFormat: {
|
|
84
|
+
table: def.tableConfiguration
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
...(def.sections && {
|
|
88
|
+
sections: Object.fromEntries(def.sections.map(section => [section.id, section]))
|
|
89
|
+
}),
|
|
90
|
+
...(def.submissionMetadata && {
|
|
91
|
+
submissionMetadata: def.submissionMetadata
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=defineCreateOrModifyObjectAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineCreateOrModifyObjectAction.js","names":["convertMappingValue","convertValidationRule","CREATE_OR_MODIFY_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","kebab","validateActionParameters","validateParameterOrdering","isStruct","defineCreateOrModifyObjectAction","def","Object","keys","objectType","properties","apiName","propertiesWithDerivedDatasources","datasources","filter","ds","type","flatMap","propertyMapping","propertyParameters","id","nonParameterMappings","includes","excludedProperties","primaryKeyPropertyApiName","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","unshift","parameters","p","defaultValue","undefined","objectParameterPropertyValue","parameterId","propertyTypeId","mappings","fromEntries","entries","map","value","displayName","status","rules","addOrModifyObjectRuleV2","objectToModify","propertyValues","structFieldValues","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineCreateOrModifyObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { isStruct } from \"./properties/PropertyTypeType.js\";\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertiesWithDerivedDatasources = (def.objectType.datasources ?? [])\n .filter(ds => ds.type === \"derived\").flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName\n && !propertiesWithDerivedDatasources.includes(id),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(def.objectType.properties ?? {}),\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { defineAction, kebab } from "./defineAction.js";
|
|
18
|
+
export function defineDeleteInterfaceObjectAction(def) {
|
|
19
|
+
return defineAction({
|
|
20
|
+
apiName: def.apiName ?? `delete-interface-object-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}`,
|
|
21
|
+
displayName: def.displayName ?? `Delete ${def.interfaceType.displayMetadata.displayName}`,
|
|
22
|
+
parameters: [{
|
|
23
|
+
id: "objectToDeleteParameter",
|
|
24
|
+
displayName: "Delete object",
|
|
25
|
+
type: {
|
|
26
|
+
type: "interfaceReference",
|
|
27
|
+
interfaceReference: {
|
|
28
|
+
interfaceTypeRid: def.interfaceType.apiName
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
validation: {
|
|
32
|
+
required: true,
|
|
33
|
+
allowedValues: {
|
|
34
|
+
type: "interfaceObjectQuery"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}],
|
|
38
|
+
status: def.status ?? "active",
|
|
39
|
+
rules: [{
|
|
40
|
+
type: "deleteObjectRule",
|
|
41
|
+
deleteObjectRule: {
|
|
42
|
+
objectToDelete: "objectToDeleteParameter"
|
|
43
|
+
}
|
|
44
|
+
}],
|
|
45
|
+
entities: {
|
|
46
|
+
affectedInterfaceTypes: [def.interfaceType.apiName],
|
|
47
|
+
affectedObjectTypes: [],
|
|
48
|
+
affectedLinkTypes: [],
|
|
49
|
+
typeGroups: []
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=defineDeleteInterfaceObjectAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineDeleteInterfaceObjectAction.js","names":["defineAction","kebab","defineDeleteInterfaceObjectAction","def","apiName","interfaceType","split","pop","displayName","displayMetadata","parameters","id","type","interfaceReference","interfaceTypeRid","validation","required","allowedValues","status","rules","deleteObjectRule","objectToDelete","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups"],"sources":["defineDeleteInterfaceObjectAction.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 { ActionType } from \"./action/ActionType.js\";\nimport type { InterfaceActionTypeUserDefinition } from \"./defineAction.js\";\nimport { defineAction, kebab } from \"./defineAction.js\";\n\nexport function defineDeleteInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-interface-object-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop()\n ?? def.interfaceType.apiName,\n )\n }`,\n displayName: def.displayName\n ?? `Delete ${def.interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: def.interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"interfaceObjectQuery\" },\n },\n },\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n }],\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAY,EAAEC,KAAK,QAAQ,mBAAmB;AAEvD,OAAO,SAASC,iCAAiCA,CAC/CC,GAAsC,EAC1B;EACZ,OAAOH,YAAY,CAAC;IAClBI,OAAO,EAAED,GAAG,CAACC,OAAO,IACf,2BACDH,KAAK,CACHE,GAAG,CAACE,aAAa,CAACD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IACrCJ,GAAG,CAACE,aAAa,CAACD,OACzB,CAAC,EACD;IACJI,WAAW,EAAEL,GAAG,CAACK,WAAW,IACvB,UAAUL,GAAG,CAACE,aAAa,CAACI,eAAe,CAACD,WAAW,EAAE;IAC9DE,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,yBAAyB;MAC7BH,WAAW,EAAE,eAAe;MAC5BI,IAAI,EAAE;QACJA,IAAI,EAAE,oBAAoB;QAC1BC,kBAAkB,EAAE;UAAEC,gBAAgB,EAAEX,GAAG,CAACE,aAAa,CAACD;QAAQ;MACpE,CAAC;MACDW,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAE;UAAEL,IAAI,EAAE;QAAuB;MAChD;IACF,CAAC,CACF;IACDM,MAAM,EAAEf,GAAG,CAACe,MAAM,IAAI,QAAQ;IAC9BC,KAAK,EAAE,CAAC;MACNP,IAAI,EAAE,kBAAkB;MACxBQ,gBAAgB,EAAE;QAChBC,cAAc,EAAE;MAClB;IACF,CAAC,CAAC;IACFC,QAAQ,EAAE;MACRC,sBAAsB,EAAE,CAACpB,GAAG,CAACE,aAAa,CAACD,OAAO,CAAC;MACnDoB,mBAAmB,EAAE,EAAE;MACvBC,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { convertValidationRule, defineAction, kebab } from "./defineAction.js";
|
|
18
|
+
export function defineDeleteObjectAction(def) {
|
|
19
|
+
return defineAction({
|
|
20
|
+
apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
|
|
21
|
+
displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,
|
|
22
|
+
parameters: [{
|
|
23
|
+
id: "objectToDeleteParameter",
|
|
24
|
+
displayName: "Delete object",
|
|
25
|
+
type: {
|
|
26
|
+
type: "objectReference",
|
|
27
|
+
objectReference: {
|
|
28
|
+
objectTypeId: def.objectType.apiName
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
validation: {
|
|
32
|
+
required: true,
|
|
33
|
+
allowedValues: {
|
|
34
|
+
type: "objectQuery"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}],
|
|
38
|
+
status: def.status ?? "active",
|
|
39
|
+
rules: [{
|
|
40
|
+
type: "deleteObjectRule",
|
|
41
|
+
deleteObjectRule: {
|
|
42
|
+
objectToDelete: "objectToDeleteParameter"
|
|
43
|
+
}
|
|
44
|
+
}],
|
|
45
|
+
entities: {
|
|
46
|
+
affectedInterfaceTypes: [],
|
|
47
|
+
affectedObjectTypes: [def.objectType.apiName],
|
|
48
|
+
affectedLinkTypes: [],
|
|
49
|
+
typeGroups: []
|
|
50
|
+
},
|
|
51
|
+
...(def.actionLevelValidation ? {
|
|
52
|
+
validation: convertValidationRule(def.actionLevelValidation)
|
|
53
|
+
} : {})
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=defineDeleteObjectAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineDeleteObjectAction.js","names":["convertValidationRule","defineAction","kebab","defineDeleteObjectAction","def","apiName","objectType","split","pop","displayName","parameters","id","type","objectReference","objectTypeId","validation","required","allowedValues","status","rules","deleteObjectRule","objectToDelete","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation"],"sources":["defineDeleteObjectAction.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 ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport { convertValidationRule, defineAction, kebab } from \"./defineAction.js\";\n\nexport function defineDeleteObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n ),\n }\n : {}),\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,qBAAqB,EAAEC,YAAY,EAAEC,KAAK,QAAQ,mBAAmB;AAE9E,OAAO,SAASC,wBAAwBA,CACtCC,GAA6B,EACjB;EACZ,OAAOH,YAAY,CAAC;IAClBI,OAAO,EAAED,GAAG,CAACC,OAAO,IACf,iBACDH,KAAK,CAACE,GAAG,CAACE,UAAU,CAACD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIJ,GAAG,CAACE,UAAU,CAACD,OAAO,CAAC,EACxE;IACJI,WAAW,EAAEL,GAAG,CAACK,WAAW,IAAI,UAAUL,GAAG,CAACE,UAAU,CAACG,WAAW,EAAE;IACtEC,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,yBAAyB;MAC7BF,WAAW,EAAE,eAAe;MAC5BG,IAAI,EAAE;QACJA,IAAI,EAAE,iBAAiB;QACvBC,eAAe,EAAE;UAAEC,YAAY,EAAEV,GAAG,CAACE,UAAU,CAACD;QAAQ;MAC1D,CAAC;MACDU,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAE;UAAEL,IAAI,EAAE;QAAc;MACvC;IACF,CAAC,CACF;IACDM,MAAM,EAAEd,GAAG,CAACc,MAAM,IAAI,QAAQ;IAC9BC,KAAK,EAAE,CAAC;MACNP,IAAI,EAAE,kBAAkB;MACxBQ,gBAAgB,EAAE;QAChBC,cAAc,EAAE;MAClB;IACF,CAAC,CAAC;IACFC,QAAQ,EAAE;MACRC,sBAAsB,EAAE,EAAE;MAC1BC,mBAAmB,EAAE,CAACpB,GAAG,CAACE,UAAU,CAACD,OAAO,CAAC;MAC7CoB,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd,CAAC;IACD,IAAItB,GAAG,CAACuB,qBAAqB,GACzB;MACAZ,UAAU,EAAEf,qBAAqB,CAC/BI,GAAG,CAACuB,qBACN;IACF,CAAC,GACC,CAAC,CAAC;EACR,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -14,23 +14,14 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import invariant from "tiny-invariant";
|
|
18
17
|
import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
|
|
19
18
|
import { convertToPluralDisplayName, uppercaseFirstLetter } from "./defineObject.js";
|
|
20
19
|
import { updateOntology } from "./defineOntology.js";
|
|
21
|
-
const typeIdPattern = /([a-z][a-z0-9\\-]*)/;
|
|
22
20
|
export function defineLink(linkDefinition) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;
|
|
28
|
-
!typesMatch ? process.env.NODE_ENV !== "production" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;
|
|
29
|
-
}
|
|
30
|
-
if ("intermediaryObjectType" in linkDefinition) {
|
|
31
|
-
!("one" in linkDefinition.many.linkToIntermediary && linkDefinition.many.linkToIntermediary.one.object.apiName === linkDefinition.many.object.apiName && linkDefinition.many.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`) : invariant(false) : void 0;
|
|
32
|
-
!("one" in linkDefinition.toMany.linkToIntermediary && linkDefinition.toMany.linkToIntermediary.one.object.apiName === linkDefinition.toMany.object.apiName && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`) : invariant(false) : void 0;
|
|
33
|
-
}
|
|
21
|
+
// NOTE: we would normally do validation here, but because of circular dependencies
|
|
22
|
+
// we have to wait to validate until everything has been defined. The code for validation
|
|
23
|
+
// was moved to convertLink.ts.
|
|
24
|
+
|
|
34
25
|
let fullLinkDefinition;
|
|
35
26
|
if ("one" in linkDefinition) {
|
|
36
27
|
fullLinkDefinition = {
|
|
@@ -54,6 +45,7 @@ export function defineLink(linkDefinition) {
|
|
|
54
45
|
const linkType = {
|
|
55
46
|
cardinality: "one" in linkDefinition ? linkDefinition.cardinality : undefined,
|
|
56
47
|
...fullLinkDefinition,
|
|
48
|
+
apiName: linkDefinition.apiName,
|
|
57
49
|
__type: OntologyEntityTypeEnum.LINK_TYPE
|
|
58
50
|
};
|
|
59
51
|
updateOntology(linkType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineLink.js","names":["invariant","OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","many","linkToIntermediary","intermediaryObjectType","fullLinkDefinition","convertUserOneToManyLinkDefinition","convertUserIntermediaryLinkDefinition","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","intermediary","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.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 { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n IntermediaryObjectLinkReference,\n IntermediaryObjectLinkReferenceUserDefinition,\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && linkDefinition.many.linkToIntermediary.one.object.apiName\n === linkDefinition.many.object.apiName\n && linkDefinition.many.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`,\n );\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && linkDefinition.toMany.linkToIntermediary.one.object.apiName\n === linkDefinition.toMany.object.apiName\n && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`,\n );\n }\n let fullLinkDefinition;\n if (\"one\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n };\n } else if (\"intermediaryObjectType\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserIntermediaryLinkDefinition(\n linkDefinition.many,\n ),\n toMany: convertUserIntermediaryLinkDefinition(\n linkDefinition.toMany,\n ),\n };\n } else {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n }\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertUserIntermediaryLinkDefinition(\n intermediary: IntermediaryObjectLinkReferenceUserDefinition,\n): IntermediaryObjectLinkReference {\n return {\n ...intermediary,\n metadata: convertLinkTypeMetadata(intermediary.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineLink.js","names":["OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","defineLink","linkDefinition","fullLinkDefinition","one","convertUserOneToManyLinkDefinition","toMany","many","convertUserIntermediaryLinkDefinition","convertUserManyToManyLinkDefinition","linkType","cardinality","undefined","apiName","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","intermediary","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.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 { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n IntermediaryObjectLinkReference,\n IntermediaryObjectLinkReferenceUserDefinition,\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n // NOTE: we would normally do validation here, but because of circular dependencies\n // we have to wait to validate until everything has been defined. The code for validation\n // was moved to convertLink.ts.\n\n let fullLinkDefinition;\n if (\"one\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n };\n } else if (\"intermediaryObjectType\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserIntermediaryLinkDefinition(\n linkDefinition.many,\n ),\n toMany: convertUserIntermediaryLinkDefinition(\n linkDefinition.toMany,\n ),\n };\n } else {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n }\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n apiName: linkDefinition.apiName,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertUserIntermediaryLinkDefinition(\n intermediary: IntermediaryObjectLinkReferenceUserDefinition,\n): IntermediaryObjectLinkReference {\n return {\n ...intermediary,\n metadata: convertLinkTypeMetadata(intermediary.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,sBAAsB,QAAQ,oCAAoC;AAC3E,SACEC,0BAA0B,EAC1BC,oBAAoB,QACf,mBAAmB;AAC1B,SAASC,cAAc,QAAQ,qBAAqB;AAapD,OAAO,SAASC,UAAUA,CACxBC,cAAkC,EACxB;EACV;EACA;EACA;;EAEA,IAAIC,kBAAkB;EACtB,IAAI,KAAK,IAAID,cAAc,EAAE;IAC3BC,kBAAkB,GAAG;MACnB,GAAGD,cAAc;MACjBE,GAAG,EAAEC,kCAAkC,CAACH,cAAc,CAACE,GAAG,CAAC;MAC3DE,MAAM,EAAED,kCAAkC,CAACH,cAAc,CAACI,MAAM;IAClE,CAAC;EACH,CAAC,MAAM,IAAI,wBAAwB,IAAIJ,cAAc,EAAE;IACrDC,kBAAkB,GAAG;MACnB,GAAGD,cAAc;MACjBK,IAAI,EAAEC,qCAAqC,CACzCN,cAAc,CAACK,IACjB,CAAC;MACDD,MAAM,EAAEE,qCAAqC,CAC3CN,cAAc,CAACI,MACjB;IACF,CAAC;EACH,CAAC,MAAM;IACLH,kBAAkB,GAAG;MACnB,GAAGD,cAAc;MACjBK,IAAI,EAAEE,mCAAmC,CAACP,cAAc,CAACK,IAAI,CAAC;MAC9DD,MAAM,EAAEG,mCAAmC,CAACP,cAAc,CAACI,MAAM;IACnE,CAAC;EACH;EACA,MAAMI,QAAkB,GAAG;IACzBC,WAAW,EAAE,KAAK,IAAIT,cAAc,GAChCA,cAAc,CAACS,WAAW,GAC1BC,SAAS;IACb,GAAGT,kBAAkB;IACrBU,OAAO,EAAEX,cAAc,CAACW,OAAO;IAC/BC,MAAM,EAAEjB,sBAAsB,CAACkB;EACjC,CAAC;EACDf,cAAc,CAACU,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB;AAEA,SAASL,kCAAkCA,CACzCW,SAAqD,EACvB;EAC9B,OAAO;IACL,GAAGA,SAAS;IACZC,QAAQ,EAAEC,uBAAuB,CAACF,SAAS,CAACC,QAAQ;EACtD,CAAC;AACH;AAEA,SAASR,mCAAmCA,CAC1CU,UAAuD,EACxB;EAC/B,OAAO;IACL,GAAGA,UAAU;IACbF,QAAQ,EAAEC,uBAAuB,CAACC,UAAU,CAACF,QAAQ;EACvD,CAAC;AACH;AAEA,SAAST,qCAAqCA,CAC5CY,YAA2D,EAC1B;EACjC,OAAO;IACL,GAAGA,YAAY;IACfH,QAAQ,EAAEC,uBAAuB,CAACE,YAAY,CAACH,QAAQ;EACzD,CAAC;AACH;AAEA,SAASC,uBAAuBA,CAC9BD,QAAwC,EACtB;EAClB,OAAO;IACLJ,OAAO,EAAEI,QAAQ,CAACJ,OAAO;IACzBQ,eAAe,EAAE;MACfC,WAAW,EAAEL,QAAQ,CAACK,WAAW,IAC5BvB,oBAAoB,CAACkB,QAAQ,CAACJ,OAAO,CAAC;MAC3CU,iBAAiB,EAAEN,QAAQ,CAACM,iBAAiB,IACxCzB,0BAA0B,CAACmB,QAAQ,CAACJ,OAAO,CAAC;MACjDW,UAAU,EAAEP,QAAQ,CAACO,UAAU,IAAI,QAAQ;MAC3CC,gBAAgB,EAAER,QAAQ,CAACQ,gBAAgB,IAAI;IACjD,CAAC;IACDC,WAAW,EAAE;EACf,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
|
|
18
|
+
import { addNamespaceToActionDefinition, convertValidationRule, createDefaultParameterOrdering, createParameters, defineAction, getInterfaceParameterName, isPropertyParameter, kebab, MODIFY_INTERFACE_OBJECT_PARAMETER, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
|
|
19
|
+
import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfaceProperties.js";
|
|
20
|
+
export function defineModifyInterfaceObjectAction(def) {
|
|
21
|
+
addNamespaceToActionDefinition(def);
|
|
22
|
+
const allProperties = getFlattenedInterfaceProperties(def.interfaceType);
|
|
23
|
+
validateActionParameters(def, Object.keys(allProperties), def.interfaceType.apiName);
|
|
24
|
+
const propertyParameters = Object.keys(allProperties).filter(apiName => isPropertyParameter(def, apiName, allProperties[apiName].sharedPropertyType.type));
|
|
25
|
+
const parameterNames = new Set(propertyParameters);
|
|
26
|
+
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(getInterfaceParameterName(def, param)));
|
|
27
|
+
parameterNames.add(MODIFY_INTERFACE_OBJECT_PARAMETER);
|
|
28
|
+
const actionApiName = def.apiName ?? `modify-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === undefined ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`;
|
|
29
|
+
if (def.parameterOrdering) {
|
|
30
|
+
if (!def.parameterOrdering.includes(MODIFY_INTERFACE_OBJECT_PARAMETER)) {
|
|
31
|
+
def.parameterOrdering.unshift(MODIFY_INTERFACE_OBJECT_PARAMETER);
|
|
32
|
+
}
|
|
33
|
+
validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
|
|
34
|
+
}
|
|
35
|
+
const parameters = createParameters(def, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.sharedPropertyType])), parameterNames, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.required])));
|
|
36
|
+
const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
|
|
37
|
+
return defineAction({
|
|
38
|
+
apiName: actionApiName,
|
|
39
|
+
displayName: def.displayName ?? `Modify ${def.interfaceType.displayMetadata.displayName}`,
|
|
40
|
+
parameters: parameters,
|
|
41
|
+
status: def.status ?? (def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status),
|
|
42
|
+
entities: {
|
|
43
|
+
affectedInterfaceTypes: [def.interfaceType.apiName],
|
|
44
|
+
affectedObjectTypes: [],
|
|
45
|
+
affectedLinkTypes: [],
|
|
46
|
+
typeGroups: []
|
|
47
|
+
},
|
|
48
|
+
rules: [{
|
|
49
|
+
type: "modifyInterfaceRule",
|
|
50
|
+
modifyInterfaceRule: {
|
|
51
|
+
interfaceObjectToModifyParameter: "interfaceObjectToModifyParameter",
|
|
52
|
+
sharedPropertyValues: {
|
|
53
|
+
...Object.fromEntries(propertyParameters.map(id => [id, {
|
|
54
|
+
type: "parameterId",
|
|
55
|
+
parameterId: id
|
|
56
|
+
}])),
|
|
57
|
+
...mappings
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}],
|
|
61
|
+
parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(allProperties), parameters, MODIFY_INTERFACE_OBJECT_PARAMETER),
|
|
62
|
+
...(def.actionLevelValidation ? {
|
|
63
|
+
validation: convertValidationRule(def.actionLevelValidation, parameters)
|
|
64
|
+
} : {}),
|
|
65
|
+
...(def.defaultFormat && {
|
|
66
|
+
defaultFormat: def.defaultFormat
|
|
67
|
+
}),
|
|
68
|
+
...(def.enableLayoutSwitch && {
|
|
69
|
+
enableLayoutSwitch: def.enableLayoutSwitch
|
|
70
|
+
}),
|
|
71
|
+
...(def.tableConfiguration && {
|
|
72
|
+
displayAndFormat: {
|
|
73
|
+
table: def.tableConfiguration
|
|
74
|
+
}
|
|
75
|
+
}),
|
|
76
|
+
...(def.sections && {
|
|
77
|
+
sections: Object.fromEntries(def.sections.map(section => [section.id, section]))
|
|
78
|
+
}),
|
|
79
|
+
...(def.submissionMetadata && {
|
|
80
|
+
submissionMetadata: def.submissionMetadata
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=defineModifyInterfaceObjectAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineModifyInterfaceObjectAction.js","names":["convertMappingValue","addNamespaceToActionDefinition","convertValidationRule","createDefaultParameterOrdering","createParameters","defineAction","getInterfaceParameterName","isPropertyParameter","kebab","MODIFY_INTERFACE_OBJECT_PARAMETER","validateActionParameters","validateParameterOrdering","getFlattenedInterfaceProperties","defineModifyInterfaceObjectAction","def","allProperties","interfaceType","Object","keys","apiName","propertyParameters","filter","sharedPropertyType","type","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","objectType","undefined","parameterOrdering","includes","unshift","parameters","fromEntries","entries","map","id","prop","required","mappings","nonParameterMappings","value","displayName","displayMetadata","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","modifyInterfaceRule","interfaceObjectToModifyParameter","sharedPropertyValues","parameterId","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineModifyInterfaceObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { InterfaceActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n addNamespaceToActionDefinition,\n convertValidationRule,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n getInterfaceParameterName,\n isPropertyParameter,\n kebab,\n MODIFY_INTERFACE_OBJECT_PARAMETER,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\n\nexport function defineModifyInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n addNamespaceToActionDefinition(def);\n const allProperties = getFlattenedInterfaceProperties(def.interfaceType);\n validateActionParameters(\n def,\n Object.keys(allProperties),\n def.interfaceType.apiName,\n );\n const propertyParameters = Object.keys(allProperties).filter(apiName =>\n isPropertyParameter(\n def,\n apiName,\n allProperties[apiName].sharedPropertyType.type,\n )\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(\n getInterfaceParameterName(def, param),\n )\n );\n parameterNames.add(MODIFY_INTERFACE_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `modify-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_INTERFACE_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n Object.fromEntries(\n Object.entries(allProperties).map((\n [id, prop],\n ) => [id, prop.sharedPropertyType]),\n ),\n parameterNames,\n Object.fromEntries(\n Object.entries(allProperties).map(([id, prop]) => [id, prop.required]),\n ),\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Modify ${def.interfaceType.displayMetadata.displayName}`,\n parameters: parameters,\n status: def.status ?? (def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status),\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n id => [id, { type: \"parameterId\", parameterId: id }],\n ),\n ),\n ...mappings,\n },\n },\n },\n ],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(allProperties),\n parameters,\n MODIFY_INTERFACE_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
|
|
18
|
+
import { convertValidationRule, createDefaultParameterOrdering, createParameters, defineAction, isPropertyParameter, kebab, MODIFY_OBJECT_PARAMETER, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
|
|
19
|
+
export function defineModifyObjectAction(def) {
|
|
20
|
+
validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
|
|
21
|
+
const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter(id => isPropertyParameter(def, id, def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
|
|
22
|
+
const parameterNames = new Set(propertyParameters);
|
|
23
|
+
Object.keys(def.parameterConfiguration ?? {}).forEach(param => parameterNames.add(param));
|
|
24
|
+
parameterNames.add(MODIFY_OBJECT_PARAMETER);
|
|
25
|
+
const actionApiName = def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
|
|
26
|
+
if (def.parameterOrdering) {
|
|
27
|
+
if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {
|
|
28
|
+
def.parameterOrdering.unshift(MODIFY_OBJECT_PARAMETER);
|
|
29
|
+
}
|
|
30
|
+
validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
|
|
31
|
+
}
|
|
32
|
+
const parameters = createParameters(def, def.objectType.properties ?? {}, parameterNames);
|
|
33
|
+
parameters.forEach(p => {
|
|
34
|
+
if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {
|
|
35
|
+
p.defaultValue = {
|
|
36
|
+
type: "objectParameterPropertyValue",
|
|
37
|
+
objectParameterPropertyValue: {
|
|
38
|
+
parameterId: MODIFY_OBJECT_PARAMETER,
|
|
39
|
+
propertyTypeId: p.id
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
|
|
45
|
+
return defineAction({
|
|
46
|
+
apiName: actionApiName,
|
|
47
|
+
displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,
|
|
48
|
+
parameters: parameters,
|
|
49
|
+
status: def.status ?? "active",
|
|
50
|
+
rules: [{
|
|
51
|
+
type: "modifyObjectRule",
|
|
52
|
+
modifyObjectRule: {
|
|
53
|
+
objectToModify: MODIFY_OBJECT_PARAMETER,
|
|
54
|
+
propertyValues: {
|
|
55
|
+
...Object.fromEntries(propertyParameters.map(p => [p, {
|
|
56
|
+
type: "parameterId",
|
|
57
|
+
parameterId: p
|
|
58
|
+
}])),
|
|
59
|
+
...mappings
|
|
60
|
+
},
|
|
61
|
+
structFieldValues: {}
|
|
62
|
+
}
|
|
63
|
+
}],
|
|
64
|
+
entities: {
|
|
65
|
+
affectedInterfaceTypes: [],
|
|
66
|
+
affectedObjectTypes: [def.objectType.apiName],
|
|
67
|
+
affectedLinkTypes: [],
|
|
68
|
+
typeGroups: []
|
|
69
|
+
},
|
|
70
|
+
parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(def.objectType.properties ?? {}), parameters, MODIFY_OBJECT_PARAMETER),
|
|
71
|
+
...(def.actionLevelValidation ? {
|
|
72
|
+
validation: convertValidationRule(def.actionLevelValidation, parameters)
|
|
73
|
+
} : {}),
|
|
74
|
+
...(def.defaultFormat && {
|
|
75
|
+
defaultFormat: def.defaultFormat
|
|
76
|
+
}),
|
|
77
|
+
...(def.enableLayoutSwitch && {
|
|
78
|
+
enableLayoutSwitch: def.enableLayoutSwitch
|
|
79
|
+
}),
|
|
80
|
+
...(def.tableConfiguration && {
|
|
81
|
+
displayAndFormat: {
|
|
82
|
+
table: def.tableConfiguration
|
|
83
|
+
}
|
|
84
|
+
}),
|
|
85
|
+
...(def.sections && {
|
|
86
|
+
sections: Object.fromEntries(def.sections.map(section => [section.id, section]))
|
|
87
|
+
}),
|
|
88
|
+
...(def.submissionMetadata && {
|
|
89
|
+
submissionMetadata: def.submissionMetadata
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=defineModifyObjectAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineModifyObjectAction.js","names":["convertMappingValue","convertValidationRule","createDefaultParameterOrdering","createParameters","defineAction","isPropertyParameter","kebab","MODIFY_OBJECT_PARAMETER","validateActionParameters","validateParameterOrdering","defineModifyObjectAction","def","Object","keys","objectType","properties","apiName","propertyParameters","filter","id","type","primaryKeyPropertyApiName","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","split","pop","parameterOrdering","includes","unshift","parameters","p","defaultValue","undefined","objectParameterPropertyValue","parameterId","propertyTypeId","mappings","fromEntries","entries","nonParameterMappings","map","value","displayName","status","rules","modifyObjectRule","objectToModify","propertyValues","structFieldValues","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata"],"sources":["defineModifyObjectAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { convertMappingValue } from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n isPropertyParameter,\n kebab,\n MODIFY_OBJECT_PARAMETER,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\n\nexport function defineModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(\n def,\n Object.keys(def.objectType.properties ?? {}),\n def.objectType.apiName,\n );\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n isPropertyParameter(def, id, def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `modify-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(MODIFY_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n def.objectType.properties ?? {},\n parameterNames,\n );\n parameters.forEach(\n p => {\n if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Object.keys(def.objectType.properties ?? {}),\n parameters,\n MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
|