@osdk/maker 0.15.0-beta.6 → 0.15.0-beta.8

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 (188) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +26 -22
  3. package/build/browser/api/action/ActionParameter.js.map +1 -1
  4. package/build/browser/api/action/ActionParameterConfiguration.js.map +1 -1
  5. package/build/browser/api/defineAction.js +65 -22
  6. package/build/browser/api/defineAction.js.map +1 -1
  7. package/build/browser/api/defineCreateInterfaceObjectAction.js +28 -8
  8. package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -1
  9. package/build/browser/api/defineInterface.js +40 -34
  10. package/build/browser/api/defineInterface.js.map +1 -1
  11. package/build/browser/api/defineModifyInterfaceObjectAction.js +31 -8
  12. package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -1
  13. package/build/browser/api/defineObject.js +13 -9
  14. package/build/browser/api/defineObject.js.map +1 -1
  15. package/build/browser/api/defineOntology.js +6 -0
  16. package/build/browser/api/defineOntology.js.map +1 -1
  17. package/build/browser/api/defineSpt.js.map +1 -1
  18. package/build/browser/api/defineValueType.js +17 -4
  19. package/build/browser/api/defineValueType.js.map +1 -1
  20. package/build/browser/api/interface/InterfacePropertyType.js +22 -1
  21. package/build/browser/api/interface/InterfacePropertyType.js.map +1 -1
  22. package/build/browser/api/interface/InterfaceType.js.map +1 -1
  23. package/build/browser/api/interface/getFlattenedInterfaceProperties.js +9 -3
  24. package/build/browser/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
  25. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
  26. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
  27. package/build/browser/api/links/LinkType.js.map +1 -1
  28. package/build/browser/api/object/ObjectType.js.map +1 -1
  29. package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -1
  30. package/build/browser/api/object/ObjectTypeStatus.js.map +1 -1
  31. package/build/browser/api/properties/PropertyTypeType.js +1 -1
  32. package/build/browser/api/properties/PropertyTypeType.js.map +1 -1
  33. package/build/browser/api/properties/SharedPropertyType.js.map +1 -1
  34. package/build/browser/api/test/actions.test.js +6105 -5850
  35. package/build/browser/api/test/actions.test.js.map +1 -1
  36. package/build/browser/api/test/interfaces.test.js +757 -492
  37. package/build/browser/api/test/interfaces.test.js.map +1 -1
  38. package/build/browser/api/test/links.test.js +1334 -1325
  39. package/build/browser/api/test/links.test.js.map +1 -1
  40. package/build/browser/api/test/misc.test.js +262 -11
  41. package/build/browser/api/test/misc.test.js.map +1 -1
  42. package/build/browser/api/test/objects.test.js +1019 -960
  43. package/build/browser/api/test/objects.test.js.map +1 -1
  44. package/build/browser/api/test/spt.test.js +250 -103
  45. package/build/browser/api/test/spt.test.js.map +1 -1
  46. package/build/browser/api/test/valueTypes.test.js +69 -0
  47. package/build/browser/api/test/valueTypes.test.js.map +1 -1
  48. package/build/browser/cli/main.js +1 -1
  49. package/build/browser/conversion/toMarketplace/convertActionValidation.js +1 -1
  50. package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  51. package/build/browser/conversion/toMarketplace/convertInterface.js +2 -2
  52. package/build/browser/conversion/toMarketplace/convertInterface.js.map +1 -1
  53. package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
  54. package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
  55. package/build/browser/conversion/toMarketplace/convertLink.js +30 -4
  56. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
  57. package/build/browser/conversion/toMarketplace/convertMappingValue.js +35 -0
  58. package/build/browser/conversion/toMarketplace/convertMappingValue.js.map +1 -1
  59. package/build/browser/conversion/toMarketplace/convertObject.js +4 -2
  60. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
  61. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
  62. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
  63. package/build/browser/conversion/toMarketplace/convertSpt.js +4 -2
  64. package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -1
  65. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
  66. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
  67. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
  68. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
  69. package/build/browser/index.js.map +1 -1
  70. package/build/cjs/index.cjs +444 -117
  71. package/build/cjs/index.cjs.map +1 -1
  72. package/build/cjs/index.d.cts +53 -17
  73. package/build/esm/api/action/ActionParameter.js.map +1 -1
  74. package/build/esm/api/action/ActionParameterConfiguration.js.map +1 -1
  75. package/build/esm/api/defineAction.js +65 -22
  76. package/build/esm/api/defineAction.js.map +1 -1
  77. package/build/esm/api/defineCreateInterfaceObjectAction.js +28 -8
  78. package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -1
  79. package/build/esm/api/defineInterface.js +40 -34
  80. package/build/esm/api/defineInterface.js.map +1 -1
  81. package/build/esm/api/defineModifyInterfaceObjectAction.js +31 -8
  82. package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -1
  83. package/build/esm/api/defineObject.js +13 -9
  84. package/build/esm/api/defineObject.js.map +1 -1
  85. package/build/esm/api/defineOntology.js +6 -0
  86. package/build/esm/api/defineOntology.js.map +1 -1
  87. package/build/esm/api/defineSpt.js.map +1 -1
  88. package/build/esm/api/defineValueType.js +17 -4
  89. package/build/esm/api/defineValueType.js.map +1 -1
  90. package/build/esm/api/interface/InterfacePropertyType.js +22 -1
  91. package/build/esm/api/interface/InterfacePropertyType.js.map +1 -1
  92. package/build/esm/api/interface/InterfaceType.js.map +1 -1
  93. package/build/esm/api/interface/getFlattenedInterfaceProperties.js +9 -3
  94. package/build/esm/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
  95. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
  96. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
  97. package/build/esm/api/links/LinkType.js.map +1 -1
  98. package/build/esm/api/object/ObjectType.js.map +1 -1
  99. package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -1
  100. package/build/esm/api/object/ObjectTypeStatus.js.map +1 -1
  101. package/build/esm/api/properties/PropertyTypeType.js +1 -1
  102. package/build/esm/api/properties/PropertyTypeType.js.map +1 -1
  103. package/build/esm/api/properties/SharedPropertyType.js.map +1 -1
  104. package/build/esm/api/test/actions.test.js +6105 -5850
  105. package/build/esm/api/test/actions.test.js.map +1 -1
  106. package/build/esm/api/test/interfaces.test.js +757 -492
  107. package/build/esm/api/test/interfaces.test.js.map +1 -1
  108. package/build/esm/api/test/links.test.js +1334 -1325
  109. package/build/esm/api/test/links.test.js.map +1 -1
  110. package/build/esm/api/test/misc.test.js +262 -11
  111. package/build/esm/api/test/misc.test.js.map +1 -1
  112. package/build/esm/api/test/objects.test.js +1019 -960
  113. package/build/esm/api/test/objects.test.js.map +1 -1
  114. package/build/esm/api/test/spt.test.js +250 -103
  115. package/build/esm/api/test/spt.test.js.map +1 -1
  116. package/build/esm/api/test/valueTypes.test.js +69 -0
  117. package/build/esm/api/test/valueTypes.test.js.map +1 -1
  118. package/build/esm/cli/main.js +1 -1
  119. package/build/esm/conversion/toMarketplace/convertActionValidation.js +1 -1
  120. package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  121. package/build/esm/conversion/toMarketplace/convertInterface.js +2 -2
  122. package/build/esm/conversion/toMarketplace/convertInterface.js.map +1 -1
  123. package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
  124. package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
  125. package/build/esm/conversion/toMarketplace/convertLink.js +30 -4
  126. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  127. package/build/esm/conversion/toMarketplace/convertMappingValue.js +35 -0
  128. package/build/esm/conversion/toMarketplace/convertMappingValue.js.map +1 -1
  129. package/build/esm/conversion/toMarketplace/convertObject.js +4 -2
  130. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
  131. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
  132. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
  133. package/build/esm/conversion/toMarketplace/convertSpt.js +4 -2
  134. package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -1
  135. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
  136. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
  137. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
  138. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
  139. package/build/esm/index.js.map +1 -1
  140. package/build/types/api/action/ActionParameter.d.ts +2 -1
  141. package/build/types/api/action/ActionParameter.d.ts.map +1 -1
  142. package/build/types/api/action/ActionParameterConfiguration.d.ts +2 -1
  143. package/build/types/api/action/ActionParameterConfiguration.d.ts.map +1 -1
  144. package/build/types/api/defineAction.d.ts +4 -3
  145. package/build/types/api/defineAction.d.ts.map +1 -1
  146. package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -1
  147. package/build/types/api/defineInterface.d.ts +7 -5
  148. package/build/types/api/defineInterface.d.ts.map +1 -1
  149. package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -1
  150. package/build/types/api/defineObject.d.ts.map +1 -1
  151. package/build/types/api/defineOntology.d.ts.map +1 -1
  152. package/build/types/api/defineSpt.d.ts +3 -0
  153. package/build/types/api/defineSpt.d.ts.map +1 -1
  154. package/build/types/api/defineValueType.d.ts +9 -0
  155. package/build/types/api/defineValueType.d.ts.map +1 -1
  156. package/build/types/api/interface/InterfacePropertyType.d.ts +12 -2
  157. package/build/types/api/interface/InterfacePropertyType.d.ts.map +1 -1
  158. package/build/types/api/interface/InterfaceType.d.ts +3 -2
  159. package/build/types/api/interface/InterfaceType.d.ts.map +1 -1
  160. package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts +1 -1
  161. package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts.map +1 -1
  162. package/build/types/api/links/LinkType.d.ts +16 -4
  163. package/build/types/api/links/LinkType.d.ts.map +1 -1
  164. package/build/types/api/object/ObjectType.d.ts +1 -0
  165. package/build/types/api/object/ObjectType.d.ts.map +1 -1
  166. package/build/types/api/object/ObjectTypeDefinition.d.ts +1 -0
  167. package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -1
  168. package/build/types/api/object/ObjectTypeStatus.d.ts +1 -1
  169. package/build/types/api/object/ObjectTypeStatus.d.ts.map +1 -1
  170. package/build/types/api/properties/PropertyTypeType.d.ts +1 -0
  171. package/build/types/api/properties/PropertyTypeType.d.ts.map +1 -1
  172. package/build/types/api/properties/SharedPropertyType.d.ts +1 -0
  173. package/build/types/api/properties/SharedPropertyType.d.ts.map +1 -1
  174. package/build/types/conversion/toMarketplace/convertInterface.d.ts.map +1 -1
  175. package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts +3 -0
  176. package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts.map +1 -0
  177. package/build/types/conversion/toMarketplace/convertLink.d.ts +3 -2
  178. package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
  179. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts +2 -1
  180. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts.map +1 -1
  181. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
  182. package/build/types/conversion/toMarketplace/convertSpt.d.ts +1 -1
  183. package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -1
  184. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts +3 -0
  185. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts.map +1 -0
  186. package/build/types/index.d.ts +1 -0
  187. package/build/types/index.d.ts.map +1 -1
  188. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.test.js","names":["beforeEach","describe","expect","it","defineInterface","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","apiName","toThrowErrorMatchingInlineSnapshot","result","displayMetadata","displayName","toBe","description","properties","foo","ontology","toMatchInlineSnapshot","type","parentInterface","property1","property2","extends","required","propertyDefinition","searchable","status","toEqual","active","experimental","message","deadline","deprecated"],"sources":["interfaces.test.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 { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Interfaces\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"doesn't let you define the same interface twice\", () => {\n defineInterface({ apiName: \"Foo\" });\n expect(() => {\n defineInterface({ apiName: \"Foo\" });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Interface com.palantir.Foo already exists]`,\n );\n });\n\n it(\"defaults displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.displayName).toBe(\"Foo\");\n });\n\n it(\"defaults description to displayName\", () => {\n const result = defineInterface({ apiName: \"Foo\", displayName: \"d\" });\n expect(result.displayMetadata.description).toBe(\"d\");\n });\n\n it(\"defaults description to displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.description).toBe(\"Foo\");\n });\n\n describe(\"auto spts\", () => {\n it(\"auto creates spts\", () => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: \"string\",\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.foo\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"does not let you conflict spts\", () => {\n defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n\n expect(() => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: \"string\",\n },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Shared property type com.palantir.foo already exists]`,\n );\n });\n });\n\n it(\"allows extends interfaces with InterfaceType provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: \"string\",\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: \"string\",\n },\n extends: [parentInterface],\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports optional properties\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: { required: false, propertyDefinition: \"string\" },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"allows extends interfaces with apiName provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: \"string\",\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: \"string\",\n },\n extends: parentInterface,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports specifying searchable\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n searchable: false,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"defaults interface status to active\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.status).toEqual({ type: \"active\", active: {} });\n });\n\n it(\"sets interface status as experimental from opts\", () => {\n const experimentalStatus = {\n type: \"experimental\",\n experimental: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"experimental\" },\n });\n expect(result.status).toEqual(experimentalStatus);\n });\n\n it(\"sets interface status as deprecated from opts\", () => {\n const deprecatedStatus = {\n type: \"deprecated\",\n deprecated: {\n message: \"foo\",\n deadline: \"foo\",\n },\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"deprecated\", message: \"foo\", deadline: \"foo\" },\n });\n expect(result.status).toEqual(deprecatedStatus);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,cAAc,EAAEC,wBAAwB,QAAQ,sBAAsB;AAC/E,SAASC,wBAAwB,QAAQ,iBAAiB;AAE1DN,QAAQ,CAAC,YAAY,EAAE,MAAM;EAC3BD,UAAU,CAAC,YAAY;IACrB,MAAMK,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1D,CAAC,CAAC;EAEFF,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1DC,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IACnCN,MAAM,CAAC,MAAM;MACXE,eAAe,CAAC;QAAEI,OAAO,EAAE;MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAACC,kCAAkC,CACnC,sEACF,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACC,WAAW,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFV,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE,KAAK;MAAEI,WAAW,EAAE;IAAI,CAAC,CAAC;IACpEV,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,GAAG,CAAC;EACtD,CAAC,CAAC;EAEFV,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFZ,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BE,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAC5BC,eAAe,CAAC;QACdI,OAAO,EAAE,KAAK;QACdO,UAAU,EAAE;UACVC,GAAG,EAAE;QACP;MACF,CAAC,CAAC;MAEFd,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACW,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEFf,EAAE,CAAC,gCAAgC,EAAE,MAAM;MACzCI,wBAAwB,CAAC;QACvBC,OAAO,EAAE,KAAK;QACdW,IAAI,EAAE;MACR,CAAC,CAAC;MAEFjB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACW,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;MAEJhB,MAAM,CAAC,MAAM;QACXE,eAAe,CAAC;UACdI,OAAO,EAAE,KAAK;UACdO,UAAU,EAAE;YACVC,GAAG,EAAE;UACP;QACF,CAAC,CAAC;MACJ,CAAC,CAAC,CAACP,kCAAkC,CACnC,iFACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFN,EAAE,CAAC,uDAAuD,EAAE,MAAM;IAChE,MAAMiB,eAAe,GAAGhB,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BO,UAAU,EAAE;QACVM,SAAS,EAAE;MACb;IACF,CAAC,CAAC;IACqBjB,eAAe,CAAC;MACrCI,OAAO,EAAE,gBAAgB;MACzBO,UAAU,EAAE;QACVO,SAAS,EAAE;MACb,CAAC;MACDC,OAAO,EAAE,CAACH,eAAe;IAC3B,CAAC,CAAC;IAEFlB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACW,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFf,EAAE,CAAC,8BAA8B,EAAE,MAAM;IACfC,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BO,UAAU,EAAE;QACVM,SAAS,EAAE;UAAEG,QAAQ,EAAE,KAAK;UAAEC,kBAAkB,EAAE;QAAS;MAC7D;IACF,CAAC,CAAC;IAEFvB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACW,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFf,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMiB,eAAe,GAAGhB,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BO,UAAU,EAAE;QACVM,SAAS,EAAE;MACb;IACF,CAAC,CAAC;IACqBjB,eAAe,CAAC;MACrCI,OAAO,EAAE,gBAAgB;MACzBO,UAAU,EAAE;QACVO,SAAS,EAAE;MACb,CAAC;MACDC,OAAO,EAAEH;IACX,CAAC,CAAC;IAEFlB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACW,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFf,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACjBC,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BkB,UAAU,EAAE;IACd,CAAC,CAAC;IAEFxB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACW,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFf,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACiB,MAAM,CAAC,CAACC,OAAO,CAAC;MAAET,IAAI,EAAE,QAAQ;MAAEU,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEF1B,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAK1D,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdmB,MAAM,EAAE;QAAER,IAAI,EAAE;MAAe;IACjC,CAAC,CAAC;IACFjB,MAAM,CAACQ,MAAM,CAACiB,MAAM,CAAC,CAACC,OAAO,CARF;MACzBT,IAAI,EAAE,cAAc;MACpBW,YAAY,EAAE,CAAC;IACjB,CAKgD,CAAC;EACnD,CAAC,CAAC;EAEF3B,EAAE,CAAC,+CAA+C,EAAE,MAAM;IAQxD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdmB,MAAM,EAAE;QAAER,IAAI,EAAE,YAAY;QAAEY,OAAO,EAAE,KAAK;QAAEC,QAAQ,EAAE;MAAM;IAChE,CAAC,CAAC;IACF9B,MAAM,CAACQ,MAAM,CAACiB,MAAM,CAAC,CAACC,OAAO,CAXJ;MACvBT,IAAI,EAAE,YAAY;MAClBc,UAAU,EAAE;QACVF,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE;MACZ;IACF,CAK8C,CAAC;EACjD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"interfaces.test.js","names":["beforeEach","describe","expect","it","defineInterface","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","apiName","toThrowErrorMatchingInlineSnapshot","result","displayMetadata","displayName","toBe","description","properties","foo","type","ontology","toMatchInlineSnapshot","spt","required","sharedPropertyType","idp","structDefinition","field","fieldType","requireImplementation","optional","array","visibility","nullability","noEmptyCollections","noNulls","primaryKeyConstraint","parentInterface","property1","property2","extends","searchable","status","toEqual","active","experimental","message","deadline","deprecated","example"],"sources":["interfaces.test.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 { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Interfaces\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"doesn't let you define the same interface twice\", () => {\n defineInterface({ apiName: \"Foo\" });\n expect(() => {\n defineInterface({ apiName: \"Foo\" });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Interface com.palantir.Foo already exists]`,\n );\n });\n\n it(\"defaults displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.displayName).toBe(\"Foo\");\n });\n\n it(\"defaults description to displayName\", () => {\n const result = defineInterface({ apiName: \"Foo\", displayName: \"d\" });\n expect(result.displayMetadata.description).toBe(\"d\");\n });\n\n it(\"defaults description to displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.description).toBe(\"Foo\");\n });\n\n describe(\"Auto IDPs\", () => {\n it(\"Auto creates IDPs\", () => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: { type: \"string\" },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"foo\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"foo\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n });\n\n describe(\"Interface properties\", () => {\n it(\"IDPs and SPTs on the same interface\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n\n const iface = defineInterface({\n apiName: \"bar\",\n displayName: \"Bar\",\n properties: {\n \"foo\": { type: \"boolean\" },\n \"spt\": spt,\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.bar\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.bar\",\n \"displayMetadata\": {\n \"description\": \"Bar\",\n \"displayName\": \"Bar\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"foo\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"foo\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports optional properties\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n spt: { required: false, sharedPropertyType: spt },\n idp: { required: false, type: \"string\" },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"idp\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"idp\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": false,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"idp\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"Struct IDPs\", () => {\n const iface = defineInterface({\n apiName: \"bar\",\n displayName: \"Bar\",\n properties: {\n \"struct\": {\n type: {\n type: \"struct\",\n structDefinition: {\n field: {\n fieldType: \"string\",\n requireImplementation: true,\n displayMetadata: {\n displayName: \"Field\",\n },\n },\n optional: \"string\",\n },\n },\n },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.bar\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.bar\",\n \"displayMetadata\": {\n \"description\": \"Bar\",\n \"displayName\": \"Bar\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"struct\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"struct\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"struct\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"field\",\n \"displayMetadata\": {\n \"displayName\": \"Field\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"requireImplementation\": true,\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"optional\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"optional\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"requireImplementation\": true,\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Complex interface properties\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n array: true,\n description: \"Description\",\n displayName: \"Display Name\",\n visibility: \"HIDDEN\",\n nullability: {\n noEmptyCollections: true,\n noNulls: true,\n },\n });\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n spt: { required: false, sharedPropertyType: spt },\n idp: {\n required: false,\n type: \"string\",\n primaryKeyConstraint: \"MUST_BE_PK\",\n array: true,\n description: \"Description\",\n displayName: \"Display Name\",\n visibility: \"HIDDEN\",\n nullability: {\n noEmptyCollections: true,\n noNulls: true,\n },\n },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"idp\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"idp\",\n \"constraints\": {\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"MUST_BE_PK\",\n \"requireImplementation\": false,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n });\n\n it(\"allows extends interfaces with apiName provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: { type: \"string\" },\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: { type: \"string\" },\n },\n extends: parentInterface,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"property2\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"property2\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"property1\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"property1\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"supports specifying searchable\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n searchable: false,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"defaults interface status to active\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.status).toEqual({ type: \"active\", active: {} });\n });\n\n it(\"sets interface status as experimental from opts\", () => {\n const experimentalStatus = {\n type: \"experimental\",\n experimental: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"experimental\" },\n });\n expect(result.status).toEqual(experimentalStatus);\n });\n\n it(\"sets interface status as deprecated from opts\", () => {\n const deprecatedStatus = {\n type: \"deprecated\",\n deprecated: {\n message: \"foo\",\n deadline: \"foo\",\n },\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"deprecated\", message: \"foo\", deadline: \"foo\" },\n });\n expect(result.status).toEqual(deprecatedStatus);\n });\n\n it(\"sets interface status as example from opts\", () => {\n const exampleStatus = {\n type: \"example\",\n example: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"example\" },\n });\n expect(result.status).toEqual(exampleStatus);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,cAAc,EAAEC,wBAAwB,QAAQ,sBAAsB;AAC/E,SAASC,wBAAwB,QAAQ,iBAAiB;AAE1DN,QAAQ,CAAC,YAAY,EAAE,MAAM;EAC3BD,UAAU,CAAC,YAAY;IACrB,MAAMK,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1D,CAAC,CAAC;EAEFF,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1DC,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IACnCN,MAAM,CAAC,MAAM;MACXE,eAAe,CAAC;QAAEI,OAAO,EAAE;MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAACC,kCAAkC,CACnC,sEACF,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACC,WAAW,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFV,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE,KAAK;MAAEI,WAAW,EAAE;IAAI,CAAC,CAAC;IACpEV,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,GAAG,CAAC;EACtD,CAAC,CAAC;EAEFV,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFZ,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BE,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAC5BC,eAAe,CAAC;QACdI,OAAO,EAAE,KAAK;QACdO,UAAU,EAAE;UACVC,GAAG,EAAE;YAAEC,IAAI,EAAE;UAAS;QACxB;MACF,CAAC,CAAC;MACFf,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFlB,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCE,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE;MACR,CAAC,CAAC;MAEYb,eAAe,CAAC;QAC5BI,OAAO,EAAE,KAAK;QACdI,WAAW,EAAE,KAAK;QAClBG,UAAU,EAAE;UACV,KAAK,EAAE;YAAEE,IAAI,EAAE;UAAU,CAAC;UAC1B,KAAK,EAAEG;QACT;MACF,CAAC,CAAC;MACFlB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFhB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE;MACR,CAAC,CAAC;MACsBb,eAAe,CAAC;QACtCI,OAAO,EAAE,iBAAiB;QAC1BO,UAAU,EAAE;UACVK,GAAG,EAAE;YAAEC,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAEF;UAAI,CAAC;UACjDG,GAAG,EAAE;YAAEF,QAAQ,EAAE,KAAK;YAAEJ,IAAI,EAAE;UAAS;QACzC;MACF,CAAC,CAAC;MAEFf,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF,CAAC,CAAC;IAEFhB,EAAE,CAAC,aAAa,EAAE,MAAM;MACRC,eAAe,CAAC;QAC5BI,OAAO,EAAE,KAAK;QACdI,WAAW,EAAE,KAAK;QAClBG,UAAU,EAAE;UACV,QAAQ,EAAE;YACRE,IAAI,EAAE;cACJA,IAAI,EAAE,QAAQ;cACdO,gBAAgB,EAAE;gBAChBC,KAAK,EAAE;kBACLC,SAAS,EAAE,QAAQ;kBACnBC,qBAAqB,EAAE,IAAI;kBAC3BhB,eAAe,EAAE;oBACfC,WAAW,EAAE;kBACf;gBACF,CAAC;gBACDgB,QAAQ,EAAE;cACZ;YACF;UACF;QACF;MACF,CAAC,CAAC;MACF1B,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFhB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE,QAAQ;QACdY,KAAK,EAAE,IAAI;QACXf,WAAW,EAAE,aAAa;QAC1BF,WAAW,EAAE,cAAc;QAC3BkB,UAAU,EAAE,QAAQ;QACpBC,WAAW,EAAE;UACXC,kBAAkB,EAAE,IAAI;UACxBC,OAAO,EAAE;QACX;MACF,CAAC,CAAC;MACsB7B,eAAe,CAAC;QACtCI,OAAO,EAAE,iBAAiB;QAC1BO,UAAU,EAAE;UACVK,GAAG,EAAE;YAAEC,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAEF;UAAI,CAAC;UACjDG,GAAG,EAAE;YACHF,QAAQ,EAAE,KAAK;YACfJ,IAAI,EAAE,QAAQ;YACdiB,oBAAoB,EAAE,YAAY;YAClCL,KAAK,EAAE,IAAI;YACXf,WAAW,EAAE,aAAa;YAC1BF,WAAW,EAAE,cAAc;YAC3BkB,UAAU,EAAE,QAAQ;YACpBC,WAAW,EAAE;cACXC,kBAAkB,EAAE,IAAI;cACxBC,OAAO,EAAE;YACX;UACF;QACF;MACF,CAAC,CAAC;MAEF/B,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMgC,eAAe,GAAG/B,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BO,UAAU,EAAE;QACVqB,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAS;MAC9B;IACF,CAAC,CAAC;IACqBb,eAAe,CAAC;MACrCI,OAAO,EAAE,gBAAgB;MACzBO,UAAU,EAAE;QACVsB,SAAS,EAAE;UAAEpB,IAAI,EAAE;QAAS;MAC9B,CAAC;MACDqB,OAAO,EAAEH;IACX,CAAC,CAAC;IAEFjC,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFhB,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACjBC,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1B+B,UAAU,EAAE;IACd,CAAC,CAAC;IAEFrC,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFhB,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CAAC;MAAExB,IAAI,EAAE,QAAQ;MAAEyB,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEFvC,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAK1D,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE;MAAe;IACjC,CAAC,CAAC;IACFf,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CARF;MACzBxB,IAAI,EAAE,cAAc;MACpB0B,YAAY,EAAE,CAAC;IACjB,CAKgD,CAAC;EACnD,CAAC,CAAC;EAEFxC,EAAE,CAAC,+CAA+C,EAAE,MAAM;IAQxD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE,YAAY;QAAE2B,OAAO,EAAE,KAAK;QAAEC,QAAQ,EAAE;MAAM;IAChE,CAAC,CAAC;IACF3C,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CAXJ;MACvBxB,IAAI,EAAE,YAAY;MAClB6B,UAAU,EAAE;QACVF,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE;MACZ;IACF,CAK8C,CAAC;EACjD,CAAC,CAAC;EAEF1C,EAAE,CAAC,4CAA4C,EAAE,MAAM;IAKrD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE;MAAU;IAC5B,CAAC,CAAC;IACFf,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CARP;MACpBxB,IAAI,EAAE,SAAS;MACf8B,OAAO,EAAE,CAAC;IACZ,CAK2C,CAAC;EAC9C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}