@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +88 -62
  3. package/build/browser/api/defineAction.js +91 -78
  4. package/build/browser/api/defineAction.js.map +1 -1
  5. package/build/browser/api/defineLink.js +2 -2
  6. package/build/browser/api/defineLink.js.map +1 -1
  7. package/build/browser/api/defineObject.js +6 -2
  8. package/build/browser/api/defineObject.js.map +1 -1
  9. package/build/browser/api/defineOntology.js +2 -2
  10. package/build/browser/api/defineOntology.js.map +1 -1
  11. package/build/browser/api/overall.test.js +1123 -452
  12. package/build/browser/api/overall.test.js.map +1 -1
  13. package/build/browser/api/types.js.map +1 -1
  14. package/build/browser/cli/main.js +1 -1
  15. package/build/browser/index.js.map +1 -1
  16. package/build/cjs/index.cjs +100 -84
  17. package/build/cjs/index.cjs.map +1 -1
  18. package/build/cjs/index.d.cts +23 -14
  19. package/build/esm/api/defineAction.js +91 -78
  20. package/build/esm/api/defineAction.js.map +1 -1
  21. package/build/esm/api/defineLink.js +2 -2
  22. package/build/esm/api/defineLink.js.map +1 -1
  23. package/build/esm/api/defineObject.js +6 -2
  24. package/build/esm/api/defineObject.js.map +1 -1
  25. package/build/esm/api/defineOntology.js +2 -2
  26. package/build/esm/api/defineOntology.js.map +1 -1
  27. package/build/esm/api/overall.test.js +1123 -452
  28. package/build/esm/api/overall.test.js.map +1 -1
  29. package/build/esm/api/types.js.map +1 -1
  30. package/build/esm/cli/main.js +1 -1
  31. package/build/esm/index.js.map +1 -1
  32. package/build/types/api/defineAction.d.ts +6 -6
  33. package/build/types/api/defineAction.d.ts.map +1 -1
  34. package/build/types/api/defineObject.d.ts +2 -2
  35. package/build/types/api/defineObject.d.ts.map +1 -1
  36. package/build/types/api/types.d.ts +15 -6
  37. package/build/types/api/types.d.ts.map +1 -1
  38. package/build/types/index.d.ts +1 -1
  39. package/build/types/index.d.ts.map +1 -1
  40. package/package.json +4 -4
@@ -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, OntologyIrObjectType, OntologyIrPropertyType, ValueTypeApiName, ValueTypeDisplayMetadata, ValueTypeStatus, ValueTypeVersion, BaseType, ValueTypeDataConstraint, ExampleValue, ValidationRuleDisplayMetadata, LinkTypeMetadata, OntologyIrLinkTypeStatus, DataConstraint, FailureMessage, OntologyIr, OntologyIrValueTypeBlockData } from '@osdk/client.unstable';
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: ActionParameterAllowedValues;
35
- required: ActionParameterRequirementConstraint;
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: ObjectType;
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: ObjectType;
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: ObjectType;
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: ObjectType;
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?: ObjectType, validation?: ActionLevelValidationDefinition): ActionType;
537
- declare function defineCreateObjectAction(objectType: ObjectType, validation?: ActionLevelValidationDefinition): ActionType;
538
- declare function defineModifyInterfaceObjectAction(interfaceType: InterfaceType, objectType?: ObjectType, validation?: ActionLevelValidationDefinition): ActionType;
539
- declare function defineModifyObjectAction(objectType: ObjectType, validation?: ActionLevelValidationDefinition): ActionType;
540
- declare function defineDeleteObjectAction(objectType: ObjectType, validation?: ActionLevelValidationDefinition): ActionType;
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): ObjectType;
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(objectType, validation) {
94
- const filteredProperties = objectType.properties?.filter(prop => !isStruct(prop.type)) ?? [];
95
- if (filteredProperties.length !== (objectType.properties?.length ?? 0)) {
96
- consola.info(`Some properties on ${objectType.apiName} were skipped in the create action because they are structs`);
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: [...filteredProperties.map(prop => ({
102
- id: prop.apiName,
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: filteredProperties.length > 0 ? Object.fromEntries(filteredProperties.map(p => [p.apiName, {
132
+ objectTypeId: def.objectType.apiName,
133
+ propertyValues: Object.fromEntries(parameters.map(p => [p.id, {
127
134
  type: "parameterId",
128
- parameterId: p.apiName
129
- }])) : {},
135
+ parameterId: p.id
136
+ }])),
130
137
  structFieldValues: {}
131
138
  }
132
139
  }],
133
- ...(validation ? {
134
- validation: [convertValidationRule(validation)]
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(objectType, validation) {
207
- const properties = objectType.properties ?? [];
208
- const filteredProperties = properties.filter(prop => !isStruct(prop.type) && prop.apiName !== objectType.primaryKeyPropertyApiName);
209
- if (filteredProperties.length < properties.length) {
210
- consola.warn(`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.`);
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
- }, ...filteredProperties.map(prop => ({
231
- id: prop.apiName,
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: filteredProperties.length > 0 ? Object.fromEntries(filteredProperties.map(p => [p.apiName, {
262
+ propertyValues: Object.fromEntries(parameters.map(p => [p.id, {
256
263
  type: "parameterId",
257
- parameterId: p.apiName
258
- }])) : {},
264
+ parameterId: p.id
265
+ }])),
259
266
  structFieldValues: {}
260
267
  }
261
268
  }],
262
- ...(validation ? {
263
- validation: [convertValidationRule(validation)]
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(objectType, validation) {
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
- ...(validation ? {
301
- validation: [convertValidationRule(validation)]
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?.find(prop => prop.apiName === linkDefinition.manyForeignKeyProperty);
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?.find(prop => prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName)?.type;
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 ? {