@osdk/maker 0.10.0-beta.13 → 0.10.0-beta.14
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 +11 -0
- package/build/browser/api/defineObject.js +4 -0
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineOntology.js +38 -14
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/overall.test.js +383 -0
- package/build/browser/api/overall.test.js.map +1 -1
- package/build/browser/api/types.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/cjs/index.cjs +62 -35
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +11 -1
- package/build/esm/api/defineObject.js +4 -0
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineOntology.js +38 -14
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/overall.test.js +383 -0
- package/build/esm/api/overall.test.js.map +1 -1
- package/build/esm/api/types.js.map +1 -1
- package/build/esm/cli/main.js +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/types.d.ts +11 -1
- package/build/types/api/types.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
import invariant from "tiny-invariant";
|
|
18
18
|
import { namespace, ontologyDefinition } from "./defineOntology.js";
|
|
19
|
+
// From https://stackoverflow.com/a/79288714
|
|
20
|
+
const ISO_8601_DURATION = /^P(?!$)(?:(?:((?:\d+Y)|(?:\d+(?:\.|,)\d+Y$))?((?:\d+M)|(?:\d+(?:\.|,)\d+M$))?((?:\d+D)|(?:\d+(?:\.|,)\d+D$))?(T((?:\d+H)|(?:\d+(?:\.|,)\d+H$))?((?:\d+M)|(?:\d+(?:\.|,)\d+M$))?((?:\d+S)|(?:\d+(?:\.|,)\d+S$))?)?)|(?:\d+(?:(?:\.|,)\d+)?W))$/;
|
|
19
21
|
export function defineObject(objectDef) {
|
|
20
22
|
const apiName = namespace + objectDef.apiName;
|
|
21
23
|
const propertyApiNames = (objectDef.properties ?? []).map(val => val.apiName);
|
|
@@ -26,6 +28,8 @@ export function defineObject(objectDef) {
|
|
|
26
28
|
!(objectDef.primaryKeys.length !== 0) ? process.env.NODE_ENV !== "production" ? invariant(false, `${objectDef.apiName} does not have any primary keys, objects must have at least one primary key`) : invariant(false) : void 0;
|
|
27
29
|
const nonExistentPrimaryKeys = objectDef.primaryKeys.filter(primaryKey => !objectDef.properties?.map(val => val.apiName).includes(primaryKey));
|
|
28
30
|
!(nonExistentPrimaryKeys.length === 0) ? process.env.NODE_ENV !== "production" ? invariant(false, `Primary key properties ${nonExistentPrimaryKeys} do not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;
|
|
31
|
+
const retentionPeriod = objectDef.datasource?.retentionPeriod;
|
|
32
|
+
!(retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod)) ? process.env.NODE_ENV !== "production" ? invariant(false, `Retention period "${retentionPeriod}" on object "${objectDef.apiName}" is not a valid ISO 8601 duration string`) : invariant(false) : void 0;
|
|
29
33
|
objectDef.implementsInterfaces?.forEach(interfaceImpl => {
|
|
30
34
|
const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => interfaceImpl.implements.propertiesV2[interfaceProperty] === undefined).map(interfaceProp => ({
|
|
31
35
|
type: "invalid",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineObject.js","names":["invariant","namespace","ontologyDefinition","defineObject","objectDef","apiName","propertyApiNames","properties","map","val","objectTypes","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeys","length","nonExistentPrimaryKeys","filter","primaryKey","implementsInterfaces","forEach","interfaceImpl","nonExistentInterfaceProperties","propertyMapping","interfaceProperty","implements","propertiesV2","interfaceProp","type","reason","interfaceToObjectProperties","Object","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","nonNameSpacedApiName","validateInterfaceImplProperty","baseValidations","entries","extendsValidations","extendsInterfaces","flatMap","interfaceApiName","interfaceTypes","allFailedValidations","concat","formatValidationErrors","join","error","spt","mappedObjectProp","object","objProp","find","prop"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n ObjectType,\n SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineObject(objectDef: ObjectType): ObjectType {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = (objectDef.properties ?? []).map(val => val.apiName);\n if (ontologyDefinition.objectTypes[apiName] !== undefined) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n objectDef.primaryKeys.length !== 0,\n `${objectDef.apiName} does not have any primary keys, objects must have at least one primary key`,\n );\n const nonExistentPrimaryKeys = objectDef.primaryKeys.filter(primaryKey =>\n !objectDef.properties?.map(val => val.apiName).includes(primaryKey)\n );\n invariant(\n nonExistentPrimaryKeys.length === 0,\n `Primary key properties ${nonExistentPrimaryKeys} do not exist on object ${objectDef.apiName}`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n interfaceImpl.implements.propertiesV2[interfaceProperty]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, mapping.mapsTo],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const baseValidations = Object.entries(\n interfaceImpl.implements.propertiesV2,\n )\n .map<ValidationResult>(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces\n .flatMap(interfaceApiName =>\n Object.entries(\n ontologyDefinition.interfaceTypes[interfaceApiName].propertiesV2,\n ).map(validateProperty)\n );\n\n const allFailedValidations = baseValidations.concat(\n extendsValidations,\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n ontologyDefinition.objectTypes[apiName] = { ...objectDef, apiName: apiName };\n return { ...objectDef, apiName: apiName };\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectType,\n): ValidationResult {\n const objProp = object.properties?.find(prop =>\n prop.apiName === mappedObjectProp\n );\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (spt.type !== objProp?.type) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineObject.js","names":["invariant","namespace","ontologyDefinition","ISO_8601_DURATION","defineObject","objectDef","apiName","propertyApiNames","properties","map","val","objectTypes","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeys","length","nonExistentPrimaryKeys","filter","primaryKey","retentionPeriod","datasource","test","implementsInterfaces","forEach","interfaceImpl","nonExistentInterfaceProperties","propertyMapping","interfaceProperty","implements","propertiesV2","interfaceProp","type","reason","interfaceToObjectProperties","Object","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","nonNameSpacedApiName","validateInterfaceImplProperty","baseValidations","entries","extendsValidations","extendsInterfaces","flatMap","interfaceApiName","interfaceTypes","allFailedValidations","concat","formatValidationErrors","join","error","spt","mappedObjectProp","object","objProp","find","prop"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n ObjectType,\n SharedPropertyType,\n} from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\nexport function defineObject(objectDef: ObjectType): ObjectType {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = (objectDef.properties ?? []).map(val => val.apiName);\n if (ontologyDefinition.objectTypes[apiName] !== undefined) {\n throw new Error(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n objectDef.primaryKeys.length !== 0,\n `${objectDef.apiName} does not have any primary keys, objects must have at least one primary key`,\n );\n const nonExistentPrimaryKeys = objectDef.primaryKeys.filter(primaryKey =>\n !objectDef.properties?.map(val => val.apiName).includes(primaryKey)\n );\n invariant(\n nonExistentPrimaryKeys.length === 0,\n `Primary key properties ${nonExistentPrimaryKeys} do not exist on object ${objectDef.apiName}`,\n );\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n interfaceImpl.implements.propertiesV2[interfaceProperty]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, mapping.mapsTo],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const baseValidations = Object.entries(\n interfaceImpl.implements.propertiesV2,\n )\n .map<ValidationResult>(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces\n .flatMap(interfaceApiName =>\n Object.entries(\n ontologyDefinition.interfaceTypes[interfaceApiName].propertiesV2,\n ).map(validateProperty)\n );\n\n const allFailedValidations = baseValidations.concat(\n extendsValidations,\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n ontologyDefinition.objectTypes[apiName] = { ...objectDef, apiName: apiName };\n return { ...objectDef, apiName: apiName };\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectType,\n): ValidationResult {\n const objProp = object.properties?.find(prop =>\n prop.apiName === mappedObjectProp\n );\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`,\n };\n }\n if (spt.type !== objProp?.type) {\n return {\n type: \"invalid\",\n reason:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -105,22 +105,9 @@ function convertToWireOntologyIr(ontology) {
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
function convertObject(objectType) {
|
|
108
|
-
const propertyDatasource = {};
|
|
109
|
-
(objectType.properties ?? []).forEach(property => {
|
|
110
|
-
propertyDatasource[property.apiName] = {
|
|
111
|
-
type: "column",
|
|
112
|
-
column: property.apiName
|
|
113
|
-
};
|
|
114
|
-
});
|
|
115
108
|
const datasource = {
|
|
116
109
|
rid: "ri.ontology.main.datasource.".concat(objectType.apiName),
|
|
117
|
-
datasource:
|
|
118
|
-
type: "datasetV2",
|
|
119
|
-
datasetV2: {
|
|
120
|
-
datasetRid: objectType.apiName,
|
|
121
|
-
propertyMapping: propertyDatasource
|
|
122
|
-
}
|
|
123
|
-
},
|
|
110
|
+
datasource: convertDatasourceDefinition(objectType),
|
|
124
111
|
editsConfiguration: {
|
|
125
112
|
onlyAllowPrivilegedEdits: false
|
|
126
113
|
},
|
|
@@ -166,6 +153,43 @@ function convertObject(objectType) {
|
|
|
166
153
|
}
|
|
167
154
|
};
|
|
168
155
|
}
|
|
156
|
+
function convertDatasourceDefinition(objectType) {
|
|
157
|
+
switch (objectType.datasource?.type) {
|
|
158
|
+
case "stream":
|
|
159
|
+
const window = objectType.datasource.retentionPeriod;
|
|
160
|
+
const retentionPolicy = window ? {
|
|
161
|
+
type: "time",
|
|
162
|
+
time: {
|
|
163
|
+
window
|
|
164
|
+
}
|
|
165
|
+
} : {
|
|
166
|
+
type: "none",
|
|
167
|
+
none: {}
|
|
168
|
+
};
|
|
169
|
+
const propertyMapping = Object.fromEntries((objectType.properties ?? []).map(prop => [prop.apiName, prop.apiName]));
|
|
170
|
+
return {
|
|
171
|
+
type: "streamV2",
|
|
172
|
+
streamV2: {
|
|
173
|
+
streamLocator: objectType.apiName,
|
|
174
|
+
propertyMapping,
|
|
175
|
+
retentionPolicy,
|
|
176
|
+
propertySecurityGroups: undefined
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
case "dataset":
|
|
180
|
+
default:
|
|
181
|
+
return {
|
|
182
|
+
type: "datasetV2",
|
|
183
|
+
datasetV2: {
|
|
184
|
+
datasetRid: objectType.apiName,
|
|
185
|
+
propertyMapping: Object.fromEntries((objectType.properties ?? []).map(prop => [prop.apiName, {
|
|
186
|
+
type: "column",
|
|
187
|
+
column: prop.apiName
|
|
188
|
+
}]))
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
}
|
|
169
193
|
function convertProperty(property) {
|
|
170
194
|
const output = {
|
|
171
195
|
apiName: property.apiName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineOntology.js","names":["ontologyDefinition","namespace","defineOntology","ns","body","actionTypes","objectTypes","queryTypes","interfaceTypes","sharedPropertyTypes","valueTypes","linkTypes","importedTypes","e","console","error","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","Object","values","map","definitions","metadata","apiName","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","fromEntries","entries","objectType","convertObject","spt","sharedPropertyType","convertSpt","interfaceType","convertInterface","id","link","convertLink","blockPermissionInformation","propertyDatasource","properties","forEach","property","type","column","datasource","rid","concat","datasetV2","datasetRid","propertyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","implementations","implementsInterfaces","description","displayName","groupDisplayName","undefined","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","propertyTypes","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","active","implementsInterfaces2","impl","interfaceTypeApiName","implements","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","propertiesV2","required","allExtendsInterfaces","allLinks","allProperties","allPropertiesV2","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","dataConstraint","propertyTypeConstraints","nullability","nullabilityV2","noEmptyCollections","noNulls","subtype","aliases","provenance","marking","markingType","structFields","Array","key","structDefinition","fieldTypeDefinition","field","fieldType","push","struct","geohash","precision","scale","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","mediaReference","distributeTypeHelper"],"sources":["defineOntology.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\n/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n OntologyIr,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrPropertyType,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n PropertyTypeMappingInfo,\n} from \"@osdk/client.unstable\";\nimport type {\n InterfaceType,\n LinkTypeDefinition,\n ObjectPropertyType,\n ObjectType,\n Ontology,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\n/** @internal */\nexport let ontologyDefinition: Ontology;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n actionTypes: {},\n objectTypes: {},\n queryTypes: {},\n interfaceTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n linkTypes: {},\n importedTypes: {\n sharedPropertyTypes: [],\n },\n };\n\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: Ontology,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology.valueTypes).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n })),\n };\n}\n\nfunction convertToWireOntologyIr(\n ontology: Ontology,\n): OntologyIr {\n return {\n blockData: {\n objectTypes: Object.fromEntries(\n Object.entries(ontology.objectTypes).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology.sharedPropertyTypes,\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology.interfaceTypes,\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology.linkTypes).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n },\n importedTypes: ontology.importedTypes,\n };\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasource: Record<string, PropertyTypeMappingInfo> = {};\n (objectType.properties ?? []).forEach((property) => {\n propertyDatasource[property.apiName] = {\n type: \"column\",\n column: property.apiName,\n };\n });\n\n const datasource: OntologyIrObjectTypeDatasource = {\n rid: \"ri.ontology.main.datasource.\".concat(objectType.apiName),\n datasource: {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: propertyDatasource,\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\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.primaryKeys,\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertProperty(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: objectType.status ?? {\n type: \"active\",\n active: {},\n },\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [namespace + mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [datasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction convertProperty(property: ObjectPropertyType): OntologyIrPropertyType {\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: convertType(property.type),\n typeClasses: property.typeClasses ?? [],\n status: property.status ?? { type: \"active\", active: {} },\n inlineAction: undefined,\n dataConstraints: property.dataConstraints,\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkTypeDefinition,\n): OntologyIrLinkTypeBlockDataV2 {\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: \"ONE_TO_ONE\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeys[0],\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.id),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.id),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\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: linkType.id,\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}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrInterfaceType {\n return {\n ...interfaceType,\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 // these are omitted from our internal types but we need to re-add them for the final json\n allExtendsInterfaces: [],\n allLinks: [],\n allProperties: [],\n allPropertiesV2: {},\n properties: [],\n };\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertToWireOntologyIr(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nfunction convertSpt(\n {\n type,\n array,\n description,\n apiName,\n displayName,\n gothamMapping,\n typeClasses,\n valueType,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = (typeof type === \"object\" && type.type === \"marking\")\n ? {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n }\n : undefined;\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: \"NORMAL\",\n description,\n },\n type: array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(type),\n },\n }\n : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n provenance: undefined,\n typeClasses: typeClasses ?? [],\n valueType: valueType,\n };\n}\n\nfunction convertType(\n type: PropertyTypeType,\n): OntologyIrType {\n switch (true) {\n case (typeof type === \"object\" && \"markingType\" in type):\n return {\n \"type\": \"marking\",\n marking: { markingType: type.markingType },\n };\n\n case (typeof type === \"object\" && \"structDefinition\" in type):\n const structFields: Array<OntologyIrStructFieldType> = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field: OntologyIrStructFieldType;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? [],\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n }\n }\n\n structFields.push(field);\n }\n\n return {\n type: \"struct\",\n struct: { structFields },\n };\n\n case (type === \"geopoint\"):\n return { type: \"geohash\", geohash: {} };\n\n case (type === \"decimal\"):\n return { type, [type]: { precision: undefined, scale: undefined } };\n\n case (type === \"string\"):\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true,\n },\n };\n\n case (type === \"mediaReference\"):\n return {\n type: type,\n mediaReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nfunction distributeTypeHelper<T extends string>(\n type: T,\n): T extends any ? { type: T } & { [K in T]: {} } : never {\n return { type, [type]: {} } as any; // any cast to match conditional return type\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineOntology.js","names":["ontologyDefinition","namespace","defineOntology","ns","body","actionTypes","objectTypes","queryTypes","interfaceTypes","sharedPropertyTypes","valueTypes","linkTypes","importedTypes","e","console","error","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","Object","values","map","definitions","metadata","apiName","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","fromEntries","entries","objectType","convertObject","spt","sharedPropertyType","convertSpt","interfaceType","convertInterface","id","link","convertLink","blockPermissionInformation","datasource","rid","concat","convertDatasourceDefinition","editsConfiguration","onlyAllowPrivilegedEdits","redacted","implementations","implementsInterfaces","description","displayName","groupDisplayName","undefined","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","propertyTypes","properties","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","active","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","window","retentionPeriod","retentionPolicy","time","none","prop","streamV2","streamLocator","propertySecurityGroups","datasetV2","datasetRid","column","property","output","sharedPropertyTypeApiName","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","sharedPropertyTypeRid","linkType","oneToMany","cardinalityHint","manyToOneLinkMetadata","toMany","objectTypeRidManySide","object","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","propertiesV2","required","allExtendsInterfaces","allLinks","allProperties","allPropertiesV2","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","dataConstraint","propertyTypeConstraints","nullability","nullabilityV2","noEmptyCollections","noNulls","subtype","aliases","provenance","marking","markingType","structFields","Array","key","structDefinition","fieldTypeDefinition","field","fieldType","push","struct","geohash","precision","scale","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","mediaReference","distributeTypeHelper"],"sources":["defineOntology.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\n/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n OntologyIr,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrPropertyType,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n RetentionPolicy,\n} from \"@osdk/client.unstable\";\nimport type {\n InterfaceType,\n LinkTypeDefinition,\n ObjectPropertyType,\n ObjectType,\n Ontology,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\n/** @internal */\nexport let ontologyDefinition: Ontology;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n actionTypes: {},\n objectTypes: {},\n queryTypes: {},\n interfaceTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n linkTypes: {},\n importedTypes: {\n sharedPropertyTypes: [],\n },\n };\n\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: Ontology,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology.valueTypes).map<\n OntologyIrValueTypeBlockDataEntry\n >(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status,\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues,\n })),\n })),\n };\n}\n\nfunction convertToWireOntologyIr(\n ontology: Ontology,\n): OntologyIr {\n return {\n blockData: {\n objectTypes: Object.fromEntries(\n Object.entries(ontology.objectTypes).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology.sharedPropertyTypes,\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology.interfaceTypes,\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology.linkTypes).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n },\n importedTypes: ontology.importedTypes,\n };\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const datasource: OntologyIrObjectTypeDatasource = {\n rid: \"ri.ontology.main.datasource.\".concat(objectType.apiName),\n datasource: convertDatasourceDefinition(objectType),\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\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.primaryKeys,\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertProperty(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: objectType.status ?? {\n type: \"active\",\n active: {},\n },\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [namespace + mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [datasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n): OntologyIrObjectTypeDatasourceDefinition {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy: RetentionPolicy = window\n ? { type: \"time\", time: { window } }\n : { type: \"none\", none: {} };\n const propertyMapping = Object.fromEntries(\n (objectType.properties ?? []).map((\n prop,\n ) => [prop.apiName, prop.apiName]),\n );\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: objectType.apiName,\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined,\n },\n };\n case \"dataset\":\n default:\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: Object.fromEntries(\n (objectType.properties ?? []).map((prop) => [\n prop.apiName,\n { type: \"column\", column: prop.apiName },\n ]),\n ),\n },\n };\n }\n}\n\nfunction convertProperty(property: ObjectPropertyType): OntologyIrPropertyType {\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: convertType(property.type),\n typeClasses: property.typeClasses ?? [],\n status: property.status ?? { type: \"active\", active: {} },\n inlineAction: undefined,\n dataConstraints: property.dataConstraints,\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkTypeDefinition,\n): OntologyIrLinkTypeBlockDataV2 {\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: \"ONE_TO_ONE\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeys[0],\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.id),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.id),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeys[0],\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeys[0],\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.primaryKeys[0],\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: linkType.id,\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}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrInterfaceType {\n return {\n ...interfaceType,\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 // these are omitted from our internal types but we need to re-add them for the final json\n allExtendsInterfaces: [],\n allLinks: [],\n allProperties: [],\n allPropertiesV2: {},\n properties: [],\n };\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertToWireOntologyIr(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nfunction convertSpt(\n {\n type,\n array,\n description,\n apiName,\n displayName,\n gothamMapping,\n typeClasses,\n valueType,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = (typeof type === \"object\" && type.type === \"marking\")\n ? {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n }\n : undefined;\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: \"NORMAL\",\n description,\n },\n type: array\n ? {\n type: \"array\" as const,\n array: {\n subtype: convertType(type),\n },\n }\n : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n provenance: undefined,\n typeClasses: typeClasses ?? [],\n valueType: valueType,\n };\n}\n\nfunction convertType(\n type: PropertyTypeType,\n): OntologyIrType {\n switch (true) {\n case (typeof type === \"object\" && \"markingType\" in type):\n return {\n \"type\": \"marking\",\n marking: { markingType: type.markingType },\n };\n\n case (typeof type === \"object\" && \"structDefinition\" in type):\n const structFields: Array<OntologyIrStructFieldType> = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field: OntologyIrStructFieldType;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? [],\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: { displayName: key, description: undefined },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition),\n };\n }\n }\n\n structFields.push(field);\n }\n\n return {\n type: \"struct\",\n struct: { structFields },\n };\n\n case (type === \"geopoint\"):\n return { type: \"geohash\", geohash: {} };\n\n case (type === \"decimal\"):\n return { type, [type]: { precision: undefined, scale: undefined } };\n\n case (type === \"string\"):\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true,\n },\n };\n\n case (type === \"mediaReference\"):\n return {\n type: type,\n mediaReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nfunction distributeTypeHelper<T extends string>(\n type: T,\n): T extends any ? { type: T } & { [K in T]: {} } : never {\n return { type, [type]: {} } as any; // any cast to match conditional return type\n}\n"],"mappings":"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","ignoreList":[]}
|