@osdk/maker 0.12.0-beta.6 → 0.12.0-beta.8

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 (31) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build/browser/api/defineAction.js +12 -2
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/api/defineOntology.js +34 -9
  5. package/build/browser/api/defineOntology.js.map +1 -1
  6. package/build/browser/api/markingconstraint.test.js +108 -0
  7. package/build/browser/api/markingconstraint.test.js.map +1 -0
  8. package/build/browser/api/overall.test.js +994 -234
  9. package/build/browser/api/overall.test.js.map +1 -1
  10. package/build/browser/api/types.js.map +1 -1
  11. package/build/browser/cli/main.js +1 -1
  12. package/build/cjs/index.cjs +43 -12
  13. package/build/cjs/index.cjs.map +1 -1
  14. package/build/cjs/index.d.cts +3 -2
  15. package/build/esm/api/defineAction.js +12 -2
  16. package/build/esm/api/defineAction.js.map +1 -1
  17. package/build/esm/api/defineOntology.js +34 -9
  18. package/build/esm/api/defineOntology.js.map +1 -1
  19. package/build/esm/api/markingconstraint.test.js +108 -0
  20. package/build/esm/api/markingconstraint.test.js.map +1 -0
  21. package/build/esm/api/overall.test.js +994 -234
  22. package/build/esm/api/overall.test.js.map +1 -1
  23. package/build/esm/api/types.js.map +1 -1
  24. package/build/esm/cli/main.js +1 -1
  25. package/build/types/api/defineAction.d.ts.map +1 -1
  26. package/build/types/api/defineOntology.d.ts.map +1 -1
  27. package/build/types/api/markingconstraint.test.d.ts +1 -0
  28. package/build/types/api/markingconstraint.test.d.ts.map +1 -0
  29. package/build/types/api/types.d.ts +3 -2
  30. package/build/types/api/types.d.ts.map +1 -1
  31. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.12.0-beta.8
4
+
5
+ ### Minor Changes
6
+
7
+ - 764e5f1: Add marking constraints
8
+
9
+ ### Patch Changes
10
+
11
+ - @osdk/api@2.4.0-beta.6
12
+
13
+ ## 0.12.0-beta.7
14
+
15
+ ### Minor Changes
16
+
17
+ - 75fbd09: Type classes and list validation for object actions
18
+
19
+ ### Patch Changes
20
+
21
+ - @osdk/api@2.4.0-beta.5
22
+
3
23
  ## 0.12.0-beta.6
4
24
 
5
25
  ### Minor Changes
@@ -102,8 +102,13 @@ export function defineCreateObjectAction(objectType, validation) {
102
102
  id: prop.apiName,
103
103
  displayName: prop.displayName,
104
104
  type: extractActionParameterType(prop),
105
+ typeClasses: prop.typeClasses ?? [],
105
106
  validation: {
106
- required: true,
107
+ required: prop.array ?? false ? {
108
+ listLength: prop.nullability?.noEmptyCollections ? {
109
+ min: 1
110
+ } : {}
111
+ } : prop.nullability?.noNulls ?? true,
107
112
  allowedValues: extractAllowedValuesFromType(prop.type)
108
113
  }
109
114
  }))],
@@ -226,8 +231,13 @@ export function defineModifyObjectAction(objectType, validation) {
226
231
  id: prop.apiName,
227
232
  displayName: prop.displayName,
228
233
  type: extractActionParameterType(prop),
234
+ typeClasses: prop.typeClasses ?? [],
229
235
  validation: {
230
- required: false,
236
+ required: prop.array ?? false ? {
237
+ listLength: prop.nullability?.noEmptyCollections ? {
238
+ min: 1
239
+ } : {}
240
+ } : prop.nullability?.noNulls ?? false,
231
241
  allowedValues: extractAllowedValuesFromType(prop.type)
232
242
  }
233
243
  }))],
@@ -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","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","min","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 validation: {\n required: 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 validation: {\n required: 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","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":[]}
@@ -200,7 +200,7 @@ function convertToWireImportedTypes(importedTypes) {
200
200
  description: p.sharedPropertyType.displayMetadata.description,
201
201
  type: p.sharedPropertyType.type
202
202
  })),
203
- links: i.interfaceType.allLinks.map(l => ({
203
+ links: i.interfaceType.links.map(l => ({
204
204
  apiName: l.metadata.apiName,
205
205
  displayName: l.metadata.displayName,
206
206
  description: l.metadata.description,
@@ -287,7 +287,11 @@ function convertToWireBlockData(ontology) {
287
287
  }
288
288
  function convertObject(objectType) {
289
289
  const propertyDatasources = (objectType.properties ?? []).flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));
290
- const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, objectType.properties ?? []));
290
+ const classificationGroupMarkingNames = extractMarkingGroups(objectType.properties ?? [], "CBAC");
291
+ const mandatoryMarkingNames = extractMarkingGroups(objectType.properties ?? [], "MANDATORY");
292
+ const classificationInputGroup = classificationGroupMarkingNames.length > 0 ? classificationGroupMarkingNames.reduce((l, r) => l + "/" + r) : undefined;
293
+ const mandatoryInputGroup = mandatoryMarkingNames.length > 0 ? mandatoryMarkingNames.reduce((l, r) => l + "/" + r) : undefined;
294
+ const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, objectType.properties ?? []), classificationInputGroup, mandatoryInputGroup);
291
295
  const implementations = objectType.implementsInterfaces ?? [];
292
296
  return {
293
297
  objectType: {
@@ -313,6 +317,8 @@ function convertObject(objectType) {
313
317
  redacted: false,
314
318
  implementsInterfaces2: implementations.map(impl => ({
315
319
  interfaceTypeApiName: impl.implements.apiName,
320
+ linksV2: {},
321
+ propertiesV2: {},
316
322
  properties: Object.fromEntries(impl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), {
317
323
  propertyTypeRid: mapping.mapsTo
318
324
  }]))
@@ -354,14 +360,26 @@ function extractPropertyDatasource(property, objectTypeApiName) {
354
360
  return [];
355
361
  }
356
362
  }
357
- function buildDatasource(apiName, definition) {
363
+ function buildDatasource(apiName, definition, classificationMarkingGroupName, mandatoryMarkingGroupName) {
364
+ const needsSecurity = classificationMarkingGroupName !== undefined || mandatoryMarkingGroupName !== undefined;
365
+ const securityConfig = needsSecurity ? {
366
+ classificationConstraint: classificationMarkingGroupName ? {
367
+ markingGroupName: classificationMarkingGroupName
368
+ } : undefined,
369
+ markingConstraint: mandatoryMarkingGroupName ? {
370
+ markingGroupName: mandatoryMarkingGroupName
371
+ } : undefined
372
+ } : undefined;
358
373
  return {
359
374
  rid: "ri.ontology.main.datasource.".concat(apiName),
360
375
  datasource: definition,
361
376
  editsConfiguration: {
362
377
  onlyAllowPrivilegedEdits: false
363
378
  },
364
- redacted: false
379
+ redacted: false,
380
+ ...(securityConfig !== undefined && {
381
+ dataSecurity: securityConfig
382
+ })
365
383
  };
366
384
  }
367
385
  function convertDatasourceDefinition(objectType, properties) {
@@ -406,6 +424,18 @@ function convertDatasourceDefinition(objectType, properties) {
406
424
  };
407
425
  }
408
426
  }
427
+
428
+ /**
429
+ * Extracts marking group names of a specific type from object properties
430
+ */
431
+ function extractMarkingGroups(properties, markingType) {
432
+ return properties.map(prop => {
433
+ if (typeof prop.type === "object" && prop.type.type === "marking" && prop.type.markingType === markingType) {
434
+ return prop.type.markingInputGroupName;
435
+ }
436
+ return undefined;
437
+ }).filter(val => val !== undefined);
438
+ }
409
439
  function buildPropertyMapping(properties) {
410
440
  return Object.fromEntries(properties.map(prop => {
411
441
  // editOnly
@@ -590,13 +620,8 @@ function convertInterface(interfaceType) {
590
620
  }])),
591
621
  extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),
592
622
  // these are omitted from our internal types but we need to re-add them for the final json
593
- allExtendsInterfaces: [],
594
- allLinks: [],
595
- allProperties: [],
596
- allPropertiesV2: {},
597
623
  // TODO(mwalther): Support propertiesV3
598
624
  propertiesV3: {},
599
- allPropertiesV3: {},
600
625
  properties: []
601
626
  };
602
627
  }