@osdk/maker 0.15.0-beta.6 → 0.15.0-beta.8
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.
- package/CHANGELOG.md +22 -0
- package/README.md +26 -22
- package/build/browser/api/action/ActionParameter.js.map +1 -1
- package/build/browser/api/action/ActionParameterConfiguration.js.map +1 -1
- package/build/browser/api/defineAction.js +65 -22
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineCreateInterfaceObjectAction.js +28 -8
- package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineInterface.js +40 -34
- package/build/browser/api/defineInterface.js.map +1 -1
- package/build/browser/api/defineModifyInterfaceObjectAction.js +31 -8
- package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineObject.js +13 -9
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineOntology.js +6 -0
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/defineValueType.js +17 -4
- package/build/browser/api/defineValueType.js.map +1 -1
- package/build/browser/api/interface/InterfacePropertyType.js +22 -1
- package/build/browser/api/interface/InterfacePropertyType.js.map +1 -1
- package/build/browser/api/interface/InterfaceType.js.map +1 -1
- package/build/browser/api/interface/getFlattenedInterfaceProperties.js +9 -3
- package/build/browser/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
- package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
- package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
- package/build/browser/api/links/LinkType.js.map +1 -1
- package/build/browser/api/object/ObjectType.js.map +1 -1
- package/build/browser/api/object/ObjectTypeDefinition.js.map +1 -1
- package/build/browser/api/object/ObjectTypeStatus.js.map +1 -1
- package/build/browser/api/properties/PropertyTypeType.js +1 -1
- package/build/browser/api/properties/PropertyTypeType.js.map +1 -1
- package/build/browser/api/properties/SharedPropertyType.js.map +1 -1
- package/build/browser/api/test/actions.test.js +6105 -5850
- package/build/browser/api/test/actions.test.js.map +1 -1
- package/build/browser/api/test/interfaces.test.js +757 -492
- package/build/browser/api/test/interfaces.test.js.map +1 -1
- package/build/browser/api/test/links.test.js +1334 -1325
- package/build/browser/api/test/links.test.js.map +1 -1
- package/build/browser/api/test/misc.test.js +262 -11
- package/build/browser/api/test/misc.test.js.map +1 -1
- package/build/browser/api/test/objects.test.js +1019 -960
- package/build/browser/api/test/objects.test.js.map +1 -1
- package/build/browser/api/test/spt.test.js +250 -103
- package/build/browser/api/test/spt.test.js.map +1 -1
- package/build/browser/api/test/valueTypes.test.js +69 -0
- package/build/browser/api/test/valueTypes.test.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/convertActionValidation.js +1 -1
- package/build/browser/conversion/toMarketplace/convertActionValidation.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertInterface.js +2 -2
- package/build/browser/conversion/toMarketplace/convertInterface.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
- package/build/browser/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
- package/build/browser/conversion/toMarketplace/convertLink.js +30 -4
- package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertMappingValue.js +35 -0
- package/build/browser/conversion/toMarketplace/convertMappingValue.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObject.js +4 -2
- package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
- package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertSpt.js +4 -2
- package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -1
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/cjs/index.cjs +444 -117
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +53 -17
- package/build/esm/api/action/ActionParameter.js.map +1 -1
- package/build/esm/api/action/ActionParameterConfiguration.js.map +1 -1
- package/build/esm/api/defineAction.js +65 -22
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineCreateInterfaceObjectAction.js +28 -8
- package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineInterface.js +40 -34
- package/build/esm/api/defineInterface.js.map +1 -1
- package/build/esm/api/defineModifyInterfaceObjectAction.js +31 -8
- package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineObject.js +13 -9
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineOntology.js +6 -0
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/defineValueType.js +17 -4
- package/build/esm/api/defineValueType.js.map +1 -1
- package/build/esm/api/interface/InterfacePropertyType.js +22 -1
- package/build/esm/api/interface/InterfacePropertyType.js.map +1 -1
- package/build/esm/api/interface/InterfaceType.js.map +1 -1
- package/build/esm/api/interface/getFlattenedInterfaceProperties.js +9 -3
- package/build/esm/api/interface/getFlattenedInterfaceProperties.js.map +1 -1
- package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
- package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
- package/build/esm/api/links/LinkType.js.map +1 -1
- package/build/esm/api/object/ObjectType.js.map +1 -1
- package/build/esm/api/object/ObjectTypeDefinition.js.map +1 -1
- package/build/esm/api/object/ObjectTypeStatus.js.map +1 -1
- package/build/esm/api/properties/PropertyTypeType.js +1 -1
- package/build/esm/api/properties/PropertyTypeType.js.map +1 -1
- package/build/esm/api/properties/SharedPropertyType.js.map +1 -1
- package/build/esm/api/test/actions.test.js +6105 -5850
- package/build/esm/api/test/actions.test.js.map +1 -1
- package/build/esm/api/test/interfaces.test.js +757 -492
- package/build/esm/api/test/interfaces.test.js.map +1 -1
- package/build/esm/api/test/links.test.js +1334 -1325
- package/build/esm/api/test/links.test.js.map +1 -1
- package/build/esm/api/test/misc.test.js +262 -11
- package/build/esm/api/test/misc.test.js.map +1 -1
- package/build/esm/api/test/objects.test.js +1019 -960
- package/build/esm/api/test/objects.test.js.map +1 -1
- package/build/esm/api/test/spt.test.js +250 -103
- package/build/esm/api/test/spt.test.js.map +1 -1
- package/build/esm/api/test/valueTypes.test.js +69 -0
- package/build/esm/api/test/valueTypes.test.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/convertActionValidation.js +1 -1
- package/build/esm/conversion/toMarketplace/convertActionValidation.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertInterface.js +2 -2
- package/build/esm/conversion/toMarketplace/convertInterface.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js +66 -0
- package/build/esm/conversion/toMarketplace/convertInterfacePropertyType.js.map +1 -0
- package/build/esm/conversion/toMarketplace/convertLink.js +30 -4
- package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertMappingValue.js +35 -0
- package/build/esm/conversion/toMarketplace/convertMappingValue.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObject.js +4 -2
- package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +2 -1
- package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertSpt.js +4 -2
- package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -1
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js +143 -0
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.js.map +1 -0
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -0
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/types/api/action/ActionParameter.d.ts +2 -1
- package/build/types/api/action/ActionParameter.d.ts.map +1 -1
- package/build/types/api/action/ActionParameterConfiguration.d.ts +2 -1
- package/build/types/api/action/ActionParameterConfiguration.d.ts.map +1 -1
- package/build/types/api/defineAction.d.ts +4 -3
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineInterface.d.ts +7 -5
- package/build/types/api/defineInterface.d.ts.map +1 -1
- package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineObject.d.ts.map +1 -1
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/build/types/api/defineSpt.d.ts +3 -0
- package/build/types/api/defineSpt.d.ts.map +1 -1
- package/build/types/api/defineValueType.d.ts +9 -0
- package/build/types/api/defineValueType.d.ts.map +1 -1
- package/build/types/api/interface/InterfacePropertyType.d.ts +12 -2
- package/build/types/api/interface/InterfacePropertyType.d.ts.map +1 -1
- package/build/types/api/interface/InterfaceType.d.ts +3 -2
- package/build/types/api/interface/InterfaceType.d.ts.map +1 -1
- package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts +1 -1
- package/build/types/api/interface/getFlattenedInterfaceProperties.d.ts.map +1 -1
- package/build/types/api/links/LinkType.d.ts +16 -4
- package/build/types/api/links/LinkType.d.ts.map +1 -1
- package/build/types/api/object/ObjectType.d.ts +1 -0
- package/build/types/api/object/ObjectType.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeDefinition.d.ts +1 -0
- package/build/types/api/object/ObjectTypeDefinition.d.ts.map +1 -1
- package/build/types/api/object/ObjectTypeStatus.d.ts +1 -1
- package/build/types/api/object/ObjectTypeStatus.d.ts.map +1 -1
- package/build/types/api/properties/PropertyTypeType.d.ts +1 -0
- package/build/types/api/properties/PropertyTypeType.d.ts.map +1 -1
- package/build/types/api/properties/SharedPropertyType.d.ts +1 -0
- package/build/types/api/properties/SharedPropertyType.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertInterface.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts +3 -0
- package/build/types/conversion/toMarketplace/convertInterfacePropertyType.d.ts.map +1 -0
- package/build/types/conversion/toMarketplace/convertLink.d.ts +3 -2
- package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertMappingValue.d.ts +2 -1
- package/build/types/conversion/toMarketplace/convertMappingValue.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertSpt.d.ts +1 -1
- package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts +3 -0
- package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrInterfaceType.d.ts.map +1 -0
- package/build/types/index.d.ts +1 -0
- package/build/types/index.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueTypes.test.js","names":["beforeEach","describe","expect","it","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineValueType","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","testStringValueType","description","length","minSize","maxSize","failureMessage","message","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","properties","valueType","ontology","objectPropertyType","objectTypes","objectType","propertyTypes","toEqual","packageNamespace","displayMetadata","dataConstraints","toBeDefined","propertyTypeConstraints","toHaveLength","constraintWrapper","toBe","string","toMatchInlineSnapshot"],"sources":["valueTypes.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 { defineObject } from \"../defineObject.js\";\nimport {\n defineOntology,\n dumpOntologyFullMetadata,\n dumpValueTypeWireType,\n} from \"../defineOntology.js\";\nimport { defineValueType } from \"../defineValueType.js\";\n\ndescribe(\"Value Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails to define value type with incorrect semver\", () => {\n expect(() =>\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"not a version\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n \"[Error: Invariant failed: Version is not a valid semver]\",\n );\n });\n\n it(\"Tests convertProperty function with valueType constraints for string\", () => {\n const testStringValueType = defineValueType({\n apiName: \"stringWithConstraints\",\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n type: {\n \"type\": \"string\",\n constraints: [\n {\n constraint: {\n type: \"length\",\n length: {\n minSize: 5,\n maxSize: 20,\n },\n },\n failureMessage: {\n message: \"String must be between 5 and 20 characters\",\n },\n },\n ],\n },\n version: \"1.0.0\",\n });\n\n const object = defineObject({\n titlePropertyApiName: \"constrainedString\",\n displayName: \"Test Object\",\n pluralDisplayName: \"Test Objects\",\n apiName: \"testObject\",\n primaryKeyPropertyApiName: \"constrainedString\",\n properties: {\n \"constrainedString\": {\n type: \"string\",\n displayName: \"Constrained String\",\n valueType: testStringValueType,\n },\n },\n });\n\n const ontology = dumpOntologyFullMetadata();\n const objectPropertyType =\n ontology.ontology.objectTypes[\"com.palantir.testObject\"]\n .objectType.propertyTypes[\"constrainedString\"];\n\n expect(objectPropertyType.valueType).toEqual({\n apiName: \"stringWithConstraints\",\n version: \"1.0.0\",\n packageNamespace: \"com.palantir\",\n displayMetadata: {\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n },\n });\n\n expect(objectPropertyType.dataConstraints).toBeDefined();\n expect(objectPropertyType.dataConstraints?.propertyTypeConstraints)\n .toHaveLength(1);\n\n const constraintWrapper = objectPropertyType.dataConstraints\n ?.propertyTypeConstraints[0];\n expect(constraintWrapper?.constraints?.type).toBe(\"string\");\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.minSize,\n ).toBe(5);\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.maxSize,\n ).toBe(20);\n expect(constraintWrapper?.failureMessage?.message).toBe(\n \"String must be between 5 and 20 characters\",\n );\n });\n\n it(\"Correctly serializes a value type\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"valueTypes.test.js","names":["beforeEach","describe","expect","it","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineValueType","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","testStringValueType","description","length","minSize","maxSize","failureMessage","message","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","properties","valueType","ontology","objectPropertyType","objectTypes","objectType","propertyTypes","toEqual","packageNamespace","displayMetadata","dataConstraints","toBeDefined","propertyTypeConstraints","toHaveLength","constraintWrapper","toBe","string","toMatchInlineSnapshot","status","deadline"],"sources":["valueTypes.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 { defineObject } from \"../defineObject.js\";\nimport {\n defineOntology,\n dumpOntologyFullMetadata,\n dumpValueTypeWireType,\n} from \"../defineOntology.js\";\nimport { defineValueType } from \"../defineValueType.js\";\n\ndescribe(\"Value Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails to define value type with incorrect semver\", () => {\n expect(() =>\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"not a version\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n \"[Error: Invariant failed: Version is not a valid semver]\",\n );\n });\n\n it(\"Tests convertProperty function with valueType constraints for string\", () => {\n const testStringValueType = defineValueType({\n apiName: \"stringWithConstraints\",\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n type: {\n \"type\": \"string\",\n constraints: [\n {\n constraint: {\n type: \"length\",\n length: {\n minSize: 5,\n maxSize: 20,\n },\n },\n failureMessage: {\n message: \"String must be between 5 and 20 characters\",\n },\n },\n ],\n },\n version: \"1.0.0\",\n });\n\n const object = defineObject({\n titlePropertyApiName: \"constrainedString\",\n displayName: \"Test Object\",\n pluralDisplayName: \"Test Objects\",\n apiName: \"testObject\",\n primaryKeyPropertyApiName: \"constrainedString\",\n properties: {\n \"constrainedString\": {\n type: \"string\",\n displayName: \"Constrained String\",\n valueType: testStringValueType,\n },\n },\n });\n\n const ontology = dumpOntologyFullMetadata();\n const objectPropertyType =\n ontology.ontology.objectTypes[\"com.palantir.testObject\"]\n .objectType.propertyTypes[\"constrainedString\"];\n\n expect(objectPropertyType.valueType).toEqual({\n apiName: \"stringWithConstraints\",\n version: \"1.0.0\",\n packageNamespace: \"com.palantir\",\n displayMetadata: {\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n },\n });\n\n expect(objectPropertyType.dataConstraints).toBeDefined();\n expect(objectPropertyType.dataConstraints?.propertyTypeConstraints)\n .toHaveLength(1);\n\n const constraintWrapper = objectPropertyType.dataConstraints\n ?.propertyTypeConstraints[0];\n expect(constraintWrapper?.constraints?.type).toBe(\"string\");\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.minSize,\n ).toBe(5);\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.maxSize,\n ).toBe(20);\n expect(constraintWrapper?.failureMessage?.message).toBe(\n \"String must be between 5 and 20 characters\",\n );\n });\n\n it(\"Correctly serializes a value type\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n it(\"Correctly sets a status\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n status: {\n type: \"deprecated\",\n deadline: \"2026-01-01\",\n message: \"This value type is deprecated\",\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"deprecated\": {\n \"deadline\": \"2026-01-01\",\n \"message\": \"This value type is deprecated\",\n \"replacedBy\": undefined,\n },\n \"type\": \"deprecated\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n});\n"],"mappings":"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SAAS;MAClBC,WAAW,EAAE,aAAa;MAC1BC,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS;QACjBC,WAAW,EAAE,CAAC;UAAEC,UAAU,EAAE;YAAE,eAAe,EAAE,CAAC,YAAY;UAAE;QAAE,CAAC;MACnE,CAAC;MACDC,OAAO,EAAE;IACX,CAAC,CAAC;IACFZ,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;EACFxC,EAAE,CAAC,yBAAyB,EAAE,MAAM;IAClCK,eAAe,CAAC;MACdC,OAAO,EAAE,SAAS;MAClBC,WAAW,EAAE,aAAa;MAC1BC,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS;QACjBC,WAAW,EAAE,CAAC;UAAEC,UAAU,EAAE;YAAE,eAAe,EAAE,CAAC,YAAY;UAAE;QAAE,CAAC;MACnE,CAAC;MACD+B,MAAM,EAAE;QACNjC,IAAI,EAAE,YAAY;QAClBkC,QAAQ,EAAE,YAAY;QACtBvB,OAAO,EAAE;MACX,CAAC;MACDR,OAAO,EAAE;IACX,CAAC,CAAC;IACFZ,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":[]}
|
|
@@ -24,7 +24,7 @@ import { defineOntology } from "../api/defineOntology.js";
|
|
|
24
24
|
const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
25
25
|
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
26
26
|
export default async function main(args = process.argv) {
|
|
27
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.15.0-beta.
|
|
27
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.15.0-beta.8" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
28
28
|
input: {
|
|
29
29
|
alias: "i",
|
|
30
30
|
describe: "Input file",
|
|
@@ -36,7 +36,7 @@ export function convertActionValidation(action) {
|
|
|
36
36
|
return [p.id, {
|
|
37
37
|
defaultValidation: {
|
|
38
38
|
display: {
|
|
39
|
-
renderHint: renderHintFromBaseType(p, p.validation),
|
|
39
|
+
renderHint: p.renderHint ?? renderHintFromBaseType(p, p.validation),
|
|
40
40
|
visibility: convertActionVisibility(p.validation.defaultVisibility),
|
|
41
41
|
...(p.defaultValue && {
|
|
42
42
|
prefill: p.defaultValue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertActionValidation.js","names":["extractAllowedValues","renderHintFromBaseType","convertActionParameterConditionalOverride","convertActionVisibility","convertSectionConditionalOverride","convertActionValidation","action","actionTypeLevelValidation","rules","Object","fromEntries","validation","condition","type","true","displayMetadata","failureMessage","typeClasses","map","rule","idx","parameterValidations","parameters","p","id","defaultValidation","display","renderHint","visibility","defaultVisibility","defaultValue","prefill","allowedValues","required","convertParameterRequirementConstraint","conditionalOverrides","override","sectionValidations","entries","sections","sectionId","section","defaultDisplayMetadata","hidden","visible","notRequired","min","max","listLength","listLengthValidation","minLength","maxLength"],"sources":["convertActionValidation.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 type {\n OntologyIrActionValidation,\n ParameterRequiredConfiguration,\n} from \"@osdk/client.unstable\";\nimport type { ActionParameterRequirementConstraint } from \"../../api/action/ActionParameterConfiguration.js\";\nimport type { ActionType } from \"../../api/action/ActionType.js\";\nimport {\n extractAllowedValues,\n renderHintFromBaseType,\n} from \"../../api/defineOntology.js\";\nimport { convertActionParameterConditionalOverride } from \"./convertActionParameterConditionalOverride.js\";\nimport { convertActionVisibility } from \"./convertActionVisibility.js\";\nimport { convertSectionConditionalOverride } from \"./convertSectionConditionalOverride.js\";\n\nexport function convertActionValidation(\n action: ActionType,\n): OntologyIrActionValidation {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries(\n (action.validation\n ?? [{\n condition: { type: \"true\", true: {} },\n displayMetadata: { failureMessage: \"\", typeClasses: [] },\n }]).map((rule, idx) => [idx, rule]),\n ),\n },\n parameterValidations: Object.fromEntries(\n (action.parameters ?? []).map(p => {\n return [\n p.id,\n {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p, p.validation),\n visibility: convertActionVisibility(\n p.validation.defaultVisibility,\n ),\n ...p.defaultValue\n && { prefill: p.defaultValue },\n },\n validation: {\n allowedValues: extractAllowedValues(\n p.validation.allowedValues!,\n ),\n required: convertParameterRequirementConstraint(\n p.validation.required!,\n ),\n },\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(\n (override) =>\n convertActionParameterConditionalOverride(\n override,\n p.validation,\n action.parameters,\n ),\n ) ?? [],\n },\n ];\n }),\n ),\n sectionValidations: {\n ...Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, section],\n ) => [\n section.id,\n {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\"\n ? {\n visibility: {\n type: \"hidden\",\n hidden: {},\n },\n }\n : {\n visibility: {\n type: \"visible\",\n visible: {},\n },\n },\n conditionalOverrides: section.conditionalOverrides?.map(\n (override) =>\n convertSectionConditionalOverride(\n override,\n section.defaultVisibility ?? \"visible\",\n action.parameters,\n ),\n ) ?? [],\n },\n ]),\n ),\n },\n };\n}\n\nfunction convertParameterRequirementConstraint(\n required: ActionParameterRequirementConstraint,\n): ParameterRequiredConfiguration {\n if (typeof required === \"boolean\") {\n return required\n ? { type: \"required\", required: {} }\n : { type: \"notRequired\", notRequired: {} };\n }\n const { min, max } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: { minLength: min, maxLength: max },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SACEA,oBAAoB,EACpBC,sBAAsB,QACjB,6BAA6B;AACpC,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1G,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,iCAAiC,QAAQ,wCAAwC;AAE1F,OAAO,SAASC,uBAAuBA,CACrCC,MAAkB,EACU;EAC5B,OAAO;IACLC,yBAAyB,EAAE;MACzBC,KAAK,EAAEC,MAAM,CAACC,WAAW,CACvB,CAACJ,MAAM,CAACK,UAAU,IACb,CAAC;QACFC,SAAS,EAAE;UAAEC,IAAI,EAAE,MAAM;UAAEC,IAAI,EAAE,CAAC;QAAE,CAAC;QACrCC,eAAe,EAAE;UAAEC,cAAc,EAAE,EAAE;UAAEC,WAAW,EAAE;QAAG;MACzD,CAAC,CAAC,EAAEC,GAAG,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAK,CAACA,GAAG,EAAED,IAAI,CAAC,CACtC;IACF,CAAC;IACDE,oBAAoB,EAAEZ,MAAM,CAACC,WAAW,CACtC,CAACJ,MAAM,CAACgB,UAAU,IAAI,EAAE,EAAEJ,GAAG,CAACK,CAAC,IAAI;MACjC,OAAO,CACLA,CAAC,CAACC,EAAE,EACJ;QACEC,iBAAiB,EAAE;UACjBC,OAAO,EAAE;YACPC,UAAU,
|
|
1
|
+
{"version":3,"file":"convertActionValidation.js","names":["extractAllowedValues","renderHintFromBaseType","convertActionParameterConditionalOverride","convertActionVisibility","convertSectionConditionalOverride","convertActionValidation","action","actionTypeLevelValidation","rules","Object","fromEntries","validation","condition","type","true","displayMetadata","failureMessage","typeClasses","map","rule","idx","parameterValidations","parameters","p","id","defaultValidation","display","renderHint","visibility","defaultVisibility","defaultValue","prefill","allowedValues","required","convertParameterRequirementConstraint","conditionalOverrides","override","sectionValidations","entries","sections","sectionId","section","defaultDisplayMetadata","hidden","visible","notRequired","min","max","listLength","listLengthValidation","minLength","maxLength"],"sources":["convertActionValidation.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 type {\n OntologyIrActionValidation,\n ParameterRequiredConfiguration,\n} from \"@osdk/client.unstable\";\nimport type { ActionParameterRequirementConstraint } from \"../../api/action/ActionParameterConfiguration.js\";\nimport type { ActionType } from \"../../api/action/ActionType.js\";\nimport {\n extractAllowedValues,\n renderHintFromBaseType,\n} from \"../../api/defineOntology.js\";\nimport { convertActionParameterConditionalOverride } from \"./convertActionParameterConditionalOverride.js\";\nimport { convertActionVisibility } from \"./convertActionVisibility.js\";\nimport { convertSectionConditionalOverride } from \"./convertSectionConditionalOverride.js\";\n\nexport function convertActionValidation(\n action: ActionType,\n): OntologyIrActionValidation {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries(\n (action.validation\n ?? [{\n condition: { type: \"true\", true: {} },\n displayMetadata: { failureMessage: \"\", typeClasses: [] },\n }]).map((rule, idx) => [idx, rule]),\n ),\n },\n parameterValidations: Object.fromEntries(\n (action.parameters ?? []).map(p => {\n return [\n p.id,\n {\n defaultValidation: {\n display: {\n renderHint: p.renderHint\n ?? renderHintFromBaseType(p, p.validation),\n visibility: convertActionVisibility(\n p.validation.defaultVisibility,\n ),\n ...p.defaultValue\n && { prefill: p.defaultValue },\n },\n validation: {\n allowedValues: extractAllowedValues(\n p.validation.allowedValues!,\n ),\n required: convertParameterRequirementConstraint(\n p.validation.required!,\n ),\n },\n },\n conditionalOverrides: p.validation.conditionalOverrides?.map(\n (override) =>\n convertActionParameterConditionalOverride(\n override,\n p.validation,\n action.parameters,\n ),\n ) ?? [],\n },\n ];\n }),\n ),\n sectionValidations: {\n ...Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, section],\n ) => [\n section.id,\n {\n defaultDisplayMetadata: section.defaultVisibility === \"hidden\"\n ? {\n visibility: {\n type: \"hidden\",\n hidden: {},\n },\n }\n : {\n visibility: {\n type: \"visible\",\n visible: {},\n },\n },\n conditionalOverrides: section.conditionalOverrides?.map(\n (override) =>\n convertSectionConditionalOverride(\n override,\n section.defaultVisibility ?? \"visible\",\n action.parameters,\n ),\n ) ?? [],\n },\n ]),\n ),\n },\n };\n}\n\nfunction convertParameterRequirementConstraint(\n required: ActionParameterRequirementConstraint,\n): ParameterRequiredConfiguration {\n if (typeof required === \"boolean\") {\n return required\n ? { type: \"required\", required: {} }\n : { type: \"notRequired\", notRequired: {} };\n }\n const { min, max } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: { minLength: min, maxLength: max },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { convertInterfaceProperty } from "./convertInterfacePropertyType.js";
|
|
17
18
|
import { convertSpt } from "./convertSpt.js";
|
|
18
19
|
export function convertInterface(interfaceType) {
|
|
19
20
|
const {
|
|
@@ -40,8 +41,7 @@ export function convertInterface(interfaceType) {
|
|
|
40
41
|
extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),
|
|
41
42
|
// these are omitted from our internal types but we need to re-add them for the final json
|
|
42
43
|
properties: [],
|
|
43
|
-
|
|
44
|
-
propertiesV3: {}
|
|
44
|
+
propertiesV3: Object.fromEntries(Object.entries(interfaceType.propertiesV3).map(([apiName, prop]) => convertInterfaceProperty(prop, apiName)))
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
//# sourceMappingURL=convertInterface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertInterface.js","names":["convertSpt","convertInterface","interfaceType","__type","other","propertiesV2","Object","fromEntries","values","map","spt","sharedPropertyType","apiName","required","displayMetadata","displayName","description","icon","type","blueprint","color","locator","extendsInterfaces","i","properties","propertiesV3"],"sources":["convertInterface.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 type { OntologyIrMarketplaceInterfaceType } from \"@osdk/client.unstable\";\nimport type { InterfaceType } from \"../../api/interface/InterfaceType.js\";\nimport { convertSpt } from \"./convertSpt.js\";\n\nexport function convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrMarketplaceInterfaceType {\n const { __type, ...other } = interfaceType;\n return {\n ...other,\n propertiesV2: Object.fromEntries(\n Object.values(interfaceType.propertiesV2)\n .map((\n spt,\n ) => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType),\n }]),\n ),\n displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description,\n icon: interfaceType.displayMetadata.icon ?? {\n type: \"blueprint\",\n blueprint: { color: \"#4C90F0\", locator: \"layout-hierarchy\" },\n },\n },\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n
|
|
1
|
+
{"version":3,"file":"convertInterface.js","names":["convertInterfaceProperty","convertSpt","convertInterface","interfaceType","__type","other","propertiesV2","Object","fromEntries","values","map","spt","sharedPropertyType","apiName","required","displayMetadata","displayName","description","icon","type","blueprint","color","locator","extendsInterfaces","i","properties","propertiesV3","entries","prop"],"sources":["convertInterface.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 type { OntologyIrMarketplaceInterfaceType } from \"@osdk/client.unstable\";\nimport type { InterfaceType } from \"../../api/interface/InterfaceType.js\";\nimport { convertInterfaceProperty } from \"./convertInterfacePropertyType.js\";\nimport { convertSpt } from \"./convertSpt.js\";\n\nexport function convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrMarketplaceInterfaceType {\n const { __type, ...other } = interfaceType;\n return {\n ...other,\n propertiesV2: Object.fromEntries(\n Object.values(interfaceType.propertiesV2)\n .map((\n spt,\n ) => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType),\n }]),\n ),\n displayMetadata: {\n displayName: interfaceType.displayMetadata.displayName,\n description: interfaceType.displayMetadata.description,\n icon: interfaceType.displayMetadata.icon ?? {\n type: \"blueprint\",\n blueprint: { color: \"#4C90F0\", locator: \"layout-hierarchy\" },\n },\n },\n extendsInterfaces: interfaceType.extendsInterfaces.map(i => i.apiName),\n // these are omitted from our internal types but we need to re-add them for the final json\n properties: [],\n propertiesV3: Object.fromEntries(\n Object.entries(interfaceType.propertiesV3).map(([apiName, prop]) =>\n convertInterfaceProperty(prop, apiName)\n ),\n ),\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,wBAAwB,QAAQ,mCAAmC;AAC5E,SAASC,UAAU,QAAQ,iBAAiB;AAE5C,OAAO,SAASC,gBAAgBA,CAC9BC,aAA4B,EACQ;EACpC,MAAM;IAAEC,MAAM;IAAE,GAAGC;EAAM,CAAC,GAAGF,aAAa;EAC1C,OAAO;IACL,GAAGE,KAAK;IACRC,YAAY,EAAEC,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,MAAM,CAACN,aAAa,CAACG,YAAY,CAAC,CACtCI,GAAG,CACFC,GAAG,IACA,CAACA,GAAG,CAACC,kBAAkB,CAACC,OAAO,EAAE;MACpCC,QAAQ,EAAEH,GAAG,CAACG,QAAQ;MACtBF,kBAAkB,EAAEX,UAAU,CAACU,GAAG,CAACC,kBAAkB;IACvD,CAAC,CAAC,CACN,CAAC;IACDG,eAAe,EAAE;MACfC,WAAW,EAAEb,aAAa,CAACY,eAAe,CAACC,WAAW;MACtDC,WAAW,EAAEd,aAAa,CAACY,eAAe,CAACE,WAAW;MACtDC,IAAI,EAAEf,aAAa,CAACY,eAAe,CAACG,IAAI,IAAI;QAC1CC,IAAI,EAAE,WAAW;QACjBC,SAAS,EAAE;UAAEC,KAAK,EAAE,SAAS;UAAEC,OAAO,EAAE;QAAmB;MAC7D;IACF,CAAC;IACDC,iBAAiB,EAAEpB,aAAa,CAACoB,iBAAiB,CAACb,GAAG,CAACc,CAAC,IAAIA,CAAC,CAACX,OAAO,CAAC;IACtE;IACAY,UAAU,EAAE,EAAE;IACdC,YAAY,EAAEnB,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACoB,OAAO,CAACxB,aAAa,CAACuB,YAAY,CAAC,CAAChB,GAAG,CAAC,CAAC,CAACG,OAAO,EAAEe,IAAI,CAAC,KAC7D5B,wBAAwB,CAAC4B,IAAI,EAAEf,OAAO,CACxC,CACF;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { isInterfaceSharedPropertyType } from "../../api/interface/InterfacePropertyType.js";
|
|
18
|
+
import { convertNullabilityToDataConstraint } from "./convertNullabilityToDataConstraint.js";
|
|
19
|
+
import { convertSpt } from "./convertSpt.js";
|
|
20
|
+
import { propertyTypeTypeToOntologyIrInterfaceType } from "./propertyTypeTypeToOntologyIrInterfaceType.js";
|
|
21
|
+
export function convertInterfaceProperty(prop, apiName) {
|
|
22
|
+
if (isInterfaceSharedPropertyType(prop)) {
|
|
23
|
+
return [prop.sharedPropertyType.apiName, {
|
|
24
|
+
type: "sharedPropertyBasedPropertyType",
|
|
25
|
+
sharedPropertyBasedPropertyType: {
|
|
26
|
+
requireImplementation: prop.required,
|
|
27
|
+
sharedPropertyType: convertSpt(prop.sharedPropertyType)
|
|
28
|
+
}
|
|
29
|
+
}];
|
|
30
|
+
} else {
|
|
31
|
+
return [apiName, {
|
|
32
|
+
type: "interfaceDefinedPropertyType",
|
|
33
|
+
interfaceDefinedPropertyType: {
|
|
34
|
+
apiName: apiName,
|
|
35
|
+
displayMetadata: {
|
|
36
|
+
displayName: prop.displayName ?? apiName,
|
|
37
|
+
visibility: prop.visibility ?? "NORMAL",
|
|
38
|
+
description: prop.description
|
|
39
|
+
},
|
|
40
|
+
type: prop.array ? {
|
|
41
|
+
type: "array",
|
|
42
|
+
array: {
|
|
43
|
+
subtype: propertyTypeTypeToOntologyIrInterfaceType(prop.type)
|
|
44
|
+
}
|
|
45
|
+
} : propertyTypeTypeToOntologyIrInterfaceType(prop.type),
|
|
46
|
+
constraints: {
|
|
47
|
+
primaryKeyConstraint: prop.primaryKeyConstraint ?? "NO_RESTRICTION",
|
|
48
|
+
requireImplementation: prop.required ?? true,
|
|
49
|
+
indexedForSearch: true,
|
|
50
|
+
typeClasses: prop.typeClasses ?? [],
|
|
51
|
+
dataConstraints: convertNullabilityToDataConstraint({
|
|
52
|
+
type: prop.type,
|
|
53
|
+
nullability: prop.nullability
|
|
54
|
+
}),
|
|
55
|
+
valueType: prop.valueType ? {
|
|
56
|
+
apiName: prop.valueType.apiName,
|
|
57
|
+
version: prop.valueType.version,
|
|
58
|
+
packageNamespace: prop.valueType.packageNamespace,
|
|
59
|
+
displayMetadata: prop.valueType.displayMetadata
|
|
60
|
+
} : undefined
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=convertInterfacePropertyType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertInterfacePropertyType.js","names":["isInterfaceSharedPropertyType","convertNullabilityToDataConstraint","convertSpt","propertyTypeTypeToOntologyIrInterfaceType","convertInterfaceProperty","prop","apiName","sharedPropertyType","type","sharedPropertyBasedPropertyType","requireImplementation","required","interfaceDefinedPropertyType","displayMetadata","displayName","visibility","description","array","subtype","constraints","primaryKeyConstraint","indexedForSearch","typeClasses","dataConstraints","nullability","valueType","version","packageNamespace","undefined"],"sources":["convertInterfacePropertyType.ts"],"sourcesContent":["/*\n * Copyright 2026 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 type { OntologyIrMarketplaceInterfacePropertyType } from \"@osdk/client.unstable\";\nimport {\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"../../api/interface/InterfacePropertyType.js\";\nimport { convertNullabilityToDataConstraint } from \"./convertNullabilityToDataConstraint.js\";\nimport { convertSpt } from \"./convertSpt.js\";\nimport { propertyTypeTypeToOntologyIrInterfaceType } from \"./propertyTypeTypeToOntologyIrInterfaceType.js\";\n\nexport function convertInterfaceProperty(\n prop: InterfacePropertyType,\n apiName: string,\n): [string, OntologyIrMarketplaceInterfacePropertyType] {\n if (isInterfaceSharedPropertyType(prop)) {\n return [prop.sharedPropertyType.apiName, {\n type: \"sharedPropertyBasedPropertyType\",\n sharedPropertyBasedPropertyType: {\n requireImplementation: prop.required,\n sharedPropertyType: convertSpt(prop.sharedPropertyType),\n },\n }];\n } else {\n return [apiName, {\n type: \"interfaceDefinedPropertyType\",\n interfaceDefinedPropertyType: {\n apiName: apiName,\n displayMetadata: {\n displayName: prop.displayName ?? apiName,\n visibility: prop.visibility ?? \"NORMAL\",\n description: prop.description,\n },\n type: prop.array\n ? {\n type: \"array\" as const,\n array: {\n subtype: propertyTypeTypeToOntologyIrInterfaceType(prop.type),\n },\n }\n : propertyTypeTypeToOntologyIrInterfaceType(prop.type),\n constraints: {\n primaryKeyConstraint: prop.primaryKeyConstraint ?? \"NO_RESTRICTION\",\n requireImplementation: prop.required ?? true,\n indexedForSearch: true,\n typeClasses: prop.typeClasses ?? [],\n dataConstraints: convertNullabilityToDataConstraint({\n type: prop.type,\n nullability: prop.nullability,\n }),\n valueType: prop.valueType\n ? {\n apiName: prop.valueType.apiName,\n version: prop.valueType.version,\n packageNamespace: prop.valueType.packageNamespace,\n displayMetadata: prop.valueType.displayMetadata,\n }\n : undefined,\n },\n },\n }];\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAEEA,6BAA6B,QACxB,8CAA8C;AACrD,SAASC,kCAAkC,QAAQ,yCAAyC;AAC5F,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,yCAAyC,QAAQ,gDAAgD;AAE1G,OAAO,SAASC,wBAAwBA,CACtCC,IAA2B,EAC3BC,OAAe,EACuC;EACtD,IAAIN,6BAA6B,CAACK,IAAI,CAAC,EAAE;IACvC,OAAO,CAACA,IAAI,CAACE,kBAAkB,CAACD,OAAO,EAAE;MACvCE,IAAI,EAAE,iCAAiC;MACvCC,+BAA+B,EAAE;QAC/BC,qBAAqB,EAAEL,IAAI,CAACM,QAAQ;QACpCJ,kBAAkB,EAAEL,UAAU,CAACG,IAAI,CAACE,kBAAkB;MACxD;IACF,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,OAAO,CAACD,OAAO,EAAE;MACfE,IAAI,EAAE,8BAA8B;MACpCI,4BAA4B,EAAE;QAC5BN,OAAO,EAAEA,OAAO;QAChBO,eAAe,EAAE;UACfC,WAAW,EAAET,IAAI,CAACS,WAAW,IAAIR,OAAO;UACxCS,UAAU,EAAEV,IAAI,CAACU,UAAU,IAAI,QAAQ;UACvCC,WAAW,EAAEX,IAAI,CAACW;QACpB,CAAC;QACDR,IAAI,EAAEH,IAAI,CAACY,KAAK,GACZ;UACAT,IAAI,EAAE,OAAgB;UACtBS,KAAK,EAAE;YACLC,OAAO,EAAEf,yCAAyC,CAACE,IAAI,CAACG,IAAI;UAC9D;QACF,CAAC,GACCL,yCAAyC,CAACE,IAAI,CAACG,IAAI,CAAC;QACxDW,WAAW,EAAE;UACXC,oBAAoB,EAAEf,IAAI,CAACe,oBAAoB,IAAI,gBAAgB;UACnEV,qBAAqB,EAAEL,IAAI,CAACM,QAAQ,IAAI,IAAI;UAC5CU,gBAAgB,EAAE,IAAI;UACtBC,WAAW,EAAEjB,IAAI,CAACiB,WAAW,IAAI,EAAE;UACnCC,eAAe,EAAEtB,kCAAkC,CAAC;YAClDO,IAAI,EAAEH,IAAI,CAACG,IAAI;YACfgB,WAAW,EAAEnB,IAAI,CAACmB;UACpB,CAAC,CAAC;UACFC,SAAS,EAAEpB,IAAI,CAACoB,SAAS,GACrB;YACAnB,OAAO,EAAED,IAAI,CAACoB,SAAS,CAACnB,OAAO;YAC/BoB,OAAO,EAAErB,IAAI,CAACoB,SAAS,CAACC,OAAO;YAC/BC,gBAAgB,EAAEtB,IAAI,CAACoB,SAAS,CAACE,gBAAgB;YACjDd,eAAe,EAAER,IAAI,CAACoB,SAAS,CAACZ;UAClC,CAAC,GACCe;QACN;MACF;IACF,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -144,10 +144,7 @@ export function convertLink(linkType) {
|
|
|
144
144
|
linkType: {
|
|
145
145
|
definition: definition,
|
|
146
146
|
id: cleanAndValidateLinkTypeId(linkType.apiName),
|
|
147
|
-
status: linkType.status
|
|
148
|
-
type: "active",
|
|
149
|
-
active: {}
|
|
150
|
-
},
|
|
147
|
+
status: convertLinkStatus(linkType.status),
|
|
151
148
|
redacted: linkType.redacted ?? false
|
|
152
149
|
},
|
|
153
150
|
datasources: datasource !== undefined ? [datasource] : [],
|
|
@@ -214,4 +211,33 @@ export function getObject(object) {
|
|
|
214
211
|
object: fullObject
|
|
215
212
|
};
|
|
216
213
|
}
|
|
214
|
+
export function convertLinkStatus(status) {
|
|
215
|
+
if (typeof status === "object" && "type" in status && status.type === "deprecated") {
|
|
216
|
+
return {
|
|
217
|
+
type: "deprecated",
|
|
218
|
+
deprecated: {
|
|
219
|
+
message: status.message,
|
|
220
|
+
deadline: status.deadline
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
switch (status) {
|
|
225
|
+
case "experimental":
|
|
226
|
+
return {
|
|
227
|
+
type: "experimental",
|
|
228
|
+
experimental: {}
|
|
229
|
+
};
|
|
230
|
+
case "example":
|
|
231
|
+
return {
|
|
232
|
+
type: "example",
|
|
233
|
+
example: {}
|
|
234
|
+
};
|
|
235
|
+
case "active":
|
|
236
|
+
default:
|
|
237
|
+
return {
|
|
238
|
+
type: "active",
|
|
239
|
+
active: {}
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
}
|
|
217
243
|
//# sourceMappingURL=convertLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertLink.js","names":["invariant","OntologyEntityTypeEnum","cleanAndValidateLinkTypeId","ontologyDefinition","convertCardinality","convertLink","linkType","validateLink","definition","datasource","undefined","apiName","oneObjectApiName","object","oneObject","getObject","one","toManyObjectApiName","toManyObject","toMany","type","oneToMany","cardinalityHint","cardinality","manyToOneLinkMetadata","metadata","objectTypeRidManySide","objectTypeRidOneSide","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","primaryKeyPropertyApiName","to","manyForeignKeyProperty","manyObjectApiName","manyObject","many","intermediary","objectTypeAToBLinkMetadata","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","intermediaryObjectTypeRid","intermediaryObjectType","aToIntermediaryLinkTypeRid","linkToIntermediary","intermediaryToBLinkTypeRid","manyToMany","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","datasourceName","dataset","datasetRid","concat","writebackDatasetRid","objectTypeAPrimaryKeyMapping","property","column","objectTypeBPrimaryKeyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","id","status","active","datasources","entityMetadata","arePatchesEnabled","editsEnabled","linkDefinition","foreignKey","properties","find","p","process","env","NODE_ENV","test","typesMatch","intermediaryObjectTypeApiName","manyIntermediaryOneObjectApiName","manyIntermediaryOneObject","manyIntermediaryToManyObjectApiName","manyIntermediaryToManyObject","toManyIntermediaryOneObjectApiName","toManyIntermediaryOneObject","toManyIntermediaryToManyObjectApiName","toManyIntermediaryToManyObject","objectApiName","fullObject","OBJECT_TYPE"],"sources":["convertLink.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 type {\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"../../api/common/OntologyEntityTypeEnum.js\";\nimport {\n cleanAndValidateLinkTypeId,\n ontologyDefinition,\n} from \"../../api/defineOntology.js\";\nimport type { LinkType } from \"../../api/links/LinkType.js\";\nimport type { ObjectType } from \"../../api/object/ObjectType.js\";\nimport type { ObjectTypeDefinition } from \"../../api/object/ObjectTypeDefinition.js\";\nimport { convertCardinality } from \"./convertCardinality.js\";\n\nexport function convertLink(\n linkType: LinkType,\n): OntologyIrLinkTypeBlockDataV2 {\n validateLink(linkType);\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkType.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: toManyObjectApiName,\n objectTypeRidOneSide: oneObjectApiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: oneObject.primaryKeyPropertyApiName,\n object: oneObjectApiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: toManyObjectApiName,\n },\n }],\n },\n };\n } else if (\"intermediaryObjectType\" in linkType) {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n definition = {\n type: \"intermediary\",\n intermediary: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectApiName,\n objectTypeRidB: toManyObjectApiName,\n intermediaryObjectTypeRid: linkType.intermediaryObjectType.apiName,\n aToIntermediaryLinkTypeRid: cleanAndValidateLinkTypeId(\n linkType.many.linkToIntermediary.apiName,\n ),\n intermediaryToBLinkTypeRid: cleanAndValidateLinkTypeId(\n linkType.toMany.linkToIntermediary.apiName,\n ),\n },\n };\n } else {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectApiName,\n objectTypeRidB: toManyObjectApiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: manyObject.primaryKeyPropertyApiName,\n object: manyObjectApiName,\n },\n to: {\n apiName: manyObject.primaryKeyPropertyApiName,\n object: manyObjectApiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: toManyObject.primaryKeyPropertyApiName,\n object: toManyObjectApiName,\n },\n to: {\n apiName: toManyObject.primaryKeyPropertyApiName,\n object: toManyObjectApiName,\n },\n }],\n },\n };\n\n datasource = {\n datasourceName: linkType.apiName,\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: manyObject.primaryKeyPropertyApiName,\n object: manyObjectApiName,\n },\n column: manyObject.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: toManyObject.primaryKeyPropertyApiName,\n object: toManyObjectApiName,\n },\n column: toManyObject.primaryKeyPropertyApiName,\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: linkType.status ?? { type: \"active\", active: {} },\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n },\n };\n}\nfunction validateLink(linkDefinition: LinkType) {\n if (\"one\" in linkDefinition) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkDefinition.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n const foreignKey = toManyObject.properties?.find(p =>\n p.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${toManyObjectApiName}`,\n );\n\n invariant(\n /([a-z][a-z0-9\\\\-]*)/.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === oneObject.properties?.find(p =>\n p.apiName === oneObject.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n const {\n apiName: intermediaryObjectTypeApiName,\n object: intermediaryObjectType,\n } = getObject(linkDefinition.intermediaryObjectType);\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkDefinition.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n\n const {\n apiName: manyIntermediaryOneObjectApiName,\n object: manyIntermediaryOneObject,\n } = getObject((linkDefinition.many.linkToIntermediary as any).one.object);\n const {\n apiName: manyIntermediaryToManyObjectApiName,\n object: manyIntermediaryToManyObject,\n } = getObject(linkDefinition.many.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && manyIntermediaryOneObjectApiName\n === manyObject.apiName\n && manyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectA ${manyObjectApiName}`,\n );\n\n const {\n apiName: toManyIntermediaryOneObjectApiName,\n object: toManyIntermediaryOneObject,\n } = getObject((linkDefinition.toMany.linkToIntermediary as any).one.object);\n const {\n apiName: toManyIntermediaryToManyObjectApiName,\n object: toManyIntermediaryToManyObject,\n } = getObject(linkDefinition.toMany.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && toManyIntermediaryOneObjectApiName\n === toManyObjectApiName\n && toManyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectB ${toManyObjectApiName}`,\n );\n }\n}\n\nexport function getObject(\n object: string | ObjectTypeDefinition,\n): { apiName: string; object: ObjectType } {\n const objectApiName = typeof object === \"string\" ? object : object.apiName;\n const fullObject =\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];\n invariant(\n fullObject !== undefined,\n `Object ${objectApiName} is not defined`,\n );\n return { apiName: objectApiName, object: fullObject };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,sBAAsB,QAAQ,4CAA4C;AACnF,SACEC,0BAA0B,EAC1BC,kBAAkB,QACb,6BAA6B;AAIpC,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,OAAO,SAASC,WAAWA,CACzBC,QAAkB,EACa;EAC/BC,YAAY,CAACD,QAAQ,CAAC;EACtB,IAAIE,UAAoC;EACxC,IAAIC,UAA8D,GAChEC,SAAS;EACX,IAAI,KAAK,IAAIJ,QAAQ,EAAE;IACrB,MAAM;MAAEK,OAAO,EAAEC,gBAAgB;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGC,SAAS,CAChET,QAAQ,CAACU,GAAG,CAACH,MACf,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtET,QAAQ,CAACa,MAAM,CAACN,MAClB,CAAC;IACDL,UAAU,GAAG;MACXY,IAAI,EAAE,WAAW;MACjBC,SAAS,EAAE;QACTC,eAAe,EAAElB,kBAAkB,CAACE,QAAQ,CAACiB,WAAW,CAAC;QACzDC,qBAAqB,EAAElB,QAAQ,CAACa,MAAM,CAACM,QAAQ;QAC/CC,qBAAqB,EAAET,mBAAmB;QAC1CU,oBAAoB,EAAEf,gBAAgB;QACtCgB,qBAAqB,EAAEtB,QAAQ,CAACU,GAAG,CAACS,QAAQ;QAC5CI,0CAA0C,EAAE,CAAC;UAC3CC,IAAI,EAAE;YACJnB,OAAO,EAAEG,SAAS,CAACiB,yBAAyB;YAC5ClB,MAAM,EAAED;UACV,CAAC;UACDoB,EAAE,EAAE;YACFrB,OAAO,EAAEL,QAAQ,CAAC2B,sBAAsB;YACxCpB,MAAM,EAAEI;UACV;QACF,CAAC;MACH;IACF,CAAC;EACH,CAAC,MAAM,IAAI,wBAAwB,IAAIX,QAAQ,EAAE;IAC/C,MAAM;MAAEK,OAAO,EAAEuB,iBAAiB;MAAErB,MAAM,EAAEsB;IAAW,CAAC,GAAGpB,SAAS,CAClET,QAAQ,CAAC8B,IAAI,CAACvB,MAChB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtET,QAAQ,CAACa,MAAM,CAACN,MAClB,CAAC;IACDL,UAAU,GAAG;MACXY,IAAI,EAAE,cAAc;MACpBiB,YAAY,EAAE;QACZC,0BAA0B,EAAEhC,QAAQ,CAAC8B,IAAI,CAACX,QAAQ;QAClDc,0BAA0B,EAAEjC,QAAQ,CAACa,MAAM,CAACM,QAAQ;QACpDe,cAAc,EAAEN,iBAAiB;QACjCO,cAAc,EAAExB,mBAAmB;QACnCyB,yBAAyB,EAAEpC,QAAQ,CAACqC,sBAAsB,CAAChC,OAAO;QAClEiC,0BAA0B,EAAE1C,0BAA0B,CACpDI,QAAQ,CAAC8B,IAAI,CAACS,kBAAkB,CAAClC,OACnC,CAAC;QACDmC,0BAA0B,EAAE5C,0BAA0B,CACpDI,QAAQ,CAACa,MAAM,CAAC0B,kBAAkB,CAAClC,OACrC;MACF;IACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM;MAAEA,OAAO,EAAEuB,iBAAiB;MAAErB,MAAM,EAAEsB;IAAW,CAAC,GAAGpB,SAAS,CAClET,QAAQ,CAAC8B,IAAI,CAACvB,MAChB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtET,QAAQ,CAACa,MAAM,CAACN,MAClB,CAAC;IACDL,UAAU,GAAG;MACXY,IAAI,EAAE,YAAY;MAClB2B,UAAU,EAAE;QACVT,0BAA0B,EAAEhC,QAAQ,CAAC8B,IAAI,CAACX,QAAQ;QAClDc,0BAA0B,EAAEjC,QAAQ,CAACa,MAAM,CAACM,QAAQ;QACpDe,cAAc,EAAEN,iBAAiB;QACjCO,cAAc,EAAExB,mBAAmB;QACnC+B,eAAe,EAAEtC,SAAS;QAC1BuC,oCAAoC,EAAE,CAAC;UACrCnB,IAAI,EAAE;YACJnB,OAAO,EAAEwB,UAAU,CAACJ,yBAAyB;YAC7ClB,MAAM,EAAEqB;UACV,CAAC;UACDF,EAAE,EAAE;YACFrB,OAAO,EAAEwB,UAAU,CAACJ,yBAAyB;YAC7ClB,MAAM,EAAEqB;UACV;QACF,CAAC,CAAC;QACFgB,oCAAoC,EAAE,CAAC;UACrCpB,IAAI,EAAE;YACJnB,OAAO,EAAEO,YAAY,CAACa,yBAAyB;YAC/ClB,MAAM,EAAEI;UACV,CAAC;UACDe,EAAE,EAAE;YACFrB,OAAO,EAAEO,YAAY,CAACa,yBAAyB;YAC/ClB,MAAM,EAAEI;UACV;QACF,CAAC;MACH;IACF,CAAC;IAEDR,UAAU,GAAG;MACX0C,cAAc,EAAE7C,QAAQ,CAACK,OAAO;MAChCF,UAAU,EAAE;QACVW,IAAI,EAAE,SAAS;QACfgC,OAAO,EAAE;UACPC,UAAU,EAAE,OAAO,CAACC,MAAM,CAAChD,QAAQ,CAACK,OAAO,CAAC;UAC5C4C,mBAAmB,EAAE7C,SAAS;UAC9B8C,4BAA4B,EAAE,CAAC;YAC7BC,QAAQ,EAAE;cACR9C,OAAO,EAAEwB,UAAU,CAACJ,yBAAyB;cAC7ClB,MAAM,EAAEqB;YACV,CAAC;YACDwB,MAAM,EAAEvB,UAAU,CAACJ;UACrB,CAAC,CAAC;UACF4B,4BAA4B,EAAE,CAAC;YAC7BF,QAAQ,EAAE;cACR9C,OAAO,EAAEO,YAAY,CAACa,yBAAyB;cAC/ClB,MAAM,EAAEI;YACV,CAAC;YACDyC,MAAM,EAAExC,YAAY,CAACa;UACvB,CAAC;QACH;MACF,CAAC;MACD6B,kBAAkB,EAAE;QAClBC,wBAAwB,EAAE;MAC5B,CAAC;MACDC,QAAQ,EAAExD,QAAQ,CAACwD;IACrB,CAAC;EACH;EAEA,OAAO;IACLxD,QAAQ,EAAE;MACRE,UAAU,EAAEA,UAAU;MACtBuD,EAAE,EAAE7D,0BAA0B,CAACI,QAAQ,CAACK,OAAO,CAAC;MAChDqD,MAAM,EAAE1D,QAAQ,CAAC0D,MAAM,IAAI;QAAE5C,IAAI,EAAE,QAAQ;QAAE6C,MAAM,EAAE,CAAC;MAAE,CAAC;MACzDH,QAAQ,EAAExD,QAAQ,CAACwD,QAAQ,IAAI;IACjC,CAAC;IACDI,WAAW,EAAEzD,UAAU,KAAKC,SAAS,GAAG,CAACD,UAAU,CAAC,GAAG,EAAE;IACzD0D,cAAc,EAAE;MACdC,iBAAiB,EAAE9D,QAAQ,CAAC+D,YAAY,IAAI;IAC9C;EACF,CAAC;AACH;AACA,SAAS9D,YAAYA,CAAC+D,cAAwB,EAAE;EAC9C,IAAI,KAAK,IAAIA,cAAc,EAAE;IAC3B,MAAM;MAAE3D,OAAO,EAAEC,gBAAgB;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGC,SAAS,CAChEuD,cAAc,CAACtD,GAAG,CAACH,MACrB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEuD,cAAc,CAACnD,MAAM,CAACN,MACxB,CAAC;IACD,MAAM0D,UAAU,GAAGrD,YAAY,CAACsD,UAAU,EAAEC,IAAI,CAACC,CAAC,IAChDA,CAAC,CAAC/D,OAAO,KAAK2D,cAAc,CAACrC,sBAC/B,CAAC;IACD,EACEsC,UAAU,KAAK7D,SAAS,IAAAiE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1B7E,SAAS,QAEP,eAAesE,cAAc,CAACrC,sBAAsB,YAAYqC,cAAc,CAAC3D,OAAO,6BAA6BM,mBAAmB,EAAE,IAF1IjB,SAAS;IAKT,CACE,qBAAqB,CAAC8E,IAAI,CAACR,cAAc,CAAC3D,OAAO,CAAC,GAAAgE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpD7E,SAAS,QAEP,wFAAwFsE,cAAc,CAAC3D,OAAO,iBAAiB,IAFjIX,SAAS;IAKT,MAAM+E,UAAU,GAAGR,UAAU,CAACnD,IAAI,KAC5BN,SAAS,CAAC0D,UAAU,EAAEC,IAAI,CAACC,CAAC,IAC9BA,CAAC,CAAC/D,OAAO,KAAKG,SAAS,CAACiB,yBAC1B,CAAC,EAAEX,IAAI;IACT,CACE2D,UAAU,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZ7E,SAAS,QAEP,QAAQsE,cAAc,CAAC3D,OAAO,4FAA4F,IAF5HX,SAAS;EAIX;EACA,IAAI,wBAAwB,IAAIsE,cAAc,EAAE;IAC9C,MAAM;MACJ3D,OAAO,EAAEqE,6BAA6B;MACtCnE,MAAM,EAAE8B;IACV,CAAC,GAAG5B,SAAS,CAACuD,cAAc,CAAC3B,sBAAsB,CAAC;IACpD,MAAM;MAAEhC,OAAO,EAAEuB,iBAAiB;MAAErB,MAAM,EAAEsB;IAAW,CAAC,GAAGpB,SAAS,CAClEuD,cAAc,CAAClC,IAAI,CAACvB,MACtB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEuD,cAAc,CAACnD,MAAM,CAACN,MACxB,CAAC;IAED,MAAM;MACJF,OAAO,EAAEsE,gCAAgC;MACzCpE,MAAM,EAAEqE;IACV,CAAC,GAAGnE,SAAS,CAAEuD,cAAc,CAAClC,IAAI,CAACS,kBAAkB,CAAS7B,GAAG,CAACH,MAAM,CAAC;IACzE,MAAM;MACJF,OAAO,EAAEwE,mCAAmC;MAC5CtE,MAAM,EAAEuE;IACV,CAAC,GAAGrE,SAAS,CAACuD,cAAc,CAAClC,IAAI,CAACS,kBAAkB,CAAC1B,MAAM,CAACN,MAAM,CAAC;IACnE,EACE,KAAK,IAAIyD,cAAc,CAAClC,IAAI,CAACS,kBAAkB,IAC1CoC,gCAAgC,KAC7B9C,UAAU,CAACxB,OAAO,IACrBwE,mCAAmC,KAChCH,6BAA6B,IAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALvC7E,SAAS,QAMP,aAAasE,cAAc,CAAClC,IAAI,CAACS,kBAAkB,CAAClC,OAAO,wDAAwDqE,6BAA6B,eAAe9C,iBAAiB,EAAE,IANpLlC,SAAS;IAST,MAAM;MACJW,OAAO,EAAE0E,kCAAkC;MAC3CxE,MAAM,EAAEyE;IACV,CAAC,GAAGvE,SAAS,CAAEuD,cAAc,CAACnD,MAAM,CAAC0B,kBAAkB,CAAS7B,GAAG,CAACH,MAAM,CAAC;IAC3E,MAAM;MACJF,OAAO,EAAE4E,qCAAqC;MAC9C1E,MAAM,EAAE2E;IACV,CAAC,GAAGzE,SAAS,CAACuD,cAAc,CAACnD,MAAM,CAAC0B,kBAAkB,CAAC1B,MAAM,CAACN,MAAM,CAAC;IACrE,EACE,KAAK,IAAIyD,cAAc,CAACnD,MAAM,CAAC0B,kBAAkB,IAC5CwC,kCAAkC,KAC/BpE,mBAAmB,IACtBsE,qCAAqC,KAClCP,6BAA6B,IAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALvC7E,SAAS,QAMP,aAAasE,cAAc,CAACnD,MAAM,CAAC0B,kBAAkB,CAAClC,OAAO,wDAAwDqE,6BAA6B,eAAe/D,mBAAmB,EAAE,IANxLjB,SAAS;EAQX;AACF;AAEA,OAAO,SAASe,SAASA,CACvBF,MAAqC,EACI;EACzC,MAAM4E,aAAa,GAAG,OAAO5E,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAACF,OAAO;EAC1E,MAAM+E,UAAU,GACdvF,kBAAkB,CAACF,sBAAsB,CAAC0F,WAAW,CAAC,CAACF,aAAa,CAAC;EACvE,EACEC,UAAU,KAAKhF,SAAS,IAAAiE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1B7E,SAAS,QAEP,UAAUyF,aAAa,iBAAiB,IAF1CzF,SAAS;EAIT,OAAO;IAAEW,OAAO,EAAE8E,aAAa;IAAE5E,MAAM,EAAE6E;EAAW,CAAC;AACvD","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"convertLink.js","names":["invariant","OntologyEntityTypeEnum","cleanAndValidateLinkTypeId","ontologyDefinition","convertCardinality","convertLink","linkType","validateLink","definition","datasource","undefined","apiName","oneObjectApiName","object","oneObject","getObject","one","toManyObjectApiName","toManyObject","toMany","type","oneToMany","cardinalityHint","cardinality","manyToOneLinkMetadata","metadata","objectTypeRidManySide","objectTypeRidOneSide","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","primaryKeyPropertyApiName","to","manyForeignKeyProperty","manyObjectApiName","manyObject","many","intermediary","objectTypeAToBLinkMetadata","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","intermediaryObjectTypeRid","intermediaryObjectType","aToIntermediaryLinkTypeRid","linkToIntermediary","intermediaryToBLinkTypeRid","manyToMany","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","datasourceName","dataset","datasetRid","concat","writebackDatasetRid","objectTypeAPrimaryKeyMapping","property","column","objectTypeBPrimaryKeyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","id","status","convertLinkStatus","datasources","entityMetadata","arePatchesEnabled","editsEnabled","linkDefinition","foreignKey","properties","find","p","process","env","NODE_ENV","test","typesMatch","intermediaryObjectTypeApiName","manyIntermediaryOneObjectApiName","manyIntermediaryOneObject","manyIntermediaryToManyObjectApiName","manyIntermediaryToManyObject","toManyIntermediaryOneObjectApiName","toManyIntermediaryOneObject","toManyIntermediaryToManyObjectApiName","toManyIntermediaryToManyObject","objectApiName","fullObject","OBJECT_TYPE","deprecated","message","deadline","experimental","example","active"],"sources":["convertLink.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 type {\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrLinkTypeStatus,\n OntologyIrManyToManyLinkTypeDatasource,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"../../api/common/OntologyEntityTypeEnum.js\";\nimport {\n cleanAndValidateLinkTypeId,\n ontologyDefinition,\n} from \"../../api/defineOntology.js\";\nimport type { LinkType, UserLinkTypeStatus } from \"../../api/links/LinkType.js\";\nimport type { ObjectType } from \"../../api/object/ObjectType.js\";\nimport type { ObjectTypeDefinition } from \"../../api/object/ObjectTypeDefinition.js\";\nimport { convertCardinality } from \"./convertCardinality.js\";\n\nexport function convertLink(\n linkType: LinkType,\n): OntologyIrLinkTypeBlockDataV2 {\n validateLink(linkType);\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkType.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: toManyObjectApiName,\n objectTypeRidOneSide: oneObjectApiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: oneObject.primaryKeyPropertyApiName,\n object: oneObjectApiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: toManyObjectApiName,\n },\n }],\n },\n };\n } else if (\"intermediaryObjectType\" in linkType) {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n definition = {\n type: \"intermediary\",\n intermediary: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectApiName,\n objectTypeRidB: toManyObjectApiName,\n intermediaryObjectTypeRid: linkType.intermediaryObjectType.apiName,\n aToIntermediaryLinkTypeRid: cleanAndValidateLinkTypeId(\n linkType.many.linkToIntermediary.apiName,\n ),\n intermediaryToBLinkTypeRid: cleanAndValidateLinkTypeId(\n linkType.toMany.linkToIntermediary.apiName,\n ),\n },\n };\n } else {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectApiName,\n objectTypeRidB: toManyObjectApiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: manyObject.primaryKeyPropertyApiName,\n object: manyObjectApiName,\n },\n to: {\n apiName: manyObject.primaryKeyPropertyApiName,\n object: manyObjectApiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: toManyObject.primaryKeyPropertyApiName,\n object: toManyObjectApiName,\n },\n to: {\n apiName: toManyObject.primaryKeyPropertyApiName,\n object: toManyObjectApiName,\n },\n }],\n },\n };\n\n datasource = {\n datasourceName: linkType.apiName,\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: manyObject.primaryKeyPropertyApiName,\n object: manyObjectApiName,\n },\n column: manyObject.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: toManyObject.primaryKeyPropertyApiName,\n object: toManyObjectApiName,\n },\n column: toManyObject.primaryKeyPropertyApiName,\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: convertLinkStatus(linkType.status),\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n },\n };\n}\nfunction validateLink(linkDefinition: LinkType) {\n if (\"one\" in linkDefinition) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkDefinition.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n const foreignKey = toManyObject.properties?.find(p =>\n p.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${toManyObjectApiName}`,\n );\n\n invariant(\n /([a-z][a-z0-9\\\\-]*)/.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === oneObject.properties?.find(p =>\n p.apiName === oneObject.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n const {\n apiName: intermediaryObjectTypeApiName,\n object: intermediaryObjectType,\n } = getObject(linkDefinition.intermediaryObjectType);\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkDefinition.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n\n const {\n apiName: manyIntermediaryOneObjectApiName,\n object: manyIntermediaryOneObject,\n } = getObject((linkDefinition.many.linkToIntermediary as any).one.object);\n const {\n apiName: manyIntermediaryToManyObjectApiName,\n object: manyIntermediaryToManyObject,\n } = getObject(linkDefinition.many.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && manyIntermediaryOneObjectApiName\n === manyObject.apiName\n && manyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectA ${manyObjectApiName}`,\n );\n\n const {\n apiName: toManyIntermediaryOneObjectApiName,\n object: toManyIntermediaryOneObject,\n } = getObject((linkDefinition.toMany.linkToIntermediary as any).one.object);\n const {\n apiName: toManyIntermediaryToManyObjectApiName,\n object: toManyIntermediaryToManyObject,\n } = getObject(linkDefinition.toMany.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && toManyIntermediaryOneObjectApiName\n === toManyObjectApiName\n && toManyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectB ${toManyObjectApiName}`,\n );\n }\n}\n\nexport function getObject(\n object: string | ObjectTypeDefinition,\n): { apiName: string; object: ObjectType } {\n const objectApiName = typeof object === \"string\" ? object : object.apiName;\n const fullObject =\n ontologyDefinition[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];\n invariant(\n fullObject !== undefined,\n `Object ${objectApiName} is not defined`,\n );\n return { apiName: objectApiName, object: fullObject };\n}\n\nexport function convertLinkStatus(\n status: UserLinkTypeStatus | undefined,\n): OntologyIrLinkTypeStatus {\n if (\n typeof status === \"object\" && \"type\" in status\n && status.type === \"deprecated\"\n ) {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n },\n };\n }\n switch (status) {\n case \"experimental\":\n return { type: \"experimental\", experimental: {} };\n case \"example\":\n return { type: \"example\", example: {} };\n case \"active\":\n default:\n return { type: \"active\", active: {} };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,6 +15,41 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { randomUUID } from "crypto";
|
|
18
|
+
export function convertInterfacePropertyMappingValue(value) {
|
|
19
|
+
switch (value.type) {
|
|
20
|
+
case "uuid":
|
|
21
|
+
return {
|
|
22
|
+
type: "logicRuleValue",
|
|
23
|
+
logicRuleValue: {
|
|
24
|
+
type: "uniqueIdentifier",
|
|
25
|
+
uniqueIdentifier: {
|
|
26
|
+
linkId: value.linkId ?? randomUUID()
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
case "currentTime":
|
|
31
|
+
return {
|
|
32
|
+
type: "logicRuleValue",
|
|
33
|
+
logicRuleValue: {
|
|
34
|
+
type: "currentTime",
|
|
35
|
+
currentTime: {}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
case "currentUser":
|
|
39
|
+
return {
|
|
40
|
+
type: "logicRuleValue",
|
|
41
|
+
logicRuleValue: {
|
|
42
|
+
type: "currentUser",
|
|
43
|
+
currentUser: {}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
default:
|
|
47
|
+
return {
|
|
48
|
+
type: "logicRuleValue",
|
|
49
|
+
logicRuleValue: value
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
18
53
|
export function convertMappingValue(value) {
|
|
19
54
|
switch (value.type) {
|
|
20
55
|
case "uuid":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertMappingValue.js","names":["randomUUID","
|
|
1
|
+
{"version":3,"file":"convertMappingValue.js","names":["randomUUID","convertInterfacePropertyMappingValue","value","type","logicRuleValue","uniqueIdentifier","linkId","currentTime","currentUser","convertMappingValue"],"sources":["convertMappingValue.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 type {\n OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrLogicRuleValue,\n} from \"@osdk/client.unstable\";\nimport { randomUUID } from \"crypto\";\nimport type { MappingValue } from \"../../api/action/MappingValue.js\";\n\nexport function convertInterfacePropertyMappingValue(\n value: MappingValue,\n): OntologyIrInterfacePropertyLogicRuleValue {\n switch (value.type) {\n case \"uuid\":\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"uniqueIdentifier\",\n uniqueIdentifier: {\n linkId: value.linkId ?? randomUUID(),\n },\n },\n };\n case \"currentTime\":\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"currentTime\",\n currentTime: {},\n },\n };\n case \"currentUser\":\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"currentUser\",\n currentUser: {},\n },\n };\n default:\n return {\n type: \"logicRuleValue\",\n logicRuleValue: value,\n };\n }\n}\n\nexport function convertMappingValue(\n value: MappingValue,\n): OntologyIrLogicRuleValue {\n switch (value.type) {\n case \"uuid\":\n return {\n type: \"uniqueIdentifier\",\n uniqueIdentifier: {\n linkId: value.linkId ?? randomUUID(),\n },\n };\n case \"currentTime\":\n return {\n type: \"currentTime\",\n currentTime: {},\n };\n case \"currentUser\":\n return {\n type: \"currentUser\",\n currentUser: {},\n };\n default:\n return value;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,SAASA,UAAU,QAAQ,QAAQ;AAGnC,OAAO,SAASC,oCAAoCA,CAClDC,KAAmB,EACwB;EAC3C,QAAQA,KAAK,CAACC,IAAI;IAChB,KAAK,MAAM;MACT,OAAO;QACLA,IAAI,EAAE,gBAAgB;QACtBC,cAAc,EAAE;UACdD,IAAI,EAAE,kBAAkB;UACxBE,gBAAgB,EAAE;YAChBC,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAIN,UAAU,CAAC;UACrC;QACF;MACF,CAAC;IACH,KAAK,aAAa;MAChB,OAAO;QACLG,IAAI,EAAE,gBAAgB;QACtBC,cAAc,EAAE;UACdD,IAAI,EAAE,aAAa;UACnBI,WAAW,EAAE,CAAC;QAChB;MACF,CAAC;IACH,KAAK,aAAa;MAChB,OAAO;QACLJ,IAAI,EAAE,gBAAgB;QACtBC,cAAc,EAAE;UACdD,IAAI,EAAE,aAAa;UACnBK,WAAW,EAAE,CAAC;QAChB;MACF,CAAC;IACH;MACE,OAAO;QACLL,IAAI,EAAE,gBAAgB;QACtBC,cAAc,EAAEF;MAClB,CAAC;EACL;AACF;AAEA,OAAO,SAASO,mBAAmBA,CACjCP,KAAmB,EACO;EAC1B,QAAQA,KAAK,CAACC,IAAI;IAChB,KAAK,MAAM;MACT,OAAO;QACLA,IAAI,EAAE,kBAAkB;QACxBE,gBAAgB,EAAE;UAChBC,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAIN,UAAU,CAAC;QACrC;MACF,CAAC;IACH,KAAK,aAAa;MAChB,OAAO;QACLG,IAAI,EAAE,aAAa;QACnBI,WAAW,EAAE,CAAC;MAChB,CAAC;IACH,KAAK,aAAa;MAChB,OAAO;QACLJ,IAAI,EAAE,aAAa;QACnBK,WAAW,EAAE,CAAC;MAChB,CAAC;IACH;MACE,OAAON,KAAK;EAChB;AACF","ignoreList":[]}
|
|
@@ -64,7 +64,8 @@ export function convertObject(objectType) {
|
|
|
64
64
|
},
|
|
65
65
|
datasources: [...propertyDatasources, ...derivedDatasources, objectDatasource],
|
|
66
66
|
entityMetadata: {
|
|
67
|
-
arePatchesEnabled: objectType.editsEnabled ?? false
|
|
67
|
+
arePatchesEnabled: objectType.editsEnabled ?? false,
|
|
68
|
+
aliases: objectType.aliases ?? []
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
71
|
}
|
|
@@ -101,7 +102,8 @@ export function extractPropertyDatasource(property, objectTypeApiName) {
|
|
|
101
102
|
mediaSetView: {
|
|
102
103
|
assumedMarkings: [],
|
|
103
104
|
mediaSetViewLocator: identifier,
|
|
104
|
-
properties: [property.apiName]
|
|
105
|
+
properties: [property.apiName],
|
|
106
|
+
uploadProperties: []
|
|
105
107
|
}
|
|
106
108
|
};
|
|
107
109
|
return [buildDatasource(property.apiName, mediaSetDefinition)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertObject.js","names":["addNamespaceIfNone","buildDatasource","cleanAndValidateLinkTypeId","convertObjectStatus","isExotic","convertDatasourceDefinition","convertObjectPropertyType","convertObject","objectType","derivedDatasources","derivedPropertyNames","extractDerivedDatasources","propertyDatasources","properties","filter","prop","includes","apiName","flatMap","extractPropertyDatasource","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","length","reduce","l","r","undefined","mandatoryInputGroup","objectDatasource","implementations","implementsInterfaces","displayMetadata","description","displayName","groupDisplayName","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","propertyTypes","Object","fromEntries","map","val","titlePropertyTypeRid","titlePropertyApiName","status","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","propertiesV2","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","markingType","markingInputGroupName","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","inputDerivedDatasources","ds","i","buildDerivedDatasource","keys","datasource","index","linkDefinition","multiHopLink","steps","step","searchAround","linkTypeIdentifier","linkType","linkTypeSide","side","isLinkedProperties","values","derivedDefinition","linkedProperties","propertyTypeMapping","entries","sourceProp","targetProp","propertyType","aggregatedProperties","agg","buildAggregation","toString","derived","definition","limit","foreignProperty","innerDef"],"sources":["convertObject.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 type {\n OntologyIrDerivedPropertiesDefinition,\n OntologyIrDerivedPropertyAggregation,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrPropertyType,\n} from \"@osdk/client.unstable\";\nimport {\n addNamespaceIfNone,\n buildDatasource,\n cleanAndValidateLinkTypeId,\n convertObjectStatus,\n} from \"../../api/defineOntology.js\";\nimport type { ObjectPropertyType } from \"../../api/object/ObjectPropertyType.js\";\nimport type { ObjectType } from \"../../api/object/ObjectType.js\";\nimport type {\n DerivedPropertyAggregation,\n ObjectTypeDatasourceDefinition_derived,\n} from \"../../api/object/ObjectTypeDatasourceDefinition.js\";\nimport { isExotic } from \"../../api/properties/PropertyTypeType.js\";\nimport { convertDatasourceDefinition } from \"./convertDatasourceDefinition.js\";\nimport { convertObjectPropertyType } from \"./convertObjectPropertyType.js\";\n\nexport function convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const { derivedDatasources, derivedPropertyNames } =\n extractDerivedDatasources(objectType);\n\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .filter(prop => !derivedPropertyNames.includes(prop.apiName))\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const classificationGroupMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"CBAC\",\n );\n\n const mandatoryMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"MANDATORY\",\n );\n\n const classificationInputGroup = classificationGroupMarkingNames.length > 0\n ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0\n ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n (objectType.properties ?? []).filter(prop =>\n !derivedPropertyNames.includes(prop.apiName)\n ),\n ),\n classificationInputGroup,\n mandatoryInputGroup,\n );\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertObjectPropertyType(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n linksV2: {},\n propertiesV2: {},\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [addNamespaceIfNone(mapping.interfaceProperty), {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [\n ...propertyDatasources,\n ...derivedDatasources,\n objectDatasource,\n ],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nexport function extractMarkingGroups(\n properties: ObjectPropertyType[],\n markingType: \"CBAC\" | \"MANDATORY\",\n): string[] {\n return properties\n .map(prop => {\n if (\n typeof prop.type === \"object\"\n && prop.type.type === \"marking\"\n && prop.type.markingType === markingType\n ) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n })\n .filter((val): val is string => val !== undefined);\n}\nexport function extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction extractDerivedDatasources(\n objectType: ObjectType,\n): {\n derivedDatasources: OntologyIrObjectTypeDatasource[];\n derivedPropertyNames: string[];\n} {\n const inputDerivedDatasources = (objectType.datasources ?? []).filter(ds =>\n ds.type === \"derived\"\n );\n const derivedDatasources = inputDerivedDatasources.map((ds, i) =>\n buildDerivedDatasource(ds, i, objectType.apiName)\n );\n const derivedPropertyNames = inputDerivedDatasources.flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n return { derivedDatasources, derivedPropertyNames };\n}\n\nfunction buildDerivedDatasource(\n datasource: ObjectTypeDatasourceDefinition_derived,\n index: number,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource {\n const linkDefinition = {\n type: \"multiHopLink\",\n multiHopLink: {\n steps: datasource.linkDefinition.map(step => ({\n type: \"searchAround\",\n searchAround: {\n linkTypeIdentifier: {\n type: \"linkType\",\n linkType: cleanAndValidateLinkTypeId(step.linkType.apiName),\n },\n linkTypeSide: step.side ?? \"SOURCE\",\n },\n })),\n },\n };\n\n const isLinkedProperties =\n typeof Object.values(datasource.propertyMapping)[0] === \"string\";\n const derivedDefinition = isLinkedProperties\n ? {\n type: \"linkedProperties\",\n linkedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, targetProp],\n ) => [sourceProp, {\n type: \"propertyType\",\n propertyType: targetProp,\n }]),\n ),\n },\n }\n : {\n type: \"aggregatedProperties\",\n aggregatedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, agg],\n ) => [sourceProp, buildAggregation(agg)]),\n ),\n },\n };\n const fullDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"derived\",\n derived: {\n definition: derivedDefinition as OntologyIrDerivedPropertiesDefinition,\n },\n };\n return buildDatasource(\n objectTypeApiName + \".derived.\" + index.toString(),\n fullDefinition,\n );\n}\n\nfunction buildAggregation(\n agg: DerivedPropertyAggregation,\n): OntologyIrDerivedPropertyAggregation {\n const type = agg.type;\n const limit = \"limit\" in agg ? agg.limit : undefined;\n const foreignProperty = \"property\" in agg ? agg.property : undefined;\n const innerDef: any = {};\n if (type !== \"count\") {\n if ([\"collectList\", \"collectSet\"].includes(type)) {\n innerDef[\"linkedProperty\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n innerDef[\"limit\"] = limit;\n } else {\n innerDef[\"property\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n }\n }\n return {\n type,\n [type]: innerDef,\n } as unknown as OntologyIrDerivedPropertyAggregation;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"convertObject.js","names":["addNamespaceIfNone","buildDatasource","cleanAndValidateLinkTypeId","convertObjectStatus","isExotic","convertDatasourceDefinition","convertObjectPropertyType","convertObject","objectType","derivedDatasources","derivedPropertyNames","extractDerivedDatasources","propertyDatasources","properties","filter","prop","includes","apiName","flatMap","extractPropertyDatasource","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","length","reduce","l","r","undefined","mandatoryInputGroup","objectDatasource","implementations","implementsInterfaces","displayMetadata","description","displayName","groupDisplayName","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","propertyTypes","Object","fromEntries","map","val","titlePropertyTypeRid","titlePropertyApiName","status","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","propertiesV2","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","aliases","markingType","markingInputGroupName","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","uploadProperties","inputDerivedDatasources","ds","i","buildDerivedDatasource","keys","datasource","index","linkDefinition","multiHopLink","steps","step","searchAround","linkTypeIdentifier","linkType","linkTypeSide","side","isLinkedProperties","values","derivedDefinition","linkedProperties","propertyTypeMapping","entries","sourceProp","targetProp","propertyType","aggregatedProperties","agg","buildAggregation","toString","derived","definition","limit","foreignProperty","innerDef"],"sources":["convertObject.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 type {\n OntologyIrDerivedPropertiesDefinition,\n OntologyIrDerivedPropertyAggregation,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrPropertyType,\n} from \"@osdk/client.unstable\";\nimport {\n addNamespaceIfNone,\n buildDatasource,\n cleanAndValidateLinkTypeId,\n convertObjectStatus,\n} from \"../../api/defineOntology.js\";\nimport type { ObjectPropertyType } from \"../../api/object/ObjectPropertyType.js\";\nimport type { ObjectType } from \"../../api/object/ObjectType.js\";\nimport type {\n DerivedPropertyAggregation,\n ObjectTypeDatasourceDefinition_derived,\n} from \"../../api/object/ObjectTypeDatasourceDefinition.js\";\nimport { isExotic } from \"../../api/properties/PropertyTypeType.js\";\nimport { convertDatasourceDefinition } from \"./convertDatasourceDefinition.js\";\nimport { convertObjectPropertyType } from \"./convertObjectPropertyType.js\";\n\nexport function convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const { derivedDatasources, derivedPropertyNames } =\n extractDerivedDatasources(objectType);\n\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .filter(prop => !derivedPropertyNames.includes(prop.apiName))\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const classificationGroupMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"CBAC\",\n );\n\n const mandatoryMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"MANDATORY\",\n );\n\n const classificationInputGroup = classificationGroupMarkingNames.length > 0\n ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0\n ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n (objectType.properties ?? []).filter(prop =>\n !derivedPropertyNames.includes(prop.apiName)\n ),\n ),\n classificationInputGroup,\n mandatoryInputGroup,\n );\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertObjectPropertyType(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n linksV2: {},\n propertiesV2: {},\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [addNamespaceIfNone(mapping.interfaceProperty), {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [\n ...propertyDatasources,\n ...derivedDatasources,\n objectDatasource,\n ],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false,\n aliases: objectType.aliases ?? [],\n },\n };\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nexport function extractMarkingGroups(\n properties: ObjectPropertyType[],\n markingType: \"CBAC\" | \"MANDATORY\",\n): string[] {\n return properties\n .map(prop => {\n if (\n typeof prop.type === \"object\"\n && prop.type.type === \"marking\"\n && prop.type.markingType === markingType\n ) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n })\n .filter((val): val is string => val !== undefined);\n}\nexport function extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n uploadProperties: [],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction extractDerivedDatasources(\n objectType: ObjectType,\n): {\n derivedDatasources: OntologyIrObjectTypeDatasource[];\n derivedPropertyNames: string[];\n} {\n const inputDerivedDatasources = (objectType.datasources ?? []).filter(ds =>\n ds.type === \"derived\"\n );\n const derivedDatasources = inputDerivedDatasources.map((ds, i) =>\n buildDerivedDatasource(ds, i, objectType.apiName)\n );\n const derivedPropertyNames = inputDerivedDatasources.flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n return { derivedDatasources, derivedPropertyNames };\n}\n\nfunction buildDerivedDatasource(\n datasource: ObjectTypeDatasourceDefinition_derived,\n index: number,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource {\n const linkDefinition = {\n type: \"multiHopLink\",\n multiHopLink: {\n steps: datasource.linkDefinition.map(step => ({\n type: \"searchAround\",\n searchAround: {\n linkTypeIdentifier: {\n type: \"linkType\",\n linkType: cleanAndValidateLinkTypeId(step.linkType.apiName),\n },\n linkTypeSide: step.side ?? \"SOURCE\",\n },\n })),\n },\n };\n\n const isLinkedProperties =\n typeof Object.values(datasource.propertyMapping)[0] === \"string\";\n const derivedDefinition = isLinkedProperties\n ? {\n type: \"linkedProperties\",\n linkedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, targetProp],\n ) => [sourceProp, {\n type: \"propertyType\",\n propertyType: targetProp,\n }]),\n ),\n },\n }\n : {\n type: \"aggregatedProperties\",\n aggregatedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, agg],\n ) => [sourceProp, buildAggregation(agg)]),\n ),\n },\n };\n const fullDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"derived\",\n derived: {\n definition: derivedDefinition as OntologyIrDerivedPropertiesDefinition,\n },\n };\n return buildDatasource(\n objectTypeApiName + \".derived.\" + index.toString(),\n fullDefinition,\n );\n}\n\nfunction buildAggregation(\n agg: DerivedPropertyAggregation,\n): OntologyIrDerivedPropertyAggregation {\n const type = agg.type;\n const limit = \"limit\" in agg ? agg.limit : undefined;\n const foreignProperty = \"property\" in agg ? agg.property : undefined;\n const innerDef: any = {};\n if (type !== \"count\") {\n if ([\"collectList\", \"collectSet\"].includes(type)) {\n innerDef[\"linkedProperty\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n innerDef[\"limit\"] = limit;\n } else {\n innerDef[\"property\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n }\n }\n return {\n type,\n [type]: innerDef,\n } as unknown as OntologyIrDerivedPropertyAggregation;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,7 +38,8 @@ export function convertObjectPropertyType(property) {
|
|
|
38
38
|
type: property.array ? {
|
|
39
39
|
type: "array",
|
|
40
40
|
array: {
|
|
41
|
-
subtype: propertyTypeTypeToOntologyIrType(property.type)
|
|
41
|
+
subtype: propertyTypeTypeToOntologyIrType(property.type),
|
|
42
|
+
reducers: []
|
|
42
43
|
}
|
|
43
44
|
} : propertyTypeTypeToOntologyIrType(property.type),
|
|
44
45
|
typeClasses: property.typeClasses ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertObjectPropertyType.js","names":["invariant","convertObjectStatus","namespace","defaultTypeClasses","getPropertyTypeName","hasRenderHints","shouldNotHaveRenderHints","convertNullabilityToDataConstraint","convertValueType","convertValueTypeDataConstraints","propertyTypeTypeToOntologyIrType","convertObjectPropertyType","property","apiName","type","typeClasses","process","env","NODE_ENV","output","sharedPropertyTypeApiName","sharedPropertyType","displayMetadata","displayName","description","visibility","indexedForSearch","ruleSetBinding","undefined","baseFormatter","array","subtype","status","inlineAction","dataConstraints","valueType","constraints","sharedPropertyTypeRid"],"sources":["convertObjectPropertyType.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 type { OntologyIrPropertyType } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertObjectStatus, namespace } from \"../../api/defineOntology.js\";\nimport type { ObjectPropertyType } from \"../../api/object/ObjectPropertyType.js\";\nimport {\n defaultTypeClasses,\n getPropertyTypeName,\n hasRenderHints,\n shouldNotHaveRenderHints,\n} from \"../../api/propertyConversionUtils.js\";\nimport { convertNullabilityToDataConstraint } from \"./convertNullabilityToDataConstraint.js\";\nimport { convertValueType } from \"./convertValueType.js\";\nimport { convertValueTypeDataConstraints } from \"./convertValueTypeDataConstraints.js\";\nimport { propertyTypeTypeToOntologyIrType } from \"./propertyTypeTypeToOntologyIrType.js\";\n\nexport function convertObjectPropertyType(\n property: ObjectPropertyType,\n): OntologyIrPropertyType {\n const apiName = namespace + property.apiName;\n invariant(\n !shouldNotHaveRenderHints(property.type)\n || !hasRenderHints(property.typeClasses),\n `Property type ${apiName} of type '${\n getPropertyTypeName(property.type)\n }' should not have render hints`,\n );\n const output: OntologyIrPropertyType = {\n apiName: property.apiName,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\",\n },\n indexedForSearch: property.indexedForSearch ?? true,\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: property.array\n ? {\n type: \"array\" as const,\n array: {\n subtype: propertyTypeTypeToOntologyIrType(property.type),\n },\n }\n : propertyTypeTypeToOntologyIrType(property.type),\n typeClasses: property.typeClasses\n ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType\n ? convertValueTypeDataConstraints(property.valueType.constraints)\n : convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: property.valueType\n ? convertValueType(property.valueType)\n : undefined,\n };\n return output;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,mBAAmB,EAAEC,SAAS,QAAQ,6BAA6B;AAE5E,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,wBAAwB,QACnB,sCAAsC;AAC7C,SAASC,kCAAkC,QAAQ,yCAAyC;AAC5F,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,+BAA+B,QAAQ,sCAAsC;AACtF,SAASC,gCAAgC,QAAQ,uCAAuC;AAExF,OAAO,SAASC,yBAAyBA,CACvCC,QAA4B,EACJ;EACxB,MAAMC,OAAO,GAAGX,SAAS,GAAGU,QAAQ,CAACC,OAAO;EAC5C,EACE,CAACP,wBAAwB,CAACM,QAAQ,CAACE,IAAI,CAAC,IACnC,CAACT,cAAc,CAACO,QAAQ,CAACG,WAAW,CAAC,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAF5ClB,SAAS,QAGP,iBAAiBa,OAAO,aACtBT,mBAAmB,CAACQ,QAAQ,CAACE,IAAI,CAAC,gCACJ,IALlCd,SAAS;EAOT,MAAMmB,MAA8B,GAAG;IACrCN,OAAO,EAAED,QAAQ,CAACC,OAAO;IACzBO,yBAAyB,EAAER,QAAQ,CAACS,kBAAkB,EAAER,OAAO;IAC/DS,eAAe,EAAE;MACfC,WAAW,EAAEX,QAAQ,CAACW,WAAW;MACjCC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;MACjCC,UAAU,EAAEb,QAAQ,CAACa,UAAU,IAAI;IACrC,CAAC;IACDC,gBAAgB,EAAEd,QAAQ,CAACc,gBAAgB,IAAI,IAAI;IACnDC,cAAc,EAAEC,SAAS;IACzBC,aAAa,EAAEjB,QAAQ,CAACiB,aAAa;IACrCf,IAAI,EAAEF,QAAQ,CAACkB,KAAK,GAChB;MACAhB,IAAI,EAAE,OAAgB;MACtBgB,KAAK,EAAE;QACLC,OAAO,EAAErB,gCAAgC,CAACE,QAAQ,CAACE,IAAI;
|
|
1
|
+
{"version":3,"file":"convertObjectPropertyType.js","names":["invariant","convertObjectStatus","namespace","defaultTypeClasses","getPropertyTypeName","hasRenderHints","shouldNotHaveRenderHints","convertNullabilityToDataConstraint","convertValueType","convertValueTypeDataConstraints","propertyTypeTypeToOntologyIrType","convertObjectPropertyType","property","apiName","type","typeClasses","process","env","NODE_ENV","output","sharedPropertyTypeApiName","sharedPropertyType","displayMetadata","displayName","description","visibility","indexedForSearch","ruleSetBinding","undefined","baseFormatter","array","subtype","reducers","status","inlineAction","dataConstraints","valueType","constraints","sharedPropertyTypeRid"],"sources":["convertObjectPropertyType.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 type { OntologyIrPropertyType } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertObjectStatus, namespace } from \"../../api/defineOntology.js\";\nimport type { ObjectPropertyType } from \"../../api/object/ObjectPropertyType.js\";\nimport {\n defaultTypeClasses,\n getPropertyTypeName,\n hasRenderHints,\n shouldNotHaveRenderHints,\n} from \"../../api/propertyConversionUtils.js\";\nimport { convertNullabilityToDataConstraint } from \"./convertNullabilityToDataConstraint.js\";\nimport { convertValueType } from \"./convertValueType.js\";\nimport { convertValueTypeDataConstraints } from \"./convertValueTypeDataConstraints.js\";\nimport { propertyTypeTypeToOntologyIrType } from \"./propertyTypeTypeToOntologyIrType.js\";\n\nexport function convertObjectPropertyType(\n property: ObjectPropertyType,\n): OntologyIrPropertyType {\n const apiName = namespace + property.apiName;\n invariant(\n !shouldNotHaveRenderHints(property.type)\n || !hasRenderHints(property.typeClasses),\n `Property type ${apiName} of type '${\n getPropertyTypeName(property.type)\n }' should not have render hints`,\n );\n const output: OntologyIrPropertyType = {\n apiName: property.apiName,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\",\n },\n indexedForSearch: property.indexedForSearch ?? true,\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: property.array\n ? {\n type: \"array\" as const,\n array: {\n subtype: propertyTypeTypeToOntologyIrType(property.type),\n reducers: [],\n },\n }\n : propertyTypeTypeToOntologyIrType(property.type),\n typeClasses: property.typeClasses\n ?? (shouldNotHaveRenderHints(property.type) ? [] : defaultTypeClasses),\n status: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: property.valueType\n ? convertValueTypeDataConstraints(property.valueType.constraints)\n : convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: property.valueType\n ? convertValueType(property.valueType)\n : undefined,\n };\n return output;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,mBAAmB,EAAEC,SAAS,QAAQ,6BAA6B;AAE5E,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,wBAAwB,QACnB,sCAAsC;AAC7C,SAASC,kCAAkC,QAAQ,yCAAyC;AAC5F,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,+BAA+B,QAAQ,sCAAsC;AACtF,SAASC,gCAAgC,QAAQ,uCAAuC;AAExF,OAAO,SAASC,yBAAyBA,CACvCC,QAA4B,EACJ;EACxB,MAAMC,OAAO,GAAGX,SAAS,GAAGU,QAAQ,CAACC,OAAO;EAC5C,EACE,CAACP,wBAAwB,CAACM,QAAQ,CAACE,IAAI,CAAC,IACnC,CAACT,cAAc,CAACO,QAAQ,CAACG,WAAW,CAAC,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAF5ClB,SAAS,QAGP,iBAAiBa,OAAO,aACtBT,mBAAmB,CAACQ,QAAQ,CAACE,IAAI,CAAC,gCACJ,IALlCd,SAAS;EAOT,MAAMmB,MAA8B,GAAG;IACrCN,OAAO,EAAED,QAAQ,CAACC,OAAO;IACzBO,yBAAyB,EAAER,QAAQ,CAACS,kBAAkB,EAAER,OAAO;IAC/DS,eAAe,EAAE;MACfC,WAAW,EAAEX,QAAQ,CAACW,WAAW;MACjCC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;MACjCC,UAAU,EAAEb,QAAQ,CAACa,UAAU,IAAI;IACrC,CAAC;IACDC,gBAAgB,EAAEd,QAAQ,CAACc,gBAAgB,IAAI,IAAI;IACnDC,cAAc,EAAEC,SAAS;IACzBC,aAAa,EAAEjB,QAAQ,CAACiB,aAAa;IACrCf,IAAI,EAAEF,QAAQ,CAACkB,KAAK,GAChB;MACAhB,IAAI,EAAE,OAAgB;MACtBgB,KAAK,EAAE;QACLC,OAAO,EAAErB,gCAAgC,CAACE,QAAQ,CAACE,IAAI,CAAC;QACxDkB,QAAQ,EAAE;MACZ;IACF,CAAC,GACCtB,gCAAgC,CAACE,QAAQ,CAACE,IAAI,CAAC;IACnDC,WAAW,EAAEH,QAAQ,CAACG,WAAW,KAC3BT,wBAAwB,CAACM,QAAQ,CAACE,IAAI,CAAC,GAAG,EAAE,GAAGX,kBAAkB,CAAC;IACxE8B,MAAM,EAAEhC,mBAAmB,CAACW,QAAQ,CAACqB,MAAM,CAAC;IAC5CC,YAAY,EAAEN,SAAS;IACvBO,eAAe,EAAEvB,QAAQ,CAACwB,SAAS,GAC/B3B,+BAA+B,CAACG,QAAQ,CAACwB,SAAS,CAACC,WAAW,CAAC,GAC/D9B,kCAAkC,CAACK,QAAQ,CAAC;IAChD0B,qBAAqB,EAAE1B,QAAQ,CAACS,kBAAkB,EAAER,OAAO;IAC3DuB,SAAS,EAAExB,QAAQ,CAACwB,SAAS,GACzB5B,gBAAgB,CAACI,QAAQ,CAACwB,SAAS,CAAC,GACpCR;EACN,CAAC;EACD,OAAOT,MAAM;AACf","ignoreList":[]}
|