@osdk/maker 0.12.0-beta.1 → 0.12.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.12.0-beta.2
4
+
5
+ ### Minor Changes
6
+
7
+ - 8bb08eb: Turn on module cache
8
+ - 5994895: Interface struct properties are skipped in crud actions
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [29d2ada]
13
+ - Updated dependencies [8c95154]
14
+ - Updated dependencies [c32dcf2]
15
+ - @osdk/api@2.4.0-beta.2
16
+
3
17
  ## 0.11.0-beta.14
4
18
 
5
19
  ### Minor Changes
@@ -14,12 +14,17 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import { consola } from "consola";
17
18
  import invariant from "tiny-invariant";
18
19
  import { getAllInterfaceProperties } from "./defineObject.js";
19
20
  import { namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
20
21
  import { convertConditionDefinition } from "./ontologyUtils.js";
21
22
  import { OntologyEntityTypeEnum } from "./types.js";
22
23
  export function defineCreateInterfaceObjectAction(interfaceType, objectType, validation) {
24
+ const allProperties = Object.entries(getAllInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));
25
+ if (allProperties.length !== Object.entries(getAllInterfaceProperties(interfaceType)).length) {
26
+ consola.info(`Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`);
27
+ }
23
28
  return defineAction({
24
29
  apiName: `create-${kebab(interfaceType.apiName.split(".").pop() ?? interfaceType.apiName)}${objectType === undefined ? "" : `-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`}`,
25
30
  displayName: `Create ${interfaceType.displayMetadata.displayName}`,
@@ -50,7 +55,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
50
55
  }]
51
56
  }
52
57
  }
53
- }, ...Object.entries(getAllInterfaceProperties(interfaceType)).map(([id, prop]) => ({
58
+ }, ...allProperties.map(([id, prop]) => ({
54
59
  id,
55
60
  displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,
56
61
  type: extractActionParameterType(prop.sharedPropertyType),
@@ -74,7 +79,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType, val
74
79
  addInterfaceRule: {
75
80
  interfaceApiName: interfaceType.apiName,
76
81
  objectTypeParameter: "objectTypeParameter",
77
- sharedPropertyValues: Object.fromEntries(Object.entries(getAllInterfaceProperties(interfaceType)).map(([id, prop]) => [id, {
82
+ sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {
78
83
  type: "parameterId",
79
84
  parameterId: id
80
85
  }]))
@@ -122,6 +127,10 @@ export function defineCreateObjectAction(objectType, validation) {
122
127
  });
123
128
  }
124
129
  export function defineModifyInterfaceObjectAction(interfaceType, objectType, validation) {
130
+ const allProperties = Object.entries(getAllInterfaceProperties(interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));
131
+ if (allProperties.length !== Object.entries(getAllInterfaceProperties(interfaceType)).length) {
132
+ consola.info(`Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`);
133
+ }
125
134
  return defineAction({
126
135
  apiName: `modify-${kebab(interfaceType.apiName.split(".").pop() ?? interfaceType.apiName)}${objectType === undefined ? "" : `-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`}`,
127
136
  displayName: `Modify ${interfaceType.displayMetadata.displayName}`,
@@ -151,7 +160,7 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
151
160
  }]
152
161
  }
153
162
  }
154
- }, ...Object.entries(getAllInterfaceProperties(interfaceType)).map(([id, prop]) => ({
163
+ }, ...allProperties.map(([id, prop]) => ({
155
164
  id,
156
165
  displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,
157
166
  type: extractActionParameterType(prop.sharedPropertyType),
@@ -174,7 +183,7 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType, val
174
183
  type: "modifyInterfaceRule",
175
184
  modifyInterfaceRule: {
176
185
  interfaceObjectToModifyParameter: "interfaceObjectToModifyParameter",
177
- sharedPropertyValues: Object.fromEntries(Object.entries(getAllInterfaceProperties(interfaceType)).map(([id, prop]) => [id, {
186
+ sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {
178
187
  type: "parameterId",
179
188
  parameterId: id
180
189
  }]))
@@ -501,6 +510,9 @@ function maybeAddList(type, pt) {
501
510
  function isActionParameterTypePrimitive(type) {
502
511
  return ["boolean", "booleanList", "integer", "integerList", "long", "longList", "double", "doubleList", "string", "stringList", "decimal", "decimalList", "timestamp", "timestampList", "geohash", "geohashList", "geoshape", "geoshapeList", "timeSeriesReference", "date", "dateList", "objectTypeReference", "objectReference", "attachment", "attachmentList", "marking", "markingList", "mediaReference", "mediaReferenceList", "geotimeSeriesReference", "geotimeSeriesReferenceList"].includes(type);
503
512
  }
513
+ function isStruct(type) {
514
+ return typeof type === "object" && type.type === "struct";
515
+ }
504
516
  function kebab(s) {
505
517
  return s.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").replace(/\./g, "-").toLowerCase();
506
518
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["invariant","getAllInterfaceProperties","namespace","ontologyDefinition","updateOntology","convertConditionDefinition","OntologyEntityTypeEnum","defineCreateInterfaceObjectAction","interfaceType","objectType","validation","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","Object","entries","map","prop","sharedPropertyType","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","parameterId","convertValidationRule","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","ACTION_TYPE","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","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 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 SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\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 ...Object.entries(getAllInterfaceProperties(interfaceType)).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 Object.entries(getAllInterfaceProperties(interfaceType)).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 return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.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: objectType.properties\n ? Object.fromEntries(\n objectType.properties.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 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 ...Object.entries(getAllInterfaceProperties(interfaceType)).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 Object.entries(getAllInterfaceProperties(interfaceType)).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 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 ...(objectType.properties?.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: objectType.properties\n ? Object.fromEntries(\n objectType.properties.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 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","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","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 return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.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: objectType.properties\n ? Object.fromEntries(\n objectType.properties.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 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 ...(objectType.properties?.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: objectType.properties\n ? Object.fromEntries(\n objectType.properties.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":[]}
@@ -4302,10 +4302,20 @@ describe("Ontology Defining", () => {
4302
4302
  `);
4303
4303
  });
4304
4304
  it("Simple interface actions (with object types) are properly defined", () => {
4305
+ const exampleStructPropertyType = defineSharedPropertyType({
4306
+ apiName: "property2",
4307
+ type: {
4308
+ type: "struct",
4309
+ structDefinition: {
4310
+ simpleProperty: "string"
4311
+ }
4312
+ }
4313
+ });
4305
4314
  const exampleInterface = defineInterface({
4306
4315
  apiName: "exampleInterface",
4307
4316
  properties: {
4308
- property1: "string"
4317
+ property1: "string",
4318
+ property2: exampleStructPropertyType
4309
4319
  }
4310
4320
  });
4311
4321
  const exampleObjectType = defineObject({
@@ -4762,6 +4772,50 @@ describe("Ontology Defining", () => {
4762
4772
  "valueType": undefined,
4763
4773
  },
4764
4774
  },
4775
+ "com.palantir.property2": {
4776
+ "required": true,
4777
+ "sharedPropertyType": {
4778
+ "aliases": [],
4779
+ "apiName": "com.palantir.property2",
4780
+ "baseFormatter": undefined,
4781
+ "dataConstraints": undefined,
4782
+ "displayMetadata": {
4783
+ "description": undefined,
4784
+ "displayName": "property2",
4785
+ "visibility": "NORMAL",
4786
+ },
4787
+ "gothamMapping": undefined,
4788
+ "indexedForSearch": true,
4789
+ "type": {
4790
+ "struct": {
4791
+ "structFields": [
4792
+ {
4793
+ "aliases": [],
4794
+ "apiName": "simpleProperty",
4795
+ "displayMetadata": {
4796
+ "description": undefined,
4797
+ "displayName": "simpleProperty",
4798
+ },
4799
+ "fieldType": {
4800
+ "string": {
4801
+ "analyzerOverride": undefined,
4802
+ "enableAsciiFolding": undefined,
4803
+ "isLongText": false,
4804
+ "supportsEfficientLeadingWildcard": false,
4805
+ "supportsExactMatching": true,
4806
+ },
4807
+ "type": "string",
4808
+ },
4809
+ "typeClasses": [],
4810
+ },
4811
+ ],
4812
+ },
4813
+ "type": "struct",
4814
+ },
4815
+ "typeClasses": [],
4816
+ "valueType": undefined,
4817
+ },
4818
+ },
4765
4819
  },
4766
4820
  "propertiesV3": {},
4767
4821
  "searchable": true,
@@ -4908,6 +4962,49 @@ describe("Ontology Defining", () => {
4908
4962
  "valueType": undefined,
4909
4963
  },
4910
4964
  },
4965
+ "com.palantir.property2": {
4966
+ "sharedPropertyType": {
4967
+ "aliases": [],
4968
+ "apiName": "com.palantir.property2",
4969
+ "baseFormatter": undefined,
4970
+ "dataConstraints": undefined,
4971
+ "displayMetadata": {
4972
+ "description": undefined,
4973
+ "displayName": "property2",
4974
+ "visibility": "NORMAL",
4975
+ },
4976
+ "gothamMapping": undefined,
4977
+ "indexedForSearch": true,
4978
+ "type": {
4979
+ "struct": {
4980
+ "structFields": [
4981
+ {
4982
+ "aliases": [],
4983
+ "apiName": "simpleProperty",
4984
+ "displayMetadata": {
4985
+ "description": undefined,
4986
+ "displayName": "simpleProperty",
4987
+ },
4988
+ "fieldType": {
4989
+ "string": {
4990
+ "analyzerOverride": undefined,
4991
+ "enableAsciiFolding": undefined,
4992
+ "isLongText": false,
4993
+ "supportsEfficientLeadingWildcard": false,
4994
+ "supportsExactMatching": true,
4995
+ },
4996
+ "type": "string",
4997
+ },
4998
+ "typeClasses": [],
4999
+ },
5000
+ ],
5001
+ },
5002
+ "type": "struct",
5003
+ },
5004
+ "typeClasses": [],
5005
+ "valueType": undefined,
5006
+ },
5007
+ },
4911
5008
  },
4912
5009
  },
4913
5010
  "importedTypes": {