@osdk/maker 0.14.0-beta.3 → 0.14.0-beta.5

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 (120) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/build/browser/api/defineAction.js +130 -413
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/api/defineCreateInterfaceObjectAction.js +77 -0
  5. package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -0
  6. package/build/browser/api/defineCreateObjectAction.js +76 -0
  7. package/build/browser/api/defineCreateObjectAction.js.map +1 -0
  8. package/build/browser/api/defineCreateOrModifyObjectAction.js +92 -0
  9. package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -0
  10. package/build/browser/api/defineDeleteObjectAction.js +56 -0
  11. package/build/browser/api/defineDeleteObjectAction.js.map +1 -0
  12. package/build/browser/api/defineModifyInterfaceObjectAction.js +76 -0
  13. package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -0
  14. package/build/browser/api/defineModifyObjectAction.js +91 -0
  15. package/build/browser/api/defineModifyObjectAction.js.map +1 -0
  16. package/build/browser/api/test/actions.test.js +11181 -0
  17. package/build/browser/api/test/actions.test.js.map +1 -0
  18. package/build/browser/api/test/interfaces.test.js +924 -0
  19. package/build/browser/api/test/interfaces.test.js.map +1 -0
  20. package/build/browser/api/test/links.test.js +1974 -0
  21. package/build/browser/api/test/links.test.js.map +1 -0
  22. package/build/browser/api/{markingconstraint.test.js → test/markingconstraint.test.js} +28 -2
  23. package/build/browser/api/test/markingconstraint.test.js.map +1 -0
  24. package/build/browser/api/test/misc.test.js +1058 -0
  25. package/build/browser/api/test/misc.test.js.map +1 -0
  26. package/build/browser/api/{objectStatus.test.js → test/objectStatus.test.js} +2 -2
  27. package/build/browser/api/test/objectStatus.test.js.map +1 -0
  28. package/build/browser/api/test/objects.test.js +1494 -0
  29. package/build/browser/api/test/objects.test.js.map +1 -0
  30. package/build/browser/api/test/spt.test.js +387 -0
  31. package/build/browser/api/test/spt.test.js.map +1 -0
  32. package/build/browser/api/test/valueTypes.test.js +156 -0
  33. package/build/browser/api/test/valueTypes.test.js.map +1 -0
  34. package/build/browser/cli/main.js +1 -1
  35. package/build/browser/index.js +7 -1
  36. package/build/browser/index.js.map +1 -1
  37. package/build/cjs/index.cjs +593 -510
  38. package/build/cjs/index.cjs.map +1 -1
  39. package/build/cjs/index.d.cts +31 -14
  40. package/build/esm/api/defineAction.js +130 -413
  41. package/build/esm/api/defineAction.js.map +1 -1
  42. package/build/esm/api/defineCreateInterfaceObjectAction.js +77 -0
  43. package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -0
  44. package/build/esm/api/defineCreateObjectAction.js +76 -0
  45. package/build/esm/api/defineCreateObjectAction.js.map +1 -0
  46. package/build/esm/api/defineCreateOrModifyObjectAction.js +92 -0
  47. package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -0
  48. package/build/esm/api/defineDeleteObjectAction.js +56 -0
  49. package/build/esm/api/defineDeleteObjectAction.js.map +1 -0
  50. package/build/esm/api/defineModifyInterfaceObjectAction.js +76 -0
  51. package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -0
  52. package/build/esm/api/defineModifyObjectAction.js +91 -0
  53. package/build/esm/api/defineModifyObjectAction.js.map +1 -0
  54. package/build/esm/api/test/actions.test.js +11181 -0
  55. package/build/esm/api/test/actions.test.js.map +1 -0
  56. package/build/esm/api/test/interfaces.test.js +924 -0
  57. package/build/esm/api/test/interfaces.test.js.map +1 -0
  58. package/build/esm/api/test/links.test.js +1974 -0
  59. package/build/esm/api/test/links.test.js.map +1 -0
  60. package/build/esm/api/{markingconstraint.test.js → test/markingconstraint.test.js} +28 -2
  61. package/build/esm/api/test/markingconstraint.test.js.map +1 -0
  62. package/build/esm/api/test/misc.test.js +1058 -0
  63. package/build/esm/api/test/misc.test.js.map +1 -0
  64. package/build/esm/api/{objectStatus.test.js → test/objectStatus.test.js} +2 -2
  65. package/build/esm/api/test/objectStatus.test.js.map +1 -0
  66. package/build/esm/api/test/objects.test.js +1494 -0
  67. package/build/esm/api/test/objects.test.js.map +1 -0
  68. package/build/esm/api/test/spt.test.js +387 -0
  69. package/build/esm/api/test/spt.test.js.map +1 -0
  70. package/build/esm/api/test/valueTypes.test.js +156 -0
  71. package/build/esm/api/test/valueTypes.test.js.map +1 -0
  72. package/build/esm/cli/main.js +1 -1
  73. package/build/esm/index.js +7 -1
  74. package/build/esm/index.js.map +1 -1
  75. package/build/types/api/defineAction.d.ts +27 -7
  76. package/build/types/api/defineAction.d.ts.map +1 -1
  77. package/build/types/api/defineCreateInterfaceObjectAction.d.ts +3 -0
  78. package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -0
  79. package/build/types/api/defineCreateObjectAction.d.ts +3 -0
  80. package/build/types/api/defineCreateObjectAction.d.ts.map +1 -0
  81. package/build/types/api/defineCreateOrModifyObjectAction.d.ts +3 -0
  82. package/build/types/api/defineCreateOrModifyObjectAction.d.ts.map +1 -0
  83. package/build/types/api/defineDeleteObjectAction.d.ts +3 -0
  84. package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -0
  85. package/build/types/api/defineModifyInterfaceObjectAction.d.ts +3 -0
  86. package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -0
  87. package/build/types/api/defineModifyObjectAction.d.ts +3 -0
  88. package/build/types/api/defineModifyObjectAction.d.ts.map +1 -0
  89. package/build/types/api/test/actions.test.d.ts.map +1 -0
  90. package/build/types/api/test/interfaces.test.d.ts.map +1 -0
  91. package/build/types/api/test/links.test.d.ts.map +1 -0
  92. package/build/types/api/test/markingconstraint.test.d.ts +1 -0
  93. package/build/types/api/test/markingconstraint.test.d.ts.map +1 -0
  94. package/build/types/api/test/misc.test.d.ts +1 -0
  95. package/build/types/api/test/misc.test.d.ts.map +1 -0
  96. package/build/types/api/test/objectStatus.test.d.ts +1 -0
  97. package/build/types/api/test/objectStatus.test.d.ts.map +1 -0
  98. package/build/types/api/test/objects.test.d.ts +1 -0
  99. package/build/types/api/test/objects.test.d.ts.map +1 -0
  100. package/build/types/api/test/spt.test.d.ts +1 -0
  101. package/build/types/api/test/spt.test.d.ts.map +1 -0
  102. package/build/types/api/test/valueTypes.test.d.ts +1 -0
  103. package/build/types/api/test/valueTypes.test.d.ts.map +1 -0
  104. package/build/types/index.d.ts +7 -1
  105. package/build/types/index.d.ts.map +1 -1
  106. package/package.json +5 -5
  107. package/build/browser/api/markingconstraint.test.js.map +0 -1
  108. package/build/browser/api/objectStatus.test.js.map +0 -1
  109. package/build/browser/api/overall.test.js +0 -14002
  110. package/build/browser/api/overall.test.js.map +0 -1
  111. package/build/esm/api/markingconstraint.test.js.map +0 -1
  112. package/build/esm/api/objectStatus.test.js.map +0 -1
  113. package/build/esm/api/overall.test.js +0 -14002
  114. package/build/esm/api/overall.test.js.map +0 -1
  115. package/build/types/api/markingconstraint.test.d.ts.map +0 -1
  116. package/build/types/api/objectStatus.test.d.ts.map +0 -1
  117. package/build/types/api/overall.test.d.ts.map +0 -1
  118. /package/build/types/api/{markingconstraint.test.d.ts → test/actions.test.d.ts} +0 -0
  119. /package/build/types/api/{objectStatus.test.d.ts → test/interfaces.test.d.ts} +0 -0
  120. /package/build/types/api/{overall.test.d.ts → test/links.test.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"overall.test.js","names":["fs","path","fileURLToPath","beforeEach","describe","expect","it","addDependency","OntologyEntityTypeEnum","CREATE_OR_MODIFY_OBJECT_PARAMETER","defineAction","defineCreateInterfaceObjectAction","defineCreateObjectAction","defineCreateOrModifyObjectAction","defineDeleteObjectAction","defineModifyInterfaceObjectAction","defineModifyObjectAction","MODIFY_OBJECT_PARAMETER","defineInterface","defineInterfaceLinkConstraint","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineSharedPropertyType","defineValueType","importOntologyEntity","importSharedPropertyType","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","testStringValueType","description","length","minSize","maxSize","failureMessage","message","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","properties","valueType","ontology","objectPropertyType","objectTypes","objectType","propertyTypes","toEqual","packageNamespace","displayMetadata","dataConstraints","toBeDefined","propertyTypeConstraints","toHaveLength","constraintWrapper","toBe","string","toMatchInlineSnapshot","result","foo","parentInterface","property1","property2","extends","required","propertyDefinition","searchable","a","b","not","toBeUndefined","from","toOne","toMany","fooSpt","icon","color","locator","structDefinition","fieldType","undefined","spt","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","status","active","experimental","deadline","deprecated","sample","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","array","lat","lng","object","otherObject","one","metadata","manyForeignKeyProperty","many","bar","fizz","intermediaryObject","barToBuzz","fizzToBuzz","linkToIntermediary","intermediaryObjectType","datasource","retentionPeriod","editOnly","markingType","markingInputGroupName","classificationConstraint","datasources","dataSecurity","markingGroupName","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","parameters","id","validation","allowedValues","exampleStructPropertyType","simpleProperty","mySpt","exampleInterface","exampleObjectType","interfaceType","addOrModifyObjectRuleV2","objectToModify","propertyValues","parameterId","structFieldValues","modifyObjectRule","defaultVisibility","conditionalOverrides","condition","name","interfaceTypes","actionLevelValidation","typeClasses","parameterOrdering","parameterConfiguration","conditions","matches","staticValue","defaultValue","excludedProperties","defaultFormat","enableLayoutSwitch","submissionMetadata","successMessage","undoButtonConfiguration","submitButtonDisplayMetadata","intent","text","primaryKeyOption","nonParameterMappings","sampleObject","boolean","toThrowError","employeeObject","managerObject","editsEnabled","customParameterType","objectReference","objectTypeId","objectParameterPropertyValue","propertyTypeId","comparison","operator","left","userProperty","userId","currentUser","propertyValue","organizationMarkingIds","right","stringList","strings","objectWithArrays","sections","importedInterface","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","double","other","toThrow","pulseRepetitionIntervalSecs","SHARED_PROPERTY_TYPE","packageName","typeHint","nonNameSpacedApiName","__type","generatedDir","resolve","join","__dirname","myInterface","readFileSync","rmSync","recursive","force","iProperty1","childInterface","iProperty2","import","meta","url","packageJson","JSON","parse","toContain"],"sources":["overall.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as fs from \"fs\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { addDependency } from \"./addDependency.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n CREATE_OR_MODIFY_OBJECT_PARAMETER,\n defineAction,\n defineCreateInterfaceObjectAction,\n defineCreateObjectAction,\n defineCreateOrModifyObjectAction,\n defineDeleteObjectAction,\n defineModifyInterfaceObjectAction,\n defineModifyObjectAction,\n MODIFY_OBJECT_PARAMETER,\n} from \"./defineAction.js\";\nimport { defineInterface } from \"./defineInterface.js\";\nimport { defineInterfaceLinkConstraint } from \"./defineInterfaceLinkConstraint.js\";\nimport { defineLink } from \"./defineLink.js\";\nimport { defineObject } from \"./defineObject.js\";\nimport {\n defineOntology,\n dumpOntologyFullMetadata,\n dumpValueTypeWireType,\n} from \"./defineOntology.js\";\nimport { defineSharedPropertyType } from \"./defineSpt.js\";\nimport { defineValueType } from \"./defineValueType.js\";\nimport { importOntologyEntity } from \"./importOntologyEntity.js\";\nimport { importSharedPropertyType } from \"./importSharedPropertyType.js\";\nimport { type InterfaceType } from \"./interface/InterfaceType.js\";\nimport { type SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\ndescribe(\"Ontology Defining\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n describe(\"ValueTypes\", () => {\n it(\"Fails to define value type with incorrect semver\", () => {\n expect(() =>\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"not a version\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n \"[Error: Invariant failed: Version is not a valid semver]\",\n );\n });\n\n it(\"Tests convertProperty function with valueType constraints for string\", () => {\n const testStringValueType = defineValueType({\n apiName: \"stringWithConstraints\",\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n type: {\n \"type\": \"string\",\n constraints: [\n {\n constraint: {\n type: \"length\",\n length: {\n minSize: 5,\n maxSize: 20,\n },\n },\n failureMessage: {\n message: \"String must be between 5 and 20 characters\",\n },\n },\n ],\n },\n version: \"1.0.0\",\n });\n\n const object = defineObject({\n titlePropertyApiName: \"constrainedString\",\n displayName: \"Test Object\",\n pluralDisplayName: \"Test Objects\",\n apiName: \"testObject\",\n primaryKeyPropertyApiName: \"constrainedString\",\n properties: {\n \"constrainedString\": {\n type: \"string\",\n displayName: \"Constrained String\",\n valueType: testStringValueType,\n },\n },\n });\n\n const ontology = dumpOntologyFullMetadata();\n const objectPropertyType =\n ontology.ontology.objectTypes[\"com.palantir.testObject\"]\n .objectType.propertyTypes[\"constrainedString\"];\n\n expect(objectPropertyType.valueType).toEqual({\n apiName: \"stringWithConstraints\",\n version: \"1.0.0\",\n packageNamespace: \"com.palantir\",\n displayMetadata: {\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n },\n });\n\n expect(objectPropertyType.dataConstraints).toBeDefined();\n expect(objectPropertyType.dataConstraints?.propertyTypeConstraints)\n .toHaveLength(1);\n\n const constraintWrapper = objectPropertyType.dataConstraints\n ?.propertyTypeConstraints[0];\n expect(constraintWrapper?.constraints?.type).toBe(\"string\");\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.minSize,\n ).toBe(5);\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.maxSize,\n ).toBe(20);\n expect(constraintWrapper?.failureMessage?.message).toBe(\n \"String must be between 5 and 20 characters\",\n );\n });\n\n it(\"Correctly serializes a value type\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n\n // N.B Not sure what this is for but I don't want to break anything so I added the eslint ignore\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n describe(\"Interfaces\", () => {\n it(\"doesn't let you define the same interface twice\", () => {\n defineInterface({ apiName: \"Foo\" });\n expect(() => {\n defineInterface({ apiName: \"Foo\" });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Interface com.palantir.Foo already exists]`,\n );\n });\n\n it(\"defaults displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.displayName).toBe(\"Foo\");\n });\n\n it(\"defaults description to displayName\", () => {\n const result = defineInterface({ apiName: \"Foo\", displayName: \"d\" });\n expect(result.displayMetadata.description).toBe(\"d\");\n });\n\n it(\"defaults description to displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.description).toBe(\"Foo\");\n });\n\n describe(\"auto spts\", () => {\n it(\"auto creates spts\", () => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: \"string\",\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.foo\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"does not let you conflict spts\", () => {\n defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n\n expect(() => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: \"string\",\n },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Shared property type com.palantir.foo already exists]`,\n );\n });\n });\n\n it(\"allows extends interfaces with InterfaceType provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: \"string\",\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: \"string\",\n },\n extends: [parentInterface],\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports optional properties\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: { required: false, propertyDefinition: \"string\" },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"allows extends interfaces with apiName provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: \"string\",\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: \"string\",\n },\n extends: parentInterface,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports specifying searchable\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n searchable: false,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n });\n\n describe(\"ILTs\", () => {\n let a: InterfaceType;\n let b: InterfaceType;\n\n beforeEach(() => {\n a = defineInterface({ apiName: \"A\" });\n b = defineInterface({ apiName: \"B\" });\n });\n\n it(\"single link works\", () => {\n expect(a).not.toBeUndefined();\n defineInterfaceLinkConstraint({\n from: a,\n toOne: b,\n apiName: \"singleLink\",\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.A\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.A\",\n \"displayMetadata\": {\n \"description\": \"A\",\n \"displayName\": \"A\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [\n {\n \"cardinality\": \"SINGLE\",\n \"linkedEntityTypeId\": {\n \"interfaceType\": \"com.palantir.B\",\n \"type\": \"interfaceType\",\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.singleLink\",\n \"description\": \"singleLink\",\n \"displayName\": \"singleLink\",\n },\n \"required\": true,\n },\n ],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.B\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.B\",\n \"displayMetadata\": {\n \"description\": \"B\",\n \"displayName\": \"B\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"many link works\", () => {\n defineInterfaceLinkConstraint({\n from: a,\n toMany: b,\n apiName: \"manyLink\",\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.A\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.A\",\n \"displayMetadata\": {\n \"description\": \"A\",\n \"displayName\": \"A\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [\n {\n \"cardinality\": \"MANY\",\n \"linkedEntityTypeId\": {\n \"interfaceType\": \"com.palantir.B\",\n \"type\": \"interfaceType\",\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.manyLink\",\n \"description\": \"manyLink\",\n \"displayName\": \"manyLink\",\n },\n \"required\": true,\n },\n ],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.B\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.B\",\n \"displayMetadata\": {\n \"description\": \"B\",\n \"displayName\": \"B\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n });\n\n describe(\"SPTs\", () => {\n it(\"doesn't let you create the same spt twice\", () => {\n defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n expect(() => {\n defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Shared property type com.palantir.foo already exists]`,\n );\n });\n });\n\n it(\"uses a predefined spt\", () => {\n const fooSpt = defineSharedPropertyType({\n apiName: \"fooSpt\",\n type: \"string\",\n });\n\n const FooInterface = defineInterface({\n apiName: \"FooInterface\",\n displayName: \"Foo Interface\",\n properties: {\n fooSpt,\n },\n icon: { color: \"#00000\", locator: \"airplane\" },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.FooInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.FooInterface\",\n \"displayMetadata\": {\n \"description\": \"Foo Interface\",\n \"displayName\": \"Foo Interface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#00000\",\n \"locator\": \"airplane\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.fooSpt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.fooSpt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"fooSpt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.fooSpt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.fooSpt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"fooSpt\",\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(\"properly serializes both types of struct SPTs\", () => {\n const fooSpt = defineSharedPropertyType({\n apiName: \"fooSpt\",\n type: {\n type: \"struct\",\n structDefinition: {\n \"simpleProperty\": \"boolean\",\n \"complexProperty\": {\n fieldType: \"date\",\n displayMetadata: {\n displayName: \"complex property\",\n description: undefined,\n },\n },\n },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.fooSpt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.fooSpt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"fooSpt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"simpleProperty\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"simpleProperty\",\n },\n \"fieldType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"complexProperty\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"complex property\",\n },\n \"fieldType\": {\n \"date\": {},\n \"type\": \"date\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"Custom string fields properly set\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: {\n type: \"string\",\n isLongText: true,\n supportsEfficientLeadingWildcard: true,\n supportsExactMatching: false,\n },\n });\n\n defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.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\": true,\n \"supportsEfficientLeadingWildcard\": true,\n \"supportsExactMatching\": false,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": true,\n \"supportsEfficientLeadingWildcard\": true,\n \"supportsExactMatching\": false,\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(\"defaults interface status to active\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.status).toEqual({ type: \"active\", active: {} });\n });\n\n it(\"sets interface status as experimental from opts\", () => {\n const experimentalStatus = {\n type: \"experimental\",\n experimental: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"experimental\" },\n });\n expect(result.status).toEqual(experimentalStatus);\n });\n\n it(\"sets interface status as deprecated from opts\", () => {\n const deprecatedStatus = {\n type: \"deprecated\",\n deprecated: {\n message: \"foo\",\n deadline: \"foo\",\n },\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"deprecated\", message: \"foo\", deadline: \"foo\" },\n });\n expect(result.status).toEqual(deprecatedStatus);\n });\n\n describe(\"Objects\", () => {\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 it(\"One To Many Links are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n one: {\n object: object,\n metadata: {\n apiName: \"fizzes\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foos\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizzes\",\n apiName: \"foos\",\n },\n },\n manyForeignKeyProperty: \"bar\",\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizz-to-foo\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"foos\",\n \"displayMetadata\": {\n \"displayName\": \"Fizz\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Fizzes\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.fizz\",\n \"objectTypeRidOneSide\": \"com.palantir.foo\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.foo\",\n },\n \"to\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.fizz\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"fizzes\",\n \"displayMetadata\": {\n \"displayName\": \"Foo\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Foos\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"fizz-to-foo\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.fizz\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\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\": \"Fizz\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Fizz\",\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\": \"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 `);\n });\n\n it(\"Many To Many Links are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n many: {\n object: object,\n metadata: {\n displayName: \"Foo\",\n pluralDisplayName: \"Foos\",\n apiName: \"fizzes\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizzes\",\n apiName: \"foos\",\n },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizz-to-foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"dataset\": {\n \"datasetRid\": \"link-fizzToFoo\",\n \"objectTypeAPrimaryKeyMapping\": [\n {\n \"column\": \"bar\",\n \"property\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.foo\",\n },\n },\n ],\n \"objectTypeBPrimaryKeyMapping\": [\n {\n \"column\": \"fizz\",\n \"property\": {\n \"apiName\": \"fizz\",\n \"object\": \"com.palantir.fizz\",\n },\n },\n ],\n \"writebackDatasetRid\": undefined,\n },\n \"type\": \"dataset\",\n },\n \"datasourceName\": \"fizzToFoo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": undefined,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"manyToMany\": {\n \"objectTypeAPrimaryKeyPropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.foo\",\n },\n \"to\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.foo\",\n },\n },\n ],\n \"objectTypeAToBLinkMetadata\": {\n \"apiName\": \"fizzes\",\n \"displayMetadata\": {\n \"displayName\": \"Foo\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Foos\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeBPrimaryKeyPropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"fizz\",\n \"object\": \"com.palantir.fizz\",\n },\n \"to\": {\n \"apiName\": \"fizz\",\n \"object\": \"com.palantir.fizz\",\n },\n },\n ],\n \"objectTypeBToALinkMetadata\": {\n \"apiName\": \"foos\",\n \"displayMetadata\": {\n \"displayName\": \"Fizz\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Fizzes\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidA\": \"com.palantir.foo\",\n \"objectTypeRidB\": \"com.palantir.fizz\",\n \"peeringMetadata\": undefined,\n },\n \"type\": \"manyToMany\",\n },\n \"id\": \"fizz-to-foo\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.fizz\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\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\": \"Fizz\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Fizz\",\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\": \"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 `);\n });\n\n it(\"Intermediary link types are properly defined\", () => {\n const bar = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Bar\",\n pluralDisplayName: \"Bar\",\n apiName: \"barObject\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n\n const fizz = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizzObject\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" } },\n });\n\n const intermediaryObject = defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"Buzz\",\n pluralDisplayName: \"Buzz\",\n apiName: \"buzzObject\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: {\n \"buzz\": { type: \"string\" },\n \"barBuzz\": { type: \"string\" },\n \"fizzBuzz\": { type: \"string\" },\n },\n });\n\n const barToBuzz = defineLink({\n apiName: \"barToBuzz\",\n manyForeignKeyProperty: \"barBuzz\",\n one: {\n object: bar,\n metadata: {\n displayName: \"Buzz\",\n pluralDisplayName: \"Buzz\",\n apiName: \"buzz1\",\n },\n },\n toMany: {\n object: intermediaryObject,\n metadata: {\n displayName: \"Bar\",\n pluralDisplayName: \"Bars\",\n apiName: \"bars\",\n },\n },\n });\n\n const fizzToBuzz = defineLink({\n apiName: \"fizzToBuzz\",\n manyForeignKeyProperty: \"fizzBuzz\",\n one: {\n object: fizz,\n metadata: {\n displayName: \"Buzz\",\n pluralDisplayName: \"Buzz\",\n apiName: \"buzz2\",\n },\n },\n toMany: {\n object: intermediaryObject,\n metadata: {\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizzes\",\n apiName: \"fizzes\",\n },\n },\n });\n\n defineLink({\n apiName: \"fizzToBar\",\n many: {\n object: bar,\n metadata: {\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizzes\",\n apiName: \"fizzes1\",\n },\n linkToIntermediary: barToBuzz,\n },\n toMany: {\n object: fizz,\n metadata: {\n displayName: \"Bar\",\n pluralDisplayName: \"Bars\",\n apiName: \"bars1\",\n },\n linkToIntermediary: fizzToBuzz,\n },\n intermediaryObjectType: intermediaryObject,\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"bar-to-buzz\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"bars\",\n \"displayMetadata\": {\n \"displayName\": \"Bar\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Bars\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.buzzObject\",\n \"objectTypeRidOneSide\": \"com.palantir.barObject\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.barObject\",\n },\n \"to\": {\n \"apiName\": \"barBuzz\",\n \"object\": \"com.palantir.buzzObject\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"buzz1\",\n \"displayMetadata\": {\n \"displayName\": \"Buzz\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"bar-to-buzz\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"fizz-to-bar\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"intermediary\": {\n \"aToIntermediaryLinkTypeRid\": \"bar-to-buzz\",\n \"intermediaryObjectTypeRid\": \"com.palantir.buzzObject\",\n \"intermediaryToBLinkTypeRid\": \"fizz-to-buzz\",\n \"objectTypeAToBLinkMetadata\": {\n \"apiName\": \"fizzes1\",\n \"displayMetadata\": {\n \"displayName\": \"Fizz\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Fizzes\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeBToALinkMetadata\": {\n \"apiName\": \"bars1\",\n \"displayMetadata\": {\n \"displayName\": \"Bar\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Bars\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidA\": \"com.palantir.barObject\",\n \"objectTypeRidB\": \"com.palantir.fizzObject\",\n },\n \"type\": \"intermediary\",\n },\n \"id\": \"fizz-to-bar\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"fizz-to-buzz\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"fizzes\",\n \"displayMetadata\": {\n \"displayName\": \"Fizz\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Fizzes\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.buzzObject\",\n \"objectTypeRidOneSide\": \"com.palantir.fizzObject\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"fizz\",\n \"object\": \"com.palantir.fizzObject\",\n },\n \"to\": {\n \"apiName\": \"fizzBuzz\",\n \"object\": \"com.palantir.buzzObject\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"buzz2\",\n \"displayMetadata\": {\n \"displayName\": \"Buzz\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"fizz-to-buzz\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.barObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.barObject\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.barObject\",\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.barObject\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Bar\",\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 \"com.palantir.buzzObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.buzzObject\",\n \"propertyMapping\": {\n \"barBuzz\": {\n \"column\": \"barBuzz\",\n \"type\": \"column\",\n },\n \"buzz\": {\n \"column\": \"buzz\",\n \"type\": \"column\",\n },\n \"fizzBuzz\": {\n \"column\": \"fizzBuzz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.buzzObject\",\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.buzzObject\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Buzz\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"buzz\",\n ],\n \"propertyTypes\": {\n \"barBuzz\": {\n \"apiName\": \"barBuzz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"BarBuzz\",\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 \"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 \"fizzBuzz\": {\n \"apiName\": \"fizzBuzz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"FizzBuzz\",\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.fizzObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.fizzObject\",\n \"propertyMapping\": {\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.fizzObject\",\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.fizzObject\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\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 },\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Minimal link definitions are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n one: {\n object: object,\n metadata: {\n apiName: \"fizzes\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n apiName: \"foos\",\n },\n },\n manyForeignKeyProperty: \"bar\",\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizz-to-foo\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"foos\",\n \"displayMetadata\": {\n \"displayName\": \"Foos\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Foos\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.fizz\",\n \"objectTypeRidOneSide\": \"com.palantir.foo\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.foo\",\n },\n \"to\": {\n \"apiName\": \"bar\",\n \"object\": \"com.palantir.fizz\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"fizzes\",\n \"displayMetadata\": {\n \"displayName\": \"Fizzes\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Fizzes\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"fizz-to-foo\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.fizz\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\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\": \"Fizz\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Fizz\",\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\": \"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 `);\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 datasource: { 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 datasource: { 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 datasource: { 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 datasource: { 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 datasource: {\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 datasource: { 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 });\n\n describe(\"Marking Constraints\", () => {\n it(\"supports marking constraints with CBAC type and markingInputGroupName\", () => {\n const obj = defineObject({\n titlePropertyApiName: \"title\",\n displayName: \"Document\",\n pluralDisplayName: \"Documents\",\n apiName: \"document\",\n primaryKeyPropertyApiName: \"title\",\n properties: {\n \"title\": {\n type: \"string\",\n displayName: \"Title\",\n },\n \"classification\": {\n type: {\n type: \"marking\",\n markingType: \"CBAC\",\n markingInputGroupName: \"classificationGroup\",\n },\n displayName: \"Classification\",\n },\n },\n });\n\n const ontology = dumpOntologyFullMetadata();\n const classificationConstraint = ontology.ontology\n .objectTypes[\"com.palantir.document\"].datasources[0].dataSecurity\n ?.classificationConstraint!;\n expect(classificationConstraint.markingGroupName).toEqual(\n \"classificationGroup\",\n );\n });\n });\n\n describe(\"Actions\", () => {\n it(\"Interface actions are properly defined\", () => {\n const foo = defineInterface({\n apiName: \"foo\",\n displayName: \"foo\",\n properties: {},\n });\n const exampleAction = defineAction({\n apiName: \"foo\",\n displayName: \"exampleAction\",\n status: \"active\",\n rules: [{\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: \"foo\",\n objectTypeParameter: \"param1\",\n sharedPropertyValues: {},\n },\n }],\n parameters: [{\n id: \"param1\",\n displayName: \"param1\",\n type: \"boolean\",\n validation: { required: true, allowedValues: { type: \"boolean\" } },\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 \"com.palantir.foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addInterfaceRule\": {\n \"interfaceApiName\": \"com.palantir.foo\",\n \"objectTypeParameter\": \"param1\",\n \"sharedPropertyValues\": {},\n },\n \"type\": \"addInterfaceRule\",\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 \"param1\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"checkbox\": {},\n \"type\": \"checkbox\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"boolean\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"type\": \"boolean\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.foo\",\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\": \"exampleAction\",\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 \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"param1\",\n ],\n \"parameters\": {\n \"param1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"param1\",\n \"typeClasses\": [],\n },\n \"id\": \"param1\",\n \"type\": {\n \"boolean\": {},\n \"type\": \"boolean\",\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 \"com.palantir.foo\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": \"foo\",\n \"displayName\": \"foo\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Simple interface actions (with object types) are properly defined\", () => {\n const exampleStructPropertyType = defineSharedPropertyType({\n apiName: \"property2\",\n type: {\n type: \"struct\",\n structDefinition: {\n simpleProperty: \"string\",\n },\n },\n });\n const mySpt = defineSharedPropertyType({\n apiName: \"mySpt\",\n type: \"string\",\n });\n const exampleInterface = defineInterface({\n apiName: \"exampleInterface\",\n icon: { color: \"#c7cdd6ff\", locator: \"globe\" },\n properties: {\n mySpt,\n property1: \"string\",\n property2: exampleStructPropertyType,\n },\n });\n\n const exampleObjectType = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObjectType\",\n pluralDisplayName: \"exampleObjectTypes\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n \"property1\": { type: \"string\" },\n \"property2\": {\n type: {\n type: \"struct\",\n structDefinition: { simpleProperty: \"string\" },\n },\n },\n },\n implementsInterfaces: [{\n implements: exampleInterface,\n propertyMapping: [\n {\n interfaceProperty: \"com.palantir.mySpt\",\n mapsTo: \"bar\",\n },\n {\n interfaceProperty: \"com.palantir.property1\",\n mapsTo: \"property1\",\n },\n {\n interfaceProperty: \"com.palantir.property2\",\n mapsTo: \"property2\",\n },\n ],\n }],\n });\n\n const createActionWithObjectType = defineCreateInterfaceObjectAction({\n interfaceType: exampleInterface,\n objectType: exampleObjectType,\n });\n\n const modifyAction = defineModifyInterfaceObjectAction({\n interfaceType: exampleInterface,\n objectType: exampleObjectType,\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 \"com.palantir.create-example-interface-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addInterfaceRule\": {\n \"interfaceApiName\": \"com.palantir.exampleInterface\",\n \"objectTypeParameter\": \"objectTypeParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.mySpt\": {\n \"parameterId\": \"com.palantir.mySpt\",\n \"type\": \"parameterId\",\n },\n \"com.palantir.property1\": {\n \"parameterId\": \"com.palantir.property1\",\n \"type\": \"parameterId\",\n },\n },\n },\n \"type\": \"addInterfaceRule\",\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 \"com.palantir.mySpt\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"com.palantir.property1\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"objectTypeParameter\": {\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 \"oneOf\": {\n \"oneOf\": {\n \"labelledValues\": [\n {\n \"label\": \"exampleObjectType\",\n \"value\": {\n \"objectType\": {\n \"objectTypeId\": \"com.palantir.foo\",\n },\n \"type\": \"objectType\",\n },\n },\n ],\n \"otherValueAllowed\": {\n \"allowed\": false,\n },\n },\n \"type\": \"oneOf\",\n },\n \"type\": \"oneOf\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-example-interface-foo\",\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 exampleInterface\",\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 \"com.palantir.exampleInterface\",\n ],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"com.palantir.mySpt\",\n \"com.palantir.property1\",\n ],\n \"parameters\": {\n \"com.palantir.mySpt\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"mySpt\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.mySpt\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"com.palantir.property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.property1\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectTypeParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Object type to create\",\n \"typeClasses\": [],\n },\n \"id\": \"objectTypeParameter\",\n \"type\": {\n \"objectTypeReference\": {\n \"interfaceTypeRids\": [\n \"com.palantir.exampleInterface\",\n ],\n },\n \"type\": \"objectTypeReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-example-interface-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyInterfaceRule\": {\n \"interfaceObjectToModifyParameter\": \"interfaceObjectToModifyParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.mySpt\": {\n \"parameterId\": \"com.palantir.mySpt\",\n \"type\": \"parameterId\",\n },\n \"com.palantir.property1\": {\n \"parameterId\": \"com.palantir.property1\",\n \"type\": \"parameterId\",\n },\n },\n },\n \"type\": \"modifyInterfaceRule\",\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 \"com.palantir.mySpt\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"com.palantir.property1\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"interfaceObjectToModifyParameter\": {\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 \"oneOf\": {\n \"oneOf\": {\n \"labelledValues\": [\n {\n \"label\": \"exampleObjectType\",\n \"value\": {\n \"objectType\": {\n \"objectTypeId\": \"com.palantir.foo\",\n },\n \"type\": \"objectType\",\n },\n },\n ],\n \"otherValueAllowed\": {\n \"allowed\": false,\n },\n },\n \"type\": \"oneOf\",\n },\n \"type\": \"oneOf\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.modify-example-interface-foo\",\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\": \"Modify exampleInterface\",\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 \"com.palantir.exampleInterface\",\n ],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"com.palantir.mySpt\",\n \"com.palantir.property1\",\n ],\n \"parameters\": {\n \"com.palantir.mySpt\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"mySpt\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.mySpt\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"com.palantir.property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.property1\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"interfaceObjectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Object type to modify\",\n \"typeClasses\": [],\n },\n \"id\": \"interfaceObjectToModifyParameter\",\n \"type\": {\n \"interfaceReference\": {\n \"interfaceTypeRid\": \"com.palantir.exampleInterface\",\n },\n \"type\": \"interfaceReference\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#c7cdd6ff\",\n \"locator\": \"globe\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.mySpt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.mySpt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"mySpt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"simpleProperty\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"simpleProperty\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\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 \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"property1\": {\n \"column\": \"property1\",\n \"type\": \"column\",\n },\n \"property2\": {\n \"struct\": {\n \"column\": \"property2\",\n \"mapping\": {\n \"simpleProperty\": {\n \"apiName\": \"simpleProperty\",\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\": \"exampleObjectType\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObjectTypes\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [\n {\n \"interfaceTypeApiName\": \"com.palantir.exampleInterface\",\n \"linksV2\": {},\n \"properties\": {\n \"com.palantir.mySpt\": {\n \"propertyTypeRid\": \"bar\",\n },\n \"com.palantir.property1\": {\n \"propertyTypeRid\": \"property1\",\n },\n \"com.palantir.property2\": {\n \"propertyTypeRid\": \"property2\",\n },\n },\n \"propertiesV2\": {},\n },\n ],\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 \"property1\": {\n \"apiName\": \"property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Property1\",\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 \"property2\": {\n \"apiName\": \"property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Property2\",\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\": \"simpleProperty\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"simpleProperty\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"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.mySpt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.mySpt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"mySpt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"simpleProperty\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"simpleProperty\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n },\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Concrete actions are properly defined\", () => {\n const exampleAction = defineAction({\n apiName: \"foo\",\n displayName: \"exampleAction\",\n status: \"active\",\n rules: [{\n type: \"addOrModifyObjectRuleV2\",\n addOrModifyObjectRuleV2: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: {\n \"bar\": {\n type: \"parameterId\",\n parameterId: \"param1\",\n },\n },\n structFieldValues: {},\n },\n }],\n parameters: [{\n id: \"param1\",\n displayName: \"param1\",\n type: \"boolean\",\n validation: { required: true, allowedValues: { type: \"boolean\" } },\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 \"com.palantir.foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addOrModifyObjectRuleV2\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"param1\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addOrModifyObjectRuleV2\",\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 \"param1\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"checkbox\": {},\n \"type\": \"checkbox\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"boolean\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"type\": \"boolean\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.foo\",\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\": \"exampleAction\",\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 \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"param1\",\n ],\n \"parameters\": {\n \"param1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"param1\",\n \"typeClasses\": [],\n },\n \"id\": \"param1\",\n \"type\": {\n \"boolean\": {},\n \"type\": \"boolean\",\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 \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Conditional overrides on actions are properly defined\", () => {\n const exampleAction = defineAction({\n apiName: \"foo\",\n displayName: \"exampleAction\",\n status: \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: {\n \"bar\": {\n type: \"parameterId\",\n parameterId: \"param1\",\n },\n },\n structFieldValues: {},\n },\n }],\n parameters: [{\n id: \"param1\",\n displayName: \"param1\",\n type: \"boolean\",\n validation: {\n required: true,\n allowedValues: { type: \"boolean\" },\n defaultVisibility: \"editable\",\n conditionalOverrides: [\n {\n type: \"visibility\",\n condition: {\n type: \"group\",\n name: \"myGroup\",\n },\n },\n ],\n },\n }, {\n id: \"objectToModifyParameter\",\n displayName: \"objectToModifyParameter\",\n type: \"objectTypeReference\",\n validation: {\n required: true,\n allowedValues: { type: \"objectTypeReference\", interfaceTypes: [] },\n defaultVisibility: \"editable\",\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 \"com.palantir.foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyObjectRule\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"param1\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"modifyObjectRule\",\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 \"objectToModifyParameter\": {\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 \"objectTypeReference\": {\n \"objectTypeReference\": {\n \"interfaceTypeRids\": [],\n },\n \"type\": \"objectTypeReference\",\n },\n \"type\": \"objectTypeReference\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"param1\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"myGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"parameterBlockOverrides\": [\n {\n \"type\": \"visibility\",\n \"visibility\": {\n \"visibility\": {\n \"hidden\": {},\n \"type\": \"hidden\",\n },\n },\n },\n ],\n },\n ],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"checkbox\": {},\n \"type\": \"checkbox\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"boolean\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"type\": \"boolean\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.foo\",\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\": \"exampleAction\",\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 \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"param1\",\n \"objectToModifyParameter\",\n ],\n \"parameters\": {\n \"objectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"objectToModifyParameter\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToModifyParameter\",\n \"type\": {\n \"objectTypeReference\": {},\n \"type\": \"objectTypeReference\",\n },\n },\n \"param1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"param1\",\n \"typeClasses\": [],\n },\n \"id\": \"param1\",\n \"type\": {\n \"boolean\": {},\n \"type\": \"boolean\",\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 \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Simple concrete actions are properly defined\", () => {\n const exampleObjectType = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObjectType\",\n pluralDisplayName: \"exampleObjectTypes\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n \"structProp\": {\n type: {\n type: \"struct\",\n structDefinition: { simpleProperty: \"string\" },\n },\n },\n \"optionalProp\": { type: \"string\" },\n },\n });\n\n const createObjectActionType = defineCreateObjectAction(\n {\n objectType: exampleObjectType,\n },\n );\n const modifyObjectActionType = defineModifyObjectAction(\n {\n objectType: exampleObjectType,\n },\n );\n const deleteObjectActionType = defineDeleteObjectAction(\n {\n objectType: exampleObjectType,\n },\n );\n const createOrModifyObjectActionType = defineCreateOrModifyObjectAction(\n {\n objectType: exampleObjectType,\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 \"com.palantir.create-object-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.foo\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"optionalProp\": {\n \"parameterId\": \"optionalProp\",\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 \"bar\": {\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 \"optionalProp\": {\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-foo\",\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 exampleObjectType\",\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.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"bar\",\n \"optionalProp\",\n ],\n \"parameters\": {\n \"bar\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Bar\",\n \"typeClasses\": [],\n },\n \"id\": \"bar\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"optionalProp\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"OptionalProp\",\n \"typeClasses\": [],\n },\n \"id\": \"optionalProp\",\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-or-modify-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addOrModifyObjectRuleV2\": {\n \"objectToModify\": \"objectToCreateOrModifyParameter\",\n \"propertyValues\": {\n \"optionalProp\": {\n \"parameterId\": \"optionalProp\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addOrModifyObjectRuleV2\",\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 \"objectToCreateOrModifyParameter\": {\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 \"optionalProp\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToCreateOrModifyParameter\",\n \"propertyTypeId\": \"optionalProp\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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-or-modify-foo\",\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 or Modify exampleObjectType\",\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.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToCreateOrModifyParameter\",\n \"optionalProp\",\n ],\n \"parameters\": {\n \"objectToCreateOrModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Create or modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToCreateOrModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"maybeCreateObjectOption\": {\n \"autoGenerated\": {},\n \"type\": \"autoGenerated\",\n },\n \"objectTypeId\": \"com.palantir.foo\",\n },\n \"type\": \"objectReference\",\n },\n },\n \"optionalProp\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"OptionalProp\",\n \"typeClasses\": [],\n },\n \"id\": \"optionalProp\",\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-foo\": {\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-foo\",\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 exampleObjectType\",\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.foo\",\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.foo\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-object-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyObjectRule\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"optionalProp\": {\n \"parameterId\": \"optionalProp\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"modifyObjectRule\",\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 \"objectToModifyParameter\": {\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 \"optionalProp\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToModifyParameter\",\n \"propertyTypeId\": \"optionalProp\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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.modify-object-foo\",\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\": \"Modify exampleObjectType\",\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.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\n \"optionalProp\",\n ],\n \"parameters\": {\n \"objectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.foo\",\n },\n \"type\": \"objectReference\",\n },\n },\n \"optionalProp\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"OptionalProp\",\n \"typeClasses\": [],\n },\n \"id\": \"optionalProp\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\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 \"objectTypes\": {\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 \"optionalProp\": {\n \"column\": \"optionalProp\",\n \"type\": \"column\",\n },\n \"structProp\": {\n \"struct\": {\n \"column\": \"structProp\",\n \"mapping\": {\n \"simpleProperty\": {\n \"apiName\": \"simpleProperty\",\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\": \"exampleObjectType\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObjectTypes\",\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 \"optionalProp\": {\n \"apiName\": \"optionalProp\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"OptionalProp\",\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 \"structProp\": {\n \"apiName\": \"structProp\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"StructProp\",\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\": \"simpleProperty\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"simpleProperty\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"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 },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Customizations on CRUD actions are properly defined\", () => {\n const exampleObjectType = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObjectType\",\n pluralDisplayName: \"exampleObjectTypes\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"primary\",\n properties: {\n \"bar\": { type: \"string\" },\n \"fizz\": { type: \"string\" },\n \"buzz\": { type: \"string\" },\n \"primary\": { type: \"string\" },\n },\n });\n\n const createObjectActionType = defineCreateObjectAction(\n {\n objectType: exampleObjectType,\n actionLevelValidation: [{\n condition: {\n type: \"group\",\n name: \"actionLevelGroup\",\n },\n }, {\n condition: {\n type: \"group\",\n name: \"actionLevelGroup2\",\n },\n displayMetadata: {\n failureMessage: \"Different custom failure message\",\n typeClasses: [],\n },\n }],\n parameterOrdering: [\"bar\", \"fizz\", \"primary\"],\n parameterConfiguration: {\n \"fizz\": {\n required: false,\n conditionalOverrides: [\n {\n type: \"required\",\n condition: {\n type: \"and\",\n conditions: [\n {\n type: \"group\",\n name: \"parameterLevelGroup\",\n },\n {\n type: \"parameter\",\n parameterId: \"bar\",\n matches: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"bar\",\n },\n },\n },\n ],\n },\n },\n ],\n defaultValue: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"default_fizz\",\n },\n },\n displayName: \"fizz_display\",\n description: \"fizz_description\",\n },\n },\n excludedProperties: [\"buzz\"],\n defaultFormat: \"TABLE\",\n enableLayoutSwitch: true,\n submissionMetadata: {\n successMessage: \"Custom success message\",\n undoButtonConfiguration: true,\n submitButtonDisplayMetadata: {\n intent: \"DANGER\",\n text: \"Custom button\",\n },\n },\n },\n );\n\n const modifyObjectActionType = defineModifyObjectAction(\n {\n objectType: exampleObjectType,\n actionLevelValidation: [{\n condition: {\n type: \"group\",\n name: \"actionLevelGroup\",\n },\n }, {\n condition: {\n type: \"group\",\n name: \"actionLevelGroup2\",\n },\n displayMetadata: {\n failureMessage: \"Different custom failure message\",\n typeClasses: [],\n },\n }],\n parameterOrdering: [\"bar\", \"fizz\"],\n parameterConfiguration: {\n \"fizz\": {\n required: false,\n conditionalOverrides: [\n {\n type: \"required\",\n condition: {\n type: \"and\",\n conditions: [\n {\n type: \"group\",\n name: \"parameterLevelGroup\",\n },\n {\n type: \"parameter\",\n parameterId: \"bar\",\n matches: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"bar\",\n },\n },\n },\n ],\n },\n },\n ],\n defaultValue: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"default_fizz\",\n },\n },\n displayName: \"fizz_display\",\n description: \"fizz_description\",\n },\n },\n excludedProperties: [\"buzz\"],\n defaultFormat: \"TABLE\",\n enableLayoutSwitch: true,\n submissionMetadata: {\n successMessage: \"Custom success message\",\n undoButtonConfiguration: true,\n submitButtonDisplayMetadata: {\n intent: \"DANGER\",\n text: \"Custom button\",\n },\n },\n },\n );\n\n const createOrModifyObjectActionType = defineCreateOrModifyObjectAction(\n {\n objectType: exampleObjectType,\n actionLevelValidation: [{\n condition: {\n type: \"group\",\n name: \"actionLevelGroup\",\n },\n }, {\n condition: {\n type: \"group\",\n name: \"actionLevelGroup2\",\n },\n displayMetadata: {\n failureMessage: \"Different custom failure message\",\n typeClasses: [],\n },\n }],\n parameterOrdering: [\"bar\", \"fizz\"],\n parameterConfiguration: {\n \"fizz\": {\n required: false,\n conditionalOverrides: [\n {\n type: \"required\",\n condition: {\n type: \"and\",\n conditions: [\n {\n type: \"group\",\n name: \"parameterLevelGroup\",\n },\n {\n type: \"parameter\",\n parameterId: \"bar\",\n matches: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"bar\",\n },\n },\n },\n ],\n },\n },\n ],\n defaultValue: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"default_fizz\",\n },\n },\n displayName: \"fizz_display\",\n description: \"fizz_description\",\n },\n },\n excludedProperties: [\"buzz\"],\n defaultFormat: \"TABLE\",\n enableLayoutSwitch: true,\n submissionMetadata: {\n successMessage: \"Custom success message\",\n undoButtonConfiguration: true,\n submitButtonDisplayMetadata: {\n intent: \"DANGER\",\n text: \"Custom button\",\n },\n },\n primaryKeyOption: \"userInput\",\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 \"com.palantir.create-object-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.foo\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"fizz\": {\n \"parameterId\": \"fizz\",\n \"type\": \"parameterId\",\n },\n \"primary\": {\n \"parameterId\": \"primary\",\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 \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"actionLevelGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Did not satisfy validation\",\n \"typeClasses\": [],\n },\n },\n \"1\": {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"actionLevelGroup2\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Different custom failure message\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"bar\": {\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 \"fizz\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"and\": {\n \"conditions\": [\n {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"parameterLevelGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n {\n \"comparison\": {\n \"left\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"operator\": \"EQUALS\",\n \"right\": {\n \"staticValue\": {\n \"string\": \"bar\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n ],\n },\n \"type\": \"and\",\n },\n \"parameterBlockOverrides\": [\n {\n \"parameterRequired\": {\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n \"type\": \"parameterRequired\",\n },\n ],\n },\n ],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"staticValue\": {\n \"string\": \"default_fizz\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\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 \"primary\": {\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-foo\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"TABLE\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": true,\n },\n \"description\": \"\",\n \"displayName\": \"Create exampleObjectType\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"submitButtonDisplayMetadata\": {\n \"intent\": \"DANGER\",\n \"text\": \"Custom button\",\n },\n \"successMessage\": [\n {\n \"message\": \"Custom success message\",\n \"type\": \"message\",\n },\n ],\n \"typeClasses\": [],\n \"undoButtonConfiguration\": true,\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"bar\",\n \"fizz\",\n \"primary\",\n ],\n \"parameters\": {\n \"bar\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Bar\",\n \"typeClasses\": [],\n },\n \"id\": \"bar\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"fizz\": {\n \"displayMetadata\": {\n \"description\": \"fizz_description\",\n \"displayName\": \"fizz_display\",\n \"typeClasses\": [],\n },\n \"id\": \"fizz\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"primary\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Primary\",\n \"typeClasses\": [],\n },\n \"id\": \"primary\",\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-or-modify-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addOrModifyObjectRuleV2\": {\n \"objectToModify\": \"objectToCreateOrModifyParameter\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"fizz\": {\n \"parameterId\": \"fizz\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addOrModifyObjectRuleV2\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"actionLevelGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Did not satisfy validation\",\n \"typeClasses\": [],\n },\n },\n \"1\": {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"actionLevelGroup2\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Different custom failure message\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"bar\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToCreateOrModifyParameter\",\n \"propertyTypeId\": \"bar\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"fizz\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"and\": {\n \"conditions\": [\n {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"parameterLevelGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n {\n \"comparison\": {\n \"left\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"operator\": \"EQUALS\",\n \"right\": {\n \"staticValue\": {\n \"string\": \"bar\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n ],\n },\n \"type\": \"and\",\n },\n \"parameterBlockOverrides\": [\n {\n \"parameterRequired\": {\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n \"type\": \"parameterRequired\",\n },\n ],\n },\n ],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"staticValue\": {\n \"string\": \"default_fizz\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\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 \"objectToCreateOrModifyParameter\": {\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.create-or-modify-foo\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"TABLE\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": true,\n },\n \"description\": \"\",\n \"displayName\": \"Create or Modify exampleObjectType\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"submitButtonDisplayMetadata\": {\n \"intent\": \"DANGER\",\n \"text\": \"Custom button\",\n },\n \"successMessage\": [\n {\n \"message\": \"Custom success message\",\n \"type\": \"message\",\n },\n ],\n \"typeClasses\": [],\n \"undoButtonConfiguration\": true,\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToCreateOrModifyParameter\",\n \"bar\",\n \"fizz\",\n ],\n \"parameters\": {\n \"bar\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Bar\",\n \"typeClasses\": [],\n },\n \"id\": \"bar\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"fizz\": {\n \"displayMetadata\": {\n \"description\": \"fizz_description\",\n \"displayName\": \"fizz_display\",\n \"typeClasses\": [],\n },\n \"id\": \"fizz\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectToCreateOrModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Create or modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToCreateOrModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"maybeCreateObjectOption\": {\n \"type\": \"userInput\",\n \"userInput\": {},\n },\n \"objectTypeId\": \"com.palantir.foo\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-object-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyObjectRule\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"fizz\": {\n \"parameterId\": \"fizz\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"modifyObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"actionLevelGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Did not satisfy validation\",\n \"typeClasses\": [],\n },\n },\n \"1\": {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"actionLevelGroup2\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Different custom failure message\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"bar\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToModifyParameter\",\n \"propertyTypeId\": \"bar\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"fizz\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"and\": {\n \"conditions\": [\n {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"parameterLevelGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n {\n \"comparison\": {\n \"left\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"operator\": \"EQUALS\",\n \"right\": {\n \"staticValue\": {\n \"string\": \"bar\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n ],\n },\n \"type\": \"and\",\n },\n \"parameterBlockOverrides\": [\n {\n \"parameterRequired\": {\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n \"type\": \"parameterRequired\",\n },\n ],\n },\n ],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"staticValue\": {\n \"string\": \"default_fizz\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\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 \"objectToModifyParameter\": {\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.modify-object-foo\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"TABLE\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": true,\n },\n \"description\": \"\",\n \"displayName\": \"Modify exampleObjectType\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"submitButtonDisplayMetadata\": {\n \"intent\": \"DANGER\",\n \"text\": \"Custom button\",\n },\n \"successMessage\": [\n {\n \"message\": \"Custom success message\",\n \"type\": \"message\",\n },\n ],\n \"typeClasses\": [],\n \"undoButtonConfiguration\": true,\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\n \"bar\",\n \"fizz\",\n ],\n \"parameters\": {\n \"bar\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Bar\",\n \"typeClasses\": [],\n },\n \"id\": \"bar\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"fizz\": {\n \"displayMetadata\": {\n \"description\": \"fizz_description\",\n \"displayName\": \"fizz_display\",\n \"typeClasses\": [],\n },\n \"id\": \"fizz\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.foo\",\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 \"com.palantir.create-object-foo\": {\n \"restrictionStatus\": {\n \"hasRolesApplied\": true,\n \"ontologyPackageRid\": null,\n \"publicProject\": false,\n },\n },\n \"com.palantir.create-or-modify-foo\": {\n \"restrictionStatus\": {\n \"hasRolesApplied\": true,\n \"ontologyPackageRid\": null,\n \"publicProject\": false,\n },\n },\n \"com.palantir.modify-object-foo\": {\n \"restrictionStatus\": {\n \"hasRolesApplied\": true,\n \"ontologyPackageRid\": null,\n \"publicProject\": false,\n },\n },\n },\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 \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"buzz\": {\n \"column\": \"buzz\",\n \"type\": \"column\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n \"primary\": {\n \"column\": \"primary\",\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\": \"exampleObjectType\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObjectTypes\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"primary\",\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 \"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 \"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 \"primary\": {\n \"apiName\": \"primary\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Primary\",\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(\"Non-parameter mapped properties are properly defined\", () => {\n const exampleObjectType = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObjectType\",\n pluralDisplayName: \"exampleObjectTypes\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n \"fizz\": { type: \"string\" },\n \"buzz\": { type: \"timestamp\" },\n },\n });\n\n const createObjectActionType = defineCreateObjectAction(\n {\n objectType: exampleObjectType,\n nonParameterMappings: {\n \"fizz\": {\n type: \"currentUser\",\n },\n \"buzz\": {\n type: \"currentTime\",\n },\n },\n },\n );\n const modifyObjectActionType = defineModifyObjectAction(\n {\n objectType: exampleObjectType,\n nonParameterMappings: {\n \"fizz\": {\n type: \"currentUser\",\n },\n \"buzz\": {\n type: \"currentTime\",\n },\n },\n },\n );\n const createOrModifyObjectActionType = defineCreateOrModifyObjectAction(\n {\n objectType: exampleObjectType,\n nonParameterMappings: {\n \"fizz\": {\n type: \"currentUser\",\n },\n \"buzz\": {\n type: \"currentTime\",\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 \"com.palantir.create-object-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.foo\",\n \"propertyValues\": {\n \"bar\": {\n \"parameterId\": \"bar\",\n \"type\": \"parameterId\",\n },\n \"buzz\": {\n \"currentTime\": {},\n \"type\": \"currentTime\",\n },\n \"fizz\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\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 \"bar\": {\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-foo\",\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 exampleObjectType\",\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.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"bar\",\n ],\n \"parameters\": {\n \"bar\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Bar\",\n \"typeClasses\": [],\n },\n \"id\": \"bar\",\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-or-modify-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addOrModifyObjectRuleV2\": {\n \"objectToModify\": \"objectToCreateOrModifyParameter\",\n \"propertyValues\": {\n \"buzz\": {\n \"currentTime\": {},\n \"type\": \"currentTime\",\n },\n \"fizz\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addOrModifyObjectRuleV2\",\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 \"objectToCreateOrModifyParameter\": {\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.create-or-modify-foo\",\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 or Modify exampleObjectType\",\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.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToCreateOrModifyParameter\",\n ],\n \"parameters\": {\n \"objectToCreateOrModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Create or modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToCreateOrModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"maybeCreateObjectOption\": {\n \"autoGenerated\": {},\n \"type\": \"autoGenerated\",\n },\n \"objectTypeId\": \"com.palantir.foo\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-object-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyObjectRule\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"buzz\": {\n \"currentTime\": {},\n \"type\": \"currentTime\",\n },\n \"fizz\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"modifyObjectRule\",\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 \"objectToModifyParameter\": {\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.modify-object-foo\",\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\": \"Modify exampleObjectType\",\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.foo\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\n ],\n \"parameters\": {\n \"objectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.foo\",\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 \"objectTypes\": {\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 \"buzz\": {\n \"column\": \"buzz\",\n \"type\": \"column\",\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\": \"exampleObjectType\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObjectTypes\",\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 \"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 \"timestamp\": {},\n \"type\": \"timestamp\",\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(\"Parameter configuration, property mapping, and excluded property validations work\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": { type: \"string\" },\n \"id\": { type: \"string\" },\n },\n });\n expect(() => {\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n parameterConfiguration: {\n \"name\": {\n displayName: \"Name\",\n },\n \"custom_parameter\": {\n displayName: \"My Custom Param\",\n },\n },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Parameter custom_parameter does not exist as a property on com.palantir.sampleObject and its type is not explicitly defined]`,\n );\n expect(() => {\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n nonParameterMappings: {\n \"custom_parameter\": {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"custom_value\",\n },\n },\n },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Property custom_parameter does not exist as a property on com.palantir.sampleObject]`,\n );\n expect(() => {\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n excludedProperties: [\"custom_parameter\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Property custom_parameter does not exist as a property on com.palantir.sampleObject]`,\n );\n expect(() => {\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n actionLevelValidation: [\n {\n condition: {\n type: \"or\",\n conditions: [\n {\n type: \"parameter\",\n parameterId: \"non_existent_parameter\",\n matches: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"value\",\n },\n },\n },\n ],\n },\n },\n ],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter condition references unknown parameter non_existent_parameter]`,\n );\n });\n\n it(\"Static default action parameters must match type\", () => {\n const exampleObjectType = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObjectType\",\n pluralDisplayName: \"exampleObjectTypes\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"primary\",\n properties: {\n \"bar\": { type: \"string\" },\n \"fizz\": { type: \"string\" },\n \"buzz\": { type: \"string\" },\n \"primary\": { type: \"string\" },\n },\n });\n expect(() =>\n defineCreateObjectAction({\n objectType: exampleObjectType,\n parameterConfiguration: {\n \"buzz\": {\n defaultValue: {\n type: \"staticValue\",\n staticValue: {\n type: \"boolean\",\n boolean: true,\n },\n },\n },\n },\n })\n ).toThrowError(\n \"Invariant failed: Default static value for parameter buzz does not match type\",\n );\n });\n\n it(\"ModifyObjectRule requires objectToModify parameter\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": {\n type: \"string\",\n description: \"The name of the test object\",\n },\n \"id\": { type: \"string\", description: \"The ID of the test object\" },\n },\n });\n expect(() =>\n defineAction({\n apiName: \"foo\",\n displayName: \"exampleAction\",\n status: \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"sampleObject\",\n propertyValues: {\n \"name\": {\n type: \"parameterId\",\n parameterId: \"name\",\n },\n },\n structFieldValues: {},\n },\n }],\n parameters: [{\n id: \"name\",\n displayName: \"Name\",\n type: \"string\",\n validation: { required: true, allowedValues: { type: \"text\" } },\n }],\n })\n ).toThrowError(\n \"Invariant failed: Object to modify parameter must be defined in parameters\",\n );\n });\n\n it(\"Target object parameters are configurable\", () => {\n const employeeObject = defineObject({\n apiName: \"employee\",\n displayName: \"Employee\",\n pluralDisplayName: \"Employees\",\n titlePropertyApiName: \"id\",\n primaryKeyPropertyApiName: \"id\",\n properties: {\n \"id\": { type: \"string\", displayName: \"ID\", description: \"dummy\" },\n \"managedBy\": { type: \"string\" },\n },\n });\n defineModifyObjectAction({\n objectType: employeeObject,\n parameterConfiguration: {\n [MODIFY_OBJECT_PARAMETER]: {\n displayName: \"Chose a manager to modify\",\n description: \"Description\",\n conditionalOverrides: [{\n type: \"visibility\",\n condition: {\n type: \"group\",\n name: \"supervisors\",\n },\n }],\n },\n },\n });\n defineCreateOrModifyObjectAction({\n objectType: employeeObject,\n parameterConfiguration: {\n [CREATE_OR_MODIFY_OBJECT_PARAMETER]: {\n displayName: \"Chose a manager to modify or create a new one\",\n description: \"Description\",\n conditionalOverrides: [{\n type: \"visibility\",\n condition: {\n type: \"group\",\n name: \"supervisors\",\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 \"com.palantir.create-or-modify-employee\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addOrModifyObjectRuleV2\": {\n \"objectToModify\": \"objectToCreateOrModifyParameter\",\n \"propertyValues\": {\n \"managedBy\": {\n \"parameterId\": \"managedBy\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addOrModifyObjectRuleV2\",\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 \"managedBy\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToCreateOrModifyParameter\",\n \"propertyTypeId\": \"managedBy\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"objectToCreateOrModifyParameter\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"supervisors\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"parameterBlockOverrides\": [\n {\n \"type\": \"visibility\",\n \"visibility\": {\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n },\n ],\n },\n ],\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.create-or-modify-employee\",\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 or Modify Employee\",\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.employee\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToCreateOrModifyParameter\",\n \"objectToCreateOrModifyParameter\",\n \"managedBy\",\n ],\n \"parameters\": {\n \"managedBy\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ManagedBy\",\n \"typeClasses\": [],\n },\n \"id\": \"managedBy\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectToCreateOrModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Chose a manager to modify or create a new one\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToCreateOrModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"maybeCreateObjectOption\": {\n \"autoGenerated\": {},\n \"type\": \"autoGenerated\",\n },\n \"objectTypeId\": \"com.palantir.employee\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-object-employee\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyObjectRule\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"managedBy\": {\n \"parameterId\": \"managedBy\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"modifyObjectRule\",\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 \"managedBy\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToModifyParameter\",\n \"propertyTypeId\": \"managedBy\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"objectToModifyParameter\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"supervisors\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"parameterBlockOverrides\": [\n {\n \"type\": \"visibility\",\n \"visibility\": {\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n },\n ],\n },\n ],\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.modify-object-employee\",\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\": \"Modify Employee\",\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.employee\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\n \"objectToModifyParameter\",\n \"managedBy\",\n ],\n \"parameters\": {\n \"managedBy\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ManagedBy\",\n \"typeClasses\": [],\n },\n \"id\": \"managedBy\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Chose a manager to modify\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.employee\",\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 \"objectTypes\": {\n \"com.palantir.employee\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.employee\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"managedBy\": {\n \"column\": \"managedBy\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.employee\",\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.employee\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Employee\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Employees\",\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\": \"dummy\",\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 \"managedBy\": {\n \"apiName\": \"managedBy\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"ManagedBy\",\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\": \"id\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"OAC defined object references as parameters are properly defined\", () => {\n // This test defines an action that creates an OAC-defined employee object type and also adds an additional parameter\n // for an objectReference to a manager object type that is also defined in OAC. The action shows how you can use this\n // objectReference parameter elsewhere in the action - in this case we are prefilling the managedBy property to be the\n // id of the selected manager object type.\n const employeeObject = defineObject({\n apiName: \"employee\",\n displayName: \"Employee\",\n pluralDisplayName: \"Employees\",\n titlePropertyApiName: \"id\",\n primaryKeyPropertyApiName: \"id\",\n properties: {\n \"id\": { type: \"string\", displayName: \"ID\", description: \"dummy\" },\n \"managedBy\": { type: \"string\" },\n },\n });\n\n const managerObject = defineObject({\n apiName: \"manager\",\n displayName: \"Manager\",\n pluralDisplayName: \"Managers\",\n titlePropertyApiName: \"id\",\n primaryKeyPropertyApiName: \"id\",\n properties: {\n \"id\": { type: \"string\", displayName: \"ID\", description: \"dummy\" },\n },\n editsEnabled: true,\n });\n\n defineCreateObjectAction({\n objectType: employeeObject,\n parameterOrdering: [\"myManager\", \"id\", \"managedBy\"],\n parameterConfiguration: {\n \"myManager\": {\n customParameterType: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: managerObject.apiName,\n },\n },\n },\n \"managedBy\": {\n defaultValue: {\n type: \"objectParameterPropertyValue\",\n objectParameterPropertyValue: {\n parameterId: \"myManager\",\n propertyTypeId: \"id\",\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 \"com.palantir.create-object-employee\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.employee\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n \"managedBy\": {\n \"parameterId\": \"managedBy\",\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 \"managedBy\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"myManager\",\n \"propertyTypeId\": \"id\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"myManager\": {\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 \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-employee\",\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 Employee\",\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.employee\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"myManager\",\n \"id\",\n \"managedBy\",\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 \"managedBy\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ManagedBy\",\n \"typeClasses\": [],\n },\n \"id\": \"managedBy\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"myManager\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"MyManager\",\n \"typeClasses\": [],\n },\n \"id\": \"myManager\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.manager\",\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 \"objectTypes\": {\n \"com.palantir.employee\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.employee\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"managedBy\": {\n \"column\": \"managedBy\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.employee\",\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.employee\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Employee\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Employees\",\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\": \"dummy\",\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 \"managedBy\": {\n \"apiName\": \"managedBy\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"ManagedBy\",\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\": \"id\",\n },\n },\n \"com.palantir.manager\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.manager\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.manager\",\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.manager\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Manager\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Managers\",\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\": \"dummy\",\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 },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"id\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Simple interface actions (without object types) are properly defined\", () => {\n const exampleInterface = defineInterface({\n apiName: \"exampleInterface\",\n properties: {\n property1: \"string\",\n },\n });\n const createAction = defineCreateInterfaceObjectAction({\n interfaceType: exampleInterface,\n });\n const modifyAction = defineModifyInterfaceObjectAction({\n interfaceType: exampleInterface,\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 \"com.palantir.create-example-interface\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addInterfaceRule\": {\n \"interfaceApiName\": \"com.palantir.exampleInterface\",\n \"objectTypeParameter\": \"objectTypeParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.property1\": {\n \"parameterId\": \"com.palantir.property1\",\n \"type\": \"parameterId\",\n },\n },\n },\n \"type\": \"addInterfaceRule\",\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 \"com.palantir.property1\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"objectTypeParameter\": {\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 \"objectTypeReference\": {\n \"objectTypeReference\": {\n \"interfaceTypeRids\": [\n \"com.palantir.exampleInterface\",\n ],\n },\n \"type\": \"objectTypeReference\",\n },\n \"type\": \"objectTypeReference\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-example-interface\",\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 exampleInterface\",\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 \"com.palantir.exampleInterface\",\n ],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"com.palantir.property1\",\n ],\n \"parameters\": {\n \"com.palantir.property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.property1\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectTypeParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Object type to create\",\n \"typeClasses\": [],\n },\n \"id\": \"objectTypeParameter\",\n \"type\": {\n \"objectTypeReference\": {\n \"interfaceTypeRids\": [\n \"com.palantir.exampleInterface\",\n ],\n },\n \"type\": \"objectTypeReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-example-interface\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyInterfaceRule\": {\n \"interfaceObjectToModifyParameter\": \"interfaceObjectToModifyParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.property1\": {\n \"parameterId\": \"com.palantir.property1\",\n \"type\": \"parameterId\",\n },\n },\n },\n \"type\": \"modifyInterfaceRule\",\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 \"com.palantir.property1\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"interfaceObjectToModifyParameter\": {\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 \"interfaceObjectQuery\": {\n \"interfaceObjectQuery\": {},\n \"type\": \"interfaceObjectQuery\",\n },\n \"type\": \"interfaceObjectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.modify-example-interface\",\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\": \"Modify exampleInterface\",\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 \"com.palantir.exampleInterface\",\n ],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"com.palantir.property1\",\n ],\n \"parameters\": {\n \"com.palantir.property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.property1\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"interfaceObjectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Object type to modify\",\n \"typeClasses\": [],\n },\n \"id\": \"interfaceObjectToModifyParameter\",\n \"type\": {\n \"interfaceReference\": {\n \"interfaceTypeRid\": \"com.palantir.exampleInterface\",\n },\n \"type\": \"interfaceReference\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Interface actions with customizations are properly defined\", () => {\n const exampleInterface = defineInterface({\n apiName: \"exampleInterface\",\n properties: {\n property1: \"string\",\n property2: \"string\",\n },\n });\n const createAction = defineCreateInterfaceObjectAction({\n interfaceType: exampleInterface,\n excludedProperties: [\"property2\"],\n });\n const modifyAction = defineModifyInterfaceObjectAction({\n interfaceType: exampleInterface,\n excludedProperties: [\"property2\"],\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 \"com.palantir.create-example-interface\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addInterfaceRule\": {\n \"interfaceApiName\": \"com.palantir.exampleInterface\",\n \"objectTypeParameter\": \"objectTypeParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.property1\": {\n \"parameterId\": \"com.palantir.property1\",\n \"type\": \"parameterId\",\n },\n },\n },\n \"type\": \"addInterfaceRule\",\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 \"com.palantir.property1\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"objectTypeParameter\": {\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 \"objectTypeReference\": {\n \"objectTypeReference\": {\n \"interfaceTypeRids\": [\n \"com.palantir.exampleInterface\",\n ],\n },\n \"type\": \"objectTypeReference\",\n },\n \"type\": \"objectTypeReference\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-example-interface\",\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 exampleInterface\",\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 \"com.palantir.exampleInterface\",\n ],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"com.palantir.property1\",\n ],\n \"parameters\": {\n \"com.palantir.property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.property1\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"objectTypeParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Object type to create\",\n \"typeClasses\": [],\n },\n \"id\": \"objectTypeParameter\",\n \"type\": {\n \"objectTypeReference\": {\n \"interfaceTypeRids\": [\n \"com.palantir.exampleInterface\",\n ],\n },\n \"type\": \"objectTypeReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-example-interface\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyInterfaceRule\": {\n \"interfaceObjectToModifyParameter\": \"interfaceObjectToModifyParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.property1\": {\n \"parameterId\": \"com.palantir.property1\",\n \"type\": \"parameterId\",\n },\n },\n },\n \"type\": \"modifyInterfaceRule\",\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 \"com.palantir.property1\": {\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 \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n \"interfaceObjectToModifyParameter\": {\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 \"interfaceObjectQuery\": {\n \"interfaceObjectQuery\": {},\n \"type\": \"interfaceObjectQuery\",\n },\n \"type\": \"interfaceObjectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.modify-example-interface\",\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\": \"Modify exampleInterface\",\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 \"com.palantir.exampleInterface\",\n ],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"com.palantir.property1\",\n ],\n \"parameters\": {\n \"com.palantir.property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"com.palantir.property1\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"interfaceObjectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Object type to modify\",\n \"typeClasses\": [],\n },\n \"id\": \"interfaceObjectToModifyParameter\",\n \"type\": {\n \"interfaceReference\": {\n \"interfaceTypeRid\": \"com.palantir.exampleInterface\",\n },\n \"type\": \"interfaceReference\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.property1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.property2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Actions with group permissions are properly defined\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": {\n type: \"string\",\n description: \"The name of the test object\",\n },\n \"id\": {\n type: \"string\",\n displayName: \"ID\",\n description: \"The ID of the test object\",\n },\n },\n });\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n actionLevelValidation: [{\n condition: {\n type: \"group\",\n name: \"testGroup\",\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 \"com.palantir.create-object-sample-object\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.sampleObject\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"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 \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"testGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Did not satisfy validation\",\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 \"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-sample-object\",\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 Test Object\",\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.sampleObject\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"name\",\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 \"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 },\n \"blockPermissionInformation\": {\n \"actionTypes\": {\n \"com.palantir.create-object-sample-object\": {\n \"restrictionStatus\": {\n \"hasRolesApplied\": true,\n \"ontologyPackageRid\": null,\n \"publicProject\": false,\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.sampleObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.sampleObject\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.sampleObject\",\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.sampleObject\",\n \"displayMetadata\": {\n \"description\": \"Sample object description\",\n \"displayName\": \"Test Object\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"tests\",\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\": \"The ID of the test object\",\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 \"name\": {\n \"apiName\": \"name\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": \"The name of the test object\",\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 it(\"Actions with custom permissions are properly defined\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": {\n type: \"string\",\n description: \"The name of the test object\",\n },\n \"id\": {\n type: \"string\",\n displayName: \"ID\",\n description: \"The ID of the test object\",\n },\n },\n });\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n actionLevelValidation: [{\n displayMetadata: {\n failureMessage:\n \"Insufficient permissions. Missing organization membership required to submit action\",\n typeClasses: [],\n },\n condition: {\n type: \"comparison\",\n comparison: {\n operator: \"INTERSECTS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n userId: {\n type: \"currentUser\",\n currentUser: {},\n },\n propertyValue: {\n type: \"organizationMarkingIds\",\n organizationMarkingIds: {},\n },\n },\n },\n right: {\n type: \"staticValue\",\n staticValue: {\n type: \"stringList\",\n stringList: {\n strings: [\n \"87ef507e-f954-457e-ad68-e0df71ef7567\",\n ],\n },\n },\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 \"com.palantir.create-object-sample-object\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.sampleObject\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"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 \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"organizationMarkingIds\": {},\n \"type\": \"organizationMarkingIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"87ef507e-f954-457e-ad68-e0df71ef7567\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"Insufficient permissions. Missing organization membership required to submit action\",\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 \"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-sample-object\",\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 Test Object\",\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.sampleObject\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"name\",\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 \"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 },\n \"blockPermissionInformation\": {\n \"actionTypes\": {\n \"com.palantir.create-object-sample-object\": {\n \"restrictionStatus\": {\n \"hasRolesApplied\": true,\n \"ontologyPackageRid\": null,\n \"publicProject\": false,\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.sampleObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.sampleObject\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.sampleObject\",\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.sampleObject\",\n \"displayMetadata\": {\n \"description\": \"Sample object description\",\n \"displayName\": \"Test Object\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"tests\",\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\": \"The ID of the test object\",\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 \"name\": {\n \"apiName\": \"name\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": \"The name of the test object\",\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 it(\"Array property validation is correctly structured for actions\", () => {\n const objectWithArrays = defineObject({\n apiName: \"objectWithArrays\",\n displayName: \"Object With Arrays\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n pluralDisplayName: \"Objects With Arrays\",\n properties: {\n \"id\": { type: \"string\", displayName: \"ID\" },\n \"tags\": { type: \"string\", array: true, displayName: \"Tags\" },\n \"numbers\": { type: \"integer\", array: true, displayName: \"Numbers\" },\n \"singleValue\": { type: \"string\", displayName: \"Single Value\" },\n },\n });\n\n const createAction = defineCreateObjectAction({\n objectType: objectWithArrays,\n });\n const modifyAction = defineModifyObjectAction({\n objectType: objectWithArrays,\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 \"com.palantir.create-object-object-with-arrays\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.objectWithArrays\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n \"numbers\": {\n \"parameterId\": \"numbers\",\n \"type\": \"parameterId\",\n },\n \"singleValue\": {\n \"parameterId\": \"singleValue\",\n \"type\": \"parameterId\",\n },\n \"tags\": {\n \"parameterId\": \"tags\",\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 \"numbers\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"numericInput\": {},\n \"type\": \"numericInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"range\": {\n \"range\": {},\n \"type\": \"range\",\n },\n \"type\": \"range\",\n },\n \"required\": {\n \"listLengthValidation\": {\n \"maxLength\": undefined,\n \"minLength\": undefined,\n },\n \"type\": \"listLengthValidation\",\n },\n },\n },\n },\n \"singleValue\": {\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 \"tags\": {\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 \"listLengthValidation\": {\n \"maxLength\": undefined,\n \"minLength\": undefined,\n },\n \"type\": \"listLengthValidation\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-object-with-arrays\",\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 Object With Arrays\",\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.objectWithArrays\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"id\",\n \"tags\",\n \"numbers\",\n \"singleValue\",\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 \"numbers\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Numbers\",\n \"typeClasses\": [],\n },\n \"id\": \"numbers\",\n \"type\": {\n \"integerList\": {},\n \"type\": \"integerList\",\n },\n },\n \"singleValue\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Single Value\",\n \"typeClasses\": [],\n },\n \"id\": \"singleValue\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"tags\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Tags\",\n \"typeClasses\": [],\n },\n \"id\": \"tags\",\n \"type\": {\n \"stringList\": {},\n \"type\": \"stringList\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.modify-object-object-with-arrays\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyObjectRule\": {\n \"objectToModify\": \"objectToModifyParameter\",\n \"propertyValues\": {\n \"numbers\": {\n \"parameterId\": \"numbers\",\n \"type\": \"parameterId\",\n },\n \"singleValue\": {\n \"parameterId\": \"singleValue\",\n \"type\": \"parameterId\",\n },\n \"tags\": {\n \"parameterId\": \"tags\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"modifyObjectRule\",\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 \"numbers\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToModifyParameter\",\n \"propertyTypeId\": \"numbers\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\n \"renderHint\": {\n \"numericInput\": {},\n \"type\": \"numericInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"range\": {\n \"range\": {},\n \"type\": \"range\",\n },\n \"type\": \"range\",\n },\n \"required\": {\n \"listLengthValidation\": {\n \"maxLength\": undefined,\n \"minLength\": undefined,\n },\n \"type\": \"listLengthValidation\",\n },\n },\n },\n },\n \"objectToModifyParameter\": {\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 \"singleValue\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToModifyParameter\",\n \"propertyTypeId\": \"singleValue\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"tags\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"prefill\": {\n \"objectParameterPropertyValue\": {\n \"parameterId\": \"objectToModifyParameter\",\n \"propertyTypeId\": \"tags\",\n },\n \"type\": \"objectParameterPropertyValue\",\n },\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 \"listLengthValidation\": {\n \"maxLength\": undefined,\n \"minLength\": undefined,\n },\n \"type\": \"listLengthValidation\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.modify-object-object-with-arrays\",\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\": \"Modify Object With Arrays\",\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.objectWithArrays\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\n \"tags\",\n \"numbers\",\n \"singleValue\",\n ],\n \"parameters\": {\n \"numbers\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Numbers\",\n \"typeClasses\": [],\n },\n \"id\": \"numbers\",\n \"type\": {\n \"integerList\": {},\n \"type\": \"integerList\",\n },\n },\n \"objectToModifyParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Modify object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToModifyParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.objectWithArrays\",\n },\n \"type\": \"objectReference\",\n },\n },\n \"singleValue\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Single Value\",\n \"typeClasses\": [],\n },\n \"id\": \"singleValue\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"tags\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Tags\",\n \"typeClasses\": [],\n },\n \"id\": \"tags\",\n \"type\": {\n \"stringList\": {},\n \"type\": \"stringList\",\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 \"objectTypes\": {\n \"com.palantir.objectWithArrays\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.objectWithArrays\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"numbers\": {\n \"column\": \"numbers\",\n \"type\": \"column\",\n },\n \"singleValue\": {\n \"column\": \"singleValue\",\n \"type\": \"column\",\n },\n \"tags\": {\n \"column\": \"tags\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.objectWithArrays\",\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.objectWithArrays\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Object With Arrays\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Objects With Arrays\",\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 \"numbers\": {\n \"apiName\": \"numbers\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Numbers\",\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 \"integer\": {},\n \"type\": \"integer\",\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 \"singleValue\": {\n \"apiName\": \"singleValue\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Single Value\",\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 \"tags\": {\n \"apiName\": \"tags\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Tags\",\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 },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Action sections are properly defined\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": { type: \"string\" },\n \"id\": { type: \"string\" },\n },\n });\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n sections: [\n {\n id: \"section1\",\n displayName: \"Section 1\",\n parameters: [\"id\"],\n description: \"Description for Section 1\",\n conditionalOverrides: [\n {\n type: \"visibility\",\n condition: {\n type: \"group\",\n name: \"testGroup\",\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 \"com.palantir.create-object-sample-object\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.sampleObject\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"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 \"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 \"section1\": {\n \"conditionalOverrides\": [\n {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"type\": \"userProperty\",\n \"userProperty\": {\n \"propertyValue\": {\n \"groupIds\": {},\n \"type\": \"groupIds\",\n },\n \"userId\": {\n \"currentUser\": {},\n \"type\": \"currentUser\",\n },\n },\n },\n \"operator\": \"INTERSECTS\",\n \"right\": {\n \"staticValue\": {\n \"stringList\": {\n \"strings\": [\n \"testGroup\",\n ],\n },\n \"type\": \"stringList\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"sectionBlockOverrides\": [\n {\n \"type\": \"visibility\",\n \"visibility\": {\n \"visibility\": {\n \"hidden\": {},\n \"type\": \"hidden\",\n },\n },\n },\n ],\n },\n ],\n \"defaultDisplayMetadata\": {\n \"visibility\": {\n \"type\": \"visible\",\n \"visible\": {},\n },\n },\n },\n },\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-sample-object\",\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 Test Object\",\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.sampleObject\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [\n {\n \"parameterId\": \"name\",\n \"type\": \"parameterId\",\n },\n {\n \"sectionId\": \"section1\",\n \"type\": \"sectionId\",\n },\n ],\n \"parameterOrdering\": [\n \"name\",\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 \"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 \"section1\": {\n \"content\": [\n {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n ],\n \"displayMetadata\": {\n \"collapsedByDefault\": false,\n \"columnCount\": 1,\n \"description\": \"Description for Section 1\",\n \"displayName\": \"Section 1\",\n \"showTitleBar\": true,\n },\n \"id\": \"section1\",\n },\n },\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 \"objectTypes\": {\n \"com.palantir.sampleObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.sampleObject\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.sampleObject\",\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.sampleObject\",\n \"displayMetadata\": {\n \"description\": \"Sample object description\",\n \"displayName\": \"Test Object\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"tests\",\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 \"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 it(\"Action section parameters must exist\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": { type: \"string\" },\n \"id\": { type: \"string\" },\n },\n });\n expect(() => {\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n sections: [\n {\n id: \"section1\",\n displayName: \"Section 1\",\n parameters: [\"foo\"],\n },\n ],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Parameters [\"foo\"] were referenced but not defined]`,\n );\n });\n\n it(\"Custom parameter ordering is properly defined\", () => {\n const sampleObject = defineObject({\n apiName: \"sampleObject\",\n displayName: \"Test Object\",\n description: \"Sample object description\",\n primaryKeyPropertyApiName: \"id\",\n pluralDisplayName: \"tests\",\n titlePropertyApiName: \"name\",\n properties: {\n \"name\": { type: \"string\" },\n \"id\": { type: \"string\" },\n \"foo\": { type: \"string\" },\n },\n });\n expect(() => {\n const createBadAction = defineCreateObjectAction({\n objectType: sampleObject,\n parameterOrdering: [\"foo\", \"id\"],\n excludedProperties: [\"id\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter ordering for create-object-sample-object does not match expected parameters. Extraneous parameters in ordering: {id}, Missing parameters in ordering: {name}]`,\n );\n expect(() => {\n const createBadAction = defineModifyObjectAction({\n objectType: sampleObject,\n // primary keys should not be in modify action orderings\n parameterOrdering: [\"foo\", \"id\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter ordering for modify-object-sample-object does not match expected parameters. Extraneous parameters in ordering: {id}, Missing parameters in ordering: {name}]`,\n );\n expect(() => {\n const createBadAction = defineCreateOrModifyObjectAction({\n objectType: sampleObject,\n // primary keys should not be in create-or-modify action orderings\n parameterOrdering: [\"foo\", \"id\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter ordering for create-or-modify-sample-object does not match expected parameters. Extraneous parameters in ordering: {id}, Missing parameters in ordering: {name}]`,\n );\n expect(() => {\n const createBadAction = defineCreateObjectAction({\n objectType: sampleObject,\n nonParameterMappings: {\n \"foo\": {\n type: \"currentUser\",\n },\n },\n // non-parameter mapped properties should not be in action orderings\n parameterOrdering: [\"foo\", \"id\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter ordering for create-object-sample-object does not match expected parameters. Extraneous parameters in ordering: {foo}, Missing parameters in ordering: {name}]`,\n );\n expect(() => {\n const createBadAction = defineModifyObjectAction({\n objectType: sampleObject,\n nonParameterMappings: {\n \"foo\": {\n type: \"currentUser\",\n },\n },\n // non-parameter mapped properties should not be in action orderings\n parameterOrdering: [\"foo\", \"id\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter ordering for modify-object-sample-object does not match expected parameters. Extraneous parameters in ordering: {foo,id}, Missing parameters in ordering: {name}]`,\n );\n expect(() => {\n const createBadAction = defineCreateOrModifyObjectAction({\n objectType: sampleObject,\n nonParameterMappings: {\n \"foo\": {\n type: \"currentUser\",\n },\n },\n // non-parameter mapped properties should not be in action orderings\n parameterOrdering: [\"foo\", \"id\"],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Action parameter ordering for create-or-modify-sample-object does not match expected parameters. Extraneous parameters in ordering: {foo,id}, Missing parameters in ordering: {name}]`,\n );\n const createAction = defineCreateObjectAction({\n objectType: sampleObject,\n parameterOrdering: [\"foo\", \"name\", \"id\"],\n parameterConfiguration: {\n \"name\": {\n conditionalOverrides: [\n {\n type: \"visibility\",\n condition: {\n type: \"parameter\",\n parameterId: \"foo\",\n matches: {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: \"foo\",\n },\n },\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 \"com.palantir.create-object-sample-object\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.sampleObject\",\n \"propertyValues\": {\n \"foo\": {\n \"parameterId\": \"foo\",\n \"type\": \"parameterId\",\n },\n \"id\": {\n \"parameterId\": \"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 \"foo\": {\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 \"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 {\n \"condition\": {\n \"comparison\": {\n \"left\": {\n \"parameterId\": \"foo\",\n \"type\": \"parameterId\",\n },\n \"operator\": \"EQUALS\",\n \"right\": {\n \"staticValue\": {\n \"string\": \"foo\",\n \"type\": \"string\",\n },\n \"type\": \"staticValue\",\n },\n },\n \"type\": \"comparison\",\n },\n \"parameterBlockOverrides\": [\n {\n \"type\": \"visibility\",\n \"visibility\": {\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n },\n ],\n },\n ],\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-sample-object\",\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 Test Object\",\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.sampleObject\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"foo\",\n \"name\",\n \"id\",\n ],\n \"parameters\": {\n \"foo\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Foo\",\n \"typeClasses\": [],\n },\n \"id\": \"foo\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\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 \"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 },\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.sampleObject\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.sampleObject\",\n \"propertyMapping\": {\n \"foo\": {\n \"column\": \"foo\",\n \"type\": \"column\",\n },\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.sampleObject\",\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.sampleObject\",\n \"displayMetadata\": {\n \"description\": \"Sample object description\",\n \"displayName\": \"Test Object\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"tests\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"id\",\n ],\n \"propertyTypes\": {\n \"foo\": {\n \"apiName\": \"foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\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 \"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 \"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(\"Interface actions validate SPT existence\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n const importedInterface: InterfaceType = {\n \"apiName\": \"com.palantir.other.ontology.event.Event\",\n \"displayMetadata\": {\n \"displayName\": \"Event\",\n \"description\": \"Event\",\n \"icon\": {\n \"type\": \"blueprint\",\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"timeline-events\",\n },\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"status\": {\n \"type\": \"active\",\n \"active\": {},\n },\n \"propertiesV2\": {\n \"com.palantir.other.ontology.types.id\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"displayName\": \"Id\",\n \"apiName\": \"com.palantir.other.ontology.types.id\",\n \"type\": \"string\",\n \"nonNameSpacedApiName\": \"id\",\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"__type\": \"SHARED_PROPERTY_TYPE\",\n },\n },\n },\n \"searchable\": false,\n \"__type\": \"INTERFACE_TYPE\",\n } as unknown as InterfaceType;\n importOntologyEntity(importedInterface);\n const interfaceType = defineInterface({\n apiName: \"interfaceType\",\n properties: {\n spt,\n },\n extends: importedInterface,\n });\n expect(() =>\n defineAction({\n apiName: \"action\",\n displayName: \"action\",\n status: \"active\",\n parameters: [{\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Interface object to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: interfaceType.apiName,\n },\n },\n validation: {\n required: true,\n allowedValues: { type: \"interfaceObjectQuery\" },\n },\n }, {\n id: \"sptParameter\",\n displayName: \"SPT\",\n type: \"string\",\n validation: {\n required: true,\n allowedValues: { type: \"text\" },\n },\n }, {\n id: \"otherParameter\",\n displayName: \"Other parameter\",\n type: \"string\",\n validation: {\n required: true,\n allowedValues: { type: \"text\" },\n },\n }],\n rules: [{\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter:\n \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: {\n spt: {\n type: \"parameterId\",\n parameterId: \"sptParameter\",\n },\n \"com.palantir.other.invalid.spt\": {\n type: \"staticValue\",\n staticValue: {\n type: \"double\",\n double: 4,\n },\n },\n other: {\n type: \"parameterId\",\n parameterId: \"otherParameter\",\n },\n },\n },\n }],\n })\n ).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Shared property type com.palantir.other.invalid.spt does not exist in interface type com.palantir.interfaceType]`,\n );\n expect(() =>\n defineCreateInterfaceObjectAction({ interfaceType: interfaceType })\n ).not\n .toThrow();\n });\n it(\"Interface actions validate SPT existence on the interface\", () => {\n expect(() => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n const pulseRepetitionIntervalSecs: SharedPropertyType = {\n \"apiName\": \"com.palantir.other.ontology.pulseRepetitionIntervalSecs\",\n \"displayName\": \"Pulse Repetition Interval (s)\",\n \"description\": \"Pulse Repetition Interval in seconds.\",\n \"type\": \"double\",\n \"nonNameSpacedApiName\": \"pulseRepetitionIntervalSecs\",\n \"typeClasses\": [],\n \"__type\": OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE,\n } as unknown as SharedPropertyType;\n importOntologyEntity(pulseRepetitionIntervalSecs);\n const interfaceType = defineInterface({\n apiName: \"interfaceType\",\n properties: {\n spt,\n },\n });\n const action = defineAction({\n apiName: \"action\",\n displayName: \"action\",\n status: \"active\",\n parameters: [{\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Interface object to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: interfaceType.apiName,\n },\n },\n validation: {\n required: true,\n allowedValues: { type: \"interfaceObjectQuery\" },\n },\n }, {\n id: \"sptParameter\",\n displayName: \"SPT\",\n type: \"string\",\n validation: {\n required: true,\n allowedValues: { type: \"text\" },\n },\n }],\n rules: [{\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter:\n \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: {\n spt: {\n type: \"parameterId\",\n parameterId: \"sptParameter\",\n },\n [pulseRepetitionIntervalSecs.apiName]: {\n type: \"staticValue\",\n staticValue: {\n type: \"double\",\n double: 4,\n },\n },\n },\n },\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Shared property type com.palantir.other.ontology.pulseRepetitionIntervalSecs does not exist in interface type com.palantir.interfaceType]`,\n );\n });\n });\n describe(\"Imports\", () => {\n it(\"Legacy importing works\", () => {\n const id = importSharedPropertyType({\n apiName: \"id\",\n packageName: \"com.palantir.core.ontology.types\",\n typeHint: \"string\",\n });\n const myInterface = defineInterface({\n apiName: \"myInterface\",\n properties: {\n id,\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 \"com.palantir.core.ontology.types.id\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.core.ontology.types.id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"com.palantir.core.ontology.types.id\",\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 \"valueType\": undefined,\n },\n },\n },\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.myInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.myInterface\",\n \"displayMetadata\": {\n \"description\": \"myInterface\",\n \"displayName\": \"myInterface\",\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.core.ontology.types.id\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.core.ontology.types.id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"com.palantir.core.ontology.types.id\",\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 \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Simple importing works\", () => {\n // does the same as \"import { spt } from '@other/package'\"\n const spt: SharedPropertyType = {\n apiName: \"com.other.package.spt\",\n nonNameSpacedApiName: \"spt\",\n type: \"string\",\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE,\n };\n importOntologyEntity(spt);\n\n const myInterface = defineInterface({\n apiName: \"myInterface\",\n properties: {\n spt,\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 \"com.other.package.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.other.package.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"com.other.package.spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n },\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.myInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.myInterface\",\n \"displayMetadata\": {\n \"description\": \"myInterface\",\n \"displayName\": \"myInterface\",\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.other.package.spt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.other.package.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"com.other.package.spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Export files are generated correctly\", async () => {\n const generatedDir = path.resolve(path.join(\n __dirname,\n \"..\",\n \"generatedNoCheck\",\n \"export_files_are_generated_correctly\",\n ));\n await defineOntology(\"com.my.package.\", () => {\n const mySpt = defineSharedPropertyType({\n apiName: \"mySpt\",\n type: \"string\",\n });\n const myInterface = defineInterface({\n apiName: \"myInterface\",\n properties: {\n mySpt,\n },\n });\n const myObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"My Object\",\n pluralDisplayName: \"myObjects\",\n apiName: \"myObject\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: myInterface,\n propertyMapping: [{\n interfaceProperty: \"com.my.package.mySpt\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }, generatedDir);\n\n expect(\n fs.readFileSync(\n path.join(generatedDir, \"codegen/interface-types/myInterface.ts\"),\n \"utf8\",\n ),\n ).toMatchInlineSnapshot(`\n \"\n import { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\n import type { InterfaceType } from '@osdk/maker';\n\n /** @type {import('@osdk/maker').InterfaceType} */\n const myInterface_base: InterfaceType = {\n \"apiName\": \"com.my.package.myInterface\",\n \"displayMetadata\": {\n \"displayName\": \"myInterface\",\n \"description\": \"myInterface\"\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"status\": {\n \"type\": \"active\",\n \"active\": {}\n },\n \"propertiesV2\": {\n \"com.my.package.mySpt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"apiName\": \"com.my.package.mySpt\",\n \"type\": \"string\",\n \"nonNameSpacedApiName\": \"mySpt\",\n \"displayName\": \"mySpt\",\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\"\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\"\n }\n ],\n \"__type\": OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n }\n }\n },\n \"searchable\": true,\n \"__type\": OntologyEntityTypeEnum.INTERFACE_TYPE\n } as unknown as InterfaceType;\n \n export const myInterface: InterfaceType = wrapWithProxy(myInterface_base);\n \"\n `);\n\n expect(\n fs.readFileSync(\n path.join(generatedDir, \"codegen/object-types/myObject.ts\"),\n \"utf8\",\n ),\n ).toMatchInlineSnapshot(`\n \"\n import { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\n import type { ObjectType } from '@osdk/maker';\n\n /** @type {import('@osdk/maker').ObjectType} */\n const myObject_base: ObjectType = {\n \"titlePropertyApiName\": \"bar\",\n \"displayName\": \"My Object\",\n \"pluralDisplayName\": \"myObjects\",\n \"apiName\": \"com.my.package.myObject\",\n \"primaryKeyPropertyApiName\": \"bar\",\n \"properties\": [\n {\n \"type\": \"string\",\n \"apiName\": \"bar\",\n \"displayName\": \"Bar\"\n }\n ],\n \"implementsInterfaces\": [\n {\n \"implements\": {\n \"apiName\": \"com.my.package.myInterface\",\n \"displayMetadata\": {\n \"displayName\": \"myInterface\",\n \"description\": \"myInterface\"\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"status\": {\n \"type\": \"active\",\n \"active\": {}\n },\n \"propertiesV2\": {\n \"com.my.package.mySpt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"apiName\": \"com.my.package.mySpt\",\n \"type\": \"string\",\n \"nonNameSpacedApiName\": \"mySpt\",\n \"displayName\": \"mySpt\",\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\"\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\"\n }\n ],\n \"__type\": OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n }\n }\n },\n \"searchable\": true,\n \"__type\": OntologyEntityTypeEnum.INTERFACE_TYPE\n },\n \"propertyMapping\": [\n {\n \"interfaceProperty\": \"com.my.package.mySpt\",\n \"mapsTo\": \"bar\"\n }\n ]\n }\n ],\n \"__type\": OntologyEntityTypeEnum.OBJECT_TYPE\n } as unknown as ObjectType;\n \n export const myObject: ObjectType = wrapWithProxy(myObject_base);\n \"\n `);\n\n expect(\n fs.readFileSync(\n path.join(generatedDir, \"codegen/shared-property-types/mySpt.ts\"),\n \"utf8\",\n ),\n ).toMatchInlineSnapshot(`\n \"\n import { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\n import type { SharedPropertyType } from '@osdk/maker';\n\n /** @type {import('@osdk/maker').SharedPropertyType} */\n const mySpt_base: SharedPropertyType = {\n \"apiName\": \"com.my.package.mySpt\",\n \"type\": \"string\",\n \"nonNameSpacedApiName\": \"mySpt\",\n \"displayName\": \"mySpt\",\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\"\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\"\n }\n ],\n \"__type\": OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n } as unknown as SharedPropertyType;\n \n export const mySpt: SharedPropertyType = wrapWithProxy(mySpt_base);\n \"\n `);\n fs.rmSync(path.resolve(path.join(generatedDir, \"..\")), {\n recursive: true,\n force: true,\n });\n });\n it(\"Extended interfaces are propagated to the static objects\", async () => {\n const generatedDir = path.resolve(path.join(\n __dirname,\n \"..\",\n \"generatedNoCheck\",\n \"extended_interfaces_are_propagated_to_the_static_objects\",\n ));\n await defineOntology(\"com.palantir.\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: \"string\",\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: \"string\",\n },\n extends: [parentInterface],\n });\n }, generatedDir);\n\n expect(\n fs.readFileSync(\n path.join(generatedDir, \"codegen/interface-types/childInterface.ts\"),\n \"utf8\",\n ),\n ).toMatchInlineSnapshot(`\n \"\n import { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\n import type { InterfaceType } from '@osdk/maker';\n\n /** @type {import('@osdk/maker').InterfaceType} */\n const childInterface_base: InterfaceType = {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"displayName\": \"childInterface\",\n \"description\": \"childInterface\"\n },\n \"extendsInterfaces\": [\n {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"displayName\": \"parentInterface\",\n \"description\": \"parentInterface\"\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"status\": {\n \"type\": \"active\",\n \"active\": {}\n },\n \"propertiesV2\": {\n \"com.palantir.property1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"apiName\": \"com.palantir.property1\",\n \"displayName\": \"property1\",\n \"type\": \"string\",\n \"array\": false,\n \"nonNameSpacedApiName\": \"property1\",\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\"\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\"\n }\n ],\n \"__type\": OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n }\n }\n },\n \"searchable\": true,\n \"__type\": OntologyEntityTypeEnum.INTERFACE_TYPE\n }\n ],\n \"links\": [],\n \"status\": {\n \"type\": \"active\",\n \"active\": {}\n },\n \"propertiesV2\": {\n \"com.palantir.property2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"apiName\": \"com.palantir.property2\",\n \"displayName\": \"property2\",\n \"type\": \"string\",\n \"array\": false,\n \"nonNameSpacedApiName\": \"property2\",\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\"\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\"\n }\n ],\n \"__type\": OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE\n }\n }\n },\n \"searchable\": true,\n \"__type\": OntologyEntityTypeEnum.INTERFACE_TYPE\n } as unknown as InterfaceType;\n \n export const childInterface: InterfaceType = wrapWithProxy(childInterface_base);\n \"\n `);\n fs.rmSync(path.join(generatedDir, \"..\"), {\n recursive: true,\n force: true,\n });\n });\n it(\"Extended interface properties are checked in object type property mapping\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n iProperty1: \"string\",\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n iProperty2: \"string\",\n },\n extends: [parentInterface],\n });\n const objectDef = defineObject({\n apiName: \"objectDef\",\n primaryKeyPropertyApiName: \"property1\",\n titlePropertyApiName: \"property1\",\n displayName: \"objectDef\",\n pluralDisplayName: \"objectDefs\",\n properties: {\n \"property1\": { type: \"string\", displayName: \"property1\" },\n \"property2\": { type: \"string\", displayName: \"property2\" },\n },\n implementsInterfaces: [\n {\n implements: childInterface,\n propertyMapping: [\n {\n interfaceProperty: \"com.palantir.iProperty1\",\n mapsTo: \"property1\",\n },\n {\n interfaceProperty: \"com.palantir.iProperty2\",\n mapsTo: \"property2\",\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 \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.iProperty2\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.iProperty2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"iProperty2\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.iProperty1\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.iProperty1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"iProperty1\",\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.objectDef\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.objectDef\",\n \"propertyMapping\": {\n \"property1\": {\n \"column\": \"property1\",\n \"type\": \"column\",\n },\n \"property2\": {\n \"column\": \"property2\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.objectDef\",\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.objectDef\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"objectDef\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"objectDefs\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [\n {\n \"interfaceTypeApiName\": \"com.palantir.childInterface\",\n \"linksV2\": {},\n \"properties\": {\n \"com.palantir.iProperty1\": {\n \"propertyTypeRid\": \"property1\",\n },\n \"com.palantir.iProperty2\": {\n \"propertyTypeRid\": \"property2\",\n },\n },\n \"propertiesV2\": {},\n },\n ],\n \"primaryKeys\": [\n \"property1\",\n ],\n \"propertyTypes\": {\n \"property1\": {\n \"apiName\": \"property1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\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 \"property2\": {\n \"apiName\": \"property2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\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\": \"property1\",\n },\n },\n },\n \"sharedPropertyTypes\": {\n \"com.palantir.iProperty1\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.iProperty1\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"iProperty1\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"com.palantir.iProperty2\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.iProperty2\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"iProperty2\",\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 \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n });\n describe(\"Dependencies\", () => {\n it(\"Correctly adds dependencies\", async () => {\n const generatedDir = path.resolve(path.join(\n __dirname,\n \"..\",\n \"generatedNoCheck\",\n \"correctly_adds_dependencies\",\n ));\n await defineOntology(\n \"com.palantir.\",\n () => {\n addDependency(\"com.palantir\", fileURLToPath(import.meta.url));\n defineInterface({\n apiName: \"myInterface\",\n properties: {\n property1: \"string\",\n },\n });\n },\n generatedDir,\n path.join(generatedDir, \"dependencies.json\"),\n );\n\n const packageJson = JSON.parse(\n fs.readFileSync(\n path.join(__dirname, \"..\", \"..\", \"package.json\"),\n \"utf8\",\n ),\n );\n expect(packageJson.version).toBeDefined();\n\n expect(\n fs.readFileSync(path.join(generatedDir, \"dependencies.json\"), \"utf8\"),\n ).toMatchInlineSnapshot(`\n \"{\n \"com.palantir\": \"${packageJson.version}\"\n }\"\n `);\n\n expect(\n fs.readFileSync(path.join(generatedDir, \"index.ts\"), \"utf8\"),\n )\n .toContain(\n `addDependency(\"com.palantir\", new URL(import.meta.url).pathname);`,\n );\n\n fs.rmSync(path.join(generatedDir, \"..\"), {\n recursive: true,\n force: true,\n });\n });\n });\n});\n"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,gCAAgC,CAAE,IAAM,CACzCmB,wBAAwB,CAAC,CACvBI,OAAO,CAAE,KAAK,CACdE,IAAI,CAAE,QACR,CAAC,CAAC,CAEF1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC,CAEF1D,MAAM,CAAC,IAAM,CACXa,eAAe,CAAC,CACdW,OAAO,CAAE,KAAK,CACdiB,UAAU,CAAE,CACVmB,GAAG,CAAE,QACP,CACF,CAAC,CAAC,CACJ,CAAC,CAAC,CAAC9B,kCAAkC,CACnC,iFACF,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CAAC,CAEF7B,EAAE,CAAC,uDAAuD,CAAE,IAAM,CAChE,KAAM,CAAA4D,eAAe,CAAGhD,eAAe,CAAC,CACtCW,OAAO,CAAE,iBAAiB,CAC1BiB,UAAU,CAAE,CACVqB,SAAS,CAAE,QACb,CACF,CAAC,CAAC,CACqBjD,eAAe,CAAC,CACrCW,OAAO,CAAE,gBAAgB,CACzBiB,UAAU,CAAE,CACVsB,SAAS,CAAE,QACb,CAAC,CACDC,OAAO,CAAE,CAACH,eAAe,CAC3B,CAAC,CAAC,CAEF7D,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,8BAA8B,CAAE,IAAM,CACfY,eAAe,CAAC,CACtCW,OAAO,CAAE,iBAAiB,CAC1BiB,UAAU,CAAE,CACVqB,SAAS,CAAE,CAAEG,QAAQ,CAAE,KAAK,CAAEC,kBAAkB,CAAE,QAAS,CAC7D,CACF,CAAC,CAAC,CAEFlE,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,iDAAiD,CAAE,IAAM,CAC1D,KAAM,CAAA4D,eAAe,CAAGhD,eAAe,CAAC,CACtCW,OAAO,CAAE,iBAAiB,CAC1BiB,UAAU,CAAE,CACVqB,SAAS,CAAE,QACb,CACF,CAAC,CAAC,CACqBjD,eAAe,CAAC,CACrCW,OAAO,CAAE,gBAAgB,CACzBiB,UAAU,CAAE,CACVsB,SAAS,CAAE,QACb,CAAC,CACDC,OAAO,CAAEH,eACX,CAAC,CAAC,CAEF7D,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,gCAAgC,CAAE,IAAM,CACjBY,eAAe,CAAC,CACtCW,OAAO,CAAE,iBAAiB,CAC1B2C,UAAU,CAAE,KACd,CAAC,CAAC,CAEFnE,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CACJ,CAAC,CAAC,CACJ,CAAC,CAAC,CAEF3D,QAAQ,CAAC,MAAM,CAAE,IAAM,CACrB,GAAI,CAAAqE,CAAgB,CACpB,GAAI,CAAAC,CAAgB,CAEpBvE,UAAU,CAAC,IAAM,CACfsE,CAAC,CAAGvD,eAAe,CAAC,CAAEW,OAAO,CAAE,GAAI,CAAC,CAAC,CACrC6C,CAAC,CAAGxD,eAAe,CAAC,CAAEW,OAAO,CAAE,GAAI,CAAC,CAAC,CACvC,CAAC,CAAC,CAEFvB,EAAE,CAAC,mBAAmB,CAAE,IAAM,CAC5BD,MAAM,CAACoE,CAAC,CAAC,CAACE,GAAG,CAACC,aAAa,CAAC,CAAC,CAC7BzD,6BAA6B,CAAC,CAC5B0D,IAAI,CAAEJ,CAAC,CACPK,KAAK,CAAEJ,CAAC,CACR7C,OAAO,CAAE,YACX,CAAC,CAAC,CAEFxB,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,iBAAiB,CAAE,IAAM,CAC1Ba,6BAA6B,CAAC,CAC5B0D,IAAI,CAAEJ,CAAC,CACPM,MAAM,CAAEL,CAAC,CACT7C,OAAO,CAAE,UACX,CAAC,CAAC,CAEFxB,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CACJ,CAAC,CAAC,CACJ,CAAC,CAAC,CAEF3D,QAAQ,CAAC,MAAM,CAAE,IAAM,CACrBE,EAAE,CAAC,2CAA2C,CAAE,IAAM,CACpDmB,wBAAwB,CAAC,CACvBI,OAAO,CAAE,KAAK,CACdE,IAAI,CAAE,QACR,CAAC,CAAC,CAEF1B,MAAM,CAAC,IAAM,CACXoB,wBAAwB,CAAC,CACvBI,OAAO,CAAE,KAAK,CACdE,IAAI,CAAE,QACR,CAAC,CAAC,CACJ,CAAC,CAAC,CAACI,kCAAkC,CACnC,iFACF,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CAAC,CAEF7B,EAAE,CAAC,uBAAuB,CAAE,IAAM,CAChC,KAAM,CAAA0E,MAAM,CAAGvD,wBAAwB,CAAC,CACtCI,OAAO,CAAE,QAAQ,CACjBE,IAAI,CAAE,QACR,CAAC,CAAC,CAEmBb,eAAe,CAAC,CACnCW,OAAO,CAAE,cAAc,CACvBC,WAAW,CAAE,eAAe,CAC5BgB,UAAU,CAAE,CACVkC,MACF,CAAC,CACDC,IAAI,CAAE,CAAEC,KAAK,CAAE,QAAQ,CAAEC,OAAO,CAAE,UAAW,CAC/C,CAAC,CAAC,CAEF9E,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,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,KAAK,CAAC,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,+CAA+C,CAAE,IAAM,CACzCmB,wBAAwB,CAAC,CACtCI,OAAO,CAAE,QAAQ,CACjBE,IAAI,CAAE,CACJA,IAAI,CAAE,QAAQ,CACdqD,gBAAgB,CAAE,CAChB,gBAAgB,CAAE,SAAS,CAC3B,iBAAiB,CAAE,CACjBC,SAAS,CAAE,MAAM,CACjB9B,eAAe,CAAE,CACfzB,WAAW,CAAE,kBAAkB,CAC/BO,WAAW,CAAEiD,SACf,CACF,CACF,CACF,CACF,CAAC,CAAC,CAEFjF,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,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,OAAO,CAAC,CACN,CAAC,CAAC,CAEFzD,EAAE,CAAC,mCAAmC,CAAE,IAAM,CAC5C,KAAM,CAAAiF,GAAG,CAAG9D,wBAAwB,CAAC,CACnCI,OAAO,CAAE,KAAK,CACdE,IAAI,CAAE,CACJA,IAAI,CAAE,QAAQ,CACdyD,UAAU,CAAE,IAAI,CAChBC,gCAAgC,CAAE,IAAI,CACtCC,qBAAqB,CAAE,KACzB,CACF,CAAC,CAAC,CAEFxE,eAAe,CAAC,CACdW,OAAO,CAAE,WAAW,CACpBiB,UAAU,CAAE,CAAEmB,GAAG,CAAEsB,GAAI,CACzB,CAAC,CAAC,CAEFlF,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,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;AA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,CAAE,CACXC,IAAI,CAAE,QAAQ,CACduE,KAAK,CAAE,IAAI,CACXxE,WAAW,CAAE,qBACf,CAAC,CACD,UAAU,CAAE,CACVC,IAAI,CAAE,CACJA,IAAI,CAAE,QAAQ,CACdqD,gBAAgB,CAAE,CAAEmB,GAAG,CAAE,QAAQ,CAAEC,GAAG,CAAE,QAAS,CACnD,CAAC,CACD1E,WAAW,CAAE,UACf,CACF,CAAC,CACDmE,oBAAoB,CAAE,CAAC,CACrBC,UAAU,CAAEF,MAAM,CAClBG,eAAe,CAAE,CAAC,CAChBC,iBAAiB,CAAE,KAAK,CACxBC,MAAM,CAAE,KACV,CAAC,CACH,CAAC,CACH,CAAC,CAAC,CAEFhG,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CACFzD,EAAE,CAAC,wCAAwC,CAAE,IAAM,CACjD,KAAM,CAAAmG,MAAM,CAAGpF,YAAY,CAAC,CAC1BsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,KAAK,CACxBf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CAAE,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAC1C,CAAC,CAAC,CAEF,KAAM,CAAA2E,WAAW,CAAGrF,YAAY,CAAC,CAC/BsB,oBAAoB,CAAE,MAAM,CAC5Bb,WAAW,CAAE,MAAM,CACnBc,iBAAiB,CAAE,MAAM,CACzBf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CAAE,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CAAE,KAAK,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAE,CACtE,CAAC,CAAC,CAEFX,UAAU,CAAC,CACTS,OAAO,CAAE,WAAW,CACpB8E,GAAG,CAAE,CACHF,MAAM,CAAEA,MAAM,CACdG,QAAQ,CAAE,CACR/E,OAAO,CAAE,QAAQ,CACjBC,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,MACrB,CACF,CAAC,CACDmC,MAAM,CAAE,CACN0B,MAAM,CAAEC,WAAW,CACnBE,QAAQ,CAAE,CACR9E,WAAW,CAAE,MAAM,CACnBc,iBAAiB,CAAE,QAAQ,CAC3Bf,OAAO,CAAE,MACX,CACF,CAAC,CACDgF,sBAAsB,CAAE,KAC1B,CAAC,CAAC,CAEFxG,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,yCAAyC,CAAE,IAAM,CAClD,KAAM,CAAAmG,MAAM,CAAGpF,YAAY,CAAC,CAC1BsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,KAAK,CACxBf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CAAE,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAC1C,CAAC,CAAC,CAEF,KAAM,CAAA2E,WAAW,CAAGrF,YAAY,CAAC,CAC/BsB,oBAAoB,CAAE,MAAM,CAC5Bb,WAAW,CAAE,MAAM,CACnBc,iBAAiB,CAAE,MAAM,CACzBf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CAAE,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CAAE,KAAK,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAE,CACtE,CAAC,CAAC,CAEFX,UAAU,CAAC,CACTS,OAAO,CAAE,WAAW,CACpBiF,IAAI,CAAE,CACJL,MAAM,CAAEA,MAAM,CACdG,QAAQ,CAAE,CACR9E,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,MAAM,CACzBf,OAAO,CAAE,QACX,CACF,CAAC,CACDkD,MAAM,CAAE,CACN0B,MAAM,CAAEC,WAAW,CACnBE,QAAQ,CAAE,CACR9E,WAAW,CAAE,MAAM,CACnBc,iBAAiB,CAAE,QAAQ,CAC3Bf,OAAO,CAAE,MACX,CACF,CACF,CAAC,CAAC,CACFxB,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,+CAA+C,CAAE,IAAM,CACxD,KAAM,CAAAmG,MAAM,CAAGpF,YAAY,CAAC,CAC1BsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,KAAK,CACxBf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CAAE,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAC1C,CAAC,CAAC,CAEF,KAAM,CAAA2E,WAAW,CAAGrF,YAAY,CAAC,CAC/BsB,oBAAoB,CAAE,MAAM,CAC5Bb,WAAW,CAAE,MAAM,CACnBc,iBAAiB,CAAE,MAAM,CACzBf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CAAE,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CAAE,KAAK,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAE,CACtE,CAAC,CAAC,CAEFX,UAAU,CAAC,CACTS,OAAO,CAAE,WAAW,CACpB8E,GAAG,CAAE,CACHF,MAAM,CAAEA,MAAM,CACdG,QAAQ,CAAE,CACR/E,OAAO,CAAE,QACX,CACF,CAAC,CACDkD,MAAM,CAAE,CACN0B,MAAM,CAAEC,WAAW,CACnBE,QAAQ,CAAE,CACR/E,OAAO,CAAE,MACX,CACF,CAAC,CACDgF,sBAAsB,CAAE,KAC1B,CAAC,CAAC,CAEFxG,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,sDAAsD,CAAE,IAAM,CACnCe,YAAY,CAAC,CACvCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,qBAAqB,CAClCc,iBAAiB,CAAE,qBAAqB,CACxCf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CAAE,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAAC,CACzCuF,UAAU,CAAE,CAAEvF,IAAI,CAAE,SAAU,CAChC,CAAC,CAAC,CAEoCV,YAAY,CAAC,CACjDsB,oBAAoB,CAAE,MAAM,CAC5Bb,WAAW,CAAE,+BAA+B,CAC5Cc,iBAAiB,CAAE,+BAA+B,CAClDf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CAAE,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CAAE,KAAK,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAE,CAAC,CACrEuF,UAAU,CAAE,CAAEvF,IAAI,CAAE,QAAS,CAC/B,CAAC,CAAC,CAEsCV,YAAY,CAAC,CACnDsB,oBAAoB,CAAE,MAAM,CAC5Bb,WAAW,CAAE,iCAAiC,CAC9Cc,iBAAiB,CAAE,iCAAiC,CACpDf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CAAE,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAAC,CAC1CuF,UAAU,CAAE,CAAEvF,IAAI,CAAE,QAAQ,CAAEwF,eAAe,CAAE,MAAO,CACxD,CAAC,CAAC,CAEFlH,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAACyB,QAAQ,CAAC,CAACe,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,kDAAkD,CAAE,IAAM,CAC5Ce,YAAY,CAAC,CAC1BsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,KAAK,CACxBf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CACV,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAC1B,CAAC,CACDuF,UAAU,CAAE,CAAEvF,IAAI,CAAE,gBAAiB,CACvC,CAAC,CAAC,CACF1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,2CAA2C,CAAE,IAAM,CACrCe,YAAY,CAAC,CAC1BsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,KAAK,CACxBf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CACV,KAAK,CAAE,CACLf,IAAI,CAAE,QAAQ,CACdyF,QAAQ,CAAE,IACZ,CAAC,CACD,MAAM,CAAE,CACNzF,IAAI,CAAE,QACR,CACF,CACF,CAAC,CAAC,CACF1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,4CAA4C,CAAE,IAAM,CACrDD,MAAM,CAAC,IAAM,CACXgB,YAAY,CAAC,CACXsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,KAAK,CAClBc,iBAAiB,CAAE,KAAK,CACxBf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CAAE,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAQ,CAAEyF,QAAQ,CAAE,IAAK,CAAE,CAC1D,CAAC,CAAC,CACJ,CAAC,CAAC,CAACrF,kCAAkC,CACnC,uFACF,CAAC,CACH,CAAC,CAAC,CAEF7B,EAAE,CAAC,2DAA2D,CAAE,IAAM,CACpED,MAAM,CAAC,IACLgB,YAAY,CAAC,CACXsB,oBAAoB,CAAE,MAAM,CAC5Bb,WAAW,CAAE,iCAAiC,CAC9Cc,iBAAiB,CAAE,iCAAiC,CACpDf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,MAAM,CACjCC,UAAU,CAAE,CAAE,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAAC,CAC1CuF,UAAU,CAAE,CACVvF,IAAI,CAAE,QAAQ,CACdwF,eAAe,CAAE,6BACnB,CACF,CAAC,CACH,CAAC,CAACpF,kCAAkC,CAClC,oIACF,CAAC,CACH,CAAC,CAAC,CAEF7B,EAAE,CAAC,iDAAiD,CAAE,IAAM,CACpCe,YAAY,CAAC,CACjCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,eAAe,CAC5Bc,iBAAiB,CAAE,eAAe,CAClCf,OAAO,CAAE,MAAM,CACfgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CACV,MAAM,CAAE,CAAEf,IAAI,CAAE,gBAAiB,CAAC,CAClC,KAAK,CAAE,CAAEA,IAAI,CAAE,QAAS,CAC1B,CAAC,CACDuF,UAAU,CAAE,CAAEvF,IAAI,CAAE,QAAS,CAC/B,CAAC,CAAC,CAEF1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CACJ,CAAC,CAAC,CAEF3D,QAAQ,CAAC,qBAAqB,CAAE,IAAM,CACpCE,EAAE,CAAC,uEAAuE,CAAE,IAAM,CACpEe,YAAY,CAAC,CACvBsB,oBAAoB,CAAE,OAAO,CAC7Bb,WAAW,CAAE,UAAU,CACvBc,iBAAiB,CAAE,WAAW,CAC9Bf,OAAO,CAAE,UAAU,CACnBgB,yBAAyB,CAAE,OAAO,CAClCC,UAAU,CAAE,CACV,OAAO,CAAE,CACPf,IAAI,CAAE,QAAQ,CACdD,WAAW,CAAE,OACf,CAAC,CACD,gBAAgB,CAAE,CAChBC,IAAI,CAAE,CACJA,IAAI,CAAE,SAAS,CACf0F,WAAW,CAAE,MAAM,CACnBC,qBAAqB,CAAE,qBACzB,CAAC,CACD5F,WAAW,CAAE,gBACf,CACF,CACF,CAAC,CAAC,CAEF,KAAM,CAAAkB,QAAQ,CAAGzB,wBAAwB,CAAC,CAAC,CAC3C,KAAM,CAAAoG,wBAAwB,CAAG3E,QAAQ,CAACA,QAAQ,CAC/CE,WAAW,CAAC,uBAAuB,CAAC,CAAC0E,WAAW,CAAC,CAAC,CAAC,CAACC,YAAY,EAC/DF,wBAAyB,CAC7BtH,MAAM,CAACsH,wBAAwB,CAACG,gBAAgB,CAAC,CAACzE,OAAO,CACvD,qBACF,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CAAC,CAEFjD,QAAQ,CAAC,SAAS,CAAE,IAAM,CACxBE,EAAE,CAAC,wCAAwC,CAAE,IAAM,CACrCY,eAAe,CAAC,CAC1BW,OAAO,CAAE,KAAK,CACdC,WAAW,CAAE,KAAK,CAClBgB,UAAU,CAAE,CAAC,CACf,CAAC,CAAC,CACoBpC,YAAY,CAAC,CACjCmB,OAAO,CAAE,KAAK,CACdC,WAAW,CAAE,eAAe,CAC5B6D,MAAM,CAAE,QAAQ,CAChBoC,KAAK,CAAE,CAAC,CACNhG,IAAI,CAAE,kBAAkB,CACxBiG,gBAAgB,CAAE,CAChBC,gBAAgB,CAAE,KAAK,CACvBC,mBAAmB,CAAE,QAAQ,CAC7BC,oBAAoB,CAAE,CAAC,CACzB,CACF,CAAC,CAAC,CACFC,UAAU,CAAE,CAAC,CACXC,EAAE,CAAE,QAAQ,CACZvG,WAAW,CAAE,QAAQ,CACrBC,IAAI,CAAE,SAAS,CACfuG,UAAU,CAAE,CAAEhE,QAAQ,CAAE,IAAI,CAAEiE,aAAa,CAAE,CAAExG,IAAI,CAAE,SAAU,CAAE,CACnE,CAAC,CACH,CAAC,CAAC,CAEF1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CACFzD,EAAE,CAAC,mEAAmE,CAAE,IAAM,CAC5E,KAAM,CAAAkI,yBAAyB,CAAG/G,wBAAwB,CAAC,CACzDI,OAAO,CAAE,WAAW,CACpBE,IAAI,CAAE,CACJA,IAAI,CAAE,QAAQ,CACdqD,gBAAgB,CAAE,CAChBqD,cAAc,CAAE,QAClB,CACF,CACF,CAAC,CAAC,CACF,KAAM,CAAAC,KAAK,CAAGjH,wBAAwB,CAAC,CACrCI,OAAO,CAAE,OAAO,CAChBE,IAAI,CAAE,QACR,CAAC,CAAC,CACF,KAAM,CAAA4G,gBAAgB,CAAGzH,eAAe,CAAC,CACvCW,OAAO,CAAE,kBAAkB,CAC3BoD,IAAI,CAAE,CAAEC,KAAK,CAAE,WAAW,CAAEC,OAAO,CAAE,OAAQ,CAAC,CAC9CrC,UAAU,CAAE,CACV4F,KAAK,CACLvE,SAAS,CAAE,QAAQ,CACnBC,SAAS,CAAEoE,yBACb,CACF,CAAC,CAAC,CAEF,KAAM,CAAAI,iBAAiB,CAAGvH,YAAY,CAAC,CACrCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,mBAAmB,CAChCc,iBAAiB,CAAE,oBAAoB,CACvCf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CACV,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CACzB,WAAW,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAC,CAC/B,WAAW,CAAE,CACXA,IAAI,CAAE,CACJA,IAAI,CAAE,QAAQ,CACdqD,gBAAgB,CAAE,CAAEqD,cAAc,CAAE,QAAS,CAC/C,CACF,CACF,CAAC,CACDxC,oBAAoB,CAAE,CAAC,CACrBC,UAAU,CAAEyC,gBAAgB,CAC5BxC,eAAe,CAAE,CACf,CACEC,iBAAiB,CAAE,oBAAoB,CACvCC,MAAM,CAAE,KACV,CAAC,CACD,CACED,iBAAiB,CAAE,wBAAwB,CAC3CC,MAAM,CAAE,WACV,CAAC,CACD,CACED,iBAAiB,CAAE,wBAAwB,CAC3CC,MAAM,CAAE,WACV,CAAC,CAEL,CAAC,CACH,CAAC,CAAC,CAEiC1F,iCAAiC,CAAC,CACnEkI,aAAa,CAAEF,gBAAgB,CAC/BxF,UAAU,CAAEyF,iBACd,CAAC,CAAC,CAEmB7H,iCAAiC,CAAC,CACrD8H,aAAa,CAAEF,gBAAgB,CAC/BxF,UAAU,CAAEyF,iBACd,CAAC,CAAC,CAEFvI,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,uCAAuC,CAAE,IAAM,CAC1BI,YAAY,CAAC,CACjCmB,OAAO,CAAE,KAAK,CACdC,WAAW,CAAE,eAAe,CAC5B6D,MAAM,CAAE,QAAQ,CAChBoC,KAAK,CAAE,CAAC,CACNhG,IAAI,CAAE,yBAAyB,CAC/B+G,uBAAuB,CAAE,CACvBC,cAAc,CAAE,yBAAyB,CACzCC,cAAc,CAAE,CACd,KAAK,CAAE,CACLjH,IAAI,CAAE,aAAa,CACnBkH,WAAW,CAAE,QACf,CACF,CAAC,CACDC,iBAAiB,CAAE,CAAC,CACtB,CACF,CAAC,CAAC,CACFd,UAAU,CAAE,CAAC,CACXC,EAAE,CAAE,QAAQ,CACZvG,WAAW,CAAE,QAAQ,CACrBC,IAAI,CAAE,SAAS,CACfuG,UAAU,CAAE,CAAEhE,QAAQ,CAAE,IAAI,CAAEiE,aAAa,CAAE,CAAExG,IAAI,CAAE,SAAU,CAAE,CACnE,CAAC,CACH,CAAC,CAAC,CAEF1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,uDAAuD,CAAE,IAAM,CAC1CI,YAAY,CAAC,CACjCmB,OAAO,CAAE,KAAK,CACdC,WAAW,CAAE,eAAe,CAC5B6D,MAAM,CAAE,QAAQ,CAChBoC,KAAK,CAAE,CAAC,CACNhG,IAAI,CAAE,kBAAkB,CACxBoH,gBAAgB,CAAE,CAChBJ,cAAc,CAAE,yBAAyB,CACzCC,cAAc,CAAE,CACd,KAAK,CAAE,CACLjH,IAAI,CAAE,aAAa,CACnBkH,WAAW,CAAE,QACf,CACF,CAAC,CACDC,iBAAiB,CAAE,CAAC,CACtB,CACF,CAAC,CAAC,CACFd,UAAU,CAAE,CAAC,CACXC,EAAE,CAAE,QAAQ,CACZvG,WAAW,CAAE,QAAQ,CACrBC,IAAI,CAAE,SAAS,CACfuG,UAAU,CAAE,CACVhE,QAAQ,CAAE,IAAI,CACdiE,aAAa,CAAE,CAAExG,IAAI,CAAE,SAAU,CAAC,CAClCqH,iBAAiB,CAAE,UAAU,CAC7BC,oBAAoB,CAAE,CACpB,CACEtH,IAAI,CAAE,YAAY,CAClBuH,SAAS,CAAE,CACTvH,IAAI,CAAE,OAAO,CACbwH,IAAI,CAAE,SACR,CACF,CAAC,CAEL,CACF,CAAC,CAAE,CACDlB,EAAE,CAAE,yBAAyB,CAC7BvG,WAAW,CAAE,yBAAyB,CACtCC,IAAI,CAAE,qBAAqB,CAC3BuG,UAAU,CAAE,CACVhE,QAAQ,CAAE,IAAI,CACdiE,aAAa,CAAE,CAAExG,IAAI,CAAE,qBAAqB,CAAEyH,cAAc,CAAE,EAAG,CAAC,CAClEJ,iBAAiB,CAAE,UACrB,CACF,CAAC,CACH,CAAC,CAAC,CAEF/I,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,8CAA8C,CAAE,IAAM,CACvD,KAAM,CAAAsI,iBAAiB,CAAGvH,YAAY,CAAC,CACrCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,mBAAmB,CAChCc,iBAAiB,CAAE,oBAAoB,CACvCf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CACV,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CACzB,YAAY,CAAE,CACZA,IAAI,CAAE,CACJA,IAAI,CAAE,QAAQ,CACdqD,gBAAgB,CAAE,CAAEqD,cAAc,CAAE,QAAS,CAC/C,CACF,CAAC,CACD,cAAc,CAAE,CAAE1G,IAAI,CAAE,QAAS,CACnC,CACF,CAAC,CAAC,CAE6BnB,wBAAwB,CACrD,CACEuC,UAAU,CAAEyF,iBACd,CACF,CAAC,CAC8B5H,wBAAwB,CACrD,CACEmC,UAAU,CAAEyF,iBACd,CACF,CAAC,CAC8B9H,wBAAwB,CACrD,CACEqC,UAAU,CAAEyF,iBACd,CACF,CAAC,CACsC/H,gCAAgC,CACrE,CACEsC,UAAU,CAAEyF,iBACd,CACF,CAAC,CAEDvI,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,qDAAqD,CAAE,IAAM,CAC9D,KAAM,CAAAsI,iBAAiB,CAAGvH,YAAY,CAAC,CACrCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,mBAAmB,CAChCc,iBAAiB,CAAE,oBAAoB,CACvCf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,SAAS,CACpCC,UAAU,CAAE,CACV,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CACzB,MAAM,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAC,CAC1B,MAAM,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAC,CAC1B,SAAS,CAAE,CAAEA,IAAI,CAAE,QAAS,CAC9B,CACF,CAAC,CAAC,CAE6BnB,wBAAwB,CACrD,CACEuC,UAAU,CAAEyF,iBAAiB,CAC7Ba,qBAAqB,CAAE,CAAC,C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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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,sDAAsD,CAAE,IAAM,CAC/D,KAAM,CAAAsI,iBAAiB,CAAGvH,YAAY,CAAC,CACrCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,mBAAmB,CAChCc,iBAAiB,CAAE,oBAAoB,CACvCf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CACV,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CACzB,MAAM,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAC,CAC1B,MAAM,CAAE,CAAEA,IAAI,CAAE,WAAY,CAC9B,CACF,CAAC,CAAC,CAE6BnB,wBAAwB,CACrD,CACEuC,UAAU,CAAEyF,iBAAiB,CAC7B+B,oBAAoB,CAAE,CACpB,MAAM,CAAE,CACN5I,IAAI,CAAE,aACR,CAAC,CACD,MAAM,CAAE,CACNA,IAAI,CAAE,aACR,CACF,CACF,CACF,CAAC,CAC8Bf,wBAAwB,CACrD,CACEmC,UAAU,CAAEyF,iBAAiB,CAC7B+B,oBAAoB,CAAE,CACpB,MAAM,CAAE,CACN5I,IAAI,CAAE,aACR,CAAC,CACD,MAAM,CAAE,CACNA,IAAI,CAAE,aACR,CACF,CACF,CACF,CAAC,CACsClB,gCAAgC,CACrE,CACEsC,UAAU,CAAEyF,iBAAiB,CAC7B+B,oBAAoB,CAAE,CACpB,MAAM,CAAE,CACN5I,IAAI,CAAE,aACR,CAAC,CACD,MAAM,CAAE,CACNA,IAAI,CAAE,aACR,CACF,CACF,CACF,CAAC,CACD1B,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,mFAAmF,CAAE,IAAM,CAC5F,KAAM,CAAAsK,YAAY,CAAGvJ,YAAY,CAAC,CAChCQ,OAAO,CAAE,cAAc,CACvBC,WAAW,CAAE,aAAa,CAC1BO,WAAW,CAAE,2BAA2B,CACxCQ,yBAAyB,CAAE,IAAI,CAC/BD,iBAAiB,CAAE,OAAO,CAC1BD,oBAAoB,CAAE,MAAM,CAC5BG,UAAU,CAAE,CACV,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CAC1B,IAAI,CAAE,CAAEA,IAAI,CAAE,QAAS,CACzB,CACF,CAAC,CAAC,CACF1B,MAAM,CAAC,IAAM,CACUO,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBhB,sBAAsB,CAAE,CACtB,MAAM,CAAE,CACN9H,WAAW,CAAE,MACf,CAAC,CACD,kBAAkB,CAAE,CAClBA,WAAW,CAAE,iBACf,CACF,CACF,CAAC,CAAC,CACJ,CAAC,CAAC,CAACK,kCAAkC,CACnC,wJACF,CAAC,CACD9B,MAAM,CAAC,IAAM,CACUO,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBD,oBAAoB,CAAE,CACpB,kBAAkB,CAAE,CAClB5I,IAAI,CAAE,aAAa,CACnBgI,WAAW,CAAE,CACXhI,IAAI,CAAE,QAAQ,CACd+B,MAAM,CAAE,cACV,CACF,CACF,CACF,CAAC,CAAC,CACJ,CAAC,CAAC,CAAC3B,kCAAkC,CACnC,gHACF,CAAC,CACD9B,MAAM,CAAC,IAAM,CACUO,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBX,kBAAkB,CAAE,CAAC,kBAAkB,CACzC,CAAC,CAAC,CACJ,CAAC,CAAC,CAAC9H,kCAAkC,CACnC,gHACF,CAAC,CACD9B,MAAM,CAAC,IAAM,CACUO,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBnB,qBAAqB,CAAE,CACrB,CACEH,SAAS,CAAE,CACTvH,IAAI,CAAE,IAAI,CACV8H,UAAU,CAAE,CACV,CACE9H,IAAI,CAAE,WAAW,CACjBkH,WAAW,CAAE,wBAAwB,CACrCa,OAAO,CAAE,CACP/H,IAAI,CAAE,aAAa,CACnBgI,WAAW,CAAE,CACXhI,IAAI,CAAE,QAAQ,CACd+B,MAAM,CAAE,OACV,CACF,CACF,CAAC,CAEL,CACF,CAAC,CAEL,CAAC,CAAC,CACJ,CAAC,CAAC,CAAC3B,kCAAkC,CACnC,2GACF,CAAC,CACH,CAAC,CAAC,CAEF7B,EAAE,CAAC,kDAAkD,CAAE,IAAM,CAC3D,KAAM,CAAAsI,iBAAiB,CAAGvH,YAAY,CAAC,CACrCsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,mBAAmB,CAChCc,iBAAiB,CAAE,oBAAoB,CACvCf,OAAO,CAAE,KAAK,CACdgB,yBAAyB,CAAE,SAAS,CACpCC,UAAU,CAAE,CACV,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CACzB,MAAM,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAC,CAC1B,MAAM,CAAE,CAAEA,IAAI,CAAE,QAAS,CAAC,CAC1B,SAAS,CAAE,CAAEA,IAAI,CAAE,QAAS,CAC9B,CACF,CAAC,CAAC,CACF1B,MAAM,CAAC,IACLO,wBAAwB,CAAC,CACvBuC,UAAU,CAAEyF,iBAAiB,CAC7BgB,sBAAsB,CAAE,CACtB,MAAM,CAAE,CACNI,YAAY,CAAE,CACZjI,IAAI,CAAE,aAAa,CACnBgI,WAAW,CAAE,CACXhI,IAAI,CAAE,SAAS,CACf8I,OAAO,CAAE,IACX,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC,CAACC,YAAY,CACZ,+EACF,CAAC,CACH,CAAC,CAAC,CAEFxK,EAAE,CAAC,oDAAoD,CAAE,IAAM,CACxCe,YAAY,CAAC,CAChCQ,OAAO,CAAE,cAAc,CACvBC,WAAW,CAAE,aAAa,CAC1BO,WAAW,CAAE,2BAA2B,CACxCQ,yBAAyB,CAAE,IAAI,CAC/BD,iBAAiB,CAAE,OAAO,CAC1BD,oBAAoB,CAAE,MAAM,CAC5BG,UAAU,CAAE,CACV,MAAM,CAAE,CACNf,IAAI,CAAE,QAAQ,CACdM,WAAW,CAAE,6BACf,CAAC,CACD,IAAI,CAAE,CAAEN,IAAI,CAAE,QAAQ,CAAEM,WAAW,CAAE,2BAA4B,CACnE,CACF,CAAC,CAAC,CACFhC,MAAM,CAAC,IACLK,YAAY,CAAC,CACXmB,OAAO,CAAE,KAAK,CACdC,WAAW,CAAE,eAAe,CAC5B6D,MAAM,CAAE,QAAQ,CAChBoC,KAAK,CAAE,CAAC,CACNhG,IAAI,CAAE,kBAAkB,CACxBoH,gBAAgB,CAAE,CAChBJ,cAAc,CAAE,cAAc,CAC9BC,cAAc,CAAE,CACd,MAAM,CAAE,CACNjH,IAAI,CAAE,aAAa,CACnBkH,WAAW,CAAE,MACf,CACF,CAAC,CACDC,iBAAiB,CAAE,CAAC,CACtB,CACF,CAAC,CAAC,CACFd,UAAU,CAAE,CAAC,CACXC,EAAE,CAAE,MAAM,CACVvG,WAAW,CAAE,MAAM,CACnBC,IAAI,CAAE,QAAQ,CACduG,UAAU,CAAE,CAAEhE,QAAQ,CAAE,IAAI,CAAEiE,aAAa,CAAE,CAAExG,IAAI,CAAE,MAAO,CAAE,CAChE,CAAC,CACH,CAAC,CACH,CAAC,CAAC+I,YAAY,CACZ,4EACF,CAAC,CACH,CAAC,CAAC,CAEFxK,EAAE,CAAC,2CAA2C,CAAE,IAAM,CACpD,KAAM,CAAAyK,cAAc,CAAG1J,YAAY,CAAC,CAClCQ,OAAO,CAAE,UAAU,CACnBC,WAAW,CAAE,UAAU,CACvBc,iBAAiB,CAAE,WAAW,CAC9BD,oBAAoB,CAAE,IAAI,CAC1BE,yBAAyB,CAAE,IAAI,CAC/BC,UAAU,CAAE,CACV,IAAI,CAAE,CAAEf,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,IAAI,CAAEO,WAAW,CAAE,OAAQ,CAAC,CACjE,WAAW,CAAE,CAAEN,IAAI,CAAE,QAAS,CAChC,CACF,CAAC,CAAC,CACFf,wBAAwB,CAAC,CACvBmC,UAAU,CAAE4H,cAAc,CAC1BnB,sBAAsB,CAAE,CACtB,CAAC3I,uBAAuB,EAAG,CACzBa,WAAW,CAAE,2BAA2B,CACxCO,WAAW,CAAE,aAAa,CAC1BgH,oBAAoB,CAAE,CAAC,CACrBtH,IAAI,CAAE,YAAY,CAClBuH,SAAS,CAAE,CACTvH,IAAI,CAAE,OAAO,CACbwH,IAAI,CAAE,aACR,CACF,CAAC,CACH,CACF,CACF,CAAC,CAAC,CACF1I,gCAAgC,CAAC,CAC/BsC,UAAU,CAAE4H,cAAc,CAC1BnB,sBAAsB,CAAE,CACtB,CAACnJ,iCAAiC,EAAG,CACnCqB,WAAW,CAAE,+CAA+C,CAC5DO,WAAW,CAAE,aAAa,CAC1BgH,oBAAoB,CAAE,CAAC,CACrBtH,IAAI,CAAE,YAAY,CAClBuH,SAAS,CAAE,CACTvH,IAAI,CAAE,OAAO,CACbwH,IAAI,CAAE,aACR,CACF,CAAC,CACH,CACF,CACF,CAAC,CAAC,CAEFlJ,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,kEAAkE,CAAE,IAAM,CAC3E;AACA;AACA;AACA;AACA,KAAM,CAAAyK,cAAc,CAAG1J,YAAY,CAAC,CAClCQ,OAAO,CAAE,UAAU,CACnBC,WAAW,CAAE,UAAU,CACvBc,iBAAiB,CAAE,WAAW,CAC9BD,oBAAoB,CAAE,IAAI,CAC1BE,yBAAyB,CAAE,IAAI,CAC/BC,UAAU,CAAE,CACV,IAAI,CAAE,CAAEf,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,IAAI,CAAEO,WAAW,CAAE,OAAQ,CAAC,CACjE,WAAW,CAAE,CAAEN,IAAI,CAAE,QAAS,CAChC,CACF,CAAC,CAAC,CAEF,KAAM,CAAAiJ,aAAa,CAAG3J,YAAY,CAAC,CACjCQ,OAAO,CAAE,SAAS,CAClBC,WAAW,CAAE,SAAS,CACtBc,iBAAiB,CAAE,UAAU,CAC7BD,oBAAoB,CAAE,IAAI,CAC1BE,yBAAyB,CAAE,IAAI,CAC/BC,UAAU,CAAE,CACV,IAAI,CAAE,CAAEf,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,IAAI,CAAEO,WAAW,CAAE,OAAQ,CAClE,CAAC,CACD4I,YAAY,CAAE,IAChB,CAAC,CAAC,CAEFrK,wBAAwB,CAAC,CACvBuC,UAAU,CAAE4H,cAAc,CAC1BpB,iBAAiB,CAAE,CAAC,WAAW,CAAE,IAAI,CAAE,WAAW,CAAC,CACnDC,sBAAsB,CAAE,CACtB,WAAW,CAAE,CACXsB,mBAAmB,CAAE,CACnBnJ,IAAI,CAAE,iBAAiB,CACvBoJ,eAAe,CAAE,CACfC,YAAY,CAAEJ,aAAa,CAACnJ,OAC9B,CACF,CACF,CAAC,CACD,WAAW,CAAE,CACXmI,YAAY,CAAE,CACZjI,IAAI,CAAE,8BAA8B,CACpCsJ,4BAA4B,CAAE,CAC5BpC,WAAW,CAAE,WAAW,CACxBqC,cAAc,CAAE,IAClB,CACF,CACF,CACF,CACF,CAAC,CAAC,CAEFjL,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,sEAAsE,CAAE,IAAM,CAC/E,KAAM,CAAAqI,gBAAgB,CAAGzH,eAAe,CAAC,CACvCW,OAAO,CAAE,kBAAkB,CAC3BiB,UAAU,CAAE,CACVqB,SAAS,CAAE,QACb,CACF,CAAC,CAAC,CACmBxD,iCAAiC,CAAC,CACrDkI,aAAa,CAAEF,gBACjB,CAAC,CAAC,CACmB5H,iCAAiC,CAAC,CACrD8H,aAAa,CAAEF,gBACjB,CAAC,CAAC,CAEFtI,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,4DAA4D,CAAE,IAAM,CACrE,KAAM,CAAAqI,gBAAgB,CAAGzH,eAAe,CAAC,CACvCW,OAAO,CAAE,kBAAkB,CAC3BiB,UAAU,CAAE,CACVqB,SAAS,CAAE,QAAQ,CACnBC,SAAS,CAAE,QACb,CACF,CAAC,CAAC,CACmBzD,iCAAiC,CAAC,CACrDkI,aAAa,CAAEF,gBAAgB,CAC/BsB,kBAAkB,CAAE,CAAC,WAAW,CAClC,CAAC,CAAC,CACmBlJ,iCAAiC,CAAC,CACrD8H,aAAa,CAAEF,gBAAgB,CAC/BsB,kBAAkB,CAAE,CAAC,WAAW,CAClC,CAAC,CAAC,CAEF5J,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,qDAAqD,CAAE,IAAM,CAC9D,KAAM,CAAAsK,YAAY,CAAGvJ,YAAY,CAAC,CAChCQ,OAAO,CAAE,cAAc,CACvBC,WAAW,CAAE,aAAa,CAC1BO,WAAW,CAAE,2BAA2B,CACxCQ,yBAAyB,CAAE,IAAI,CAC/BD,iBAAiB,CAAE,OAAO,CAC1BD,oBAAoB,CAAE,MAAM,CAC5BG,UAAU,CAAE,CACV,MAAM,CAAE,CACNf,IAAI,CAAE,QAAQ,CACdM,WAAW,CAAE,6BACf,CAAC,CACD,IAAI,CAAE,CACJN,IAAI,CAAE,QAAQ,CACdD,WAAW,CAAE,IAAI,CACjBO,WAAW,CAAE,2BACf,CACF,CACF,CAAC,CAAC,CACmBzB,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBnB,qBAAqB,CAAE,CAAC,CACtBH,SAAS,CAAE,CACTvH,IAAI,CAAE,OAAO,CACbwH,IAAI,CAAE,WACR,CACF,CAAC,CACH,CAAC,CAAC,CAEFlJ,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,sDAAsD,CAAE,IAAM,CAC/D,KAAM,CAAAsK,YAAY,CAAGvJ,YAAY,CAAC,CAChCQ,OAAO,CAAE,cAAc,CACvBC,WAAW,CAAE,aAAa,CAC1BO,WAAW,CAAE,2BAA2B,CACxCQ,yBAAyB,CAAE,IAAI,CAC/BD,iBAAiB,CAAE,OAAO,CAC1BD,oBAAoB,CAAE,MAAM,CAC5BG,UAAU,CAAE,CACV,MAAM,CAAE,CACNf,IAAI,CAAE,QAAQ,CACdM,WAAW,CAAE,6BACf,CAAC,CACD,IAAI,CAAE,CACJN,IAAI,CAAE,QAAQ,CACdD,WAAW,CAAE,IAAI,CACjBO,WAAW,CAAE,2BACf,CACF,CACF,CAAC,CAAC,CACmBzB,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBnB,qBAAqB,CAAE,CAAC,CACtBlG,eAAe,CAAE,CACfd,cAAc,CACZ,qFAAqF,CACvFiH,WAAW,CAAE,EACf,CAAC,CACDJ,SAAS,CAAE,CACTvH,IAAI,CAAE,YAAY,CAClBwJ,UAAU,CAAE,CACVC,QAAQ,CAAE,YAAY,CACtBC,IAAI,CAAE,CACJ1J,IAAI,CAAE,cAAc,CACpB2J,YAAY,CAAE,CACZC,MAAM,CAAE,CACN5J,IAAI,CAAE,aAAa,CACnB6J,WAAW,CAAE,CAAC,CAChB,CAAC,CACDC,aAAa,CAAE,CACb9J,IAAI,CAAE,wBAAwB,CAC9B+J,sBAAsB,CAAE,CAAC,CAC3B,CACF,CACF,CAAC,CACDC,KAAK,CAAE,CACLhK,IAAI,CAAE,aAAa,CACnBgI,WAAW,CAAE,CACXhI,IAAI,CAAE,YAAY,CAClBiK,UAAU,CAAE,CACVC,OAAO,CAAE,CACP,sCAAsC,CAE1C,CACF,CACF,CACF,CACF,CACF,CAAC,CACH,CAAC,CAAC,CAEF5L,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,+DAA+D,CAAE,IAAM,CACxE,KAAM,CAAA4L,gBAAgB,CAAG7K,YAAY,CAAC,CACpCQ,OAAO,CAAE,kBAAkB,CAC3BC,WAAW,CAAE,oBAAoB,CACjCe,yBAAyB,CAAE,IAAI,CAC/BF,oBAAoB,CAAE,IAAI,CAC1BC,iBAAiB,CAAE,qBAAqB,CACxCE,UAAU,CAAE,CACV,IAAI,CAAE,CAAEf,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,IAAK,CAAC,CAC3C,MAAM,CAAE,CAAEC,IAAI,CAAE,QAAQ,CAAEuE,KAAK,CAAE,IAAI,CAAExE,WAAW,CAAE,MAAO,CAAC,CAC5D,SAAS,CAAE,CAAEC,IAAI,CAAE,SAAS,CAAEuE,KAAK,CAAE,IAAI,CAAExE,WAAW,CAAE,SAAU,CAAC,CACnE,aAAa,CAAE,CAAEC,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,cAAe,CAC/D,CACF,CAAC,CAAC,CAEmBlB,wBAAwB,CAAC,CAC5CuC,UAAU,CAAE+I,gBACd,CAAC,CAAC,CACmBlL,wBAAwB,CAAC,CAC5CmC,UAAU,CAAE+I,gBACd,CAAC,CAAC,CAEF7L,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CAEFzD,EAAE,CAAC,sCAAsC,CAAE,IAAM,CAC/C,KAAM,CAAAsK,YAAY,CAAGvJ,YAAY,CAAC,CAChCQ,OAAO,CAAE,cAAc,CACvBC,WAAW,CAAE,aAAa,CAC1BO,WAAW,CAAE,2BAA2B,CACxCQ,yBAAyB,CAAE,IAAI,CAC/BD,iBAAiB,CAAE,OAAO,CAC1BD,oBAAoB,CAAE,MAAM,CAC5BG,UAAU,CAAE,CACV,MAAM,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAC,CAC1B,IAAI,CAAE,CAAEA,IAAI,CAAE,QAAS,CACzB,CACF,CAAC,CAAC,CACmBnB,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBuB,QAAQ,CAAE,CACR,CACE9D,EAAE,CAAE,UAAU,CACdvG,WAAW,CAAE,WAAW,CACxBsG,UAAU,CAAE,CAAC,IAAI,CAAC,CAClB/F,WAAW,CAAE,2BAA2B,CACxCgH,oBAAoB,CAAE,CACpB,CACEtH,IAAI,CAAE,YAAY,CAClBuH,SAAS,CAAE,CACTvH,IAAI,CAAE,OAAO,CACbwH,IAAI,CAAE,WACR,CACF,CAAC,CAEL,CAAC,CAEL,CAAC,CAAC,CACFlJ,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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,CAAC,CAAC,CACJ,CAAC,CAAC,CAACxH,kCAAkC,CACnC,iNACF,CAAC,CACoBvB,wBAAwB,CAAC,CAC5CuC,UAAU,CAAEyH,YAAY,CACxBjB,iBAAiB,CAAE,CAAC,KAAK,CAAE,MAAM,CAAE,IAAI,CAAC,CACxCC,sBAAsB,CAAE,CACtB,MAAM,CAAE,CACNP,oBAAoB,CAAE,CACpB,CACEtH,IAAI,CAAE,YAAY,CAClBuH,SAAS,CAAE,CACTvH,IAAI,CAAE,WAAW,CACjBkH,WAAW,CAAE,KAAK,CAClBa,OAAO,CAAE,CACP/H,IAAI,CAAE,aAAa,CACnBgI,WAAW,CAAE,CACXhI,IAAI,CAAE,QAAQ,CACd+B,MAAM,CAAE,KACV,CACF,CACF,CACF,CAAC,CAEL,CACF,CACF,CAAC,CAAC,CACFzD,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CACFzD,EAAE,CAAC,0CAA0C,CAAE,IAAM,CACnD,KAAM,CAAAiF,GAAG,CAAG9D,wBAAwB,CAAC,CACnCI,OAAO,CAAE,KAAK,CACdE,IAAI,CAAE,QACR,CAAC,CAAC,CACF,KAAM,CAAAqK,iBAAgC,CAAG,CACvC,SAAS,CAAE,yCAAyC,CACpD,iBAAiB,CAAE,CACjB,aAAa,CAAE,OAAO,CACtB,aAAa,CAAE,OAAO,CACtB,MAAM,CAAE,CACN,MAAM,CAAE,WAAW,CACnB,WAAW,CAAE,CACX,OAAO,CAAE,SAAS,CAClB,SAAS,CAAE,iBACb,CACF,CACF,CAAC,CACD,mBAAmB,CAAE,EAAE,CACvB,OAAO,CAAE,EAAE,CACX,QAAQ,CAAE,CACR,MAAM,CAAE,QAAQ,CAChB,QAAQ,CAAE,CAAC,CACb,CAAC,CACD,cAAc,CAAE,CACd,sCAAsC,CAAE,CACtC,UAAU,CAAE,IAAI,CAChB,oBAAoB,CAAE,CACpB,aAAa,CAAE,IAAI,CACnB,SAAS,CAAE,sCAAsC,CACjD,MAAM,CAAE,QAAQ,CAChB,sBAAsB,CAAE,IAAI,CAC5B,aAAa,CAAE,CACb,CACE,MAAM,CAAE,aAAa,CACrB,MAAM,CAAE,YACV,CAAC,CACD,CACE,MAAM,CAAE,aAAa,CA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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,OAAO,CAAC,CACJ,CAAC,CAAC,CACFzD,EAAE,CAAC,wBAAwB,CAAE,IAAM,CACjC;AACA,KAAM,CAAAiF,GAAuB,CAAG,CAC9B1D,OAAO,CAAE,uBAAuB,CAChCmL,oBAAoB,CAAE,KAAK,CAC3BjL,IAAI,CAAE,QAAQ,CACdkL,MAAM,CAAEzM,sBAAsB,CAACqM,oBACjC,CAAC,CACDlL,oBAAoB,CAAC4D,GAAG,CAAC,CAELrE,eAAe,CAAC,CAClCW,OAAO,CAAE,aAAa,CACtBiB,UAAU,CAAE,CACVyC,GACF,CACF,CAAC,CAAC,CACFlF,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CACFzD,EAAE,CAAC,sCAAsC,CAAE,SAAY,CACrD,KAAM,CAAA4M,YAAY,CAAGjN,IAAI,CAACkN,OAAO,CAAClN,IAAI,CAACmN,IAAI,CACzCC,SAAS,CACT,IAAI,CACJ,kBAAkB,CAClB,sCACF,CAAC,CAAC,CACF,KAAM,CAAA/L,cAAc,CAAC,iBAAiB,CAAE,IAAM,CAC5C,KAAM,CAAAoH,KAAK,CAAGjH,wBAAwB,CAAC,CACrCI,OAAO,CAAE,OAAO,CAChBE,IAAI,CAAE,QACR,CAAC,CAAC,CACF,KAAM,CAAAuL,WAAW,CAAGpM,eAAe,CAAC,CAClCW,OAAO,CAAE,aAAa,CACtBiB,UAAU,CAAE,CACV4F,KACF,CACF,CAAC,CAAC,CACerH,YAAY,CAAC,CAC5BsB,oBAAoB,CAAE,KAAK,CAC3Bb,WAAW,CAAE,WAAW,CACxBc,iBAAiB,CAAE,WAAW,CAC9Bf,OAAO,CAAE,UAAU,CACnBgB,yBAAyB,CAAE,KAAK,CAChCC,UAAU,CAAE,CAAE,KAAK,CAAE,CAAEf,IAAI,CAAE,QAAS,CAAE,CAAC,CACzCkE,oBAAoB,CAAE,CAAC,CACrBC,UAAU,CAAEoH,WAAW,CACvBnH,eAAe,CAAE,CAAC,CAChBC,iBAAiB,CAAE,sBAAsB,CACzCC,MAAM,CAAE,KACV,CAAC,CACH,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CAAE6G,YAAY,CAAC,CAEhB7M,MAAM,CACJL,EAAE,CAACuN,YAAY,CACbtN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,wCAAwC,CAAC,CACjE,MACF,CACF,CAAC,CAACnJ,qBAAqB,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAEF1D,MAAM,CACJL,EAAE,CAACuN,YAAY,CACbtN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,kCAAkC,CAAC,CAC3D,MACF,CACF,CAAC,CAACnJ,qBAAqB,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAEF1D,MAAM,CACJL,EAAE,CAACuN,YAAY,CACbtN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,wCAAwC,CAAC,CACjE,MACF,CACF,CAAC,CAACnJ,qBAAqB,CAAC;AAC9B;AACA;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,CACF/D,EAAE,CAACwN,MAAM,CAACvN,IAAI,CAACkN,OAAO,CAAClN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,IAAI,CAAC,CAAC,CAAE,CACrDO,SAAS,CAAE,IAAI,CACfC,KAAK,CAAE,IACT,CAAC,CAAC,CACJ,CAAC,CAAC,CACFpN,EAAE,CAAC,0DAA0D,CAAE,SAAY,CACzE,KAAM,CAAA4M,YAAY,CAAGjN,IAAI,CAACkN,OAAO,CAAClN,IAAI,CAACmN,IAAI,CACzCC,SAAS,CACT,IAAI,CACJ,kBAAkB,CAClB,0DACF,CAAC,CAAC,CACF,KAAM,CAAA/L,cAAc,CAAC,eAAe,CAAE,IAAM,CAC1C,KAAM,CAAA4C,eAAe,CAAGhD,eAAe,CAAC,CACtCW,OAAO,CAAE,iBAAiB,CAC1BiB,UAAU,CAAE,CACVqB,SAAS,CAAE,QACb,CACF,CAAC,CAAC,CACqBjD,eAAe,CAAC,CACrCW,OAAO,CAAE,gBAAgB,CACzBiB,UAAU,CAAE,CACVsB,SAAS,CAAE,QACb,CAAC,CACDC,OAAO,CAAE,CAACH,eAAe,CAC3B,CAAC,CAAC,CACJ,CAAC,CAAEgJ,YAAY,CAAC,CAEhB7M,MAAM,CACJL,EAAE,CAACuN,YAAY,CACbtN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,2CAA2C,CAAC,CACpE,MACF,CACF,CAAC,CAACnJ,qBAAqB,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACF/D,EAAE,CAACwN,MAAM,CAACvN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,IAAI,CAAC,CAAE,CACvCO,SAAS,CAAE,IAAI,CACfC,KAAK,CAAE,IACT,CAAC,CAAC,CACJ,CAAC,CAAC,CACFpN,EAAE,CAAC,2EAA2E,CAAE,IAAM,CACpF,KAAM,CAAA4D,eAAe,CAAGhD,eAAe,CAAC,CACtCW,OAAO,CAAE,iBAAiB,CAC1BiB,UAAU,CAAE,CACV6K,UAAU,CAAE,QACd,CACF,CAAC,CAAC,CACF,KAAM,CAAAC,cAAc,CAAG1M,eAAe,CAAC,CACrCW,OAAO,CAAE,gBAAgB,CACzBiB,UAAU,CAAE,CACV+K,UAAU,CAAE,QACd,CAAC,CACDxJ,OAAO,CAAE,CAACH,eAAe,CAC3B,CAAC,CAAC,CACgB7C,YAAY,CAAC,CAC7BQ,OAAO,CAAE,WAAW,CACpBgB,yBAAyB,CAAE,WAAW,CACtCF,oBAAoB,CAAE,WAAW,CACjCb,WAAW,CAAE,WAAW,CACxBc,iBAAiB,CAAE,YAAY,CAC/BE,UAAU,CAAE,CACV,WAAW,CAAE,CAAEf,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,WAAY,CAAC,CACzD,WAAW,CAAE,CAAEC,IAAI,CAAE,QAAQ,CAAED,WAAW,CAAE,WAAY,CAC1D,CAAC,CACDmE,oBAAoB,CAAE,CACpB,CACEC,UAAU,CAAE0H,cAAc,CAC1BzH,eAAe,CAAE,CACf,CACEC,iBAAiB,CAAE,yBAAyB,CAC5CC,MAAM,CAAE,WACV,CAAC,CACD,CACED,iBAAiB,CAAE,yBAAyB,CAC5CC,MAAM,CAAE,WACV,CAAC,CAEL,CAAC,CAEL,CAAC,CAAC,CAEFhG,MAAM,CAACkB,wBAAwB,CAAC,CAAC,CAAC,CAACwC,qBAAqB,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CACJ,CAAC,CAAC,CACJ,CAAC,CAAC,CACF3D,QAAQ,CAAC,cAAc,CAAE,IAAM,CAC7BE,EAAE,CAAC,6BAA6B,CAAE,SAAY,CAC5C,KAAM,CAAA4M,YAAY,CAAGjN,IAAI,CAACkN,OAAO,CAAClN,IAAI,CAACmN,IAAI,CACzCC,SAAS,CACT,IAAI,CACJ,kBAAkB,CAClB,6BACF,CAAC,CAAC,CACF,KAAM,CAAA/L,cAAc,CAClB,eAAe,CACf,IAAM,CACJf,aAAa,CAAC,cAAc,CAAEL,aAAa,CAAC4N,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAC7D9M,eAAe,CAAC,CACdW,OAAO,CAAE,aAAa,CACtBiB,UAAU,CAAE,CACVqB,SAAS,CAAE,QACb,CACF,CAAC,CAAC,CACJ,CAAC,CACD+I,YAAY,CACZjN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,mBAAmB,CAC7C,CAAC,CAED,KAAM,CAAAe,WAAW,CAAGC,IAAI,CAACC,KAAK,CAC5BnO,EAAE,CAACuN,YAAY,CACbtN,IAAI,CAACmN,IAAI,CAACC,SAAS,CAAE,IAAI,CAAE,IAAI,CAAE,cAAc,CAAC,CAChD,MACF,CACF,CAAC,CACDhN,MAAM,CAAC4N,WAAW,CAAC/L,OAAO,CAAC,CAACuB,WAAW,CAAC,CAAC,CAEzCpD,MAAM,CACJL,EAAE,CAACuN,YAAY,CAACtN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,mBAAmB,CAAC,CAAE,MAAM,CACtE,CAAC,CAACnJ,qBAAqB,CAAC;AAC9B;AACA,6BAA6BkK,WAAW,CAAC/L,OAAO;AAChD;AACA,OAAO,CAAC,CAEF7B,MAAM,CACJL,EAAE,CAACuN,YAAY,CAACtN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,UAAU,CAAC,CAAE,MAAM,CAC7D,CAAC,CACEkB,SAAS,CACR,mEACF,CAAC,CAEHpO,EAAE,CAACwN,MAAM,CAACvN,IAAI,CAACmN,IAAI,CAACF,YAAY,CAAE,IAAI,CAAC,CAAE,CACvCO,SAAS,CAAE,IAAI,CACfC,KAAK,CAAE,IACT,CAAC,CAAC,CACJ,CAAC,CAAC,CACJ,CAAC,CAAC,CACJ,CAAC,CAAC","ignoreList":[]}