@osdk/maker 0.12.2 → 0.13.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -52
- package/build/browser/api/defineAction.js +21 -19
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineObject.js +2 -0
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineOntology.js +33 -109
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/defineValueType.js +2 -1
- package/build/browser/api/defineValueType.js.map +1 -1
- package/build/browser/api/markingconstraint.test.js +3 -3
- package/build/browser/api/markingconstraint.test.js.map +1 -1
- package/build/browser/api/objectStatus.test.js +4 -4
- package/build/browser/api/objectStatus.test.js.map +1 -1
- package/build/browser/api/overall.test.js +841 -310
- package/build/browser/api/overall.test.js.map +1 -1
- package/build/browser/api/propertyConversionUtils.js +3 -1
- package/build/browser/api/propertyConversionUtils.js.map +1 -1
- package/build/browser/api/types.js.map +1 -1
- package/build/browser/cli/main.js +5 -5
- package/build/browser/cli/main.js.map +1 -1
- package/build/cjs/index.cjs +67 -136
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +8 -10
- package/build/esm/api/defineAction.js +21 -19
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineObject.js +2 -0
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineOntology.js +33 -109
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/defineValueType.js +2 -1
- package/build/esm/api/defineValueType.js.map +1 -1
- package/build/esm/api/markingconstraint.test.js +3 -3
- package/build/esm/api/markingconstraint.test.js.map +1 -1
- package/build/esm/api/objectStatus.test.js +4 -4
- package/build/esm/api/objectStatus.test.js.map +1 -1
- package/build/esm/api/overall.test.js +841 -310
- package/build/esm/api/overall.test.js.map +1 -1
- package/build/esm/api/propertyConversionUtils.js +3 -1
- package/build/esm/api/propertyConversionUtils.js.map +1 -1
- package/build/esm/api/types.js.map +1 -1
- package/build/esm/cli/main.js +5 -5
- package/build/esm/cli/main.js.map +1 -1
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineObject.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts +1 -6
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/defineSpt.d.ts +2 -2
- package/build/types/api/defineSpt.d.ts.map +1 -1
- package/build/types/api/propertyConversionUtils.d.ts +2 -2
- package/build/types/api/propertyConversionUtils.d.ts.map +1 -1
- package/build/types/api/types.d.ts +6 -14
- package/build/types/api/types.d.ts.map +1 -1
- package/package.json +10 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAction.js","names":["consola","invariant","convertToDisplayName","getAllInterfaceProperties","namespace","ontologyDefinition","updateOntology","convertConditionDefinition","convertMappingValue","CREATE_OR_MODIFY_OBJECT_PARAMETER","MODIFY_OBJECT_PARAMETER","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","extractAllowedValuesFromPropertyType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","_prop","parameterId","convertValidationRule","defineCreateObjectAction","def","validateActionParameters","propertyParameters","keys","properties","nonParameterMappings","includes","excludedProperties","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","parameterOrdering","validateParameterOrdering","createParameters","mappings","addObjectRule","propertyValues","p","structFieldValues","createDefaultParameterOrdering","actionLevelValidation","defaultFormat","enableLayoutSwitch","displayAndFormat","sections","section","submissionMetadata","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","primaryKeyPropertyApiName","defaultValue","objectParameterPropertyValue","propertyTypeId","modifyObjectRule","objectToModify","defineDeleteObjectAction","objectReference","deleteObjectRule","objectToDelete","defineCreateOrModifyObjectAction","addOrModifyObjectRuleV2","actionDef","parameterIds","ACTION_TYPE","Error","test","process","env","NODE_ENV","parameterIdsSet","size","parameterIdsNotFound","Array","from","referencedParameterIds","has","JSON","stringify","definedSectionIds","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","rule","some","fullAction","__type","validateActionConfiguration","parameterSet","defaultRequired","targetParam","name","push","description","delete","maybeCreateObjectOption","primaryKeyOption","autoGenerated","userInput","customParameterType","extractAllowedValuesFromActionParameterType","nullability","noEmptyCollections","min","noNulls","values","pId","item","sanitize","k","v","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","replace","toLowerCase","actionValidation","condition","failureMessage","action","seenParameterIds","parameterMap","reduce","acc","orderedParameters","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","find","priorityId","orderingSet","missingParameters","extraneousParameters"],"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 {\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport {\n convertToDisplayName,\n getAllInterfaceProperties,\n} from \"./defineObject.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport {\n convertConditionDefinition,\n convertMappingValue,\n} from \"./ontologyUtils.js\";\nimport {\n type ActionLevelValidationDefinition,\n type ActionParameter,\n type ActionParameterAllowedValues,\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n type ActionType,\n type ActionTypeDefinition,\n type ActionTypeUserDefinition,\n type ActionValidationRule,\n type ConditionDefinition,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n type InterfaceType,\n MODIFY_OBJECT_PARAMETER,\n type ObjectPropertyType,\n type ObjectPropertyTypeUserDefinition,\n type ObjectTypeDefinition,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type PropertyTypeTypeStruct,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectTypeDefinition,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n const actionApiName = def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames, true);\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(def, parameters),\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectTypeDefinition,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`,\n );\n }\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n entities: {\n affectedInterfaceTypes: [interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n allProperties.map((\n [id, _prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n ...(validation\n ? {\n validation: [\n convertValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `modify-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames, false);\n parameters.forEach(\n p => {\n if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineDeleteObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames, false);\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: [\n convertValidationRule(def.actionLevelValidation),\n ],\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\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 validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nfunction createParameters(\n def: ActionTypeUserDefinition,\n parameterSet: Set<string>,\n defaultRequired: boolean,\n): Array<ActionParameter> {\n const targetParam: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName,\n maybeCreateObjectOption:\n !def.primaryKeyOption || def.primaryKeyOption === \"autoGenerated\"\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n });\n return [\n ...targetParam,\n ...Array.from(parameterSet).map(\n id => (\n {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? def.objectType.properties?.[id]?.displayName\n ?? convertToDisplayName(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(def.objectType.properties?.[id]!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? defaultRequired,\n }\n : {\n required: (def.objectType.properties?.[id].array ?? false)\n ? {\n listLength: def.objectType.properties?.[id].nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : def.objectType.properties?.[id].nullability?.noNulls\n ?? defaultRequired,\n allowedValues: extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n }\n ),\n ),\n ];\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.parameters).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 extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\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 \"string\":\n return { type: \"text\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction isStruct(type: PropertyTypeType): type is PropertyTypeTypeStruct {\n return typeof type === \"object\" && type.type === \"struct\";\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nfunction convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n): ActionValidationRule {\n return {\n condition: convertConditionDefinition(actionValidation.condition),\n displayMetadata: actionValidation.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\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 validateParameterCondition(\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 validateParameterCondition(\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\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateActionParameters(def: ActionTypeUserDefinition): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || id === MODIFY_OBJECT_PARAMETER\n || id === CREATE_OR_MODIFY_OBJECT_PARAMETER,\n `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist as a property on ${def.objectType.apiName}`,\n );\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type\nfunction createDefaultParameterOrdering(\n def: ActionTypeUserDefinition,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}),\n ...Object.keys(def.objectType.properties ?? {}).filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nfunction validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["consola","invariant","convertToDisplayName","getAllInterfaceProperties","namespace","ontologyDefinition","updateOntology","convertConditionDefinition","convertMappingValue","CREATE_OR_MODIFY_OBJECT_PARAMETER","MODIFY_OBJECT_PARAMETER","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","extractAllowedValuesFromPropertyType","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","_prop","parameterId","convertValidationRule","defineCreateObjectAction","def","validateActionParameters","propertyParameters","keys","properties","nonParameterMappings","includes","excludedProperties","parameterNames","Set","parameterConfiguration","forEach","param","add","actionApiName","parameterOrdering","validateParameterOrdering","createParameters","mappings","addObjectRule","propertyValues","p","structFieldValues","createDefaultParameterOrdering","actionLevelValidation","defaultFormat","enableLayoutSwitch","displayAndFormat","sections","section","submissionMetadata","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","primaryKeyPropertyApiName","defaultValue","objectParameterPropertyValue","propertyTypeId","modifyObjectRule","objectToModify","defineDeleteObjectAction","objectReference","deleteObjectRule","objectToDelete","defineCreateOrModifyObjectAction","addOrModifyObjectRuleV2","actionDef","parameterIds","ACTION_TYPE","Error","test","process","env","NODE_ENV","parameterIdsSet","size","parameterIdsNotFound","Array","from","referencedParameterIds","has","JSON","stringify","definedSectionIds","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","rule","some","fullAction","__type","validateActionConfiguration","parameterSet","targetParam","name","push","description","delete","maybeCreateObjectOption","primaryKeyOption","autoGenerated","userInput","customParameterType","extractAllowedValuesFromActionParameterType","nullability","noNulls","noEmptyCollections","min","values","pId","item","sanitize","k","v","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","replace","toLowerCase","actionValidation","condition","failureMessage","action","seenParameterIds","parameterMap","reduce","acc","orderedParameters","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","find","priorityId","orderingSet","missingParameters","extraneousParameters"],"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 {\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport { consola } from \"consola\";\nimport invariant from \"tiny-invariant\";\nimport {\n convertToDisplayName,\n getAllInterfaceProperties,\n} from \"./defineObject.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport {\n convertConditionDefinition,\n convertMappingValue,\n} from \"./ontologyUtils.js\";\nimport {\n type ActionLevelValidationDefinition,\n type ActionParameter,\n type ActionParameterAllowedValues,\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n type ActionType,\n type ActionTypeDefinition,\n type ActionTypeUserDefinition,\n type ActionValidationRule,\n type ConditionDefinition,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n type InterfaceType,\n MODIFY_OBJECT_PARAMETER,\n type ObjectPropertyType,\n type ObjectPropertyTypeUserDefinition,\n type ObjectTypeDefinition,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type PropertyTypeTypeStruct,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectTypeDefinition,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the create action because they are structs`,\n );\n }\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(\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: convertValidationRule(validation),\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!),\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n const actionApiName = def.apiName\n ?? `create-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Create ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: def.objectType.apiName,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(def, parameters),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(def.actionLevelValidation),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectTypeDefinition,\n validation?: ActionLevelValidationDefinition,\n): ActionType {\n const allProperties = Object.entries(getAllInterfaceProperties(interfaceType))\n .filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type));\n if (\n allProperties.length\n !== Object.entries(getAllInterfaceProperties(interfaceType)).length\n ) {\n consola.info(\n `Some properties on ${interfaceType.apiName} were skipped in the modify action because they are structs`,\n );\n }\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...allProperties.map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromPropertyType(\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: convertValidationRule(validation),\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `modify-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(\n p => {\n if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === undefined) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(def.actionLevelValidation),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\nexport function defineDeleteObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n return defineAction({\n apiName: def.apiName\n ?? `delete-object-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`,\n displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: def.status ?? \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(def.actionLevelValidation),\n }\n : {}),\n });\n}\n\nexport function defineCreateOrModifyObjectAction(\n def: ActionTypeUserDefinition,\n): ActionType {\n validateActionParameters(def);\n const propertyParameters = Object.keys(def.objectType.properties ?? {})\n .filter(\n id =>\n !Object.keys(def.nonParameterMappings ?? {}).includes(id)\n && !def.excludedProperties?.includes(id)\n && !isStruct(def.objectType.properties?.[id].type!)\n && id !== def.objectType.primaryKeyPropertyApiName,\n );\n const parameterNames = new Set(propertyParameters);\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(param)\n );\n parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n const actionApiName = def.apiName\n ?? `create-or-modify-${\n kebab(def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName)\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {\n def.parameterOrdering = [\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ...def.parameterOrdering,\n ];\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(def, parameterNames);\n parameters.forEach(\n p => {\n if (\n p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER\n && p.defaultValue === undefined\n ) {\n p.defaultValue = {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyTypeId: p.id,\n },\n };\n }\n },\n );\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => [id, convertMappingValue(value)]),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create or Modify ${def.objectType.displayName}`,\n parameters: parameters,\n status: def.status ?? \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n propertyValues: {\n ...Object.fromEntries(\n propertyParameters.map(\n p => [p, { type: \"parameterId\", parameterId: p }],\n ),\n ),\n ...mappings,\n },\n structFieldValues: {},\n },\n }],\n entities: {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [def.objectType.apiName],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n parameters,\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(def.actionLevelValidation),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.displayAndFormat && { displayAndFormat: def.displayAndFormat }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n });\n}\n\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 validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nfunction createParameters(\n def: ActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParam: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParam.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType.apiName,\n maybeCreateObjectOption:\n !def.primaryKeyOption || def.primaryKeyOption === \"autoGenerated\"\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n });\n return [\n ...targetParam,\n ...Array.from(parameterSet).map(\n id => (\n {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? def.objectType.properties?.[id]?.displayName\n ?? convertToDisplayName(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(def.objectType.properties?.[id]!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (def.objectType.properties?.[id]?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (def.objectType.properties?.[id].array ?? false)\n ? {\n listLength: def.objectType.properties?.[id].nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : def.objectType.properties?.[id].nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n def.objectType.properties?.[id].type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n }\n ),\n ),\n ];\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.parameters).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 extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\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 \"string\":\n return { type: \"text\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | SharedPropertyType\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction isStruct(type: PropertyTypeType): type is PropertyTypeTypeStruct {\n return typeof type === \"object\" && type.type === \"struct\";\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nfunction convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\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 validateParameterCondition(\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 validateParameterCondition(\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\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateActionParameters(def: ActionTypeUserDefinition): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || id === MODIFY_OBJECT_PARAMETER\n || id === CREATE_OR_MODIFY_OBJECT_PARAMETER,\n `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n def.objectType.properties?.[id] !== undefined,\n `Property ${id} does not exist as a property on ${def.objectType.apiName}`,\n );\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type\nfunction createDefaultParameterOrdering(\n def: ActionTypeUserDefinition,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}),\n ...Object.keys(def.objectType.properties ?? {}).filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nfunction validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,12 +23,14 @@ const ISO_8601_DURATION = /^P(?!$)(?:(?:((?:\d+Y)|(?:\d+(?:\.|,)\d+Y$))?((?:\d+M
|
|
|
23
23
|
|
|
24
24
|
// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)
|
|
25
25
|
const ISO_8601_DATETIME = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?)?$/;
|
|
26
|
+
const API_NAME_PATTERN = /^([a-zA-Z][a-zA-Z0-9\\-]*)$/;
|
|
26
27
|
export function defineObject(objectDef) {
|
|
27
28
|
const apiName = namespace + objectDef.apiName;
|
|
28
29
|
const propertyApiNames = objectDef.properties ? Object.keys(objectDef.properties) : [];
|
|
29
30
|
if (ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName] !== undefined) {
|
|
30
31
|
throw new Error(`Object type with apiName ${objectDef.apiName} is already defined`);
|
|
31
32
|
}
|
|
33
|
+
!API_NAME_PATTERN.test(objectDef.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Invalid API name ${objectDef.apiName}. API names must match the regex ${API_NAME_PATTERN}.`) : invariant(false) : void 0;
|
|
32
34
|
!propertyApiNames.includes(objectDef.titlePropertyApiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`) : invariant(false) : void 0;
|
|
33
35
|
!propertyApiNames.includes(objectDef.primaryKeyPropertyApiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;
|
|
34
36
|
!!objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly ? process.env.NODE_ENV !== "production" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`) : invariant(false) : void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineObject.js","names":["invariant","addNamespaceIfNone","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","ISO_8601_DURATION","ISO_8601_DATETIME","defineObject","objectDef","apiName","propertyApiNames","properties","Object","keys","OBJECT_TYPE","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeyPropertyApiName","editOnly","retentionPeriod","datasource","test","status","activeProperties","entries","forEach","property","push","length","join","type","deadline","isExotic","implementsInterfaces","interfaceImpl","allInterfaceProperties","getAllInterfaceProperties","implements","nonExistentInterfaceProperties","propertyMapping","map","val","interfaceProperty","filter","interfaceProp","reason","interfaceToObjectProperties","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","validateInterfaceImplProperty","validations","allFailedValidations","concat","formatValidationErrors","flattenedProperties","convertUserObjectPropertyType","finalObject","__type","error","spt","mappedObjectProp","object","objProp","JSON","stringify","convertToDisplayName","s","charAt","toUpperCase","slice","convertToPluralDisplayName","endsWith","interfaceType","propertiesV2","extendsInterfaces","ext","displayName"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 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 invariant from \"tiny-invariant\";\nimport {\n addNamespaceIfNone,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n InterfaceType,\n ObjectPropertyType,\n ObjectPropertyTypeUserDefinition,\n ObjectType,\n ObjectTypeDefinition,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport function defineObject(\n objectDef: ObjectTypeDefinition,\n): ObjectTypeDefinition {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties\n ? Object.keys(objectDef.properties)\n : [];\n if (\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n\n invariant(\n !(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`,\n );\n\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties: string[] = [];\n Object.entries(objectDef.properties ?? {}).forEach(\n ([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n },\n );\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n !isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n !isExotic(\n objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type,\n ),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(\n interfaceImpl.implements,\n );\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n allInterfaceProperties[addNamespaceIfNone(interfaceProperty)]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [\n addNamespaceIfNone(mapping.interfaceProperty),\n mapping.mapsTo,\n ],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.apiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${\n interfaceProp[1].sharedPropertyType.apiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const validations = Object.entries(\n getAllInterfaceProperties(interfaceImpl.implements),\n ).map(validateProperty);\n const allFailedValidations = validations.concat(\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n const flattenedProperties: Array<ObjectPropertyType> = Object.entries(\n objectDef.properties ?? {},\n ).map(([apiName, property]) =>\n convertUserObjectPropertyType(property.apiName ?? apiName, property)\n );\n\n const finalObject: ObjectType = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties,\n };\n updateOntology(finalObject);\n objectDef.apiName = apiName;\n return objectDef;\n}\n\nexport function isExotic(\n type: PropertyTypeType | undefined,\n): type is PropertyTypeTypeExotic {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectTypeDefinition,\n): ValidationResult {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (JSON.stringify(spt.type) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n\nexport function convertToDisplayName(s: string | undefined | null): string {\n return s === undefined || s == null\n ? \"\"\n : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(\n s: string | undefined | null,\n): string {\n return s === undefined || s == null\n ? \"\"\n : s.endsWith(\"s\")\n ? convertToDisplayName(s)\n : convertToDisplayName(s) + \"s\";\n}\n\nexport function getAllInterfaceProperties(\n interfaceType: InterfaceType,\n): Record<string, InterfacePropertyType> {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = { ...properties, ...getAllInterfaceProperties(ext) };\n });\n return properties;\n}\n\nfunction convertUserObjectPropertyType(\n apiName: string,\n property: ObjectPropertyTypeUserDefinition,\n): ObjectPropertyType {\n // fill in missing fields to be used by actions\n property.apiName = apiName;\n property.displayName = property.displayName ?? convertToDisplayName(apiName);\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? convertToDisplayName(apiName),\n type: property.type,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineObject.js","names":["invariant","addNamespaceIfNone","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","ISO_8601_DURATION","ISO_8601_DATETIME","API_NAME_PATTERN","defineObject","objectDef","apiName","propertyApiNames","properties","Object","keys","OBJECT_TYPE","undefined","Error","test","process","env","NODE_ENV","includes","titlePropertyApiName","primaryKeyPropertyApiName","editOnly","retentionPeriod","datasource","status","activeProperties","entries","forEach","property","push","length","join","type","deadline","isExotic","implementsInterfaces","interfaceImpl","allInterfaceProperties","getAllInterfaceProperties","implements","nonExistentInterfaceProperties","propertyMapping","map","val","interfaceProperty","filter","interfaceProp","reason","interfaceToObjectProperties","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","validateInterfaceImplProperty","validations","allFailedValidations","concat","formatValidationErrors","flattenedProperties","convertUserObjectPropertyType","finalObject","__type","error","spt","mappedObjectProp","object","objProp","JSON","stringify","convertToDisplayName","s","charAt","toUpperCase","slice","convertToPluralDisplayName","endsWith","interfaceType","propertiesV2","extendsInterfaces","ext","displayName"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 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 invariant from \"tiny-invariant\";\nimport {\n addNamespaceIfNone,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n InterfaceType,\n ObjectPropertyType,\n ObjectPropertyTypeUserDefinition,\n ObjectType,\n ObjectTypeDefinition,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nconst API_NAME_PATTERN = /^([a-zA-Z][a-zA-Z0-9\\\\-]*)$/;\n\nexport function defineObject(\n objectDef: ObjectTypeDefinition,\n): ObjectTypeDefinition {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties\n ? Object.keys(objectDef.properties)\n : [];\n if (\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n API_NAME_PATTERN.test(objectDef.apiName),\n `Invalid API name ${objectDef.apiName}. API names must match the regex ${API_NAME_PATTERN}.`,\n );\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n\n invariant(\n !(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`,\n );\n\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties: string[] = [];\n Object.entries(objectDef.properties ?? {}).forEach(\n ([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n },\n );\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n !isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n !isExotic(\n objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type,\n ),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(\n interfaceImpl.implements,\n );\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n allInterfaceProperties[addNamespaceIfNone(interfaceProperty)]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [\n addNamespaceIfNone(mapping.interfaceProperty),\n mapping.mapsTo,\n ],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.apiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${\n interfaceProp[1].sharedPropertyType.apiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const validations = Object.entries(\n getAllInterfaceProperties(interfaceImpl.implements),\n ).map(validateProperty);\n const allFailedValidations = validations.concat(\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n const flattenedProperties: Array<ObjectPropertyType> = Object.entries(\n objectDef.properties ?? {},\n ).map(([apiName, property]) =>\n convertUserObjectPropertyType(property.apiName ?? apiName, property)\n );\n\n const finalObject: ObjectType = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties,\n };\n updateOntology(finalObject);\n objectDef.apiName = apiName;\n return objectDef;\n}\n\nexport function isExotic(\n type: PropertyTypeType | undefined,\n): type is PropertyTypeTypeExotic {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectTypeDefinition,\n): ValidationResult {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (JSON.stringify(spt.type) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n\nexport function convertToDisplayName(s: string | undefined | null): string {\n return s === undefined || s == null\n ? \"\"\n : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(\n s: string | undefined | null,\n): string {\n return s === undefined || s == null\n ? \"\"\n : s.endsWith(\"s\")\n ? convertToDisplayName(s)\n : convertToDisplayName(s) + \"s\";\n}\n\nexport function getAllInterfaceProperties(\n interfaceType: InterfaceType,\n): Record<string, InterfacePropertyType> {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = { ...properties, ...getAllInterfaceProperties(ext) };\n });\n return properties;\n}\n\nfunction convertUserObjectPropertyType(\n apiName: string,\n property: ObjectPropertyTypeUserDefinition,\n): ObjectPropertyType {\n // fill in missing fields to be used by actions\n property.apiName = apiName;\n property.displayName = property.displayName ?? convertToDisplayName(apiName);\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? convertToDisplayName(apiName),\n type: property.type,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|