@osdk/maker 0.11.0-beta.2 → 0.11.0-beta.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"overall.test.js","names":["fs","path","beforeEach","describe","expect","it","defineAction","defineCreateInterfaceObjectAction","defineCreateObjectAction","defineDeleteObjectAction","defineModifyInterfaceObjectAction","defineModifyObjectAction","defineInterface","defineInterfaceLinkConstraint","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineSharedPropertyType","defineValueType","importOntologyEntity","OntologyEntityTypeEnum","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","toMatchInlineSnapshot","result","displayMetadata","toBe","description","properties","foo","blockData","parentInterface","property1","property2","extends","required","propertyDefinition","a","b","not","toBeUndefined","from","toOne","toMany","fooSpt","icon","color","locator","structDefinition","fieldType","undefined","spt","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","status","toEqual","active","experimental","message","deadline","deprecated","sample","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","lat","lng","object","otherObject","one","metadata","groupDisplayName","visibility","typeClasses","manyForeignKeyProperty","cardinality","many","datasource","retentionPeriod","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","parameters","id","validation","allowedValues","exampleInterface","exampleObjectType","addOrModifyObjectRuleV2","objectToModify","propertyValues","parameterId","structFieldValues","modifyObjectRule","toThrowError","nonNameSpacedApiName","__type","SHARED_PROPERTY_TYPE","generatedDir","resolve","join","__dirname","mySpt","myInterface","readFileSync","rmSync","recursive","force"],"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 { beforeEach, describe, expect, it } from \"vitest\";\nimport {\n defineAction,\n defineCreateInterfaceObjectAction,\n defineCreateObjectAction,\n defineDeleteObjectAction,\n defineModifyInterfaceObjectAction,\n defineModifyObjectAction,\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 {\n type InterfaceType,\n OntologyEntityTypeEnum,\n type SharedPropertyType,\n} from \"./types.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 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 \"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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": undefined,\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 \"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().blockData).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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": undefined,\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 \"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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": undefined,\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 \"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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": undefined,\n },\n \"extendsInterfaces\": [\n \"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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": undefined,\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 \"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\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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.A\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.A\",\n \"displayMetadata\": {\n \"description\": \"A\",\n \"displayName\": \"A\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.B\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.B\",\n \"displayMetadata\": {\n \"description\": \"B\",\n \"displayName\": \"B\",\n \"icon\": undefined,\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.A\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.A\",\n \"displayMetadata\": {\n \"description\": \"A\",\n \"displayName\": \"A\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.B\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.B\",\n \"displayMetadata\": {\n \"description\": \"B\",\n \"displayName\": \"B\",\n \"icon\": undefined,\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.FooInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\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 \"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().blockData).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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.interface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\n \"icon\": undefined,\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 \"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 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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{ interfaceProperty: \"foo\", mapsTo: \"fizz\" }],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{ interfaceProperty: \"fizz\", mapsTo: \"bar\" }, {\n interfaceProperty: \"foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Interface property com.palantir.interface.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 { apiName: \"bar\", type: \"string\", displayName: \"Bar\" },\n {\n apiName: \"geopoint\",\n type: {\n type: \"struct\",\n structDefinition: {\n lat: \"double\",\n lng: \"double\",\n },\n },\n displayName: \"geopoint\",\n },\n ],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{ interfaceProperty: \"foo\", mapsTo: \"bar\" }],\n }],\n });\n\n expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.interface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\n \"icon\": undefined,\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"properties\": {\n \"com.palantir.foo\": {\n \"propertyTypeRid\": \"bar\",\n },\n },\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 \"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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: [{ apiName: \"fizz\", type: \"string\", displayName: \"Fizz\" }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n one: {\n object: object,\n metadata: {\n displayMetadata: {\n displayName: \"Foo\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Foos\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"fizzes\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n displayMetadata: {\n displayName: \"Fizz\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Fizzes\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"foos\",\n },\n },\n manyForeignKeyProperty: \"bar\",\n cardinality: \"OneToMany\",\n });\n\n expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizzToFoo\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_ONE\",\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\": \"fizzToFoo\",\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: [{ apiName: \"fizz\", type: \"string\", displayName: \"Fizz\" }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n many: {\n object: object,\n metadata: {\n displayMetadata: {\n displayName: \"Foo\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Foos\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"fizzes\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n displayMetadata: {\n displayName: \"Fizz\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Fizzes\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"foos\",\n },\n },\n });\n expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizzToFoo\": {\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\": \"bar\",\n \"property\": {\n \"apiName\": \"fizz\",\n \"object\": \"com.palantir.fizz\",\n },\n },\n ],\n \"writebackDatasetRid\": undefined,\n },\n \"type\": \"dataset\",\n },\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": undefined,\n \"rid\": \"ri.ontology.main.datasource.link-fizzToFoo\",\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\": \"fizzToFoo\",\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\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: [{ apiName: \"fizz\", type: \"string\", displayName: \"Fizz\" }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\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: [{ apiName: \"buzz\", type: \"string\", displayName: \"Buzz\" }],\n datasource: { type: \"stream\", retentionPeriod: \"PT1H\" },\n });\n\n expect(dumpOntologyFullMetadata().blockData).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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.buzz\",\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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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(\"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: [{\n apiName: \"buzz\",\n type: \"string\",\n displayName: \"Buzz\",\n }],\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 apiName: \"fizz\",\n type: \"mediaReference\",\n displayName: \"Fizz\",\n }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n datasource: { type: \"stream\" },\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.fizz\",\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n `);\n });\n });\n\n describe(\"Actions\", () => {\n it(\"Interface actions are properly defined\", () => {\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 \"blockData\": {\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 \"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 },\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n `);\n });\n it(\"Simple interface actions (with object types) are properly defined\", () => {\n const exampleInterface = defineInterface({\n apiName: \"exampleInterface\",\n properties: {\n property1: \"string\",\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 apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n const createActionWithObjectType = defineCreateInterfaceObjectAction(\n exampleInterface,\n exampleObjectType,\n );\n\n const modifyAction = defineModifyInterfaceObjectAction(\n exampleInterface,\n exampleObjectType,\n );\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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.property1\": {\n \"parameterId\": \"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 \"objectTypeParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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.modify-example-interface-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyInterfaceRule\": {\n \"interfaceObjectToModifyParameter\": \"interfaceObjectToModifyParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.property1\": {\n \"parameterId\": \"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 \"interfaceObjectToModifyParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": undefined,\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 \"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 },\n },\n \"type\": \"datasetV2\",\n },\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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.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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\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 \"blockData\": {\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 \"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 },\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\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 apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n const createObjectActionType = defineCreateObjectAction(\n exampleObjectType,\n );\n const modifyObjectActionType = defineModifyObjectAction(\n exampleObjectType,\n );\n const deleteObjectActionType = defineDeleteObjectAction(\n exampleObjectType,\n );\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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 },\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 \"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 },\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 \"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.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 \"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 },\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 \"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 \"bar\": {\n \"parameterId\": \"bar\",\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 \"bar\": {\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 \"objectToModifyParameter\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\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 \"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 },\n },\n \"type\": \"datasetV2\",\n },\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n \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 apiName: \"name\",\n type: \"string\",\n displayName: \"Name\",\n description: \"The name of the test object\",\n }, {\n apiName: \"id\",\n type: \"string\",\n displayName: \"ID\",\n 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(\"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(exampleInterface);\n const modifyAction = defineModifyInterfaceObjectAction(exampleInterface);\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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\": \"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 \"objectTypeParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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.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\": \"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 \"interfaceObjectToModifyParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": undefined,\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n `);\n });\n });\n describe(\"Imports\", () => {\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 \"blockData\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.myInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.myInterface\",\n \"displayMetadata\": {\n \"description\": \"myInterface\",\n \"displayName\": \"myInterface\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [\n {\n \"apiName\": \"com.other.package.spt\",\n \"description\": undefined,\n \"displayName\": \"com.other.package.spt\",\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n ],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n implementsInterfaces: [{\n implements: myInterface,\n propertyMapping: [{ interfaceProperty: \"mySpt\", mapsTo: \"bar\" }],\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 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 \"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 \"__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 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 \"apiName\": \"bar\",\n \"type\": \"string\",\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 \"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 \"__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 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 });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,EAAE,MAAM,IAAI;AACxB,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SACEC,YAAY,EACZC,iCAAiC,EACjCC,wBAAwB,EACxBC,wBAAwB,EACxBC,iCAAiC,EACjCC,wBAAwB,QACnB,mBAAmB;AAC1B,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SACEC,cAAc,EACdC,wBAAwB,EACxBC,qBAAqB,QAChB,qBAAqB;AAC5B,SAASC,wBAAwB,QAAQ,gBAAgB;AACzD,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAEEC,sBAAsB,QAEjB,YAAY;AAEnBnB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EAClCD,UAAU,CAAC,YAAY;IACrB,MAAMc,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1D,CAAC,CAAC;EAEFb,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3BE,EAAE,CAAC,kDAAkD,EAAE,MAAM;MAC3DD,MAAM,CAAC,MACLgB,eAAe,CAAC;QACdG,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,aAAa;QAC1BC,IAAI,EAAE;UACJ,MAAM,EAAE,SAAS;UACjBC,WAAW,EAAE,CAAC;YAAEC,UAAU,EAAE;cAAE,eAAe,EAAE,CAAC,YAAY;YAAE;UAAE,CAAC;QACnE,CAAC;QACDC,OAAO,EAAE;MACX,CAAC,CACH,CAAC,CAACC,kCAAkC,CAClC,0DACF,CAAC;IACH,CAAC,CAAC;IACFxB,EAAE,CAAC,mCAAmC,EAAE,MAAM;MAC5Ce,eAAe,CAAC;QACdG,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,aAAa;QAC1BC,IAAI,EAAE;UACJ,MAAM,EAAE,SAAS;UACjBC,WAAW,EAAE,CAAC;YAAEC,UAAU,EAAE;cAAE,eAAe,EAAE,CAAC,YAAY;YAAE;UAAE,CAAC;QACnE,CAAC;QACDC,OAAO,EAAE;MACX,CAAC,CAAC;MACFxB,MAAM,CAACc,qBAAqB,CAAC,CAAC,CAAC,CAACY,qBAAqB,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;;IAEF;IACA;IACAd,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EACpD,CAAC,CAAC;EAEFb,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3BE,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAC1DO,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAM,CAAC,CAAC;MACnCnB,MAAM,CAAC,MAAM;QACXQ,eAAe,CAAC;UAAEW,OAAO,EAAE;QAAM,CAAC,CAAC;MACrC,CAAC,CAAC,CAACM,kCAAkC,CACnC,sEACF,CAAC;IACH,CAAC,CAAC;IAEFxB,EAAE,CAAC,iCAAiC,EAAE,MAAM;MAC1C,MAAM0B,MAAM,GAAGnB,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAM,CAAC,CAAC;MAClDnB,MAAM,CAAC2B,MAAM,CAACC,eAAe,CAACR,WAAW,CAAC,CAACS,IAAI,CAAC,KAAK,CAAC;IACxD,CAAC,CAAC;IAEF5B,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAM0B,MAAM,GAAGnB,eAAe,CAAC;QAAEW,OAAO,EAAE,KAAK;QAAEC,WAAW,EAAE;MAAI,CAAC,CAAC;MACpEpB,MAAM,CAAC2B,MAAM,CAACC,eAAe,CAACE,WAAW,CAAC,CAACD,IAAI,CAAC,GAAG,CAAC;IACtD,CAAC,CAAC;IAEF5B,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACzD,MAAM0B,MAAM,GAAGnB,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAM,CAAC,CAAC;MAClDnB,MAAM,CAAC2B,MAAM,CAACC,eAAe,CAACE,WAAW,CAAC,CAACD,IAAI,CAAC,KAAK,CAAC;IACxD,CAAC,CAAC;IAEF9B,QAAQ,CAAC,WAAW,EAAE,MAAM;MAC1BE,EAAE,CAAC,mBAAmB,EAAE,MAAM;QAC5BO,eAAe,CAAC;UACdW,OAAO,EAAE,KAAK;UACdY,UAAU,EAAE;YACVC,GAAG,EAAE;UACP;QACF,CAAC,CAAC;QAEFhC,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;MACJ,CAAC,CAAC;MAEFzB,EAAE,CAAC,gCAAgC,EAAE,MAAM;QACzCc,wBAAwB,CAAC;UACvBI,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE;QACR,CAAC,CAAC;QAEFrB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;QAEF1B,MAAM,CAAC,MAAM;UACXQ,eAAe,CAAC;YACdW,OAAO,EAAE,KAAK;YACdY,UAAU,EAAE;cACVC,GAAG,EAAE;YACP;UACF,CAAC,CAAC;QACJ,CAAC,CAAC,CAACP,kCAAkC,CACnC,iFACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFxB,EAAE,CAAC,uDAAuD,EAAE,MAAM;MAChE,MAAMiC,eAAe,GAAG1B,eAAe,CAAC;QACtCW,OAAO,EAAE,iBAAiB;QAC1BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MACqB3B,eAAe,CAAC;QACrCW,OAAO,EAAE,gBAAgB;QACzBY,UAAU,EAAE;UACVK,SAAS,EAAE;QACb,CAAC;QACDC,OAAO,EAAE,CAACH,eAAe;MAC3B,CAAC,CAAC;MAEFlC,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFzB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACfO,eAAe,CAAC;QACtCW,OAAO,EAAE,iBAAiB;QAC1BY,UAAU,EAAE;UACVI,SAAS,EAAE;YAAEG,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAE;UAAS;QAC7D;MACF,CAAC,CAAC;MAEFvC,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEFzB,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAClCO,eAAe,CAAC;QACtCW,OAAO,EAAE,iBAAiB;QAC1BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MACqB3B,eAAe,CAAC;QACrCW,OAAO,EAAE,gBAAgB;QACzBY,UAAU,EAAE;UACVK,SAAS,EAAE;QACb,CAAC;QACDC,OAAO,EAAE,CAAC,iBAAiB;MAC7B,CAAC,CAAC;MAEFrC,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,QAAQ,CAAC,MAAM,EAAE,MAAM;IACrB,IAAIyC,CAAgB;IACpB,IAAIC,CAAgB;IAEpB3C,UAAU,CAAC,MAAM;MACf0C,CAAC,GAAGhC,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAI,CAAC,CAAC;MACrCsB,CAAC,GAAGjC,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAI,CAAC,CAAC;IACvC,CAAC,CAAC;IAEFlB,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAC5BD,MAAM,CAACwC,CAAC,CAAC,CAACE,GAAG,CAACC,aAAa,CAAC,CAAC;MAC7BlC,6BAA6B,CAAC;QAC5BmC,IAAI,EAAEJ,CAAC;QACPK,KAAK,EAAEJ,CAAC;QACRtB,OAAO,EAAE;MACX,CAAC,CAAC;MAEFnB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFzB,EAAE,CAAC,iBAAiB,EAAE,MAAM;MAC1BQ,6BAA6B,CAAC;QAC5BmC,IAAI,EAAEJ,CAAC;QACPM,MAAM,EAAEL,CAAC;QACTtB,OAAO,EAAE;MACX,CAAC,CAAC;MAEFnB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,QAAQ,CAAC,MAAM,EAAE,MAAM;IACrBE,EAAE,CAAC,2CAA2C,EAAE,MAAM;MACpDc,wBAAwB,CAAC;QACvBI,OAAO,EAAE,KAAK;QACdE,IAAI,EAAE;MACR,CAAC,CAAC;MAEFrB,MAAM,CAAC,MAAM;QACXe,wBAAwB,CAAC;UACvBI,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE;QACR,CAAC,CAAC;MACJ,CAAC,CAAC,CAACI,kCAAkC,CACnC,iFACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFxB,EAAE,CAAC,uBAAuB,EAAE,MAAM;IAChC,MAAM8C,MAAM,GAAGhC,wBAAwB,CAAC;MACtCI,OAAO,EAAE,QAAQ;MACjBE,IAAI,EAAE;IACR,CAAC,CAAC;IAEmBb,eAAe,CAAC;MACnCW,OAAO,EAAE,cAAc;MACvBC,WAAW,EAAE,eAAe;MAC5BW,UAAU,EAAE;QACVgB;MACF,CAAC;MACDC,IAAI,EAAE;QAAEC,KAAK,EAAE,QAAQ;QAAEC,OAAO,EAAE;MAAW;IAC/C,CAAC,CAAC;IAEFlD,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFzB,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACzCc,wBAAwB,CAAC;MACtCI,OAAO,EAAE,QAAQ;MACjBE,IAAI,EAAE;QACJA,IAAI,EAAE,QAAQ;QACd8B,gBAAgB,EAAE;UAChB,gBAAgB,EAAE,SAAS;UAC3B,iBAAiB,EAAE;YACjBC,SAAS,EAAE,MAAM;YACjBxB,eAAe,EAAE;cACfR,WAAW,EAAE,kBAAkB;cAC/BU,WAAW,EAAEuB;YACf;UACF;QACF;MACF;IACF,CAAC,CAAC;IAEFrD,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFzB,EAAE,CAAC,mCAAmC,EAAE,MAAM;IAC5C,MAAMqD,GAAG,GAAGvC,wBAAwB,CAAC;MACnCI,OAAO,EAAE,KAAK;MACdE,IAAI,EAAE;QACJA,IAAI,EAAE,QAAQ;QACdkC,UAAU,EAAE,IAAI;QAChBC,gCAAgC,EAAE,IAAI;QACtCC,qBAAqB,EAAE;MACzB;IACF,CAAC,CAAC;IAEFjD,eAAe,CAAC;MACdW,OAAO,EAAE,WAAW;MACpBY,UAAU,EAAE;QAAEC,GAAG,EAAEsB;MAAI;IACzB,CAAC,CAAC;IAEFtD,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFzB,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAM0B,MAAM,GAAGnB,eAAe,CAAC;MAAEW,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDnB,MAAM,CAAC2B,MAAM,CAAC+B,MAAM,CAAC,CAACC,OAAO,CAAC;MAAEtC,IAAI,EAAE,QAAQ;MAAEuC,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEF3D,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAK1D,MAAM0B,MAAM,GAAGnB,eAAe,CAAC;MAC7BW,OAAO,EAAE,KAAK;MACduC,MAAM,EAAE;QAAErC,IAAI,EAAE;MAAe;IACjC,CAAC,CAAC;IACFrB,MAAM,CAAC2B,MAAM,CAAC+B,MAAM,CAAC,CAACC,OAAO,CARF;MACzBtC,IAAI,EAAE,cAAc;MACpBwC,YAAY,EAAE,CAAC;IACjB,CAKgD,CAAC;EACnD,CAAC,CAAC;EAEF5D,EAAE,CAAC,+CAA+C,EAAE,MAAM;IAQxD,MAAM0B,MAAM,GAAGnB,eAAe,CAAC;MAC7BW,OAAO,EAAE,KAAK;MACduC,MAAM,EAAE;QAAErC,IAAI,EAAE,YAAY;QAAEyC,OAAO,EAAE,KAAK;QAAEC,QAAQ,EAAE;MAAM;IAChE,CAAC,CAAC;IACF/D,MAAM,CAAC2B,MAAM,CAAC+B,MAAM,CAAC,CAACC,OAAO,CAXJ;MACvBtC,IAAI,EAAE,YAAY;MAClB2C,UAAU,EAAE;QACVF,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE;MACZ;IACF,CAK8C,CAAC;EACjD,CAAC,CAAC;EAEFhE,QAAQ,CAAC,SAAS,EAAE,MAAM;IACxBE,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACzD,MAAMqD,GAAG,GAAGvC,wBAAwB,CAAC;QACnCI,OAAO,EAAE,KAAK;QACdE,IAAI,EAAE;MACR,CAAC,CAAC;MAEF,MAAM4C,MAAM,GAAGzD,eAAe,CAAC;QAC7BW,OAAO,EAAE,WAAW;QACpBY,UAAU,EAAE;UAAEC,GAAG,EAAEsB;QAAI;MACzB,CAAC,CAAC;MAEFtD,MAAM,CAAC,MAAM;QACXW,YAAY,CAAC;UACXuD,oBAAoB,EAAE,MAAM;UAC5B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC;QACrE,CAAC,CAAC;MACJ,CAAC,CAAC,CAACK,kCAAkC,CACnC,6EACF,CAAC;MAEDzB,MAAM,CAAC,MAAM;QACXW,YAAY,CAAC;UACXuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,MAAM;UACjCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC;QACrE,CAAC,CAAC;MACJ,CAAC,CAAC,CAACK,kCAAkC,CACnC,mFACF,CAAC;MAEDzB,MAAM,CAAC,MAAM;QACXW,YAAY,CAAC;UACXuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC,CAAC;UACpEiD,oBAAoB,EAAE,CAAC;YACrBC,UAAU,EAAEL,MAAM;YAClBM,eAAe,EAAE,CAAC;cAAEC,iBAAiB,EAAE,KAAK;cAAEC,MAAM,EAAE;YAAO,CAAC;UAChE,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,CAAC,CAAChD,kCAAkC,CACnC,4IACF,CAAC;MAEDzB,MAAM,CAAC,MAAM;QACXW,YAAY,CAAC;UACXuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC,CAAC;UACpEiD,oBAAoB,EAAE,CAAC;YACrBC,UAAU,EAAEL,MAAM;YAClBM,eAAe,EAAE,CAAC;cAAEC,iBAAiB,EAAE,MAAM;cAAEC,MAAM,EAAE;YAAM,CAAC,EAAE;cAC9DD,iBAAiB,EAAE,KAAK;cACxBC,MAAM,EAAE;YACV,CAAC;UACH,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,CAAC,CAAChD,kCAAkC,CACnC,kJACF,CAAC;IACH,CAAC,CAAC;IAEFxB,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnC,MAAMqD,GAAG,GAAGvC,wBAAwB,CAAC;QACnCI,OAAO,EAAE,KAAK;QACdE,IAAI,EAAE;MACR,CAAC,CAAC;MAEF,MAAM4C,MAAM,GAAGzD,eAAe,CAAC;QAC7BW,OAAO,EAAE,WAAW;QACpBY,UAAU,EAAE;UAAEC,GAAG,EAAEsB;QAAI;MACzB,CAAC,CAAC;MAEa3C,YAAY,CAAC;QAC1BuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,KAAK;QAClB+C,iBAAiB,EAAE,KAAK;QACxBhD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CACV;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC,EACtD;UACED,OAAO,EAAE,UAAU;UACnBE,IAAI,EAAE;YACJA,IAAI,EAAE,QAAQ;YACd8B,gBAAgB,EAAE;cAChBuB,GAAG,EAAE,QAAQ;cACbC,GAAG,EAAE;YACP;UACF,CAAC;UACDvD,WAAW,EAAE;QACf,CAAC,CACF;QACDiD,oBAAoB,EAAE,CAAC;UACrBC,UAAU,EAAEL,MAAM;UAClBM,eAAe,EAAE,CAAC;YAAEC,iBAAiB,EAAE,KAAK;YAAEC,MAAM,EAAE;UAAM,CAAC;QAC/D,CAAC;MACH,CAAC,CAAC;MAEFzE,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IACFzB,EAAE,CAAC,wCAAwC,EAAE,MAAM;MACjD,MAAM2E,MAAM,GAAGjE,YAAY,CAAC;QAC1BuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,KAAK;QAClB+C,iBAAiB,EAAE,KAAK;QACxBhD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC;MACrE,CAAC,CAAC;MAEF,MAAMyD,WAAW,GAAGlE,YAAY,CAAC;QAC/BuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,MAAM;QACnB+C,iBAAiB,EAAE,MAAM;QACzBhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,EAAE;UACrED,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAEFV,UAAU,CAAC;QACTS,OAAO,EAAE,WAAW;QACpB2D,GAAG,EAAE;UACHF,MAAM,EAAEA,MAAM;UACdG,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,KAAK;cAClB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,MAAM;cACzBc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF,CAAC;QACD2B,MAAM,EAAE;UACN8B,MAAM,EAAEC,WAAW;UACnBE,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,MAAM;cACnB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,QAAQ;cAC3Bc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF,CAAC;QACDgE,sBAAsB,EAAE,KAAK;QAC7BC,WAAW,EAAE;MACf,CAAC,CAAC;MAEFpF,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEFzB,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClD,MAAM2E,MAAM,GAAGjE,YAAY,CAAC;QAC1BuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,KAAK;QAClB+C,iBAAiB,EAAE,KAAK;QACxBhD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC;MACrE,CAAC,CAAC;MAEF,MAAMyD,WAAW,GAAGlE,YAAY,CAAC;QAC/BuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,MAAM;QACnB+C,iBAAiB,EAAE,MAAM;QACzBhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,EAAE;UACrED,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAEFV,UAAU,CAAC;QACTS,OAAO,EAAE,WAAW;QACpBkE,IAAI,EAAE;UACJT,MAAM,EAAEA,MAAM;UACdG,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,KAAK;cAClB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,MAAM;cACzBc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF,CAAC;QACD2B,MAAM,EAAE;UACN8B,MAAM,EAAEC,WAAW;UACnBE,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,MAAM;cACnB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,QAAQ;cAC3Bc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF;MACF,CAAC,CAAC;MACFnB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEFzB,EAAE,CAAC,sDAAsD,EAAE,MAAM;MACnCU,YAAY,CAAC;QACvCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,qBAAqB;QAClC+C,iBAAiB,EAAE,qBAAqB;QACxChD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC,CAAC;QACpEkE,UAAU,EAAE;UAAEjE,IAAI,EAAE;QAAU;MAChC,CAAC,CAAC;MAEoCV,YAAY,CAAC;QACjDuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,+BAA+B;QAC5C+C,iBAAiB,EAAE,+BAA+B;QAClDhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,EAAE;UACrED,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC,CAAC;QACFkE,UAAU,EAAE;UAAEjE,IAAI,EAAE;QAAS;MAC/B,CAAC,CAAC;MAEsCV,YAAY,CAAC;QACnDuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,iCAAiC;QAC9C+C,iBAAiB,EAAE,iCAAiC;QACpDhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,CAAC;QACtEkE,UAAU,EAAE;UAAEjE,IAAI,EAAE,QAAQ;UAAEkE,eAAe,EAAE;QAAO;MACxD,CAAC,CAAC;MAEFvF,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEFzB,EAAE,CAAC,2DAA2D,EAAE,MAAM;MACpED,MAAM,CAAC,MACLW,YAAY,CAAC;QACXuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,iCAAiC;QAC9C+C,iBAAiB,EAAE,iCAAiC;QACpDhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,MAAM;UACfE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC,CAAC;QACFkE,UAAU,EAAE;UACVjE,IAAI,EAAE,QAAQ;UACdkE,eAAe,EAAE;QACnB;MACF,CAAC,CACH,CAAC,CAAC9D,kCAAkC,CAClC,oIACF,CAAC;IACH,CAAC,CAAC;IAEFxB,EAAE,CAAC,iDAAiD,EAAE,MAAM;MACpCU,YAAY,CAAC;QACjCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,eAAe;QAC5B+C,iBAAiB,EAAE,eAAe;QAClChD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,MAAM;UACfE,IAAI,EAAE,gBAAgB;UACtBD,WAAW,EAAE;QACf,CAAC,EAAE;UACDD,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC,CAAC;QACFkE,UAAU,EAAE;UAAEjE,IAAI,EAAE;QAAS;MAC/B,CAAC,CAAC;MAEFrB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3B,QAAQ,CAAC,SAAS,EAAE,MAAM;IACxBE,EAAE,CAAC,wCAAwC,EAAE,MAAM;MAC3BC,YAAY,CAAC;QACjCiB,OAAO,EAAE,KAAK;QACdC,WAAW,EAAE,eAAe;QAC5BsC,MAAM,EAAE,QAAQ;QAChB8B,KAAK,EAAE,CAAC;UACNnE,IAAI,EAAE,kBAAkB;UACxBoE,gBAAgB,EAAE;YAChBC,gBAAgB,EAAE,KAAK;YACvBC,mBAAmB,EAAE,QAAQ;YAC7BC,oBAAoB,EAAE,CAAC;UACzB;QACF,CAAC,CAAC;QACFC,UAAU,EAAE,CAAC;UACXC,EAAE,EAAE,QAAQ;UACZ1E,WAAW,EAAE,QAAQ;UACrBC,IAAI,EAAE,SAAS;UACf0E,UAAU,EAAE;YAAEzD,QAAQ,EAAE,IAAI;YAAE0D,aAAa,EAAE;cAAE3E,IAAI,EAAE;YAAU;UAAE;QACnE,CAAC;MACH,CAAC,CAAC;MAEFrB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,SAAS,CAAC;IACN,CAAC,CAAC;IACFzB,EAAE,CAAC,mEAAmE,EAAE,MAAM;MAC5E,MAAMgG,gBAAgB,GAAGzF,eAAe,CAAC;QACvCW,OAAO,EAAE,kBAAkB;QAC3BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MAEF,MAAM+D,iBAAiB,GAAGvF,YAAY,CAAC;QACrCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,mBAAmB;QAChC+C,iBAAiB,EAAE,oBAAoB;QACvChD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAEiCjB,iCAAiC,CAClE8F,gBAAgB,EAChBC,iBACF,CAAC;MAEoB5F,iCAAiC,CACpD2F,gBAAgB,EAChBC,iBACF,CAAC;MAEDlG,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,SAAS,CAAC;IACN,CAAC,CAAC;IAEFzB,EAAE,CAAC,uCAAuC,EAAE,MAAM;MAC1BC,YAAY,CAAC;QACjCiB,OAAO,EAAE,KAAK;QACdC,WAAW,EAAE,eAAe;QAC5BsC,MAAM,EAAE,QAAQ;QAChB8B,KAAK,EAAE,CAAC;UACNnE,IAAI,EAAE,yBAAyB;UAC/B8E,uBAAuB,EAAE;YACvBC,cAAc,EAAE,yBAAyB;YACzCC,cAAc,EAAE;cACd,KAAK,EAAE;gBACLhF,IAAI,EAAE,aAAa;gBACnBiF,WAAW,EAAE;cACf;YACF,CAAC;YACDC,iBAAiB,EAAE,CAAC;UACtB;QACF,CAAC,CAAC;QACFV,UAAU,EAAE,CAAC;UACXC,EAAE,EAAE,QAAQ;UACZ1E,WAAW,EAAE,QAAQ;UACrBC,IAAI,EAAE,SAAS;UACf0E,UAAU,EAAE;YAAEzD,QAAQ,EAAE,IAAI;YAAE0D,aAAa,EAAE;cAAE3E,IAAI,EAAE;YAAU;UAAE;QACnE,CAAC;MACH,CAAC,CAAC;MAEFrB,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,CAAC,CAAC;IACE,CAAC,CAAC;IAEFzB,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACvD,MAAMiG,iBAAiB,GAAGvF,YAAY,CAAC;QACrCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,mBAAmB;QAChC+C,iBAAiB,EAAE,oBAAoB;QACvChD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAE6BhB,wBAAwB,CACrD8F,iBACF,CAAC;MAC8B3F,wBAAwB,CACrD2F,iBACF,CAAC;MAC8B7F,wBAAwB,CACrD6F,iBACF,CAAC;MAEDlG,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,GAAG,CAAC;IACA,CAAC,CAAC;IAEFzB,EAAE,CAAC,oDAAoD,EAAE,MAAM;MACxCU,YAAY,CAAC;QAChCQ,OAAO,EAAE,cAAc;QACvBC,WAAW,EAAE,aAAa;QAC1BU,WAAW,EAAE,2BAA2B;QACxCsC,yBAAyB,EAAE,IAAI;QAC/BD,iBAAiB,EAAE,OAAO;QAC1BD,oBAAoB,EAAE,MAAM;QAC5BnC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,MAAM;UACfE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE,MAAM;UACnBU,WAAW,EAAE;QACf,CAAC,EAAE;UACDX,OAAO,EAAE,IAAI;UACbE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE,IAAI;UACjBU,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MACF9B,MAAM,CAAC,MACLE,YAAY,CAAC;QACXiB,OAAO,EAAE,KAAK;QACdC,WAAW,EAAE,eAAe;QAC5BsC,MAAM,EAAE,QAAQ;QAChB8B,KAAK,EAAE,CAAC;UACNnE,IAAI,EAAE,kBAAkB;UACxBmF,gBAAgB,EAAE;YAChBJ,cAAc,EAAE,cAAc;YAC9BC,cAAc,EAAE;cACd,MAAM,EAAE;gBACNhF,IAAI,EAAE,aAAa;gBACnBiF,WAAW,EAAE;cACf;YACF,CAAC;YACDC,iBAAiB,EAAE,CAAC;UACtB;QACF,CAAC,CAAC;QACFV,UAAU,EAAE,CAAC;UACXC,EAAE,EAAE,MAAM;UACV1E,WAAW,EAAE,MAAM;UACnBC,IAAI,EAAE,QAAQ;UACd0E,UAAU,EAAE;YAAEzD,QAAQ,EAAE,IAAI;YAAE0D,aAAa,EAAE;cAAE3E,IAAI,EAAE;YAAO;UAAE;QAChE,CAAC;MACH,CAAC,CACH,CAAC,CAACoF,YAAY,CACZ,4EACF,CAAC;IACH,CAAC,CAAC;IAEFxG,EAAE,CAAC,sEAAsE,EAAE,MAAM;MAC/E,MAAMgG,gBAAgB,GAAGzF,eAAe,CAAC;QACvCW,OAAO,EAAE,kBAAkB;QAC3BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MACmBhC,iCAAiC,CAAC8F,gBAAgB,CAAC;MACnD3F,iCAAiC,CAAC2F,gBAAgB,CAAC;MAExEjG,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,SAAS,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CAAC;EACF3B,QAAQ,CAAC,SAAS,EAAE,MAAM;IACxBE,EAAE,CAAC,wBAAwB,EAAE,MAAM;MACjC;MACA,MAAMqD,GAAuB,GAAG;QAC9BnC,OAAO,EAAE,uBAAuB;QAChCuF,oBAAoB,EAAE,KAAK;QAC3BrF,IAAI,EAAE,QAAQ;QACdsF,MAAM,EAAEzF,sBAAsB,CAAC0F;MACjC,CAAC;MACD3F,oBAAoB,CAACqC,GAAG,CAAC;MAEL9C,eAAe,CAAC;QAClCW,OAAO,EAAE,aAAa;QACtBY,UAAU,EAAE;UACVuB;QACF;MACF,CAAC,CAAC;MACFtD,MAAM,CAACa,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,OAAO,CAAC;IACJ,CAAC,CAAC;IACFzB,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAM4G,YAAY,GAAGhH,IAAI,CAACiH,OAAO,CAACjH,IAAI,CAACkH,IAAI,CACzCC,SAAS,EACT,IAAI,EACJ,kBAAkB,EAClB,sCACF,CAAC,CAAC;MACF,MAAMpG,cAAc,CAAC,iBAAiB,EAAE,MAAM;QAC5C,MAAMqG,KAAK,GAAGlG,wBAAwB,CAAC;UACrCI,OAAO,EAAE,OAAO;UAChBE,IAAI,EAAE;QACR,CAAC,CAAC;QACF,MAAM6F,WAAW,GAAG1G,eAAe,CAAC;UAClCW,OAAO,EAAE,aAAa;UACtBY,UAAU,EAAE;YACVkF;UACF;QACF,CAAC,CAAC;QACetG,YAAY,CAAC;UAC5BuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,WAAW;UACxB+C,iBAAiB,EAAE,WAAW;UAC9BhD,OAAO,EAAE,UAAU;UACnBiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC,CAAC;UACpEiD,oBAAoB,EAAE,CAAC;YACrBC,UAAU,EAAE4C,WAAW;YACvB3C,eAAe,EAAE,CAAC;cAAEC,iBAAiB,EAAE,OAAO;cAAEC,MAAM,EAAE;YAAM,CAAC;UACjE,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,EAAEoC,YAAY,CAAC;MAEhB7G,MAAM,CACJJ,EAAE,CAACuH,YAAY,CACbtH,IAAI,CAACkH,IAAI,CAACF,YAAY,EAAE,wCAAwC,CAAC,EACjE,MACF,CACF,CAAC,CAACnF,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,OAAO,CAAC;MAEF1B,MAAM,CACJJ,EAAE,CAACuH,YAAY,CACbtH,IAAI,CAACkH,IAAI,CAACF,YAAY,EAAE,kCAAkC,CAAC,EAC3D,MACF,CACF,CAAC,CAACnF,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,OAAO,CAAC;MAEF1B,MAAM,CACJJ,EAAE,CAACuH,YAAY,CACbtH,IAAI,CAACkH,IAAI,CAACF,YAAY,EAAE,wCAAwC,CAAC,EACjE,MACF,CACF,CAAC,CAACnF,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,OAAO,CAAC;MACF9B,EAAE,CAACwH,MAAM,CAACvH,IAAI,CAACiH,OAAO,CAACjH,IAAI,CAACkH,IAAI,CAACF,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE;QACrDQ,SAAS,EAAE,IAAI;QACfC,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"overall.test.js","names":["fs","path","beforeEach","describe","expect","it","defineAction","defineCreateInterfaceObjectAction","defineCreateObjectAction","defineDeleteObjectAction","defineModifyInterfaceObjectAction","defineModifyObjectAction","importSharedPropertyType","defineInterface","defineInterfaceLinkConstraint","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineSharedPropertyType","defineValueType","importOntologyEntity","OntologyEntityTypeEnum","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","toMatchInlineSnapshot","result","displayMetadata","toBe","description","properties","foo","blockData","parentInterface","property1","property2","extends","required","propertyDefinition","a","b","not","toBeUndefined","from","toOne","toMany","fooSpt","icon","color","locator","structDefinition","fieldType","undefined","spt","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","status","toEqual","active","experimental","message","deadline","deprecated","sample","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","lat","lng","object","otherObject","one","metadata","groupDisplayName","visibility","typeClasses","manyForeignKeyProperty","cardinality","many","datasource","retentionPeriod","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","parameters","id","validation","allowedValues","exampleInterface","exampleObjectType","addOrModifyObjectRuleV2","objectToModify","propertyValues","parameterId","structFieldValues","modifyObjectRule","toThrowError","packageName","typeHint","nonNameSpacedApiName","__type","SHARED_PROPERTY_TYPE","generatedDir","resolve","join","__dirname","mySpt","myInterface","readFileSync","rmSync","recursive","force"],"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 { beforeEach, describe, expect, it } from \"vitest\";\nimport {\n defineAction,\n defineCreateInterfaceObjectAction,\n defineCreateObjectAction,\n defineDeleteObjectAction,\n defineModifyInterfaceObjectAction,\n defineModifyObjectAction,\n} from \"./defineAction.js\";\nimport { importSharedPropertyType } from \"./defineImportSpt.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 {\n type InterfaceType,\n OntologyEntityTypeEnum,\n type SharedPropertyType,\n} from \"./types.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 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 \"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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": undefined,\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 \"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().blockData).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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": undefined,\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 \"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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": undefined,\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 \"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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": undefined,\n },\n \"extendsInterfaces\": [\n \"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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": undefined,\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 \"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\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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.A\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.A\",\n \"displayMetadata\": {\n \"description\": \"A\",\n \"displayName\": \"A\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.B\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.B\",\n \"displayMetadata\": {\n \"description\": \"B\",\n \"displayName\": \"B\",\n \"icon\": undefined,\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.A\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.A\",\n \"displayMetadata\": {\n \"description\": \"A\",\n \"displayName\": \"A\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.B\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.B\",\n \"displayMetadata\": {\n \"description\": \"B\",\n \"displayName\": \"B\",\n \"icon\": undefined,\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.FooInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\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 \"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().blockData).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().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.interface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\n \"icon\": undefined,\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 \"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 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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{ interfaceProperty: \"foo\", mapsTo: \"fizz\" }],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{ interfaceProperty: \"fizz\", mapsTo: \"bar\" }, {\n interfaceProperty: \"foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Interface property com.palantir.interface.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 { apiName: \"bar\", type: \"string\", displayName: \"Bar\" },\n {\n apiName: \"geopoint\",\n type: {\n type: \"struct\",\n structDefinition: {\n lat: \"double\",\n lng: \"double\",\n },\n },\n displayName: \"geopoint\",\n },\n ],\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{ interfaceProperty: \"foo\", mapsTo: \"bar\" }],\n }],\n });\n\n expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.interface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\n \"icon\": undefined,\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"properties\": {\n \"com.palantir.foo\": {\n \"propertyTypeRid\": \"bar\",\n },\n },\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 \"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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: [{ apiName: \"fizz\", type: \"string\", displayName: \"Fizz\" }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n one: {\n object: object,\n metadata: {\n displayMetadata: {\n displayName: \"Foo\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Foos\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"fizzes\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n displayMetadata: {\n displayName: \"Fizz\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Fizzes\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"foos\",\n },\n },\n manyForeignKeyProperty: \"bar\",\n cardinality: \"OneToMany\",\n });\n\n expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizzToFoo\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_ONE\",\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\": \"fizzToFoo\",\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n });\n\n const otherObject = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Fizz\",\n pluralDisplayName: \"Fizz\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: [{ apiName: \"fizz\", type: \"string\", displayName: \"Fizz\" }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n defineLink({\n apiName: \"fizzToFoo\",\n many: {\n object: object,\n metadata: {\n displayMetadata: {\n displayName: \"Foo\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Foos\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"fizzes\",\n },\n },\n toMany: {\n object: otherObject,\n metadata: {\n displayMetadata: {\n displayName: \"Fizz\",\n groupDisplayName: \"\",\n pluralDisplayName: \"Fizzes\",\n visibility: \"NORMAL\",\n },\n typeClasses: [],\n apiName: \"foos\",\n },\n },\n });\n expect(dumpOntologyFullMetadata().blockData).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"fizzToFoo\": {\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\": \"bar\",\n \"property\": {\n \"apiName\": \"fizz\",\n \"object\": \"com.palantir.fizz\",\n },\n },\n ],\n \"writebackDatasetRid\": undefined,\n },\n \"type\": \"dataset\",\n },\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": undefined,\n \"rid\": \"ri.ontology.main.datasource.link-fizzToFoo\",\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\": \"fizzToFoo\",\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\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: [{ apiName: \"fizz\", type: \"string\", displayName: \"Fizz\" }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\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: [{ apiName: \"buzz\", type: \"string\", displayName: \"Buzz\" }],\n datasource: { type: \"stream\", retentionPeriod: \"PT1H\" },\n });\n\n expect(dumpOntologyFullMetadata().blockData).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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.buzz\",\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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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(\"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: [{\n apiName: \"buzz\",\n type: \"string\",\n displayName: \"Buzz\",\n }],\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 apiName: \"fizz\",\n type: \"mediaReference\",\n displayName: \"Fizz\",\n }, {\n apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n datasource: { type: \"stream\" },\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.fizz\",\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 \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.fizz\",\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n `);\n });\n });\n\n describe(\"Actions\", () => {\n it(\"Interface actions are properly defined\", () => {\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 \"blockData\": {\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 \"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 },\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n `);\n });\n it(\"Simple interface actions (with object types) are properly defined\", () => {\n const exampleInterface = defineInterface({\n apiName: \"exampleInterface\",\n properties: {\n property1: \"string\",\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 apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n const createActionWithObjectType = defineCreateInterfaceObjectAction(\n exampleInterface,\n exampleObjectType,\n );\n\n const modifyAction = defineModifyInterfaceObjectAction(\n exampleInterface,\n exampleObjectType,\n );\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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.property1\": {\n \"parameterId\": \"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 \"objectTypeParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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.modify-example-interface-foo\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"modifyInterfaceRule\": {\n \"interfaceObjectToModifyParameter\": \"interfaceObjectToModifyParameter\",\n \"sharedPropertyValues\": {\n \"com.palantir.property1\": {\n \"parameterId\": \"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 \"interfaceObjectToModifyParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": undefined,\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 \"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 },\n },\n \"type\": \"datasetV2\",\n },\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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.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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\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 \"blockData\": {\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 \"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 },\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\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 apiName: \"bar\",\n type: \"string\",\n displayName: \"Bar\",\n }],\n });\n\n const createObjectActionType = defineCreateObjectAction(\n exampleObjectType,\n );\n const modifyObjectActionType = defineModifyObjectAction(\n exampleObjectType,\n );\n const deleteObjectActionType = defineDeleteObjectAction(\n exampleObjectType,\n );\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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 },\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 \"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 },\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 \"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.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 \"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 },\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 \"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 \"bar\": {\n \"parameterId\": \"bar\",\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 \"bar\": {\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 \"objectToModifyParameter\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToModifyParameter\",\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 \"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 },\n },\n \"type\": \"datasetV2\",\n },\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n \"rid\": \"ri.ontology.main.datasource.com.palantir.foo\",\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\n \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 apiName: \"name\",\n type: \"string\",\n displayName: \"Name\",\n description: \"The name of the test object\",\n }, {\n apiName: \"id\",\n type: \"string\",\n displayName: \"ID\",\n 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(\"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(exampleInterface);\n const modifyAction = defineModifyInterfaceObjectAction(exampleInterface);\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"blockData\": {\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\": \"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 \"objectTypeParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectTypeParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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.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\": \"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 \"interfaceObjectToModifyParameter\": {\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 \"property1\": {\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 },\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 \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"interfaceObjectToModifyParameter\",\n \"property1\",\n ],\n \"parameters\": {\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 \"property1\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"property1\",\n \"typeClasses\": [],\n },\n \"id\": \"property1\",\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 \"com.palantir.exampleInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.exampleInterface\",\n \"displayMetadata\": {\n \"description\": \"exampleInterface\",\n \"displayName\": \"exampleInterface\",\n \"icon\": undefined,\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 \"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 \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [],\n },\n }\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 \"blockData\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.myInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.myInterface\",\n \"displayMetadata\": {\n \"description\": \"myInterface\",\n \"displayName\": \"myInterface\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [\n {\n \"apiName\": \"com.palantir.core.ontology.types.id\",\n \"description\": undefined,\n \"displayName\": \"com.palantir.core.ontology.types.id\",\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n ],\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 \"blockData\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.myInterface\": {\n \"interfaceType\": {\n \"allExtendsInterfaces\": [],\n \"allLinks\": [],\n \"allProperties\": [],\n \"allPropertiesV2\": {},\n \"apiName\": \"com.palantir.myInterface\",\n \"displayMetadata\": {\n \"description\": \"myInterface\",\n \"displayName\": \"myInterface\",\n \"icon\": undefined,\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 \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedTypes\": {\n \"actionTypes\": [],\n \"interfaceTypes\": [],\n \"linkTypes\": [],\n \"objectTypes\": [],\n \"sharedPropertyTypes\": [\n {\n \"apiName\": \"com.other.package.spt\",\n \"description\": undefined,\n \"displayName\": \"com.other.package.spt\",\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n ],\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: [{ apiName: \"bar\", type: \"string\", displayName: \"Bar\" }],\n implementsInterfaces: [{\n implements: myInterface,\n propertyMapping: [{ interfaceProperty: \"mySpt\", mapsTo: \"bar\" }],\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 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 \"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 \"__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 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 \"apiName\": \"bar\",\n \"type\": \"string\",\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 \"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 \"__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 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 });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,EAAE,MAAM,IAAI;AACxB,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SACEC,YAAY,EACZC,iCAAiC,EACjCC,wBAAwB,EACxBC,wBAAwB,EACxBC,iCAAiC,EACjCC,wBAAwB,QACnB,mBAAmB;AAC1B,SAASC,wBAAwB,QAAQ,sBAAsB;AAC/D,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SACEC,cAAc,EACdC,wBAAwB,EACxBC,qBAAqB,QAChB,qBAAqB;AAC5B,SAASC,wBAAwB,QAAQ,gBAAgB;AACzD,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAEEC,sBAAsB,QAEjB,YAAY;AAEnBpB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EAClCD,UAAU,CAAC,YAAY;IACrB,MAAMe,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1D,CAAC,CAAC;EAEFd,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3BE,EAAE,CAAC,kDAAkD,EAAE,MAAM;MAC3DD,MAAM,CAAC,MACLiB,eAAe,CAAC;QACdG,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,aAAa;QAC1BC,IAAI,EAAE;UACJ,MAAM,EAAE,SAAS;UACjBC,WAAW,EAAE,CAAC;YAAEC,UAAU,EAAE;cAAE,eAAe,EAAE,CAAC,YAAY;YAAE;UAAE,CAAC;QACnE,CAAC;QACDC,OAAO,EAAE;MACX,CAAC,CACH,CAAC,CAACC,kCAAkC,CAClC,0DACF,CAAC;IACH,CAAC,CAAC;IACFzB,EAAE,CAAC,mCAAmC,EAAE,MAAM;MAC5CgB,eAAe,CAAC;QACdG,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,aAAa;QAC1BC,IAAI,EAAE;UACJ,MAAM,EAAE,SAAS;UACjBC,WAAW,EAAE,CAAC;YAAEC,UAAU,EAAE;cAAE,eAAe,EAAE,CAAC,YAAY;YAAE;UAAE,CAAC;QACnE,CAAC;QACDC,OAAO,EAAE;MACX,CAAC,CAAC;MACFzB,MAAM,CAACe,qBAAqB,CAAC,CAAC,CAAC,CAACY,qBAAqB,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;;IAEF;IACA;IACAd,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EACpD,CAAC,CAAC;EAEFd,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3BE,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAC1DQ,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAM,CAAC,CAAC;MACnCpB,MAAM,CAAC,MAAM;QACXS,eAAe,CAAC;UAAEW,OAAO,EAAE;QAAM,CAAC,CAAC;MACrC,CAAC,CAAC,CAACM,kCAAkC,CACnC,sEACF,CAAC;IACH,CAAC,CAAC;IAEFzB,EAAE,CAAC,iCAAiC,EAAE,MAAM;MAC1C,MAAM2B,MAAM,GAAGnB,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAM,CAAC,CAAC;MAClDpB,MAAM,CAAC4B,MAAM,CAACC,eAAe,CAACR,WAAW,CAAC,CAACS,IAAI,CAAC,KAAK,CAAC;IACxD,CAAC,CAAC;IAEF7B,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAM2B,MAAM,GAAGnB,eAAe,CAAC;QAAEW,OAAO,EAAE,KAAK;QAAEC,WAAW,EAAE;MAAI,CAAC,CAAC;MACpErB,MAAM,CAAC4B,MAAM,CAACC,eAAe,CAACE,WAAW,CAAC,CAACD,IAAI,CAAC,GAAG,CAAC;IACtD,CAAC,CAAC;IAEF7B,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACzD,MAAM2B,MAAM,GAAGnB,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAM,CAAC,CAAC;MAClDpB,MAAM,CAAC4B,MAAM,CAACC,eAAe,CAACE,WAAW,CAAC,CAACD,IAAI,CAAC,KAAK,CAAC;IACxD,CAAC,CAAC;IAEF/B,QAAQ,CAAC,WAAW,EAAE,MAAM;MAC1BE,EAAE,CAAC,mBAAmB,EAAE,MAAM;QAC5BQ,eAAe,CAAC;UACdW,OAAO,EAAE,KAAK;UACdY,UAAU,EAAE;YACVC,GAAG,EAAE;UACP;QACF,CAAC,CAAC;QAEFjC,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;MACJ,CAAC,CAAC;MAEF1B,EAAE,CAAC,gCAAgC,EAAE,MAAM;QACzCe,wBAAwB,CAAC;UACvBI,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE;QACR,CAAC,CAAC;QAEFtB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;QAEF3B,MAAM,CAAC,MAAM;UACXS,eAAe,CAAC;YACdW,OAAO,EAAE,KAAK;YACdY,UAAU,EAAE;cACVC,GAAG,EAAE;YACP;UACF,CAAC,CAAC;QACJ,CAAC,CAAC,CAACP,kCAAkC,CACnC,iFACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFzB,EAAE,CAAC,uDAAuD,EAAE,MAAM;MAChE,MAAMkC,eAAe,GAAG1B,eAAe,CAAC;QACtCW,OAAO,EAAE,iBAAiB;QAC1BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MACqB3B,eAAe,CAAC;QACrCW,OAAO,EAAE,gBAAgB;QACzBY,UAAU,EAAE;UACVK,SAAS,EAAE;QACb,CAAC;QACDC,OAAO,EAAE,CAACH,eAAe;MAC3B,CAAC,CAAC;MAEFnC,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEF1B,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACfQ,eAAe,CAAC;QACtCW,OAAO,EAAE,iBAAiB;QAC1BY,UAAU,EAAE;UACVI,SAAS,EAAE;YAAEG,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAE;UAAS;QAC7D;MACF,CAAC,CAAC;MAEFxC,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEF1B,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAClCQ,eAAe,CAAC;QACtCW,OAAO,EAAE,iBAAiB;QAC1BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MACqB3B,eAAe,CAAC;QACrCW,OAAO,EAAE,gBAAgB;QACzBY,UAAU,EAAE;UACVK,SAAS,EAAE;QACb,CAAC;QACDC,OAAO,EAAE,CAAC,iBAAiB;MAC7B,CAAC,CAAC;MAEFtC,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF5B,QAAQ,CAAC,MAAM,EAAE,MAAM;IACrB,IAAI0C,CAAgB;IACpB,IAAIC,CAAgB;IAEpB5C,UAAU,CAAC,MAAM;MACf2C,CAAC,GAAGhC,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAI,CAAC,CAAC;MACrCsB,CAAC,GAAGjC,eAAe,CAAC;QAAEW,OAAO,EAAE;MAAI,CAAC,CAAC;IACvC,CAAC,CAAC;IAEFnB,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAC5BD,MAAM,CAACyC,CAAC,CAAC,CAACE,GAAG,CAACC,aAAa,CAAC,CAAC;MAC7BlC,6BAA6B,CAAC;QAC5BmC,IAAI,EAAEJ,CAAC;QACPK,KAAK,EAAEJ,CAAC;QACRtB,OAAO,EAAE;MACX,CAAC,CAAC;MAEFpB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEF1B,EAAE,CAAC,iBAAiB,EAAE,MAAM;MAC1BS,6BAA6B,CAAC;QAC5BmC,IAAI,EAAEJ,CAAC;QACPM,MAAM,EAAEL,CAAC;QACTtB,OAAO,EAAE;MACX,CAAC,CAAC;MAEFpB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF5B,QAAQ,CAAC,MAAM,EAAE,MAAM;IACrBE,EAAE,CAAC,2CAA2C,EAAE,MAAM;MACpDe,wBAAwB,CAAC;QACvBI,OAAO,EAAE,KAAK;QACdE,IAAI,EAAE;MACR,CAAC,CAAC;MAEFtB,MAAM,CAAC,MAAM;QACXgB,wBAAwB,CAAC;UACvBI,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE;QACR,CAAC,CAAC;MACJ,CAAC,CAAC,CAACI,kCAAkC,CACnC,iFACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFzB,EAAE,CAAC,uBAAuB,EAAE,MAAM;IAChC,MAAM+C,MAAM,GAAGhC,wBAAwB,CAAC;MACtCI,OAAO,EAAE,QAAQ;MACjBE,IAAI,EAAE;IACR,CAAC,CAAC;IAEmBb,eAAe,CAAC;MACnCW,OAAO,EAAE,cAAc;MACvBC,WAAW,EAAE,eAAe;MAC5BW,UAAU,EAAE;QACVgB;MACF,CAAC;MACDC,IAAI,EAAE;QAAEC,KAAK,EAAE,QAAQ;QAAEC,OAAO,EAAE;MAAW;IAC/C,CAAC,CAAC;IAEFnD,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEF1B,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACzCe,wBAAwB,CAAC;MACtCI,OAAO,EAAE,QAAQ;MACjBE,IAAI,EAAE;QACJA,IAAI,EAAE,QAAQ;QACd8B,gBAAgB,EAAE;UAChB,gBAAgB,EAAE,SAAS;UAC3B,iBAAiB,EAAE;YACjBC,SAAS,EAAE,MAAM;YACjBxB,eAAe,EAAE;cACfR,WAAW,EAAE,kBAAkB;cAC/BU,WAAW,EAAEuB;YACf;UACF;QACF;MACF;IACF,CAAC,CAAC;IAEFtD,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF1B,EAAE,CAAC,mCAAmC,EAAE,MAAM;IAC5C,MAAMsD,GAAG,GAAGvC,wBAAwB,CAAC;MACnCI,OAAO,EAAE,KAAK;MACdE,IAAI,EAAE;QACJA,IAAI,EAAE,QAAQ;QACdkC,UAAU,EAAE,IAAI;QAChBC,gCAAgC,EAAE,IAAI;QACtCC,qBAAqB,EAAE;MACzB;IACF,CAAC,CAAC;IAEFjD,eAAe,CAAC;MACdW,OAAO,EAAE,WAAW;MACpBY,UAAU,EAAE;QAAEC,GAAG,EAAEsB;MAAI;IACzB,CAAC,CAAC;IAEFvD,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEF1B,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAM2B,MAAM,GAAGnB,eAAe,CAAC;MAAEW,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDpB,MAAM,CAAC4B,MAAM,CAAC+B,MAAM,CAAC,CAACC,OAAO,CAAC;MAAEtC,IAAI,EAAE,QAAQ;MAAEuC,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEF5D,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAK1D,MAAM2B,MAAM,GAAGnB,eAAe,CAAC;MAC7BW,OAAO,EAAE,KAAK;MACduC,MAAM,EAAE;QAAErC,IAAI,EAAE;MAAe;IACjC,CAAC,CAAC;IACFtB,MAAM,CAAC4B,MAAM,CAAC+B,MAAM,CAAC,CAACC,OAAO,CARF;MACzBtC,IAAI,EAAE,cAAc;MACpBwC,YAAY,EAAE,CAAC;IACjB,CAKgD,CAAC;EACnD,CAAC,CAAC;EAEF7D,EAAE,CAAC,+CAA+C,EAAE,MAAM;IAQxD,MAAM2B,MAAM,GAAGnB,eAAe,CAAC;MAC7BW,OAAO,EAAE,KAAK;MACduC,MAAM,EAAE;QAAErC,IAAI,EAAE,YAAY;QAAEyC,OAAO,EAAE,KAAK;QAAEC,QAAQ,EAAE;MAAM;IAChE,CAAC,CAAC;IACFhE,MAAM,CAAC4B,MAAM,CAAC+B,MAAM,CAAC,CAACC,OAAO,CAXJ;MACvBtC,IAAI,EAAE,YAAY;MAClB2C,UAAU,EAAE;QACVF,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE;MACZ;IACF,CAK8C,CAAC;EACjD,CAAC,CAAC;EAEFjE,QAAQ,CAAC,SAAS,EAAE,MAAM;IACxBE,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACzD,MAAMsD,GAAG,GAAGvC,wBAAwB,CAAC;QACnCI,OAAO,EAAE,KAAK;QACdE,IAAI,EAAE;MACR,CAAC,CAAC;MAEF,MAAM4C,MAAM,GAAGzD,eAAe,CAAC;QAC7BW,OAAO,EAAE,WAAW;QACpBY,UAAU,EAAE;UAAEC,GAAG,EAAEsB;QAAI;MACzB,CAAC,CAAC;MAEFvD,MAAM,CAAC,MAAM;QACXY,YAAY,CAAC;UACXuD,oBAAoB,EAAE,MAAM;UAC5B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC;QACrE,CAAC,CAAC;MACJ,CAAC,CAAC,CAACK,kCAAkC,CACnC,6EACF,CAAC;MAED1B,MAAM,CAAC,MAAM;QACXY,YAAY,CAAC;UACXuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,MAAM;UACjCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC;QACrE,CAAC,CAAC;MACJ,CAAC,CAAC,CAACK,kCAAkC,CACnC,mFACF,CAAC;MAED1B,MAAM,CAAC,MAAM;QACXY,YAAY,CAAC;UACXuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC,CAAC;UACpEiD,oBAAoB,EAAE,CAAC;YACrBC,UAAU,EAAEL,MAAM;YAClBM,eAAe,EAAE,CAAC;cAAEC,iBAAiB,EAAE,KAAK;cAAEC,MAAM,EAAE;YAAO,CAAC;UAChE,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,CAAC,CAAChD,kCAAkC,CACnC,4IACF,CAAC;MAED1B,MAAM,CAAC,MAAM;QACXY,YAAY,CAAC;UACXuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,KAAK;UAClB+C,iBAAiB,EAAE,KAAK;UACxBhD,OAAO,EAAE,KAAK;UACdiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC,CAAC;UACpEiD,oBAAoB,EAAE,CAAC;YACrBC,UAAU,EAAEL,MAAM;YAClBM,eAAe,EAAE,CAAC;cAAEC,iBAAiB,EAAE,MAAM;cAAEC,MAAM,EAAE;YAAM,CAAC,EAAE;cAC9DD,iBAAiB,EAAE,KAAK;cACxBC,MAAM,EAAE;YACV,CAAC;UACH,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,CAAC,CAAChD,kCAAkC,CACnC,kJACF,CAAC;IACH,CAAC,CAAC;IAEFzB,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnC,MAAMsD,GAAG,GAAGvC,wBAAwB,CAAC;QACnCI,OAAO,EAAE,KAAK;QACdE,IAAI,EAAE;MACR,CAAC,CAAC;MAEF,MAAM4C,MAAM,GAAGzD,eAAe,CAAC;QAC7BW,OAAO,EAAE,WAAW;QACpBY,UAAU,EAAE;UAAEC,GAAG,EAAEsB;QAAI;MACzB,CAAC,CAAC;MAEa3C,YAAY,CAAC;QAC1BuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,KAAK;QAClB+C,iBAAiB,EAAE,KAAK;QACxBhD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CACV;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC,EACtD;UACED,OAAO,EAAE,UAAU;UACnBE,IAAI,EAAE;YACJA,IAAI,EAAE,QAAQ;YACd8B,gBAAgB,EAAE;cAChBuB,GAAG,EAAE,QAAQ;cACbC,GAAG,EAAE;YACP;UACF,CAAC;UACDvD,WAAW,EAAE;QACf,CAAC,CACF;QACDiD,oBAAoB,EAAE,CAAC;UACrBC,UAAU,EAAEL,MAAM;UAClBM,eAAe,EAAE,CAAC;YAAEC,iBAAiB,EAAE,KAAK;YAAEC,MAAM,EAAE;UAAM,CAAC;QAC/D,CAAC;MACH,CAAC,CAAC;MAEF1E,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IACF1B,EAAE,CAAC,wCAAwC,EAAE,MAAM;MACjD,MAAM4E,MAAM,GAAGjE,YAAY,CAAC;QAC1BuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,KAAK;QAClB+C,iBAAiB,EAAE,KAAK;QACxBhD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC;MACrE,CAAC,CAAC;MAEF,MAAMyD,WAAW,GAAGlE,YAAY,CAAC;QAC/BuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,MAAM;QACnB+C,iBAAiB,EAAE,MAAM;QACzBhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,EAAE;UACrED,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAEFV,UAAU,CAAC;QACTS,OAAO,EAAE,WAAW;QACpB2D,GAAG,EAAE;UACHF,MAAM,EAAEA,MAAM;UACdG,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,KAAK;cAClB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,MAAM;cACzBc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF,CAAC;QACD2B,MAAM,EAAE;UACN8B,MAAM,EAAEC,WAAW;UACnBE,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,MAAM;cACnB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,QAAQ;cAC3Bc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF,CAAC;QACDgE,sBAAsB,EAAE,KAAK;QAC7BC,WAAW,EAAE;MACf,CAAC,CAAC;MAEFrF,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEF1B,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClD,MAAM4E,MAAM,GAAGjE,YAAY,CAAC;QAC1BuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,KAAK;QAClB+C,iBAAiB,EAAE,KAAK;QACxBhD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC;MACrE,CAAC,CAAC;MAEF,MAAMyD,WAAW,GAAGlE,YAAY,CAAC;QAC/BuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,MAAM;QACnB+C,iBAAiB,EAAE,MAAM;QACzBhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,EAAE;UACrED,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAEFV,UAAU,CAAC;QACTS,OAAO,EAAE,WAAW;QACpBkE,IAAI,EAAE;UACJT,MAAM,EAAEA,MAAM;UACdG,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,KAAK;cAClB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,MAAM;cACzBc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF,CAAC;QACD2B,MAAM,EAAE;UACN8B,MAAM,EAAEC,WAAW;UACnBE,QAAQ,EAAE;YACRnD,eAAe,EAAE;cACfR,WAAW,EAAE,MAAM;cACnB4D,gBAAgB,EAAE,EAAE;cACpBb,iBAAiB,EAAE,QAAQ;cAC3Bc,UAAU,EAAE;YACd,CAAC;YACDC,WAAW,EAAE,EAAE;YACf/D,OAAO,EAAE;UACX;QACF;MACF,CAAC,CAAC;MACFpB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEF1B,EAAE,CAAC,sDAAsD,EAAE,MAAM;MACnCW,YAAY,CAAC;QACvCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,qBAAqB;QAClC+C,iBAAiB,EAAE,qBAAqB;QACxChD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,KAAK;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAM,CAAC,CAAC;QACpEkE,UAAU,EAAE;UAAEjE,IAAI,EAAE;QAAU;MAChC,CAAC,CAAC;MAEoCV,YAAY,CAAC;QACjDuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,+BAA+B;QAC5C+C,iBAAiB,EAAE,+BAA+B;QAClDhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,EAAE;UACrED,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC,CAAC;QACFkE,UAAU,EAAE;UAAEjE,IAAI,EAAE;QAAS;MAC/B,CAAC,CAAC;MAEsCV,YAAY,CAAC;QACnDuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,iCAAiC;QAC9C+C,iBAAiB,EAAE,iCAAiC;QACpDhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UAAEZ,OAAO,EAAE,MAAM;UAAEE,IAAI,EAAE,QAAQ;UAAED,WAAW,EAAE;QAAO,CAAC,CAAC;QACtEkE,UAAU,EAAE;UAAEjE,IAAI,EAAE,QAAQ;UAAEkE,eAAe,EAAE;QAAO;MACxD,CAAC,CAAC;MAEFxF,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAACoB,SAAS,CAAC,CAACP,qBAAqB,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;IACN,CAAC,CAAC;IAEF1B,EAAE,CAAC,2DAA2D,EAAE,MAAM;MACpED,MAAM,CAAC,MACLY,YAAY,CAAC;QACXuD,oBAAoB,EAAE,MAAM;QAC5B9C,WAAW,EAAE,iCAAiC;QAC9C+C,iBAAiB,EAAE,iCAAiC;QACpDhD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,MAAM;QACjCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,MAAM;UACfE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC,CAAC;QACFkE,UAAU,EAAE;UACVjE,IAAI,EAAE,QAAQ;UACdkE,eAAe,EAAE;QACnB;MACF,CAAC,CACH,CAAC,CAAC9D,kCAAkC,CAClC,oIACF,CAAC;IACH,CAAC,CAAC;IAEFzB,EAAE,CAAC,iDAAiD,EAAE,MAAM;MACpCW,YAAY,CAAC;QACjCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,eAAe;QAC5B+C,iBAAiB,EAAE,eAAe;QAClChD,OAAO,EAAE,MAAM;QACfiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,MAAM;UACfE,IAAI,EAAE,gBAAgB;UACtBD,WAAW,EAAE;QACf,CAAC,EAAE;UACDD,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC,CAAC;QACFkE,UAAU,EAAE;UAAEjE,IAAI,EAAE;QAAS;MAC/B,CAAC,CAAC;MAEFtB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF5B,QAAQ,CAAC,SAAS,EAAE,MAAM;IACxBE,EAAE,CAAC,wCAAwC,EAAE,MAAM;MAC3BC,YAAY,CAAC;QACjCkB,OAAO,EAAE,KAAK;QACdC,WAAW,EAAE,eAAe;QAC5BsC,MAAM,EAAE,QAAQ;QAChB8B,KAAK,EAAE,CAAC;UACNnE,IAAI,EAAE,kBAAkB;UACxBoE,gBAAgB,EAAE;YAChBC,gBAAgB,EAAE,KAAK;YACvBC,mBAAmB,EAAE,QAAQ;YAC7BC,oBAAoB,EAAE,CAAC;UACzB;QACF,CAAC,CAAC;QACFC,UAAU,EAAE,CAAC;UACXC,EAAE,EAAE,QAAQ;UACZ1E,WAAW,EAAE,QAAQ;UACrBC,IAAI,EAAE,SAAS;UACf0E,UAAU,EAAE;YAAEzD,QAAQ,EAAE,IAAI;YAAE0D,aAAa,EAAE;cAAE3E,IAAI,EAAE;YAAU;UAAE;QACnE,CAAC;MACH,CAAC,CAAC;MAEFtB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,SAAS,CAAC;IACN,CAAC,CAAC;IACF1B,EAAE,CAAC,mEAAmE,EAAE,MAAM;MAC5E,MAAMiG,gBAAgB,GAAGzF,eAAe,CAAC;QACvCW,OAAO,EAAE,kBAAkB;QAC3BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MAEF,MAAM+D,iBAAiB,GAAGvF,YAAY,CAAC;QACrCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,mBAAmB;QAChC+C,iBAAiB,EAAE,oBAAoB;QACvChD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAEiClB,iCAAiC,CAClE+F,gBAAgB,EAChBC,iBACF,CAAC;MAEoB7F,iCAAiC,CACpD4F,gBAAgB,EAChBC,iBACF,CAAC;MAEDnG,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,SAAS,CAAC;IACN,CAAC,CAAC;IAEF1B,EAAE,CAAC,uCAAuC,EAAE,MAAM;MAC1BC,YAAY,CAAC;QACjCkB,OAAO,EAAE,KAAK;QACdC,WAAW,EAAE,eAAe;QAC5BsC,MAAM,EAAE,QAAQ;QAChB8B,KAAK,EAAE,CAAC;UACNnE,IAAI,EAAE,yBAAyB;UAC/B8E,uBAAuB,EAAE;YACvBC,cAAc,EAAE,yBAAyB;YACzCC,cAAc,EAAE;cACd,KAAK,EAAE;gBACLhF,IAAI,EAAE,aAAa;gBACnBiF,WAAW,EAAE;cACf;YACF,CAAC;YACDC,iBAAiB,EAAE,CAAC;UACtB;QACF,CAAC,CAAC;QACFV,UAAU,EAAE,CAAC;UACXC,EAAE,EAAE,QAAQ;UACZ1E,WAAW,EAAE,QAAQ;UACrBC,IAAI,EAAE,SAAS;UACf0E,UAAU,EAAE;YAAEzD,QAAQ,EAAE,IAAI;YAAE0D,aAAa,EAAE;cAAE3E,IAAI,EAAE;YAAU;UAAE;QACnE,CAAC;MACH,CAAC,CAAC;MAEFtB,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,CAAC,CAAC;IACE,CAAC,CAAC;IAEF1B,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACvD,MAAMkG,iBAAiB,GAAGvF,YAAY,CAAC;QACrCuD,oBAAoB,EAAE,KAAK;QAC3B9C,WAAW,EAAE,mBAAmB;QAChC+C,iBAAiB,EAAE,oBAAoB;QACvChD,OAAO,EAAE,KAAK;QACdiD,yBAAyB,EAAE,KAAK;QAChCrC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,KAAK;UACdE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MAE6BjB,wBAAwB,CACrD+F,iBACF,CAAC;MAC8B5F,wBAAwB,CACrD4F,iBACF,CAAC;MAC8B9F,wBAAwB,CACrD8F,iBACF,CAAC;MAEDnG,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,GAAG,CAAC;IACA,CAAC,CAAC;IAEF1B,EAAE,CAAC,oDAAoD,EAAE,MAAM;MACxCW,YAAY,CAAC;QAChCQ,OAAO,EAAE,cAAc;QACvBC,WAAW,EAAE,aAAa;QAC1BU,WAAW,EAAE,2BAA2B;QACxCsC,yBAAyB,EAAE,IAAI;QAC/BD,iBAAiB,EAAE,OAAO;QAC1BD,oBAAoB,EAAE,MAAM;QAC5BnC,UAAU,EAAE,CAAC;UACXZ,OAAO,EAAE,MAAM;UACfE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE,MAAM;UACnBU,WAAW,EAAE;QACf,CAAC,EAAE;UACDX,OAAO,EAAE,IAAI;UACbE,IAAI,EAAE,QAAQ;UACdD,WAAW,EAAE,IAAI;UACjBU,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;MACF/B,MAAM,CAAC,MACLE,YAAY,CAAC;QACXkB,OAAO,EAAE,KAAK;QACdC,WAAW,EAAE,eAAe;QAC5BsC,MAAM,EAAE,QAAQ;QAChB8B,KAAK,EAAE,CAAC;UACNnE,IAAI,EAAE,kBAAkB;UACxBmF,gBAAgB,EAAE;YAChBJ,cAAc,EAAE,cAAc;YAC9BC,cAAc,EAAE;cACd,MAAM,EAAE;gBACNhF,IAAI,EAAE,aAAa;gBACnBiF,WAAW,EAAE;cACf;YACF,CAAC;YACDC,iBAAiB,EAAE,CAAC;UACtB;QACF,CAAC,CAAC;QACFV,UAAU,EAAE,CAAC;UACXC,EAAE,EAAE,MAAM;UACV1E,WAAW,EAAE,MAAM;UACnBC,IAAI,EAAE,QAAQ;UACd0E,UAAU,EAAE;YAAEzD,QAAQ,EAAE,IAAI;YAAE0D,aAAa,EAAE;cAAE3E,IAAI,EAAE;YAAO;UAAE;QAChE,CAAC;MACH,CAAC,CACH,CAAC,CAACoF,YAAY,CACZ,4EACF,CAAC;IACH,CAAC,CAAC;IAEFzG,EAAE,CAAC,sEAAsE,EAAE,MAAM;MAC/E,MAAMiG,gBAAgB,GAAGzF,eAAe,CAAC;QACvCW,OAAO,EAAE,kBAAkB;QAC3BY,UAAU,EAAE;UACVI,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MACmBjC,iCAAiC,CAAC+F,gBAAgB,CAAC;MACnD5F,iCAAiC,CAAC4F,gBAAgB,CAAC;MAExElG,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,SAAS,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CAAC;EACF5B,QAAQ,CAAC,SAAS,EAAE,MAAM;IACxBE,EAAE,CAAC,wBAAwB,EAAE,MAAM;MACjC,MAAM8F,EAAE,GAAGvF,wBAAwB,CAAC;QAClCY,OAAO,EAAE,IAAI;QACbuF,WAAW,EAAE,kCAAkC;QAC/CC,QAAQ,EAAE;MACZ,CAAC,CAAC;MACkBnG,eAAe,CAAC;QAClCW,OAAO,EAAE,aAAa;QACtBY,UAAU,EAAE;UACV+D;QACF;MACF,CAAC,CAAC;MACF/F,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,OAAO,CAAC;IACJ,CAAC,CAAC;IACF1B,EAAE,CAAC,wBAAwB,EAAE,MAAM;MACjC;MACA,MAAMsD,GAAuB,GAAG;QAC9BnC,OAAO,EAAE,uBAAuB;QAChCyF,oBAAoB,EAAE,KAAK;QAC3BvF,IAAI,EAAE,QAAQ;QACdwF,MAAM,EAAE3F,sBAAsB,CAAC4F;MACjC,CAAC;MACD7F,oBAAoB,CAACqC,GAAG,CAAC;MAEL9C,eAAe,CAAC;QAClCW,OAAO,EAAE,aAAa;QACtBY,UAAU,EAAE;UACVuB;QACF;MACF,CAAC,CAAC;MACFvD,MAAM,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAACa,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,OAAO,CAAC;IACJ,CAAC,CAAC;IACF1B,EAAE,CAAC,sCAAsC,EAAE,YAAY;MACrD,MAAM+G,YAAY,GAAGnH,IAAI,CAACoH,OAAO,CAACpH,IAAI,CAACqH,IAAI,CACzCC,SAAS,EACT,IAAI,EACJ,kBAAkB,EAClB,sCACF,CAAC,CAAC;MACF,MAAMtG,cAAc,CAAC,iBAAiB,EAAE,MAAM;QAC5C,MAAMuG,KAAK,GAAGpG,wBAAwB,CAAC;UACrCI,OAAO,EAAE,OAAO;UAChBE,IAAI,EAAE;QACR,CAAC,CAAC;QACF,MAAM+F,WAAW,GAAG5G,eAAe,CAAC;UAClCW,OAAO,EAAE,aAAa;UACtBY,UAAU,EAAE;YACVoF;UACF;QACF,CAAC,CAAC;QACexG,YAAY,CAAC;UAC5BuD,oBAAoB,EAAE,KAAK;UAC3B9C,WAAW,EAAE,WAAW;UACxB+C,iBAAiB,EAAE,WAAW;UAC9BhD,OAAO,EAAE,UAAU;UACnBiD,yBAAyB,EAAE,KAAK;UAChCrC,UAAU,EAAE,CAAC;YAAEZ,OAAO,EAAE,KAAK;YAAEE,IAAI,EAAE,QAAQ;YAAED,WAAW,EAAE;UAAM,CAAC,CAAC;UACpEiD,oBAAoB,EAAE,CAAC;YACrBC,UAAU,EAAE8C,WAAW;YACvB7C,eAAe,EAAE,CAAC;cAAEC,iBAAiB,EAAE,OAAO;cAAEC,MAAM,EAAE;YAAM,CAAC;UACjE,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,EAAEsC,YAAY,CAAC;MAEhBhH,MAAM,CACJJ,EAAE,CAAC0H,YAAY,CACbzH,IAAI,CAACqH,IAAI,CAACF,YAAY,EAAE,wCAAwC,CAAC,EACjE,MACF,CACF,CAAC,CAACrF,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,OAAO,CAAC;MAEF3B,MAAM,CACJJ,EAAE,CAAC0H,YAAY,CACbzH,IAAI,CAACqH,IAAI,CAACF,YAAY,EAAE,kCAAkC,CAAC,EAC3D,MACF,CACF,CAAC,CAACrF,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,OAAO,CAAC;MAEF3B,MAAM,CACJJ,EAAE,CAAC0H,YAAY,CACbzH,IAAI,CAACqH,IAAI,CAACF,YAAY,EAAE,wCAAwC,CAAC,EACjE,MACF,CACF,CAAC,CAACrF,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,OAAO,CAAC;MACF/B,EAAE,CAAC2H,MAAM,CAAC1H,IAAI,CAACoH,OAAO,CAACpH,IAAI,CAACqH,IAAI,CAACF,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE;QACrDQ,SAAS,EAAE,IAAI;QACfC,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}