@osdk/maker 0.15.0-beta.5 → 0.15.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/build/browser/api/action/ActionParameter.js.map +1 -1
  3. package/build/browser/api/action/ActionParameterConfiguration.js.map +1 -1
  4. package/build/browser/api/defineAction.js +65 -22
  5. package/build/browser/api/defineAction.js.map +1 -1
  6. package/build/browser/api/defineCreateInterfaceObjectAction.js +28 -8
  7. package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -1
  8. package/build/browser/api/defineInterface.js +40 -34
  9. package/build/browser/api/defineInterface.js.map +1 -1
  10. package/build/browser/api/defineModifyInterfaceObjectAction.js +31 -8
  11. package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -1
  12. package/build/browser/api/defineObject.js +53 -14
  13. package/build/browser/api/defineObject.js.map +1 -1
  14. package/build/browser/api/defineSpt.js.map +1 -1
  15. package/build/browser/api/interface/InterfacePropertyType.js +22 -1
  16. package/build/browser/api/interface/InterfacePropertyType.js.map +1 -1
  17. package/build/browser/api/interface/InterfaceType.js.map +1 -1
  18. package/build/browser/api/interface/getFlattenedInterfaceProperties.js +9 -3
  19. package/build/browser/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
  20. package/build/browser/api/object/ObjectType.js.map +1 -1
  21. package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -1
  22. package/build/browser/api/properties/PropertyTypeType.js +1 -1
  23. package/build/browser/api/properties/PropertyTypeType.js.map +1 -1
  24. package/build/browser/api/properties/SharedPropertyType.js.map +1 -1
  25. package/build/browser/api/test/actions.test.js +6105 -5850
  26. package/build/browser/api/test/actions.test.js.map +1 -1
  27. package/build/browser/api/test/interfaces.test.js +723 -470
  28. package/build/browser/api/test/interfaces.test.js.map +1 -1
  29. package/build/browser/api/test/links.test.js +1334 -1325
  30. package/build/browser/api/test/links.test.js.map +1 -1
  31. package/build/browser/api/test/misc.test.js +262 -11
  32. package/build/browser/api/test/misc.test.js.map +1 -1
  33. package/build/browser/api/test/objects.test.js +1872 -1412
  34. package/build/browser/api/test/objects.test.js.map +1 -1
  35. package/build/browser/api/test/spt.test.js +250 -103
  36. package/build/browser/api/test/spt.test.js.map +1 -1
  37. package/build/browser/cli/main.js +1 -1
  38. package/build/browser/conversion/toMarketplace/convertActionValidation.js +1 -1
  39. package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  40. package/build/browser/conversion/toMarketplace/convertInterface.js +2 -2
  41. package/build/browser/conversion/toMarketplace/convertInterface.js.map +1 -1
  42. package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
  43. package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
  44. package/build/browser/conversion/toMarketplace/convertMappingValue.js +35 -0
  45. package/build/browser/conversion/toMarketplace/convertMappingValue.js.map +1 -1
  46. package/build/browser/conversion/toMarketplace/convertObject.js +4 -2
  47. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
  48. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
  49. package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
  50. package/build/browser/conversion/toMarketplace/convertSpt.js +4 -2
  51. package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -1
  52. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
  53. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
  54. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
  55. package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
  56. package/build/browser/index.js.map +1 -1
  57. package/build/cjs/index.cjs +417 -114
  58. package/build/cjs/index.cjs.map +1 -1
  59. package/build/cjs/index.d.cts +28 -13
  60. package/build/esm/api/action/ActionParameter.js.map +1 -1
  61. package/build/esm/api/action/ActionParameterConfiguration.js.map +1 -1
  62. package/build/esm/api/defineAction.js +65 -22
  63. package/build/esm/api/defineAction.js.map +1 -1
  64. package/build/esm/api/defineCreateInterfaceObjectAction.js +28 -8
  65. package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -1
  66. package/build/esm/api/defineInterface.js +40 -34
  67. package/build/esm/api/defineInterface.js.map +1 -1
  68. package/build/esm/api/defineModifyInterfaceObjectAction.js +31 -8
  69. package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -1
  70. package/build/esm/api/defineObject.js +53 -14
  71. package/build/esm/api/defineObject.js.map +1 -1
  72. package/build/esm/api/defineSpt.js.map +1 -1
  73. package/build/esm/api/interface/InterfacePropertyType.js +22 -1
  74. package/build/esm/api/interface/InterfacePropertyType.js.map +1 -1
  75. package/build/esm/api/interface/InterfaceType.js.map +1 -1
  76. package/build/esm/api/interface/getFlattenedInterfaceProperties.js +9 -3
  77. package/build/esm/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
  78. package/build/esm/api/object/ObjectType.js.map +1 -1
  79. package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -1
  80. package/build/esm/api/properties/PropertyTypeType.js +1 -1
  81. package/build/esm/api/properties/PropertyTypeType.js.map +1 -1
  82. package/build/esm/api/properties/SharedPropertyType.js.map +1 -1
  83. package/build/esm/api/test/actions.test.js +6105 -5850
  84. package/build/esm/api/test/actions.test.js.map +1 -1
  85. package/build/esm/api/test/interfaces.test.js +723 -470
  86. package/build/esm/api/test/interfaces.test.js.map +1 -1
  87. package/build/esm/api/test/links.test.js +1334 -1325
  88. package/build/esm/api/test/links.test.js.map +1 -1
  89. package/build/esm/api/test/misc.test.js +262 -11
  90. package/build/esm/api/test/misc.test.js.map +1 -1
  91. package/build/esm/api/test/objects.test.js +1872 -1412
  92. package/build/esm/api/test/objects.test.js.map +1 -1
  93. package/build/esm/api/test/spt.test.js +250 -103
  94. package/build/esm/api/test/spt.test.js.map +1 -1
  95. package/build/esm/cli/main.js +1 -1
  96. package/build/esm/conversion/toMarketplace/convertActionValidation.js +1 -1
  97. package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
  98. package/build/esm/conversion/toMarketplace/convertInterface.js +2 -2
  99. package/build/esm/conversion/toMarketplace/convertInterface.js.map +1 -1
  100. package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
  101. package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
  102. package/build/esm/conversion/toMarketplace/convertMappingValue.js +35 -0
  103. package/build/esm/conversion/toMarketplace/convertMappingValue.js.map +1 -1
  104. package/build/esm/conversion/toMarketplace/convertObject.js +4 -2
  105. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
  106. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
  107. package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
  108. package/build/esm/conversion/toMarketplace/convertSpt.js +4 -2
  109. package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -1
  110. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
  111. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
  112. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
  113. package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
  114. package/build/esm/index.js.map +1 -1
  115. package/build/types/api/action/ActionParameter.d.ts +2 -1
  116. package/build/types/api/action/ActionParameter.d.ts.map +1 -1
  117. package/build/types/api/action/ActionParameterConfiguration.d.ts +2 -1
  118. package/build/types/api/action/ActionParameterConfiguration.d.ts.map +1 -1
  119. package/build/types/api/defineAction.d.ts +4 -3
  120. package/build/types/api/defineAction.d.ts.map +1 -1
  121. package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -1
  122. package/build/types/api/defineInterface.d.ts +5 -5
  123. package/build/types/api/defineInterface.d.ts.map +1 -1
  124. package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -1
  125. package/build/types/api/defineObject.d.ts.map +1 -1
  126. package/build/types/api/defineSpt.d.ts +3 -0
  127. package/build/types/api/defineSpt.d.ts.map +1 -1
  128. package/build/types/api/interface/InterfacePropertyType.d.ts +12 -2
  129. package/build/types/api/interface/InterfacePropertyType.d.ts.map +1 -1
  130. package/build/types/api/interface/InterfaceType.d.ts +3 -2
  131. package/build/types/api/interface/InterfaceType.d.ts.map +1 -1
  132. package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts +1 -1
  133. package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts.map +1 -1
  134. package/build/types/api/object/ObjectType.d.ts +1 -0
  135. package/build/types/api/object/ObjectType.d.ts.map +1 -1
  136. package/build/types/api/object/ObjectTypeDefinition.d.ts +1 -0
  137. package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -1
  138. package/build/types/api/properties/PropertyTypeType.d.ts +1 -0
  139. package/build/types/api/properties/PropertyTypeType.d.ts.map +1 -1
  140. package/build/types/api/properties/SharedPropertyType.d.ts +1 -0
  141. package/build/types/api/properties/SharedPropertyType.d.ts.map +1 -1
  142. package/build/types/conversion/toMarketplace/convertInterface.d.ts.map +1 -1
  143. package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts +3 -0
  144. package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts.map +1 -0
  145. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts +2 -1
  146. package/build/types/conversion/toMarketplace/convertMappingValue.d.ts.map +1 -1
  147. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
  148. package/build/types/conversion/toMarketplace/convertSpt.d.ts +1 -1
  149. package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -1
  150. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts +3 -0
  151. package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts.map +1 -0
  152. package/build/types/index.d.ts +1 -0
  153. package/build/types/index.d.ts.map +1 -1
  154. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"objects.test.js","names":["beforeEach","describe","expect","it","defineCreateObjectAction","defineDeleteObjectAction","defineInterface","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","titlePropertyApiName","displayName","pluralDisplayName","apiName","primaryKeyPropertyApiName","properties","type","toThrowErrorMatchingInlineSnapshot","spt","sample","foo","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","array","structDefinition","lat","lng","ontology","toMatchInlineSnapshot","datasources","retentionPeriod","editOnly","passenger","editsEnabled","flightToPassengers","one","object","metadata","toMany","manyForeignKeyProperty","id","numPassengers","linkDefinition","linkType","property","limit","flight","passengersList","objectType"],"sources":["objects.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 { defineCreateObjectAction } from \"../defineCreateObjectAction.js\";\nimport { defineDeleteObjectAction } from \"../defineDeleteObjectAction.js\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineLink } from \"../defineLink.js\";\nimport { defineObject } from \"../defineObject.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Object Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails if the api name is invalid\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo_with_underscores\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Invalid API name foo_with_underscores. API names must match the regex /^([a-zA-Z][a-zA-Z0-9\\\\\\\\-]*)$/.]`,\n );\n });\n it(\"Fails if any property reference does not exist\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Title property fizz is not defined on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property fizz does not exist on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"fizz\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Object property mapped to interface does not exist. Object Property Mapped: fizz\\n]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.fizz\",\n mapsTo: \"bar\",\n }, {\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Interface property com.palantir.fizz referenced in foo object does not exist\\n]`,\n );\n });\n\n it(\"Objects properly defined\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\", displayName: \"Bar\" },\n \"arrayProp\": {\n type: \"string\",\n array: true,\n displayName: \"Array Property Test\",\n },\n \"geopoint\": {\n type: {\n type: \"struct\",\n structDefinition: { lat: \"double\", lng: \"double\" },\n },\n displayName: \"geopoint\",\n },\n },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"foo\",\n mapsTo: \"bar\",\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.interface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\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 \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"arrayProp\": {\n \"column\": \"arrayProp\",\n \"type\": \"column\",\n },\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"geopoint\": {\n \"struct\": {\n \"column\": \"geopoint\",\n \"mapping\": {\n \"lat\": {\n \"apiName\": \"lat\",\n \"mappings\": {},\n },\n \"lng\": {\n \"apiName\": \"lng\",\n \"mappings\": {},\n },\n },\n },\n \"type\": \"struct\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [\n {\n \"interfaceTypeApiName\": \"com.palantir.interface\",\n \"linksV2\": {},\n \"properties\": {\n \"com.palantir.foo\": {\n \"propertyTypeRid\": \"bar\",\n },\n },\n \"propertiesV2\": {},\n },\n ],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"arrayProp\": {\n \"apiName\": \"arrayProp\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Array Property Test\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"geopoint\": {\n \"apiName\": \"geopoint\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"geopoint\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"lat\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lat\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"lng\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lng\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\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(\"Explicit datasource definitions are properly defined\", () => {\n const datasetBackedObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"datasetBackedObject\",\n pluralDisplayName: \"datasetBackedObject\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n datasources: [{ type: \"dataset\" }],\n });\n\n const streamBackedObjectNoRetention = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"streamBackedObjectNoRetention\",\n pluralDisplayName: \"streamBackedObjectNoRetention\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n datasources: [{ type: \"stream\" }],\n });\n\n const streamBackedObjectWithRetention = defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{ type: \"stream\", retentionPeriod: \"PT1H\" }],\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 \"com.palantir.buzz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"buzz\": \"buzz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"time\": {\n \"window\": \"PT1H\",\n },\n \"type\": \"time\",\n },\n \"streamLocator\": \"com.palantir.buzz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.buzz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.buzz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectWithRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectWithRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"buzz\",\n ],\n \"propertyTypes\": {\n \"buzz\": {\n \"apiName\": \"buzz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"buzz\",\n },\n },\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectNoRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectNoRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"fizz\",\n },\n },\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"datasetBackedObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"datasetBackedObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Restricted view datasources are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"restrictedView\" }],\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"restrictedViewV2\": {\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n \"restrictedViewRid\": \"com.palantir.foo\",\n },\n \"type\": \"restrictedViewV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Edit only properties are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: {\n \"bar\": {\n type: \"string\",\n editOnly: true,\n },\n \"fizz\": {\n type: \"string\",\n },\n },\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"editOnly\": {},\n \"type\": \"editOnly\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Fails if edit only property is primary key\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\", editOnly: true } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property bar on object foo cannot be edit-only]`,\n );\n });\n\n it(\"Fail if stream retention period is not ISO 8601 compliant\", () => {\n expect(() =>\n defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{\n type: \"stream\",\n retentionPeriod: \"bad retention period string\",\n }],\n })\n ).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Retention period \"bad retention period string\" on object \"buzz\" is not a valid ISO 8601 duration string]`,\n );\n });\n\n it(\"Property-level datasources are properly defined\", () => {\n const exampleObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObject\",\n pluralDisplayName: \"exampleObject\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"fizz\": { type: \"mediaReference\" },\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"stream\" }],\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"mediaSetView\": {\n \"assumedMarkings\": [],\n \"mediaSetViewLocator\": \"com.palantir.fizz.fizz\",\n \"properties\": [\n \"fizz\",\n ],\n },\n \"type\": \"mediaSetView\",\n },\n \"datasourceName\": \"fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"exampleObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"mediaReference\": {},\n \"type\": \"mediaReference\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Derived datasources are properly defined\", () => {\n const passenger = defineObject({\n displayName: \"Passenger\",\n pluralDisplayName: \"Passengers\",\n apiName: \"passenger\",\n primaryKeyPropertyApiName: \"name\",\n titlePropertyApiName: \"name\",\n editsEnabled: true,\n properties: {\n \"name\": {\n type: \"string\",\n displayName: \"Name\",\n },\n \"flight_id\": {\n type: \"string\",\n displayName: \"Flight ID\",\n },\n },\n });\n const flightToPassengers = defineLink({\n apiName: \"flightToPassengersLink\",\n one: {\n object: \"com.palantir.flight\",\n metadata: {\n apiName: \"flightFromPassengers\",\n },\n },\n toMany: {\n object: passenger.apiName,\n metadata: {\n apiName: \"passengersFromFlight\",\n },\n },\n manyForeignKeyProperty: \"flight_id\",\n });\n expect(() => {\n defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n numPassengers: {\n type: \"string\",\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n numPassengers: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Property 'numPassengers' on object 'flight' is not collectible]`,\n );\n const flight = defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n editsEnabled: true,\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n passengersList: {\n type: \"string\",\n array: true,\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n passengersList: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n defineCreateObjectAction({\n displayName: \"Create flight\",\n objectType: flight,\n });\n defineDeleteObjectAction({\n displayName: \"Delete flight\",\n objectType: flight,\n });\n defineCreateObjectAction({\n displayName: \"Create passenger\",\n objectType: passenger,\n });\n defineDeleteObjectAction({\n displayName: \"Delete passenger\",\n objectType: passenger,\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {\n \"com.palantir.create-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.flight\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"id\",\n ],\n \"parameters\": {\n \"id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ID\",\n \"typeClasses\": [],\n },\n \"id\": \"id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.create-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n \"propertyValues\": {\n \"flight_id\": {\n \"parameterId\": \"flight_id\",\n \"type\": \"parameterId\",\n },\n \"name\": {\n \"parameterId\": \"name\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"flight_id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n \"name\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"name\",\n \"flight_id\",\n ],\n \"parameters\": {\n \"flight_id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Flight ID\",\n \"typeClasses\": [],\n },\n \"id\": \"flight_id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"name\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Name\",\n \"typeClasses\": [],\n },\n \"id\": \"name\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.flight\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n },\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"flight-to-passengers-link\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"passengersFromFlight\",\n \"displayMetadata\": {\n \"displayName\": \"PassengersFromFlight\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"PassengersFromFlights\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.passenger\",\n \"objectTypeRidOneSide\": \"com.palantir.flight\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"id\",\n \"object\": \"com.palantir.flight\",\n },\n \"to\": {\n \"apiName\": \"flight_id\",\n \"object\": \"com.palantir.passenger\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"flightFromPassengers\",\n \"displayMetadata\": {\n \"displayName\": \"FlightFromPassengers\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"FlightFromPassengers\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"flight-to-passengers-link\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.flight\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"derived\": {\n \"definition\": {\n \"aggregatedProperties\": {\n \"linkDefinition\": {\n \"multiHopLink\": {\n \"steps\": [\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"flight-to-passengers-link\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"SOURCE\",\n },\n \"type\": \"searchAround\",\n },\n ],\n },\n \"type\": \"multiHopLink\",\n },\n \"propertyTypeMapping\": {\n \"passengersList\": {\n \"collectList\": {\n \"limit\": 100,\n \"linkedProperty\": {\n \"propertyType\": \"name\",\n \"type\": \"propertyType\",\n },\n },\n \"type\": \"collectList\",\n },\n },\n },\n \"type\": \"aggregatedProperties\",\n },\n },\n \"type\": \"derived\",\n },\n \"datasourceName\": \"com.palantir.flight.derived.0\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.flight\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.flight\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.flight\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Flights\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"id\",\n ],\n \"propertyTypes\": {\n \"id\": {\n \"apiName\": \"id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"passengersList\": {\n \"apiName\": \"passengersList\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"id\",\n },\n },\n \"com.palantir.passenger\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.passenger\",\n \"propertyMapping\": {\n \"flight_id\": {\n \"column\": \"flight_id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.passenger\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.passenger\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passenger\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"name\",\n ],\n \"propertyTypes\": {\n \"flight_id\": {\n \"apiName\": \"flight_id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"name\": {\n \"apiName\": \"name\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Name\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"name\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n});\n"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF9B,EAAE,CAAC,sDAAsD,EAAE,MAAM;IACnCK,YAAY,CAAC;MACvCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,qBAAqB;MAClCC,iBAAiB,EAAE,qBAAqB;MACxCC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QAAE,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MACzCgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAU,CAAC;IACnC,CAAC,CAAC;IAEoCV,YAAY,CAAC;MACjDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,+BAA+B;MAC5CC,iBAAiB,EAAE,+BAA+B;MAClDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS,CAAC;QAAE,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAAE,CAAC;MACrEgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEsCV,YAAY,CAAC;MACnDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE,QAAQ;QAAEiB,eAAe,EAAE;MAAO,CAAC;IAC3D,CAAC,CAAC;IAEFjC,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAACsB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF9B,EAAE,CAAC,kDAAkD,EAAE,MAAM;IAC5CK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAiB,CAAC;IAC1C,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF9B,EAAE,CAAC,2CAA2C,EAAE,MAAM;IACrCK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QACV,KAAK,EAAE;UACLC,IAAI,EAAE,QAAQ;UACdkB,QAAQ,EAAE;QACZ,CAAC;QACD,MAAM,EAAE;UACNlB,IAAI,EAAE;QACR;MACF;IACF,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF9B,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrDD,MAAM,CAAC,MAAM;MACXM,YAAY,CAAC;QACXI,oBAAoB,EAAE,KAAK;QAC3BC,WAAW,EAAE,KAAK;QAClBC,iBAAiB,EAAE,KAAK;QACxBC,OAAO,EAAE,KAAK;QACdC,yBAAyB,EAAE,KAAK;QAChCC,UAAU,EAAE;UAAE,KAAK,EAAE;YAAEC,IAAI,EAAE,QAAQ;YAAEkB,QAAQ,EAAE;UAAK;QAAE;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC,CAACjB,kCAAkC,CACnC,uFACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,2DAA2D,EAAE,MAAM;IACpED,MAAM,CAAC,MACLM,YAAY,CAAC;MACXI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CgB,WAAW,EAAE,CAAC;QACZhB,IAAI,EAAE,QAAQ;QACdiB,eAAe,EAAE;MACnB,CAAC;IACH,CAAC,CACH,CAAC,CAAChB,kCAAkC,CAClC,oIACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IACpCK,YAAY,CAAC;MACjCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,eAAe;MAC5BC,iBAAiB,EAAE,eAAe;MAClCC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAiB,CAAC;QAClC,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"objects.test.js","names":["beforeEach","describe","expect","it","defineCreateObjectAction","defineDeleteObjectAction","defineInterface","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","titlePropertyApiName","displayName","pluralDisplayName","apiName","primaryKeyPropertyApiName","properties","type","toThrowErrorMatchingInlineSnapshot","spt","sample","foo","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","array","structDefinition","lat","lng","aliases","ontology","toMatchInlineSnapshot","datasources","retentionPeriod","editOnly","passenger","editsEnabled","flightToPassengers","one","object","metadata","toMany","manyForeignKeyProperty","id","numPassengers","linkDefinition","linkType","property","limit","flight","passengersList","objectType","link_person_to_parent","visibility","description","status","side","siblingIds"],"sources":["objects.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 { defineCreateObjectAction } from \"../defineCreateObjectAction.js\";\nimport { defineDeleteObjectAction } from \"../defineDeleteObjectAction.js\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineLink } from \"../defineLink.js\";\nimport { defineObject } from \"../defineObject.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Object Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails if the api name is invalid\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo_with_underscores\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Invalid API name foo_with_underscores. API names must match the regex /^([a-zA-Z][a-zA-Z0-9\\\\\\\\-]*)$/.]`,\n );\n });\n it(\"Fails if any property reference does not exist\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Title property fizz is not defined on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property fizz does not exist on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"fizz\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Object property mapped to interface does not exist. Object Property Mapped: fizz\\n]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.fizz\",\n mapsTo: \"bar\",\n }, {\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Interface property com.palantir.fizz referenced in foo object does not exist\\n]`,\n );\n });\n\n it(\"Objects properly defined\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\", displayName: \"Bar\" },\n \"arrayProp\": {\n type: \"string\",\n array: true,\n displayName: \"Array Property Test\",\n },\n \"geopoint\": {\n type: {\n type: \"struct\",\n structDefinition: { lat: \"double\", lng: \"double\" },\n },\n displayName: \"geopoint\",\n },\n },\n aliases: [\"alias1\", \"alias2\"],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: spt.apiName,\n mapsTo: \"bar\",\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.interface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\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 \"com.palantir.foo\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": 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 \"type\": \"sharedPropertyBasedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"arrayProp\": {\n \"column\": \"arrayProp\",\n \"type\": \"column\",\n },\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"geopoint\": {\n \"struct\": {\n \"column\": \"geopoint\",\n \"mapping\": {\n \"lat\": {\n \"apiName\": \"lat\",\n \"mappings\": {},\n },\n \"lng\": {\n \"apiName\": \"lng\",\n \"mappings\": {},\n },\n },\n },\n \"type\": \"struct\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [\n \"alias1\",\n \"alias2\",\n ],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [\n {\n \"interfaceTypeApiName\": \"com.palantir.interface\",\n \"linksV2\": {},\n \"properties\": {\n \"com.palantir.foo\": {\n \"propertyTypeRid\": \"bar\",\n },\n },\n \"propertiesV2\": {},\n },\n ],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"arrayProp\": {\n \"apiName\": \"arrayProp\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Array Property Test\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\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 \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"geopoint\": {\n \"apiName\": \"geopoint\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"geopoint\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"lat\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lat\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"lng\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lng\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\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(\"Explicit datasource definitions are properly defined\", () => {\n const datasetBackedObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"datasetBackedObject\",\n pluralDisplayName: \"datasetBackedObject\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n datasources: [{ type: \"dataset\" }],\n });\n\n const streamBackedObjectNoRetention = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"streamBackedObjectNoRetention\",\n pluralDisplayName: \"streamBackedObjectNoRetention\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n datasources: [{ type: \"stream\" }],\n });\n\n const streamBackedObjectWithRetention = defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{ type: \"stream\", retentionPeriod: \"PT1H\" }],\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 \"com.palantir.buzz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"buzz\": \"buzz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"time\": {\n \"window\": \"PT1H\",\n },\n \"type\": \"time\",\n },\n \"streamLocator\": \"com.palantir.buzz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.buzz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.buzz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectWithRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectWithRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"buzz\",\n ],\n \"propertyTypes\": {\n \"buzz\": {\n \"apiName\": \"buzz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"buzz\",\n },\n },\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectNoRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectNoRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"fizz\",\n },\n },\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"datasetBackedObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"datasetBackedObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Restricted view datasources are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"restrictedView\" }],\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"restrictedViewV2\": {\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n \"restrictedViewRid\": \"com.palantir.foo\",\n },\n \"type\": \"restrictedViewV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Edit only properties are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: {\n \"bar\": {\n type: \"string\",\n editOnly: true,\n },\n \"fizz\": {\n type: \"string\",\n },\n },\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"editOnly\": {},\n \"type\": \"editOnly\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Fails if edit only property is primary key\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\", editOnly: true } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property bar on object foo cannot be edit-only]`,\n );\n });\n\n it(\"Fail if stream retention period is not ISO 8601 compliant\", () => {\n expect(() =>\n defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{\n type: \"stream\",\n retentionPeriod: \"bad retention period string\",\n }],\n })\n ).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Retention period \"bad retention period string\" on object \"buzz\" is not a valid ISO 8601 duration string]`,\n );\n });\n\n it(\"Property-level datasources are properly defined\", () => {\n const exampleObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObject\",\n pluralDisplayName: \"exampleObject\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"fizz\": { type: \"mediaReference\" },\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"stream\" }],\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"mediaSetView\": {\n \"assumedMarkings\": [],\n \"mediaSetViewLocator\": \"com.palantir.fizz.fizz\",\n \"properties\": [\n \"fizz\",\n ],\n \"uploadProperties\": [],\n },\n \"type\": \"mediaSetView\",\n },\n \"datasourceName\": \"fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"exampleObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"mediaReference\": {},\n \"type\": \"mediaReference\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Derived datasources are properly defined\", () => {\n const passenger = defineObject({\n displayName: \"Passenger\",\n pluralDisplayName: \"Passengers\",\n apiName: \"passenger\",\n primaryKeyPropertyApiName: \"name\",\n titlePropertyApiName: \"name\",\n editsEnabled: true,\n properties: {\n \"name\": {\n type: \"string\",\n displayName: \"Name\",\n },\n \"flight_id\": {\n type: \"string\",\n displayName: \"Flight ID\",\n },\n },\n });\n const flightToPassengers = defineLink({\n apiName: \"flightToPassengersLink\",\n one: {\n object: \"com.palantir.flight\",\n metadata: {\n apiName: \"flightFromPassengers\",\n },\n },\n toMany: {\n object: passenger.apiName,\n metadata: {\n apiName: \"passengersFromFlight\",\n },\n },\n manyForeignKeyProperty: \"flight_id\",\n });\n expect(() => {\n defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n numPassengers: {\n type: \"string\",\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n numPassengers: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Property 'numPassengers' on object 'flight' is not collectible]`,\n );\n const flight = defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n editsEnabled: true,\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n passengersList: {\n type: \"string\",\n array: true,\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n passengersList: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n defineCreateObjectAction({\n displayName: \"Create flight\",\n objectType: flight,\n });\n defineDeleteObjectAction({\n displayName: \"Delete flight\",\n objectType: flight,\n });\n defineCreateObjectAction({\n displayName: \"Create passenger\",\n objectType: passenger,\n });\n defineDeleteObjectAction({\n displayName: \"Delete passenger\",\n objectType: passenger,\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {\n \"com.palantir.create-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.flight\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"id\",\n ],\n \"parameters\": {\n \"id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ID\",\n \"typeClasses\": [],\n },\n \"id\": \"id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.create-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n \"propertyValues\": {\n \"flight_id\": {\n \"parameterId\": \"flight_id\",\n \"type\": \"parameterId\",\n },\n \"name\": {\n \"parameterId\": \"name\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"flight_id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n \"name\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"name\",\n \"flight_id\",\n ],\n \"parameters\": {\n \"flight_id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Flight ID\",\n \"typeClasses\": [],\n },\n \"id\": \"flight_id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"name\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Name\",\n \"typeClasses\": [],\n },\n \"id\": \"name\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.flight\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n },\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"flight-to-passengers-link\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"passengersFromFlight\",\n \"displayMetadata\": {\n \"displayName\": \"PassengersFromFlight\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"PassengersFromFlights\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.passenger\",\n \"objectTypeRidOneSide\": \"com.palantir.flight\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"id\",\n \"object\": \"com.palantir.flight\",\n },\n \"to\": {\n \"apiName\": \"flight_id\",\n \"object\": \"com.palantir.passenger\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"flightFromPassengers\",\n \"displayMetadata\": {\n \"displayName\": \"FlightFromPassengers\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"FlightFromPassengers\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"flight-to-passengers-link\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.flight\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"derived\": {\n \"definition\": {\n \"aggregatedProperties\": {\n \"linkDefinition\": {\n \"multiHopLink\": {\n \"steps\": [\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"flight-to-passengers-link\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"SOURCE\",\n },\n \"type\": \"searchAround\",\n },\n ],\n },\n \"type\": \"multiHopLink\",\n },\n \"propertyTypeMapping\": {\n \"passengersList\": {\n \"collectList\": {\n \"limit\": 100,\n \"linkedProperty\": {\n \"propertyType\": \"name\",\n \"type\": \"propertyType\",\n },\n },\n \"type\": \"collectList\",\n },\n },\n },\n \"type\": \"aggregatedProperties\",\n },\n },\n \"type\": \"derived\",\n },\n \"datasourceName\": \"com.palantir.flight.derived.0\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.flight\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.flight\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.flight\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Flights\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"id\",\n ],\n \"propertyTypes\": {\n \"id\": {\n \"apiName\": \"id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"passengersList\": {\n \"apiName\": \"passengersList\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"id\",\n },\n },\n \"com.palantir.passenger\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.passenger\",\n \"propertyMapping\": {\n \"flight_id\": {\n \"column\": \"flight_id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.passenger\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.passenger\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passenger\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"name\",\n ],\n \"propertyTypes\": {\n \"flight_id\": {\n \"apiName\": \"flight_id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"name\": {\n \"apiName\": \"name\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Name\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\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 \"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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"name\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Self-referential links on derived datasources work\", () => {\n const link_person_to_parent = defineLink({\n apiName: \"person-to-parent\",\n manyForeignKeyProperty: \"parentFk\",\n one: {\n object: \"com.palantir.person\",\n metadata: {\n apiName: \"parent\",\n displayName: \"Parent\",\n pluralDisplayName: \"Parents\",\n visibility: \"NORMAL\",\n },\n },\n toMany: {\n object: \"com.palantir.person\",\n metadata: {\n apiName: \"child\",\n displayName: \"Child\",\n pluralDisplayName: \"Children\",\n visibility: \"NORMAL\",\n },\n },\n });\n\n const obj_person = defineObject({\n displayName: \"Person\",\n pluralDisplayName: \"Persons\",\n description: \"person\",\n apiName: \"person\",\n titlePropertyApiName: \"pk\",\n primaryKeyPropertyApiName: \"pk\",\n properties: {\n \"pk\": { displayName: \"pk\", type: \"string\", status: \"experimental\" },\n \"parentFk\": {\n displayName: \"Parent FK\",\n type: \"string\",\n status: \"experimental\",\n },\n \"siblingIds\": {\n displayName: \"Sibling IDs\",\n type: \"string\",\n array: true,\n status: \"experimental\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [\n {\n linkType: link_person_to_parent,\n side: \"TARGET\",\n },\n {\n linkType: link_person_to_parent,\n side: \"SOURCE\",\n },\n ],\n propertyMapping: {\n siblingIds: {\n type: \"collectList\",\n property: \"pk\",\n limit: 100,\n },\n },\n },\n ],\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"person-to-parent\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"child\",\n \"displayMetadata\": {\n \"displayName\": \"Child\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Children\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.person\",\n \"objectTypeRidOneSide\": \"com.palantir.person\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"pk\",\n \"object\": \"com.palantir.person\",\n },\n \"to\": {\n \"apiName\": \"parentFk\",\n \"object\": \"com.palantir.person\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"parent\",\n \"displayMetadata\": {\n \"displayName\": \"Parent\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Parents\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"person-to-parent\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.person\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"derived\": {\n \"definition\": {\n \"aggregatedProperties\": {\n \"linkDefinition\": {\n \"multiHopLink\": {\n \"steps\": [\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"person-to-parent\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"TARGET\",\n },\n \"type\": \"searchAround\",\n },\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"person-to-parent\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"SOURCE\",\n },\n \"type\": \"searchAround\",\n },\n ],\n },\n \"type\": \"multiHopLink\",\n },\n \"propertyTypeMapping\": {\n \"siblingIds\": {\n \"collectList\": {\n \"limit\": 100,\n \"linkedProperty\": {\n \"propertyType\": \"pk\",\n \"type\": \"propertyType\",\n },\n },\n \"type\": \"collectList\",\n },\n },\n },\n \"type\": \"aggregatedProperties\",\n },\n },\n \"type\": \"derived\",\n },\n \"datasourceName\": \"com.palantir.person.derived.0\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.person\",\n \"propertyMapping\": {\n \"parentFk\": {\n \"column\": \"parentFk\",\n \"type\": \"column\",\n },\n \"pk\": {\n \"column\": \"pk\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.person\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"aliases\": [],\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.person\",\n \"displayMetadata\": {\n \"description\": \"person\",\n \"displayName\": \"Person\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Persons\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"pk\",\n ],\n \"propertyTypes\": {\n \"parentFk\": {\n \"apiName\": \"parentFk\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Parent FK\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"experimental\": {},\n \"type\": \"experimental\",\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 \"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 \"pk\": {\n \"apiName\": \"pk\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"pk\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"experimental\": {},\n \"type\": \"experimental\",\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 \"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 \"siblingIds\": {\n \"apiName\": \"siblingIds\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Sibling IDs\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"experimental\": {},\n \"type\": \"experimental\",\n },\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 \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"pk\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n});\n"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF/B,EAAE,CAAC,sDAAsD,EAAE,MAAM;IACnCK,YAAY,CAAC;MACvCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,qBAAqB;MAClCC,iBAAiB,EAAE,qBAAqB;MACxCC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QAAE,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MACzCiB,WAAW,EAAE,CAAC;QAAEjB,IAAI,EAAE;MAAU,CAAC;IACnC,CAAC,CAAC;IAEoCV,YAAY,CAAC;MACjDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,+BAA+B;MAC5CC,iBAAiB,EAAE,+BAA+B;MAClDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS,CAAC;QAAE,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAAE,CAAC;MACrEiB,WAAW,EAAE,CAAC;QAAEjB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEsCV,YAAY,CAAC;MACnDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CiB,WAAW,EAAE,CAAC;QAAEjB,IAAI,EAAE,QAAQ;QAAEkB,eAAe,EAAE;MAAO,CAAC;IAC3D,CAAC,CAAC;IAEFlC,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAACuB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF/B,EAAE,CAAC,kDAAkD,EAAE,MAAM;IAC5CK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDiB,WAAW,EAAE,CAAC;QAAEjB,IAAI,EAAE;MAAiB,CAAC;IAC1C,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACwB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF/B,EAAE,CAAC,2CAA2C,EAAE,MAAM;IACrCK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QACV,KAAK,EAAE;UACLC,IAAI,EAAE,QAAQ;UACdmB,QAAQ,EAAE;QACZ,CAAC;QACD,MAAM,EAAE;UACNnB,IAAI,EAAE;QACR;MACF;IACF,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACwB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EAEF/B,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrDD,MAAM,CAAC,MAAM;MACXM,YAAY,CAAC;QACXI,oBAAoB,EAAE,KAAK;QAC3BC,WAAW,EAAE,KAAK;QAClBC,iBAAiB,EAAE,KAAK;QACxBC,OAAO,EAAE,KAAK;QACdC,yBAAyB,EAAE,KAAK;QAChCC,UAAU,EAAE;UAAE,KAAK,EAAE;YAAEC,IAAI,EAAE,QAAQ;YAAEmB,QAAQ,EAAE;UAAK;QAAE;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC,CAAClB,kCAAkC,CACnC,uFACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,2DAA2D,EAAE,MAAM;IACpED,MAAM,CAAC,MACLM,YAAY,CAAC;MACXI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CiB,WAAW,EAAE,CAAC;QACZjB,IAAI,EAAE,QAAQ;QACdkB,eAAe,EAAE;MACnB,CAAC;IACH,CAAC,CACH,CAAC,CAACjB,kCAAkC,CAClC,oIACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IACpCK,YAAY,CAAC;MACjCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,eAAe;MAC5BC,iBAAiB,EAAE,eAAe;MAClCC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAiB,CAAC;QAClC,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDiB,WAAW,EAAE,CAAC;QAAEjB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACwB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EACF/B,EAAE,CAAC,0CAA0C,EAAE,MAAM;IACnD,MAAMmC,SAAS,GAAG9B,YAAY,CAAC;MAC7BK,WAAW,EAAE,WAAW;MACxBC,iBAAiB,EAAE,YAAY;MAC/BC,OAAO,EAAE,WAAW;MACpBC,yBAAyB,EAAE,MAAM;MACjCJ,oBAAoB,EAAE,MAAM;MAC5B2B,YAAY,EAAE,IAAI;MAClBtB,UAAU,EAAE;QACV,MAAM,EAAE;UACNC,IAAI,EAAE,QAAQ;UACdL,WAAW,EAAE;QACf,CAAC;QACD,WAAW,EAAE;UACXK,IAAI,EAAE,QAAQ;UACdL,WAAW,EAAE;QACf;MACF;IACF,CAAC,CAAC;IACF,MAAM2B,kBAAkB,GAAGjC,UAAU,CAAC;MACpCQ,OAAO,EAAE,wBAAwB;MACjC0B,GAAG,EAAE;QACHC,MAAM,EAAE,qBAAqB;QAC7BC,QAAQ,EAAE;UACR5B,OAAO,EAAE;QACX;MACF,CAAC;MACD6B,MAAM,EAAE;QACNF,MAAM,EAAEJ,SAAS,CAACvB,OAAO;QACzB4B,QAAQ,EAAE;UACR5B,OAAO,EAAE;QACX;MACF,CAAC;MACD8B,sBAAsB,EAAE;IAC1B,CAAC,CAAC;IACF3C,MAAM,CAAC,MAAM;MACXM,YAAY,CAAC;QACXK,WAAW,EAAE,QAAQ;QACrBC,iBAAiB,EAAE,SAAS;QAC5BC,OAAO,EAAE,QAAQ;QACjBC,yBAAyB,EAAE,IAAI;QAC/BJ,oBAAoB,EAAE,IAAI;QAC1BK,UAAU,EAAE;UACV6B,EAAE,EAAE;YACF5B,IAAI,EAAE,QAAQ;YACdL,WAAW,EAAE;UACf,CAAC;UACDkC,aAAa,EAAE;YACb7B,IAAI,EAAE,QAAQ;YACdL,WAAW,EAAE;UACf;QACF,CAAC;QACDsB,WAAW,EAAE,CACX;UAAEjB,IAAI,EAAE;QAAU,CAAC,EACnB;UACEA,IAAI,EAAE,SAAS;UACf8B,cAAc,EAAE,CAAC;YACfC,QAAQ,EAAET;UACZ,CAAC,CAAC;UACFf,eAAe,EAAE;YACfsB,aAAa,EAAE;cACb7B,IAAI,EAAE,aAAa;cACnBgC,QAAQ,EAAE,MAAM;cAChBC,KAAK,EAAE;YACT;UACF;QACF,CAAC;MAEL,CAAC,CAAC;IACJ,CAAC,CAAC,CAAChC,kCAAkC,CACnC,2FACF,CAAC;IACD,MAAMiC,MAAM,GAAG5C,YAAY,CAAC;MAC1BK,WAAW,EAAE,QAAQ;MACrBC,iBAAiB,EAAE,SAAS;MAC5BC,OAAO,EAAE,QAAQ;MACjBC,yBAAyB,EAAE,IAAI;MAC/BJ,oBAAoB,EAAE,IAAI;MAC1B2B,YAAY,EAAE,IAAI;MAClBtB,UAAU,EAAE;QACV6B,EAAE,EAAE;UACF5B,IAAI,EAAE,QAAQ;UACdL,WAAW,EAAE;QACf,CAAC;QACDwC,cAAc,EAAE;UACdnC,IAAI,EAAE,QAAQ;UACdU,KAAK,EAAE,IAAI;UACXf,WAAW,EAAE;QACf;MACF,CAAC;MACDsB,WAAW,EAAE,CACX;QAAEjB,IAAI,EAAE;MAAU,CAAC,EACnB;QACEA,IAAI,EAAE,SAAS;QACf8B,cAAc,EAAE,CAAC;UACfC,QAAQ,EAAET;QACZ,CAAC,CAAC;QACFf,eAAe,EAAE;UACf4B,cAAc,EAAE;YACdnC,IAAI,EAAE,aAAa;YACnBgC,QAAQ,EAAE,MAAM;YAChBC,KAAK,EAAE;UACT;QACF;MACF,CAAC;IAEL,CAAC,CAAC;IACF/C,wBAAwB,CAAC;MACvBS,WAAW,EAAE,eAAe;MAC5ByC,UAAU,EAAEF;IACd,CAAC,CAAC;IACF/C,wBAAwB,CAAC;MACvBQ,WAAW,EAAE,eAAe;MAC5ByC,UAAU,EAAEF;IACd,CAAC,CAAC;IACFhD,wBAAwB,CAAC;MACvBS,WAAW,EAAE,kBAAkB;MAC/ByC,UAAU,EAAEhB;IACd,CAAC,CAAC;IACFjC,wBAAwB,CAAC;MACvBQ,WAAW,EAAE,kBAAkB;MAC/ByC,UAAU,EAAEhB;IACd,CAAC,CAAC;IACFpC,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACwB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EACF/B,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,MAAMoD,qBAAqB,GAAGhD,UAAU,CAAC;MACvCQ,OAAO,EAAE,kBAAkB;MAC3B8B,sBAAsB,EAAE,UAAU;MAClCJ,GAAG,EAAE;QACHC,MAAM,EAAE,qBAAqB;QAC7BC,QAAQ,EAAE;UACR5B,OAAO,EAAE,QAAQ;UACjBF,WAAW,EAAE,QAAQ;UACrBC,iBAAiB,EAAE,SAAS;UAC5B0C,UAAU,EAAE;QACd;MACF,CAAC;MACDZ,MAAM,EAAE;QACNF,MAAM,EAAE,qBAAqB;QAC7BC,QAAQ,EAAE;UACR5B,OAAO,EAAE,OAAO;UAChBF,WAAW,EAAE,OAAO;UACpBC,iBAAiB,EAAE,UAAU;UAC7B0C,UAAU,EAAE;QACd;MACF;IACF,CAAC,CAAC;IAEiBhD,YAAY,CAAC;MAC9BK,WAAW,EAAE,QAAQ;MACrBC,iBAAiB,EAAE,SAAS;MAC5B2C,WAAW,EAAE,QAAQ;MACrB1C,OAAO,EAAE,QAAQ;MACjBH,oBAAoB,EAAE,IAAI;MAC1BI,yBAAyB,EAAE,IAAI;MAC/BC,UAAU,EAAE;QACV,IAAI,EAAE;UAAEJ,WAAW,EAAE,IAAI;UAAEK,IAAI,EAAE,QAAQ;UAAEwC,MAAM,EAAE;QAAe,CAAC;QACnE,UAAU,EAAE;UACV7C,WAAW,EAAE,WAAW;UACxBK,IAAI,EAAE,QAAQ;UACdwC,MAAM,EAAE;QACV,CAAC;QACD,YAAY,EAAE;UACZ7C,WAAW,EAAE,aAAa;UAC1BK,IAAI,EAAE,QAAQ;UACdU,KAAK,EAAE,IAAI;UACX8B,MAAM,EAAE;QACV;MACF,CAAC;MACDvB,WAAW,EAAE,CACX;QAAEjB,IAAI,EAAE;MAAU,CAAC,EACnB;QACEA,IAAI,EAAE,SAAS;QACf8B,cAAc,EAAE,CACd;UACEC,QAAQ,EAAEM,qBAAqB;UAC/BI,IAAI,EAAE;QACR,CAAC,EACD;UACEV,QAAQ,EAAEM,qBAAqB;UAC/BI,IAAI,EAAE;QACR,CAAC,CACF;QACDlC,eAAe,EAAE;UACfmC,UAAU,EAAE;YACV1C,IAAI,EAAE,aAAa;YACnBgC,QAAQ,EAAE,IAAI;YACdC,KAAK,EAAE;UACT;QACF;MACF,CAAC;IAEL,CAAC,CAAC;IAEFjD,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACwB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACJ,CAAC,CAAC","ignoreList":[]}