@osdk/maker 0.16.0-beta.5 → 0.16.0-beta.7
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 +24 -0
- package/README.md +4 -1
- package/build/browser/api/defineAction.js +6 -0
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineFunction.js +61 -0
- package/build/browser/api/defineFunction.js.map +1 -0
- package/build/browser/api/defineOntology.js +29 -0
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/object/ObjectTypeDatasourceDefinition.js.map +1 -1
- package/build/browser/api/test/objects.test.js +11 -2
- package/build/browser/api/test/objects.test.js.map +1 -1
- package/build/browser/api/test/spt.test.js +28 -0
- package/build/browser/api/test/spt.test.js.map +1 -1
- package/build/browser/cli/main.js +145 -2
- package/build/browser/cli/main.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js +7 -5
- package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -1
- package/build/browser/index.js +5 -2
- package/build/browser/index.js.map +1 -1
- package/build/cjs/defineFunction-7ORD7HD4.cjs +72 -0
- package/build/cjs/defineFunction-7ORD7HD4.cjs.map +1 -0
- package/build/cjs/index.cjs +198 -7
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +186 -153
- package/build/esm/api/defineAction.js +6 -0
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineFunction.js +61 -0
- package/build/esm/api/defineFunction.js.map +1 -0
- package/build/esm/api/defineOntology.js +29 -0
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/object/ObjectTypeDatasourceDefinition.js.map +1 -1
- package/build/esm/api/test/objects.test.js +11 -2
- package/build/esm/api/test/objects.test.js.map +1 -1
- package/build/esm/api/test/spt.test.js +28 -0
- package/build/esm/api/test/spt.test.js.map +1 -1
- package/build/esm/cli/main.js +145 -2
- package/build/esm/cli/main.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js +7 -5
- package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -1
- package/build/esm/index.js +5 -2
- package/build/esm/index.js.map +1 -1
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineFunction.d.ts +19 -0
- package/build/types/api/defineFunction.d.ts.map +1 -0
- package/build/types/api/defineOntology.d.ts +5 -0
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts +4 -2
- package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts.map +1 -1
- package/build/types/cli/main.d.ts.map +1 -1
- package/build/types/index.d.ts +14 -6
- package/build/types/index.d.ts.map +1 -1
- package/package.json +7 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.16.0-beta.7
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f487a6a: Maker experimental
|
|
8
|
+
- acb4ed6: Support custom decimal types
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- @osdk/api@2.8.0-beta.11
|
|
13
|
+
- @osdk/generator-converters.ontologyir@2.8.0-beta.11
|
|
14
|
+
|
|
15
|
+
## 0.16.0-beta.6
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 963626f: Add function discovery support (TypeScript and Python) and generate intermediate OSDK from CLI for use by function definitions
|
|
20
|
+
- 972bda6: Support assumed markings for oac PSGs
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- @osdk/api@2.8.0-beta.10
|
|
25
|
+
- @osdk/generator-converters.ontologyir@2.8.0-beta.10
|
|
26
|
+
|
|
3
27
|
## 0.16.0-beta.5
|
|
4
28
|
|
|
5
29
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -550,6 +550,10 @@ function extractAllowedValuesFromPropertyType(type) {
|
|
|
550
550
|
};
|
|
551
551
|
default:
|
|
552
552
|
switch (type.type) {
|
|
553
|
+
case "decimal":
|
|
554
|
+
return {
|
|
555
|
+
type: "range"
|
|
556
|
+
};
|
|
553
557
|
case "marking":
|
|
554
558
|
return type.markingType === "CBAC" ? {
|
|
555
559
|
type: "cbacMarking"
|
|
@@ -572,6 +576,8 @@ function extractActionParameterType(pt) {
|
|
|
572
576
|
const typeType = pt.type;
|
|
573
577
|
if (typeof typeType === "object") {
|
|
574
578
|
switch (typeType.type) {
|
|
579
|
+
case "decimal":
|
|
580
|
+
return maybeAddList("decimal", pt);
|
|
575
581
|
case "marking":
|
|
576
582
|
return maybeAddList("marking", pt);
|
|
577
583
|
case "string":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","cloneDefinition","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDefInput","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"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 OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport { cloneDefinition } from \"./cloneDefinition.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport function defineAction(actionDefInput: ActionTypeDefinition): ActionType {\n const actionDef = cloneDefinition(actionDefInput);\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 if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\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\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, InterfacePropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => {\n let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\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 propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\n };\n },\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\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 targetParams.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: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (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 if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\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(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\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 case \"attachment\":\n return { type: \"attachment\" };\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 | InterfaceDefinedProperty\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 | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nexport function 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\nexport function convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\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 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\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): 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 properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || properties.includes(withoutNamespace(id)),\n `Property ${id} does not exist as a property on ${name}`,\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.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function 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\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","cloneDefinition","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDefInput","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"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 OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport { cloneDefinition } from \"./cloneDefinition.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport function defineAction(actionDefInput: ActionTypeDefinition): ActionType {\n const actionDef = cloneDefinition(actionDefInput);\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 if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\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\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, InterfacePropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => {\n let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\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 propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\n };\n },\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\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 targetParams.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: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (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 if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\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(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\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 case \"attachment\":\n return { type: \"attachment\" };\n default:\n switch (type.type) {\n case \"decimal\":\n return { type: \"range\" };\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 | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"decimal\":\n return maybeAddList(\"decimal\", pt);\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 | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nexport function 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\nexport function convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\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 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\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): 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 properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || properties.includes(withoutNamespace(id)),\n `Property ${id} does not exist as a property on ${name}`,\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.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function 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\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { OntologyIrToFullMetadataConverter } from "@osdk/generator-converters.ontologyir";
|
|
18
|
+
import { consola } from "consola";
|
|
19
|
+
import * as path from "node:path";
|
|
20
|
+
|
|
21
|
+
// Type definitions for optional function discovery dependencies
|
|
22
|
+
|
|
23
|
+
// Lazy-loaded function discovery module
|
|
24
|
+
let cachedFunctionDiscoverer = null;
|
|
25
|
+
async function loadFunctionDiscoverer() {
|
|
26
|
+
if (cachedFunctionDiscoverer != null) {
|
|
27
|
+
return cachedFunctionDiscoverer;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const module = await import(/* @vite-ignore */"@foundry/functions-typescript-osdk-discovery");
|
|
31
|
+
cachedFunctionDiscoverer = module.FunctionDiscoverer;
|
|
32
|
+
return cachedFunctionDiscoverer;
|
|
33
|
+
} catch (e) {
|
|
34
|
+
consola.warn("Failed to load @foundry/functions-typescript-osdk-discovery:", e instanceof Error ? e.message : e);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function extractFunctionEntries(discoveredFunctions) {
|
|
39
|
+
return discoveredFunctions.map(fn => {
|
|
40
|
+
if (fn.locator.type !== "typescriptOsdk") {
|
|
41
|
+
throw new Error(`OAC functions must be TypeScript, got type: ${fn.locator.type}`);
|
|
42
|
+
}
|
|
43
|
+
const locator = fn.locator;
|
|
44
|
+
return [locator.typescriptOsdk.functionName, fn];
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export async function generateFunctionsIr(rootDir, configPath, entityMappings) {
|
|
48
|
+
const functionsDiscoverer = await loadFunctionDiscoverer();
|
|
49
|
+
if (!functionsDiscoverer) {
|
|
50
|
+
throw new Error("Function discovery requires @foundry/functions-typescript-osdk-discovery to be installed");
|
|
51
|
+
}
|
|
52
|
+
const tsConfigPath = configPath ?? path.join(rootDir, "tsconfig.json");
|
|
53
|
+
const program = OntologyIrToFullMetadataConverter.createProgram(tsConfigPath, rootDir);
|
|
54
|
+
const functionsDir = path.join(rootDir, "functions");
|
|
55
|
+
const fd = new functionsDiscoverer(program, rootDir, functionsDir, entityMappings);
|
|
56
|
+
const functions = fd.discover();
|
|
57
|
+
return {
|
|
58
|
+
functionsBlockDataV1: Object.fromEntries(extractFunctionEntries(functions.discoveredFunctions))
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=defineFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineFunction.js","names":["OntologyIrToFullMetadataConverter","consola","path","cachedFunctionDiscoverer","loadFunctionDiscoverer","module","FunctionDiscoverer","e","warn","Error","message","extractFunctionEntries","discoveredFunctions","map","fn","locator","type","typescriptOsdk","functionName","generateFunctionsIr","rootDir","configPath","entityMappings","functionsDiscoverer","tsConfigPath","join","program","createProgram","functionsDir","fd","functions","discover","functionsBlockDataV1","Object","fromEntries"],"sources":["defineFunction.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 { OntologyIrToFullMetadataConverter } from \"@osdk/generator-converters.ontologyir\";\nimport { consola } from \"consola\";\nimport * as path from \"node:path\";\nimport type * as ts from \"typescript\";\n\nexport interface FunctionIrBlockData {\n functionsBlockDataV1: Record<string, unknown>;\n}\n\n// Type definitions for optional function discovery dependencies\ntype IFunctionDiscoverer = new(\n program: ts.Program,\n entryPointPath: string,\n fullFilePath: string,\n entityMappings?: IEntityMetadataMapping,\n) => {\n discover(): {\n discoveredFunctions: IDiscoveredFunction[];\n diagnostics?: unknown;\n };\n};\n\ninterface IDiscoveredFunction {\n locator:\n | { type: \"typescriptOsdk\"; typescriptOsdk: { functionName: string } }\n | { type: string };\n [key: string]: unknown;\n}\n\nexport interface IEntityMetadataMapping {\n ontologies: Record<\n string,\n {\n objectTypes: Record<\n string,\n {\n objectTypeId: string;\n primaryKey: { propertyId: string };\n propertyTypes: Record<string, { propertyId: string }>;\n linkTypes: Record<string, unknown>;\n }\n >;\n interfaceTypes: Record<string, unknown>;\n }\n >;\n}\n\n// Lazy-loaded function discovery module\nlet cachedFunctionDiscoverer: IFunctionDiscoverer | null = null;\n\nasync function loadFunctionDiscoverer(): Promise<IFunctionDiscoverer | null> {\n if (cachedFunctionDiscoverer != null) {\n return cachedFunctionDiscoverer;\n }\n try {\n const modulePath = \"@foundry/functions-typescript-osdk-discovery\";\n const module = await import(/* @vite-ignore */ modulePath);\n cachedFunctionDiscoverer = module.FunctionDiscoverer;\n return cachedFunctionDiscoverer;\n } catch (e: unknown) {\n consola.warn(\n \"Failed to load @foundry/functions-typescript-osdk-discovery:\",\n e instanceof Error ? e.message : e,\n );\n return null;\n }\n}\n\nfunction extractFunctionEntries(\n discoveredFunctions: IDiscoveredFunction[],\n): Array<[string, IDiscoveredFunction]> {\n return discoveredFunctions.map((fn: IDiscoveredFunction) => {\n if (fn.locator.type !== \"typescriptOsdk\") {\n throw new Error(\n `OAC functions must be TypeScript, got type: ${fn.locator.type}`,\n );\n }\n const locator = fn.locator as {\n typescriptOsdk: { functionName: string };\n };\n return [locator.typescriptOsdk.functionName, fn];\n });\n}\n\nexport async function generateFunctionsIr(\n rootDir: string,\n configPath?: string,\n entityMappings?: IEntityMetadataMapping,\n): Promise<FunctionIrBlockData> {\n const functionsDiscoverer = await loadFunctionDiscoverer();\n if (!functionsDiscoverer) {\n throw new Error(\n \"Function discovery requires @foundry/functions-typescript-osdk-discovery to be installed\",\n );\n }\n\n const tsConfigPath = configPath ?? path.join(rootDir, \"tsconfig.json\");\n const program = OntologyIrToFullMetadataConverter.createProgram(\n tsConfigPath,\n rootDir,\n );\n const functionsDir = path.join(rootDir, \"functions\");\n const fd = new functionsDiscoverer(\n program,\n rootDir,\n functionsDir,\n entityMappings,\n );\n const functions = fd.discover();\n\n return {\n functionsBlockDataV1: Object.fromEntries(\n extractFunctionEntries(functions.discoveredFunctions),\n ),\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,iCAAiC,QAAQ,uCAAuC;AACzF,SAASC,OAAO,QAAQ,SAAS;AACjC,OAAO,KAAKC,IAAI,MAAM,WAAW;;AAOjC;;AAsCA;AACA,IAAIC,wBAAoD,GAAG,IAAI;AAE/D,eAAeC,sBAAsBA,CAAA,EAAwC;EAC3E,IAAID,wBAAwB,IAAI,IAAI,EAAE;IACpC,OAAOA,wBAAwB;EACjC;EACA,IAAI;IAEF,MAAME,MAAM,GAAG,MAAM,MAAM,CAAC,kBADT,8CACsC,CAAC;IAC1DF,wBAAwB,GAAGE,MAAM,CAACC,kBAAkB;IACpD,OAAOH,wBAAwB;EACjC,CAAC,CAAC,OAAOI,CAAU,EAAE;IACnBN,OAAO,CAACO,IAAI,CACV,8DAA8D,EAC9DD,CAAC,YAAYE,KAAK,GAAGF,CAAC,CAACG,OAAO,GAAGH,CACnC,CAAC;IACD,OAAO,IAAI;EACb;AACF;AAEA,SAASI,sBAAsBA,CAC7BC,mBAA0C,EACJ;EACtC,OAAOA,mBAAmB,CAACC,GAAG,CAAEC,EAAuB,IAAK;IAC1D,IAAIA,EAAE,CAACC,OAAO,CAACC,IAAI,KAAK,gBAAgB,EAAE;MACxC,MAAM,IAAIP,KAAK,CACb,+CAA+CK,EAAE,CAACC,OAAO,CAACC,IAAI,EAChE,CAAC;IACH;IACA,MAAMD,OAAO,GAAGD,EAAE,CAACC,OAElB;IACD,OAAO,CAACA,OAAO,CAACE,cAAc,CAACC,YAAY,EAAEJ,EAAE,CAAC;EAClD,CAAC,CAAC;AACJ;AAEA,OAAO,eAAeK,mBAAmBA,CACvCC,OAAe,EACfC,UAAmB,EACnBC,cAAuC,EACT;EAC9B,MAAMC,mBAAmB,GAAG,MAAMnB,sBAAsB,CAAC,CAAC;EAC1D,IAAI,CAACmB,mBAAmB,EAAE;IACxB,MAAM,IAAId,KAAK,CACb,0FACF,CAAC;EACH;EAEA,MAAMe,YAAY,GAAGH,UAAU,IAAInB,IAAI,CAACuB,IAAI,CAACL,OAAO,EAAE,eAAe,CAAC;EACtE,MAAMM,OAAO,GAAG1B,iCAAiC,CAAC2B,aAAa,CAC7DH,YAAY,EACZJ,OACF,CAAC;EACD,MAAMQ,YAAY,GAAG1B,IAAI,CAACuB,IAAI,CAACL,OAAO,EAAE,WAAW,CAAC;EACpD,MAAMS,EAAE,GAAG,IAAIN,mBAAmB,CAChCG,OAAO,EACPN,OAAO,EACPQ,YAAY,EACZN,cACF,CAAC;EACD,MAAMQ,SAAS,GAAGD,EAAE,CAACE,QAAQ,CAAC,CAAC;EAE/B,OAAO;IACLC,oBAAoB,EAAEC,MAAM,CAACC,WAAW,CACtCvB,sBAAsB,CAACmB,SAAS,CAAClB,mBAAmB,CACtD;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -573,4 +573,33 @@ addDependency("${namespaceNoDot}", new URL(import.meta.url).pathname);
|
|
|
573
573
|
export function addNamespaceIfNone(apiName) {
|
|
574
574
|
return apiName.includes(".") ? apiName : namespace + apiName;
|
|
575
575
|
}
|
|
576
|
+
export function initializeOntologyState(ns) {
|
|
577
|
+
namespace = ns;
|
|
578
|
+
dependencies = {};
|
|
579
|
+
ontologyDefinition = {
|
|
580
|
+
OBJECT_TYPE: {},
|
|
581
|
+
ACTION_TYPE: {},
|
|
582
|
+
LINK_TYPE: {},
|
|
583
|
+
INTERFACE_TYPE: {},
|
|
584
|
+
SHARED_PROPERTY_TYPE: {},
|
|
585
|
+
VALUE_TYPE: {}
|
|
586
|
+
};
|
|
587
|
+
importedTypes = {
|
|
588
|
+
SHARED_PROPERTY_TYPE: {},
|
|
589
|
+
OBJECT_TYPE: {},
|
|
590
|
+
ACTION_TYPE: {},
|
|
591
|
+
LINK_TYPE: {},
|
|
592
|
+
INTERFACE_TYPE: {},
|
|
593
|
+
VALUE_TYPE: {}
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
export function getOntologyDefinition() {
|
|
597
|
+
return ontologyDefinition;
|
|
598
|
+
}
|
|
599
|
+
export function getImportedTypes() {
|
|
600
|
+
return importedTypes;
|
|
601
|
+
}
|
|
602
|
+
export function getNamespace() {
|
|
603
|
+
return namespace;
|
|
604
|
+
}
|
|
576
605
|
//# sourceMappingURL=defineOntology.js.map
|