@osdk/maker-experimental 0.6.0 → 0.7.0-main-20260407074313
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 +13 -0
- package/build/browser/cli/main.js +1 -1
- package/build/browser/cli/main.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/cjs/index.cjs +1 -1
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/cli/main.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/types/conversion/toMarketplace/convertLink.d.ts +1 -1
- package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @osdk/maker-experimental
|
|
2
2
|
|
|
3
|
+
## 0.7.0-main-20260407074313
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 492db18: Expand the set of types acceptable in references
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [492db18]
|
|
12
|
+
- @osdk/maker@0.17.0-main-20260407074313
|
|
13
|
+
- @osdk/api@2.8.1-main-20260407074313
|
|
14
|
+
- @osdk/client.unstable@2.8.1-main-20260407074313
|
|
15
|
+
|
|
3
16
|
## 0.6.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -29,7 +29,7 @@ const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
|
29
29
|
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
30
30
|
export default async function main(args = process.argv) {
|
|
31
31
|
consola.log("Generating BlockGeneratorResult for ontology...");
|
|
32
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.
|
|
32
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.7.0-main-20260407074313" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
33
33
|
input: {
|
|
34
34
|
alias: "i",
|
|
35
35
|
describe: "Input file",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["cleanAndValidateLinkTypeId","consola","createJiti","fs","path","invariant","yargs","hideBin","defineOntologyV2","ReadableIdGenerator","generateBackingDatasetBlockResult","generateBackingDatasetBlockResultForLink","getNonEditOnlyProperties","apiNamespaceRegex","uuidRegex","main","args","process","argv","log","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","buildDir","randomnessKey","parseAsync","length","slice","env","NODE_ENV","test","info","undefined","ontologyIr","shapes","backingDatasourceApiNames","backingDatasourceLinkApiNames","loadOntology","blockDataDir","join","existsSync","promises","mkdir","recursive","ontologyJsonPath","ontologyJson","JSON","stringify","ontology","writeFile","ontologyInputMappingEntries","apiName","objectTypeBlockData","findObjectTypeByApiName","objectTypes","nonEditOnlyProps","inputDatasetReadableId","getForDataset","outputDatasetReadableId","getForDatasetOutput","inputShapes","has","push","prop","colInputReadableId","getForDatasetColumn","getForDatasetColumnOutput","linkApiName","linkTypeBlockData","findLinkTypeByApiName","linkTypes","datasetName","inputDsId","outputDsId","ds","datasources","datasource","columnNames","Object","values","dataset","objectTypeAPrimaryKeyMapping","map","String","objectTypeBPrimaryKeyMapping","colName","colInputId","colOutputId","backingDsGeneratorResults","Promise","all","filter","backingDsLinkGeneratorResults","p","blockGeneratorResult","block_identifier","block_data_directory","oci_block_data_metadata","maven_block_data_metadata","inputs","fromEntries","outputs","outputShapes","input_mapping_entries","external_recommendations","add_on_override","input_shape_metadata","inputShapeMetadata","block_type","blockGeneratorResultJson","success","result","jiti","import","meta","filename","moduleCache","debug","importMeta","find","objectType","linkTypeId","lt","linkType","id"],"sources":["main.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n LinkTypeBlockDataV2,\n ObjectTypeBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport { cleanAndValidateLinkTypeId } from \"@osdk/maker\";\nimport { consola } from \"consola\";\nimport { createJiti } from \"jiti\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntologyV2 } from \"../api/defineOntologyV2.js\";\nimport { ReadableIdGenerator } from \"../util/generateRid.js\";\nimport {\n generateBackingDatasetBlockResult,\n generateBackingDatasetBlockResultForLink,\n getNonEditOnlyProperties,\n} from \"./generateBackingDataset.js\";\nimport type { BlockGeneratorResult } from \"./marketplaceSerialization/BlockGeneratorResult.js\";\nimport type { InputMappingEntry } from \"./marketplaceSerialization/supportingTypes.js\";\n\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\n\nexport default async function main(\n args: string[] = process.argv,\n): Promise<void> {\n consola.log(\"Generating BlockGeneratorResult for ontology...\");\n\n const commandLineOpts: {\n input: string;\n output: string;\n apiNamespace: string;\n buildDir: string;\n randomnessKey?: string;\n } = await yargs(hideBin(args))\n .version(process.env.PACKAGE_VERSION ?? \"\")\n .wrap(Math.min(150, yargs().terminalWidth()))\n .strict()\n .help()\n .options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve,\n },\n output: {\n alias: \"o\",\n describe: \"Output file for BlockGeneratorResult JSON\",\n type: \"string\",\n default: \"build/block_generator_result.json\",\n coerce: path.resolve,\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\",\n },\n buildDir: {\n alias: \"b\",\n describe: \"Directory for build files\",\n type: \"string\",\n default: \"build/\",\n coerce: path.resolve,\n },\n randomnessKey: {\n describe: \"Value used to assure uniqueness of entities\",\n type: \"string\",\n },\n })\n .parseAsync();\n\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = (commandLineOpts.apiNamespace.slice(-1) !== \".\")\n ? commandLineOpts.apiNamespace + \".\"\n : commandLineOpts.apiNamespace;\n invariant(apiNamespace.length < 1024, \"API namespace is too long.\");\n invariant(\n apiNamespaceRegex.test(apiNamespace),\n \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\",\n );\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n\n if (commandLineOpts.randomnessKey !== undefined) {\n invariant(\n uuidRegex.test(commandLineOpts.randomnessKey),\n \"Supplied randomness key is not a uuid and shouldn't be used as a uniqueness guarantee\",\n );\n }\n\n const {\n ontologyIr,\n shapes,\n backingDatasourceApiNames,\n backingDatasourceLinkApiNames,\n } = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n commandLineOpts.randomnessKey,\n );\n\n // Create temp directory for block data\n const blockDataDir = path.join(commandLineOpts.buildDir, \"temp_block_data\");\n if (!fs.existsSync(blockDataDir)) {\n await fs.promises.mkdir(blockDataDir, { recursive: true });\n }\n\n // Write ontology.json to the block data directory\n const ontologyJsonPath = path.join(blockDataDir, \"ontology.json\");\n const ontologyJson = JSON.stringify(ontologyIr.ontology, null, 2);\n await fs.promises.writeFile(ontologyJsonPath, ontologyJson);\n consola.info(`Wrote ontology.json to ${ontologyJsonPath}`);\n\n // Collect input_mapping_entries for the ontology block\n // These map ontology inputs to datasource block outputs for objects with includeEmptyBackingDatasource\n const ontologyInputMappingEntries: InputMappingEntry[] = [];\n\n for (const apiName of backingDatasourceApiNames) {\n const objectTypeBlockData = findObjectTypeByApiName(\n ontologyIr.ontology.objectTypes,\n apiName,\n );\n if (!objectTypeBlockData) continue;\n\n const nonEditOnlyProps = getNonEditOnlyProperties(objectTypeBlockData);\n\n // The ontology block has inputs with these readable IDs (from shape extraction)\n // Map them to the datasource block's outputs (which use the same readable IDs)\n const inputDatasetReadableId = ReadableIdGenerator.getForDataset(apiName);\n const outputDatasetReadableId = ReadableIdGenerator.getForDatasetOutput(\n apiName,\n );\n if (shapes.inputShapes.has(inputDatasetReadableId)) {\n ontologyInputMappingEntries.push({\n input: inputDatasetReadableId,\n output: outputDatasetReadableId,\n });\n }\n\n for (const prop of nonEditOnlyProps) {\n const colInputReadableId = ReadableIdGenerator.getForDatasetColumn(\n apiName,\n prop.apiName!,\n );\n const getForDatasetColumnOutput = ReadableIdGenerator\n .getForDatasetColumnOutput(apiName, prop.apiName!);\n if (shapes.inputShapes.has(colInputReadableId)) {\n ontologyInputMappingEntries.push({\n input: colInputReadableId,\n output: getForDatasetColumnOutput,\n });\n }\n }\n }\n\n // Collect input_mapping_entries for link types with includeEmptyBackingDatasource\n for (const linkApiName of backingDatasourceLinkApiNames) {\n const linkTypeBlockData = findLinkTypeByApiName(\n ontologyIr.ontology.linkTypes,\n linkApiName,\n );\n if (!linkTypeBlockData) continue;\n\n const datasetName = `link.${linkApiName}`;\n\n // Map tabularDatasource\n const inputDsId = ReadableIdGenerator.getForDataset(datasetName);\n const outputDsId = ReadableIdGenerator.getForDatasetOutput(datasetName);\n if (shapes.inputShapes.has(inputDsId)) {\n ontologyInputMappingEntries.push({\n input: inputDsId,\n output: outputDsId,\n });\n }\n\n // Map columns from the datasource\n const ds = linkTypeBlockData.datasources[0]?.datasource;\n if (ds?.type === \"dataset\") {\n const columnNames = [\n ...Object.values(ds.dataset.objectTypeAPrimaryKeyMapping).map(String),\n ...Object.values(ds.dataset.objectTypeBPrimaryKeyMapping).map(String),\n ];\n for (const colName of columnNames) {\n const colInputId = ReadableIdGenerator.getForDatasetColumn(\n datasetName,\n colName,\n );\n const colOutputId = ReadableIdGenerator.getForDatasetColumnOutput(\n datasetName,\n colName,\n );\n if (shapes.inputShapes.has(colInputId)) {\n ontologyInputMappingEntries.push({\n input: colInputId,\n output: colOutputId,\n });\n }\n }\n }\n }\n\n // Generate backing datasource BlockGeneratorResults for objects with includeEmptyBackingDatasource\n const backingDsGeneratorResults = await Promise.all(\n backingDatasourceApiNames.filter(apiName => {\n const objectTypeBlockData = findObjectTypeByApiName(\n ontologyIr.ontology.objectTypes,\n apiName,\n );\n return objectTypeBlockData !== undefined;\n }).map(async apiName => {\n const objectTypeBlockData = findObjectTypeByApiName(\n ontologyIr.ontology.objectTypes,\n apiName,\n );\n consola.info(\n `Generating backing datasource BlockGeneratorResult for ${apiName}...`,\n );\n\n return await generateBackingDatasetBlockResult(\n objectTypeBlockData!,\n commandLineOpts.buildDir,\n commandLineOpts.randomnessKey,\n );\n }),\n );\n\n // Generate backing datasource BlockGeneratorResults for link types with includeEmptyBackingDatasource\n const backingDsLinkGeneratorResults = await Promise.all(\n backingDatasourceLinkApiNames\n .map(linkApiName => {\n const linkTypeBlockData = findLinkTypeByApiName(\n ontologyIr.ontology.linkTypes,\n linkApiName,\n );\n if (!linkTypeBlockData) return undefined;\n consola.info(\n `Generating backing datasource BlockGeneratorResult for link ${linkApiName}...`,\n );\n return generateBackingDatasetBlockResultForLink(\n linkTypeBlockData,\n linkApiName,\n ontologyIr.ontology.objectTypes,\n commandLineOpts.buildDir,\n commandLineOpts.randomnessKey,\n );\n })\n .filter(\n (p): p is Promise<BlockGeneratorResult> => p !== undefined,\n ),\n );\n\n // Create BlockGeneratorResult\n const blockGeneratorResult: BlockGeneratorResult = {\n block_identifier: \"ontology\",\n block_data_directory: blockDataDir,\n oci_block_data_metadata: undefined,\n maven_block_data_metadata: undefined,\n inputs: Object.fromEntries(shapes.inputShapes),\n outputs: Object.fromEntries(shapes.outputShapes),\n input_mapping_entries: ontologyInputMappingEntries,\n external_recommendations: [],\n add_on_override: undefined,\n input_shape_metadata: Object.fromEntries(shapes.inputShapeMetadata),\n block_type: \"ONTOLOGY\",\n };\n\n // Write BlockGeneratorResult to output file\n const blockGeneratorResultJson = JSON.stringify(\n [\n blockGeneratorResult,\n ...backingDsGeneratorResults,\n ...backingDsLinkGeneratorResults,\n ],\n null,\n 2,\n );\n await fs.promises.writeFile(\n commandLineOpts.output,\n blockGeneratorResultJson,\n );\n consola.success(\n `BlockGeneratorResult written to ${commandLineOpts.output}`,\n );\n consola.info(\n `Block data directory: ${blockDataDir}`,\n );\n}\n\nasync function loadOntology(\n input: string,\n apiNamespace: string,\n randomnessKey?: string,\n) {\n const result = await defineOntologyV2(\n apiNamespace,\n async () => {\n const jiti = createJiti(import.meta.filename, {\n moduleCache: true,\n debug: false,\n importMeta: import.meta,\n });\n const module = await jiti.import(input);\n },\n randomnessKey,\n );\n return result;\n}\n\n/**\n * Find an ObjectTypeBlockDataV2 by apiName within the ontology block data.\n */\nfunction findObjectTypeByApiName(\n objectTypes: Record<string, ObjectTypeBlockDataV2>,\n apiName: string,\n): ObjectTypeBlockDataV2 | undefined {\n return Object.values(objectTypes).find(\n (objectTypeBlockData) => objectTypeBlockData.objectType.apiName === apiName,\n );\n}\n\n/**\n * Find a LinkTypeBlockDataV2 by apiName within the ontology block data.\n */\nfunction findLinkTypeByApiName(\n linkTypes: Record<string, LinkTypeBlockDataV2>,\n apiName: string,\n): LinkTypeBlockDataV2 | undefined {\n const linkTypeId = cleanAndValidateLinkTypeId(apiName);\n return Object.values(linkTypes).find(\n (lt) => lt.linkType.id === linkTypeId,\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"main.js","names":["cleanAndValidateLinkTypeId","consola","createJiti","fs","path","invariant","yargs","hideBin","defineOntologyV2","ReadableIdGenerator","generateBackingDatasetBlockResult","generateBackingDatasetBlockResultForLink","getNonEditOnlyProperties","apiNamespaceRegex","uuidRegex","main","args","process","argv","log","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","buildDir","randomnessKey","parseAsync","length","slice","env","NODE_ENV","test","info","undefined","ontologyIr","shapes","backingDatasourceApiNames","backingDatasourceLinkApiNames","loadOntology","blockDataDir","join","existsSync","promises","mkdir","recursive","ontologyJsonPath","ontologyJson","JSON","stringify","ontology","writeFile","ontologyInputMappingEntries","apiName","objectTypeBlockData","findObjectTypeByApiName","objectTypes","nonEditOnlyProps","inputDatasetReadableId","getForDataset","outputDatasetReadableId","getForDatasetOutput","inputShapes","has","push","prop","colInputReadableId","getForDatasetColumn","getForDatasetColumnOutput","linkApiName","linkTypeBlockData","findLinkTypeByApiName","linkTypes","datasetName","inputDsId","outputDsId","ds","datasources","datasource","columnNames","Object","values","dataset","objectTypeAPrimaryKeyMapping","map","String","objectTypeBPrimaryKeyMapping","colName","colInputId","colOutputId","backingDsGeneratorResults","Promise","all","filter","backingDsLinkGeneratorResults","p","blockGeneratorResult","block_identifier","block_data_directory","oci_block_data_metadata","maven_block_data_metadata","inputs","fromEntries","outputs","outputShapes","input_mapping_entries","external_recommendations","add_on_override","input_shape_metadata","inputShapeMetadata","block_type","blockGeneratorResultJson","success","result","jiti","import","meta","filename","moduleCache","debug","importMeta","find","objectType","linkTypeId","lt","linkType","id"],"sources":["main.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n LinkTypeBlockDataV2,\n ObjectTypeBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport { cleanAndValidateLinkTypeId } from \"@osdk/maker\";\nimport { consola } from \"consola\";\nimport { createJiti } from \"jiti\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntologyV2 } from \"../api/defineOntologyV2.js\";\nimport { ReadableIdGenerator } from \"../util/generateRid.js\";\nimport {\n generateBackingDatasetBlockResult,\n generateBackingDatasetBlockResultForLink,\n getNonEditOnlyProperties,\n} from \"./generateBackingDataset.js\";\nimport type { BlockGeneratorResult } from \"./marketplaceSerialization/BlockGeneratorResult.js\";\nimport type { InputMappingEntry } from \"./marketplaceSerialization/supportingTypes.js\";\n\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\n\nexport default async function main(\n args: string[] = process.argv,\n): Promise<void> {\n consola.log(\"Generating BlockGeneratorResult for ontology...\");\n\n const commandLineOpts: {\n input: string;\n output: string;\n apiNamespace: string;\n buildDir: string;\n randomnessKey?: string;\n } = await yargs(hideBin(args))\n .version(process.env.PACKAGE_VERSION ?? \"\")\n .wrap(Math.min(150, yargs().terminalWidth()))\n .strict()\n .help()\n .options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve,\n },\n output: {\n alias: \"o\",\n describe: \"Output file for BlockGeneratorResult JSON\",\n type: \"string\",\n default: \"build/block_generator_result.json\",\n coerce: path.resolve,\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\",\n },\n buildDir: {\n alias: \"b\",\n describe: \"Directory for build files\",\n type: \"string\",\n default: \"build/\",\n coerce: path.resolve,\n },\n randomnessKey: {\n describe: \"Value used to assure uniqueness of entities\",\n type: \"string\",\n },\n })\n .parseAsync();\n\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = (commandLineOpts.apiNamespace.slice(-1) !== \".\")\n ? commandLineOpts.apiNamespace + \".\"\n : commandLineOpts.apiNamespace;\n invariant(apiNamespace.length < 1024, \"API namespace is too long.\");\n invariant(\n apiNamespaceRegex.test(apiNamespace),\n \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\",\n );\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n\n if (commandLineOpts.randomnessKey !== undefined) {\n invariant(\n uuidRegex.test(commandLineOpts.randomnessKey),\n \"Supplied randomness key is not a uuid and shouldn't be used as a uniqueness guarantee\",\n );\n }\n\n const {\n ontologyIr,\n shapes,\n backingDatasourceApiNames,\n backingDatasourceLinkApiNames,\n } = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n commandLineOpts.randomnessKey,\n );\n\n // Create temp directory for block data\n const blockDataDir = path.join(commandLineOpts.buildDir, \"temp_block_data\");\n if (!fs.existsSync(blockDataDir)) {\n await fs.promises.mkdir(blockDataDir, { recursive: true });\n }\n\n // Write ontology.json to the block data directory\n const ontologyJsonPath = path.join(blockDataDir, \"ontology.json\");\n const ontologyJson = JSON.stringify(ontologyIr.ontology, null, 2);\n await fs.promises.writeFile(ontologyJsonPath, ontologyJson);\n consola.info(`Wrote ontology.json to ${ontologyJsonPath}`);\n\n // Collect input_mapping_entries for the ontology block\n // These map ontology inputs to datasource block outputs for objects with includeEmptyBackingDatasource\n const ontologyInputMappingEntries: InputMappingEntry[] = [];\n\n for (const apiName of backingDatasourceApiNames) {\n const objectTypeBlockData = findObjectTypeByApiName(\n ontologyIr.ontology.objectTypes,\n apiName,\n );\n if (!objectTypeBlockData) continue;\n\n const nonEditOnlyProps = getNonEditOnlyProperties(objectTypeBlockData);\n\n // The ontology block has inputs with these readable IDs (from shape extraction)\n // Map them to the datasource block's outputs (which use the same readable IDs)\n const inputDatasetReadableId = ReadableIdGenerator.getForDataset(apiName);\n const outputDatasetReadableId = ReadableIdGenerator.getForDatasetOutput(\n apiName,\n );\n if (shapes.inputShapes.has(inputDatasetReadableId)) {\n ontologyInputMappingEntries.push({\n input: inputDatasetReadableId,\n output: outputDatasetReadableId,\n });\n }\n\n for (const prop of nonEditOnlyProps) {\n const colInputReadableId = ReadableIdGenerator.getForDatasetColumn(\n apiName,\n prop.apiName!,\n );\n const getForDatasetColumnOutput = ReadableIdGenerator\n .getForDatasetColumnOutput(apiName, prop.apiName!);\n if (shapes.inputShapes.has(colInputReadableId)) {\n ontologyInputMappingEntries.push({\n input: colInputReadableId,\n output: getForDatasetColumnOutput,\n });\n }\n }\n }\n\n // Collect input_mapping_entries for link types with includeEmptyBackingDatasource\n for (const linkApiName of backingDatasourceLinkApiNames) {\n const linkTypeBlockData = findLinkTypeByApiName(\n ontologyIr.ontology.linkTypes,\n linkApiName,\n );\n if (!linkTypeBlockData) continue;\n\n const datasetName = `link.${linkApiName}`;\n\n // Map tabularDatasource\n const inputDsId = ReadableIdGenerator.getForDataset(datasetName);\n const outputDsId = ReadableIdGenerator.getForDatasetOutput(datasetName);\n if (shapes.inputShapes.has(inputDsId)) {\n ontologyInputMappingEntries.push({\n input: inputDsId,\n output: outputDsId,\n });\n }\n\n // Map columns from the datasource\n const ds = linkTypeBlockData.datasources[0]?.datasource;\n if (ds?.type === \"dataset\") {\n const columnNames = [\n ...Object.values(ds.dataset.objectTypeAPrimaryKeyMapping).map(String),\n ...Object.values(ds.dataset.objectTypeBPrimaryKeyMapping).map(String),\n ];\n for (const colName of columnNames) {\n const colInputId = ReadableIdGenerator.getForDatasetColumn(\n datasetName,\n colName,\n );\n const colOutputId = ReadableIdGenerator.getForDatasetColumnOutput(\n datasetName,\n colName,\n );\n if (shapes.inputShapes.has(colInputId)) {\n ontologyInputMappingEntries.push({\n input: colInputId,\n output: colOutputId,\n });\n }\n }\n }\n }\n\n // Generate backing datasource BlockGeneratorResults for objects with includeEmptyBackingDatasource\n const backingDsGeneratorResults = await Promise.all(\n backingDatasourceApiNames.filter(apiName => {\n const objectTypeBlockData = findObjectTypeByApiName(\n ontologyIr.ontology.objectTypes,\n apiName,\n );\n return objectTypeBlockData !== undefined;\n }).map(async apiName => {\n const objectTypeBlockData = findObjectTypeByApiName(\n ontologyIr.ontology.objectTypes,\n apiName,\n );\n consola.info(\n `Generating backing datasource BlockGeneratorResult for ${apiName}...`,\n );\n\n return await generateBackingDatasetBlockResult(\n objectTypeBlockData!,\n commandLineOpts.buildDir,\n commandLineOpts.randomnessKey,\n );\n }),\n );\n\n // Generate backing datasource BlockGeneratorResults for link types with includeEmptyBackingDatasource\n const backingDsLinkGeneratorResults = await Promise.all(\n backingDatasourceLinkApiNames\n .map(linkApiName => {\n const linkTypeBlockData = findLinkTypeByApiName(\n ontologyIr.ontology.linkTypes,\n linkApiName,\n );\n if (!linkTypeBlockData) return undefined;\n consola.info(\n `Generating backing datasource BlockGeneratorResult for link ${linkApiName}...`,\n );\n return generateBackingDatasetBlockResultForLink(\n linkTypeBlockData,\n linkApiName,\n ontologyIr.ontology.objectTypes,\n commandLineOpts.buildDir,\n commandLineOpts.randomnessKey,\n );\n })\n .filter(\n (p): p is Promise<BlockGeneratorResult> => p !== undefined,\n ),\n );\n\n // Create BlockGeneratorResult\n const blockGeneratorResult: BlockGeneratorResult = {\n block_identifier: \"ontology\",\n block_data_directory: blockDataDir,\n oci_block_data_metadata: undefined,\n maven_block_data_metadata: undefined,\n inputs: Object.fromEntries(shapes.inputShapes),\n outputs: Object.fromEntries(shapes.outputShapes),\n input_mapping_entries: ontologyInputMappingEntries,\n external_recommendations: [],\n add_on_override: undefined,\n input_shape_metadata: Object.fromEntries(shapes.inputShapeMetadata),\n block_type: \"ONTOLOGY\",\n };\n\n // Write BlockGeneratorResult to output file\n const blockGeneratorResultJson = JSON.stringify(\n [\n blockGeneratorResult,\n ...backingDsGeneratorResults,\n ...backingDsLinkGeneratorResults,\n ],\n null,\n 2,\n );\n await fs.promises.writeFile(\n commandLineOpts.output,\n blockGeneratorResultJson,\n );\n consola.success(\n `BlockGeneratorResult written to ${commandLineOpts.output}`,\n );\n consola.info(\n `Block data directory: ${blockDataDir}`,\n );\n}\n\nasync function loadOntology(\n input: string,\n apiNamespace: string,\n randomnessKey?: string,\n) {\n const result = await defineOntologyV2(\n apiNamespace,\n async () => {\n const jiti = createJiti(import.meta.filename, {\n moduleCache: true,\n debug: false,\n importMeta: import.meta,\n });\n const module = await jiti.import(input);\n },\n randomnessKey,\n );\n return result;\n}\n\n/**\n * Find an ObjectTypeBlockDataV2 by apiName within the ontology block data.\n */\nfunction findObjectTypeByApiName(\n objectTypes: Record<string, ObjectTypeBlockDataV2>,\n apiName: string,\n): ObjectTypeBlockDataV2 | undefined {\n return Object.values(objectTypes).find(\n (objectTypeBlockData) => objectTypeBlockData.objectType.apiName === apiName,\n );\n}\n\n/**\n * Find a LinkTypeBlockDataV2 by apiName within the ontology block data.\n */\nfunction findLinkTypeByApiName(\n linkTypes: Record<string, LinkTypeBlockDataV2>,\n apiName: string,\n): LinkTypeBlockDataV2 | undefined {\n const linkTypeId = cleanAndValidateLinkTypeId(apiName);\n return Object.values(linkTypes).find(\n (lt) => lt.linkType.id === linkTypeId,\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertLink.js","names":["cleanAndValidateLinkTypeId","getImportedTypes","getOntologyDefinition","OntologyEntityTypeEnum","invariant","convertCardinality","convertLink","linkType","ridGenerator","validateLink","definition","datasource","apiName","oneObjectApiName","object","oneObject","getObject","one","toManyObjectApiName","toManyObject","toMany","oneObjectRid","generateRidForObjectType","toManyObjectRid","onePkRid","generatePropertyRid","primaryKeyPropertyApiName","manyFkRid","manyForeignKeyProperty","type","oneToMany","cardinalityHint","cardinality","manyToOneLinkMetadata","metadata","objectTypeRidManySide","objectTypeRidOneSide","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","manyObjectApiName","manyObject","many","intermediaryObjectApiName","intermediaryObjectType","intermediary","objectTypeAToBLinkMetadata","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","intermediaryObjectTypeRid","aToIntermediaryLinkTypeRid","generateRidForLinkType","linkToIntermediary","intermediaryToBLinkTypeRid","manyObjectRidA","manyObjectRidB","manyPkRidA","manyPkRidB","columnA","columnB","hasCollision","resolvedColumnA","resolvedColumnB","manyToMany","peeringMetadata","undefined","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","datasetLocator","generateDatasetLocator","Set","rid","generateDatasourceRid","dataset","branchId","datasetRid","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","linkTypeId","id","status","convertLinkStatus","datasources","entityMetadata","arePatchesEnabled","editsEnabled","entityConfig","objectDbTypeConfigs","highbury","objectDbConfigs","configValue","targetStorageBackend","objectStorageV2","linkDefinition","foreignKey","properties","find","p","process","env","NODE_ENV","test","typesMatch","intermediaryObjectTypeApiName","manyIntermediaryOneObjectApiName","manyIntermediaryOneObject","manyIntermediaryToManyObjectApiName","manyIntermediaryToManyObject","toManyIntermediaryOneObjectApiName","toManyIntermediaryOneObject","toManyIntermediaryToManyObjectApiName","toManyIntermediaryToManyObject","objectApiName","fullObject","OBJECT_TYPE","deprecated","message","deadline","replacedBy","experimental","example","active"],"sources":["convertLink.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n LinkDefinition,\n LinkTypeBlockDataV2,\n LinkTypeStatus,\n ManyToManyLinkTypeDatasource,\n} from \"@osdk/client.unstable\";\nimport type {\n LinkType,\n ObjectType,\n ObjectTypeDefinition,\n UserLinkTypeStatus,\n} from \"@osdk/maker\";\nimport {\n cleanAndValidateLinkTypeId,\n getImportedTypes,\n getOntologyDefinition,\n OntologyEntityTypeEnum,\n} from \"@osdk/maker\";\nimport invariant from \"tiny-invariant\";\nimport type { OntologyRidGenerator } from \"../../util/generateRid.js\";\nimport { convertCardinality } from \"./convertCardinality.js\";\n\nexport function convertLink(\n linkType: LinkType,\n ridGenerator: OntologyRidGenerator,\n): LinkTypeBlockDataV2 {\n validateLink(linkType);\n let definition: LinkDefinition;\n let datasource: ManyToManyLinkTypeDatasource | undefined;\n if (\"one\" in linkType) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkType.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n const oneObjectRid = ridGenerator.generateRidForObjectType(\n oneObjectApiName,\n );\n const toManyObjectRid = ridGenerator.generateRidForObjectType(\n toManyObjectApiName,\n );\n const onePkRid = ridGenerator.generatePropertyRid(\n oneObject.primaryKeyPropertyApiName,\n oneObjectApiName,\n );\n const manyFkRid = ridGenerator.generatePropertyRid(\n linkType.manyForeignKeyProperty,\n toManyObjectApiName,\n );\n\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: toManyObjectRid,\n objectTypeRidOneSide: oneObjectRid,\n oneToManyLinkMetadata: linkType.one.metadata,\n // TODO: Convert property mappings to use RIDs as keys and values\n oneSidePrimaryKeyToManySidePropertyMapping: {\n [onePkRid]: manyFkRid,\n },\n },\n };\n } else if (\"intermediaryObjectType\" in linkType) {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n const { apiName: intermediaryObjectApiName } = getObject(\n linkType.intermediaryObjectType,\n );\n definition = {\n type: \"intermediary\",\n intermediary: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: ridGenerator.generateRidForObjectType(\n manyObjectApiName,\n ),\n objectTypeRidB: ridGenerator.generateRidForObjectType(\n toManyObjectApiName,\n ),\n intermediaryObjectTypeRid: ridGenerator.generateRidForObjectType(\n intermediaryObjectApiName,\n ),\n aToIntermediaryLinkTypeRid: ridGenerator.generateRidForLinkType(\n cleanAndValidateLinkTypeId(linkType.many.linkToIntermediary.apiName),\n ),\n intermediaryToBLinkTypeRid: ridGenerator.generateRidForLinkType(\n cleanAndValidateLinkTypeId(\n linkType.toMany.linkToIntermediary.apiName,\n ),\n ),\n },\n };\n } else {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n const manyObjectRidA = ridGenerator.generateRidForObjectType(\n manyObjectApiName,\n );\n const manyObjectRidB = ridGenerator.generateRidForObjectType(\n toManyObjectApiName,\n );\n const manyPkRidA = ridGenerator.generatePropertyRid(\n manyObject.primaryKeyPropertyApiName,\n manyObjectApiName,\n );\n const manyPkRidB = ridGenerator.generatePropertyRid(\n toManyObject.primaryKeyPropertyApiName,\n toManyObjectApiName,\n );\n\n const columnA = manyObject.primaryKeyPropertyApiName;\n const columnB = toManyObject.primaryKeyPropertyApiName;\n const hasCollision = columnA === columnB;\n const resolvedColumnA = hasCollision ? `${columnA}_from` : columnA;\n const resolvedColumnB = hasCollision ? `${columnB}_to` : columnB;\n\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectRidA,\n objectTypeRidB: manyObjectRidB,\n peeringMetadata: undefined,\n // TODO: Convert property mappings to use RIDs as keys and values\n objectTypeAPrimaryKeyPropertyMapping: {\n [manyPkRidA]: manyPkRidA,\n },\n objectTypeBPrimaryKeyPropertyMapping: {\n [manyPkRidB]: manyPkRidB,\n },\n },\n };\n const datasetLocator = ridGenerator.generateDatasetLocator(\n `link.${linkType.apiName}`,\n new Set([resolvedColumnA, resolvedColumnB]),\n );\n datasource = {\n rid: ridGenerator.generateDatasourceRid(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n // TODO: Add proper branchId from link configuration\n branchId: datasetLocator.branchId,\n datasetRid: datasetLocator.rid,\n writebackDatasetRid: undefined,\n // TODO: Convert property mappings to use property RIDs as keys\n objectTypeAPrimaryKeyMapping: {\n [manyPkRidA]: resolvedColumnA,\n },\n objectTypeBPrimaryKeyMapping: {\n [manyPkRidB]: resolvedColumnB,\n },\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n const linkTypeId = cleanAndValidateLinkTypeId(linkType.apiName);\n\n return {\n linkType: {\n definition,\n rid: ridGenerator.generateRidForLinkType(linkTypeId),\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: convertLinkStatus(linkType.status, ridGenerator),\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n entityConfig: {\n objectDbTypeConfigs: {\n highbury: {\n objectDbConfigs: {\n \"ri.highbury.main.cluster.1\": { configValue: \"{}\" },\n },\n },\n },\n },\n targetStorageBackend: { type: \"objectStorageV2\", objectStorageV2: {} },\n },\n };\n}\nfunction validateLink(linkDefinition: LinkType) {\n if (\"one\" in linkDefinition) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkDefinition.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n const foreignKey = toManyObject.properties?.find(p =>\n p.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${toManyObjectApiName}`,\n );\n\n invariant(\n /([a-z][a-z0-9\\\\-]*)/.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === oneObject.properties?.find(p =>\n p.apiName === oneObject.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n const {\n apiName: intermediaryObjectTypeApiName,\n object: intermediaryObjectType,\n } = getObject(linkDefinition.intermediaryObjectType);\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkDefinition.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n\n const {\n apiName: manyIntermediaryOneObjectApiName,\n object: manyIntermediaryOneObject,\n } = getObject((linkDefinition.many.linkToIntermediary as any).one.object);\n const {\n apiName: manyIntermediaryToManyObjectApiName,\n object: manyIntermediaryToManyObject,\n } = getObject(linkDefinition.many.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && manyIntermediaryOneObjectApiName\n === manyObject.apiName\n && manyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectA ${manyObjectApiName}`,\n );\n\n const {\n apiName: toManyIntermediaryOneObjectApiName,\n object: toManyIntermediaryOneObject,\n } = getObject((linkDefinition.toMany.linkToIntermediary as any).one.object);\n const {\n apiName: toManyIntermediaryToManyObjectApiName,\n object: toManyIntermediaryToManyObject,\n } = getObject(linkDefinition.toMany.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && toManyIntermediaryOneObjectApiName\n === toManyObjectApiName\n && toManyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectB ${toManyObjectApiName}`,\n );\n }\n}\n\nexport function getObject(\n object: string | ObjectTypeDefinition,\n): { apiName: string; object: ObjectType } {\n const objectApiName = typeof object === \"string\" ? object : object.apiName;\n const fullObject =\n getOntologyDefinition()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName]\n ?? getImportedTypes()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];\n invariant(\n fullObject !== undefined,\n `Object ${objectApiName} is not defined`,\n );\n return { apiName: objectApiName, object: fullObject };\n}\n\nexport function convertLinkStatus(\n status: UserLinkTypeStatus | undefined,\n ridGenerator: OntologyRidGenerator,\n): LinkTypeStatus {\n if (\n typeof status === \"object\" && \"type\" in status\n && status.type === \"deprecated\"\n ) {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: status.replacedBy\n ? ridGenerator.generateRidForLinkType(\n cleanAndValidateLinkTypeId(status.replacedBy),\n )\n : undefined,\n },\n };\n }\n switch (status) {\n case \"experimental\":\n return { type: \"experimental\", experimental: {} };\n case \"example\":\n return { type: \"example\", example: {} };\n case \"active\":\n default:\n return { type: \"active\", active: {} };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA,SACEA,0BAA0B,EAC1BC,gBAAgB,EAChBC,qBAAqB,EACrBC,sBAAsB,QACjB,aAAa;AACpB,OAAOC,SAAS,MAAM,gBAAgB;AAEtC,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,OAAO,SAASC,WAAWA,CACzBC,QAAkB,EAClBC,YAAkC,EACb;EACrBC,YAAY,CAACF,QAAQ,CAAC;EACtB,IAAIG,UAA0B;EAC9B,IAAIC,UAAoD;EACxD,IAAI,KAAK,IAAIJ,QAAQ,EAAE;IACrB,MAAM;MAAEK,OAAO,EAAEC,gBAAgB;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGC,SAAS,CAChET,QAAQ,CAACU,GAAG,CAACH,MACf,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtET,QAAQ,CAACa,MAAM,CAACN,MAClB,CAAC;IACD,MAAMO,YAAY,GAAGb,YAAY,CAACc,wBAAwB,CACxDT,gBACF,CAAC;IACD,MAAMU,eAAe,GAAGf,YAAY,CAACc,wBAAwB,CAC3DJ,mBACF,CAAC;IACD,MAAMM,QAAQ,GAAGhB,YAAY,CAACiB,mBAAmB,CAC/CV,SAAS,CAACW,yBAAyB,EACnCb,gBACF,CAAC;IACD,MAAMc,SAAS,GAAGnB,YAAY,CAACiB,mBAAmB,CAChDlB,QAAQ,CAACqB,sBAAsB,EAC/BV,mBACF,CAAC;IAEDR,UAAU,GAAG;MACXmB,IAAI,EAAE,WAAW;MACjBC,SAAS,EAAE;QACTC,eAAe,EAAE1B,kBAAkB,CAACE,QAAQ,CAACyB,WAAW,CAAC;QACzDC,qBAAqB,EAAE1B,QAAQ,CAACa,MAAM,CAACc,QAAQ;QAC/CC,qBAAqB,EAAEZ,eAAe;QACtCa,oBAAoB,EAAEf,YAAY;QAClCgB,qBAAqB,EAAE9B,QAAQ,CAACU,GAAG,CAACiB,QAAQ;QAC5C;QACAI,0CAA0C,EAAE;UAC1C,CAACd,QAAQ,GAAGG;QACd;MACF;IACF,CAAC;EACH,CAAC,MAAM,IAAI,wBAAwB,IAAIpB,QAAQ,EAAE;IAC/C,MAAM;MAAEK,OAAO,EAAE2B,iBAAiB;MAAEzB,MAAM,EAAE0B;IAAW,CAAC,GAAGxB,SAAS,CAClET,QAAQ,CAACkC,IAAI,CAAC3B,MAChB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtET,QAAQ,CAACa,MAAM,CAACN,MAClB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAE8B;IAA0B,CAAC,GAAG1B,SAAS,CACtDT,QAAQ,CAACoC,sBACX,CAAC;IACDjC,UAAU,GAAG;MACXmB,IAAI,EAAE,cAAc;MACpBe,YAAY,EAAE;QACZC,0BAA0B,EAAEtC,QAAQ,CAACkC,IAAI,CAACP,QAAQ;QAClDY,0BAA0B,EAAEvC,QAAQ,CAACa,MAAM,CAACc,QAAQ;QACpDa,cAAc,EAAEvC,YAAY,CAACc,wBAAwB,CACnDiB,iBACF,CAAC;QACDS,cAAc,EAAExC,YAAY,CAACc,wBAAwB,CACnDJ,mBACF,CAAC;QACD+B,yBAAyB,EAAEzC,YAAY,CAACc,wBAAwB,CAC9DoB,yBACF,CAAC;QACDQ,0BAA0B,EAAE1C,YAAY,CAAC2C,sBAAsB,CAC7DnD,0BAA0B,CAACO,QAAQ,CAACkC,IAAI,CAACW,kBAAkB,CAACxC,OAAO,CACrE,CAAC;QACDyC,0BAA0B,EAAE7C,YAAY,CAAC2C,sBAAsB,CAC7DnD,0BAA0B,CACxBO,QAAQ,CAACa,MAAM,CAACgC,kBAAkB,CAACxC,OACrC,CACF;MACF;IACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM;MAAEA,OAAO,EAAE2B,iBAAiB;MAAEzB,MAAM,EAAE0B;IAAW,CAAC,GAAGxB,SAAS,CAClET,QAAQ,CAACkC,IAAI,CAAC3B,MAChB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtET,QAAQ,CAACa,MAAM,CAACN,MAClB,CAAC;IACD,MAAMwC,cAAc,GAAG9C,YAAY,CAACc,wBAAwB,CAC1DiB,iBACF,CAAC;IACD,MAAMgB,cAAc,GAAG/C,YAAY,CAACc,wBAAwB,CAC1DJ,mBACF,CAAC;IACD,MAAMsC,UAAU,GAAGhD,YAAY,CAACiB,mBAAmB,CACjDe,UAAU,CAACd,yBAAyB,EACpCa,iBACF,CAAC;IACD,MAAMkB,UAAU,GAAGjD,YAAY,CAACiB,mBAAmB,CACjDN,YAAY,CAACO,yBAAyB,EACtCR,mBACF,CAAC;IAED,MAAMwC,OAAO,GAAGlB,UAAU,CAACd,yBAAyB;IACpD,MAAMiC,OAAO,GAAGxC,YAAY,CAACO,yBAAyB;IACtD,MAAMkC,YAAY,GAAGF,OAAO,KAAKC,OAAO;IACxC,MAAME,eAAe,GAAGD,YAAY,GAAG,GAAGF,OAAO,OAAO,GAAGA,OAAO;IAClE,MAAMI,eAAe,GAAGF,YAAY,GAAG,GAAGD,OAAO,KAAK,GAAGA,OAAO;IAEhEjD,UAAU,GAAG;MACXmB,IAAI,EAAE,YAAY;MAClBkC,UAAU,EAAE;QACVlB,0BAA0B,EAAEtC,QAAQ,CAACkC,IAAI,CAACP,QAAQ;QAClDY,0BAA0B,EAAEvC,QAAQ,CAACa,MAAM,CAACc,QAAQ;QACpDa,cAAc,EAAEO,cAAc;QAC9BN,cAAc,EAAEO,cAAc;QAC9BS,eAAe,EAAEC,SAAS;QAC1B;QACAC,oCAAoC,EAAE;UACpC,CAACV,UAAU,GAAGA;QAChB,CAAC;QACDW,oCAAoC,EAAE;UACpC,CAACV,UAAU,GAAGA;QAChB;MACF;IACF,CAAC;IACD,MAAMW,cAAc,GAAG5D,YAAY,CAAC6D,sBAAsB,CACxD,QAAQ9D,QAAQ,CAACK,OAAO,EAAE,EAC1B,IAAI0D,GAAG,CAAC,CAACT,eAAe,EAAEC,eAAe,CAAC,CAC5C,CAAC;IACDnD,UAAU,GAAG;MACX4D,GAAG,EAAE/D,YAAY,CAACgE,qBAAqB,CAACjE,QAAQ,CAACK,OAAO,CAAC;MACzDD,UAAU,EAAE;QACVkB,IAAI,EAAE,SAAS;QACf4C,OAAO,EAAE;UACP;UACAC,QAAQ,EAAEN,cAAc,CAACM,QAAQ;UACjCC,UAAU,EAAEP,cAAc,CAACG,GAAG;UAC9BK,mBAAmB,EAAEX,SAAS;UAC9B;UACAY,4BAA4B,EAAE;YAC5B,CAACrB,UAAU,GAAGK;UAChB,CAAC;UACDiB,4BAA4B,EAAE;YAC5B,CAACrB,UAAU,GAAGK;UAChB;QACF;MACF,CAAC;MACDiB,kBAAkB,EAAE;QAClBC,wBAAwB,EAAE;MAC5B,CAAC;MACDC,QAAQ,EAAE1E,QAAQ,CAAC0E;IACrB,CAAC;EACH;EAEA,MAAMC,UAAU,GAAGlF,0BAA0B,CAACO,QAAQ,CAACK,OAAO,CAAC;EAE/D,OAAO;IACLL,QAAQ,EAAE;MACRG,UAAU;MACV6D,GAAG,EAAE/D,YAAY,CAAC2C,sBAAsB,CAAC+B,UAAU,CAAC;MACpDC,EAAE,EAAEnF,0BAA0B,CAACO,QAAQ,CAACK,OAAO,CAAC;MAChDwE,MAAM,EAAEC,iBAAiB,CAAC9E,QAAQ,CAAC6E,MAAM,EAAE5E,YAAY,CAAC;MACxDyE,QAAQ,EAAE1E,QAAQ,CAAC0E,QAAQ,IAAI;IACjC,CAAC;IACDK,WAAW,EAAE3E,UAAU,KAAKsD,SAAS,GAAG,CAACtD,UAAU,CAAC,GAAG,EAAE;IACzD4E,cAAc,EAAE;MACdC,iBAAiB,EAAEjF,QAAQ,CAACkF,YAAY,IAAI,KAAK;MACjDC,YAAY,EAAE;QACZC,mBAAmB,EAAE;UACnBC,QAAQ,EAAE;YACRC,eAAe,EAAE;cACf,4BAA4B,EAAE;gBAAEC,WAAW,EAAE;cAAK;YACpD;UACF;QACF;MACF,CAAC;MACDC,oBAAoB,EAAE;QAAElE,IAAI,EAAE,iBAAiB;QAAEmE,eAAe,EAAE,CAAC;MAAE;IACvE;EACF,CAAC;AACH;AACA,SAASvF,YAAYA,CAACwF,cAAwB,EAAE;EAC9C,IAAI,KAAK,IAAIA,cAAc,EAAE;IAC3B,MAAM;MAAErF,OAAO,EAAEC,gBAAgB;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGC,SAAS,CAChEiF,cAAc,CAAChF,GAAG,CAACH,MACrB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEiF,cAAc,CAAC7E,MAAM,CAACN,MACxB,CAAC;IACD,MAAMoF,UAAU,GAAG/E,YAAY,CAACgF,UAAU,EAAEC,IAAI,CAACC,CAAC,IAChDA,CAAC,CAACzF,OAAO,KAAKqF,cAAc,CAACrE,sBAC/B,CAAC;IACD,EACEsE,UAAU,KAAKjC,SAAS,IAAAqC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1BpG,SAAS,QAEP,eAAe6F,cAAc,CAACrE,sBAAsB,YAAYqE,cAAc,CAACrF,OAAO,6BAA6BM,mBAAmB,EAAE,IAF1Id,SAAS;IAKT,CACE,qBAAqB,CAACqG,IAAI,CAACR,cAAc,CAACrF,OAAO,CAAC,GAAA0F,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpDpG,SAAS,QAEP,wFAAwF6F,cAAc,CAACrF,OAAO,iBAAiB,IAFjIR,SAAS;IAKT,MAAMsG,UAAU,GAAGR,UAAU,CAACrE,IAAI,KAC5Bd,SAAS,CAACoF,UAAU,EAAEC,IAAI,CAACC,CAAC,IAC9BA,CAAC,CAACzF,OAAO,KAAKG,SAAS,CAACW,yBAC1B,CAAC,EAAEG,IAAI;IACT,CACE6E,UAAU,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZpG,SAAS,QAEP,QAAQ6F,cAAc,CAACrF,OAAO,4FAA4F,IAF5HR,SAAS;EAIX;EACA,IAAI,wBAAwB,IAAI6F,cAAc,EAAE;IAC9C,MAAM;MACJrF,OAAO,EAAE+F,6BAA6B;MACtC7F,MAAM,EAAE6B;IACV,CAAC,GAAG3B,SAAS,CAACiF,cAAc,CAACtD,sBAAsB,CAAC;IACpD,MAAM;MAAE/B,OAAO,EAAE2B,iBAAiB;MAAEzB,MAAM,EAAE0B;IAAW,CAAC,GAAGxB,SAAS,CAClEiF,cAAc,CAACxD,IAAI,CAAC3B,MACtB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEiF,cAAc,CAAC7E,MAAM,CAACN,MACxB,CAAC;IAED,MAAM;MACJF,OAAO,EAAEgG,gCAAgC;MACzC9F,MAAM,EAAE+F;IACV,CAAC,GAAG7F,SAAS,CAAEiF,cAAc,CAACxD,IAAI,CAACW,kBAAkB,CAASnC,GAAG,CAACH,MAAM,CAAC;IACzE,MAAM;MACJF,OAAO,EAAEkG,mCAAmC;MAC5ChG,MAAM,EAAEiG;IACV,CAAC,GAAG/F,SAAS,CAACiF,cAAc,CAACxD,IAAI,CAACW,kBAAkB,CAAChC,MAAM,CAACN,MAAM,CAAC;IACnE,EACE,KAAK,IAAImF,cAAc,CAACxD,IAAI,CAACW,kBAAkB,IAC1CwD,gCAAgC,KAC7BpE,UAAU,CAAC5B,OAAO,IACrBkG,mCAAmC,KAChCH,6BAA6B,IAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALvCpG,SAAS,QAMP,aAAa6F,cAAc,CAACxD,IAAI,CAACW,kBAAkB,CAACxC,OAAO,wDAAwD+F,6BAA6B,eAAepE,iBAAiB,EAAE,IANpLnC,SAAS;IAST,MAAM;MACJQ,OAAO,EAAEoG,kCAAkC;MAC3ClG,MAAM,EAAEmG;IACV,CAAC,GAAGjG,SAAS,CAAEiF,cAAc,CAAC7E,MAAM,CAACgC,kBAAkB,CAASnC,GAAG,CAACH,MAAM,CAAC;IAC3E,MAAM;MACJF,OAAO,EAAEsG,qCAAqC;MAC9CpG,MAAM,EAAEqG;IACV,CAAC,GAAGnG,SAAS,CAACiF,cAAc,CAAC7E,MAAM,CAACgC,kBAAkB,CAAChC,MAAM,CAACN,MAAM,CAAC;IACrE,EACE,KAAK,IAAImF,cAAc,CAAC7E,MAAM,CAACgC,kBAAkB,IAC5C4D,kCAAkC,KAC/B9F,mBAAmB,IACtBgG,qCAAqC,KAClCP,6BAA6B,IAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALvCpG,SAAS,QAMP,aAAa6F,cAAc,CAAC7E,MAAM,CAACgC,kBAAkB,CAACxC,OAAO,wDAAwD+F,6BAA6B,eAAezF,mBAAmB,EAAE,IANxLd,SAAS;EAQX;AACF;AAEA,OAAO,SAASY,SAASA,CACvBF,MAAqC,EACI;EACzC,MAAMsG,aAAa,GAAG,OAAOtG,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAACF,OAAO;EAC1E,MAAMyG,UAAU,GACdnH,qBAAqB,CAAC,CAAC,CAACC,sBAAsB,CAACmH,WAAW,CAAC,CAACF,aAAa,CAAC,IACrEnH,gBAAgB,CAAC,CAAC,CAACE,sBAAsB,CAACmH,WAAW,CAAC,CAACF,aAAa,CAAC;EAC5E,EACEC,UAAU,KAAKpD,SAAS,IAAAqC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1BpG,SAAS,QAEP,UAAUgH,aAAa,iBAAiB,IAF1ChH,SAAS;EAIT,OAAO;IAAEQ,OAAO,EAAEwG,aAAa;IAAEtG,MAAM,EAAEuG;EAAW,CAAC;AACvD;AAEA,OAAO,SAAShC,iBAAiBA,CAC/BD,MAAsC,EACtC5E,YAAkC,EAClB;EAChB,IACE,OAAO4E,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAIA,MAAM,IAC3CA,MAAM,CAACvD,IAAI,KAAK,YAAY,EAC/B;IACA,OAAO;MACLA,IAAI,EAAE,YAAY;MAClB0F,UAAU,EAAE;QACVC,OAAO,EAAEpC,MAAM,CAACoC,OAAO;QACvBC,QAAQ,EAAErC,MAAM,CAACqC,QAAQ;QACzBC,UAAU,EAAEtC,MAAM,CAACsC,UAAU,GACzBlH,YAAY,CAAC2C,sBAAsB,CACnCnD,0BAA0B,CAACoF,MAAM,CAACsC,UAAU,CAC9C,CAAC,GACCzD;MACN;IACF,CAAC;EACH;EACA,QAAQmB,MAAM;IACZ,KAAK,cAAc;MACjB,OAAO;QAAEvD,IAAI,EAAE,cAAc;QAAE8F,YAAY,EAAE,CAAC;MAAE,CAAC;IACnD,KAAK,SAAS;MACZ,OAAO;QAAE9F,IAAI,EAAE,SAAS;QAAE+F,OAAO,EAAE,CAAC;MAAE,CAAC;IACzC,KAAK,QAAQ;IACb;MACE,OAAO;QAAE/F,IAAI,EAAE,QAAQ;QAAEgG,MAAM,EAAE,CAAC;MAAE,CAAC;EACzC;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"convertLink.js","names":["cleanAndValidateLinkTypeId","getImportedTypes","getOntologyDefinition","OntologyEntityTypeEnum","invariant","convertCardinality","convertLink","linkType","ridGenerator","validateLink","definition","datasource","apiName","oneObjectApiName","object","oneObject","getObject","one","toManyObjectApiName","toManyObject","toMany","oneObjectRid","generateRidForObjectType","toManyObjectRid","onePkRid","generatePropertyRid","primaryKeyPropertyApiName","manyFkRid","manyForeignKeyProperty","type","oneToMany","cardinalityHint","cardinality","manyToOneLinkMetadata","metadata","objectTypeRidManySide","objectTypeRidOneSide","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","manyObjectApiName","manyObject","many","intermediaryObjectApiName","intermediaryObjectType","intermediary","objectTypeAToBLinkMetadata","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","intermediaryObjectTypeRid","aToIntermediaryLinkTypeRid","generateRidForLinkType","linkToIntermediary","intermediaryToBLinkTypeRid","manyObjectRidA","manyObjectRidB","manyPkRidA","manyPkRidB","columnA","columnB","hasCollision","resolvedColumnA","resolvedColumnB","manyToMany","peeringMetadata","undefined","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","datasetLocator","generateDatasetLocator","Set","rid","generateDatasourceRid","dataset","branchId","datasetRid","writebackDatasetRid","objectTypeAPrimaryKeyMapping","objectTypeBPrimaryKeyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","linkTypeId","id","status","convertLinkStatus","datasources","entityMetadata","arePatchesEnabled","editsEnabled","entityConfig","objectDbTypeConfigs","highbury","objectDbConfigs","configValue","targetStorageBackend","objectStorageV2","linkDefinition","foreignKey","properties","find","p","process","env","NODE_ENV","test","typesMatch","intermediaryObjectTypeApiName","manyIntermediaryOneObjectApiName","manyIntermediaryOneObject","manyIntermediaryToManyObjectApiName","manyIntermediaryToManyObject","toManyIntermediaryOneObjectApiName","toManyIntermediaryOneObject","toManyIntermediaryToManyObjectApiName","toManyIntermediaryToManyObject","objectApiName","fullObject","OBJECT_TYPE","deprecated","message","deadline","replacedBy","experimental","example","active"],"sources":["convertLink.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n LinkDefinition,\n LinkTypeBlockDataV2,\n LinkTypeStatus,\n ManyToManyLinkTypeDatasource,\n} from \"@osdk/client.unstable\";\nimport type {\n LinkType,\n ObjectType,\n ObjectTypeDefinition,\n UserLinkTypeStatus,\n} from \"@osdk/maker\";\nimport {\n cleanAndValidateLinkTypeId,\n getImportedTypes,\n getOntologyDefinition,\n OntologyEntityTypeEnum,\n} from \"@osdk/maker\";\nimport invariant from \"tiny-invariant\";\nimport type { OntologyRidGenerator } from \"../../util/generateRid.js\";\nimport { convertCardinality } from \"./convertCardinality.js\";\n\nexport function convertLink(\n linkType: LinkType,\n ridGenerator: OntologyRidGenerator,\n): LinkTypeBlockDataV2 {\n validateLink(linkType);\n let definition: LinkDefinition;\n let datasource: ManyToManyLinkTypeDatasource | undefined;\n if (\"one\" in linkType) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkType.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n const oneObjectRid = ridGenerator.generateRidForObjectType(\n oneObjectApiName,\n );\n const toManyObjectRid = ridGenerator.generateRidForObjectType(\n toManyObjectApiName,\n );\n const onePkRid = ridGenerator.generatePropertyRid(\n oneObject.primaryKeyPropertyApiName,\n oneObjectApiName,\n );\n const manyFkRid = ridGenerator.generatePropertyRid(\n linkType.manyForeignKeyProperty,\n toManyObjectApiName,\n );\n\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: toManyObjectRid,\n objectTypeRidOneSide: oneObjectRid,\n oneToManyLinkMetadata: linkType.one.metadata,\n // TODO: Convert property mappings to use RIDs as keys and values\n oneSidePrimaryKeyToManySidePropertyMapping: {\n [onePkRid]: manyFkRid,\n },\n },\n };\n } else if (\"intermediaryObjectType\" in linkType) {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n const { apiName: intermediaryObjectApiName } = getObject(\n linkType.intermediaryObjectType,\n );\n definition = {\n type: \"intermediary\",\n intermediary: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: ridGenerator.generateRidForObjectType(\n manyObjectApiName,\n ),\n objectTypeRidB: ridGenerator.generateRidForObjectType(\n toManyObjectApiName,\n ),\n intermediaryObjectTypeRid: ridGenerator.generateRidForObjectType(\n intermediaryObjectApiName,\n ),\n aToIntermediaryLinkTypeRid: ridGenerator.generateRidForLinkType(\n cleanAndValidateLinkTypeId(linkType.many.linkToIntermediary.apiName),\n ),\n intermediaryToBLinkTypeRid: ridGenerator.generateRidForLinkType(\n cleanAndValidateLinkTypeId(\n linkType.toMany.linkToIntermediary.apiName,\n ),\n ),\n },\n };\n } else {\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkType.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkType.toMany.object,\n );\n const manyObjectRidA = ridGenerator.generateRidForObjectType(\n manyObjectApiName,\n );\n const manyObjectRidB = ridGenerator.generateRidForObjectType(\n toManyObjectApiName,\n );\n const manyPkRidA = ridGenerator.generatePropertyRid(\n manyObject.primaryKeyPropertyApiName,\n manyObjectApiName,\n );\n const manyPkRidB = ridGenerator.generatePropertyRid(\n toManyObject.primaryKeyPropertyApiName,\n toManyObjectApiName,\n );\n\n const columnA = manyObject.primaryKeyPropertyApiName;\n const columnB = toManyObject.primaryKeyPropertyApiName;\n const hasCollision = columnA === columnB;\n const resolvedColumnA = hasCollision ? `${columnA}_from` : columnA;\n const resolvedColumnB = hasCollision ? `${columnB}_to` : columnB;\n\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: manyObjectRidA,\n objectTypeRidB: manyObjectRidB,\n peeringMetadata: undefined,\n // TODO: Convert property mappings to use RIDs as keys and values\n objectTypeAPrimaryKeyPropertyMapping: {\n [manyPkRidA]: manyPkRidA,\n },\n objectTypeBPrimaryKeyPropertyMapping: {\n [manyPkRidB]: manyPkRidB,\n },\n },\n };\n const datasetLocator = ridGenerator.generateDatasetLocator(\n `link.${linkType.apiName}`,\n new Set([resolvedColumnA, resolvedColumnB]),\n );\n datasource = {\n rid: ridGenerator.generateDatasourceRid(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n // TODO: Add proper branchId from link configuration\n branchId: datasetLocator.branchId,\n datasetRid: datasetLocator.rid,\n writebackDatasetRid: undefined,\n // TODO: Convert property mappings to use property RIDs as keys\n objectTypeAPrimaryKeyMapping: {\n [manyPkRidA]: resolvedColumnA,\n },\n objectTypeBPrimaryKeyMapping: {\n [manyPkRidB]: resolvedColumnB,\n },\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n const linkTypeId = cleanAndValidateLinkTypeId(linkType.apiName);\n\n return {\n linkType: {\n definition,\n rid: ridGenerator.generateRidForLinkType(linkTypeId),\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: convertLinkStatus(linkType.status, ridGenerator),\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n entityConfig: {\n objectDbTypeConfigs: {\n highbury: {\n objectDbConfigs: {\n \"ri.highbury.main.cluster.1\": { configValue: \"{}\" },\n },\n },\n },\n },\n targetStorageBackend: { type: \"objectStorageV2\", objectStorageV2: {} },\n },\n };\n}\nfunction validateLink(linkDefinition: LinkType) {\n if (\"one\" in linkDefinition) {\n const { apiName: oneObjectApiName, object: oneObject } = getObject(\n linkDefinition.one.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n const foreignKey = toManyObject.properties?.find(p =>\n p.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${toManyObjectApiName}`,\n );\n\n invariant(\n /([a-z][a-z0-9\\\\-]*)/.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch = foreignKey.type\n === oneObject.properties?.find(p =>\n p.apiName === oneObject.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n if (\"intermediaryObjectType\" in linkDefinition) {\n const {\n apiName: intermediaryObjectTypeApiName,\n object: intermediaryObjectType,\n } = getObject(linkDefinition.intermediaryObjectType);\n const { apiName: manyObjectApiName, object: manyObject } = getObject(\n linkDefinition.many.object,\n );\n const { apiName: toManyObjectApiName, object: toManyObject } = getObject(\n linkDefinition.toMany.object,\n );\n\n const {\n apiName: manyIntermediaryOneObjectApiName,\n object: manyIntermediaryOneObject,\n } = getObject((linkDefinition.many.linkToIntermediary as any).one.object);\n const {\n apiName: manyIntermediaryToManyObjectApiName,\n object: manyIntermediaryToManyObject,\n } = getObject(linkDefinition.many.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && manyIntermediaryOneObjectApiName\n === manyObject.apiName\n && manyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectA ${manyObjectApiName}`,\n );\n\n const {\n apiName: toManyIntermediaryOneObjectApiName,\n object: toManyIntermediaryOneObject,\n } = getObject((linkDefinition.toMany.linkToIntermediary as any).one.object);\n const {\n apiName: toManyIntermediaryToManyObjectApiName,\n object: toManyIntermediaryToManyObject,\n } = getObject(linkDefinition.toMany.linkToIntermediary.toMany.object);\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && toManyIntermediaryOneObjectApiName\n === toManyObjectApiName\n && toManyIntermediaryToManyObjectApiName\n === intermediaryObjectTypeApiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${intermediaryObjectTypeApiName} to objectB ${toManyObjectApiName}`,\n );\n }\n}\n\nexport function getObject(\n object: string | ObjectTypeDefinition | ObjectType,\n): { apiName: string; object: ObjectType } {\n const objectApiName = typeof object === \"string\" ? object : object.apiName;\n const fullObject =\n getOntologyDefinition()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName]\n ?? getImportedTypes()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];\n invariant(\n fullObject !== undefined,\n `Object ${objectApiName} is not defined`,\n );\n return { apiName: objectApiName, object: fullObject };\n}\n\nexport function convertLinkStatus(\n status: UserLinkTypeStatus | undefined,\n ridGenerator: OntologyRidGenerator,\n): LinkTypeStatus {\n if (\n typeof status === \"object\" && \"type\" in status\n && status.type === \"deprecated\"\n ) {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: status.replacedBy\n ? ridGenerator.generateRidForLinkType(\n cleanAndValidateLinkTypeId(status.replacedBy),\n )\n : undefined,\n },\n };\n }\n switch (status) {\n case \"experimental\":\n return { type: \"experimental\", experimental: {} };\n case \"example\":\n return { type: \"example\", example: {} };\n case \"active\":\n default:\n return { type: \"active\", active: {} };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -4291,7 +4291,7 @@ var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
|
4291
4291
|
var uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
4292
4292
|
async function main(args = process.argv) {
|
|
4293
4293
|
consola.consola.log("Generating BlockGeneratorResult for ontology...");
|
|
4294
|
-
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.
|
|
4294
|
+
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.7.0-main-20260407074313").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
|
|
4295
4295
|
input: {
|
|
4296
4296
|
alias: "i",
|
|
4297
4297
|
describe: "Input file",
|