@osdk/maker 0.12.0-beta.8 → 0.12.0-beta.9
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 +10 -0
- package/README.md +88 -62
- package/build/browser/api/defineAction.js +91 -78
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineLink.js +2 -2
- package/build/browser/api/defineLink.js.map +1 -1
- package/build/browser/api/defineObject.js +6 -2
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineOntology.js +2 -2
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/overall.test.js +1123 -452
- package/build/browser/api/overall.test.js.map +1 -1
- package/build/browser/api/types.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/cjs/index.cjs +100 -84
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +23 -14
- package/build/esm/api/defineAction.js +91 -78
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineLink.js +2 -2
- package/build/esm/api/defineLink.js.map +1 -1
- package/build/esm/api/defineObject.js +6 -2
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineOntology.js +2 -2
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/overall.test.js +1123 -452
- package/build/esm/api/overall.test.js.map +1 -1
- package/build/esm/api/types.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/types/api/defineAction.d.ts +6 -6
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineObject.d.ts +2 -2
- package/build/types/api/defineObject.d.ts.map +1 -1
- package/build/types/api/types.d.ts +15 -6
- package/build/types/api/types.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/package.json +4 -4
package/build/cjs/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionTypeApiName, ParameterId, OntologyIrBaseParameterType_decimal, OntologyIrBaseParameterType_decimalList, OntologyIrBaseParameterType_timestamp, OntologyIrBaseParameterType_timestampList, OntologyIrBaseParameterType_objectReference, OntologyIrBaseParameterType_objectReferenceList, OntologyIrBaseParameterType_objectSetRid, OntologyIrBaseParameterType_objectTypeReference, OntologyIrBaseParameterType_interfaceReference, OntologyIrBaseParameterType_interfaceReferenceList, OntologyIrBaseParameterType_struct, OntologyIrBaseParameterType_structList, OntologyIrLabelledValue, OntologyIrConditionValue, OntologyIrParameterDateRangeValue, InterfaceTypeApiName, OntologyIrCondition, OntologyIrLogicRule, SectionId, ActionTypeStatus_deprecated, OntologyIrActionTypeEntities, OntologyIrFormContent, OntologyIrValidationRule, OntologyIrMarketplaceInterfaceType, StructFieldType, ApiNameValueTypeReference, Visibility, SharedPropertyTypeGothamMapping, InterfaceTypeStatus,
|
|
1
|
+
import { ActionTypeApiName, ParameterId, OntologyIrBaseParameterType_decimal, OntologyIrBaseParameterType_decimalList, OntologyIrBaseParameterType_timestamp, OntologyIrBaseParameterType_timestampList, OntologyIrBaseParameterType_objectReference, OntologyIrBaseParameterType_objectReferenceList, OntologyIrBaseParameterType_objectSetRid, OntologyIrBaseParameterType_objectTypeReference, OntologyIrBaseParameterType_interfaceReference, OntologyIrBaseParameterType_interfaceReferenceList, OntologyIrBaseParameterType_struct, OntologyIrBaseParameterType_structList, OntologyIrLabelledValue, OntologyIrConditionValue, OntologyIrParameterDateRangeValue, InterfaceTypeApiName, OntologyIrCondition, OntologyIrLogicRule, SectionId, ActionTypeStatus_deprecated, OntologyIrActionTypeEntities, OntologyIrFormContent, OntologyIrValidationRule, OntologyIrMarketplaceInterfaceType, StructFieldType, ApiNameValueTypeReference, Visibility, SharedPropertyTypeGothamMapping, InterfaceTypeStatus, OntologyIrPropertyType, ValueTypeApiName, ValueTypeDisplayMetadata, ValueTypeStatus, ValueTypeVersion, BaseType, ValueTypeDataConstraint, ExampleValue, ValidationRuleDisplayMetadata, LinkTypeMetadata, OntologyIrLinkTypeStatus, DataConstraint, FailureMessage, OntologyIrObjectType, OntologyIr, OntologyIrValueTypeBlockData } from '@osdk/client.unstable';
|
|
2
2
|
|
|
3
3
|
declare function main(args?: string[]): Promise<void>;
|
|
4
4
|
|
|
@@ -22,6 +22,15 @@ type ActionType = OntologyEntityBase & RequiredFields<Partial<ActionTypeInner>,
|
|
|
22
22
|
__type: OntologyEntityTypeEnum.ACTION_TYPE;
|
|
23
23
|
};
|
|
24
24
|
type ActionTypeDefinition = Omit<ActionType, "__type">;
|
|
25
|
+
type ActionTypeUserDefinition = {
|
|
26
|
+
objectType: ObjectTypeDefinition;
|
|
27
|
+
apiName?: string;
|
|
28
|
+
displayName?: string;
|
|
29
|
+
status?: ActionStatus;
|
|
30
|
+
parameterLevelValidations?: Record<string, ActionParameterValidation>;
|
|
31
|
+
actionLevelValidation?: ActionLevelValidationDefinition;
|
|
32
|
+
excludedProperties?: Array<ParameterId>;
|
|
33
|
+
};
|
|
25
34
|
interface ActionParameter {
|
|
26
35
|
id: ParameterId;
|
|
27
36
|
displayName: string;
|
|
@@ -31,8 +40,8 @@ interface ActionParameter {
|
|
|
31
40
|
typeClasses?: Array<TypeClass>;
|
|
32
41
|
}
|
|
33
42
|
interface ActionParameterValidation {
|
|
34
|
-
allowedValues
|
|
35
|
-
required
|
|
43
|
+
allowedValues?: ActionParameterAllowedValues;
|
|
44
|
+
required?: ActionParameterRequirementConstraint;
|
|
36
45
|
defaultVisibility?: "editable" | "disabled" | "hidden";
|
|
37
46
|
conditionalOverrides?: Array<ActionParameterConditionalOverride>;
|
|
38
47
|
}
|
|
@@ -289,7 +298,7 @@ interface OneToManyLinkTypeDefinition {
|
|
|
289
298
|
redacted?: boolean;
|
|
290
299
|
}
|
|
291
300
|
interface OneToManyObjectLinkReference {
|
|
292
|
-
object:
|
|
301
|
+
object: ObjectTypeDefinition;
|
|
293
302
|
metadata: LinkTypeMetadata;
|
|
294
303
|
}
|
|
295
304
|
interface OneToManyLinkTypeUserDefinition {
|
|
@@ -300,7 +309,7 @@ interface OneToManyLinkTypeUserDefinition {
|
|
|
300
309
|
cardinality?: "OneToMany" | "OneToOne" | undefined;
|
|
301
310
|
}
|
|
302
311
|
interface OneToManyObjectLinkReferenceUserDefinition {
|
|
303
|
-
object:
|
|
312
|
+
object: ObjectTypeDefinition;
|
|
304
313
|
metadata: LinkTypeMetadataUserDefinition;
|
|
305
314
|
}
|
|
306
315
|
interface ManyToManyLinkTypeDefinition {
|
|
@@ -312,7 +321,7 @@ interface ManyToManyLinkTypeDefinition {
|
|
|
312
321
|
redacted?: boolean;
|
|
313
322
|
}
|
|
314
323
|
interface ManyToManyObjectLinkReference {
|
|
315
|
-
object:
|
|
324
|
+
object: ObjectTypeDefinition;
|
|
316
325
|
metadata: LinkTypeMetadata;
|
|
317
326
|
}
|
|
318
327
|
interface ManyToManyLinkTypeUserDefinition {
|
|
@@ -321,7 +330,7 @@ interface ManyToManyLinkTypeUserDefinition {
|
|
|
321
330
|
toMany: ManyToManyObjectLinkReferenceUserDefinition;
|
|
322
331
|
}
|
|
323
332
|
interface ManyToManyObjectLinkReferenceUserDefinition {
|
|
324
|
-
object:
|
|
333
|
+
object: ObjectTypeDefinition;
|
|
325
334
|
metadata: LinkTypeMetadataUserDefinition;
|
|
326
335
|
}
|
|
327
336
|
interface LinkTypeMetadataUserDefinition {
|
|
@@ -533,11 +542,11 @@ type ActionParameterTypePrimitive = "boolean" | "booleanList" | "integer" | "int
|
|
|
533
542
|
type ActionParameterTypeComplex = OntologyIrBaseParameterType_decimal | OntologyIrBaseParameterType_decimalList | OntologyIrBaseParameterType_timestamp | OntologyIrBaseParameterType_timestampList | OntologyIrBaseParameterType_objectReference | OntologyIrBaseParameterType_objectReferenceList | OntologyIrBaseParameterType_objectSetRid | OntologyIrBaseParameterType_objectTypeReference | OntologyIrBaseParameterType_objectReference | OntologyIrBaseParameterType_interfaceReference | OntologyIrBaseParameterType_interfaceReferenceList | OntologyIrBaseParameterType_struct | OntologyIrBaseParameterType_structList;
|
|
534
543
|
type ActionParameterType = ActionParameterTypePrimitive | ActionParameterTypeComplex;
|
|
535
544
|
|
|
536
|
-
declare function defineCreateInterfaceObjectAction(interfaceType: InterfaceType, objectType?:
|
|
537
|
-
declare function defineCreateObjectAction(
|
|
538
|
-
declare function defineModifyInterfaceObjectAction(interfaceType: InterfaceType, objectType?:
|
|
539
|
-
declare function defineModifyObjectAction(
|
|
540
|
-
declare function defineDeleteObjectAction(
|
|
545
|
+
declare function defineCreateInterfaceObjectAction(interfaceType: InterfaceType, objectType?: ObjectTypeDefinition, validation?: ActionLevelValidationDefinition): ActionType;
|
|
546
|
+
declare function defineCreateObjectAction(def: ActionTypeUserDefinition): ActionType;
|
|
547
|
+
declare function defineModifyInterfaceObjectAction(interfaceType: InterfaceType, objectType?: ObjectTypeDefinition, validation?: ActionLevelValidationDefinition): ActionType;
|
|
548
|
+
declare function defineModifyObjectAction(def: ActionTypeUserDefinition): ActionType;
|
|
549
|
+
declare function defineDeleteObjectAction(def: ActionTypeUserDefinition): ActionType;
|
|
541
550
|
declare function defineAction(actionDef: ActionTypeDefinition): ActionType;
|
|
542
551
|
|
|
543
552
|
/**
|
|
@@ -602,7 +611,7 @@ declare function defineInterfaceLinkConstraint(linkDef: One | Many): void;
|
|
|
602
611
|
|
|
603
612
|
declare function defineLink(linkDefinition: LinkTypeDefinition): LinkType;
|
|
604
613
|
|
|
605
|
-
declare function defineObject(objectDef: ObjectTypeDefinition):
|
|
614
|
+
declare function defineObject(objectDef: ObjectTypeDefinition): ObjectTypeDefinition;
|
|
606
615
|
|
|
607
616
|
type OntologyAndValueTypeIrs = {
|
|
608
617
|
ontology: OntologyIr;
|
|
@@ -649,4 +658,4 @@ declare function importOntologyEntity<T extends OntologyEntityBase>(e: T): void;
|
|
|
649
658
|
*/
|
|
650
659
|
declare function wrapWithProxy<T extends OntologyEntityBase>(entity: T): T;
|
|
651
660
|
|
|
652
|
-
export { type ActionType, type ConditionDefinition, type InterfaceType, type LinkType, type ObjectType, OntologyEntityTypeEnum, type SharedPropertyType, type ValueTypeDefinitionVersion, addDependency, main as default, defineAction, defineCreateInterfaceObjectAction, defineCreateObjectAction, defineDeleteObjectAction, defineInterface, defineInterfaceLinkConstraint, defineLink, defineModifyInterfaceObjectAction, defineModifyObjectAction, defineObject, defineOntology, defineSharedPropertyType, defineValueType, importOntologyEntity, importSharedPropertyType, wrapWithProxy };
|
|
661
|
+
export { type ActionParameterConditionalOverride, type ActionParameterValidation, type ActionType, type ConditionDefinition, type InterfaceType, type LinkType, type ObjectType, OntologyEntityTypeEnum, type SharedPropertyType, type ValueTypeDefinitionVersion, addDependency, main as default, defineAction, defineCreateInterfaceObjectAction, defineCreateObjectAction, defineDeleteObjectAction, defineInterface, defineInterfaceLinkConstraint, defineLink, defineModifyInterfaceObjectAction, defineModifyObjectAction, defineObject, defineOntology, defineSharedPropertyType, defineValueType, importOntologyEntity, importSharedPropertyType, wrapWithProxy };
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { consola } from "consola";
|
|
18
18
|
import invariant from "tiny-invariant";
|
|
19
|
-
import { getAllInterfaceProperties } from "./defineObject.js";
|
|
19
|
+
import { convertToDisplayName, getAllInterfaceProperties } from "./defineObject.js";
|
|
20
20
|
import { namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
|
|
21
21
|
import { convertConditionDefinition } from "./ontologyUtils.js";
|
|
22
22
|
import { OntologyEntityTypeEnum } from "./types.js";
|
|
@@ -90,48 +90,55 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
|
|
|
90
90
|
} : {})
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
|
-
export function defineCreateObjectAction(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
export function defineCreateObjectAction(def) {
|
|
94
|
+
Object.keys(def.parameterLevelValidations ?? {}).forEach(id => {
|
|
95
|
+
!(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist on ${def.objectType.apiName}`) : invariant(false) : void 0;
|
|
96
|
+
});
|
|
97
|
+
(def.excludedProperties ?? []).forEach(id => {
|
|
98
|
+
!(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist on ${def.objectType.apiName}`) : invariant(false) : void 0;
|
|
99
|
+
});
|
|
100
|
+
const parameterNames = Object.keys(def.objectType.properties ?? {}).filter(id => !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type));
|
|
101
|
+
const parameters = Array.from(parameterNames).map(id => ({
|
|
102
|
+
id,
|
|
103
|
+
displayName: def.objectType.properties?.[id].displayName ?? convertToDisplayName(id),
|
|
104
|
+
type: extractActionParameterType(def.objectType.properties?.[id]),
|
|
105
|
+
validation: def.parameterLevelValidations?.[id] !== undefined ? {
|
|
106
|
+
...def.parameterLevelValidations?.[id],
|
|
107
|
+
allowedValues: def.parameterLevelValidations?.[id].allowedValues ?? extractAllowedValuesFromType(def.objectType.properties?.[id].type),
|
|
108
|
+
required: def.parameterLevelValidations?.[id].required ?? true
|
|
109
|
+
} : {
|
|
110
|
+
required: def.objectType.properties?.[id].array ?? false ? {
|
|
111
|
+
listLength: def.objectType.properties?.[id].nullability?.noEmptyCollections ? {
|
|
112
|
+
min: 1
|
|
113
|
+
} : {}
|
|
114
|
+
} : def.objectType.properties?.[id].nullability?.noNulls ?? true,
|
|
115
|
+
allowedValues: extractAllowedValuesFromType(def.objectType.properties?.[id].type)
|
|
116
|
+
}
|
|
117
|
+
}));
|
|
98
118
|
return defineAction({
|
|
99
|
-
apiName: `create-object-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`,
|
|
100
|
-
displayName: `Create ${objectType.displayName}`,
|
|
101
|
-
parameters:
|
|
102
|
-
|
|
103
|
-
displayName: prop.displayName,
|
|
104
|
-
type: extractActionParameterType(prop),
|
|
105
|
-
typeClasses: prop.typeClasses ?? [],
|
|
106
|
-
validation: {
|
|
107
|
-
required: prop.array ?? false ? {
|
|
108
|
-
listLength: prop.nullability?.noEmptyCollections ? {
|
|
109
|
-
min: 1
|
|
110
|
-
} : {}
|
|
111
|
-
} : prop.nullability?.noNulls ?? true,
|
|
112
|
-
allowedValues: extractAllowedValuesFromType(prop.type)
|
|
113
|
-
}
|
|
114
|
-
}))],
|
|
115
|
-
status: "active",
|
|
119
|
+
apiName: def.apiName ?? `create-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
|
|
120
|
+
displayName: def.displayName ?? `Create ${def.objectType.displayName}`,
|
|
121
|
+
parameters: parameters,
|
|
122
|
+
status: def.status ?? "active",
|
|
116
123
|
entities: {
|
|
117
124
|
affectedInterfaceTypes: [],
|
|
118
|
-
affectedObjectTypes: [objectType.apiName],
|
|
125
|
+
affectedObjectTypes: [def.objectType.apiName],
|
|
119
126
|
affectedLinkTypes: [],
|
|
120
127
|
typeGroups: []
|
|
121
128
|
},
|
|
122
129
|
rules: [{
|
|
123
130
|
type: "addObjectRule",
|
|
124
131
|
addObjectRule: {
|
|
125
|
-
objectTypeId: objectType.apiName,
|
|
126
|
-
propertyValues:
|
|
132
|
+
objectTypeId: def.objectType.apiName,
|
|
133
|
+
propertyValues: Object.fromEntries(parameters.map(p => [p.id, {
|
|
127
134
|
type: "parameterId",
|
|
128
|
-
parameterId: p.
|
|
129
|
-
}]))
|
|
135
|
+
parameterId: p.id
|
|
136
|
+
}])),
|
|
130
137
|
structFieldValues: {}
|
|
131
138
|
}
|
|
132
139
|
}],
|
|
133
|
-
...(
|
|
134
|
-
validation: [convertValidationRule(
|
|
140
|
+
...(def.actionLevelValidation ? {
|
|
141
|
+
validation: [convertValidationRule(def.actionLevelValidation)]
|
|
135
142
|
} : {})
|
|
136
143
|
});
|
|
137
144
|
}
|
|
@@ -203,22 +210,41 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
|
|
|
203
210
|
} : {})
|
|
204
211
|
});
|
|
205
212
|
}
|
|
206
|
-
export function defineModifyObjectAction(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
213
|
+
export function defineModifyObjectAction(def) {
|
|
214
|
+
Object.keys(def.parameterLevelValidations ?? {}).forEach(id => {
|
|
215
|
+
!(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist on ${def.objectType.apiName}`) : invariant(false) : void 0;
|
|
216
|
+
});
|
|
217
|
+
(def.excludedProperties ?? []).forEach(id => {
|
|
218
|
+
!(def.objectType.properties?.[id] !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Property ${id} does not exist on ${def.objectType.apiName}`) : invariant(false) : void 0;
|
|
219
|
+
});
|
|
220
|
+
const parameterNames = Object.keys(def.objectType.properties ?? {}).filter(id => !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
|
|
221
|
+
const parameters = Array.from(parameterNames).map(id => ({
|
|
222
|
+
id,
|
|
223
|
+
displayName: def.objectType.properties?.[id].displayName ?? convertToDisplayName(id),
|
|
224
|
+
type: extractActionParameterType(def.objectType.properties?.[id]),
|
|
225
|
+
validation: def.parameterLevelValidations?.[id] !== undefined ? {
|
|
226
|
+
...def.parameterLevelValidations?.[id],
|
|
227
|
+
allowedValues: def.parameterLevelValidations?.[id].allowedValues ?? extractAllowedValuesFromType(def.objectType.properties?.[id].type),
|
|
228
|
+
required: def.parameterLevelValidations?.[id].required ?? false
|
|
229
|
+
} : {
|
|
230
|
+
required: def.objectType.properties?.[id].array ?? false ? {
|
|
231
|
+
listLength: def.objectType.properties?.[id].nullability?.noEmptyCollections ? {
|
|
232
|
+
min: 1
|
|
233
|
+
} : {}
|
|
234
|
+
} : def.objectType.properties?.[id].nullability?.noNulls ?? false,
|
|
235
|
+
allowedValues: extractAllowedValuesFromType(def.objectType.properties?.[id].type)
|
|
236
|
+
}
|
|
237
|
+
}));
|
|
212
238
|
return defineAction({
|
|
213
|
-
apiName: `modify-object-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`,
|
|
214
|
-
displayName: `Modify ${objectType.displayName}`,
|
|
239
|
+
apiName: def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
|
|
240
|
+
displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,
|
|
215
241
|
parameters: [{
|
|
216
242
|
id: "objectToModifyParameter",
|
|
217
243
|
displayName: "Modify object",
|
|
218
244
|
type: {
|
|
219
245
|
type: "objectReference",
|
|
220
246
|
objectReference: {
|
|
221
|
-
objectTypeId: objectType.apiName
|
|
247
|
+
objectTypeId: def.objectType.apiName
|
|
222
248
|
}
|
|
223
249
|
},
|
|
224
250
|
validation: {
|
|
@@ -227,54 +253,41 @@ export function defineModifyObjectAction(objectType, validation) {
|
|
|
227
253
|
},
|
|
228
254
|
required: true
|
|
229
255
|
}
|
|
230
|
-
}, ...
|
|
231
|
-
|
|
232
|
-
displayName: prop.displayName,
|
|
233
|
-
type: extractActionParameterType(prop),
|
|
234
|
-
typeClasses: prop.typeClasses ?? [],
|
|
235
|
-
validation: {
|
|
236
|
-
required: prop.array ?? false ? {
|
|
237
|
-
listLength: prop.nullability?.noEmptyCollections ? {
|
|
238
|
-
min: 1
|
|
239
|
-
} : {}
|
|
240
|
-
} : prop.nullability?.noNulls ?? false,
|
|
241
|
-
allowedValues: extractAllowedValuesFromType(prop.type)
|
|
242
|
-
}
|
|
243
|
-
}))],
|
|
244
|
-
status: "active",
|
|
245
|
-
entities: {
|
|
246
|
-
affectedInterfaceTypes: [],
|
|
247
|
-
affectedObjectTypes: [objectType.apiName],
|
|
248
|
-
affectedLinkTypes: [],
|
|
249
|
-
typeGroups: []
|
|
250
|
-
},
|
|
256
|
+
}, ...parameters],
|
|
257
|
+
status: def.status ?? "active",
|
|
251
258
|
rules: [{
|
|
252
259
|
type: "modifyObjectRule",
|
|
253
260
|
modifyObjectRule: {
|
|
254
261
|
objectToModify: "objectToModifyParameter",
|
|
255
|
-
propertyValues:
|
|
262
|
+
propertyValues: Object.fromEntries(parameters.map(p => [p.id, {
|
|
256
263
|
type: "parameterId",
|
|
257
|
-
parameterId: p.
|
|
258
|
-
}]))
|
|
264
|
+
parameterId: p.id
|
|
265
|
+
}])),
|
|
259
266
|
structFieldValues: {}
|
|
260
267
|
}
|
|
261
268
|
}],
|
|
262
|
-
|
|
263
|
-
|
|
269
|
+
entities: {
|
|
270
|
+
affectedInterfaceTypes: [],
|
|
271
|
+
affectedObjectTypes: [def.objectType.apiName],
|
|
272
|
+
affectedLinkTypes: [],
|
|
273
|
+
typeGroups: []
|
|
274
|
+
},
|
|
275
|
+
...(def.actionLevelValidation ? {
|
|
276
|
+
validation: [convertValidationRule(def.actionLevelValidation)]
|
|
264
277
|
} : {})
|
|
265
278
|
});
|
|
266
279
|
}
|
|
267
|
-
export function defineDeleteObjectAction(
|
|
280
|
+
export function defineDeleteObjectAction(def) {
|
|
268
281
|
return defineAction({
|
|
269
|
-
apiName: `delete-object-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`,
|
|
270
|
-
displayName: `Delete ${objectType.displayName}`,
|
|
282
|
+
apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
|
|
283
|
+
displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,
|
|
271
284
|
parameters: [{
|
|
272
285
|
id: "objectToDeleteParameter",
|
|
273
286
|
displayName: "Delete object",
|
|
274
287
|
type: {
|
|
275
288
|
type: "objectReference",
|
|
276
289
|
objectReference: {
|
|
277
|
-
objectTypeId: objectType.apiName
|
|
290
|
+
objectTypeId: def.objectType.apiName
|
|
278
291
|
}
|
|
279
292
|
},
|
|
280
293
|
validation: {
|
|
@@ -284,21 +297,21 @@ export function defineDeleteObjectAction(objectType, validation) {
|
|
|
284
297
|
}
|
|
285
298
|
}
|
|
286
299
|
}],
|
|
287
|
-
status: "active",
|
|
288
|
-
entities: {
|
|
289
|
-
affectedInterfaceTypes: [],
|
|
290
|
-
affectedObjectTypes: [objectType.apiName],
|
|
291
|
-
affectedLinkTypes: [],
|
|
292
|
-
typeGroups: []
|
|
293
|
-
},
|
|
300
|
+
status: def.status ?? "active",
|
|
294
301
|
rules: [{
|
|
295
302
|
type: "deleteObjectRule",
|
|
296
303
|
deleteObjectRule: {
|
|
297
304
|
objectToDelete: "objectToDeleteParameter"
|
|
298
305
|
}
|
|
299
306
|
}],
|
|
300
|
-
|
|
301
|
-
|
|
307
|
+
entities: {
|
|
308
|
+
affectedInterfaceTypes: [],
|
|
309
|
+
affectedObjectTypes: [def.objectType.apiName],
|
|
310
|
+
affectedLinkTypes: [],
|
|
311
|
+
typeGroups: []
|
|
312
|
+
},
|
|
313
|
+
...(def.actionLevelValidation ? {
|
|
314
|
+
validation: [convertValidationRule(def.actionLevelValidation)]
|
|
302
315
|
} : {})
|
|
303
316
|
});
|
|
304
317
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAction.js","names":["consola","invariant","getAllInterfaceProperties","namespace","ontologyDefinition","updateOntology","convertConditionDefinition","OntologyEntityTypeEnum","defineCreateInterfaceObjectAction","interfaceType","objectType","validation","allProperties","Object","entries","filter","_","prop","isStruct","sharedPropertyType","type","length","info","apiName","defineAction","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","objectTypeReference","interfaceTypeRids","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","map","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","_prop","parameterId","convertValidationRule","defineCreateObjectAction","filteredProperties","properties","nullability","noEmptyCollections","min","noNulls","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","primaryKeyPropertyApiName","warn","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","ACTION_TYPE","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","parameterIdsNotFound","Array","from","referencedParameterIds","has","JSON","stringify","definedSectionIds","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","forEach","rule","some","fullAction","__type","validateActionValidation","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase","actionValidation","condition","failureMessage","action","seenParameterIds","param","conditionalOverrides","override","validateActionCondition","currentParameterId","overrideParamId","conditions","c"],"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 { ParameterId } from \"@osdk/client.unstable\";\nimport { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport { getAllInterfaceProperties } from \"./defineObject.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { convertConditionDefinition } from \"./ontologyUtils.js\";\nimport {\n type ActionLevelValidationDefinition,\n type ActionParameter,\n type ActionParameterAllowedValues,\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n type ActionType,\n type ActionTypeDefinition,\n type ActionValidationRule,\n type ConditionDefinition,\n type InterfaceType,\n type ObjectPropertyType,\n type ObjectType,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type PropertyTypeTypeStruct,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const filteredProperties =\n objectType.properties?.filter(prop => !isStruct(prop.type)) ?? [];\n if (\n filteredProperties.length !== (objectType.properties?.length ?? 0)\n ) {\n consola.info(\n `Some properties on ${objectType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...filteredProperties.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n typeClasses: prop.typeClasses ?? [],\n validation: {\n required: (prop.array ?? false)\n ? {\n listLength: prop.nullability?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : prop.nullability?.noNulls ?? true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })),\n ],\n status: \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: filteredProperties.length > 0\n ? Object.fromEntries(\n filteredProperties.map(\n p => [p.apiName, { type: \"parameterId\", parameterId: p.apiName }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n }],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`,\n );\n }\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const properties = objectType.properties ?? [];\n\n const filteredProperties = properties.filter(\n prop =>\n !isStruct(prop.type)\n && prop.apiName !== objectType.primaryKeyPropertyApiName,\n );\n\n if (filteredProperties.length < properties.length) {\n consola.warn(\n `Some properties on ${objectType.apiName} were skipped in the modify action because they were structs, or were the object's primary key which cannot be edited.`,\n );\n }\n return defineAction({\n apiName: `modify-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...filteredProperties.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n typeClasses: prop.typeClasses ?? [],\n validation: {\n required: (prop.array ?? false)\n ? {\n listLength: prop.nullability?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : prop.nullability?.noNulls ?? false,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })),\n ],\n status: \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: filteredProperties.length > 0\n ? Object.fromEntries(\n filteredProperties.map(\n p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName,\n }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n return defineAction({\n apiName: `delete-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\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 validateActionValidation(fullAction);\n updateOntology(fullAction);\n return fullAction;\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).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 extractAllowedValuesFromType(\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 \"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: SharedPropertyType | ObjectPropertyType,\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 \"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: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction isStruct(type: PropertyTypeType): type is PropertyTypeTypeStruct {\n return typeof type === \"object\" && type.type === \"struct\";\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nfunction convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n): ActionValidationRule {\n return {\n condition: convertConditionDefinition(actionValidation.condition),\n displayMetadata: actionValidation.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n}\n\nfunction validateActionValidation(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n action.parameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateActionCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateActionCondition(\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 validateActionCondition(\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 validateActionCondition(\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["consola","invariant","convertToDisplayName","getAllInterfaceProperties","namespace","ontologyDefinition","updateOntology","convertConditionDefinition","OntologyEntityTypeEnum","defineCreateInterfaceObjectAction","interfaceType","objectType","validation","allProperties","Object","entries","filter","_","prop","isStruct","sharedPropertyType","type","length","info","apiName","defineAction","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","objectTypeReference","interfaceTypeRids","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","map","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","_prop","parameterId","convertValidationRule","defineCreateObjectAction","def","keys","parameterLevelValidations","forEach","properties","process","env","NODE_ENV","excludedProperties","parameterNames","includes","Array","from","nullability","noEmptyCollections","min","noNulls","addObjectRule","propertyValues","p","structFieldValues","actionLevelValidation","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","primaryKeyPropertyApiName","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","ACTION_TYPE","Error","test","parameterIdsSet","Set","size","parameterIdsNotFound","referencedParameterIds","has","JSON","stringify","definedSectionIds","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","rule","some","fullAction","__type","validateActionValidation","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","replace","toLowerCase","actionValidation","condition","failureMessage","action","seenParameterIds","param","conditionalOverrides","override","validateActionCondition","currentParameterId","overrideParamId","conditions","c"],"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 { ParameterId } from \"@osdk/client.unstable\";\nimport { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport {\n convertToDisplayName,\n getAllInterfaceProperties,\n} from \"./defineObject.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { convertConditionDefinition } from \"./ontologyUtils.js\";\nimport {\n type ActionLevelValidationDefinition,\n type ActionParameter,\n type ActionParameterAllowedValues,\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n type ActionType,\n type ActionTypeDefinition,\n type ActionTypeUserDefinition,\n type ActionValidationRule,\n type ConditionDefinition,\n type InterfaceType,\n type ObjectPropertyType,\n type ObjectPropertyTypeUserDefinition,\n type ObjectTypeDefinition,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type PropertyTypeTypeStruct,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectTypeDefinition,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n Object.keys(def.parameterLevelValidations ?? {}).forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist on ${def.objectType.apiName}`,\n );\n });\n (def.excludedProperties ?? []).forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist on ${def.objectType.apiName}`,\n );\n });\n\n const parameterNames = Object.keys(def.objectType.properties ?? {}).filter(\n id =>\n !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!),\n );\n const parameters: Array<ActionParameter> = Array.from(parameterNames).map(\n id => (\n {\n id,\n displayName: def.objectType.properties?.[id].displayName\n ?? convertToDisplayName(id),\n type: extractActionParameterType(def.objectType.properties?.[id]!),\n validation: (def.parameterLevelValidations?.[id] !== undefined)\n ? {\n ...def.parameterLevelValidations?.[id],\n allowedValues: def.parameterLevelValidations?.[id].allowedValues\n ?? extractAllowedValuesFromType(\n def.objectType.properties?.[id].type!,\n ),\n required: def.parameterLevelValidations?.[id].required ?? true,\n }\n : {\n required: (def.objectType.properties?.[id].array ?? false)\n ? {\n listLength: def.objectType.properties?.[id].nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : def.objectType.properties?.[id].nullability?.noNulls ?? true,\n allowedValues: extractAllowedValuesFromType(\n def.objectType.properties?.[id].type!,\n ),\n },\n }\n ),\n );\n\n return defineAction({\n apiName: def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: Object.fromEntries(\n parameters.map(\n p => [p.id, { type: \"parameterId\", parameterId: p.id }],\n ),\n ),\n structFieldValues: {},\n },\n }],\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectTypeDefinition,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`,\n );\n }\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n Object.keys(def.parameterLevelValidations ?? {}).forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist on ${def.objectType.apiName}`,\n );\n });\n (def.excludedProperties ?? []).forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist on ${def.objectType.apiName}`,\n );\n });\n\n const parameterNames = Object.keys(def.objectType.properties ?? {}).filter(\n id =>\n !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameters: Array<ActionParameter> = Array.from(parameterNames).map(\n id => (\n {\n id,\n displayName: def.objectType.properties?.[id].displayName\n ?? convertToDisplayName(id),\n type: extractActionParameterType(def.objectType.properties?.[id]!),\n validation: (def.parameterLevelValidations?.[id] !== undefined)\n ? {\n ...def.parameterLevelValidations?.[id],\n allowedValues: def.parameterLevelValidations?.[id].allowedValues\n ?? extractAllowedValuesFromType(\n def.objectType.properties?.[id].type!,\n ),\n required: def.parameterLevelValidations?.[id].required ?? false,\n }\n : {\n required: (def.objectType.properties?.[id].array ?? false)\n ? {\n listLength: def.objectType.properties?.[id].nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : def.objectType.properties?.[id].nullability?.noNulls ?? false,\n allowedValues: extractAllowedValuesFromType(\n def.objectType.properties?.[id].type!,\n ),\n },\n }\n ),\n );\n return defineAction({\n apiName: def.apiName\n ?? `modify-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...parameters,\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: Object.fromEntries(\n parameters.map(\n p => [p.id, { type: \"parameterId\", parameterId: p.id }],\n ),\n ),\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineDeleteObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\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 validateActionValidation(fullAction);\n updateOntology(fullAction);\n return fullAction;\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).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 extractAllowedValuesFromType(\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 \"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 \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction isStruct(type: PropertyTypeType): type is PropertyTypeTypeStruct {\n return typeof type === \"object\" && type.type === \"struct\";\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nfunction convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n): ActionValidationRule {\n return {\n condition: convertConditionDefinition(actionValidation.condition),\n displayMetadata: actionValidation.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n}\n\nfunction validateActionValidation(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n action.parameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateActionCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateActionCondition(\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 validateActionCondition(\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 validateActionCondition(\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,10 +21,10 @@ import { OntologyEntityTypeEnum } from "./types.js";
|
|
|
21
21
|
const typeIdPattern = /([a-z][a-z0-9\\-]*)/;
|
|
22
22
|
export function defineLink(linkDefinition) {
|
|
23
23
|
if ("one" in linkDefinition) {
|
|
24
|
-
const foreignKey = linkDefinition.toMany.object.properties?.
|
|
24
|
+
const foreignKey = linkDefinition.toMany.object.properties?.[linkDefinition.manyForeignKeyProperty];
|
|
25
25
|
!(foreignKey !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;
|
|
26
26
|
!typeIdPattern.test(linkDefinition.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\-]*) ${linkDefinition.apiName} does not match`) : invariant(false) : void 0;
|
|
27
|
-
const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.
|
|
27
|
+
const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;
|
|
28
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
29
|
}
|
|
30
30
|
const fullLinkDefinition = "one" in linkDefinition ? {
|