@osdk/maker 0.10.0-beta.23 → 0.10.0-beta.25
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 +104 -0
- package/build/browser/api/defineOntology.js +22 -4
- package/build/browser/api/defineOntology.js.map +1 -1
- package/build/browser/api/defineSpt.js +9 -1
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/overall.test.js +254 -183
- package/build/browser/api/overall.test.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/cjs/index.cjs +30 -6
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/api/defineOntology.js +22 -4
- package/build/esm/api/defineOntology.js.map +1 -1
- package/build/esm/api/defineSpt.js +9 -1
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/overall.test.js +254 -183
- package/build/esm/api/overall.test.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/types/api/defineOntology.d.ts.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.10.0-beta.25
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1a09a8e: Enforce that struct, mediaReference, and GTSR type SPTs cannot have render hints
|
|
8
|
+
- 8f67e1e: OAC Struct Property Field Mapping Support
|
|
9
|
+
|
|
10
|
+
## 0.10.0-beta.24
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [4183a55]
|
|
15
|
+
- @osdk/api@2.2.0-beta.23
|
|
16
|
+
|
|
3
17
|
## 0.10.0-beta.23
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -232,6 +246,96 @@
|
|
|
232
246
|
- Updated dependencies [fccd9ac]
|
|
233
247
|
- @osdk/api@2.2.0-beta.2
|
|
234
248
|
|
|
249
|
+
## 0.9.0
|
|
250
|
+
|
|
251
|
+
### Minor Changes
|
|
252
|
+
|
|
253
|
+
- 25fd9f0: Updating package.json to have better entry points to support react native bundlers.
|
|
254
|
+
- f0b519d: Upgrade to vitest 3 and vite 6
|
|
255
|
+
- 1812118: Add geotime support for OSDK.
|
|
256
|
+
- bc1761c: Update platform API dependencies.
|
|
257
|
+
- bb8b219: Use new external packages instead of the internal ones.
|
|
258
|
+
- 44e62f6: Updating fetch for auth and other packages.
|
|
259
|
+
- 91cfa3a: Fixing url parsing for client.
|
|
260
|
+
- c9e855d: Allowing interfaces to extend other interfaces for ontology as code.
|
|
261
|
+
- 94463b6: Support objects as code
|
|
262
|
+
- 9d35a1f: Remove unused imports
|
|
263
|
+
- 8d8bebb: Fix nullability
|
|
264
|
+
- 7a95618: Generate new OMS APIs
|
|
265
|
+
- c9da74c: Improves code quality by fixing linting errors
|
|
266
|
+
- abfe4b3: Add support for reading struct properties.
|
|
267
|
+
- caf1abc: Support generating linked products for marketplace
|
|
268
|
+
- cd8d657: Support importing foreign SPTs
|
|
269
|
+
- b8a1a58: Add nullability to markings because of course they need to be nullable. This sucks in the data model, I should talk to the ontology team about this.
|
|
270
|
+
- b0544d4: Add additional marking configuration
|
|
271
|
+
- 9018dc2: Updating platform api dependencies.
|
|
272
|
+
- f569124: Add media reference to maker
|
|
273
|
+
- 0a4f131: Fix value types so they actually serialize correctly.
|
|
274
|
+
- 8e5e49a: Add optional link constraints
|
|
275
|
+
- 6b6c8a1: Updates gateway endpoints and changes fetchContents for attachments to return a response
|
|
276
|
+
- 2b35ed4: Structs in maker package
|
|
277
|
+
- 09eaf24: Update to latest platform sdks
|
|
278
|
+
- 06e66dc: Making interface type status configurable
|
|
279
|
+
- d665147: Update platform sdk deps
|
|
280
|
+
|
|
281
|
+
### Patch Changes
|
|
282
|
+
|
|
283
|
+
- Updated dependencies [966d408]
|
|
284
|
+
- Updated dependencies [cddc196]
|
|
285
|
+
- Updated dependencies [d794c19]
|
|
286
|
+
- Updated dependencies [05febf4]
|
|
287
|
+
- Updated dependencies [55c05f2]
|
|
288
|
+
- Updated dependencies [0dc40b0]
|
|
289
|
+
- Updated dependencies [25fd9f0]
|
|
290
|
+
- Updated dependencies [11a05cc]
|
|
291
|
+
- Updated dependencies [7865cb6]
|
|
292
|
+
- Updated dependencies [9c4efe6]
|
|
293
|
+
- Updated dependencies [3ea2e79]
|
|
294
|
+
- Updated dependencies [1812118]
|
|
295
|
+
- Updated dependencies [bc1761c]
|
|
296
|
+
- Updated dependencies [656f975]
|
|
297
|
+
- Updated dependencies [f1145ff]
|
|
298
|
+
- Updated dependencies [f446d0c]
|
|
299
|
+
- Updated dependencies [c80ca45]
|
|
300
|
+
- Updated dependencies [bb8b219]
|
|
301
|
+
- Updated dependencies [03f95eb]
|
|
302
|
+
- Updated dependencies [1a89f23]
|
|
303
|
+
- Updated dependencies [9d35a1f]
|
|
304
|
+
- Updated dependencies [c691c8b]
|
|
305
|
+
- Updated dependencies [749cf69]
|
|
306
|
+
- Updated dependencies [f03e39f]
|
|
307
|
+
- Updated dependencies [11088aa]
|
|
308
|
+
- Updated dependencies [72c1905]
|
|
309
|
+
- Updated dependencies [9298f75]
|
|
310
|
+
- Updated dependencies [f34b3d4]
|
|
311
|
+
- Updated dependencies [acbfab9]
|
|
312
|
+
- Updated dependencies [62c1d63]
|
|
313
|
+
- Updated dependencies [3c9ac22]
|
|
314
|
+
- Updated dependencies [1591f04]
|
|
315
|
+
- Updated dependencies [03e1941]
|
|
316
|
+
- Updated dependencies [abfe4b3]
|
|
317
|
+
- Updated dependencies [b79becf]
|
|
318
|
+
- Updated dependencies [27866a8]
|
|
319
|
+
- Updated dependencies [e5fe7c0]
|
|
320
|
+
- Updated dependencies [1b2e8c9]
|
|
321
|
+
- Updated dependencies [9f3807c]
|
|
322
|
+
- Updated dependencies [0c56d21]
|
|
323
|
+
- Updated dependencies [e548b9b]
|
|
324
|
+
- Updated dependencies [ee6224b]
|
|
325
|
+
- Updated dependencies [1dc0228]
|
|
326
|
+
- Updated dependencies [6c60414]
|
|
327
|
+
- Updated dependencies [5fe2c8d]
|
|
328
|
+
- Updated dependencies [d3b3f35]
|
|
329
|
+
- Updated dependencies [785f663]
|
|
330
|
+
- Updated dependencies [6b6c8a1]
|
|
331
|
+
- Updated dependencies [c537e2d]
|
|
332
|
+
- Updated dependencies [73fa373]
|
|
333
|
+
- Updated dependencies [8e6a5f4]
|
|
334
|
+
- Updated dependencies [2d5e648]
|
|
335
|
+
- Updated dependencies [31e7d70]
|
|
336
|
+
- Updated dependencies [f19da8e]
|
|
337
|
+
- @osdk/api@2.1.0
|
|
338
|
+
|
|
235
339
|
## 0.9.0-beta.31
|
|
236
340
|
|
|
237
341
|
### Minor Changes
|
|
@@ -373,14 +373,32 @@ function convertDatasourceDefinition(objectType, properties) {
|
|
|
373
373
|
};
|
|
374
374
|
case "dataset":
|
|
375
375
|
default:
|
|
376
|
+
const datasetPropertyMapping = Object.fromEntries(properties.map(prop => {
|
|
377
|
+
prop.type;
|
|
378
|
+
if (typeof prop.type === "object" && prop.type?.type === "struct") {
|
|
379
|
+
const structMapping = {
|
|
380
|
+
type: "struct",
|
|
381
|
+
struct: {
|
|
382
|
+
column: prop.apiName,
|
|
383
|
+
mapping: Object.fromEntries(Object.entries(prop.type.structDefinition).map(([fieldName, _fieldType]) => [fieldName, {
|
|
384
|
+
apiName: fieldName,
|
|
385
|
+
mappings: {}
|
|
386
|
+
}]))
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
return [prop.apiName, structMapping];
|
|
390
|
+
} else {
|
|
391
|
+
return [prop.apiName, {
|
|
392
|
+
type: "column",
|
|
393
|
+
column: prop.apiName
|
|
394
|
+
}];
|
|
395
|
+
}
|
|
396
|
+
}));
|
|
376
397
|
return {
|
|
377
398
|
type: "datasetV2",
|
|
378
399
|
datasetV2: {
|
|
379
400
|
datasetRid: objectType.apiName,
|
|
380
|
-
propertyMapping:
|
|
381
|
-
type: "column",
|
|
382
|
-
column: prop.apiName
|
|
383
|
-
}]))
|
|
401
|
+
propertyMapping: datasetPropertyMapping
|
|
384
402
|
}
|
|
385
403
|
};
|
|
386
404
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineOntology.js","names":["fs","path","invariant","isExotic","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","outputBuildDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","content","JSON","stringify","writeFileSync","flag","length","typeIndexContent","map","name","typeIndexFilePath","entityModuleName","mainIndexContent","mainIndexFilePath","valueTypes","definitions","metadata","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","convertToWireBlockData","convertToWireImportedTypes","asBlockData","sharedPropertyTypes","spt","sharedPropertyType","displayName","description","type","objectTypes","ot","objectType","propertyTypes","p","sharedPropertyTypeApiName","interfaceTypes","i","interfaceType","properties","allPropertiesV2","links","allLinks","l","cardinality","required","actionTypes","a","actionType","parameters","id","linkTypes","linkType","objectTypeApiNameOneSide","oneToMany","objectTypeRidOneSide","objectTypeApiNameManySide","objectTypeRidManySide","manyToOneLinkDisplayName","manyToOneLinkMetadata","oneToManyLinkDisplayName","oneToManyLinkMetadata","cardinalityHint","objectTypeApiNameA","manyToMany","objectTypeRidA","objectTypeApiNameB","objectTypeRidB","objectTypeAToBLinkDisplayName","objectTypeAToBLinkMetadata","objectTypeBToALinkDisplayName","objectTypeBToALinkMetadata","fromEntries","convertObject","convertSpt","convertInterface","link","convertLink","action","convertAction","blockPermissionInformation","propertyDatasources","flatMap","prop","extractPropertyDatasource","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","datasetV2","datasetRid","column","output","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","convertNullabilityToDataConstraint","sharedPropertyTypeRid","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","active","other","propertiesV2","allExtendsInterfaces","allProperties","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","nullability","dataConstraint","subtype","aliases","marking","markingType","structFields","Array","key","structDefinition","fieldTypeDefinition","field","fieldType","struct","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","geohash","precision","scale","mediaReference","geotimeSeriesReference","distributeTypeHelper","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","actionTypeLogic","logic","rules","validation","configuration","defaultLayout","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","successMessage","formContentOrdering","parameterOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","editable","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","sectionId","parameterIds","parameterId","collapsedByDefault","columnCount","showTitleBar","parameter","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","value","maximum","minLength","maxLength","regex","text","minimumLength","maximumLength","datetime","objectTypeReference","interfaceTypeRids","k","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","Error","dropdown","notRequired","listLength","listLengthValidation","propertyTypeConstraints","nullabilityV2","noEmptyCollections","noNulls","process","env","NODE_ENV","sanitize","s","includes","extractNamespace","substring","lastIndexOf","lastDot","str","result","replace","_","c","toUpperCase","charAt","toLowerCase","slice"],"sources":["defineOntology.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 type {\n ActionTypeStatus,\n DataConstraints,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrActionValidation,\n OntologyIrAllowedParameterValues,\n OntologyIrBaseParameterType,\n OntologyIrImportedTypes,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n ParameterId,\n ParameterRenderHint,\n ParameterRequiredConfiguration,\n RetentionPolicy,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport invariant from \"tiny-invariant\";\nimport { isExotic } from \"./defineObject.js\";\nimport type {\n ActionParameter,\n ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n Nullability,\n ObjectPropertyType,\n ObjectType,\n OntologyDefinition,\n OntologyEntityType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\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 writeStaticObjects(outputDir);\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const outputBuildDir = path.resolve(outputDir, \"build\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(outputBuildDir)) {\n fs.mkdirSync(outputBuildDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(outputBuildDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(outputBuildDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(([apiName, entity]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const content = `\nimport { importOntologyEntity } from '@osdk/maker';\n\nexport const ${entityFileNameBase} = ${\n JSON.stringify(entity, null, 2)\n } as const;\n \nimportOntologyEntity(${entityFileNameBase});\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n });\n\n if (entityModuleNames.length > 0) {\n const typeIndexContent = entityModuleNames\n .map(name => `export * from './${name}';`)\n .join(\"\\n\") + \"\\n\";\n const typeIndexFilePath = path.join(typeDirPath, \"index.ts\");\n fs.writeFileSync(typeIndexFilePath, typeIndexContent, { flag: \"w\" });\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from './build/${typeDirName}/${entityModuleName}.ts';`,\n );\n }\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: OntologyDefinition,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology[OntologyEntityTypeEnum.VALUE_TYPE]).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: OntologyDefinition,\n): OntologyIr {\n return {\n blockData: convertToWireBlockData(ontology),\n importedTypes: convertToWireImportedTypes(importedTypes),\n };\n}\n\nfunction convertToWireImportedTypes(\n importedTypes: OntologyDefinition,\n): OntologyIrImportedTypes {\n const asBlockData = convertToWireBlockData(importedTypes); // this just makes things easier to work with\n return {\n sharedPropertyTypes: Object.values(asBlockData.sharedPropertyTypes).map(\n spt => ({\n apiName: spt.sharedPropertyType.apiName,\n displayName: spt.sharedPropertyType.displayMetadata.displayName,\n description: spt.sharedPropertyType.displayMetadata.description,\n type: spt.sharedPropertyType.type,\n }),\n ),\n objectTypes: Object.values(\n asBlockData.objectTypes,\n ).map(ot => ({\n apiName: ot.objectType.apiName,\n displayName: ot.objectType.displayMetadata.displayName,\n description: ot.objectType.displayMetadata.description,\n propertyTypes: Object.values(ot.objectType.propertyTypes).map(p => ({\n apiName: p.apiName,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n sharedPropertyType: p.sharedPropertyTypeApiName,\n })),\n })),\n interfaceTypes: Object.values(asBlockData.interfaceTypes).map(i => ({\n apiName: i.interfaceType.apiName,\n displayName: i.interfaceType.displayMetadata.displayName,\n description: i.interfaceType.displayMetadata.description,\n properties: Object.values(i.interfaceType.allPropertiesV2).map(p => ({\n apiName: p.sharedPropertyType.apiName,\n displayName: p.sharedPropertyType.displayMetadata.displayName,\n description: p.sharedPropertyType.displayMetadata.description,\n type: p.sharedPropertyType.type,\n })),\n links: i.interfaceType.allLinks.map(l => ({\n apiName: l.metadata.apiName,\n displayName: l.metadata.displayName,\n description: l.metadata.description,\n cardinality: l.cardinality,\n required: l.required,\n })),\n })),\n actionTypes: Object.values(asBlockData.actionTypes).map(a => ({\n apiName: a.actionType.metadata.apiName,\n displayName: a.actionType.metadata.displayMetadata.displayName,\n description: a.actionType.metadata.displayMetadata.description,\n parameters: Object.values(a.actionType.metadata.parameters).map(p => ({\n id: p.id,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n })),\n })),\n linkTypes: Object.values(asBlockData.linkTypes).map(l => {\n if (l.linkType.definition.type === \"oneToMany\") {\n return {\n id: l.linkType.id,\n definition: {\n type: \"oneToMany\",\n \"oneToMany\": {\n objectTypeApiNameOneSide:\n l.linkType.definition.oneToMany.objectTypeRidOneSide,\n objectTypeApiNameManySide:\n l.linkType.definition.oneToMany.objectTypeRidManySide,\n manyToOneLinkDisplayName:\n l.linkType.definition.oneToMany.manyToOneLinkMetadata\n .displayMetadata.displayName,\n oneToManyLinkDisplayName:\n l.linkType.definition.oneToMany.oneToManyLinkMetadata\n .displayMetadata.displayName,\n cardinality: l.linkType.definition.oneToMany.cardinalityHint,\n },\n },\n };\n } else {\n return {\n id: l.linkType.id,\n definition: {\n type: \"manyToMany\",\n \"manyToMany\": {\n objectTypeApiNameA:\n l.linkType.definition.manyToMany.objectTypeRidA,\n objectTypeApiNameB:\n l.linkType.definition.manyToMany.objectTypeRidB,\n objectTypeAToBLinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeAToBLinkMetadata\n .displayMetadata.displayName,\n objectTypeBToALinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeBToALinkMetadata\n .displayMetadata.displayName,\n },\n },\n };\n }\n }),\n };\n}\n\nfunction convertToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\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[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\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, convertProperty(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 properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction 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 buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n): OntologyIrObjectTypeDatasource {\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n });\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n properties: ObjectPropertyType[],\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 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 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: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkType,\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.primaryKeyPropertyApiName,\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.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.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: 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}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrInterfaceType {\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 // 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 visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = convertNullabilityToDataConstraint({ type, nullability });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: 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 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 (typeof type === \"object\" && \"isLongText\" in type):\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard:\n type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching,\n },\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 case (type === \"geotimeSeries\"):\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\nfunction convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nfunction convertAction(action: ActionType): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? [],\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n },\n },\n };\n}\n\nfunction 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),\n visibility: { type: \"editable\", editable: {} },\n },\n validation: {\n allowedValues: extractAllowedValues(p),\n required: convertParameterRequirementConstraint(\n p.validation.required,\n ),\n },\n },\n },\n ];\n }),\n ),\n };\n}\n\nfunction convertActionParameters(\n action: ActionType,\n): Record<ParameterId, OntologyIrParameter> {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: (typeof p.type === \"string\"\n ? { type: p.type, [p.type]: {} }\n : p.type) as OntologyIrBaseParameterType,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: [],\n },\n }]));\n}\n\nfunction convertActionSections(\n action: ActionType,\n): Record<SectionId, OntologyIrSection> {\n return Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, parameterIds],\n ) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({ type: \"parameterId\", parameterId: p })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true,\n },\n }]),\n );\n}\n\nfunction extractAllowedValues(\n parameter: ActionParameter,\n): OntologyIrAllowedParameterValues {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: { allowed: false },\n },\n },\n };\n case \"range\":\n const { min, max } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } =\n parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minimumLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maximumLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids:\n parameter.validation.allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nfunction renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\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\nfunction convertNullabilityToDataConstraint(\n prop: { type: PropertyTypeType; nullability?: Nullability },\n): DataConstraints | undefined {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n };\n }\n invariant(\n prop.nullability?.noNulls,\n \"Marking property type has noNulls set to false, marking properties must not be nullable\",\n );\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\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\nexport function sanitize(namespace: string, s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineOntology.js","names":["fs","path","invariant","isExotic","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","ontology","convertToWireOntologyIr","valueType","convertOntologyToValueTypeIr","outputBuildDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","content","JSON","stringify","writeFileSync","flag","length","typeIndexContent","map","name","typeIndexFilePath","entityModuleName","mainIndexContent","mainIndexFilePath","valueTypes","definitions","metadata","displayMetadata","status","versions","definition","version","baseType","constraints","exampleValues","blockData","convertToWireBlockData","convertToWireImportedTypes","asBlockData","sharedPropertyTypes","spt","sharedPropertyType","displayName","description","type","objectTypes","ot","objectType","propertyTypes","p","sharedPropertyTypeApiName","interfaceTypes","i","interfaceType","properties","allPropertiesV2","links","allLinks","l","cardinality","required","actionTypes","a","actionType","parameters","id","linkTypes","linkType","objectTypeApiNameOneSide","oneToMany","objectTypeRidOneSide","objectTypeApiNameManySide","objectTypeRidManySide","manyToOneLinkDisplayName","manyToOneLinkMetadata","oneToManyLinkDisplayName","oneToManyLinkMetadata","cardinalityHint","objectTypeApiNameA","manyToMany","objectTypeRidA","objectTypeApiNameB","objectTypeRidB","objectTypeAToBLinkDisplayName","objectTypeAToBLinkMetadata","objectTypeBToALinkDisplayName","objectTypeBToALinkMetadata","fromEntries","convertObject","convertSpt","convertInterface","link","convertLink","action","convertAction","blockPermissionInformation","propertyDatasources","flatMap","prop","extractPropertyDatasource","objectDatasource","buildDatasource","convertDatasourceDefinition","implementations","implementsInterfaces","groupDisplayName","icon","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","val","convertProperty","titlePropertyTypeRid","titlePropertyApiName","convertObjectStatus","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","window","retentionPeriod","retentionPolicy","time","none","streamV2","streamLocator","propertySecurityGroups","datasetPropertyMapping","structMapping","struct","column","structDefinition","fieldName","_fieldType","mappings","datasetV2","datasetRid","output","indexedForSearch","ruleSetBinding","baseFormatter","convertType","typeClasses","inlineAction","dataConstraints","convertNullabilityToDataConstraint","sharedPropertyTypeRid","toMany","object","one","oneSidePrimaryKeyToManySidePropertyMapping","from","to","manyForeignKeyProperty","many","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","dataset","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","active","other","propertiesV2","allExtendsInterfaces","allProperties","dumpOntologyFullMetadata","dumpValueTypeWireType","array","gothamMapping","nullability","dataConstraint","subtype","aliases","marking","markingType","structFields","Array","key","fieldTypeDefinition","field","fieldType","analyzerOverride","enableAsciiFolding","isLongText","supportsEfficientLeadingWildcard","supportsExactMatching","geohash","precision","scale","mediaReference","geotimeSeriesReference","distributeTypeHelper","experimental","deprecated","message","deadline","replacedBy","actionValidation","convertActionValidation","actionParameters","convertActionParameters","actionSections","convertActionSections","actionTypeLogic","logic","rules","validation","configuration","defaultLayout","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","successMessage","formContentOrdering","parameterOrdering","sections","actionTypeLevelValidation","condition","true","failureMessage","rule","idx","parameterValidations","defaultValidation","display","renderHint","renderHintFromBaseType","editable","allowedValues","extractAllowedValues","convertParameterRequirementConstraint","sectionId","parameterIds","parameterId","collapsedByDefault","columnCount","showTitleBar","parameter","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","value","maximum","minLength","maxLength","regex","text","minimumLength","maximumLength","datetime","objectTypeReference","interfaceTypeRids","k","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","Error","dropdown","notRequired","listLength","listLengthValidation","propertyTypeConstraints","nullabilityV2","noEmptyCollections","noNulls","process","env","NODE_ENV","sanitize","s","includes","extractNamespace","substring","lastIndexOf","lastDot","str","result","replace","_","c","toUpperCase","charAt","toLowerCase","slice"],"sources":["defineOntology.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 type {\n ActionTypeStatus,\n DataConstraints,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrActionValidation,\n OntologyIrAllowedParameterValues,\n OntologyIrBaseParameterType,\n OntologyIrImportedTypes,\n OntologyIrInterfaceType,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrOntologyBlockDataV2,\n OntologyIrParameter,\n OntologyIrPropertyType,\n OntologyIrSection,\n OntologyIrSharedPropertyType,\n OntologyIrSharedPropertyTypeBlockDataV2,\n OntologyIrStructFieldType,\n OntologyIrType,\n OntologyIrValueTypeBlockData,\n OntologyIrValueTypeBlockDataEntry,\n ParameterId,\n ParameterRenderHint,\n ParameterRequiredConfiguration,\n RetentionPolicy,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport invariant from \"tiny-invariant\";\nimport { isExotic } from \"./defineObject.js\";\nimport type {\n ActionParameter,\n ActionParameterRequirementConstraint,\n ActionType,\n InterfaceType,\n LinkType,\n Nullability,\n ObjectPropertyType,\n ObjectType,\n OntologyDefinition,\n OntologyEntityType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n/** @internal */\nexport let namespace: string;\n\ntype OntologyAndValueTypeIrs = {\n ontology: OntologyIr;\n valueType: OntologyIrValueTypeBlockData;\n};\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string,\n): Promise<OntologyAndValueTypeIrs> {\n namespace = ns;\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\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 writeStaticObjects(outputDir);\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition),\n };\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const outputBuildDir = path.resolve(outputDir, \"build\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(outputBuildDir)) {\n fs.mkdirSync(outputBuildDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(outputBuildDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(outputBuildDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(([apiName, entity]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const content = `\nimport { importOntologyEntity } from '@osdk/maker';\n\nexport const ${entityFileNameBase} = ${\n JSON.stringify(entity, null, 2)\n } as const;\n \nimportOntologyEntity(${entityFileNameBase});\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n });\n\n if (entityModuleNames.length > 0) {\n const typeIndexContent = entityModuleNames\n .map(name => `export * from './${name}';`)\n .join(\"\\n\") + \"\\n\";\n const typeIndexFilePath = path.join(typeDirPath, \"index.ts\");\n fs.writeFileSync(typeIndexFilePath, typeIndexContent, { flag: \"w\" });\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from './build/${typeDirName}/${entityModuleName}.ts';`,\n );\n }\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nfunction convertOntologyToValueTypeIr(\n ontology: OntologyDefinition,\n): OntologyIrValueTypeBlockData {\n return {\n valueTypes: Object.values(ontology[OntologyEntityTypeEnum.VALUE_TYPE]).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: OntologyDefinition,\n): OntologyIr {\n return {\n blockData: convertToWireBlockData(ontology),\n importedTypes: convertToWireImportedTypes(importedTypes),\n };\n}\n\nfunction convertToWireImportedTypes(\n importedTypes: OntologyDefinition,\n): OntologyIrImportedTypes {\n const asBlockData = convertToWireBlockData(importedTypes); // this just makes things easier to work with\n return {\n sharedPropertyTypes: Object.values(asBlockData.sharedPropertyTypes).map(\n spt => ({\n apiName: spt.sharedPropertyType.apiName,\n displayName: spt.sharedPropertyType.displayMetadata.displayName,\n description: spt.sharedPropertyType.displayMetadata.description,\n type: spt.sharedPropertyType.type,\n }),\n ),\n objectTypes: Object.values(\n asBlockData.objectTypes,\n ).map(ot => ({\n apiName: ot.objectType.apiName,\n displayName: ot.objectType.displayMetadata.displayName,\n description: ot.objectType.displayMetadata.description,\n propertyTypes: Object.values(ot.objectType.propertyTypes).map(p => ({\n apiName: p.apiName,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n sharedPropertyType: p.sharedPropertyTypeApiName,\n })),\n })),\n interfaceTypes: Object.values(asBlockData.interfaceTypes).map(i => ({\n apiName: i.interfaceType.apiName,\n displayName: i.interfaceType.displayMetadata.displayName,\n description: i.interfaceType.displayMetadata.description,\n properties: Object.values(i.interfaceType.allPropertiesV2).map(p => ({\n apiName: p.sharedPropertyType.apiName,\n displayName: p.sharedPropertyType.displayMetadata.displayName,\n description: p.sharedPropertyType.displayMetadata.description,\n type: p.sharedPropertyType.type,\n })),\n links: i.interfaceType.allLinks.map(l => ({\n apiName: l.metadata.apiName,\n displayName: l.metadata.displayName,\n description: l.metadata.description,\n cardinality: l.cardinality,\n required: l.required,\n })),\n })),\n actionTypes: Object.values(asBlockData.actionTypes).map(a => ({\n apiName: a.actionType.metadata.apiName,\n displayName: a.actionType.metadata.displayMetadata.displayName,\n description: a.actionType.metadata.displayMetadata.description,\n parameters: Object.values(a.actionType.metadata.parameters).map(p => ({\n id: p.id,\n displayName: p.displayMetadata.displayName,\n description: p.displayMetadata.description,\n type: p.type,\n })),\n })),\n linkTypes: Object.values(asBlockData.linkTypes).map(l => {\n if (l.linkType.definition.type === \"oneToMany\") {\n return {\n id: l.linkType.id,\n definition: {\n type: \"oneToMany\",\n \"oneToMany\": {\n objectTypeApiNameOneSide:\n l.linkType.definition.oneToMany.objectTypeRidOneSide,\n objectTypeApiNameManySide:\n l.linkType.definition.oneToMany.objectTypeRidManySide,\n manyToOneLinkDisplayName:\n l.linkType.definition.oneToMany.manyToOneLinkMetadata\n .displayMetadata.displayName,\n oneToManyLinkDisplayName:\n l.linkType.definition.oneToMany.oneToManyLinkMetadata\n .displayMetadata.displayName,\n cardinality: l.linkType.definition.oneToMany.cardinalityHint,\n },\n },\n };\n } else {\n return {\n id: l.linkType.id,\n definition: {\n type: \"manyToMany\",\n \"manyToMany\": {\n objectTypeApiNameA:\n l.linkType.definition.manyToMany.objectTypeRidA,\n objectTypeApiNameB:\n l.linkType.definition.manyToMany.objectTypeRidB,\n objectTypeAToBLinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeAToBLinkMetadata\n .displayMetadata.displayName,\n objectTypeBToALinkDisplayName:\n l.linkType.definition.manyToMany.objectTypeBToALinkMetadata\n .displayMetadata.displayName,\n },\n },\n };\n }\n }),\n };\n}\n\nfunction convertToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\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[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n\nfunction convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n objectType.properties ?? [],\n ),\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, convertProperty(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 properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [...propertyDatasources, objectDatasource],\n entityMetadata: { arePatchesEnabled: objectType.editsEnabled ?? false },\n };\n}\n\nfunction 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 buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n): OntologyIrObjectTypeDatasource {\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n });\n}\n\nfunction convertDatasourceDefinition(\n objectType: ObjectType,\n properties: ObjectPropertyType[],\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 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 const datasetPropertyMapping = Object.fromEntries(\n properties.map((prop) => {\n prop.type;\n if (typeof prop.type === \"object\" && prop.type?.type === \"struct\") {\n const structMapping = {\n type: \"struct\",\n struct: {\n column: prop.apiName,\n mapping: Object.fromEntries(\n Object.entries(prop.type.structDefinition).map((\n [fieldName, _fieldType],\n ) => [\n fieldName,\n { apiName: fieldName, mappings: {} },\n ]),\n ),\n },\n };\n return [prop.apiName, structMapping];\n } else {\n return [\n prop.apiName,\n { type: \"column\", column: prop.apiName },\n ];\n }\n }),\n );\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: datasetPropertyMapping,\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: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined,\n };\n return output;\n}\n\nfunction convertLink(\n linkType: LinkType,\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.primaryKeyPropertyApiName,\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.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.many.object.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: 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}\n\nfunction convertInterface(\n interfaceType: InterfaceType,\n): OntologyIrInterfaceType {\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 // 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 visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability,\n }: SharedPropertyType,\n): OntologyIrSharedPropertyType {\n const dataConstraint:\n | OntologyIrSharedPropertyType[\"dataConstraints\"]\n | undefined = convertNullabilityToDataConstraint({ type, nullability });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: 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 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 (typeof type === \"object\" && \"isLongText\" in type):\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard:\n type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching,\n },\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 case (type === \"geotimeSeries\"):\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {},\n };\n\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\nfunction convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nfunction convertAction(action: ActionType): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? [],\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n },\n },\n };\n}\n\nfunction 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),\n visibility: { type: \"editable\", editable: {} },\n },\n validation: {\n allowedValues: extractAllowedValues(p),\n required: convertParameterRequirementConstraint(\n p.validation.required,\n ),\n },\n },\n },\n ];\n }),\n ),\n };\n}\n\nfunction convertActionParameters(\n action: ActionType,\n): Record<ParameterId, OntologyIrParameter> {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: (typeof p.type === \"string\"\n ? { type: p.type, [p.type]: {} }\n : p.type) as OntologyIrBaseParameterType,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: [],\n },\n }]));\n}\n\nfunction convertActionSections(\n action: ActionType,\n): Record<SectionId, OntologyIrSection> {\n return Object.fromEntries(\n Object.entries(action.sections ?? {}).map((\n [sectionId, parameterIds],\n ) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({ type: \"parameterId\", parameterId: p })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true,\n },\n }]),\n );\n}\n\nfunction extractAllowedValues(\n parameter: ActionParameter,\n): OntologyIrAllowedParameterValues {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: { allowed: false },\n },\n },\n };\n case \"range\":\n const { min, max } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } =\n parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minimumLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maximumLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids:\n parameter.validation.allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nfunction renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\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\nfunction convertNullabilityToDataConstraint(\n prop: { type: PropertyTypeType; nullability?: Nullability },\n): DataConstraints | undefined {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: { noEmptyCollections: true, noNulls: true },\n };\n }\n invariant(\n prop.nullability?.noNulls,\n \"Marking property type has noNulls set to false, marking properties must not be nullable\",\n );\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability,\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\nexport function sanitize(namespace: string, s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,16 +27,24 @@ const defaultTypeClasses = [{
|
|
|
27
27
|
export function defineSharedPropertyType(sptDef) {
|
|
28
28
|
const apiName = namespace + sptDef.apiName;
|
|
29
29
|
!(ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Shared property type ${apiName} already exists`) : invariant(false) : void 0;
|
|
30
|
+
|
|
31
|
+
// ExperimentalTimeDependentV1 and Attachment types should be included here once supported
|
|
32
|
+
const shouldNotHaveRenderHints = ["struct", "mediaReference", "geotimeSeries"].includes(getPropertyTypeName(sptDef.type));
|
|
33
|
+
const hasRenderHints = (sptDef.typeClasses ?? []).some(tc => tc.kind.toLowerCase() === "render_hint");
|
|
34
|
+
!(!shouldNotHaveRenderHints || !hasRenderHints) ? process.env.NODE_ENV !== "production" ? invariant(false, `Shared property type ${apiName} of type '${getPropertyTypeName(sptDef.type)}' should not have render hints`) : invariant(false) : void 0;
|
|
30
35
|
const fullSpt = {
|
|
31
36
|
...sptDef,
|
|
32
37
|
apiName,
|
|
33
38
|
nonNameSpacedApiName: sptDef.apiName,
|
|
34
39
|
displayName: sptDef.displayName ?? sptDef.apiName,
|
|
35
40
|
// This way the non-namespaced api name is the display name (maybe not ideal)
|
|
36
|
-
typeClasses: sptDef.typeClasses ?? defaultTypeClasses,
|
|
41
|
+
typeClasses: sptDef.typeClasses ?? (shouldNotHaveRenderHints ? [] : defaultTypeClasses),
|
|
37
42
|
__type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE
|
|
38
43
|
};
|
|
39
44
|
updateOntology(fullSpt);
|
|
40
45
|
return fullSpt;
|
|
41
46
|
}
|
|
47
|
+
function getPropertyTypeName(type) {
|
|
48
|
+
return typeof type === "object" ? type.type : type;
|
|
49
|
+
}
|
|
42
50
|
//# sourceMappingURL=defineSpt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineSpt.js","names":["invariant","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","defaultTypeClasses","kind","name","defineSharedPropertyType","sptDef","apiName","SHARED_PROPERTY_TYPE","undefined","process","env","NODE_ENV","
|
|
1
|
+
{"version":3,"file":"defineSpt.js","names":["invariant","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","defaultTypeClasses","kind","name","defineSharedPropertyType","sptDef","apiName","SHARED_PROPERTY_TYPE","undefined","process","env","NODE_ENV","shouldNotHaveRenderHints","includes","getPropertyTypeName","type","hasRenderHints","typeClasses","some","tc","toLowerCase","fullSpt","nonNameSpacedApiName","displayName","__type"],"sources":["defineSpt.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 type {\n ApiNameValueTypeReference,\n SharedPropertyTypeGothamMapping,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport {\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type SharedPropertyType,\n} from \"./types.js\";\n\nconst defaultTypeClasses: SharedPropertyType[\"typeClasses\"] = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\",\n}, { kind: \"render_hint\", name: \"SORTABLE\" }];\n\nexport interface SharedPropertyTypeDefinition {\n apiName: string;\n type: PropertyTypeType;\n array?: boolean;\n description?: string;\n displayName?: string;\n valueType?: ApiNameValueTypeReference;\n visibility?: Visibility;\n typeClasses?: SharedPropertyType[\"typeClasses\"];\n gothamMapping?: SharedPropertyTypeGothamMapping;\n}\n\nexport function defineSharedPropertyType(\n sptDef: SharedPropertyTypeDefinition,\n): SharedPropertyType {\n const apiName = namespace + sptDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName]\n === undefined,\n `Shared property type ${apiName} already exists`,\n );\n\n // ExperimentalTimeDependentV1 and Attachment types should be included here once supported\n const shouldNotHaveRenderHints = [\"struct\", \"mediaReference\", \"geotimeSeries\"]\n .includes(getPropertyTypeName(sptDef.type));\n const hasRenderHints = (sptDef.typeClasses ?? []).some(tc =>\n tc.kind.toLowerCase() === \"render_hint\"\n );\n invariant(\n !shouldNotHaveRenderHints || !hasRenderHints,\n `Shared property type ${apiName} of type '${\n getPropertyTypeName(sptDef.type)\n }' should not have render hints`,\n );\n\n const fullSpt: SharedPropertyType = {\n ...sptDef,\n apiName,\n nonNameSpacedApiName: sptDef.apiName,\n displayName: sptDef.displayName ?? sptDef.apiName, // This way the non-namespaced api name is the display name (maybe not ideal)\n typeClasses: sptDef.typeClasses\n ?? (shouldNotHaveRenderHints ? [] : defaultTypeClasses),\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE,\n };\n updateOntology(fullSpt);\n return fullSpt;\n}\n\nfunction getPropertyTypeName(type: PropertyTypeType): string {\n return typeof type === \"object\" ? type.type : type;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SACEC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,QACT,qBAAqB;AAC5B,SACEC,sBAAsB,QAGjB,YAAY;AAEnB,MAAMC,kBAAqD,GAAG,CAAC;EAC7DC,IAAI,EAAE,aAAa;EACnBC,IAAI,EAAE;AACR,CAAC,EAAE;EAAED,IAAI,EAAE,aAAa;EAAEC,IAAI,EAAE;AAAW,CAAC,CAAC;AAc7C,OAAO,SAASC,wBAAwBA,CACtCC,MAAoC,EAChB;EACpB,MAAMC,OAAO,GAAGT,SAAS,GAAGQ,MAAM,CAACC,OAAO;EAC1C,EACER,kBAAkB,CAACE,sBAAsB,CAACO,oBAAoB,CAAC,CAACD,OAAO,CAAC,KAClEE,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFjBf,SAAS,QAGP,wBAAwBU,OAAO,iBAAiB,IAHlDV,SAAS;;EAMT;EACA,MAAMgB,wBAAwB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAC3EC,QAAQ,CAACC,mBAAmB,CAACT,MAAM,CAACU,IAAI,CAAC,CAAC;EAC7C,MAAMC,cAAc,GAAG,CAACX,MAAM,CAACY,WAAW,IAAI,EAAE,EAAEC,IAAI,CAACC,EAAE,IACvDA,EAAE,CAACjB,IAAI,CAACkB,WAAW,CAAC,CAAC,KAAK,aAC5B,CAAC;EACD,EACE,CAACR,wBAAwB,IAAI,CAACI,cAAc,IAAAP,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD9Cf,SAAS,QAEP,wBAAwBU,OAAO,aAC7BQ,mBAAmB,CAACT,MAAM,CAACU,IAAI,CAAC,gCACF,IAJlCnB,SAAS;EAOT,MAAMyB,OAA2B,GAAG;IAClC,GAAGhB,MAAM;IACTC,OAAO;IACPgB,oBAAoB,EAAEjB,MAAM,CAACC,OAAO;IACpCiB,WAAW,EAAElB,MAAM,CAACkB,WAAW,IAAIlB,MAAM,CAACC,OAAO;IAAE;IACnDW,WAAW,EAAEZ,MAAM,CAACY,WAAW,KACzBL,wBAAwB,GAAG,EAAE,GAAGX,kBAAkB,CAAC;IACzDuB,MAAM,EAAExB,sBAAsB,CAACO;EACjC,CAAC;EACDR,cAAc,CAACsB,OAAO,CAAC;EACvB,OAAOA,OAAO;AAChB;AAEA,SAASP,mBAAmBA,CAACC,IAAsB,EAAU;EAC3D,OAAO,OAAOA,IAAI,KAAK,QAAQ,GAAGA,IAAI,CAACA,IAAI,GAAGA,IAAI;AACpD","ignoreList":[]}
|