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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +26 -22
  3. package/build/browser/api/action/ActionParameterConditionalOverride.js.map +1 -1
  4. package/build/browser/api/defineInterface.js.map +1 -1
  5. package/build/browser/api/defineOntology.js +6 -0
  6. package/build/browser/api/defineOntology.js.map +1 -1
  7. package/build/browser/api/defineValueType.js +25 -7
  8. package/build/browser/api/defineValueType.js.map +1 -1
  9. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
  10. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
  11. package/build/browser/api/links/LinkType.js.map +1 -1
  12. package/build/browser/api/object/ObjectTypeStatus.js.map +1 -1
  13. package/build/browser/api/test/actions.test.js +8 -5
  14. package/build/browser/api/test/actions.test.js.map +1 -1
  15. package/build/browser/api/test/interfaces.test.js +12 -0
  16. package/build/browser/api/test/interfaces.test.js.map +1 -1
  17. package/build/browser/api/test/misc.test.js +4 -2
  18. package/build/browser/api/test/misc.test.js.map +1 -1
  19. package/build/browser/api/test/objects.test.js +3 -2
  20. package/build/browser/api/test/objects.test.js.map +1 -1
  21. package/build/browser/api/test/valueTypes.test.js +151 -0
  22. package/build/browser/api/test/valueTypes.test.js.map +1 -1
  23. package/build/browser/cli/main.js +1 -1
  24. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
  25. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  26. package/build/browser/conversion/toMarketplace/convertLink.js +30 -4
  27. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
  28. package/build/browser/conversion/toMarketplace/convertObject.js +6 -5
  29. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
  30. package/build/cjs/index.cjs +86 -22
  31. package/build/cjs/index.cjs.map +1 -1
  32. package/build/cjs/index.d.cts +29 -5
  33. package/build/esm/api/action/ActionParameterConditionalOverride.js.map +1 -1
  34. package/build/esm/api/defineInterface.js.map +1 -1
  35. package/build/esm/api/defineOntology.js +6 -0
  36. package/build/esm/api/defineOntology.js.map +1 -1
  37. package/build/esm/api/defineValueType.js +25 -7
  38. package/build/esm/api/defineValueType.js.map +1 -1
  39. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
  40. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
  41. package/build/esm/api/links/LinkType.js.map +1 -1
  42. package/build/esm/api/object/ObjectTypeStatus.js.map +1 -1
  43. package/build/esm/api/test/actions.test.js +8 -5
  44. package/build/esm/api/test/actions.test.js.map +1 -1
  45. package/build/esm/api/test/interfaces.test.js +12 -0
  46. package/build/esm/api/test/interfaces.test.js.map +1 -1
  47. package/build/esm/api/test/misc.test.js +4 -2
  48. package/build/esm/api/test/misc.test.js.map +1 -1
  49. package/build/esm/api/test/objects.test.js +3 -2
  50. package/build/esm/api/test/objects.test.js.map +1 -1
  51. package/build/esm/api/test/valueTypes.test.js +151 -0
  52. package/build/esm/api/test/valueTypes.test.js.map +1 -1
  53. package/build/esm/cli/main.js +1 -1
  54. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
  55. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  56. package/build/esm/conversion/toMarketplace/convertLink.js +30 -4
  57. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  58. package/build/esm/conversion/toMarketplace/convertObject.js +6 -5
  59. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
  60. package/build/types/api/action/ActionParameterConditionalOverride.d.ts +2 -0
  61. package/build/types/api/action/ActionParameterConditionalOverride.d.ts.map +1 -1
  62. package/build/types/api/defineInterface.d.ts +2 -0
  63. package/build/types/api/defineInterface.d.ts.map +1 -1
  64. package/build/types/api/defineOntology.d.ts.map +1 -1
  65. package/build/types/api/defineValueType.d.ts +10 -0
  66. package/build/types/api/defineValueType.d.ts.map +1 -1
  67. package/build/types/api/links/LinkType.d.ts +16 -4
  68. package/build/types/api/links/LinkType.d.ts.map +1 -1
  69. package/build/types/api/object/ObjectTypeStatus.d.ts +1 -1
  70. package/build/types/api/object/ObjectTypeStatus.d.ts.map +1 -1
  71. package/build/types/conversion/toMarketplace/convertLink.d.ts +3 -2
  72. package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
  73. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
  74. package/package.json +4 -4
@@ -1173,5 +1173,17 @@ describe("Interfaces", () => {
1173
1173
  }
1174
1174
  });
1175
1175
  });
1176
+ it("sets interface status as example from opts", () => {
1177
+ const result = defineInterface({
1178
+ apiName: "Foo",
1179
+ status: {
1180
+ type: "example"
1181
+ }
1182
+ });
1183
+ expect(result.status).toEqual({
1184
+ type: "example",
1185
+ example: {}
1186
+ });
1187
+ });
1176
1188
  });
1177
1189
  //# sourceMappingURL=interfaces.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.test.js","names":["beforeEach","describe","expect","it","defineInterface","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","apiName","toThrowErrorMatchingInlineSnapshot","result","displayMetadata","displayName","toBe","description","properties","foo","type","ontology","toMatchInlineSnapshot","spt","required","sharedPropertyType","idp","structDefinition","field","fieldType","requireImplementation","optional","array","visibility","nullability","noEmptyCollections","noNulls","primaryKeyConstraint","parentInterface","property1","property2","extends","searchable","status","toEqual","active","experimental","message","deadline","deprecated"],"sources":["interfaces.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Interfaces\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"doesn't let you define the same interface twice\", () => {\n defineInterface({ apiName: \"Foo\" });\n expect(() => {\n defineInterface({ apiName: \"Foo\" });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Interface com.palantir.Foo already exists]`,\n );\n });\n\n it(\"defaults displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.displayName).toBe(\"Foo\");\n });\n\n it(\"defaults description to displayName\", () => {\n const result = defineInterface({ apiName: \"Foo\", displayName: \"d\" });\n expect(result.displayMetadata.description).toBe(\"d\");\n });\n\n it(\"defaults description to displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.description).toBe(\"Foo\");\n });\n\n describe(\"Auto IDPs\", () => {\n it(\"Auto creates IDPs\", () => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: { type: \"string\" },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"foo\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"foo\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n });\n\n describe(\"Interface properties\", () => {\n it(\"IDPs and SPTs on the same interface\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n\n const iface = defineInterface({\n apiName: \"bar\",\n displayName: \"Bar\",\n properties: {\n \"foo\": { type: \"boolean\" },\n \"spt\": spt,\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.bar\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.bar\",\n \"displayMetadata\": {\n \"description\": \"Bar\",\n \"displayName\": \"Bar\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"foo\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"foo\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports optional properties\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n spt: { required: false, sharedPropertyType: spt },\n idp: { required: false, type: \"string\" },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"idp\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"idp\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": false,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"idp\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"Struct IDPs\", () => {\n const iface = defineInterface({\n apiName: \"bar\",\n displayName: \"Bar\",\n properties: {\n \"struct\": {\n type: {\n type: \"struct\",\n structDefinition: {\n field: {\n fieldType: \"string\",\n requireImplementation: true,\n displayMetadata: {\n displayName: \"Field\",\n },\n },\n optional: \"string\",\n },\n },\n },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.bar\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.bar\",\n \"displayMetadata\": {\n \"description\": \"Bar\",\n \"displayName\": \"Bar\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"struct\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"struct\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"struct\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"field\",\n \"displayMetadata\": {\n \"displayName\": \"Field\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"requireImplementation\": true,\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"optional\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"optional\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"requireImplementation\": true,\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Complex interface properties\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n array: true,\n description: \"Description\",\n displayName: \"Display Name\",\n visibility: \"HIDDEN\",\n nullability: {\n noEmptyCollections: true,\n noNulls: true,\n },\n });\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n spt: { required: false, sharedPropertyType: spt },\n idp: {\n required: false,\n type: \"string\",\n primaryKeyConstraint: \"MUST_BE_PK\",\n array: true,\n description: \"Description\",\n displayName: \"Display Name\",\n visibility: \"HIDDEN\",\n nullability: {\n noEmptyCollections: true,\n noNulls: true,\n },\n },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"idp\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"idp\",\n \"constraints\": {\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"MUST_BE_PK\",\n \"requireImplementation\": false,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n });\n\n it(\"allows extends interfaces with apiName provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: { type: \"string\" },\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: { type: \"string\" },\n },\n extends: parentInterface,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"property2\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"property2\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"property1\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"property1\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"supports specifying searchable\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n searchable: false,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"defaults interface status to active\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.status).toEqual({ type: \"active\", active: {} });\n });\n\n it(\"sets interface status as experimental from opts\", () => {\n const experimentalStatus = {\n type: \"experimental\",\n experimental: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"experimental\" },\n });\n expect(result.status).toEqual(experimentalStatus);\n });\n\n it(\"sets interface status as deprecated from opts\", () => {\n const deprecatedStatus = {\n type: \"deprecated\",\n deprecated: {\n message: \"foo\",\n deadline: \"foo\",\n },\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"deprecated\", message: \"foo\", deadline: \"foo\" },\n });\n expect(result.status).toEqual(deprecatedStatus);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,cAAc,EAAEC,wBAAwB,QAAQ,sBAAsB;AAC/E,SAASC,wBAAwB,QAAQ,iBAAiB;AAE1DN,QAAQ,CAAC,YAAY,EAAE,MAAM;EAC3BD,UAAU,CAAC,YAAY;IACrB,MAAMK,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1D,CAAC,CAAC;EAEFF,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1DC,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IACnCN,MAAM,CAAC,MAAM;MACXE,eAAe,CAAC;QAAEI,OAAO,EAAE;MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAACC,kCAAkC,CACnC,sEACF,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACC,WAAW,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFV,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE,KAAK;MAAEI,WAAW,EAAE;IAAI,CAAC,CAAC;IACpEV,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,GAAG,CAAC;EACtD,CAAC,CAAC;EAEFV,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFZ,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BE,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAC5BC,eAAe,CAAC;QACdI,OAAO,EAAE,KAAK;QACdO,UAAU,EAAE;UACVC,GAAG,EAAE;YAAEC,IAAI,EAAE;UAAS;QACxB;MACF,CAAC,CAAC;MACFf,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFlB,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCE,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE;MACR,CAAC,CAAC;MAEYb,eAAe,CAAC;QAC5BI,OAAO,EAAE,KAAK;QACdI,WAAW,EAAE,KAAK;QAClBG,UAAU,EAAE;UACV,KAAK,EAAE;YAAEE,IAAI,EAAE;UAAU,CAAC;UAC1B,KAAK,EAAEG;QACT;MACF,CAAC,CAAC;MACFlB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFhB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE;MACR,CAAC,CAAC;MACsBb,eAAe,CAAC;QACtCI,OAAO,EAAE,iBAAiB;QAC1BO,UAAU,EAAE;UACVK,GAAG,EAAE;YAAEC,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAEF;UAAI,CAAC;UACjDG,GAAG,EAAE;YAAEF,QAAQ,EAAE,KAAK;YAAEJ,IAAI,EAAE;UAAS;QACzC;MACF,CAAC,CAAC;MAEFf,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF,CAAC,CAAC;IAEFhB,EAAE,CAAC,aAAa,EAAE,MAAM;MACRC,eAAe,CAAC;QAC5BI,OAAO,EAAE,KAAK;QACdI,WAAW,EAAE,KAAK;QAClBG,UAAU,EAAE;UACV,QAAQ,EAAE;YACRE,IAAI,EAAE;cACJA,IAAI,EAAE,QAAQ;cACdO,gBAAgB,EAAE;gBAChBC,KAAK,EAAE;kBACLC,SAAS,EAAE,QAAQ;kBACnBC,qBAAqB,EAAE,IAAI;kBAC3BhB,eAAe,EAAE;oBACfC,WAAW,EAAE;kBACf;gBACF,CAAC;gBACDgB,QAAQ,EAAE;cACZ;YACF;UACF;QACF;MACF,CAAC,CAAC;MACF1B,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFhB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE,QAAQ;QACdY,KAAK,EAAE,IAAI;QACXf,WAAW,EAAE,aAAa;QAC1BF,WAAW,EAAE,cAAc;QAC3BkB,UAAU,EAAE,QAAQ;QACpBC,WAAW,EAAE;UACXC,kBAAkB,EAAE,IAAI;UACxBC,OAAO,EAAE;QACX;MACF,CAAC,CAAC;MACsB7B,eAAe,CAAC;QACtCI,OAAO,EAAE,iBAAiB;QAC1BO,UAAU,EAAE;UACVK,GAAG,EAAE;YAAEC,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAEF;UAAI,CAAC;UACjDG,GAAG,EAAE;YACHF,QAAQ,EAAE,KAAK;YACfJ,IAAI,EAAE,QAAQ;YACdiB,oBAAoB,EAAE,YAAY;YAClCL,KAAK,EAAE,IAAI;YACXf,WAAW,EAAE,aAAa;YAC1BF,WAAW,EAAE,cAAc;YAC3BkB,UAAU,EAAE,QAAQ;YACpBC,WAAW,EAAE;cACXC,kBAAkB,EAAE,IAAI;cACxBC,OAAO,EAAE;YACX;UACF;QACF;MACF,CAAC,CAAC;MAEF/B,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMgC,eAAe,GAAG/B,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BO,UAAU,EAAE;QACVqB,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAS;MAC9B;IACF,CAAC,CAAC;IACqBb,eAAe,CAAC;MACrCI,OAAO,EAAE,gBAAgB;MACzBO,UAAU,EAAE;QACVsB,SAAS,EAAE;UAAEpB,IAAI,EAAE;QAAS;MAC9B,CAAC;MACDqB,OAAO,EAAEH;IACX,CAAC,CAAC;IAEFjC,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFhB,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACjBC,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1B+B,UAAU,EAAE;IACd,CAAC,CAAC;IAEFrC,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFhB,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CAAC;MAAExB,IAAI,EAAE,QAAQ;MAAEyB,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEFvC,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAK1D,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE;MAAe;IACjC,CAAC,CAAC;IACFf,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CARF;MACzBxB,IAAI,EAAE,cAAc;MACpB0B,YAAY,EAAE,CAAC;IACjB,CAKgD,CAAC;EACnD,CAAC,CAAC;EAEFxC,EAAE,CAAC,+CAA+C,EAAE,MAAM;IAQxD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE,YAAY;QAAE2B,OAAO,EAAE,KAAK;QAAEC,QAAQ,EAAE;MAAM;IAChE,CAAC,CAAC;IACF3C,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CAXJ;MACvBxB,IAAI,EAAE,YAAY;MAClB6B,UAAU,EAAE;QACVF,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE;MACZ;IACF,CAK8C,CAAC;EACjD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"interfaces.test.js","names":["beforeEach","describe","expect","it","defineInterface","defineOntology","dumpOntologyFullMetadata","defineSharedPropertyType","apiName","toThrowErrorMatchingInlineSnapshot","result","displayMetadata","displayName","toBe","description","properties","foo","type","ontology","toMatchInlineSnapshot","spt","required","sharedPropertyType","idp","structDefinition","field","fieldType","requireImplementation","optional","array","visibility","nullability","noEmptyCollections","noNulls","primaryKeyConstraint","parentInterface","property1","property2","extends","searchable","status","toEqual","active","experimental","message","deadline","deprecated","example"],"sources":["interfaces.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineInterface } from \"../defineInterface.js\";\nimport { defineOntology, dumpOntologyFullMetadata } from \"../defineOntology.js\";\nimport { defineSharedPropertyType } from \"../defineSpt.js\";\n\ndescribe(\"Interfaces\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"doesn't let you define the same interface twice\", () => {\n defineInterface({ apiName: \"Foo\" });\n expect(() => {\n defineInterface({ apiName: \"Foo\" });\n }).toThrowErrorMatchingInlineSnapshot(\n `[Error: Invariant failed: Interface com.palantir.Foo already exists]`,\n );\n });\n\n it(\"defaults displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.displayName).toBe(\"Foo\");\n });\n\n it(\"defaults description to displayName\", () => {\n const result = defineInterface({ apiName: \"Foo\", displayName: \"d\" });\n expect(result.displayMetadata.description).toBe(\"d\");\n });\n\n it(\"defaults description to displayName to apiName\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.displayMetadata.description).toBe(\"Foo\");\n });\n\n describe(\"Auto IDPs\", () => {\n it(\"Auto creates IDPs\", () => {\n defineInterface({\n apiName: \"Foo\",\n properties: {\n foo: { type: \"string\" },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.Foo\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.Foo\",\n \"displayMetadata\": {\n \"description\": \"Foo\",\n \"displayName\": \"Foo\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"foo\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"foo\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n });\n\n describe(\"Interface properties\", () => {\n it(\"IDPs and SPTs on the same interface\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n\n const iface = defineInterface({\n apiName: \"bar\",\n displayName: \"Bar\",\n properties: {\n \"foo\": { type: \"boolean\" },\n \"spt\": spt,\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.bar\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.bar\",\n \"displayMetadata\": {\n \"description\": \"Bar\",\n \"displayName\": \"Bar\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": true,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"foo\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"foo\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"foo\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"supports optional properties\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n });\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n spt: { required: false, sharedPropertyType: spt },\n idp: { required: false, type: \"string\" },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"idp\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"idp\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": false,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"idp\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": undefined,\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"spt\",\n \"visibility\": \"NORMAL\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n\n it(\"Struct IDPs\", () => {\n const iface = defineInterface({\n apiName: \"bar\",\n displayName: \"Bar\",\n properties: {\n \"struct\": {\n type: {\n type: \"struct\",\n structDefinition: {\n field: {\n fieldType: \"string\",\n requireImplementation: true,\n displayMetadata: {\n displayName: \"Field\",\n },\n },\n optional: \"string\",\n },\n },\n },\n },\n });\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.bar\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.bar\",\n \"displayMetadata\": {\n \"description\": \"Bar\",\n \"displayName\": \"Bar\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"struct\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"struct\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"struct\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"struct\": {\n \"structFields\": [\n {\n \"aliases\": [],\n \"apiName\": \"field\",\n \"displayMetadata\": {\n \"displayName\": \"Field\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"requireImplementation\": true,\n \"typeClasses\": [],\n },\n {\n \"aliases\": [],\n \"apiName\": \"optional\",\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"optional\",\n },\n \"fieldType\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n \"requireImplementation\": true,\n \"typeClasses\": [],\n },\n ],\n },\n \"type\": \"struct\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"Complex interface properties\", () => {\n const spt = defineSharedPropertyType({\n apiName: \"spt\",\n type: \"string\",\n array: true,\n description: \"Description\",\n displayName: \"Display Name\",\n visibility: \"HIDDEN\",\n nullability: {\n noEmptyCollections: true,\n noNulls: true,\n },\n });\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n spt: { required: false, sharedPropertyType: spt },\n idp: {\n required: false,\n type: \"string\",\n primaryKeyConstraint: \"MUST_BE_PK\",\n array: true,\n description: \"Description\",\n displayName: \"Display Name\",\n visibility: \"HIDDEN\",\n nullability: {\n noEmptyCollections: true,\n noNulls: true,\n },\n },\n },\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {\n \"com.palantir.spt\": {\n \"required\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n \"propertiesV3\": {\n \"com.palantir.spt\": {\n \"sharedPropertyBasedPropertyType\": {\n \"requireImplementation\": false,\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n \"type\": \"sharedPropertyBasedPropertyType\",\n },\n \"idp\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"idp\",\n \"constraints\": {\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"MUST_BE_PK\",\n \"requireImplementation\": false,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"type\": {\n \"array\": {\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {\n \"com.palantir.spt\": {\n \"sharedPropertyType\": {\n \"aliases\": [],\n \"apiName\": \"com.palantir.spt\",\n \"baseFormatter\": undefined,\n \"dataConstraints\": {\n \"nullability\": undefined,\n \"nullabilityV2\": {\n \"noEmptyCollections\": true,\n \"noNulls\": true,\n },\n \"propertyTypeConstraints\": [],\n },\n \"displayMetadata\": {\n \"description\": \"Description\",\n \"displayName\": \"Display Name\",\n \"visibility\": \"HIDDEN\",\n },\n \"gothamMapping\": undefined,\n \"indexedForSearch\": true,\n \"type\": {\n \"array\": {\n \"reducers\": [],\n \"subtype\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"array\",\n },\n \"typeClasses\": [\n {\n \"kind\": \"render_hint\",\n \"name\": \"SELECTABLE\",\n },\n {\n \"kind\": \"render_hint\",\n \"name\": \"SORTABLE\",\n },\n ],\n \"valueType\": undefined,\n },\n },\n },\n }\n `);\n });\n });\n\n it(\"allows extends interfaces with apiName provided\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n properties: {\n property1: { type: \"string\" },\n },\n });\n const childInterface = defineInterface({\n apiName: \"childInterface\",\n properties: {\n property2: { type: \"string\" },\n },\n extends: parentInterface,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.childInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.childInterface\",\n \"displayMetadata\": {\n \"description\": \"childInterface\",\n \"displayName\": \"childInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [\n \"com.palantir.parentInterface\",\n ],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"property2\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"property2\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property2\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {\n \"property1\": {\n \"interfaceDefinedPropertyType\": {\n \"apiName\": \"property1\",\n \"constraints\": {\n \"dataConstraints\": undefined,\n \"indexedForSearch\": true,\n \"primaryKeyConstraint\": \"NO_RESTRICTION\",\n \"requireImplementation\": true,\n \"typeClasses\": [],\n \"valueType\": undefined,\n },\n \"displayMetadata\": {\n \"description\": undefined,\n \"displayName\": \"property1\",\n \"visibility\": \"NORMAL\",\n },\n \"type\": {\n \"string\": {\n \"analyzerOverride\": undefined,\n \"enableAsciiFolding\": undefined,\n \"isLongText\": false,\n \"supportsEfficientLeadingWildcard\": false,\n \"supportsExactMatching\": true,\n },\n \"type\": \"string\",\n },\n },\n \"type\": \"interfaceDefinedPropertyType\",\n },\n },\n \"searchable\": true,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"supports specifying searchable\", () => {\n const parentInterface = defineInterface({\n apiName: \"parentInterface\",\n searchable: false,\n });\n\n expect(dumpOntologyFullMetadata().ontology).toMatchInlineSnapshot(`\n {\n \"actionTypes\": {},\n \"blockPermissionInformation\": {\n \"actionTypes\": {},\n \"linkTypes\": {},\n \"objectTypes\": {},\n },\n \"interfaceTypes\": {\n \"com.palantir.parentInterface\": {\n \"interfaceType\": {\n \"apiName\": \"com.palantir.parentInterface\",\n \"displayMetadata\": {\n \"description\": \"parentInterface\",\n \"displayName\": \"parentInterface\",\n \"icon\": {\n \"blueprint\": {\n \"color\": \"#4C90F0\",\n \"locator\": \"layout-hierarchy\",\n },\n \"type\": \"blueprint\",\n },\n },\n \"extendsInterfaces\": [],\n \"links\": [],\n \"properties\": [],\n \"propertiesV2\": {},\n \"propertiesV3\": {},\n \"searchable\": false,\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n },\n },\n \"linkTypes\": {},\n \"objectTypes\": {},\n \"sharedPropertyTypes\": {},\n }\n `);\n });\n\n it(\"defaults interface status to active\", () => {\n const result = defineInterface({ apiName: \"Foo\" });\n expect(result.status).toEqual({ type: \"active\", active: {} });\n });\n\n it(\"sets interface status as experimental from opts\", () => {\n const experimentalStatus = {\n type: \"experimental\",\n experimental: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"experimental\" },\n });\n expect(result.status).toEqual(experimentalStatus);\n });\n\n it(\"sets interface status as deprecated from opts\", () => {\n const deprecatedStatus = {\n type: \"deprecated\",\n deprecated: {\n message: \"foo\",\n deadline: \"foo\",\n },\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"deprecated\", message: \"foo\", deadline: \"foo\" },\n });\n expect(result.status).toEqual(deprecatedStatus);\n });\n\n it(\"sets interface status as example from opts\", () => {\n const exampleStatus = {\n type: \"example\",\n example: {},\n };\n const result = defineInterface({\n apiName: \"Foo\",\n status: { type: \"example\" },\n });\n expect(result.status).toEqual(exampleStatus);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,cAAc,EAAEC,wBAAwB,QAAQ,sBAAsB;AAC/E,SAASC,wBAAwB,QAAQ,iBAAiB;AAE1DN,QAAQ,CAAC,YAAY,EAAE,MAAM;EAC3BD,UAAU,CAAC,YAAY;IACrB,MAAMK,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1D,CAAC,CAAC;EAEFF,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1DC,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IACnCN,MAAM,CAAC,MAAM;MACXE,eAAe,CAAC;QAAEI,OAAO,EAAE;MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAACC,kCAAkC,CACnC,sEACF,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACC,WAAW,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFV,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE,KAAK;MAAEI,WAAW,EAAE;IAAI,CAAC,CAAC;IACpEV,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,GAAG,CAAC;EACtD,CAAC,CAAC;EAEFV,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAACC,eAAe,CAACG,WAAW,CAAC,CAACD,IAAI,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFZ,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BE,EAAE,CAAC,mBAAmB,EAAE,MAAM;MAC5BC,eAAe,CAAC;QACdI,OAAO,EAAE,KAAK;QACdO,UAAU,EAAE;UACVC,GAAG,EAAE;YAAEC,IAAI,EAAE;UAAS;QACxB;MACF,CAAC,CAAC;MACFf,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFlB,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACrCE,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE;MACR,CAAC,CAAC;MAEYb,eAAe,CAAC;QAC5BI,OAAO,EAAE,KAAK;QACdI,WAAW,EAAE,KAAK;QAClBG,UAAU,EAAE;UACV,KAAK,EAAE;YAAEE,IAAI,EAAE;UAAU,CAAC;UAC1B,KAAK,EAAEG;QACT;MACF,CAAC,CAAC;MACFlB,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFhB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE;MACR,CAAC,CAAC;MACsBb,eAAe,CAAC;QACtCI,OAAO,EAAE,iBAAiB;QAC1BO,UAAU,EAAE;UACVK,GAAG,EAAE;YAAEC,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAEF;UAAI,CAAC;UACjDG,GAAG,EAAE;YAAEF,QAAQ,EAAE,KAAK;YAAEJ,IAAI,EAAE;UAAS;QACzC;MACF,CAAC,CAAC;MAEFf,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACF,CAAC,CAAC;IAEFhB,EAAE,CAAC,aAAa,EAAE,MAAM;MACRC,eAAe,CAAC;QAC5BI,OAAO,EAAE,KAAK;QACdI,WAAW,EAAE,KAAK;QAClBG,UAAU,EAAE;UACV,QAAQ,EAAE;YACRE,IAAI,EAAE;cACJA,IAAI,EAAE,QAAQ;cACdO,gBAAgB,EAAE;gBAChBC,KAAK,EAAE;kBACLC,SAAS,EAAE,QAAQ;kBACnBC,qBAAqB,EAAE,IAAI;kBAC3BhB,eAAe,EAAE;oBACfC,WAAW,EAAE;kBACf;gBACF,CAAC;gBACDgB,QAAQ,EAAE;cACZ;YACF;UACF;QACF;MACF,CAAC,CAAC;MACF1B,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;IAEFhB,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMiB,GAAG,GAAGb,wBAAwB,CAAC;QACnCC,OAAO,EAAE,KAAK;QACdS,IAAI,EAAE,QAAQ;QACdY,KAAK,EAAE,IAAI;QACXf,WAAW,EAAE,aAAa;QAC1BF,WAAW,EAAE,cAAc;QAC3BkB,UAAU,EAAE,QAAQ;QACpBC,WAAW,EAAE;UACXC,kBAAkB,EAAE,IAAI;UACxBC,OAAO,EAAE;QACX;MACF,CAAC,CAAC;MACsB7B,eAAe,CAAC;QACtCI,OAAO,EAAE,iBAAiB;QAC1BO,UAAU,EAAE;UACVK,GAAG,EAAE;YAAEC,QAAQ,EAAE,KAAK;YAAEC,kBAAkB,EAAEF;UAAI,CAAC;UACjDG,GAAG,EAAE;YACHF,QAAQ,EAAE,KAAK;YACfJ,IAAI,EAAE,QAAQ;YACdiB,oBAAoB,EAAE,YAAY;YAClCL,KAAK,EAAE,IAAI;YACXf,WAAW,EAAE,aAAa;YAC1BF,WAAW,EAAE,cAAc;YAC3BkB,UAAU,EAAE,QAAQ;YACpBC,WAAW,EAAE;cACXC,kBAAkB,EAAE,IAAI;cACxBC,OAAO,EAAE;YACX;UACF;QACF;MACF,CAAC,CAAC;MAEF/B,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFhB,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMgC,eAAe,GAAG/B,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1BO,UAAU,EAAE;QACVqB,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAS;MAC9B;IACF,CAAC,CAAC;IACqBb,eAAe,CAAC;MACrCI,OAAO,EAAE,gBAAgB;MACzBO,UAAU,EAAE;QACVsB,SAAS,EAAE;UAAEpB,IAAI,EAAE;QAAS;MAC9B,CAAC;MACDqB,OAAO,EAAEH;IACX,CAAC,CAAC;IAEFjC,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFhB,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACjBC,eAAe,CAAC;MACtCI,OAAO,EAAE,iBAAiB;MAC1B+B,UAAU,EAAE;IACd,CAAC,CAAC;IAEFrC,MAAM,CAACI,wBAAwB,CAAC,CAAC,CAACY,QAAQ,CAAC,CAACC,qBAAqB,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EAEFhB,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC9C,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC,CAAC;IAClDN,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CAAC;MAAExB,IAAI,EAAE,QAAQ;MAAEyB,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEFvC,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAK1D,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE;MAAe;IACjC,CAAC,CAAC;IACFf,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CARF;MACzBxB,IAAI,EAAE,cAAc;MACpB0B,YAAY,EAAE,CAAC;IACjB,CAKgD,CAAC;EACnD,CAAC,CAAC;EAEFxC,EAAE,CAAC,+CAA+C,EAAE,MAAM;IAQxD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE,YAAY;QAAE2B,OAAO,EAAE,KAAK;QAAEC,QAAQ,EAAE;MAAM;IAChE,CAAC,CAAC;IACF3C,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CAXJ;MACvBxB,IAAI,EAAE,YAAY;MAClB6B,UAAU,EAAE;QACVF,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE;MACZ;IACF,CAK8C,CAAC;EACjD,CAAC,CAAC;EAEF1C,EAAE,CAAC,4CAA4C,EAAE,MAAM;IAKrD,MAAMO,MAAM,GAAGN,eAAe,CAAC;MAC7BI,OAAO,EAAE,KAAK;MACdgC,MAAM,EAAE;QAAEvB,IAAI,EAAE;MAAU;IAC5B,CAAC,CAAC;IACFf,MAAM,CAACQ,MAAM,CAAC8B,MAAM,CAAC,CAACC,OAAO,CARP;MACpBxB,IAAI,EAAE,SAAS;MACf8B,OAAO,EAAE,CAAC;IACZ,CAK2C,CAAC;EAC9C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1089,15 +1089,17 @@ describe("Miscellaneous Tests", () => {
1089
1089
  {
1090
1090
  "interfaceTypeApiName": "com.palantir.childInterface",
1091
1091
  "linksV2": {},
1092
- "properties": {
1092
+ "properties": {},
1093
+ "propertiesV2": {
1093
1094
  "com.palantir.iProperty1": {
1094
1095
  "propertyTypeRid": "property1",
1096
+ "type": "propertyTypeRid",
1095
1097
  },
1096
1098
  "com.palantir.iProperty2": {
1097
1099
  "propertyTypeRid": "property2",
1100
+ "type": "propertyTypeRid",
1098
1101
  },
1099
1102
  },
1100
- "propertiesV2": {},
1101
1103
  },
1102
1104
  ],
1103
1105
  "primaryKeys": [