@osdk/maker 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.38.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 90c415f: Support interface link actions
8
+
3
9
  ## 0.37.0
4
10
 
5
11
  ### Minor Changes
@@ -76,6 +76,12 @@ export function defineAction(actionDefInput) {
76
76
  !Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(spt) ? process.env.NODE_ENV !== "production" ? invariant(false, `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`) : invariant(false) : void 0;
77
77
  });
78
78
  }
79
+ if (rule.type === "addInterfaceLinkRuleV2") {
80
+ const ilr = rule.addInterfaceLinkRuleV2;
81
+ const interfaceType = ontologyDefinition.INTERFACE_TYPE[ilr.interfaceTypeRid] ?? importedTypes.INTERFACE_TYPE[ilr.interfaceTypeRid];
82
+ !(interfaceType !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Interface type ${ilr.interfaceTypeRid} does not exist`) : invariant(false) : void 0;
83
+ !interfaceType.links.some(link => link.metadata.apiName === ilr.interfaceLinkTypeRid) ? process.env.NODE_ENV !== "production" ? invariant(false, `Interface link type ${ilr.interfaceLinkTypeRid} does not exist on interface ${ilr.interfaceTypeRid}`) : invariant(false) : void 0;
84
+ }
79
85
  });
80
86
  const fullAction = {
81
87
  ...actionDef,
@@ -393,6 +399,27 @@ function referencedParameterIds(actionDef) {
393
399
  }
394
400
  });
395
401
  break;
402
+ case "addInterfaceLinkRuleV2":
403
+ rule.addInterfaceLinkRuleV2.interfaceTypeRid = sanitize(rule.addInterfaceLinkRuleV2.interfaceTypeRid);
404
+ rule.addInterfaceLinkRuleV2.interfaceLinkTypeRid = sanitize(rule.addInterfaceLinkRuleV2.interfaceLinkTypeRid);
405
+ [...rule.addInterfaceLinkRuleV2.sourceObjects, ...rule.addInterfaceLinkRuleV2.targetObjects].forEach(ref => {
406
+ switch (ref.type) {
407
+ case "existingObject":
408
+ parameterIds.add(ref.existingObject);
409
+ break;
410
+ case "createdInterfaceObjectReferenceByPk":
411
+ parameterIds.add(ref.createdInterfaceObjectReferenceByPk.objectType);
412
+ parameterIds.add(ref.createdInterfaceObjectReferenceByPk.primaryKey);
413
+ break;
414
+ case "createdInterfaceObjectReferenceByUniqueIdentifier":
415
+ parameterIds.add(ref.createdInterfaceObjectReferenceByUniqueIdentifier.objectType);
416
+ break;
417
+ case "createdObjectReference":
418
+ // references another logic rule by LogicRuleRid, not a parameter
419
+ break;
420
+ }
421
+ });
422
+ break;
396
423
  }
397
424
  });
398
425
  return parameterIds;
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","cloneDefinition","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","getPropertyKeys","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","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","properties","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 type { EntityPermission } from \"./common/EntityPermission.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 { getPropertyKeys } from \"./object/objectPropertyHelpers.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectType } from \"./object/ObjectType.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 | ObjectType;\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 permission?: EntityPermission;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition | ObjectType;\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 permission?: EntityPermission;\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,\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 getPropertyKeys(def.objectType).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, ObjectPropertyType>\n | Record<string, ObjectPropertyType | 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;\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\nexport function 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 \"interfaceReference\":\n case \"interfaceReferenceList\":\n return { type: \"interfaceObjectQuery\" };\n case \"objectSetRid\":\n return { type: \"objectSetRid\" };\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,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n 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","getPropertyKeys","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","ilr","addInterfaceLinkRuleV2","links","link","metadata","interfaceLinkTypeRid","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","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","sourceObjects","targetObjects","ref","existingObject","createdInterfaceObjectReferenceByPk","primaryKey","createdInterfaceObjectReferenceByUniqueIdentifier","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","properties","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 type { EntityPermission } from \"./common/EntityPermission.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 { getPropertyKeys } from \"./object/objectPropertyHelpers.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectType } from \"./object/ObjectType.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 | ObjectType;\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 permission?: EntityPermission;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition | ObjectType;\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 permission?: EntityPermission;\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 if (rule.type === \"addInterfaceLinkRuleV2\") {\n const ilr = rule.addInterfaceLinkRuleV2;\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[ilr.interfaceTypeRid]\n ?? importedTypes.INTERFACE_TYPE[ilr.interfaceTypeRid];\n invariant(\n interfaceType !== undefined,\n `Interface type ${ilr.interfaceTypeRid} does not exist`,\n );\n invariant(\n interfaceType.links.some(link =>\n link.metadata.apiName === ilr.interfaceLinkTypeRid\n ),\n `Interface link type ${ilr.interfaceLinkTypeRid} does not exist on interface ${ilr.interfaceTypeRid}`,\n );\n }\n });\n\n const fullAction = {\n ...actionDef,\n 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 getPropertyKeys(def.objectType).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, ObjectPropertyType>\n | Record<string, ObjectPropertyType | 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;\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 case \"addInterfaceLinkRuleV2\":\n rule.addInterfaceLinkRuleV2.interfaceTypeRid = sanitize(\n rule.addInterfaceLinkRuleV2.interfaceTypeRid,\n );\n rule.addInterfaceLinkRuleV2.interfaceLinkTypeRid = sanitize(\n rule.addInterfaceLinkRuleV2.interfaceLinkTypeRid,\n );\n [\n ...rule.addInterfaceLinkRuleV2.sourceObjects,\n ...rule.addInterfaceLinkRuleV2.targetObjects,\n ].forEach(ref => {\n switch (ref.type) {\n case \"existingObject\":\n parameterIds.add(ref.existingObject);\n break;\n case \"createdInterfaceObjectReferenceByPk\":\n parameterIds.add(\n ref.createdInterfaceObjectReferenceByPk.objectType,\n );\n parameterIds.add(\n ref.createdInterfaceObjectReferenceByPk.primaryKey,\n );\n break;\n case \"createdInterfaceObjectReferenceByUniqueIdentifier\":\n parameterIds.add(\n ref.createdInterfaceObjectReferenceByUniqueIdentifier\n .objectType,\n );\n break;\n case \"createdObjectReference\":\n // references another logic rule by LogicRuleRid, not a parameter\n break;\n }\n });\n break;\n }\n });\n return parameterIds;\n}\n\nexport function 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 \"interfaceReference\":\n case \"interfaceReferenceList\":\n return { type: \"interfaceObjectQuery\" };\n case \"objectSetRid\":\n return { type: \"objectSetRid\" };\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,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId,\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,0BAA0B,QAAQ,2DAA2D;AAKtG,SAGEC,8BAA8B,QACzB,iCAAiC;AAUxC,SAASC,eAAe,QAAQ,sBAAsB;AAGtD,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,oBAAoB,QAAQ,mBAAmB;AACxD,SACEC,kBAAkB,EAClBC,aAAa,EACbC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,EACdC,gBAAgB,QACX,qBAAqB;AAC5B,SAASC,+BAA+B,QAAQ,gDAAgD;AAChG,SACEC,4BAA4B,EAG5BC,6BAA6B,QACxB,sCAAsC;AAE7C,SAASC,eAAe,QAAQ,mCAAmC;AAKnE,SACEC,QAAQ,QAEH,kCAAkC;AAEzC,OAAO,MAAMC,uBAA+B,GAAG,yBAAyB;AAExE,OAAO,MAAMC,iCAAyC,GACpD,iCAAiC;AAEnC,OAAO,MAAMC,uBAA+B,GAAG,yBAAyB;AAExE,OAAO,MAAMC,iCAAyC,GAAG,qBAAqB;AAE9E,OAAO,MAAMC,iCAAyC,GACpD,kCAAkC;AAgDpC,OAAO,SAASC,YAAYA,CAACC,cAAoC,EAAc;EAC7E,MAAMC,SAAS,GAAGrB,eAAe,CAACoB,cAAc,CAAC;EACjD,MAAME,OAAO,GAAGjB,SAAS,GAAGgB,SAAS,CAACC,OAAO;EAC7C,MAAMC,YAAY,GAAG,CAACF,SAAS,CAACG,UAAU,IAAI,EAAE,EAAEC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,CAAC;EAEhE,IACErB,kBAAkB,CAACL,sBAAsB,CAAC2B,WAAW,CAAC,CAACN,OAAO,CAAC,KACzDO,SAAS,EACf;IACA,MAAM,IAAIC,KAAK,CACb,4BAA4BT,SAAS,CAACC,OAAO,qBAC/C,CAAC;EACH;EACA,CACE,0BAA0B,CAACS,IAAI,CAACV,SAAS,CAACC,OAAO,CAAC,GAAAU,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpDrC,SAAS,QAEP,wBAAwBwB,SAAS,CAACC,OAAO,mDAAmD,IAF9FzB,SAAS;EAKT,MAAMsC,eAAe,GAAG,IAAIC,GAAG,CAACb,YAAY,CAAC;EAC7C,EACEY,eAAe,CAACE,IAAI,KAAKd,YAAY,CAACe,MAAM,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD9CrC,SAAS,QAEP,8BAA8B,IAFhCA,SAAS;EAKT,MAAM0C,oBAAoB,GAAGC,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAACrB,SAAS,CAAC,CAAC,CACvEsB,MAAM,CAACjB,CAAC,IAAI,CAACS,eAAe,CAACS,GAAG,CAAClB,CAAC,CAAC,CAAC;EACvC,EACEa,oBAAoB,CAACD,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADnCrC,SAAS,QAEP,cACEgD,IAAI,CAACC,SAAS,CAACP,oBAAoB,CAAC,kCACJ,IAJpC1C,SAAS;EAOT,MAAMkD,iBAAiB,GAAG,IAAIX,GAAG,CAACY,MAAM,CAACC,IAAI,CAAC5B,SAAS,CAAC6B,QAAQ,IAAI,EAAE,CAAC,CAAC;EACxE,MAAMC,2BAA2B,GAAG,CAAC9B,SAAS,CAAC+B,mBAAmB,IAAI,EAAE,EACrEC,OAAO,CACNC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAK,aAAa,GAAG,EAAE,GAAG,CAACD,CAAC,CAACE,SAAS,CACnD,CAAC,CAACb,MAAM,CAACc,GAAG,IAAI,CAACV,iBAAiB,CAACH,GAAG,CAACa,GAAG,CAAC,CAAC;EAC9C,EACEN,2BAA2B,CAACb,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1CrC,SAAS,QAEP,aAAasD,2BAA2B,uDAAuD,IAFjGtD,SAAS;EAKT,EACEwB,SAAS,CAACqC,KAAK,CAACpB,MAAM,GAAG,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5BrC,SAAS,QAEP,eAAewB,SAAS,CAACC,OAAO,oCAAoC,IAFtEzB,SAAS;EAITwB,SAAS,CAACqC,KAAK,CAACC,OAAO,CAACC,IAAI,IAAI;IAC9B,IAAIA,IAAI,CAACL,IAAI,KAAK,kBAAkB,EAAE;MACpC,CACEhC,YAAY,CAACsC,IAAI,CAAClC,EAAE,IAAIA,EAAE,KAAKiC,IAAI,CAACE,gBAAgB,CAACC,cAAc,CAAC,GAAA/B,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADtErC,SAAS,QAEP,0DAA0D,IAF5DA,SAAS;IAIX;IACA,IAAI+D,IAAI,CAACL,IAAI,KAAK,kBAAkB,EAAE;MACpC,CACEhC,YAAY,CAACsC,IAAI,CAAClC,EAAE,IAAIA,EAAE,KAAKiC,IAAI,CAACI,gBAAgB,CAACC,cAAc,CAAC,GAAAjC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADtErC,SAAS,QAEP,0DAA0D,IAF5DA,SAAS;IAIX;IACA,IAAI+D,IAAI,CAACL,IAAI,KAAK,qBAAqB,EAAE;MACvC;MACA,MAAMW,cAAc,GAAG7C,SAAS,CAACG,UAAU,CAAE2C,IAAI,CAACzC,CAAC,IACjDA,CAAC,CAACC,EAAE,KAAKiC,IAAI,CAACQ,mBAAmB,CAACC,gCACpC,CAAC;MACD,EACEH,cAAc,KAAKrC,SAAS,IAAI,OAAOqC,cAAc,CAACX,IAAI,KAAK,QAAQ,KACjEW,cAAc,CAACX,IAAI,CAACA,IAAI,KAAK,oBAAoB,IAChDW,cAAc,CAACX,IAAI,CAACA,IAAI,KAAK,wBAAwB,CAAC,IAAAvB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAH/DrC,SAAS,QAIP,qEAAqE,IAJvEA,SAAS;MAMT,MAAMyE,kBAAkB,GACtBJ,cAAc,CAACX,IAAI,CAACA,IAAI,KAAK,oBAAoB,GAC7CW,cAAc,CAACX,IAAI,CAACe,kBAAkB,CAACC,gBAAgB,GACvDL,cAAc,CAACX,IAAI,CAACiB,sBAAsB,CAACD,gBAAgB;MACjE,EACEjE,kBAAkB,CAACmE,cAAc,CAACH,kBAAkB,CAAC,KAAKzC,SAAS,IAC9DzB,aAAa,CAACqE,cAAc,CAACH,kBAAkB,CAAC,KAAKzC,SAAS,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFrErC,SAAS,QAGP,kBAAkByE,kBAAkB,iBAAiB,IAHvDzE,SAAS;;MAMT;MACA,MAAM6E,aAAa,GACjBpE,kBAAkB,CAACmE,cAAc,CAACH,kBAAkB,CAAC;MACvDtB,MAAM,CAACC,IAAI,CAACW,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAAC,CAAChB,OAAO,CAChEiB,GAAG,IAAI;QACL,CACE5B,MAAM,CAACC,IAAI,CAACxC,+BAA+B,CAACiE,aAAa,CAAC,CAAC,CACxDG,QAAQ,CAACD,GAAG,CAAC,GAAA5C,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFlBrC,SAAS,QAGP,wBAAwB+E,GAAG,qCAAqCN,kBAAkB,EAAE,IAHtFzE,SAAS;MAKX,CACF,CAAC;IACH;IACA,IAAI+D,IAAI,CAACL,IAAI,KAAK,kBAAkB,EAAE;MACpC;MACA,MAAMmB,aAAa,GAAGpE,kBAAkB,CACrCmE,cAAc,CAACb,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,CAAC,IACpD3E,aAAa,CAACqE,cAAc,CAACb,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,CAAC;MACzE,EACEL,aAAa,KAAK7C,SAAS,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD7BrC,SAAS,QAEP,kBAAkB+D,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,iBAAiB,IAF3ElF,SAAS;;MAKT;MACAmD,MAAM,CAACC,IAAI,CAACW,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAAC,CAAChB,OAAO,CAACiB,GAAG,IAAI;QACrE,CACE5B,MAAM,CAACC,IAAI,CAACxC,+BAA+B,CAACiE,aAAa,CAAC,CAAC,CAACG,QAAQ,CAClED,GACF,CAAC,GAAA5C,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHrC,SAAS,QAIP,wBAAwB+E,GAAG,qCAAqCF,aAAa,CAACpD,OAAO,EAAE,IAJzFzB,SAAS;MAMX,CAAC,CAAC;IACJ;IACA,IAAI+D,IAAI,CAACL,IAAI,KAAK,wBAAwB,EAAE;MAC1C,MAAMyB,GAAG,GAAGpB,IAAI,CAACqB,sBAAsB;MACvC,MAAMP,aAAa,GACjBpE,kBAAkB,CAACmE,cAAc,CAACO,GAAG,CAACT,gBAAgB,CAAC,IAClDnE,aAAa,CAACqE,cAAc,CAACO,GAAG,CAACT,gBAAgB,CAAC;MACzD,EACEG,aAAa,KAAK7C,SAAS,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD7BrC,SAAS,QAEP,kBAAkBmF,GAAG,CAACT,gBAAgB,iBAAiB,IAFzD1E,SAAS;MAIT,CACE6E,aAAa,CAACQ,KAAK,CAACrB,IAAI,CAACsB,IAAI,IAC3BA,IAAI,CAACC,QAAQ,CAAC9D,OAAO,KAAK0D,GAAG,CAACK,oBAChC,CAAC,GAAArD,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHrC,SAAS,QAIP,uBAAuBmF,GAAG,CAACK,oBAAoB,gCAAgCL,GAAG,CAACT,gBAAgB,EAAE,IAJvG1E,SAAS;IAMX;EACF,CAAC,CAAC;EAEF,MAAMyF,UAAU,GAAG;IACjB,GAAGjE,SAAS;IACZC,OAAO;IACPiE,QAAQ,EAAElE,SAAS,CAACkE,QAAQ,IAAI;MAC9BC,sBAAsB,EAAE,EAAE;MAC1BC,mBAAmB,EAAE,EAAE;MACvBC,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE3F,sBAAsB,CAAC2B;EACjC,CAAe;EACfiE,2BAA2B,CAACP,UAAU,CAAC;EACvC/E,cAAc,CAAC+E,UAAU,CAAC;EAC1B,OAAOA,UAAU;AACnB;AAEA,OAAO,SAASQ,mBAAmBA,CACjCC,GAAiE,EACjEC,IAAY,EACZzC,IAAsB,EACb;EACT,IAAI,eAAe,IAAIwC,GAAG,EAAE;IAC1B,OAAQ/C,MAAM,CAACC,IAAI,CAACxC,+BAA+B,CAACsF,GAAG,CAACrB,aAAa,CAAC,CAAC,CACpEG,QAAQ,CAACmB,IAAI,CAAC,IACZ,CAAChD,MAAM,CAACC,IAAI,CAAC8C,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACpB,QAAQ,CAACmB,IAAI,CAAC,IAC3D,CAACnF,QAAQ,CAAC0C,IAAI,CAAC,IACf,CAACwC,GAAG,CAACG,kBAAkB,EAAErB,QAAQ,CAACmB,IAAI,CAAC;EAC9C;EACA,OACEpF,eAAe,CAACmF,GAAG,CAACI,UAAU,CAAC,CAACtB,QAAQ,CAACmB,IAAI,CAAC,IAC3C,CAAChD,MAAM,CAACC,IAAI,CAAC8C,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACpB,QAAQ,CAACmB,IAAI,CAAC,IAC3D,CAACnF,QAAQ,CAAC0C,IAAI,CAAC,IACf,CAACwC,GAAG,CAACG,kBAAkB,EAAErB,QAAQ,CAACmB,IAAI,CAAC;AAE9C;AAEA,OAAO,SAASI,gBAAgBA,CAC9BL,GAAiE,EACjEM,WAIyC,EACzCC,YAAyB,EACzBC,WAAqC,EACb;EACxB,MAAMC,YAAY,GAAGC,mBAAmB,CAACV,GAAG,EAAEO,YAAY,CAAC;EAC3D,OAAO,CACL,GAAGE,YAAY,EACf,GAAGhE,KAAK,CAACC,IAAI,CAAC6D,YAAY,CAAC,CAAC7E,GAAG,CAC7BE,EAAE,IAAI;IACJ,IAAI+E,gBAAgB;IACpB,IAAI/E,EAAE,IAAI0E,WAAW,EAAE;MACrBK,gBAAgB,GAAG,oBAAoB,IAAIL,WAAW,CAAC1E,EAAE,CAAC,GACtD0E,WAAW,CAAC1E,EAAE,CAAC,CAACgF,kBAAkB,GAClCN,WAAW,CAAC1E,EAAE,CAAC;IACrB;IACA,OAAO;MACLA,EAAE;MACFiF,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,EAAEiF,WAAW,IACrDF,gBAAgB,EAAEE,WAAW,IAC7B1G,oBAAoB,CAACyB,EAAE,CAAC;MAC7B4B,IAAI,EAAEwC,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,EAAEmF,mBAAmB,IACtDC,0BAA0B,CAACL,gBAAiB,CAAC;MAClDM,UAAU,EAAGjB,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,KAAKE,SAAS,GACvD;QACA,GAAGkE,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC;QACnCsF,aAAa,EAAElB,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,CAACsF,aAAa,KACvDlB,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,CAACmF,mBAAmB,GACpDI,2CAA2C,CAC3CnB,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,CAACmF,mBACnC,CAAC,GACCK,oCAAoC,CACpCT,gBAAgB,CAAEnD,IACpB,CAAC,CAAC;QACN6D,QAAQ,EAAErB,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,CAACyF,QAAQ,IAC7CV,gBAAgB,EAAEW,WAAW,EAAEC,OAAO,IACrC;MACT,CAAC,GACC;QACAF,QAAQ,EAAGV,gBAAgB,CAAEa,KAAK,IAAI,KAAK,GACvC;UACAC,UAAU,EAAEd,gBAAgB,CAAEW,WAAW,EACnCI,kBAAkB,GACpB;YAAEC,GAAG,EAAE;UAAE,CAAC,GACV,CAAC;QACP,CAAC,GACCnB,WAAW,GAAG5E,EAAE,CAAC,IACd+E,gBAAgB,EAAEW,WAAW,EAAEC,OAAO,IACtC,KAAK;QACZL,aAAa,EAAEE,oCAAoC,CACjDT,gBAAgB,EAAEnD,IACpB;MACF,CAAC;MACHoE,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,EAAEgG,YAAY;MAC5DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,EAAEiG,WAAW;MAC1DC,UAAU,EAAE9B,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,EAAEkG;IAChD,CAAC;EACH,CACF,CAAC,CACF;AACH;AAEA,SAASpB,mBAAmBA,CAC1BV,GAAiE,EACjEO,YAAyB,EACD;EACxB,MAAME,YAAoC,GAAG,EAAE;EAC/CF,YAAY,CAAC3C,OAAO,CAACqC,IAAI,IAAI;IAC3B,IAAIA,IAAI,KAAKlF,uBAAuB,EAAE;MACpC0F,YAAY,CAACsB,IAAI,CAAC;QAChBnG,EAAE,EAAEb,uBAAuB;QAC3B8F,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEY,WAAW,IACvD,eAAe;QACpBrD,IAAI,EAAG,OAAOwC,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAIrB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,GAC/D;UACA7D,IAAI,EAAE,qBAAqB;UAC3BwE,mBAAmB,EAAE;YAAEC,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAE7E;UAAQ;QAC/D,CAAC,GACC;UACAiC,IAAI,EAAE,iBAAiB;UACvB0E,eAAe,EAAE;YAAED,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAE7E;UAAQ;QAC3D,CAAC;QACH0F,UAAU,EAAE;UACV,GAAGjB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC;UACrCiB,aAAa,EAAE;YAAE1D,IAAI,EAAE;UAAc,CAAC;UACtC6D,QAAQ,EAAErB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,IAAI;QAC5D,CAAC;QACDO,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE2B,YAAY;QAC9DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE4B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAACpH,uBAAuB,CAAC;IAC9C;IACA,IAAIkF,IAAI,KAAKjF,iCAAiC,EAAE;MAC9CyF,YAAY,CAACsB,IAAI,CAAC;QAChBnG,EAAE,EAAEZ,iCAAiC;QACrC6F,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEY,WAAW,IACvD,yBAAyB;QAC9BrD,IAAI,EAAE;UACJA,IAAI,EAAE,iBAAiB;UACvB0E,eAAe,EAAE;YACfD,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAE7E,OAAO;YACrC6G,uBAAuB,EAAE,EAAE,kBAAkB,IAAIpC,GAAG,CAAC,GACjD;cACAxC,IAAI,EAAE,eAAe;cACrB6E,aAAa,EAAE,CAAC;YAClB,CAAC,GACErC,GAAG,CAACsC,gBAAgB,KAAK,eAAe,GACzC;cACA9E,IAAI,EAAE,eAAe;cACrB6E,aAAa,EAAE,CAAC;YAClB,CAAC,GACC;cACA7E,IAAI,EAAE,WAAW;cACjB+E,SAAS,EAAE,CAAC;YACd;UACJ;QACF,CAAC;QACDtB,UAAU,EAAE;UACV,GAAGjB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC;UACrCiB,aAAa,EAAE;YAAE1D,IAAI,EAAE;UAAc,CAAC;UACtC6D,QAAQ,EAAErB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,IAAI;QAC5D,CAAC;QACDO,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE2B,YAAY;QAC9DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE4B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAACnH,iCAAiC,CAAC;IACxD;IACA,IAAIiF,IAAI,KAAKhF,uBAAuB,IAAI,EAAE,eAAe,IAAI+E,GAAG,CAAC,EAAE;MACjES,YAAY,CAACsB,IAAI,CAAC;QAChBnG,EAAE,EAAEX,uBAAuB;QAC3B4F,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEY,WAAW,IACvD,eAAe;QACpBrD,IAAI,EAAG,OAAOwC,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAIrB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,GAC/D;UACA7D,IAAI,EAAE,qBAAqB;UAC3BwE,mBAAmB,EAAE;YAAEC,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAE7E;UAAQ;QAC/D,CAAC,GACC;UACAiC,IAAI,EAAE,iBAAiB;UACvB0E,eAAe,EAAE;YAAED,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAE7E;UAAQ;QAC3D,CAAC;QACH0F,UAAU,EAAE;UACV,GAAGjB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC;UACrCiB,aAAa,EAAE;YAAE1D,IAAI,EAAE;UAAc,CAAC;UACtC6D,QAAQ,EAAErB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,IAAI;QAC5D,CAAC;QACDO,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE2B,YAAY;QAC9DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE4B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAClH,uBAAuB,CAAC;IAC9C;IACA,IAAIgF,IAAI,KAAK/E,iCAAiC,IAAI,eAAe,IAAI8E,GAAG,EAAE;MACxES,YAAY,CAACsB,IAAI,CAAC;QAChBnG,EAAE,EAAEV,iCAAiC;QACrC2F,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEY,WAAW,IACvD,uBAAuB;QAC5BrD,IAAI,EAAG,OAAOwC,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAIrB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,GAC/D;UACA7D,IAAI,EAAE,qBAAqB;UAC3BwE,mBAAmB,EAAE;YAAEC,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAE7E;UAAQ;QAC/D,CAAC,GACC;UACAiC,IAAI,EAAE,qBAAqB;UAC3BgF,mBAAmB,EAAE;YACnBC,iBAAiB,EAAE,CAACzC,GAAG,CAACrB,aAAa,CAACpD,OAAO;UAC/C;QACF,CAAC;QACH0F,UAAU,EAAE;UACV,GAAGjB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC;UACrCoB,QAAQ,EAAE,IAAI;UACdH,aAAa,EAAElB,GAAG,CAACI,UAAU,KAAKtE,SAAS,GACvC;YACA0B,IAAI,EAAE,qBAAqB;YAC3BkF,cAAc,EAAE,CAAC1C,GAAG,CAACrB,aAAa,CAACpD,OAAO;UAC5C,CAAC,GACC;YACAiC,IAAI,EAAE,OAAO;YACbmF,KAAK,EAAE,CAAC;cACNC,KAAK,EAAE5C,GAAG,CAACI,UAAU,CAACS,WAAW;cACjCgC,KAAK,EAAE;gBACLrF,IAAI,EAAE,YAAY;gBAClB4C,UAAU,EAAE;kBAAE6B,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAC7E;gBAAQ;cACrD;YACF,CAAC;UACH;QACJ,CAAC;QACDqG,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE2B,YAAY;QAC9DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE4B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAACjH,iCAAiC,CAAC;IACxD;IACA,IAAI+E,IAAI,KAAK9E,iCAAiC,IAAI,eAAe,IAAI6E,GAAG,EAAE;MACxES,YAAY,CAACsB,IAAI,CAAC;QAChBnG,EAAE,EAAET,iCAAiC;QACrC0F,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEY,WAAW,IACvD,uBAAuB;QAC5BrD,IAAI,EAAG,OAAOwC,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAIrB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,GAC/D;UACA7D,IAAI,EAAE,wBAAwB;UAC9BiB,sBAAsB,EAAE;YACtBD,gBAAgB,EAAEwB,GAAG,CAACrB,aAAa,CAACpD;UACtC;QACF,CAAC,GACC;UACAiC,IAAI,EAAE,oBAAoB;UAC1Be,kBAAkB,EAAE;YAClBC,gBAAgB,EAAEwB,GAAG,CAACrB,aAAa,CAACpD;UACtC;QACF,CAAC;QACH0F,UAAU,EAAE;UACV,GAAGjB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC;UACrCoB,QAAQ,EAAE,IAAI;UACdH,aAAa,EAAElB,GAAG,CAACI,UAAU,KAAKtE,SAAS,GACvC;YAAE0B,IAAI,EAAE;UAAuB,CAAC,GAChC;YACAA,IAAI,EAAE,OAAO;YACbmF,KAAK,EAAE,CAAC;cACNC,KAAK,EAAE5C,GAAG,CAACI,UAAU,CAACS,WAAW;cACjCgC,KAAK,EAAE;gBACLrF,IAAI,EAAE,YAAY;gBAClB4C,UAAU,EAAE;kBAAE6B,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAC7E;gBAAQ;cACrD;YACF,CAAC;UACH;QACJ,CAAC;QACDqG,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE2B,YAAY;QAC9DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE4B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAChH,iCAAiC,CAAC;IACxD;IACA,IAAI8E,IAAI,KAAKhF,uBAAuB,IAAI,eAAe,IAAI+E,GAAG,EAAE;MAC9DS,YAAY,CAACsB,IAAI,CAAC;QAChBnG,EAAE,EAAEX,uBAAuB;QAC3B4F,WAAW,EAAEb,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEY,WAAW,IACvD,eAAe;QACpBrD,IAAI,EAAG,OAAOwC,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAIrB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAEoB,QAAQ,GAC/D;UACA7D,IAAI,EAAE,wBAAwB;UAC9BiB,sBAAsB,EAAE;YACtBD,gBAAgB,EAAEwB,GAAG,CAACrB,aAAa,CAACpD;UACtC;QACF,CAAC,GACC;UACAiC,IAAI,EAAE,oBAAoB;UAC1Be,kBAAkB,EAAE;YAClBC,gBAAgB,EAAEwB,GAAG,CAACrB,aAAa,CAACpD;UACtC;QACF,CAAC;QACH0F,UAAU,EAAE;UACV,GAAGjB,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC;UACrCoB,QAAQ,EAAE,IAAI;UACdH,aAAa,EAAElB,GAAG,CAACI,UAAU,KAAKtE,SAAS,GACvC;YAAE0B,IAAI,EAAE;UAAuB,CAAC,GAChC;YACAA,IAAI,EAAE,OAAO;YACbmF,KAAK,EAAE,CAAC;cACNC,KAAK,EAAE5C,GAAG,CAACI,UAAU,CAACS,WAAW;cACjCgC,KAAK,EAAE;gBACLrF,IAAI,EAAE,YAAY;gBAClB4C,UAAU,EAAE;kBAAE6B,YAAY,EAAEjC,GAAG,CAACI,UAAU,CAAC7E;gBAAQ;cACrD;YACF,CAAC;UACH;QACJ,CAAC;QACDqG,YAAY,EAAE5B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE2B,YAAY;QAC9DC,WAAW,EAAE7B,GAAG,CAACc,sBAAsB,GAAGb,IAAI,CAAC,EAAE4B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAClH,uBAAuB,CAAC;IAC9C;EACF,CAAC,CAAC;EACF,OAAOwF,YAAY;AACrB;AAEA,SAAS9D,sBAAsBA,CAC7BrB,SAA+B,EACb;EAClB,MAAME,YAA8B,GAAG,IAAIa,GAAG,CAAC,CAAC;;EAEhD;EACAY,MAAM,CAAC6F,MAAM,CAACxH,SAAS,CAAC6B,QAAQ,IAAI,CAAC,CAAC,CAAC,CACpCG,OAAO,CAAC3B,CAAC,IAAIA,CAAC,CAACF,UAAU,CAAC,CAACmC,OAAO,CAACmF,GAAG,IAAIvH,YAAY,CAACwH,GAAG,CAACD,GAAG,CAAC,CAAC;;EAEnE;EACA,CAACzH,SAAS,CAAC+B,mBAAmB,IAAI,EAAE,EAAEO,OAAO,CAACqF,IAAI,IAAI;IACpD,IAAIA,IAAI,CAACzF,IAAI,KAAK,aAAa,EAAE;MAC/BhC,YAAY,CAACwH,GAAG,CAACC,IAAI,CAACC,WAAW,CAAC;IACpC;EACF,CAAC,CAAC;;EAEF;EACA5H,SAAS,CAACqC,KAAK,CAACC,OAAO,CAACC,IAAI,IAAI;IAC9B;IACA,QAAQA,IAAI,CAACL,IAAI;MACf,KAAK,kBAAkB;QACrBK,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,GAAGmE,QAAQ,CAC/CtF,IAAI,CAACkB,gBAAgB,CAACC,gBACxB,CAAC;QACDxD,YAAY,CAACwH,GAAG,CAACnF,IAAI,CAACkB,gBAAgB,CAACqE,mBAAmB,CAAC;QAC3DnG,MAAM,CAACoG,OAAO,CAACxF,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAAC,CAAChB,OAAO,CAChE,CAAC,CAAC0F,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC/F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACwH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;UACA,OAAOrF,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAAC0E,CAAC,CAAC;UACpDzF,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAACuE,QAAQ,CAACG,CAAC,CAAC,CAAC,GAAGC,CAAC;QAC7D,CACF,CAAC;QACD;MACF,KAAK,qBAAqB;QACxB/H,YAAY,CAACwH,GAAG,CACdnF,IAAI,CAACQ,mBAAmB,CAACC,gCAC3B,CAAC;QACDrB,MAAM,CAACoG,OAAO,CAACxF,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAAC,CAAChB,OAAO,CACnE,CAAC,CAAC0F,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC/F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACwH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;UACA,OAAOrF,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAAC0E,CAAC,CAAC;UACvDzF,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAACuE,QAAQ,CAACG,CAAC,CAAC,CAAC,GAAGC,CAAC;QAChE,CACF,CAAC;QACD;MACF,KAAK,eAAe;QAClBtG,MAAM,CAACoG,OAAO,CAACxF,IAAI,CAAC2F,aAAa,CAACC,cAAc,CAAC,CAAC7F,OAAO,CAAC,CAAC,CAAC0F,CAAC,EAAEC,CAAC,CAAC,KAAK;UACpE,IAAIA,CAAC,CAAC/F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACwH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;QACF,CAAC,CAAC;QACF;MACF,KAAK,kBAAkB;QACrBjG,MAAM,CAACoG,OAAO,CAACxF,IAAI,CAACE,gBAAgB,CAAC0F,cAAc,CAAC,CAAC7F,OAAO,CAC1D,CAAC,CAAC0F,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC/F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACwH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;QACF,CACF,CAAC;QACD;MACF,KAAK,yBAAyB;QAC5BjG,MAAM,CAACoG,OAAO,CAACxF,IAAI,CAAC6F,uBAAuB,CAACD,cAAc,CAAC,CAAC7F,OAAO,CACjE,CAAC,CAAC0F,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC/F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACwH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;QACF,CACF,CAAC;QACD;MACF,KAAK,wBAAwB;QAC3BrF,IAAI,CAACqB,sBAAsB,CAACV,gBAAgB,GAAG2E,QAAQ,CACrDtF,IAAI,CAACqB,sBAAsB,CAACV,gBAC9B,CAAC;QACDX,IAAI,CAACqB,sBAAsB,CAACI,oBAAoB,GAAG6D,QAAQ,CACzDtF,IAAI,CAACqB,sBAAsB,CAACI,oBAC9B,CAAC;QACD,CACE,GAAGzB,IAAI,CAACqB,sBAAsB,CAACyE,aAAa,EAC5C,GAAG9F,IAAI,CAACqB,sBAAsB,CAAC0E,aAAa,CAC7C,CAAChG,OAAO,CAACiG,GAAG,IAAI;UACf,QAAQA,GAAG,CAACrG,IAAI;YACd,KAAK,gBAAgB;cACnBhC,YAAY,CAACwH,GAAG,CAACa,GAAG,CAACC,cAAc,CAAC;cACpC;YACF,KAAK,qCAAqC;cACxCtI,YAAY,CAACwH,GAAG,CACda,GAAG,CAACE,mCAAmC,CAAC3D,UAC1C,CAAC;cACD5E,YAAY,CAACwH,GAAG,CACda,GAAG,CAACE,mCAAmC,CAACC,UAC1C,CAAC;cACD;YACF,KAAK,mDAAmD;cACtDxI,YAAY,CAACwH,GAAG,CACda,GAAG,CAACI,iDAAiD,CAClD7D,UACL,CAAC;cACD;YACF,KAAK,wBAAwB;cAC3B;cACA;UACJ;QACF,CAAC,CAAC;QACF;IACJ;EACF,CAAC,CAAC;EACF,OAAO5E,YAAY;AACrB;AAEA,OAAO,SAAS2F,2CAA2CA,CACzD3D,IAAyB,EACK;EAC9B,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,QAAQA,IAAI,CAACA,IAAI;MACf,KAAK,iBAAiB;MACtB,KAAK,qBAAqB;QACxB,OAAO;UAAEA,IAAI,EAAE;QAAc,CAAC;MAChC,KAAK,oBAAoB;MACzB,KAAK,wBAAwB;QAC3B,OAAO;UAAEA,IAAI,EAAE;QAAuB,CAAC;MACzC,KAAK,cAAc;QACjB,OAAO;UAAEA,IAAI,EAAE;QAAe,CAAC;MACjC,KAAK,QAAQ;MACb,KAAK,YAAY;QACf,MAAM,IAAIzB,KAAK,CAAC,+BAA+B,CAAC;MAClD;QACE,MAAM,IAAIA,KAAK,CACb,+BAA+ByB,IAAI,CAACA,IAAI,+DAC1C,CAAC;IACL;EACF;EACA,QAAQA,IAAI;IACV,KAAK,SAAS;IACd,KAAK,aAAa;MAChB,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,SAAS;IACd,KAAK,aAAa;IAClB,KAAK,SAAS;IACd,KAAK,aAAa;IAClB,KAAK,QAAQ;IACb,KAAK,YAAY;IACjB,KAAK,MAAM;IACX,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAQ,CAAC;IAC1B,KAAK,WAAW;IAChB,KAAK,eAAe;IACpB,KAAK,MAAM;IACX,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,QAAQ;IACb,KAAK,YAAY;MACf,OAAO;QAAEA,IAAI,EAAE;MAAO,CAAC;IACzB,KAAK,SAAS;IACd,KAAK,aAAa;MAChB,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,UAAU;IACf,KAAK,cAAc;MACjB,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,gBAAgB;IACrB,KAAK,oBAAoB;MACvB,OAAO;QAAEA,IAAI,EAAE;MAAiB,CAAC;IACnC,KAAK,wBAAwB;IAC7B,KAAK,4BAA4B;MAC/B,OAAO;QAAEA,IAAI,EAAE;MAAyB,CAAC;IAC3C,KAAK,YAAY;IACjB,KAAK,gBAAgB;MACnB,OAAO;QAAEA,IAAI,EAAE;MAAa,CAAC;IAC/B;MACE,MAAM,IAAIzB,KAAK,CACb,+BAA+ByB,IAAI,+DACrC,CAAC;EACL;AACF;AAEA,SAAS4D,oCAAoCA,CAC3C5D,IAAsB,EACQ;EAC9B,QAAQA,IAAI;IACV,KAAK,SAAS;MACZ,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,MAAM;MACT,OAAO;QACLA,IAAI,EAAE,OAAO;QACbmE,GAAG,EAAE;UACHnE,IAAI,EAAE,aAAa;UACnB0G,WAAW,EAAE;YAAE1G,IAAI,EAAE,SAAS;YAAE2G,OAAO,EAAE;UAAE;QAC7C,CAAC;QACDC,GAAG,EAAE;UACH5G,IAAI,EAAE,aAAa;UACnB0G,WAAW,EAAE;YAAE1G,IAAI,EAAE,SAAS;YAAE2G,OAAO,EAAE;UAAI;QAC/C;MACF,CAAC;IACH,KAAK,WAAW;IAChB,KAAK,MAAM;MACT,OAAO;QAAE3G,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,MAAM;MACT,OAAO;QAAEA,IAAI,EAAE;MAAQ,CAAC;IAC1B,KAAK,OAAO;MACV,OAAO;QACLA,IAAI,EAAE,OAAO;QACbmE,GAAG,EAAE;UACHnE,IAAI,EAAE,aAAa;UACnB0G,WAAW,EAAE;YAAE1G,IAAI,EAAE,SAAS;YAAE2G,OAAO,EAAE;UAAE;QAC7C,CAAC;QACDC,GAAG,EAAE;UACH5G,IAAI,EAAE,aAAa;UACnB0G,WAAW,EAAE;YAAE1G,IAAI,EAAE,SAAS;YAAE2G,OAAO,EAAE;UAAM;QACjD;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QAAE3G,IAAI,EAAE;MAAO,CAAC;IACzB,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,gBAAgB;MACnB,OAAO;QAAEA,IAAI,EAAE;MAAiB,CAAC;IACnC,KAAK,eAAe;MAClB,OAAO;QAAEA,IAAI,EAAE;MAAyB,CAAC;IAC3C,KAAK,YAAY;MACf,OAAO;QAAEA,IAAI,EAAE;MAAa,CAAC;IAC/B;MACE,QAAQA,IAAI,CAACA,IAAI;QACf,KAAK,SAAS;UACZ,OAAO;YAAEA,IAAI,EAAE;UAAQ,CAAC;QAC1B,KAAK,SAAS;UACZ,OAAOA,IAAI,CAAC6G,WAAW,KAAK,MAAM,GAC9B;YAAE7G,IAAI,EAAE;UAAc,CAAC,GACvB;YAAEA,IAAI,EAAE;UAAmB,CAAC;QAClC,KAAK,QAAQ;UACX,OAAO;YAAEA,IAAI,EAAE;UAAO,CAAC;QACzB,KAAK,QAAQ;UACX,MAAM,IAAIzB,KAAK,CAAC,+BAA+B,CAAC;QAClD;UACE,MAAM,IAAIA,KAAK,CAAC,cAAc,CAAC;MACnC;MACA;EACJ;AACF;AAEA,SAASiF,0BAA0BA,CACjCsD,EAGoC,EACf;EACrB,MAAMC,QAAQ,GAAGD,EAAE,CAAC9G,IAAI;EACxB,IAAI,OAAO+G,QAAQ,KAAK,QAAQ,EAAE;IAChC,QAAQA,QAAQ,CAAC/G,IAAI;MACnB,KAAK,SAAS;QACZ,OAAOgH,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;MACpC,KAAK,SAAS;QACZ,OAAOE,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;MACpC,KAAK,QAAQ;QACX,OAAOE,YAAY,CAAC,QAAQ,EAAEF,EAAE,CAAC;MACnC,KAAK,QAAQ;QACX,MAAM,IAAIvI,KAAK,CAAC,+BAA+B,CAAC;MAClD;QACE,MAAM,IAAIA,KAAK,CAAC,cAAc,CAAC;IACnC;EACF;EACA,IACE,OAAOwI,QAAQ,KAAK,QAAQ,IAAIvK,8BAA8B,CAACuK,QAAQ,CAAC,EACxE;IACA,OAAOC,YAAY,CAACD,QAAQ,EAAED,EAAE,CAAC;EACnC;EACA,QAAQC,QAAQ;IACd,KAAK,MAAM;IACX,KAAK,OAAO;MACV,OAAOC,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;IACpC,KAAK,UAAU;MACb,OAAOE,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;IACpC,KAAK,OAAO;MACV,OAAOE,YAAY,CAAC,QAAQ,EAAEF,EAAE,CAAC;IACnC,KAAK,eAAe;MAClB,OAAOE,YAAY,CAAC,wBAAwB,EAAEF,EAAE,CAAC;IACnD;MACE,MAAM,IAAIvI,KAAK,CAAC,cAAc,CAAC;EACnC;AACF;AAEA,SAASyI,YAAYA,CACnBhH,IAAkC,EAClC8G,EAGoC,EACf;EACrB,OAASA,EAAE,CAAC9C,KAAK,IAAI,KAAK,GAAIhE,IAAI,GAAG,MAAM,GAAGA,IAAI;AACpD;AAEA,OAAO,SAASiH,KAAKA,CAAClH,CAAS,EAAU;EACvC,OAAOA,CAAC,CACLmH,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CACxCA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBC,WAAW,CAAC,CAAC;AAClB;AAEA,SAASxB,QAAQA,CAAC5F,CAAS,EAAU;EACnC,OAAOA,CAAC,CAACuB,QAAQ,CAAC,GAAG,CAAC,GAAGvB,CAAC,GAAGjD,SAAS,GAAGiD,CAAC;AAC5C;AAEA,OAAO,SAASqH,qBAAqBA,CACnCC,gBAAiD,EACjDC,gBAAoC,EACP;EAC7B,OAAOD,gBAAgB,CAACnJ,GAAG,CAACmC,IAAI,IAAI;IAClC,OAAO;MACLkH,SAAS,EAAEhL,0BAA0B,CAAC8D,IAAI,CAACkH,SAAS,EAAED,gBAAgB,CAAC;MACvEE,eAAe,EAAEnH,IAAI,CAACmH,eAAe,IAAI;QACvCC,cAAc,EAAE,4BAA4B;QAC5CC,WAAW,EAAE;MACf;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,SAASpF,2BAA2BA,CAACqF,MAAkB,EAAQ;EAC7D,MAAMC,gBAAgB,GAAG,IAAI/I,GAAG,CAAc,CAAC;EAC/C,MAAMgJ,YAA6C,GACjDF,MAAM,CAAC1J,UAAU,EAAE6J,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IACxCD,GAAG,CAACC,KAAK,CAAC5J,EAAE,CAAC,GAAG4J,KAAK;IACrB,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAoC,CAAC,IAAI,CAAC,CAAC;EACjD,MAAME,iBAAiB,GACrBN,MAAM,CAACO,iBAAiB,EAAEhK,GAAG,CAACE,EAAE,IAAIyJ,YAAY,CAACzJ,EAAE,CAAC,CAAC,IAAIuJ,MAAM,CAAC1J,UAAU;EAC5EgK,iBAAiB,EAAE7H,OAAO,CAAC4H,KAAK,IAAI;IAClCA,KAAK,CAACvE,UAAU,CAAC0E,oBAAoB,EAAE/H,OAAO,CAACgI,QAAQ,IAAI;MACzDC,0BAA0B,CACxBD,QAAQ,CAACb,SAAS,EAClBS,KAAK,CAAC5J,EAAE,EACRwJ,gBAAgB,EAChBD,MAAM,CAAC1J,UACT,CAAC;IACH,CAAC,CAAC;IACFqK,wBAAwB,CACtBN,KAAK,CAAC5J,EAAE,EACRwJ,gBAAgB,EAChBD,MAAM,CAAC1J,UAAU,EACjB+J,KAAK,CAAC5D,YACR,CAAC;IACDwD,gBAAgB,CAACpC,GAAG,CAACwC,KAAK,CAAC5J,EAAE,CAAC;EAChC,CAAC,CAAC;AACJ;AAEA,SAASiK,0BAA0BA,CACjCd,SAA8B,EAC9BgB,kBAA+B,EAC/BX,gBAAkC,EAClC3J,UAA8B,EACxB;EACN,QAAQsJ,SAAS,CAACvH,IAAI;IACpB,KAAK,WAAW;MACd,MAAMwI,eAAe,GAAGjB,SAAS,CAAC7B,WAAW;MAC7C,CACEzH,UAAU,EAAEqC,IAAI,CAACnC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKoK,eAAe,CAAC,GAAA/J,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADjDrC,SAAS,QAEP,0BAA0BiM,kBAAkB,qCAAqCC,eAAe,EAAE,IAFpGlM,SAAS;MAIT,EACEkM,eAAe,KAAKD,kBAAkB,IAAA9J,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADxCrC,SAAS,QAEP,0BAA0BiM,kBAAkB,wBAAwB,IAFtEjM,SAAS;MAIT,CACEsL,gBAAgB,CAACvI,GAAG,CAACmJ,eAAe,CAAC,GAAA/J,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADvCrC,SAAS,QAEP,0BAA0BiM,kBAAkB,mCAAmCC,eAAe,EAAE,IAFlGlM,SAAS;MAIT;IACF,KAAK,KAAK;MACR;MACA,IAAI,YAAY,IAAIiL,SAAS,EAAE;QAC7BA,SAAS,CAACkB,UAAU,CAACrI,OAAO,CAACsI,CAAC,IAC5BL,0BAA0B,CACxBK,CAAC,EACDH,kBAAkB,EAClBX,gBAAgB,EAChB3J,UACF,CACF,CAAC;MACH;MACA;IACF,KAAK,IAAI;MACP,IAAI,YAAY,IAAIsJ,SAAS,EAAE;QAC7BA,SAAS,CAACkB,UAAU,CAACrI,OAAO,CAACsI,CAAC,IAC5BL,0BAA0B,CACxBK,CAAC,EACDH,kBAAkB,EAClBX,gBAAgB,EAChB3J,UACF,CACF,CAAC;MACH;MACA;IACF,KAAK,YAAY;IACjB,KAAK,OAAO;IACZ,KAAK,KAAK;IACV,KAAK,UAAU;IACf,KAAK,OAAO;IACZ,KAAK,UAAU;IACf,KAAK,MAAM;MACT;IACF;MACE,MAAM,IAAIM,KAAK,CACb,uCAAuCgK,kBAAkB,EAC3D,CAAC;EACL;AACF;AAEA,SAASD,wBAAwBA,CAC/BC,kBAA+B,EAC/BX,gBAAkC,EAClC3J,UAA8B,EAC9BmG,YAAyC,EACnC;EACN,IAAI,CAACA,YAAY,EAAE;EACnB,QAAQA,YAAY,CAACpE,IAAI;IACvB,KAAK,8BAA8B;MACjC,CACE/B,UAAU,EAAEqC,IAAI,CAACnC,CAAC,IAChBA,CAAC,CAACC,EAAE,KAAKgG,YAAY,CAACuE,4BAA4B,CAACjD,WACrD,CAAC,GAAAjH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHrC,SAAS,QAIP,+BAA+BiM,kBAAkB,qCAAqCnE,YAAY,CAACuE,4BAA4B,CAACjD,WAAW,EAAE,IAJ/IpJ,SAAS;MAMT,CACEsL,gBAAgB,CAACvI,GAAG,CAClB+E,YAAY,CAACuE,4BAA4B,CAACjD,WAC5C,CAAC,GAAAjH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHrC,SAAS,QAIP,+BAA+BiM,kBAAkB,mCAAmCnE,YAAY,CAACuE,4BAA4B,CAACjD,WAAW,EAAE,IAJ7IpJ,SAAS;MAMT;IACF,KAAK,aAAa;MAChB,EACE8H,YAAY,CAACsC,WAAW,CAAC1G,IAAI,KACvB/B,UAAU,EAAE2C,IAAI,CAACzC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKmK,kBAAkB,CAAC,EAAEvI,IAAI,IAAAvB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFhErC,SAAS,QAGP,sCAAsCiM,kBAAkB,sBAAsB,IAHhFjM,SAAS;MAKT;IACF,KAAK,cAAc;IACnB,KAAK,iCAAiC;IACtC,KAAK,oBAAoB;IACzB,KAAK,0BAA0B;IAC/B,KAAK,qBAAqB;IAC1B,KAAK,UAAU;MACb;IACF;MACE,MAAM,IAAIiC,KAAK,CACb,4CAA4CgK,kBAAkB,EAChE,CAAC;EACL;AACF;AAEA,OAAO,SAASK,wBAAwBA,CACtCpG,GAAiE,EACjEqG,UAAyB,EACzBpG,IAAY,EACN;EACN;EACA,CACE,GAAGhD,MAAM,CAACC,IAAI,CAAC8C,GAAG,CAACc,sBAAsB,IAAI,CAAC,CAAC,CAAC,CACjD,CAAClD,OAAO,CAAChC,EAAE,IAAI;IACd,EACEyK,UAAU,CAACvH,QAAQ,CAAClD,EAAE,CAAC,IAClByK,UAAU,CAACvH,QAAQ,CAAC1E,kBAAkB,CAACwB,EAAE,CAAC,CAAC,IAC1CoE,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,CAACmF,mBAAmB,KAAKjF,SAAU,IACpEwK,iBAAiB,CAAC1K,EAAE,CAAC,IAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAJ5BrC,SAAS,QAKP,aAAa8B,EAAE,oCAAoCqE,IAAI,yCAAyC,IALlGnG,SAAS;EAOX,CAAC,CAAC;EACF,CACE,GAAGmD,MAAM,CAACC,IAAI,CAAC8C,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,EAC9C,IAAGF,GAAG,CAACG,kBAAkB,IAAI,EAAE,EAChC,CAACvC,OAAO,CAAChC,EAAE,IAAI;IACd,EACEyK,UAAU,CAACvH,QAAQ,CAAClD,EAAE,CAAC,IAClByK,UAAU,CAACvH,QAAQ,CAAC1E,kBAAkB,CAACwB,EAAE,CAAC,CAAC,IAC3CyK,UAAU,CAACvH,QAAQ,CAACrE,gBAAgB,CAACmB,EAAE,CAAC,CAAC,IAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHhDrC,SAAS,QAIP,YAAY8B,EAAE,oCAAoCqE,IAAI,EAAE,IAJ1DnG,SAAS;EAMX,CAAC,CAAC;AACJ;;AAEA;AACA;AACA,OAAO,SAASyM,8BAA8BA,CAC5CvG,GAAiE,EACjEqG,UAAyB,EACzB5K,UAA6B,EAC7B+K,UAAmB,EACT;EACV,OAAO,CACL,IAAGA,UAAU,GAAG,CAACA,UAAU,CAAC,GAAG,EAAE,GACjC,GAAGvJ,MAAM,CAACC,IAAI,CAAC8C,GAAG,CAACc,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAClE,MAAM,CAAChB,EAAE,IACxDA,EAAE,KAAK4K,UACT,CAAC,EACD,GAAGH,UAAU,CAACzJ,MAAM,CAAChB,EAAE,IACrB,CAACoE,GAAG,CAACc,sBAAsB,GAAGlF,EAAE,CAAC,IAAIH,UAAU,CAACqC,IAAI,CAACnC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKA,EAAE,CACvE,CAAC,CACF;AACH;AAEA,OAAO,SAAS6K,yBAAyBA,CACvCf,iBAA2B,EAC3BnF,YAAyB,EACzBmG,aAAqB,EACf;EACN,MAAMC,WAAW,GAAG,IAAItK,GAAG,CAACqJ,iBAAiB,CAAC;EAC9C,MAAMkB,iBAAiB,GAAG,CAAC,GAAGrG,YAAY,CAAC,CAAC3D,MAAM,CAChD4I,KAAK,IAAI,CAACmB,WAAW,CAAC9J,GAAG,CAAC2I,KAAK,CACjC,CAAC;EACD,MAAMqB,oBAAoB,GAAGnB,iBAAiB,CAAC9I,MAAM,CAAC4I,KAAK,IACzD,CAACjF,YAAY,CAAC1D,GAAG,CAAC2I,KAAK,CACzB,CAAC;EACD,EACEqB,oBAAoB,CAACtK,MAAM,KAAK,CAAC,IAC5BqK,iBAAiB,CAACrK,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFrCrC,SAAS,QAGP,iCAAiC4M,aAAa,4EAA4EG,oBAAoB,uCAAuCD,iBAAiB,GAAG,IAH3M9M,SAAS;AAKX;AAEA,OAAO,SAASwM,iBAAiBA,CAACpD,WAAmB,EAAW;EAC9D,OAAOA,WAAW,KAAKnI,uBAAuB,IACzCmI,WAAW,KAAKlI,iCAAiC,IACjDkI,WAAW,KAAKhI,iCAAiC,IACjDgI,WAAW,KAAK/H,iCAAiC;AACxD;AAEA,OAAO,SAAS2L,8BAA8BA,CAC5C9G,GAAsC,EAChC;EACNA,GAAG,CAACc,sBAAsB,GAAG7D,MAAM,CAAC8J,WAAW,CAC7C9J,MAAM,CAACoG,OAAO,CAACrD,GAAG,CAACc,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAC7CpF,GAAG,CAAC,CACH,CAACE,EAAE,EAAEoL,MAAM,CAAC,KACT,CAACC,yBAAyB,CAACjH,GAAG,EAAEpE,EAAE,CAAC,EAAEoL,MAAM,CAAC,CACrD,CAAC;EACDhH,GAAG,CAACE,oBAAoB,GAAGjD,MAAM,CAAC8J,WAAW,CAC3C9J,MAAM,CAACoG,OAAO,CAACrD,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAC3CxE,GAAG,CAAC,CAAC,CAACE,EAAE,EAAEiH,KAAK,CAAC,KAAK,CAACzI,kBAAkB,CAACwB,EAAE,CAAC,EAAEiH,KAAK,CAAC,CACzD,CAAC;EACD7C,GAAG,CAACG,kBAAkB,GAAG,CAACH,GAAG,CAACG,kBAAkB,IAC3C,EAAE,EAAEzE,GAAG,CAACE,EAAE,IAAIxB,kBAAkB,CAACwB,EAAE,CAAC,CAAC;EAC1CoE,GAAG,CAAC7C,QAAQ,GAAG6C,GAAG,CAAC7C,QAAQ,EAAEzB,GAAG,CAACwL,OAAO,KAAK;IAC3C,GAAGA,OAAO;IACVzL,UAAU,EAAEyL,OAAO,CAACzL,UAAU,CAACC,GAAG,CAACC,CAAC,IAAIsL,yBAAyB,CAACjH,GAAG,EAAErE,CAAC,CAAC;EAC3E,CAAC,CAAC,CAAC;AACL;;AAEA;AACA,OAAO,SAASsL,yBAAyBA,CACvCjH,GAAsC,EACtCmH,SAAiB,EACT;EACR,IAAInH,GAAG,CAACoH,0BAA0B,EAAE;IAClC,OAAOC,6BAA6B,CAACrH,GAAG,EAAEmH,SAAS,CAAC;EACtD;EACA,OAAQb,iBAAiB,CAACa,SAAS,CAAC,IAC7B,CAAClK,MAAM,CAACC,IAAI,CAAC8C,GAAG,CAACrB,aAAa,CAAC2I,YAAY,CAAC,CAACxI,QAAQ,CACtD1E,kBAAkB,CAAC+M,SAAS,CAC9B,CAAC,GACDA,SAAS,GACT/M,kBAAkB,CAAC+M,SAAS,CAAC;AACnC;AAEA,OAAO,SAASE,6BAA6BA,CAC3CrH,GAAsC,EACtCmH,SAAiB,EACT;EACR,OAAOnH,GAAG,CAACuH,6BAA6B,GAAGJ,SAAS,CAAC,KAC/CA,SAAS,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIN,SAAS,CAAC;AAChD;AAEA,OAAO,SAASO,qCAAqCA,CACnD9L,EAAU,EACVoE,GAA0B,EAC1B1E,SAA4C,EACD;EAC3C,MAAMkC,IAAI,GAAG7C,4BAA4B,CAACqF,GAAG,CAAC;EAC9C,MAAMwB,KAAK,GAAG5G,6BAA6B,CAACoF,GAAG,CAAC,GAC5CA,GAAG,CAACY,kBAAkB,CAACY,KAAK,GAC5BxB,GAAG,CAACwB,KAAK;EACb,MAAM0B,WAAW,GAAG5H,SAAS,CAAC8L,0BAA0B,GACpDC,6BAA6B,CAAC/L,SAAS,EAAEM,EAAE,CAAC,GAC5CA,EAAE;EACN,IAAId,QAAQ,CAAC0C,IAAI,CAAC,EAAE;IAClB,OAAO;MACLA,IAAI,EAAE,sBAAsB;MAC5BmK,oBAAoB,EAAE1K,MAAM,CAAC8J,WAAW,CACtC9J,MAAM,CAACoG,OAAO,CAAC7F,IAAI,CAACoK,gBAAgB,CAAC,CAAClM,GAAG,CAAC,CAAC,CAACH,OAAO,EAAEsM,UAAU,CAAC,KAAK;QACnE,OAAO,CACLtM,OAAO,EACPiG,KAAK,GACD;UACAhE,IAAI,EAAE,+BAA+B;UACrCsK,6BAA6B,EAAE;YAC7B5E,WAAW;YACX6E,kBAAkB,EAAExM;UACtB;QACF,CAAC,GACC;UACAiC,IAAI,EAAE,2BAA2B;UACjCwK,yBAAyB,EAAE;YACzB9E,WAAW;YACX6E,kBAAkB,EAAExM;UACtB;QACF,CAAC,CACJ;MACH,CAAC,CACH;IACF,CAAC;EACH;EACA,OAAO;IACLiC,IAAI,EAAE,gBAAgB;IACtByK,cAAc,EAAE;MACdzK,IAAI,EAAE,aAAa;MACnB0F;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -25,7 +25,7 @@ import { defineOntology } from "../api/defineOntology.js";
25
25
  const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
26
26
  const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
27
27
  export default async function main(args = process.argv) {
28
- const commandLineOpts = await yargs(hideBin(args)).version("0.37.0" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
28
+ const commandLineOpts = await yargs(hideBin(args)).version("0.38.0" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
29
29
  input: {
30
30
  alias: "i",
31
31
  describe: "Input file",