@osdk/maker 0.13.0-beta.9 → 0.14.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +55 -13
  3. package/build/browser/api/action/ActionLevelValidationDefinition.js +2 -0
  4. package/build/browser/api/action/ActionLevelValidationDefinition.js.map +1 -0
  5. package/build/browser/api/action/ActionParameter.js +2 -0
  6. package/build/browser/api/action/ActionParameter.js.map +1 -0
  7. package/build/browser/api/action/ActionParameterAllowedValues.js +2 -0
  8. package/build/browser/api/action/ActionParameterAllowedValues.js.map +1 -0
  9. package/build/browser/api/action/ActionParameterConditionalOverride.js +2 -0
  10. package/build/browser/api/action/ActionParameterConditionalOverride.js.map +1 -0
  11. package/build/browser/api/action/ActionParameterConfiguration.js +2 -0
  12. package/build/browser/api/action/ActionParameterConfiguration.js.map +1 -0
  13. package/build/browser/api/action/ActionParameterType.js +22 -0
  14. package/build/browser/api/action/ActionParameterType.js.map +1 -0
  15. package/build/browser/api/action/ActionSection.js +2 -0
  16. package/build/browser/api/action/ActionSection.js.map +1 -0
  17. package/build/browser/api/action/ActionStatus.js +2 -0
  18. package/build/browser/api/action/ActionStatus.js.map +1 -0
  19. package/build/browser/api/action/ActionType.js +2 -0
  20. package/build/browser/api/action/ActionType.js.map +1 -0
  21. package/build/browser/api/action/ActionValidationRule.js +2 -0
  22. package/build/browser/api/action/ActionValidationRule.js.map +1 -0
  23. package/build/browser/api/action/ConditionDefinition.js +2 -0
  24. package/build/browser/api/action/ConditionDefinition.js.map +1 -0
  25. package/build/browser/api/action/MappingValue.js +2 -0
  26. package/build/browser/api/action/MappingValue.js.map +1 -0
  27. package/build/browser/api/action/SectionConditionalOverride.js +2 -0
  28. package/build/browser/api/action/SectionConditionalOverride.js.map +1 -0
  29. package/build/browser/api/action/SubmissionMetadata.js +2 -0
  30. package/build/browser/api/action/SubmissionMetadata.js.map +1 -0
  31. package/build/browser/api/common/BlueprintIcons.js +2 -0
  32. package/build/browser/api/common/BlueprintIcons.js.map +1 -0
  33. package/build/browser/api/common/OntologyDefinition.js +2 -0
  34. package/build/browser/api/common/OntologyDefinition.js.map +1 -0
  35. package/build/browser/api/common/OntologyEntityBase.js +2 -0
  36. package/build/browser/api/common/OntologyEntityBase.js.map +1 -0
  37. package/build/browser/api/{types.js → common/OntologyEntityTypeEnum.js} +2 -8
  38. package/build/browser/api/common/OntologyEntityTypeEnum.js.map +1 -0
  39. package/build/browser/api/common/OntologyEntityTypeMapping.js +2 -0
  40. package/build/browser/api/common/OntologyEntityTypeMapping.js.map +1 -0
  41. package/build/browser/api/common/TypeClass.js +2 -0
  42. package/build/browser/api/common/TypeClass.js.map +1 -0
  43. package/build/browser/api/defineAction.js +69 -46
  44. package/build/browser/api/defineAction.js.map +1 -1
  45. package/build/browser/api/defineInterface.js +14 -34
  46. package/build/browser/api/defineInterface.js.map +1 -1
  47. package/build/browser/api/defineInterfaceLinkConstraint.js +3 -2
  48. package/build/browser/api/defineInterfaceLinkConstraint.js.map +1 -1
  49. package/build/browser/api/defineLink.js +33 -12
  50. package/build/browser/api/defineLink.js.map +1 -1
  51. package/build/browser/api/defineObject.js +9 -29
  52. package/build/browser/api/defineObject.js.map +1 -1
  53. package/build/browser/api/defineOntology.js +17 -552
  54. package/build/browser/api/defineOntology.js.map +1 -1
  55. package/build/browser/api/defineSpt.js +1 -1
  56. package/build/browser/api/defineSpt.js.map +1 -1
  57. package/build/browser/api/defineValueType.js +1 -1
  58. package/build/browser/api/defineValueType.js.map +1 -1
  59. package/build/browser/api/importOntologyEntity.js +1 -1
  60. package/build/browser/api/importOntologyEntity.js.map +1 -1
  61. package/build/browser/api/{defineImportSpt.js → importSharedPropertyType.js} +2 -3
  62. package/build/browser/api/importSharedPropertyType.js.map +1 -0
  63. package/build/browser/api/interface/InterfacePropertyType.js +2 -0
  64. package/build/browser/api/interface/InterfacePropertyType.js.map +1 -0
  65. package/build/browser/api/interface/InterfaceType.js +2 -0
  66. package/build/browser/api/interface/InterfaceType.js.map +1 -0
  67. package/build/browser/api/interface/getFlattenedInterfaceProperties.js +27 -0
  68. package/build/browser/api/interface/getFlattenedInterfaceProperties.js.map +1 -0
  69. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +42 -0
  70. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -0
  71. package/build/browser/api/links/LinkType.js +2 -0
  72. package/build/browser/api/links/LinkType.js.map +1 -0
  73. package/build/browser/api/namespace/combineApiNamespaceIfMissing.js +20 -0
  74. package/build/browser/api/namespace/combineApiNamespaceIfMissing.js.map +1 -0
  75. package/build/browser/api/object/InterfaceImplementation.js +2 -0
  76. package/build/browser/api/object/InterfaceImplementation.js.map +1 -0
  77. package/build/browser/api/object/ObjectPropertyType.js +2 -0
  78. package/build/browser/api/object/ObjectPropertyType.js.map +1 -0
  79. package/build/browser/api/object/ObjectPropertyTypeUserDefinition.js +2 -0
  80. package/build/browser/api/object/ObjectPropertyTypeUserDefinition.js.map +1 -0
  81. package/build/browser/api/object/ObjectType.js +2 -0
  82. package/build/browser/api/object/ObjectType.js.map +1 -0
  83. package/build/browser/api/object/ObjectTypeDatasourceDefinition.js +2 -0
  84. package/build/browser/api/object/ObjectTypeDatasourceDefinition.js.map +1 -0
  85. package/build/browser/api/object/ObjectTypeDefinition.js +2 -0
  86. package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -0
  87. package/build/browser/api/object/ObjectTypeStatus.js +2 -0
  88. package/build/browser/api/object/ObjectTypeStatus.js.map +1 -0
  89. package/build/browser/api/objectStatus.test.js.map +1 -1
  90. package/build/browser/api/overall.test.js +1987 -691
  91. package/build/browser/api/overall.test.js.map +1 -1
  92. package/build/browser/api/properties/Nullability.js +2 -0
  93. package/build/browser/api/properties/Nullability.js.map +1 -0
  94. package/build/browser/api/properties/PropertyTypeType.js +34 -0
  95. package/build/browser/api/properties/PropertyTypeType.js.map +1 -0
  96. package/build/browser/api/properties/SharedPropertyType.js +2 -0
  97. package/build/browser/api/properties/SharedPropertyType.js.map +1 -0
  98. package/build/browser/api/propertyConversionUtils.js +0 -238
  99. package/build/browser/api/propertyConversionUtils.js.map +1 -1
  100. package/build/browser/api/values/ValueTypeDefinitionVersion.js +2 -0
  101. package/build/browser/api/values/ValueTypeDefinitionVersion.js.map +1 -0
  102. package/build/browser/api/values/ValueTypeType.js +2 -0
  103. package/build/browser/api/values/ValueTypeType.js.map +1 -0
  104. package/build/browser/api/wrapWithProxy.js +1 -0
  105. package/build/browser/api/wrapWithProxy.js.map +1 -1
  106. package/build/browser/cli/main.js +13 -4
  107. package/build/browser/cli/main.js.map +1 -1
  108. package/build/browser/conversion/toConjure/distributeTypeHelper.js +23 -0
  109. package/build/browser/conversion/toConjure/distributeTypeHelper.js.map +1 -0
  110. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +88 -0
  111. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -0
  112. package/build/browser/conversion/toMarketplace/convertActionParameters.js +31 -0
  113. package/build/browser/conversion/toMarketplace/convertActionParameters.js.map +1 -0
  114. package/build/browser/conversion/toMarketplace/convertActionSections.js +43 -0
  115. package/build/browser/conversion/toMarketplace/convertActionSections.js.map +1 -0
  116. package/build/browser/conversion/toMarketplace/convertActionValidation.js +93 -0
  117. package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -0
  118. package/build/browser/conversion/toMarketplace/convertActionVisibility.js +41 -0
  119. package/build/browser/conversion/toMarketplace/convertActionVisibility.js.map +1 -0
  120. package/build/browser/conversion/toMarketplace/convertCardinality.js +23 -0
  121. package/build/browser/conversion/toMarketplace/convertCardinality.js.map +1 -0
  122. package/build/browser/conversion/toMarketplace/convertConditionDefinition.js +88 -0
  123. package/build/browser/conversion/toMarketplace/convertConditionDefinition.js.map +1 -0
  124. package/build/browser/conversion/toMarketplace/convertDataConstraintToDataConstraints.js +26 -0
  125. package/build/browser/conversion/toMarketplace/convertDataConstraintToDataConstraints.js.map +1 -0
  126. package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js +89 -0
  127. package/build/browser/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -0
  128. package/build/browser/conversion/toMarketplace/convertInterface.js +47 -0
  129. package/build/browser/conversion/toMarketplace/convertInterface.js.map +1 -0
  130. package/build/browser/conversion/toMarketplace/convertLink.js +132 -0
  131. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -0
  132. package/build/browser/conversion/toMarketplace/convertMappingValue.js +41 -0
  133. package/build/browser/conversion/toMarketplace/convertMappingValue.js.map +1 -0
  134. package/build/browser/conversion/toMarketplace/convertNullabilityToDataConstraint.js +43 -0
  135. package/build/browser/conversion/toMarketplace/convertNullabilityToDataConstraint.js.map +1 -0
  136. package/build/browser/conversion/toMarketplace/convertObject.js +108 -0
  137. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -0
  138. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +53 -0
  139. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -0
  140. package/build/browser/conversion/toMarketplace/convertOntologyDefinition.js +29 -0
  141. package/build/browser/conversion/toMarketplace/convertOntologyDefinition.js.map +1 -0
  142. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +57 -0
  143. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -0
  144. package/build/browser/conversion/toMarketplace/convertOntologyToValueTypeIr.js +24 -0
  145. package/build/browser/conversion/toMarketplace/convertOntologyToValueTypeIr.js.map +1 -0
  146. package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js +35 -0
  147. package/build/browser/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -0
  148. package/build/browser/conversion/toMarketplace/convertSpt.js +62 -0
  149. package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -0
  150. package/build/browser/conversion/toMarketplace/convertValueType.js +25 -0
  151. package/build/browser/conversion/toMarketplace/convertValueType.js.map +1 -0
  152. package/build/browser/conversion/toMarketplace/convertValueTypeDataConstraints.js +30 -0
  153. package/build/browser/conversion/toMarketplace/convertValueTypeDataConstraints.js.map +1 -0
  154. package/build/browser/conversion/toMarketplace/convertValueTypesToIr.js +34 -0
  155. package/build/browser/conversion/toMarketplace/convertValueTypesToIr.js.map +1 -0
  156. package/build/browser/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js +83 -0
  157. package/build/browser/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js.map +1 -0
  158. package/build/browser/conversion/toMarketplace/getFormContentOrdering.js +39 -0
  159. package/build/browser/conversion/toMarketplace/getFormContentOrdering.js.map +1 -0
  160. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +124 -0
  161. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -0
  162. package/build/browser/index.js +5 -5
  163. package/build/browser/index.js.map +1 -1
  164. package/build/browser/util/OptionalFields.js +2 -0
  165. package/build/browser/util/OptionalFields.js.map +1 -0
  166. package/build/browser/util/RequiredFields.js +2 -0
  167. package/build/browser/util/RequiredFields.js.map +1 -0
  168. package/build/cjs/index.cjs +1177 -1045
  169. package/build/cjs/index.cjs.map +1 -1
  170. package/build/cjs/index.d.cts +417 -346
  171. package/build/esm/api/action/ActionLevelValidationDefinition.js +2 -0
  172. package/build/esm/api/action/ActionLevelValidationDefinition.js.map +1 -0
  173. package/build/esm/api/action/ActionParameter.js +2 -0
  174. package/build/esm/api/action/ActionParameter.js.map +1 -0
  175. package/build/esm/api/action/ActionParameterAllowedValues.js +2 -0
  176. package/build/esm/api/action/ActionParameterAllowedValues.js.map +1 -0
  177. package/build/esm/api/action/ActionParameterConditionalOverride.js +2 -0
  178. package/build/esm/api/action/ActionParameterConditionalOverride.js.map +1 -0
  179. package/build/esm/api/action/ActionParameterConfiguration.js +2 -0
  180. package/build/esm/api/action/ActionParameterConfiguration.js.map +1 -0
  181. package/build/esm/api/action/ActionParameterType.js +22 -0
  182. package/build/esm/api/action/ActionParameterType.js.map +1 -0
  183. package/build/esm/api/action/ActionSection.js +2 -0
  184. package/build/esm/api/action/ActionSection.js.map +1 -0
  185. package/build/esm/api/action/ActionStatus.js +2 -0
  186. package/build/esm/api/action/ActionStatus.js.map +1 -0
  187. package/build/esm/api/action/ActionType.js +2 -0
  188. package/build/esm/api/action/ActionType.js.map +1 -0
  189. package/build/esm/api/action/ActionValidationRule.js +2 -0
  190. package/build/esm/api/action/ActionValidationRule.js.map +1 -0
  191. package/build/esm/api/action/ConditionDefinition.js +2 -0
  192. package/build/esm/api/action/ConditionDefinition.js.map +1 -0
  193. package/build/esm/api/action/MappingValue.js +2 -0
  194. package/build/esm/api/action/MappingValue.js.map +1 -0
  195. package/build/esm/api/action/SectionConditionalOverride.js +2 -0
  196. package/build/esm/api/action/SectionConditionalOverride.js.map +1 -0
  197. package/build/esm/api/action/SubmissionMetadata.js +2 -0
  198. package/build/esm/api/action/SubmissionMetadata.js.map +1 -0
  199. package/build/esm/api/common/BlueprintIcons.js +2 -0
  200. package/build/esm/api/common/BlueprintIcons.js.map +1 -0
  201. package/build/esm/api/common/OntologyDefinition.js +2 -0
  202. package/build/esm/api/common/OntologyDefinition.js.map +1 -0
  203. package/build/esm/api/common/OntologyEntityBase.js +2 -0
  204. package/build/esm/api/common/OntologyEntityBase.js.map +1 -0
  205. package/build/esm/api/{types.js → common/OntologyEntityTypeEnum.js} +2 -8
  206. package/build/esm/api/common/OntologyEntityTypeEnum.js.map +1 -0
  207. package/build/esm/api/common/OntologyEntityTypeMapping.js +2 -0
  208. package/build/esm/api/common/OntologyEntityTypeMapping.js.map +1 -0
  209. package/build/esm/api/common/TypeClass.js +2 -0
  210. package/build/esm/api/common/TypeClass.js.map +1 -0
  211. package/build/esm/api/defineAction.js +69 -46
  212. package/build/esm/api/defineAction.js.map +1 -1
  213. package/build/esm/api/defineInterface.js +14 -34
  214. package/build/esm/api/defineInterface.js.map +1 -1
  215. package/build/esm/api/defineInterfaceLinkConstraint.js +3 -2
  216. package/build/esm/api/defineInterfaceLinkConstraint.js.map +1 -1
  217. package/build/esm/api/defineLink.js +33 -12
  218. package/build/esm/api/defineLink.js.map +1 -1
  219. package/build/esm/api/defineObject.js +9 -29
  220. package/build/esm/api/defineObject.js.map +1 -1
  221. package/build/esm/api/defineOntology.js +17 -552
  222. package/build/esm/api/defineOntology.js.map +1 -1
  223. package/build/esm/api/defineSpt.js +1 -1
  224. package/build/esm/api/defineSpt.js.map +1 -1
  225. package/build/esm/api/defineValueType.js +1 -1
  226. package/build/esm/api/defineValueType.js.map +1 -1
  227. package/build/esm/api/importOntologyEntity.js +1 -1
  228. package/build/esm/api/importOntologyEntity.js.map +1 -1
  229. package/build/esm/api/{defineImportSpt.js → importSharedPropertyType.js} +2 -3
  230. package/build/esm/api/importSharedPropertyType.js.map +1 -0
  231. package/build/esm/api/interface/InterfacePropertyType.js +2 -0
  232. package/build/esm/api/interface/InterfacePropertyType.js.map +1 -0
  233. package/build/esm/api/interface/InterfaceType.js +2 -0
  234. package/build/esm/api/interface/InterfaceType.js.map +1 -0
  235. package/build/esm/api/interface/getFlattenedInterfaceProperties.js +27 -0
  236. package/build/esm/api/interface/getFlattenedInterfaceProperties.js.map +1 -0
  237. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +42 -0
  238. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -0
  239. package/build/esm/api/links/LinkType.js +2 -0
  240. package/build/esm/api/links/LinkType.js.map +1 -0
  241. package/build/esm/api/namespace/combineApiNamespaceIfMissing.js +20 -0
  242. package/build/esm/api/namespace/combineApiNamespaceIfMissing.js.map +1 -0
  243. package/build/esm/api/object/InterfaceImplementation.js +2 -0
  244. package/build/esm/api/object/InterfaceImplementation.js.map +1 -0
  245. package/build/esm/api/object/ObjectPropertyType.js +2 -0
  246. package/build/esm/api/object/ObjectPropertyType.js.map +1 -0
  247. package/build/esm/api/object/ObjectPropertyTypeUserDefinition.js +2 -0
  248. package/build/esm/api/object/ObjectPropertyTypeUserDefinition.js.map +1 -0
  249. package/build/esm/api/object/ObjectType.js +2 -0
  250. package/build/esm/api/object/ObjectType.js.map +1 -0
  251. package/build/esm/api/object/ObjectTypeDatasourceDefinition.js +2 -0
  252. package/build/esm/api/object/ObjectTypeDatasourceDefinition.js.map +1 -0
  253. package/build/esm/api/object/ObjectTypeDefinition.js +2 -0
  254. package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -0
  255. package/build/esm/api/object/ObjectTypeStatus.js +2 -0
  256. package/build/esm/api/object/ObjectTypeStatus.js.map +1 -0
  257. package/build/esm/api/objectStatus.test.js.map +1 -1
  258. package/build/esm/api/overall.test.js +1987 -691
  259. package/build/esm/api/overall.test.js.map +1 -1
  260. package/build/esm/api/properties/Nullability.js +2 -0
  261. package/build/esm/api/properties/Nullability.js.map +1 -0
  262. package/build/esm/api/properties/PropertyTypeType.js +34 -0
  263. package/build/esm/api/properties/PropertyTypeType.js.map +1 -0
  264. package/build/esm/api/properties/SharedPropertyType.js +2 -0
  265. package/build/esm/api/properties/SharedPropertyType.js.map +1 -0
  266. package/build/esm/api/propertyConversionUtils.js +0 -238
  267. package/build/esm/api/propertyConversionUtils.js.map +1 -1
  268. package/build/esm/api/values/ValueTypeDefinitionVersion.js +2 -0
  269. package/build/esm/api/values/ValueTypeDefinitionVersion.js.map +1 -0
  270. package/build/esm/api/values/ValueTypeType.js +2 -0
  271. package/build/esm/api/values/ValueTypeType.js.map +1 -0
  272. package/build/esm/api/wrapWithProxy.js +1 -0
  273. package/build/esm/api/wrapWithProxy.js.map +1 -1
  274. package/build/esm/cli/main.js +13 -4
  275. package/build/esm/cli/main.js.map +1 -1
  276. package/build/esm/conversion/toConjure/distributeTypeHelper.js +23 -0
  277. package/build/esm/conversion/toConjure/distributeTypeHelper.js.map +1 -0
  278. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +88 -0
  279. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -0
  280. package/build/esm/conversion/toMarketplace/convertActionParameters.js +31 -0
  281. package/build/esm/conversion/toMarketplace/convertActionParameters.js.map +1 -0
  282. package/build/esm/conversion/toMarketplace/convertActionSections.js +43 -0
  283. package/build/esm/conversion/toMarketplace/convertActionSections.js.map +1 -0
  284. package/build/esm/conversion/toMarketplace/convertActionValidation.js +93 -0
  285. package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -0
  286. package/build/esm/conversion/toMarketplace/convertActionVisibility.js +41 -0
  287. package/build/esm/conversion/toMarketplace/convertActionVisibility.js.map +1 -0
  288. package/build/esm/conversion/toMarketplace/convertCardinality.js +23 -0
  289. package/build/esm/conversion/toMarketplace/convertCardinality.js.map +1 -0
  290. package/build/esm/conversion/toMarketplace/convertConditionDefinition.js +88 -0
  291. package/build/esm/conversion/toMarketplace/convertConditionDefinition.js.map +1 -0
  292. package/build/esm/conversion/toMarketplace/convertDataConstraintToDataConstraints.js +26 -0
  293. package/build/esm/conversion/toMarketplace/convertDataConstraintToDataConstraints.js.map +1 -0
  294. package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js +89 -0
  295. package/build/esm/conversion/toMarketplace/convertDatasourceDefinition.js.map +1 -0
  296. package/build/esm/conversion/toMarketplace/convertInterface.js +47 -0
  297. package/build/esm/conversion/toMarketplace/convertInterface.js.map +1 -0
  298. package/build/esm/conversion/toMarketplace/convertLink.js +132 -0
  299. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -0
  300. package/build/esm/conversion/toMarketplace/convertMappingValue.js +41 -0
  301. package/build/esm/conversion/toMarketplace/convertMappingValue.js.map +1 -0
  302. package/build/esm/conversion/toMarketplace/convertNullabilityToDataConstraint.js +43 -0
  303. package/build/esm/conversion/toMarketplace/convertNullabilityToDataConstraint.js.map +1 -0
  304. package/build/esm/conversion/toMarketplace/convertObject.js +108 -0
  305. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -0
  306. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +53 -0
  307. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -0
  308. package/build/esm/conversion/toMarketplace/convertOntologyDefinition.js +29 -0
  309. package/build/esm/conversion/toMarketplace/convertOntologyDefinition.js.map +1 -0
  310. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +57 -0
  311. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -0
  312. package/build/esm/conversion/toMarketplace/convertOntologyToValueTypeIr.js +24 -0
  313. package/build/esm/conversion/toMarketplace/convertOntologyToValueTypeIr.js.map +1 -0
  314. package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js +35 -0
  315. package/build/esm/conversion/toMarketplace/convertSectionConditionalOverride.js.map +1 -0
  316. package/build/esm/conversion/toMarketplace/convertSpt.js +62 -0
  317. package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -0
  318. package/build/esm/conversion/toMarketplace/convertValueType.js +25 -0
  319. package/build/esm/conversion/toMarketplace/convertValueType.js.map +1 -0
  320. package/build/esm/conversion/toMarketplace/convertValueTypeDataConstraints.js +30 -0
  321. package/build/esm/conversion/toMarketplace/convertValueTypeDataConstraints.js.map +1 -0
  322. package/build/esm/conversion/toMarketplace/convertValueTypesToIr.js +34 -0
  323. package/build/esm/conversion/toMarketplace/convertValueTypesToIr.js.map +1 -0
  324. package/build/esm/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js +83 -0
  325. package/build/esm/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.js.map +1 -0
  326. package/build/esm/conversion/toMarketplace/getFormContentOrdering.js +39 -0
  327. package/build/esm/conversion/toMarketplace/getFormContentOrdering.js.map +1 -0
  328. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +124 -0
  329. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -0
  330. package/build/esm/index.js +5 -5
  331. package/build/esm/index.js.map +1 -1
  332. package/build/esm/util/OptionalFields.js +2 -0
  333. package/build/esm/util/OptionalFields.js.map +1 -0
  334. package/build/esm/util/RequiredFields.js +2 -0
  335. package/build/esm/util/RequiredFields.js.map +1 -0
  336. package/build/types/api/action/ActionLevelValidationDefinition.d.ts +7 -0
  337. package/build/types/api/action/ActionLevelValidationDefinition.d.ts.map +1 -0
  338. package/build/types/api/action/ActionParameter.d.ts +14 -0
  339. package/build/types/api/action/ActionParameter.d.ts.map +1 -0
  340. package/build/types/api/action/ActionParameterAllowedValues.d.ts +50 -0
  341. package/build/types/api/action/ActionParameterAllowedValues.d.ts.map +1 -0
  342. package/build/types/api/action/ActionParameterConditionalOverride.d.ts +26 -0
  343. package/build/types/api/action/ActionParameterConditionalOverride.d.ts.map +1 -0
  344. package/build/types/api/action/ActionParameterConfiguration.d.ts +20 -0
  345. package/build/types/api/action/ActionParameterConfiguration.d.ts.map +1 -0
  346. package/build/types/api/action/ActionParameterType.d.ts +6 -0
  347. package/build/types/api/action/ActionParameterType.d.ts.map +1 -0
  348. package/build/types/api/action/ActionSection.d.ts +13 -0
  349. package/build/types/api/action/ActionSection.d.ts.map +1 -0
  350. package/build/types/api/action/ActionStatus.d.ts +2 -0
  351. package/build/types/api/action/ActionStatus.d.ts.map +1 -0
  352. package/build/types/api/action/ActionType.d.ts +36 -0
  353. package/build/types/api/action/ActionType.d.ts.map +1 -0
  354. package/build/types/api/action/ActionValidationRule.d.ts +2 -0
  355. package/build/types/api/action/ActionValidationRule.d.ts.map +1 -0
  356. package/build/types/api/action/ConditionDefinition.d.ts +15 -0
  357. package/build/types/api/action/ConditionDefinition.d.ts.map +1 -0
  358. package/build/types/api/action/MappingValue.d.ts +13 -0
  359. package/build/types/api/action/MappingValue.d.ts.map +1 -0
  360. package/build/types/api/action/SectionConditionalOverride.d.ts +2 -0
  361. package/build/types/api/action/SectionConditionalOverride.d.ts.map +1 -0
  362. package/build/types/api/action/SubmissionMetadata.d.ts +6 -0
  363. package/build/types/api/action/SubmissionMetadata.d.ts.map +1 -0
  364. package/build/types/api/{iconNames.d.ts.map → common/BlueprintIcons.d.ts.map} +1 -1
  365. package/build/types/api/common/OntologyDefinition.d.ts +6 -0
  366. package/build/types/api/common/OntologyDefinition.d.ts.map +1 -0
  367. package/build/types/api/common/OntologyEntityBase.d.ts +5 -0
  368. package/build/types/api/common/OntologyEntityBase.d.ts.map +1 -0
  369. package/build/types/api/common/OntologyEntityTypeEnum.d.ts +8 -0
  370. package/build/types/api/common/OntologyEntityTypeEnum.d.ts.map +1 -0
  371. package/build/types/api/common/OntologyEntityTypeMapping.d.ts +16 -0
  372. package/build/types/api/common/OntologyEntityTypeMapping.d.ts.map +1 -0
  373. package/build/types/api/common/TypeClass.d.ts +4 -0
  374. package/build/types/api/common/TypeClass.d.ts.map +1 -0
  375. package/build/types/api/defineAction.d.ts +38 -3
  376. package/build/types/api/defineAction.d.ts.map +1 -1
  377. package/build/types/api/defineInterface.d.ts +5 -3
  378. package/build/types/api/defineInterface.d.ts.map +1 -1
  379. package/build/types/api/defineInterfaceLinkConstraint.d.ts +1 -1
  380. package/build/types/api/defineInterfaceLinkConstraint.d.ts.map +1 -1
  381. package/build/types/api/defineLink.d.ts +1 -1
  382. package/build/types/api/defineLink.d.ts.map +1 -1
  383. package/build/types/api/defineObject.d.ts +2 -4
  384. package/build/types/api/defineObject.d.ts.map +1 -1
  385. package/build/types/api/defineOntology.d.ts +11 -4
  386. package/build/types/api/defineOntology.d.ts.map +1 -1
  387. package/build/types/api/defineSpt.d.ts +2 -1
  388. package/build/types/api/defineSpt.d.ts.map +1 -1
  389. package/build/types/api/defineValueType.d.ts +2 -1
  390. package/build/types/api/defineValueType.d.ts.map +1 -1
  391. package/build/types/api/importOntologyEntity.d.ts +1 -1
  392. package/build/types/api/importOntologyEntity.d.ts.map +1 -1
  393. package/build/types/api/{defineImportSpt.d.ts → importSharedPropertyType.d.ts} +2 -1
  394. package/build/types/api/importSharedPropertyType.d.ts.map +1 -0
  395. package/build/types/api/interface/InterfacePropertyType.d.ts +5 -0
  396. package/build/types/api/interface/InterfacePropertyType.d.ts.map +1 -0
  397. package/build/types/api/interface/InterfaceType.d.ts +10 -0
  398. package/build/types/api/interface/InterfaceType.d.ts.map +1 -0
  399. package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts +3 -0
  400. package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts.map +1 -0
  401. package/build/types/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.d.ts +3 -0
  402. package/build/types/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.d.ts.map +1 -0
  403. package/build/types/api/links/LinkType.d.ts +100 -0
  404. package/build/types/api/links/LinkType.d.ts.map +1 -0
  405. package/build/types/api/namespace/combineApiNamespaceIfMissing.d.ts +1 -0
  406. package/build/types/api/namespace/combineApiNamespaceIfMissing.d.ts.map +1 -0
  407. package/build/types/api/object/InterfaceImplementation.d.ts +8 -0
  408. package/build/types/api/object/InterfaceImplementation.d.ts.map +1 -0
  409. package/build/types/api/object/ObjectPropertyType.d.ts +27 -0
  410. package/build/types/api/object/ObjectPropertyType.d.ts.map +1 -0
  411. package/build/types/api/object/ObjectPropertyTypeUserDefinition.d.ts +3 -0
  412. package/build/types/api/object/ObjectPropertyTypeUserDefinition.d.ts.map +1 -0
  413. package/build/types/api/object/ObjectType.d.ts +29 -0
  414. package/build/types/api/object/ObjectType.d.ts.map +1 -0
  415. package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts +11 -0
  416. package/build/types/api/object/ObjectTypeDatasourceDefinition.d.ts.map +1 -0
  417. package/build/types/api/object/ObjectTypeDefinition.d.ts +26 -0
  418. package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -0
  419. package/build/types/api/object/ObjectTypeStatus.d.ts +5 -0
  420. package/build/types/api/object/ObjectTypeStatus.d.ts.map +1 -0
  421. package/build/types/api/properties/Nullability.d.ts +4 -0
  422. package/build/types/api/properties/Nullability.d.ts.map +1 -0
  423. package/build/types/api/properties/PropertyTypeType.d.ts +33 -0
  424. package/build/types/api/properties/PropertyTypeType.d.ts.map +1 -0
  425. package/build/types/api/properties/SharedPropertyType.d.ts +22 -0
  426. package/build/types/api/properties/SharedPropertyType.d.ts.map +1 -0
  427. package/build/types/api/propertyConversionUtils.d.ts +2 -20
  428. package/build/types/api/propertyConversionUtils.d.ts.map +1 -1
  429. package/build/types/api/values/ValueTypeDefinitionVersion.d.ts +14 -0
  430. package/build/types/api/values/ValueTypeDefinitionVersion.d.ts.map +1 -0
  431. package/build/types/api/values/ValueTypeType.d.ts +178 -0
  432. package/build/types/api/values/ValueTypeType.d.ts.map +1 -0
  433. package/build/types/api/wrapWithProxy.d.ts +1 -1
  434. package/build/types/api/wrapWithProxy.d.ts.map +1 -1
  435. package/build/types/cli/main.d.ts.map +1 -1
  436. package/build/types/conversion/toConjure/distributeTypeHelper.d.ts +3 -0
  437. package/build/types/conversion/toConjure/distributeTypeHelper.d.ts.map +1 -0
  438. package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts +4 -0
  439. package/build/types/conversion/toMarketplace/convertActionParameterConditionalOverride.d.ts.map +1 -0
  440. package/build/types/conversion/toMarketplace/convertActionParameters.d.ts +3 -0
  441. package/build/types/conversion/toMarketplace/convertActionParameters.d.ts.map +1 -0
  442. package/build/types/conversion/toMarketplace/convertActionSections.d.ts +3 -0
  443. package/build/types/conversion/toMarketplace/convertActionSections.d.ts.map +1 -0
  444. package/build/types/conversion/toMarketplace/convertActionValidation.d.ts +3 -0
  445. package/build/types/conversion/toMarketplace/convertActionValidation.d.ts.map +1 -0
  446. package/build/types/conversion/toMarketplace/convertActionVisibility.d.ts +2 -0
  447. package/build/types/conversion/toMarketplace/convertActionVisibility.d.ts.map +1 -0
  448. package/build/types/conversion/toMarketplace/convertCardinality.d.ts +3 -0
  449. package/build/types/conversion/toMarketplace/convertCardinality.d.ts.map +1 -0
  450. package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts +4 -0
  451. package/build/types/conversion/toMarketplace/convertConditionDefinition.d.ts.map +1 -0
  452. package/build/types/conversion/toMarketplace/convertDataConstraintToDataConstraints.d.ts +2 -0
  453. package/build/types/conversion/toMarketplace/convertDataConstraintToDataConstraints.d.ts.map +1 -0
  454. package/build/types/conversion/toMarketplace/convertDatasourceDefinition.d.ts +4 -0
  455. package/build/types/conversion/toMarketplace/convertDatasourceDefinition.d.ts.map +1 -0
  456. package/build/types/conversion/toMarketplace/convertInterface.d.ts +3 -0
  457. package/build/types/conversion/toMarketplace/convertInterface.d.ts.map +1 -0
  458. package/build/types/conversion/toMarketplace/convertLink.d.ts +3 -0
  459. package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -0
  460. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts +3 -0
  461. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts.map +1 -0
  462. package/build/types/conversion/toMarketplace/convertNullabilityToDataConstraint.d.ts +7 -0
  463. package/build/types/conversion/toMarketplace/convertNullabilityToDataConstraint.d.ts.map +1 -0
  464. package/build/types/conversion/toMarketplace/convertObject.d.ts +9 -0
  465. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -0
  466. package/build/types/conversion/toMarketplace/convertObjectPropertyType.d.ts +3 -0
  467. package/build/types/conversion/toMarketplace/convertObjectPropertyType.d.ts.map +1 -0
  468. package/build/types/conversion/toMarketplace/convertOntologyDefinition.d.ts +3 -0
  469. package/build/types/conversion/toMarketplace/convertOntologyDefinition.d.ts.map +1 -0
  470. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts +3 -0
  471. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts.map +1 -0
  472. package/build/types/conversion/toMarketplace/convertOntologyToValueTypeIr.d.ts +3 -0
  473. package/build/types/conversion/toMarketplace/convertOntologyToValueTypeIr.d.ts.map +1 -0
  474. package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts +4 -0
  475. package/build/types/conversion/toMarketplace/convertSectionConditionalOverride.d.ts.map +1 -0
  476. package/build/types/conversion/toMarketplace/convertSpt.d.ts +3 -0
  477. package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -0
  478. package/build/types/conversion/toMarketplace/convertValueType.d.ts +3 -0
  479. package/build/types/conversion/toMarketplace/convertValueType.d.ts.map +1 -0
  480. package/build/types/conversion/toMarketplace/convertValueTypeDataConstraints.d.ts +2 -0
  481. package/build/types/conversion/toMarketplace/convertValueTypeDataConstraints.d.ts.map +1 -0
  482. package/build/types/conversion/toMarketplace/convertValueTypesToIr.d.ts +3 -0
  483. package/build/types/conversion/toMarketplace/convertValueTypesToIr.d.ts.map +1 -0
  484. package/build/types/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.d.ts +2 -0
  485. package/build/types/conversion/toMarketplace/dataConstraintToPropertyTypeDataConstraint.d.ts.map +1 -0
  486. package/build/types/conversion/toMarketplace/getFormContentOrdering.d.ts +3 -0
  487. package/build/types/conversion/toMarketplace/getFormContentOrdering.d.ts.map +1 -0
  488. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.d.ts +3 -0
  489. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.d.ts.map +1 -0
  490. package/build/types/index.d.ts +22 -6
  491. package/build/types/index.d.ts.map +1 -1
  492. package/build/types/util/OptionalFields.d.ts +4 -0
  493. package/build/types/util/OptionalFields.d.ts.map +1 -0
  494. package/build/types/util/RequiredFields.d.ts +4 -0
  495. package/build/types/util/RequiredFields.d.ts.map +1 -0
  496. package/package.json +5 -5
  497. package/build/browser/api/defineImportSpt.js.map +0 -1
  498. package/build/browser/api/iconNames.js +0 -2
  499. package/build/browser/api/iconNames.js.map +0 -1
  500. package/build/browser/api/ontologyUtils.js +0 -243
  501. package/build/browser/api/ontologyUtils.js.map +0 -1
  502. package/build/browser/api/types.js.map +0 -1
  503. package/build/esm/api/defineImportSpt.js.map +0 -1
  504. package/build/esm/api/iconNames.js +0 -2
  505. package/build/esm/api/iconNames.js.map +0 -1
  506. package/build/esm/api/ontologyUtils.js +0 -243
  507. package/build/esm/api/ontologyUtils.js.map +0 -1
  508. package/build/esm/api/types.js.map +0 -1
  509. package/build/types/api/defineImportSpt.d.ts.map +0 -1
  510. package/build/types/api/ontologyUtils.d.ts +0 -8
  511. package/build/types/api/ontologyUtils.d.ts.map +0 -1
  512. package/build/types/api/types.d.ts +0 -625
  513. package/build/types/api/types.d.ts.map +0 -1
  514. /package/build/types/api/{iconNames.d.ts → common/BlueprintIcons.d.ts} +0 -0
@@ -15,9 +15,9 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
- import { convertToDisplayName, convertToPluralDisplayName } from "./defineObject.js";
18
+ import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
19
+ import { convertToPluralDisplayName, uppercaseFirstLetter } from "./defineObject.js";
19
20
  import { updateOntology } from "./defineOntology.js";
20
- import { OntologyEntityTypeEnum } from "./types.js";
21
21
  const typeIdPattern = /([a-z][a-z0-9\\-]*)/;
22
22
  export function defineLink(linkDefinition) {
23
23
  if ("one" in linkDefinition) {
@@ -27,15 +27,30 @@ export function defineLink(linkDefinition) {
27
27
  const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;
28
28
  !typesMatch ? process.env.NODE_ENV !== "production" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;
29
29
  }
30
- const fullLinkDefinition = "one" in linkDefinition ? {
31
- ...linkDefinition,
32
- one: convertUserOneToManyLinkDefinition(linkDefinition.one),
33
- toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)
34
- } : {
35
- ...linkDefinition,
36
- many: convertUserManyToManyLinkDefinition(linkDefinition.many),
37
- toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)
38
- };
30
+ if ("intermediaryObjectType" in linkDefinition) {
31
+ !("one" in linkDefinition.many.linkToIntermediary && linkDefinition.many.linkToIntermediary.one.object.apiName === linkDefinition.many.object.apiName && linkDefinition.many.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`) : invariant(false) : void 0;
32
+ !("one" in linkDefinition.toMany.linkToIntermediary && linkDefinition.toMany.linkToIntermediary.one.object.apiName === linkDefinition.toMany.object.apiName && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`) : invariant(false) : void 0;
33
+ }
34
+ let fullLinkDefinition;
35
+ if ("one" in linkDefinition) {
36
+ fullLinkDefinition = {
37
+ ...linkDefinition,
38
+ one: convertUserOneToManyLinkDefinition(linkDefinition.one),
39
+ toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)
40
+ };
41
+ } else if ("intermediaryObjectType" in linkDefinition) {
42
+ fullLinkDefinition = {
43
+ ...linkDefinition,
44
+ many: convertUserIntermediaryLinkDefinition(linkDefinition.many),
45
+ toMany: convertUserIntermediaryLinkDefinition(linkDefinition.toMany)
46
+ };
47
+ } else {
48
+ fullLinkDefinition = {
49
+ ...linkDefinition,
50
+ many: convertUserManyToManyLinkDefinition(linkDefinition.many),
51
+ toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)
52
+ };
53
+ }
39
54
  const linkType = {
40
55
  cardinality: "one" in linkDefinition ? linkDefinition.cardinality : undefined,
41
56
  ...fullLinkDefinition,
@@ -56,11 +71,17 @@ function convertUserManyToManyLinkDefinition(manyToMany) {
56
71
  metadata: convertLinkTypeMetadata(manyToMany.metadata)
57
72
  };
58
73
  }
74
+ function convertUserIntermediaryLinkDefinition(intermediary) {
75
+ return {
76
+ ...intermediary,
77
+ metadata: convertLinkTypeMetadata(intermediary.metadata)
78
+ };
79
+ }
59
80
  function convertLinkTypeMetadata(metadata) {
60
81
  return {
61
82
  apiName: metadata.apiName,
62
83
  displayMetadata: {
63
- displayName: metadata.displayName ?? convertToDisplayName(metadata.apiName),
84
+ displayName: metadata.displayName ?? uppercaseFirstLetter(metadata.apiName),
64
85
  pluralDisplayName: metadata.pluralDisplayName ?? convertToPluralDisplayName(metadata.apiName),
65
86
  visibility: metadata.visibility ?? "NORMAL",
66
87
  groupDisplayName: metadata.groupDisplayName ?? ""
@@ -1 +1 @@
1
- {"version":3,"file":"defineLink.js","names":["invariant","convertToDisplayName","convertToPluralDisplayName","updateOntology","OntologyEntityTypeEnum","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","fullLinkDefinition","convertUserOneToManyLinkDefinition","many","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.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 { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport {\n convertToDisplayName,\n convertToPluralDisplayName,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n const fullLinkDefinition = \"one\" in linkDefinition\n ? {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n }\n : {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? convertToDisplayName(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineLink.js","names":["invariant","OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","many","linkToIntermediary","intermediaryObjectType","fullLinkDefinition","convertUserOneToManyLinkDefinition","convertUserIntermediaryLinkDefinition","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","intermediary","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.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 { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n IntermediaryObjectLinkReference,\n IntermediaryObjectLinkReferenceUserDefinition,\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && linkDefinition.many.linkToIntermediary.one.object.apiName\n === linkDefinition.many.object.apiName\n && linkDefinition.many.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`,\n );\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && linkDefinition.toMany.linkToIntermediary.one.object.apiName\n === linkDefinition.toMany.object.apiName\n && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`,\n );\n }\n let fullLinkDefinition;\n if (\"one\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n };\n } else if (\"intermediaryObjectType\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserIntermediaryLinkDefinition(\n linkDefinition.many,\n ),\n toMany: convertUserIntermediaryLinkDefinition(\n linkDefinition.toMany,\n ),\n };\n } else {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n }\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertUserIntermediaryLinkDefinition(\n intermediary: IntermediaryObjectLinkReferenceUserDefinition,\n): IntermediaryObjectLinkReference {\n return {\n ...intermediary,\n metadata: convertLinkTypeMetadata(intermediary.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,9 +15,10 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
+ import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
18
19
  import { addNamespaceIfNone, namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
19
- import { OntologyEntityTypeEnum } from "./types.js";
20
-
20
+ import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfaceProperties.js";
21
+ import { isExotic } from "./properties/PropertyTypeType.js";
21
22
  // From https://stackoverflow.com/a/79288714
22
23
  const ISO_8601_DURATION = /^P(?!$)(?:(?:((?:\d+Y)|(?:\d+(?:\.|,)\d+Y$))?((?:\d+M)|(?:\d+(?:\.|,)\d+M$))?((?:\d+D)|(?:\d+(?:\.|,)\d+D$))?(T((?:\d+H)|(?:\d+(?:\.|,)\d+H$))?((?:\d+M)|(?:\d+(?:\.|,)\d+M$))?((?:\d+S)|(?:\d+(?:\.|,)\d+S$))?)?)|(?:\d+(?:(?:\.|,)\d+)?W))$/;
23
24
 
@@ -56,7 +57,7 @@ export function defineObject(objectDef) {
56
57
  !!isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type) ? process.env.NODE_ENV !== "production" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} must be a primitive type`) : invariant(false) : void 0;
57
58
  !!isExotic(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type) ? process.env.NODE_ENV !== "production" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`) : invariant(false) : void 0;
58
59
  objectDef.implementsInterfaces?.forEach(interfaceImpl => {
59
- const allInterfaceProperties = getAllInterfaceProperties(interfaceImpl.implements);
60
+ const allInterfaceProperties = getFlattenedInterfaceProperties(interfaceImpl.implements);
60
61
  const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => allInterfaceProperties[addNamespaceIfNone(interfaceProperty)] === undefined).map(interfaceProp => ({
61
62
  type: "invalid",
62
63
  reason: `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`
@@ -71,7 +72,7 @@ export function defineObject(objectDef) {
71
72
  reason: `Interface property ${interfaceProp[1].sharedPropertyType.apiName} not implemented by ${objectDef.apiName} object definition`
72
73
  };
73
74
  };
74
- const validations = Object.entries(getAllInterfaceProperties(interfaceImpl.implements)).map(validateProperty);
75
+ const validations = Object.entries(getFlattenedInterfaceProperties(interfaceImpl.implements)).map(validateProperty);
75
76
  const allFailedValidations = validations.concat(nonExistentInterfaceProperties).filter(val => val.type === "invalid");
76
77
  !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== "production" ? invariant(false, "\n" + allFailedValidations.map(formatValidationErrors).join("\n")) : invariant(false) : void 0;
77
78
  });
@@ -86,17 +87,6 @@ export function defineObject(objectDef) {
86
87
  objectDef.apiName = apiName;
87
88
  return objectDef;
88
89
  }
89
- export function isExotic(type) {
90
- if (type === undefined) {
91
- return false;
92
- }
93
- if (typeof type === "string") {
94
- return ["geopoint", "geoshape", "mediaReference", "geotimeSeries"].includes(type);
95
- } else if (typeof type === "object" && type != null) {
96
- return type.type === "marking" || type.type === "struct";
97
- }
98
- return false;
99
- }
100
90
  function formatValidationErrors(error) {
101
91
  return `Ontology Definition Error: ${error.reason}\n`;
102
92
  }
@@ -120,32 +110,22 @@ function validateInterfaceImplProperty(spt, mappedObjectProp, object) {
120
110
  type: "valid"
121
111
  };
122
112
  }
123
- export function convertToDisplayName(s) {
113
+ export function uppercaseFirstLetter(s) {
124
114
  return s === undefined || s == null ? "" : s.charAt(0).toUpperCase() + s.slice(1);
125
115
  }
126
116
 
127
117
  // TODO: edge cases
128
118
  export function convertToPluralDisplayName(s) {
129
- return s === undefined || s == null ? "" : s.endsWith("s") ? convertToDisplayName(s) : convertToDisplayName(s) + "s";
130
- }
131
- export function getAllInterfaceProperties(interfaceType) {
132
- let properties = interfaceType.propertiesV2;
133
- interfaceType.extendsInterfaces.forEach(ext => {
134
- properties = {
135
- ...properties,
136
- ...getAllInterfaceProperties(ext)
137
- };
138
- });
139
- return properties;
119
+ return s === undefined || s == null ? "" : s.endsWith("s") ? uppercaseFirstLetter(s) : uppercaseFirstLetter(s) + "s";
140
120
  }
141
121
  function convertUserObjectPropertyType(apiName, property) {
142
122
  // fill in missing fields to be used by actions
143
123
  property.apiName = apiName;
144
- property.displayName = property.displayName ?? convertToDisplayName(apiName);
124
+ property.displayName = property.displayName ?? uppercaseFirstLetter(apiName);
145
125
  return {
146
126
  ...property,
147
127
  apiName: apiName,
148
- displayName: property.displayName ?? convertToDisplayName(apiName),
128
+ displayName: property.displayName ?? uppercaseFirstLetter(apiName),
149
129
  type: property.type
150
130
  };
151
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defineObject.js","names":["invariant","addNamespaceIfNone","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","ISO_8601_DURATION","ISO_8601_DATETIME","API_NAME_PATTERN","defineObject","objectDef","apiName","propertyApiNames","properties","Object","keys","OBJECT_TYPE","undefined","Error","test","process","env","NODE_ENV","includes","titlePropertyApiName","primaryKeyPropertyApiName","editOnly","retentionPeriod","datasource","status","activeProperties","entries","forEach","property","push","length","join","type","deadline","isExotic","implementsInterfaces","interfaceImpl","allInterfaceProperties","getAllInterfaceProperties","implements","nonExistentInterfaceProperties","propertyMapping","map","val","interfaceProperty","filter","interfaceProp","reason","interfaceToObjectProperties","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","validateInterfaceImplProperty","validations","allFailedValidations","concat","formatValidationErrors","flattenedProperties","convertUserObjectPropertyType","finalObject","__type","error","spt","mappedObjectProp","object","objProp","JSON","stringify","convertToDisplayName","s","charAt","toUpperCase","slice","convertToPluralDisplayName","endsWith","interfaceType","propertiesV2","extendsInterfaces","ext","displayName"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport {\n addNamespaceIfNone,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n InterfaceType,\n ObjectPropertyType,\n ObjectPropertyTypeUserDefinition,\n ObjectType,\n ObjectTypeDefinition,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nconst API_NAME_PATTERN = /^([a-zA-Z][a-zA-Z0-9\\\\-]*)$/;\n\nexport function defineObject(\n objectDef: ObjectTypeDefinition,\n): ObjectTypeDefinition {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties\n ? Object.keys(objectDef.properties)\n : [];\n if (\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n API_NAME_PATTERN.test(objectDef.apiName),\n `Invalid API name ${objectDef.apiName}. API names must match the regex ${API_NAME_PATTERN}.`,\n );\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n\n invariant(\n !(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`,\n );\n\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties: string[] = [];\n Object.entries(objectDef.properties ?? {}).forEach(\n ([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n },\n );\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n !isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n !isExotic(\n objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type,\n ),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getAllInterfaceProperties(\n interfaceImpl.implements,\n );\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n allInterfaceProperties[addNamespaceIfNone(interfaceProperty)]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [\n addNamespaceIfNone(mapping.interfaceProperty),\n mapping.mapsTo,\n ],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.apiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${\n interfaceProp[1].sharedPropertyType.apiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const validations = Object.entries(\n getAllInterfaceProperties(interfaceImpl.implements),\n ).map(validateProperty);\n const allFailedValidations = validations.concat(\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n const flattenedProperties: Array<ObjectPropertyType> = Object.entries(\n objectDef.properties ?? {},\n ).map(([apiName, property]) =>\n convertUserObjectPropertyType(property.apiName ?? apiName, property)\n );\n\n const finalObject: ObjectType = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties,\n };\n updateOntology(finalObject);\n objectDef.apiName = apiName;\n return objectDef;\n}\n\nexport function isExotic(\n type: PropertyTypeType | undefined,\n): type is PropertyTypeTypeExotic {\n if (type === undefined) {\n return false;\n }\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectTypeDefinition,\n): ValidationResult {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (JSON.stringify(spt.type) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n\nexport function convertToDisplayName(s: string | undefined | null): string {\n return s === undefined || s == null\n ? \"\"\n : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(\n s: string | undefined | null,\n): string {\n return s === undefined || s == null\n ? \"\"\n : s.endsWith(\"s\")\n ? convertToDisplayName(s)\n : convertToDisplayName(s) + \"s\";\n}\n\nexport function getAllInterfaceProperties(\n interfaceType: InterfaceType,\n): Record<string, InterfacePropertyType> {\n let properties = interfaceType.propertiesV2;\n interfaceType.extendsInterfaces.forEach(ext => {\n properties = { ...properties, ...getAllInterfaceProperties(ext) };\n });\n return properties;\n}\n\nfunction convertUserObjectPropertyType(\n apiName: string,\n property: ObjectPropertyTypeUserDefinition,\n): ObjectPropertyType {\n // fill in missing fields to be used by actions\n property.apiName = apiName;\n property.displayName = property.displayName ?? convertToDisplayName(apiName);\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? convertToDisplayName(apiName),\n type: property.type,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineObject.js","names":["invariant","OntologyEntityTypeEnum","addNamespaceIfNone","namespace","ontologyDefinition","updateOntology","getFlattenedInterfaceProperties","isExotic","ISO_8601_DURATION","ISO_8601_DATETIME","API_NAME_PATTERN","defineObject","objectDef","apiName","propertyApiNames","properties","Object","keys","OBJECT_TYPE","undefined","Error","test","process","env","NODE_ENV","includes","titlePropertyApiName","primaryKeyPropertyApiName","editOnly","retentionPeriod","datasource","status","activeProperties","entries","forEach","property","push","length","join","type","deadline","implementsInterfaces","interfaceImpl","allInterfaceProperties","implements","nonExistentInterfaceProperties","propertyMapping","map","val","interfaceProperty","filter","interfaceProp","reason","interfaceToObjectProperties","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","validateInterfaceImplProperty","validations","allFailedValidations","concat","formatValidationErrors","flattenedProperties","convertUserObjectPropertyType","finalObject","__type","error","spt","mappedObjectProp","object","objProp","JSON","stringify","uppercaseFirstLetter","s","charAt","toUpperCase","slice","convertToPluralDisplayName","endsWith","displayName"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n addNamespaceIfNone,\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport type { InterfacePropertyType } from \"./interface/InterfacePropertyType.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 { isExotic } from \"./properties/PropertyTypeType.js\";\nimport type { SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nconst API_NAME_PATTERN = /^([a-zA-Z][a-zA-Z0-9\\\\-]*)$/;\n\nexport function defineObject(\n objectDef: ObjectTypeDefinition,\n): ObjectTypeDefinition {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = objectDef.properties\n ? Object.keys(objectDef.properties)\n : [];\n if (\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n API_NAME_PATTERN.test(objectDef.apiName),\n `Invalid API name ${objectDef.apiName}. API names must match the regex ${API_NAME_PATTERN}.`,\n );\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n\n invariant(\n !(objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.editOnly),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} on object ${objectDef.apiName} cannot be edit-only`,\n );\n\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties: string[] = [];\n Object.entries(objectDef.properties ?? {}).forEach(\n ([apiName, property]) => {\n if (property.status === \"active\") {\n activeProperties.push(apiName);\n }\n },\n );\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n !isExotic(objectDef.properties?.[objectDef.titlePropertyApiName]?.type),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n !isExotic(\n objectDef.properties?.[objectDef.primaryKeyPropertyApiName]?.type,\n ),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const allInterfaceProperties = getFlattenedInterfaceProperties(\n interfaceImpl.implements,\n );\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n allInterfaceProperties[addNamespaceIfNone(interfaceProperty)]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [\n addNamespaceIfNone(mapping.interfaceProperty),\n mapping.mapsTo,\n ],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.apiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${\n interfaceProp[1].sharedPropertyType.apiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const validations = Object.entries(\n getFlattenedInterfaceProperties(interfaceImpl.implements),\n ).map(validateProperty);\n const allFailedValidations = validations.concat(\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n const flattenedProperties: Array<ObjectPropertyType> = Object.entries(\n objectDef.properties ?? {},\n ).map(([apiName, property]) =>\n convertUserObjectPropertyType(property.apiName ?? apiName, property)\n );\n\n const finalObject: ObjectType = {\n ...objectDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.OBJECT_TYPE,\n properties: flattenedProperties,\n };\n updateOntology(finalObject);\n objectDef.apiName = apiName;\n return objectDef;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectTypeDefinition,\n): ValidationResult {\n const objProp = object.properties?.[mappedObjectProp];\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (JSON.stringify(spt.type) !== JSON.stringify(objProp?.type)) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n\nexport function uppercaseFirstLetter(s: string | undefined | null): string {\n return s === undefined || s == null\n ? \"\"\n : s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// TODO: edge cases\nexport function convertToPluralDisplayName(\n s: string | undefined | null,\n): string {\n return s === undefined || s == null\n ? \"\"\n : s.endsWith(\"s\")\n ? uppercaseFirstLetter(s)\n : uppercaseFirstLetter(s) + \"s\";\n}\n\nfunction convertUserObjectPropertyType(\n apiName: string,\n property: ObjectPropertyTypeUserDefinition,\n): ObjectPropertyType {\n // fill in missing fields to be used by actions\n property.apiName = apiName;\n property.displayName = property.displayName ?? uppercaseFirstLetter(apiName);\n return {\n ...property,\n apiName: apiName,\n displayName: property.displayName ?? uppercaseFirstLetter(apiName),\n type: property.type,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SACEC,kBAAkB,EAClBC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,QACT,qBAAqB;AAC5B,SAASC,+BAA+B,QAAQ,gDAAgD;AAMhG,SAASC,QAAQ,QAAQ,kCAAkC;AAG3D;AACA,MAAMC,iBAAiB,GACrB,+OAA+O;;AAEjP;AACA,MAAMC,iBAAiB,GACrB,sEAAsE;AAExE,MAAMC,gBAAgB,GAAG,6BAA6B;AAEtD,OAAO,SAASC,YAAYA,CAC1BC,SAA+B,EACT;EACtB,MAAMC,OAAO,GAAGV,SAAS,GAAGS,SAAS,CAACC,OAAO;EAC7C,MAAMC,gBAAgB,GAAGF,SAAS,CAACG,UAAU,GACzCC,MAAM,CAACC,IAAI,CAACL,SAAS,CAACG,UAAU,CAAC,GACjC,EAAE;EACN,IACEX,kBAAkB,CAACH,sBAAsB,CAACiB,WAAW,CAAC,CAACL,OAAO,CAAC,KACzDM,SAAS,EACf;IACA,MAAM,IAAIC,KAAK,CACb,4BAA4BR,SAAS,CAACC,OAAO,qBAC/C,CAAC;EACH;EACA,CACEH,gBAAgB,CAACW,IAAI,CAACT,SAAS,CAACC,OAAO,CAAC,GAAAS,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1CxB,SAAS,QAEP,oBAAoBY,SAAS,CAACC,OAAO,oCAAoCH,gBAAgB,GAAG,IAF9FV,SAAS;EAIT,CACEc,gBAAgB,CAACW,QAAQ,CAACb,SAAS,CAACc,oBAAoB,CAAC,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD3DxB,SAAS,QAEP,kBAAkBY,SAAS,CAACc,oBAAoB,6BAA6Bd,SAAS,CAACC,OAAO,EAAE,IAFlGb,SAAS;EAIT,CACEc,gBAAgB,CAACW,QAAQ,CAACb,SAAS,CAACe,yBAAyB,CAAC,GAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADhExB,SAAS,QAEP,wBAAwBY,SAAS,CAACe,yBAAyB,6BAA6Bf,SAAS,CAACC,OAAO,EAAE,IAF7Gb,SAAS;EAKT,CACE,CAAEY,SAAS,CAACG,UAAU,GAAGH,SAAS,CAACe,yBAAyB,CAAC,EAAEC,QAAS,GAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1ExB,SAAS,QAEP,wBAAwBY,SAAS,CAACe,yBAAyB,cAAcf,SAAS,CAACC,OAAO,sBAAsB,IAFlHb,SAAS;EAKT,MAAM6B,eAAe,GAAIjB,SAAS,CAACkB,UAAU,EAAUD,eAAe;EACtE,EACEA,eAAe,KAAKV,SAAS,IAAIX,iBAAiB,CAACa,IAAI,CAACQ,eAAe,CAAC,IAAAP,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1ExB,SAAS,QAEP,qBAAqB6B,eAAe,gBAAgBjB,SAAS,CAACC,OAAO,2CAA2C,IAFlHb,SAAS;;EAKT;EACA,IAAIY,SAAS,CAACmB,MAAM,KAAK,cAAc,EAAE;IACvC,MAAMC,gBAA0B,GAAG,EAAE;IACrChB,MAAM,CAACiB,OAAO,CAACrB,SAAS,CAACG,UAAU,IAAI,CAAC,CAAC,CAAC,CAACmB,OAAO,CAChD,CAAC,CAACrB,OAAO,EAAEsB,QAAQ,CAAC,KAAK;MACvB,IAAIA,QAAQ,CAACJ,MAAM,KAAK,QAAQ,EAAE;QAChCC,gBAAgB,CAACI,IAAI,CAACvB,OAAO,CAAC;MAChC;IACF,CACF,CAAC;IACD,EACEmB,gBAAgB,CAACK,MAAM,KAAK,CAAC,IAAAf,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD/BxB,SAAS,QAEP,gBAAgBY,SAAS,CAACC,OAAO,mGAC/BmB,gBAAgB,CAACM,IAAI,CAAC,IAAI,CAAC,EAC3B,IAJJtC,SAAS;EAMX;;EAEA;EACA,IACEY,SAAS,CAACmB,MAAM,IAAI,OAAOnB,SAAS,CAACmB,MAAM,KAAK,QAAQ,IACrDnB,SAAS,CAACmB,MAAM,CAACQ,IAAI,KAAK,YAAY,EACzC;IACA,MAAMC,QAAQ,GAAG5B,SAAS,CAACmB,MAAM,CAACS,QAAQ;IAC1C,EACEA,QAAQ,KAAKrB,SAAS,IAAIV,iBAAiB,CAACY,IAAI,CAACmB,QAAQ,CAAC,IAAAlB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5DxB,SAAS,QAEP,+BAA+BwC,QAAQ,gBAAgB5B,SAAS,CAACC,OAAO,2CAA2C,IAFrHb,SAAS;EAIX;EACA,CACE,CAACO,QAAQ,CAACK,SAAS,CAACG,UAAU,GAAGH,SAAS,CAACc,oBAAoB,CAAC,EAAEa,IAAI,CAAC,GAAAjB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADzExB,SAAS,QAEP,kBAAkBY,SAAS,CAACc,oBAAoB,2BAA2B,IAF7E1B,SAAS;EAIT,CACE,CAACO,QAAQ,CACPK,SAAS,CAACG,UAAU,GAAGH,SAAS,CAACe,yBAAyB,CAAC,EAAEY,IAC/D,CAAC,GAAAjB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHxB,SAAS,QAIP,wBAAwBY,SAAS,CAACe,yBAAyB,8BAA8B,IAJ3F3B,SAAS;EAOTY,SAAS,CAAC6B,oBAAoB,EAAEP,OAAO,CAACQ,aAAa,IAAI;IACvD,MAAMC,sBAAsB,GAAGrC,+BAA+B,CAC5DoC,aAAa,CAACE,UAChB,CAAC;IACD,MAAMC,8BAAkD,GAAGH,aAAa,CACrEI,eAAe,CAACC,GAAG,CAACC,GAAG,IAAIA,GAAG,CAACC,iBAAiB,CAAC,CAACC,MAAM,CACvDD,iBAAiB,IACfN,sBAAsB,CAACzC,kBAAkB,CAAC+C,iBAAiB,CAAC,CAAC,KACvD9B,SACV,CAAC,CAAC4B,GAAG,CAACI,aAAa,KAAK;MACtBZ,IAAI,EAAE,SAAS;MACfa,MAAM,EACJ,sBAAsBD,aAAa,kBAAkBvC,SAAS,CAACC,OAAO;IAC1E,CAAC,CAAC,CAAC;IAEL,MAAMwC,2BAA2B,GAAGrC,MAAM,CAACsC,WAAW,CACpDZ,aAAa,CAACI,eAAe,CAACC,GAAG,CAC/BQ,OAAO,IAAI,CACTrD,kBAAkB,CAACqD,OAAO,CAACN,iBAAiB,CAAC,EAC7CM,OAAO,CAACC,MAAM,CAElB,CACF,CAAC;IACD,MAAMC,gBAAgB,GACpBN,aAA8C,IACzB;MACrB,IACEA,aAAa,CAAC,CAAC,CAAC,CAACO,kBAAkB,CAAC7C,OAAO,IACtCwC,2BAA2B,EAChC;QACA,OAAOM,6BAA6B,CAClCR,aAAa,CAAC,CAAC,CAAC,CAACO,kBAAkB,EACnCL,2BAA2B,CAACF,aAAa,CAAC,CAAC,CAAC,CAAC,EAC7CvC,SACF,CAAC;MACH;MACA,OAAO;QACL2B,IAAI,EAAE,SAAS;QACfa,MAAM,EAAE,sBACND,aAAa,CAAC,CAAC,CAAC,CAACO,kBAAkB,CAAC7C,OAAO,uBACtBD,SAAS,CAACC,OAAO;MAC1C,CAAC;IACH,CAAC;IACD,MAAM+C,WAAW,GAAG5C,MAAM,CAACiB,OAAO,CAChC3B,+BAA+B,CAACoC,aAAa,CAACE,UAAU,CAC1D,CAAC,CAACG,GAAG,CAACU,gBAAgB,CAAC;IACvB,MAAMI,oBAAoB,GAAGD,WAAW,CAACE,MAAM,CAC7CjB,8BACF,CAAC,CAACK,MAAM,CAACF,GAAG,IAAIA,GAAG,CAACT,IAAI,KAAK,SAAS,CAAC;IACvC,EACEsB,oBAAoB,CAACxB,MAAM,KAAK,CAAC,IAAAf,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADnCxB,SAAS,QAEP,IAAI,GAAG6D,oBAAoB,CAACd,GAAG,CAACgB,sBAAsB,CAAC,CAACzB,IAAI,CAAC,IAAI,CAAC,IAFpEtC,SAAS;EAIX,CAAC,CAAC;EAEF,MAAMgE,mBAA8C,GAAGhD,MAAM,CAACiB,OAAO,CACnErB,SAAS,CAACG,UAAU,IAAI,CAAC,CAC3B,CAAC,CAACgC,GAAG,CAAC,CAAC,CAAClC,OAAO,EAAEsB,QAAQ,CAAC,KACxB8B,6BAA6B,CAAC9B,QAAQ,CAACtB,OAAO,IAAIA,OAAO,EAAEsB,QAAQ,CACrE,CAAC;EAED,MAAM+B,WAAuB,GAAG;IAC9B,GAAGtD,SAAS;IACZC,OAAO,EAAEA,OAAO;IAChBsD,MAAM,EAAElE,sBAAsB,CAACiB,WAAW;IAC1CH,UAAU,EAAEiD;EACd,CAAC;EACD3D,cAAc,CAAC6D,WAAW,CAAC;EAC3BtD,SAAS,CAACC,OAAO,GAAGA,OAAO;EAC3B,OAAOD,SAAS;AAClB;AAIA,SAASmD,sBAAsBA,CAC7BK,KAA0C,EAClC;EACR,OAAO,8BAA8BA,KAAK,CAAChB,MAAM,IAAI;AACvD;;AAEA;AACA,SAASO,6BAA6BA,CACpCU,GAAuB,EACvBC,gBAAwB,EACxBC,MAA4B,EACV;EAClB,MAAMC,OAAO,GAAGD,MAAM,CAACxD,UAAU,GAAGuD,gBAAgB,CAAC;EACrD,IAAIE,OAAO,KAAKrD,SAAS,EAAE;IACzB,OAAO;MACLoB,IAAI,EAAE,SAAS;MACfa,MAAM,EACJ,+EAA+EkB,gBAAgB;IACnG,CAAC;EACH;EACA,IAAIG,IAAI,CAACC,SAAS,CAACL,GAAG,CAAC9B,IAAI,CAAC,KAAKkC,IAAI,CAACC,SAAS,CAACF,OAAO,EAAEjC,IAAI,CAAC,EAAE;IAC9D,OAAO;MACLA,IAAI,EAAE,SAAS;MACfa,MAAM,EACJ,mGAAmGiB,GAAG,CAACxD,OAAO,qBAAqByD,gBAAgB;IACvJ,CAAC;EACH;EAEA,OAAO;IAAE/B,IAAI,EAAE;EAAQ,CAAC;AAC1B;AAEA,OAAO,SAASoC,oBAAoBA,CAACC,CAA4B,EAAU;EACzE,OAAOA,CAAC,KAAKzD,SAAS,IAAIyD,CAAC,IAAI,IAAI,GAC/B,EAAE,GACFA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC;AAC5C;;AAEA;AACA,OAAO,SAASC,0BAA0BA,CACxCJ,CAA4B,EACpB;EACR,OAAOA,CAAC,KAAKzD,SAAS,IAAIyD,CAAC,IAAI,IAAI,GAC/B,EAAE,GACFA,CAAC,CAACK,QAAQ,CAAC,GAAG,CAAC,GACfN,oBAAoB,CAACC,CAAC,CAAC,GACvBD,oBAAoB,CAACC,CAAC,CAAC,GAAG,GAAG;AACnC;AAEA,SAASX,6BAA6BA,CACpCpD,OAAe,EACfsB,QAA0C,EACtB;EACpB;EACAA,QAAQ,CAACtB,OAAO,GAAGA,OAAO;EAC1BsB,QAAQ,CAAC+C,WAAW,GAAG/C,QAAQ,CAAC+C,WAAW,IAAIP,oBAAoB,CAAC9D,OAAO,CAAC;EAC5E,OAAO;IACL,GAAGsB,QAAQ;IACXtB,OAAO,EAAEA,OAAO;IAChBqE,WAAW,EAAE/C,QAAQ,CAAC+C,WAAW,IAAIP,oBAAoB,CAAC9D,OAAO,CAAC;IAClE0B,IAAI,EAAEJ,QAAQ,CAACI;EACjB,CAAC;AACH","ignoreList":[]}