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

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":"objects.test.js","names":["beforeEach","describe","expect","it","defineCreateObjectAction","defineDeleteObjectAction","defineInterface","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","titlePropertyApiName","displayName","pluralDisplayName","apiName","primaryKeyPropertyApiName","properties","type","toThrowErrorMatchingInlineSnapshot","spt","sample","foo","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","array","structDefinition","lat","lng","ontology","toMatchInlineSnapshot","datasources","retentionPeriod","editOnly","passenger","editsEnabled","flightToPassengers","one","object","metadata","toMany","manyForeignKeyProperty","id","numPassengers","linkDefinition","linkType","property","limit","flight","passengersList","objectType"],"sources":["objects.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineCreateObjectAction } from \"../defineCreateObjectAction.js\";\nimport { defineDeleteObjectAction } from \"../defineDeleteObjectAction.js\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineLink } from \"../defineLink.js\";\nimport { defineObject } from \"../defineObject.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Object Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails if the api name is invalid\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo_with_underscores\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Invalid API name foo_with_underscores. API names must match the regex /^([a-zA-Z][a-zA-Z0-9\\\\\\\\-]*)$/.]`,\n );\n });\n it(\"Fails if any property reference does not exist\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Title property fizz is not defined on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property fizz does not exist on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"fizz\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Object property mapped to interface does not exist. Object Property Mapped: fizz\\n]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.fizz\",\n mapsTo: \"bar\",\n }, {\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Interface property com.palantir.fizz referenced in foo object does not exist\\n]`,\n );\n });\n\n it(\"Objects properly defined\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\", displayName: \"Bar\" },\n \"arrayProp\": {\n type: \"string\",\n array: true,\n displayName: \"Array Property Test\",\n },\n \"geopoint\": {\n type: {\n type: \"struct\",\n structDefinition: { lat: \"double\", lng: \"double\" },\n },\n displayName: \"geopoint\",\n },\n },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.interface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.foo\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"arrayProp\": {\n \"column\": \"arrayProp\",\n \"type\": \"column\",\n },\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"geopoint\": {\n \"struct\": {\n \"column\": \"geopoint\",\n \"mapping\": {\n \"lat\": {\n \"apiName\": \"lat\",\n \"mappings\": {},\n },\n \"lng\": {\n \"apiName\": \"lng\",\n \"mappings\": {},\n },\n },\n },\n \"type\": \"struct\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [\n {\n \"interfaceTypeApiName\": \"com.palantir.interface\",\n \"linksV2\": {},\n \"properties\": {\n \"com.palantir.foo\": {\n \"propertyTypeRid\": \"bar\",\n },\n },\n \"propertiesV2\": {},\n },\n ],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"arrayProp\": {\n \"apiName\": \"arrayProp\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Array Property Test\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"geopoint\": {\n \"apiName\": \"geopoint\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"geopoint\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"lat\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lat\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"lng\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lng\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"Explicit datasource definitions are properly defined\", () => {\n const datasetBackedObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"datasetBackedObject\",\n pluralDisplayName: \"datasetBackedObject\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n datasources: [{ type: \"dataset\" }],\n });\n\n const streamBackedObjectNoRetention = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"streamBackedObjectNoRetention\",\n pluralDisplayName: \"streamBackedObjectNoRetention\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n datasources: [{ type: \"stream\" }],\n });\n\n const streamBackedObjectWithRetention = defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{ type: \"stream\", retentionPeriod: \"PT1H\" }],\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.buzz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"buzz\": \"buzz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"time\": {\n \"window\": \"PT1H\",\n },\n \"type\": \"time\",\n },\n \"streamLocator\": \"com.palantir.buzz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.buzz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.buzz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectWithRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectWithRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"buzz\",\n ],\n \"propertyTypes\": {\n \"buzz\": {\n \"apiName\": \"buzz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"buzz\",\n },\n },\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectNoRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectNoRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"fizz\",\n },\n },\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"datasetBackedObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"datasetBackedObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Restricted view datasources are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"restrictedView\" }],\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"restrictedViewV2\": {\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n \"restrictedViewRid\": \"com.palantir.foo\",\n },\n \"type\": \"restrictedViewV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Edit only properties are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: {\n \"bar\": {\n type: \"string\",\n editOnly: true,\n },\n \"fizz\": {\n type: \"string\",\n },\n },\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"editOnly\": {},\n \"type\": \"editOnly\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Fails if edit only property is primary key\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\", editOnly: true } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property bar on object foo cannot be edit-only]`,\n );\n });\n\n it(\"Fail if stream retention period is not ISO 8601 compliant\", () => {\n expect(() =>\n defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{\n type: \"stream\",\n retentionPeriod: \"bad retention period string\",\n }],\n })\n ).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Retention period \"bad retention period string\" on object \"buzz\" is not a valid ISO 8601 duration string]`,\n );\n });\n\n it(\"Property-level datasources are properly defined\", () => {\n const exampleObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObject\",\n pluralDisplayName: \"exampleObject\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"fizz\": { type: \"mediaReference\" },\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"stream\" }],\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"mediaSetView\": {\n \"assumedMarkings\": [],\n \"mediaSetViewLocator\": \"com.palantir.fizz.fizz\",\n \"properties\": [\n \"fizz\",\n ],\n },\n \"type\": \"mediaSetView\",\n },\n \"datasourceName\": \"fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"exampleObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"mediaReference\": {},\n \"type\": \"mediaReference\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Derived datasources are properly defined\", () => {\n const passenger = defineObject({\n displayName: \"Passenger\",\n pluralDisplayName: \"Passengers\",\n apiName: \"passenger\",\n primaryKeyPropertyApiName: \"name\",\n titlePropertyApiName: \"name\",\n editsEnabled: true,\n properties: {\n \"name\": {\n type: \"string\",\n displayName: \"Name\",\n },\n \"flight_id\": {\n type: \"string\",\n displayName: \"Flight ID\",\n },\n },\n });\n const flightToPassengers = defineLink({\n apiName: \"flightToPassengersLink\",\n one: {\n object: \"com.palantir.flight\",\n metadata: {\n apiName: \"flightFromPassengers\",\n },\n },\n toMany: {\n object: passenger.apiName,\n metadata: {\n apiName: \"passengersFromFlight\",\n },\n },\n manyForeignKeyProperty: \"flight_id\",\n });\n expect(() => {\n defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n numPassengers: {\n type: \"string\",\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n numPassengers: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Property 'numPassengers' on object 'flight' is not collectible]`,\n );\n const flight = defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n editsEnabled: true,\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n passengersList: {\n type: \"string\",\n array: true,\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n passengersList: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n defineCreateObjectAction({\n displayName: \"Create flight\",\n objectType: flight,\n });\n defineDeleteObjectAction({\n displayName: \"Delete flight\",\n objectType: flight,\n });\n defineCreateObjectAction({\n displayName: \"Create passenger\",\n objectType: passenger,\n });\n defineDeleteObjectAction({\n displayName: \"Delete passenger\",\n objectType: passenger,\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {\n \"com.palantir.create-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.flight\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"id\",\n ],\n \"parameters\": {\n \"id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ID\",\n \"typeClasses\": [],\n },\n \"id\": \"id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.create-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n \"propertyValues\": {\n \"flight_id\": {\n \"parameterId\": \"flight_id\",\n \"type\": \"parameterId\",\n },\n \"name\": {\n \"parameterId\": \"name\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"flight_id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n \"name\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"name\",\n \"flight_id\",\n ],\n \"parameters\": {\n \"flight_id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Flight ID\",\n \"typeClasses\": [],\n },\n \"id\": \"flight_id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"name\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Name\",\n \"typeClasses\": [],\n },\n \"id\": \"name\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.flight\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n },\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"flight-to-passengers-link\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"passengersFromFlight\",\n \"displayMetadata\": {\n \"displayName\": \"PassengersFromFlight\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"PassengersFromFlights\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.passenger\",\n \"objectTypeRidOneSide\": \"com.palantir.flight\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"id\",\n \"object\": \"com.palantir.flight\",\n },\n \"to\": {\n \"apiName\": \"flight_id\",\n \"object\": \"com.palantir.passenger\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"flightFromPassengers\",\n \"displayMetadata\": {\n \"displayName\": \"FlightFromPassengers\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"FlightFromPassengers\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"flight-to-passengers-link\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.flight\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"derived\": {\n \"definition\": {\n \"aggregatedProperties\": {\n \"linkDefinition\": {\n \"multiHopLink\": {\n \"steps\": [\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"flight-to-passengers-link\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"SOURCE\",\n },\n \"type\": \"searchAround\",\n },\n ],\n },\n \"type\": \"multiHopLink\",\n },\n \"propertyTypeMapping\": {\n \"passengersList\": {\n \"collectList\": {\n \"limit\": 100,\n \"linkedProperty\": {\n \"propertyType\": \"name\",\n \"type\": \"propertyType\",\n },\n },\n \"type\": \"collectList\",\n },\n },\n },\n \"type\": \"aggregatedProperties\",\n },\n },\n \"type\": \"derived\",\n },\n \"datasourceName\": \"com.palantir.flight.derived.0\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.flight\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.flight\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.flight\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Flights\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"id\",\n ],\n \"propertyTypes\": {\n \"id\": {\n \"apiName\": \"id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"passengersList\": {\n \"apiName\": \"passengersList\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"id\",\n },\n },\n \"com.palantir.passenger\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.passenger\",\n \"propertyMapping\": {\n \"flight_id\": {\n \"column\": \"flight_id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.passenger\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.passenger\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passenger\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"name\",\n ],\n \"propertyTypes\": {\n \"flight_id\": {\n \"apiName\": \"flight_id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"name\": {\n \"apiName\": \"name\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Name\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"name\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n});\n"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,sDAAsD,EAAE,MAAM;IACnCK,YAAY,CAAC;MACvCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,qBAAqB;MAClCC,iBAAiB,EAAE,qBAAqB;MACxCC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QAAE,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MACzCgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAU,CAAC;IACnC,CAAC,CAAC;IAEoCV,YAAY,CAAC;MACjDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,+BAA+B;MAC5CC,iBAAiB,EAAE,+BAA+B;MAClDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS,CAAC;QAAE,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAAE,CAAC;MACrEgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEsCV,YAAY,CAAC;MACnDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE,QAAQ;QAAEiB,eAAe,EAAE;MAAO,CAAC;IAC3D,CAAC,CAAC;IAEFjC,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAACsB,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,kDAAkD,EAAE,MAAM;IAC5CK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAiB,CAAC;IAC1C,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,2CAA2C,EAAE,MAAM;IACrCK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QACV,KAAK,EAAE;UACLC,IAAI,EAAE,QAAQ;UACdkB,QAAQ,EAAE;QACZ,CAAC;QACD,MAAM,EAAE;UACNlB,IAAI,EAAE;QACR;MACF;IACF,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrDD,MAAM,CAAC,MAAM;MACXM,YAAY,CAAC;QACXI,oBAAoB,EAAE,KAAK;QAC3BC,WAAW,EAAE,KAAK;QAClBC,iBAAiB,EAAE,KAAK;QACxBC,OAAO,EAAE,KAAK;QACdC,yBAAyB,EAAE,KAAK;QAChCC,UAAU,EAAE;UAAE,KAAK,EAAE;YAAEC,IAAI,EAAE,QAAQ;YAAEkB,QAAQ,EAAE;UAAK;QAAE;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC,CAACjB,kCAAkC,CACnC,uFACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,2DAA2D,EAAE,MAAM;IACpED,MAAM,CAAC,MACLM,YAAY,CAAC;MACXI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CgB,WAAW,EAAE,CAAC;QACZhB,IAAI,EAAE,QAAQ;QACdiB,eAAe,EAAE;MACnB,CAAC;IACH,CAAC,CACH,CAAC,CAAChB,kCAAkC,CAClC,oIACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IACpCK,YAAY,CAAC;MACjCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,eAAe;MAC5BC,iBAAiB,EAAE,eAAe;MAClCC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAiB,CAAC;QAClC,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"objects.test.js","names":["beforeEach","describe","expect","it","defineCreateObjectAction","defineDeleteObjectAction","defineInterface","defineLink","defineObject","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","titlePropertyApiName","displayName","pluralDisplayName","apiName","primaryKeyPropertyApiName","properties","type","toThrowErrorMatchingInlineSnapshot","spt","sample","foo","implementsInterfaces","implements","propertyMapping","interfaceProperty","mapsTo","array","structDefinition","lat","lng","ontology","toMatchInlineSnapshot","datasources","retentionPeriod","editOnly","passenger","editsEnabled","flightToPassengers","one","object","metadata","toMany","manyForeignKeyProperty","id","numPassengers","linkDefinition","linkType","property","limit","flight","passengersList","objectType","link_person_to_parent","visibility","description","status","side","siblingIds"],"sources":["objects.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineCreateObjectAction } from \"../defineCreateObjectAction.js\";\nimport { defineDeleteObjectAction } from \"../defineDeleteObjectAction.js\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineLink } from \"../defineLink.js\";\nimport { defineObject } from \"../defineObject.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Object Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails if the api name is invalid\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo_with_underscores\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Invalid API name foo_with_underscores. API names must match the regex /^([a-zA-Z][a-zA-Z0-9\\\\\\\\-]*)$/.]`,\n );\n });\n it(\"Fails if any property reference does not exist\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Title property fizz is not defined on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"bar\": { type: \"string\" } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property fizz does not exist on object foo]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"fizz\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Object property mapped to interface does not exist. Object Property Mapped: fizz\\n]`,\n );\n\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"com.palantir.fizz\",\n mapsTo: \"bar\",\n }, {\n interfaceProperty: \"com.palantir.foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: \\nOntology Definition Error: Interface property com.palantir.fizz referenced in foo object does not exist\\n]`,\n );\n });\n\n it(\"Objects properly defined\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"foo\",\n type: \"string\",\n });\n\n const sample = defineInterface({\n apiName: \"interface\",\n properties: { foo: spt },\n });\n\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\", displayName: \"Bar\" },\n \"arrayProp\": {\n type: \"string\",\n array: true,\n displayName: \"Array Property Test\",\n },\n \"geopoint\": {\n type: {\n type: \"struct\",\n structDefinition: { lat: \"double\", lng: \"double\" },\n },\n displayName: \"geopoint\",\n },\n },\n implementsInterfaces: [{\n implements: sample,\n propertyMapping: [{\n interfaceProperty: \"foo\",\n mapsTo: \"bar\",\n }],\n }],\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.interface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.interface\",\n \"displayMetadata\": {\n \"description\": \"interface\",\n \"displayName\": \"interface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.foo\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {},\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"arrayProp\": {\n \"column\": \"arrayProp\",\n \"type\": \"column\",\n },\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n \"geopoint\": {\n \"struct\": {\n \"column\": \"geopoint\",\n \"mapping\": {\n \"lat\": {\n \"apiName\": \"lat\",\n \"mappings\": {},\n },\n \"lng\": {\n \"apiName\": \"lng\",\n \"mappings\": {},\n },\n },\n },\n \"type\": \"struct\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [\n {\n \"interfaceTypeApiName\": \"com.palantir.interface\",\n \"linksV2\": {},\n \"properties\": {\n \"com.palantir.foo\": {\n \"propertyTypeRid\": \"bar\",\n },\n },\n \"propertiesV2\": {},\n },\n ],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"arrayProp\": {\n \"apiName\": \"arrayProp\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Array Property Test\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"geopoint\": {\n \"apiName\": \"geopoint\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"geopoint\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"lat\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lat\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"lng\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"lng\",\n },\n \"fieldType\": {\n \"double\": {},\n \"type\": \"double\",\n },\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {\n \"com.palantir.foo\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.foo\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"Explicit datasource definitions are properly defined\", () => {\n const datasetBackedObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"datasetBackedObject\",\n pluralDisplayName: \"datasetBackedObject\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\" } },\n datasources: [{ type: \"dataset\" }],\n });\n\n const streamBackedObjectNoRetention = defineObject({\n titlePropertyApiName: \"fizz\",\n displayName: \"streamBackedObjectNoRetention\",\n pluralDisplayName: \"streamBackedObjectNoRetention\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: { \"fizz\": { type: \"string\" }, \"bar\": { type: \"string\" } },\n datasources: [{ type: \"stream\" }],\n });\n\n const streamBackedObjectWithRetention = defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{ type: \"stream\", retentionPeriod: \"PT1H\" }],\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.buzz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"buzz\": \"buzz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"time\": {\n \"window\": \"PT1H\",\n },\n \"type\": \"time\",\n },\n \"streamLocator\": \"com.palantir.buzz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.buzz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.buzz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectWithRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectWithRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"buzz\",\n ],\n \"propertyTypes\": {\n \"buzz\": {\n \"apiName\": \"buzz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Buzz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"buzz\",\n },\n },\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"streamBackedObjectNoRetention\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"streamBackedObjectNoRetention\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"fizz\",\n },\n },\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"datasetBackedObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"datasetBackedObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Restricted view datasources are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"restrictedView\" }],\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"restrictedViewV2\": {\n \"propertyMapping\": {\n \"bar\": {\n \"column\": \"bar\",\n \"type\": \"column\",\n },\n },\n \"restrictedViewRid\": \"com.palantir.foo\",\n },\n \"type\": \"restrictedViewV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Edit only properties are properly defined\", () => {\n const object = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"fizz\",\n properties: {\n \"bar\": {\n type: \"string\",\n editOnly: true,\n },\n \"fizz\": {\n type: \"string\",\n },\n },\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.foo\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.foo\",\n \"propertyMapping\": {\n \"bar\": {\n \"editOnly\": {},\n \"type\": \"editOnly\",\n },\n \"fizz\": {\n \"column\": \"fizz\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.foo\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.foo\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Foo\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Foo\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"fizz\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n\n it(\"Fails if edit only property is primary key\", () => {\n expect(() => {\n defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"Foo\",\n pluralDisplayName: \"Foo\",\n apiName: \"foo\",\n primaryKeyPropertyApiName: \"bar\",\n properties: { \"bar\": { type: \"string\", editOnly: true } },\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Primary key property bar on object foo cannot be edit-only]`,\n );\n });\n\n it(\"Fail if stream retention period is not ISO 8601 compliant\", () => {\n expect(() =>\n defineObject({\n titlePropertyApiName: \"buzz\",\n displayName: \"streamBackedObjectWithRetention\",\n pluralDisplayName: \"streamBackedObjectWithRetention\",\n apiName: \"buzz\",\n primaryKeyPropertyApiName: \"buzz\",\n properties: { \"buzz\": { type: \"string\" } },\n datasources: [{\n type: \"stream\",\n retentionPeriod: \"bad retention period string\",\n }],\n })\n ).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Retention period \"bad retention period string\" on object \"buzz\" is not a valid ISO 8601 duration string]`,\n );\n });\n\n it(\"Property-level datasources are properly defined\", () => {\n const exampleObject = defineObject({\n titlePropertyApiName: \"bar\",\n displayName: \"exampleObject\",\n pluralDisplayName: \"exampleObject\",\n apiName: \"fizz\",\n primaryKeyPropertyApiName: \"bar\",\n properties: {\n \"fizz\": { type: \"mediaReference\" },\n \"bar\": { type: \"string\" },\n },\n datasources: [{ type: \"stream\" }],\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {\n \"com.palantir.fizz\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"mediaSetView\": {\n \"assumedMarkings\": [],\n \"mediaSetViewLocator\": \"com.palantir.fizz.fizz\",\n \"properties\": [\n \"fizz\",\n ],\n },\n \"type\": \"mediaSetView\",\n },\n \"datasourceName\": \"fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"streamV2\": {\n \"propertyMapping\": {\n \"bar\": \"bar\",\n \"fizz\": \"fizz\",\n },\n \"propertySecurityGroups\": undefined,\n \"retentionPolicy\": {\n \"none\": {},\n \"type\": \"none\",\n },\n \"streamLocator\": \"com.palantir.fizz\",\n },\n \"type\": \"streamV2\",\n },\n \"datasourceName\": \"com.palantir.fizz\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.fizz\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"exampleObject\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"exampleObject\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"bar\",\n ],\n \"propertyTypes\": {\n \"bar\": {\n \"apiName\": \"bar\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Bar\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"fizz\": {\n \"apiName\": \"fizz\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Fizz\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"mediaReference\": {},\n \"type\": \"mediaReference\",\n },\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"bar\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Derived datasources are properly defined\", () => {\n const passenger = defineObject({\n displayName: \"Passenger\",\n pluralDisplayName: \"Passengers\",\n apiName: \"passenger\",\n primaryKeyPropertyApiName: \"name\",\n titlePropertyApiName: \"name\",\n editsEnabled: true,\n properties: {\n \"name\": {\n type: \"string\",\n displayName: \"Name\",\n },\n \"flight_id\": {\n type: \"string\",\n displayName: \"Flight ID\",\n },\n },\n });\n const flightToPassengers = defineLink({\n apiName: \"flightToPassengersLink\",\n one: {\n object: \"com.palantir.flight\",\n metadata: {\n apiName: \"flightFromPassengers\",\n },\n },\n toMany: {\n object: passenger.apiName,\n metadata: {\n apiName: \"passengersFromFlight\",\n },\n },\n manyForeignKeyProperty: \"flight_id\",\n });\n expect(() => {\n defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n numPassengers: {\n type: \"string\",\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n numPassengers: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Property 'numPassengers' on object 'flight' is not collectible]`,\n );\n const flight = defineObject({\n displayName: \"Flight\",\n pluralDisplayName: \"Flights\",\n apiName: \"flight\",\n primaryKeyPropertyApiName: \"id\",\n titlePropertyApiName: \"id\",\n editsEnabled: true,\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n passengersList: {\n type: \"string\",\n array: true,\n displayName: \"Passengers\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [{\n linkType: flightToPassengers,\n }],\n propertyMapping: {\n passengersList: {\n type: \"collectList\",\n property: \"name\",\n limit: 100,\n },\n },\n },\n ],\n });\n defineCreateObjectAction({\n displayName: \"Create flight\",\n objectType: flight,\n });\n defineDeleteObjectAction({\n displayName: \"Delete flight\",\n objectType: flight,\n });\n defineCreateObjectAction({\n displayName: \"Create passenger\",\n objectType: passenger,\n });\n defineDeleteObjectAction({\n displayName: \"Delete passenger\",\n objectType: passenger,\n });\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {\n \"com.palantir.create-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.flight\",\n \"propertyValues\": {\n \"id\": {\n \"parameterId\": \"id\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"id\",\n ],\n \"parameters\": {\n \"id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"ID\",\n \"typeClasses\": [],\n },\n \"id\": \"id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.create-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"addObjectRule\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n \"propertyValues\": {\n \"flight_id\": {\n \"parameterId\": \"flight_id\",\n \"type\": \"parameterId\",\n },\n \"name\": {\n \"parameterId\": \"name\",\n \"type\": \"parameterId\",\n },\n },\n \"structFieldValues\": {},\n },\n \"type\": \"addObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"flight_id\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n \"name\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"textInput\": {},\n \"type\": \"textInput\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"text\": {\n \"text\": {},\n \"type\": \"text\",\n },\n \"type\": \"text\",\n },\n \"required\": {\n \"notRequired\": {},\n \"type\": \"notRequired\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.create-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Create passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"name\",\n \"flight_id\",\n ],\n \"parameters\": {\n \"flight_id\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Flight ID\",\n \"typeClasses\": [],\n },\n \"id\": \"flight_id\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n \"name\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Name\",\n \"typeClasses\": [],\n },\n \"id\": \"name\",\n \"type\": {\n \"string\": {},\n \"type\": \"string\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-flight\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-flight\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete flight\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.flight\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.flight\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"com.palantir.delete-object-passenger\": {\n \"actionType\": {\n \"actionTypeLogic\": {\n \"logic\": {\n \"rules\": [\n {\n \"deleteObjectRule\": {\n \"objectToDelete\": \"objectToDeleteParameter\",\n },\n \"type\": \"deleteObjectRule\",\n },\n ],\n },\n \"validation\": {\n \"actionTypeLevelValidation\": {\n \"rules\": {\n \"0\": {\n \"condition\": {\n \"true\": {},\n \"type\": \"true\",\n },\n \"displayMetadata\": {\n \"failureMessage\": \"\",\n \"typeClasses\": [],\n },\n },\n },\n },\n \"parameterValidations\": {\n \"objectToDeleteParameter\": {\n \"conditionalOverrides\": [],\n \"defaultValidation\": {\n \"display\": {\n \"renderHint\": {\n \"dropdown\": {},\n \"type\": \"dropdown\",\n },\n \"visibility\": {\n \"editable\": {},\n \"type\": \"editable\",\n },\n },\n \"validation\": {\n \"allowedValues\": {\n \"objectQuery\": {\n \"objectQuery\": {},\n \"type\": \"objectQuery\",\n },\n \"type\": \"objectQuery\",\n },\n \"required\": {\n \"required\": {},\n \"type\": \"required\",\n },\n },\n },\n },\n },\n \"sectionValidations\": {},\n },\n },\n \"metadata\": {\n \"apiName\": \"com.palantir.delete-object-passenger\",\n \"displayMetadata\": {\n \"configuration\": {\n \"defaultLayout\": \"FORM\",\n \"displayAndFormat\": {\n \"table\": {\n \"columnWidthByParameterRid\": {},\n \"enableFileImport\": true,\n \"fitHorizontally\": false,\n \"frozenColumnCount\": 0,\n \"rowHeightInLines\": 1,\n },\n },\n \"enableLayoutUserSwitch\": false,\n },\n \"description\": \"\",\n \"displayName\": \"Delete passenger\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#000000\",\n \"locator\": \"edit\",\n },\n \"type\": \"blueprint\",\n },\n \"successMessage\": [],\n \"typeClasses\": [],\n },\n \"entities\": {\n \"affectedInterfaceTypes\": [],\n \"affectedLinkTypes\": [],\n \"affectedObjectTypes\": [\n \"com.palantir.passenger\",\n ],\n \"typeGroups\": [],\n },\n \"formContentOrdering\": [],\n \"parameterOrdering\": [\n \"objectToDeleteParameter\",\n ],\n \"parameters\": {\n \"objectToDeleteParameter\": {\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"Delete object\",\n \"typeClasses\": [],\n },\n \"id\": \"objectToDeleteParameter\",\n \"type\": {\n \"objectReference\": {\n \"objectTypeId\": \"com.palantir.passenger\",\n },\n \"type\": \"objectReference\",\n },\n },\n },\n \"sections\": {},\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n },\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"flight-to-passengers-link\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"passengersFromFlight\",\n \"displayMetadata\": {\n \"displayName\": \"PassengersFromFlight\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"PassengersFromFlights\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.passenger\",\n \"objectTypeRidOneSide\": \"com.palantir.flight\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"id\",\n \"object\": \"com.palantir.flight\",\n },\n \"to\": {\n \"apiName\": \"flight_id\",\n \"object\": \"com.palantir.passenger\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"flightFromPassengers\",\n \"displayMetadata\": {\n \"displayName\": \"FlightFromPassengers\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"FlightFromPassengers\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"flight-to-passengers-link\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.flight\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"derived\": {\n \"definition\": {\n \"aggregatedProperties\": {\n \"linkDefinition\": {\n \"multiHopLink\": {\n \"steps\": [\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"flight-to-passengers-link\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"SOURCE\",\n },\n \"type\": \"searchAround\",\n },\n ],\n },\n \"type\": \"multiHopLink\",\n },\n \"propertyTypeMapping\": {\n \"passengersList\": {\n \"collectList\": {\n \"limit\": 100,\n \"linkedProperty\": {\n \"propertyType\": \"name\",\n \"type\": \"propertyType\",\n },\n },\n \"type\": \"collectList\",\n },\n },\n },\n \"type\": \"aggregatedProperties\",\n },\n },\n \"type\": \"derived\",\n },\n \"datasourceName\": \"com.palantir.flight.derived.0\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.flight\",\n \"propertyMapping\": {\n \"id\": {\n \"column\": \"id\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.flight\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.flight\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Flights\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"id\",\n ],\n \"propertyTypes\": {\n \"id\": {\n \"apiName\": \"id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"passengersList\": {\n \"apiName\": \"passengersList\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"id\",\n },\n },\n \"com.palantir.passenger\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.passenger\",\n \"propertyMapping\": {\n \"flight_id\": {\n \"column\": \"flight_id\",\n \"type\": \"column\",\n },\n \"name\": {\n \"column\": \"name\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.passenger\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": true,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.passenger\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Passenger\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Passengers\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"name\",\n ],\n \"propertyTypes\": {\n \"flight_id\": {\n \"apiName\": \"flight_id\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Flight ID\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"name\": {\n \"apiName\": \"name\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Name\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"name\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n it(\"Self-referential links on derived datasources work\", () => {\n const link_person_to_parent = defineLink({\n apiName: \"person-to-parent\",\n manyForeignKeyProperty: \"parentFk\",\n one: {\n object: \"com.palantir.person\",\n metadata: {\n apiName: \"parent\",\n displayName: \"Parent\",\n pluralDisplayName: \"Parents\",\n visibility: \"NORMAL\",\n },\n },\n toMany: {\n object: \"com.palantir.person\",\n metadata: {\n apiName: \"child\",\n displayName: \"Child\",\n pluralDisplayName: \"Children\",\n visibility: \"NORMAL\",\n },\n },\n });\n\n const obj_person = defineObject({\n displayName: \"Person\",\n pluralDisplayName: \"Persons\",\n description: \"person\",\n apiName: \"person\",\n titlePropertyApiName: \"pk\",\n primaryKeyPropertyApiName: \"pk\",\n properties: {\n \"pk\": { displayName: \"pk\", type: \"string\", status: \"experimental\" },\n \"parentFk\": {\n displayName: \"Parent FK\",\n type: \"string\",\n status: \"experimental\",\n },\n \"siblingIds\": {\n displayName: \"Sibling IDs\",\n type: \"string\",\n array: true,\n status: \"experimental\",\n },\n },\n datasources: [\n { type: \"dataset\" },\n {\n type: \"derived\",\n linkDefinition: [\n {\n linkType: link_person_to_parent,\n side: \"TARGET\",\n },\n {\n linkType: link_person_to_parent,\n side: \"SOURCE\",\n },\n ],\n propertyMapping: {\n siblingIds: {\n type: \"collectList\",\n property: \"pk\",\n limit: 100,\n },\n },\n },\n ],\n });\n\n expect(dumpOntologyFullMetadata()).toMatchInlineSnapshot(`\n {\n \"importedOntology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n },\n \"importedValueTypes\": {\n \"valueTypes\": [],\n },\n \"ontology\": {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {},\n \"linkTypes\": {\n \"person-to-parent\": {\n \"datasources\": [],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"linkType\": {\n \"definition\": {\n \"oneToMany\": {\n \"cardinalityHint\": \"ONE_TO_MANY\",\n \"manyToOneLinkMetadata\": {\n \"apiName\": \"child\",\n \"displayMetadata\": {\n \"displayName\": \"Child\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Children\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n \"objectTypeRidManySide\": \"com.palantir.person\",\n \"objectTypeRidOneSide\": \"com.palantir.person\",\n \"oneSidePrimaryKeyToManySidePropertyMapping\": [\n {\n \"from\": {\n \"apiName\": \"pk\",\n \"object\": \"com.palantir.person\",\n },\n \"to\": {\n \"apiName\": \"parentFk\",\n \"object\": \"com.palantir.person\",\n },\n },\n ],\n \"oneToManyLinkMetadata\": {\n \"apiName\": \"parent\",\n \"displayMetadata\": {\n \"displayName\": \"Parent\",\n \"groupDisplayName\": \"\",\n \"pluralDisplayName\": \"Parents\",\n \"visibility\": \"NORMAL\",\n },\n \"typeClasses\": [],\n },\n },\n \"type\": \"oneToMany\",\n },\n \"id\": \"person-to-parent\",\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"objectTypes\": {\n \"com.palantir.person\": {\n \"datasources\": [\n {\n \"datasource\": {\n \"derived\": {\n \"definition\": {\n \"aggregatedProperties\": {\n \"linkDefinition\": {\n \"multiHopLink\": {\n \"steps\": [\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"person-to-parent\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"TARGET\",\n },\n \"type\": \"searchAround\",\n },\n {\n \"searchAround\": {\n \"linkTypeIdentifier\": {\n \"linkType\": \"person-to-parent\",\n \"type\": \"linkType\",\n },\n \"linkTypeSide\": \"SOURCE\",\n },\n \"type\": \"searchAround\",\n },\n ],\n },\n \"type\": \"multiHopLink\",\n },\n \"propertyTypeMapping\": {\n \"siblingIds\": {\n \"collectList\": {\n \"limit\": 100,\n \"linkedProperty\": {\n \"propertyType\": \"pk\",\n \"type\": \"propertyType\",\n },\n },\n \"type\": \"collectList\",\n },\n },\n },\n \"type\": \"aggregatedProperties\",\n },\n },\n \"type\": \"derived\",\n },\n \"datasourceName\": \"com.palantir.person.derived.0\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n {\n \"datasource\": {\n \"datasetV2\": {\n \"datasetRid\": \"com.palantir.person\",\n \"propertyMapping\": {\n \"parentFk\": {\n \"column\": \"parentFk\",\n \"type\": \"column\",\n },\n \"pk\": {\n \"column\": \"pk\",\n \"type\": \"column\",\n },\n },\n },\n \"type\": \"datasetV2\",\n },\n \"datasourceName\": \"com.palantir.person\",\n \"editsConfiguration\": {\n \"onlyAllowPrivilegedEdits\": false,\n },\n \"redacted\": false,\n },\n ],\n \"entityMetadata\": {\n \"arePatchesEnabled\": false,\n },\n \"objectType\": {\n \"allImplementsInterfaces\": {},\n \"apiName\": \"com.palantir.person\",\n \"displayMetadata\": {\n \"description\": \"person\",\n \"displayName\": \"Person\",\n \"groupDisplayName\": undefined,\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#2D72D2\",\n \"locator\": \"cube\",\n },\n \"type\": \"blueprint\",\n },\n \"pluralDisplayName\": \"Persons\",\n \"visibility\": \"NORMAL\",\n },\n \"implementsInterfaces2\": [],\n \"primaryKeys\": [\n \"pk\",\n ],\n \"propertyTypes\": {\n \"parentFk\": {\n \"apiName\": \"parentFk\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Parent FK\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"experimental\": {},\n \"type\": \"experimental\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"pk\": {\n \"apiName\": \"pk\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"pk\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"experimental\": {},\n \"type\": \"experimental\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n \"siblingIds\": {\n \"apiName\": \"siblingIds\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"Sibling IDs\",\n \"visibility\": \"NORMAL\",\n },\n \"indexedForSearch\": true,\n \"inlineAction\": undefined,\n \"ruleSetBinding\": undefined,\n \"sharedPropertyTypeApiName\": undefined,\n \"sharedPropertyTypeRid\": undefined,\n \"status\": {\n \"experimental\": {},\n \"type\": \"experimental\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"redacted\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n \"titlePropertyTypeRid\": \"pk\",\n },\n },\n },\n \"sharedPropertyTypes\": {},\n },\n \"randomnessKey\": undefined,\n \"valueTypes\": {\n \"valueTypes\": [],\n },\n }\n `);\n });\n});\n"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,sDAAsD,EAAE,MAAM;IACnCK,YAAY,CAAC;MACvCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,qBAAqB;MAClCC,iBAAiB,EAAE,qBAAqB;MACxCC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QAAE,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MACzCgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAU,CAAC;IACnC,CAAC,CAAC;IAEoCV,YAAY,CAAC;MACjDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,+BAA+B;MAC5CC,iBAAiB,EAAE,+BAA+B;MAClDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS,CAAC;QAAE,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAAE,CAAC;MACrEgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEsCV,YAAY,CAAC;MACnDI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE,QAAQ;QAAEiB,eAAe,EAAE;MAAO,CAAC;IAC3D,CAAC,CAAC;IAEFjC,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAACsB,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,kDAAkD,EAAE,MAAM;IAC5CK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAiB,CAAC;IAC1C,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,2CAA2C,EAAE,MAAM;IACrCK,YAAY,CAAC;MAC1BI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE,KAAK;MACxBC,OAAO,EAAE,KAAK;MACdC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QACV,KAAK,EAAE;UACLC,IAAI,EAAE,QAAQ;UACdkB,QAAQ,EAAE;QACZ,CAAC;QACD,MAAM,EAAE;UACNlB,IAAI,EAAE;QACR;MACF;IACF,CAAC,CAAC;IACFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEF9B,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrDD,MAAM,CAAC,MAAM;MACXM,YAAY,CAAC;QACXI,oBAAoB,EAAE,KAAK;QAC3BC,WAAW,EAAE,KAAK;QAClBC,iBAAiB,EAAE,KAAK;QACxBC,OAAO,EAAE,KAAK;QACdC,yBAAyB,EAAE,KAAK;QAChCC,UAAU,EAAE;UAAE,KAAK,EAAE;YAAEC,IAAI,EAAE,QAAQ;YAAEkB,QAAQ,EAAE;UAAK;QAAE;MAC1D,CAAC,CAAC;IACJ,CAAC,CAAC,CAACjB,kCAAkC,CACnC,uFACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,2DAA2D,EAAE,MAAM;IACpED,MAAM,CAAC,MACLM,YAAY,CAAC;MACXI,oBAAoB,EAAE,MAAM;MAC5BC,WAAW,EAAE,iCAAiC;MAC9CC,iBAAiB,EAAE,iCAAiC;MACpDC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,MAAM;MACjCC,UAAU,EAAE;QAAE,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAS;MAAE,CAAC;MAC1CgB,WAAW,EAAE,CAAC;QACZhB,IAAI,EAAE,QAAQ;QACdiB,eAAe,EAAE;MACnB,CAAC;IACH,CAAC,CACH,CAAC,CAAChB,kCAAkC,CAClC,oIACF,CAAC;EACH,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IACpCK,YAAY,CAAC;MACjCI,oBAAoB,EAAE,KAAK;MAC3BC,WAAW,EAAE,eAAe;MAC5BC,iBAAiB,EAAE,eAAe;MAClCC,OAAO,EAAE,MAAM;MACfC,yBAAyB,EAAE,KAAK;MAChCC,UAAU,EAAE;QACV,MAAM,EAAE;UAAEC,IAAI,EAAE;QAAiB,CAAC;QAClC,KAAK,EAAE;UAAEA,IAAI,EAAE;QAAS;MAC1B,CAAC;MACDgB,WAAW,EAAE,CAAC;QAAEhB,IAAI,EAAE;MAAS,CAAC;IAClC,CAAC,CAAC;IAEFhB,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EACF9B,EAAE,CAAC,0CAA0C,EAAE,MAAM;IACnD,MAAMkC,SAAS,GAAG7B,YAAY,CAAC;MAC7BK,WAAW,EAAE,WAAW;MACxBC,iBAAiB,EAAE,YAAY;MAC/BC,OAAO,EAAE,WAAW;MACpBC,yBAAyB,EAAE,MAAM;MACjCJ,oBAAoB,EAAE,MAAM;MAC5B0B,YAAY,EAAE,IAAI;MAClBrB,UAAU,EAAE;QACV,MAAM,EAAE;UACNC,IAAI,EAAE,QAAQ;UACdL,WAAW,EAAE;QACf,CAAC;QACD,WAAW,EAAE;UACXK,IAAI,EAAE,QAAQ;UACdL,WAAW,EAAE;QACf;MACF;IACF,CAAC,CAAC;IACF,MAAM0B,kBAAkB,GAAGhC,UAAU,CAAC;MACpCQ,OAAO,EAAE,wBAAwB;MACjCyB,GAAG,EAAE;QACHC,MAAM,EAAE,qBAAqB;QAC7BC,QAAQ,EAAE;UACR3B,OAAO,EAAE;QACX;MACF,CAAC;MACD4B,MAAM,EAAE;QACNF,MAAM,EAAEJ,SAAS,CAACtB,OAAO;QACzB2B,QAAQ,EAAE;UACR3B,OAAO,EAAE;QACX;MACF,CAAC;MACD6B,sBAAsB,EAAE;IAC1B,CAAC,CAAC;IACF1C,MAAM,CAAC,MAAM;MACXM,YAAY,CAAC;QACXK,WAAW,EAAE,QAAQ;QACrBC,iBAAiB,EAAE,SAAS;QAC5BC,OAAO,EAAE,QAAQ;QACjBC,yBAAyB,EAAE,IAAI;QAC/BJ,oBAAoB,EAAE,IAAI;QAC1BK,UAAU,EAAE;UACV4B,EAAE,EAAE;YACF3B,IAAI,EAAE,QAAQ;YACdL,WAAW,EAAE;UACf,CAAC;UACDiC,aAAa,EAAE;YACb5B,IAAI,EAAE,QAAQ;YACdL,WAAW,EAAE;UACf;QACF,CAAC;QACDqB,WAAW,EAAE,CACX;UAAEhB,IAAI,EAAE;QAAU,CAAC,EACnB;UACEA,IAAI,EAAE,SAAS;UACf6B,cAAc,EAAE,CAAC;YACfC,QAAQ,EAAET;UACZ,CAAC,CAAC;UACFd,eAAe,EAAE;YACfqB,aAAa,EAAE;cACb5B,IAAI,EAAE,aAAa;cACnB+B,QAAQ,EAAE,MAAM;cAChBC,KAAK,EAAE;YACT;UACF;QACF,CAAC;MAEL,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC/B,kCAAkC,CACnC,2FACF,CAAC;IACD,MAAMgC,MAAM,GAAG3C,YAAY,CAAC;MAC1BK,WAAW,EAAE,QAAQ;MACrBC,iBAAiB,EAAE,SAAS;MAC5BC,OAAO,EAAE,QAAQ;MACjBC,yBAAyB,EAAE,IAAI;MAC/BJ,oBAAoB,EAAE,IAAI;MAC1B0B,YAAY,EAAE,IAAI;MAClBrB,UAAU,EAAE;QACV4B,EAAE,EAAE;UACF3B,IAAI,EAAE,QAAQ;UACdL,WAAW,EAAE;QACf,CAAC;QACDuC,cAAc,EAAE;UACdlC,IAAI,EAAE,QAAQ;UACdU,KAAK,EAAE,IAAI;UACXf,WAAW,EAAE;QACf;MACF,CAAC;MACDqB,WAAW,EAAE,CACX;QAAEhB,IAAI,EAAE;MAAU,CAAC,EACnB;QACEA,IAAI,EAAE,SAAS;QACf6B,cAAc,EAAE,CAAC;UACfC,QAAQ,EAAET;QACZ,CAAC,CAAC;QACFd,eAAe,EAAE;UACf2B,cAAc,EAAE;YACdlC,IAAI,EAAE,aAAa;YACnB+B,QAAQ,EAAE,MAAM;YAChBC,KAAK,EAAE;UACT;QACF;MACF,CAAC;IAEL,CAAC,CAAC;IACF9C,wBAAwB,CAAC;MACvBS,WAAW,EAAE,eAAe;MAC5BwC,UAAU,EAAEF;IACd,CAAC,CAAC;IACF9C,wBAAwB,CAAC;MACvBQ,WAAW,EAAE,eAAe;MAC5BwC,UAAU,EAAEF;IACd,CAAC,CAAC;IACF/C,wBAAwB,CAAC;MACvBS,WAAW,EAAE,kBAAkB;MAC/BwC,UAAU,EAAEhB;IACd,CAAC,CAAC;IACFhC,wBAAwB,CAAC;MACvBQ,WAAW,EAAE,kBAAkB;MAC/BwC,UAAU,EAAEhB;IACd,CAAC,CAAC;IACFnC,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EACF9B,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,MAAMmD,qBAAqB,GAAG/C,UAAU,CAAC;MACvCQ,OAAO,EAAE,kBAAkB;MAC3B6B,sBAAsB,EAAE,UAAU;MAClCJ,GAAG,EAAE;QACHC,MAAM,EAAE,qBAAqB;QAC7BC,QAAQ,EAAE;UACR3B,OAAO,EAAE,QAAQ;UACjBF,WAAW,EAAE,QAAQ;UACrBC,iBAAiB,EAAE,SAAS;UAC5ByC,UAAU,EAAE;QACd;MACF,CAAC;MACDZ,MAAM,EAAE;QACNF,MAAM,EAAE,qBAAqB;QAC7BC,QAAQ,EAAE;UACR3B,OAAO,EAAE,OAAO;UAChBF,WAAW,EAAE,OAAO;UACpBC,iBAAiB,EAAE,UAAU;UAC7ByC,UAAU,EAAE;QACd;MACF;IACF,CAAC,CAAC;IAEiB/C,YAAY,CAAC;MAC9BK,WAAW,EAAE,QAAQ;MACrBC,iBAAiB,EAAE,SAAS;MAC5B0C,WAAW,EAAE,QAAQ;MACrBzC,OAAO,EAAE,QAAQ;MACjBH,oBAAoB,EAAE,IAAI;MAC1BI,yBAAyB,EAAE,IAAI;MAC/BC,UAAU,EAAE;QACV,IAAI,EAAE;UAAEJ,WAAW,EAAE,IAAI;UAAEK,IAAI,EAAE,QAAQ;UAAEuC,MAAM,EAAE;QAAe,CAAC;QACnE,UAAU,EAAE;UACV5C,WAAW,EAAE,WAAW;UACxBK,IAAI,EAAE,QAAQ;UACduC,MAAM,EAAE;QACV,CAAC;QACD,YAAY,EAAE;UACZ5C,WAAW,EAAE,aAAa;UAC1BK,IAAI,EAAE,QAAQ;UACdU,KAAK,EAAE,IAAI;UACX6B,MAAM,EAAE;QACV;MACF,CAAC;MACDvB,WAAW,EAAE,CACX;QAAEhB,IAAI,EAAE;MAAU,CAAC,EACnB;QACEA,IAAI,EAAE,SAAS;QACf6B,cAAc,EAAE,CACd;UACEC,QAAQ,EAAEM,qBAAqB;UAC/BI,IAAI,EAAE;QACR,CAAC,EACD;UACEV,QAAQ,EAAEM,qBAAqB;UAC/BI,IAAI,EAAE;QACR,CAAC,CACF;QACDjC,eAAe,EAAE;UACfkC,UAAU,EAAE;YACVzC,IAAI,EAAE,aAAa;YACnB+B,QAAQ,EAAE,IAAI;YACdC,KAAK,EAAE;UACT;QACF;MACF,CAAC;IAEL,CAAC,CAAC;IAEFhD,MAAM,CAACQ,wBAAwB,CAAC,CAAC,CAAC,CAACuB,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}