@osdk/maker-experimental 0.6.0-beta.5 → 0.6.0-beta.6
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 +15 -0
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/convertLink.js +9 -4
- package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
- package/build/cjs/index.cjs +9 -4
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/convertLink.js +9 -4
- package/build/esm/conversion/toMarketplace/convertLink.js.map +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,20 @@
|
|
|
1
1
|
# @osdk/maker-experimental
|
|
2
2
|
|
|
3
|
+
## 0.6.0-beta.6
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 9ee82f4: Dedupe many-to-many PK property names in datasource
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [9ee82f4]
|
|
12
|
+
- Updated dependencies [60b5ffb]
|
|
13
|
+
- Updated dependencies [61e33ab]
|
|
14
|
+
- @osdk/maker@0.16.0-beta.13
|
|
15
|
+
- @osdk/api@2.8.0-beta.26
|
|
16
|
+
- @osdk/client.unstable@2.8.0-beta.26
|
|
17
|
+
|
|
3
18
|
## 0.6.0-beta.5
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
|
@@ -28,7 +28,7 @@ const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
|
28
28
|
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
29
29
|
export default async function main(args = process.argv) {
|
|
30
30
|
consola.log("Generating BlockGeneratorResult for ontology...");
|
|
31
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.6.0-beta.
|
|
31
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.6.0-beta.6" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
32
32
|
input: {
|
|
33
33
|
alias: "i",
|
|
34
34
|
describe: "Input file",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { cleanAndValidateLinkTypeId, getOntologyDefinition, OntologyEntityTypeEnum } from "@osdk/maker";
|
|
17
|
+
import { cleanAndValidateLinkTypeId, getImportedTypes, getOntologyDefinition, OntologyEntityTypeEnum } from "@osdk/maker";
|
|
18
18
|
import invariant from "tiny-invariant";
|
|
19
19
|
import { convertCardinality } from "./convertCardinality.js";
|
|
20
20
|
export function convertLink(linkType, ridGenerator) {
|
|
@@ -85,6 +85,11 @@ export function convertLink(linkType, ridGenerator) {
|
|
|
85
85
|
const manyObjectRidB = ridGenerator.generateRidForObjectType(toManyObjectApiName);
|
|
86
86
|
const manyPkRidA = ridGenerator.generatePropertyRid(manyObject.primaryKeyPropertyApiName, manyObjectApiName);
|
|
87
87
|
const manyPkRidB = ridGenerator.generatePropertyRid(toManyObject.primaryKeyPropertyApiName, toManyObjectApiName);
|
|
88
|
+
const columnA = manyObject.primaryKeyPropertyApiName;
|
|
89
|
+
const columnB = toManyObject.primaryKeyPropertyApiName;
|
|
90
|
+
const hasCollision = columnA === columnB;
|
|
91
|
+
const resolvedColumnA = hasCollision ? `${columnA}_from` : columnA;
|
|
92
|
+
const resolvedColumnB = hasCollision ? `${columnB}_to` : columnB;
|
|
88
93
|
definition = {
|
|
89
94
|
type: "manyToMany",
|
|
90
95
|
manyToMany: {
|
|
@@ -113,10 +118,10 @@ export function convertLink(linkType, ridGenerator) {
|
|
|
113
118
|
writebackDatasetRid: undefined,
|
|
114
119
|
// TODO: Convert property mappings to use property RIDs as keys
|
|
115
120
|
objectTypeAPrimaryKeyMapping: {
|
|
116
|
-
[manyPkRidA]:
|
|
121
|
+
[manyPkRidA]: resolvedColumnA
|
|
117
122
|
},
|
|
118
123
|
objectTypeBPrimaryKeyMapping: {
|
|
119
|
-
[manyPkRidB]:
|
|
124
|
+
[manyPkRidB]: resolvedColumnB
|
|
120
125
|
}
|
|
121
126
|
}
|
|
122
127
|
},
|
|
@@ -207,7 +212,7 @@ function validateLink(linkDefinition) {
|
|
|
207
212
|
}
|
|
208
213
|
export function getObject(object) {
|
|
209
214
|
const objectApiName = typeof object === "string" ? object : object.apiName;
|
|
210
|
-
const fullObject = getOntologyDefinition()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];
|
|
215
|
+
const fullObject = getOntologyDefinition()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName] ?? getImportedTypes()[OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];
|
|
211
216
|
!(fullObject !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Object ${objectApiName} is not defined`) : invariant(false) : void 0;
|
|
212
217
|
return {
|
|
213
218
|
apiName: objectApiName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertLink.js","names":["cleanAndValidateLinkTypeId","getOntologyDefinition","OntologyEntityTypeEnum","invariant","convertCardinality","convertLink","linkType","ridGenerator","validateLink","definition","datasource","undefined","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","manyToMany","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","rid","generateRid","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 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 = 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 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\n datasource = {\n rid: ridGenerator.generateRid(`datasource.link.${linkType.apiName}`),\n datasource: {\n type: \"dataset\",\n dataset: {\n // TODO: Add proper branchId from link configuration\n branchId: \"main\",\n datasetRid: ridGenerator.generateRid(\n `link.dataset.${linkType.apiName}`,\n ),\n writebackDatasetRid: undefined,\n // TODO: Convert property mappings to use property RIDs as keys\n objectTypeAPrimaryKeyMapping: {\n [manyPkRidA]: manyObject.primaryKeyPropertyApiName,\n },\n objectTypeBPrimaryKeyMapping: {\n [manyPkRidB]: toManyObject.primaryKeyPropertyApiName,\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: 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 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":[]}
|
|
1
|
+
{"version":3,"file":"convertLink.js","names":["cleanAndValidateLinkTypeId","getImportedTypes","getOntologyDefinition","OntologyEntityTypeEnum","invariant","convertCardinality","convertLink","linkType","ridGenerator","validateLink","definition","datasource","undefined","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","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","rid","generateRid","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 = 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\n datasource = {\n rid: ridGenerator.generateRid(`datasource.link.${linkType.apiName}`),\n datasource: {\n type: \"dataset\",\n dataset: {\n // TODO: Add proper branchId from link configuration\n branchId: \"main\",\n datasetRid: ridGenerator.generateRid(\n `link.dataset.${linkType.apiName}`,\n ),\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: 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,GAAGC,SAAS;EACpE,IAAI,KAAK,IAAIL,QAAQ,EAAE;IACrB,MAAM;MAAEM,OAAO,EAAEC,gBAAgB;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGC,SAAS,CAChEV,QAAQ,CAACW,GAAG,CAACH,MACf,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEV,QAAQ,CAACc,MAAM,CAACN,MAClB,CAAC;IACD,MAAMO,YAAY,GAAGd,YAAY,CAACe,wBAAwB,CACxDT,gBACF,CAAC;IACD,MAAMU,eAAe,GAAGhB,YAAY,CAACe,wBAAwB,CAC3DJ,mBACF,CAAC;IACD,MAAMM,QAAQ,GAAGjB,YAAY,CAACkB,mBAAmB,CAC/CV,SAAS,CAACW,yBAAyB,EACnCb,gBACF,CAAC;IACD,MAAMc,SAAS,GAAGpB,YAAY,CAACkB,mBAAmB,CAChDnB,QAAQ,CAACsB,sBAAsB,EAC/BV,mBACF,CAAC;IAEDT,UAAU,GAAG;MACXoB,IAAI,EAAE,WAAW;MACjBC,SAAS,EAAE;QACTC,eAAe,EAAE3B,kBAAkB,CAACE,QAAQ,CAAC0B,WAAW,CAAC;QACzDC,qBAAqB,EAAE3B,QAAQ,CAACc,MAAM,CAACc,QAAQ;QAC/CC,qBAAqB,EAAEZ,eAAe;QACtCa,oBAAoB,EAAEf,YAAY;QAClCgB,qBAAqB,EAAE/B,QAAQ,CAACW,GAAG,CAACiB,QAAQ;QAC5C;QACAI,0CAA0C,EAAE;UAC1C,CAACd,QAAQ,GAAGG;QACd;MACF;IACF,CAAC;EACH,CAAC,MAAM,IAAI,wBAAwB,IAAIrB,QAAQ,EAAE;IAC/C,MAAM;MAAEM,OAAO,EAAE2B,iBAAiB;MAAEzB,MAAM,EAAE0B;IAAW,CAAC,GAAGxB,SAAS,CAClEV,QAAQ,CAACmC,IAAI,CAAC3B,MAChB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEV,QAAQ,CAACc,MAAM,CAACN,MAClB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAE8B;IAA0B,CAAC,GAAG1B,SAAS,CACtDV,QAAQ,CAACqC,sBACX,CAAC;IACDlC,UAAU,GAAG;MACXoB,IAAI,EAAE,cAAc;MACpBe,YAAY,EAAE;QACZC,0BAA0B,EAAEvC,QAAQ,CAACmC,IAAI,CAACP,QAAQ;QAClDY,0BAA0B,EAAExC,QAAQ,CAACc,MAAM,CAACc,QAAQ;QACpDa,cAAc,EAAExC,YAAY,CAACe,wBAAwB,CACnDiB,iBACF,CAAC;QACDS,cAAc,EAAEzC,YAAY,CAACe,wBAAwB,CACnDJ,mBACF,CAAC;QACD+B,yBAAyB,EAAE1C,YAAY,CAACe,wBAAwB,CAC9DoB,yBACF,CAAC;QACDQ,0BAA0B,EAAE3C,YAAY,CAAC4C,sBAAsB,CAC7DpD,0BAA0B,CAACO,QAAQ,CAACmC,IAAI,CAACW,kBAAkB,CAACxC,OAAO,CACrE,CAAC;QACDyC,0BAA0B,EAAE9C,YAAY,CAAC4C,sBAAsB,CAC7DpD,0BAA0B,CACxBO,QAAQ,CAACc,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,CAClEV,QAAQ,CAACmC,IAAI,CAAC3B,MAChB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtEV,QAAQ,CAACc,MAAM,CAACN,MAClB,CAAC;IACD,MAAMwC,cAAc,GAAG/C,YAAY,CAACe,wBAAwB,CAC1DiB,iBACF,CAAC;IACD,MAAMgB,cAAc,GAAGhD,YAAY,CAACe,wBAAwB,CAC1DJ,mBACF,CAAC;IACD,MAAMsC,UAAU,GAAGjD,YAAY,CAACkB,mBAAmB,CACjDe,UAAU,CAACd,yBAAyB,EACpCa,iBACF,CAAC;IACD,MAAMkB,UAAU,GAAGlD,YAAY,CAACkB,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;IAEhElD,UAAU,GAAG;MACXoB,IAAI,EAAE,YAAY;MAClBkC,UAAU,EAAE;QACVlB,0BAA0B,EAAEvC,QAAQ,CAACmC,IAAI,CAACP,QAAQ;QAClDY,0BAA0B,EAAExC,QAAQ,CAACc,MAAM,CAACc,QAAQ;QACpDa,cAAc,EAAEO,cAAc;QAC9BN,cAAc,EAAEO,cAAc;QAC9BS,eAAe,EAAErD,SAAS;QAC1B;QACAsD,oCAAoC,EAAE;UACpC,CAACT,UAAU,GAAGA;QAChB,CAAC;QACDU,oCAAoC,EAAE;UACpC,CAACT,UAAU,GAAGA;QAChB;MACF;IACF,CAAC;IAED/C,UAAU,GAAG;MACXyD,GAAG,EAAE5D,YAAY,CAAC6D,WAAW,CAAC,mBAAmB9D,QAAQ,CAACM,OAAO,EAAE,CAAC;MACpEF,UAAU,EAAE;QACVmB,IAAI,EAAE,SAAS;QACfwC,OAAO,EAAE;UACP;UACAC,QAAQ,EAAE,MAAM;UAChBC,UAAU,EAAEhE,YAAY,CAAC6D,WAAW,CAClC,gBAAgB9D,QAAQ,CAACM,OAAO,EAClC,CAAC;UACD4D,mBAAmB,EAAE7D,SAAS;UAC9B;UACA8D,4BAA4B,EAAE;YAC5B,CAACjB,UAAU,GAAGK;UAChB,CAAC;UACDa,4BAA4B,EAAE;YAC5B,CAACjB,UAAU,GAAGK;UAChB;QACF;MACF,CAAC;MACDa,kBAAkB,EAAE;QAClBC,wBAAwB,EAAE;MAC5B,CAAC;MACDC,QAAQ,EAAEvE,QAAQ,CAACuE;IACrB,CAAC;EACH;EAEA,MAAMC,UAAU,GAAG/E,0BAA0B,CAACO,QAAQ,CAACM,OAAO,CAAC;EAE/D,OAAO;IACLN,QAAQ,EAAE;MACRG,UAAU,EAAEA,UAAU;MACtB0D,GAAG,EAAE5D,YAAY,CAAC4C,sBAAsB,CAAC2B,UAAU,CAAC;MACpDC,EAAE,EAAEhF,0BAA0B,CAACO,QAAQ,CAACM,OAAO,CAAC;MAChDoE,MAAM,EAAEC,iBAAiB,CAAC3E,QAAQ,CAAC0E,MAAM,EAAEzE,YAAY,CAAC;MACxDsE,QAAQ,EAAEvE,QAAQ,CAACuE,QAAQ,IAAI;IACjC,CAAC;IACDK,WAAW,EAAExE,UAAU,KAAKC,SAAS,GAAG,CAACD,UAAU,CAAC,GAAG,EAAE;IACzDyE,cAAc,EAAE;MACdC,iBAAiB,EAAE9E,QAAQ,CAAC+E,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;QAAE9D,IAAI,EAAE,iBAAiB;QAAE+D,eAAe,EAAE,CAAC;MAAE;IACvE;EACF,CAAC;AACH;AACA,SAASpF,YAAYA,CAACqF,cAAwB,EAAE;EAC9C,IAAI,KAAK,IAAIA,cAAc,EAAE;IAC3B,MAAM;MAAEjF,OAAO,EAAEC,gBAAgB;MAAEC,MAAM,EAAEC;IAAU,CAAC,GAAGC,SAAS,CAChE6E,cAAc,CAAC5E,GAAG,CAACH,MACrB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtE6E,cAAc,CAACzE,MAAM,CAACN,MACxB,CAAC;IACD,MAAMgF,UAAU,GAAG3E,YAAY,CAAC4E,UAAU,EAAEC,IAAI,CAACC,CAAC,IAChDA,CAAC,CAACrF,OAAO,KAAKiF,cAAc,CAACjE,sBAC/B,CAAC;IACD,EACEkE,UAAU,KAAKnF,SAAS,IAAAuF,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1BjG,SAAS,QAEP,eAAe0F,cAAc,CAACjE,sBAAsB,YAAYiE,cAAc,CAACjF,OAAO,6BAA6BM,mBAAmB,EAAE,IAF1If,SAAS;IAKT,CACE,qBAAqB,CAACkG,IAAI,CAACR,cAAc,CAACjF,OAAO,CAAC,GAAAsF,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpDjG,SAAS,QAEP,wFAAwF0F,cAAc,CAACjF,OAAO,iBAAiB,IAFjIT,SAAS;IAKT,MAAMmG,UAAU,GAAGR,UAAU,CAACjE,IAAI,KAC5Bd,SAAS,CAACgF,UAAU,EAAEC,IAAI,CAACC,CAAC,IAC9BA,CAAC,CAACrF,OAAO,KAAKG,SAAS,CAACW,yBAC1B,CAAC,EAAEG,IAAI;IACT,CACEyE,UAAU,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZjG,SAAS,QAEP,QAAQ0F,cAAc,CAACjF,OAAO,4FAA4F,IAF5HT,SAAS;EAIX;EACA,IAAI,wBAAwB,IAAI0F,cAAc,EAAE;IAC9C,MAAM;MACJjF,OAAO,EAAE2F,6BAA6B;MACtCzF,MAAM,EAAE6B;IACV,CAAC,GAAG3B,SAAS,CAAC6E,cAAc,CAAClD,sBAAsB,CAAC;IACpD,MAAM;MAAE/B,OAAO,EAAE2B,iBAAiB;MAAEzB,MAAM,EAAE0B;IAAW,CAAC,GAAGxB,SAAS,CAClE6E,cAAc,CAACpD,IAAI,CAAC3B,MACtB,CAAC;IACD,MAAM;MAAEF,OAAO,EAAEM,mBAAmB;MAAEJ,MAAM,EAAEK;IAAa,CAAC,GAAGH,SAAS,CACtE6E,cAAc,CAACzE,MAAM,CAACN,MACxB,CAAC;IAED,MAAM;MACJF,OAAO,EAAE4F,gCAAgC;MACzC1F,MAAM,EAAE2F;IACV,CAAC,GAAGzF,SAAS,CAAE6E,cAAc,CAACpD,IAAI,CAACW,kBAAkB,CAASnC,GAAG,CAACH,MAAM,CAAC;IACzE,MAAM;MACJF,OAAO,EAAE8F,mCAAmC;MAC5C5F,MAAM,EAAE6F;IACV,CAAC,GAAG3F,SAAS,CAAC6E,cAAc,CAACpD,IAAI,CAACW,kBAAkB,CAAChC,MAAM,CAACN,MAAM,CAAC;IACnE,EACE,KAAK,IAAI+E,cAAc,CAACpD,IAAI,CAACW,kBAAkB,IAC1CoD,gCAAgC,KAC7BhE,UAAU,CAAC5B,OAAO,IACrB8F,mCAAmC,KAChCH,6BAA6B,IAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALvCjG,SAAS,QAMP,aAAa0F,cAAc,CAACpD,IAAI,CAACW,kBAAkB,CAACxC,OAAO,wDAAwD2F,6BAA6B,eAAehE,iBAAiB,EAAE,IANpLpC,SAAS;IAST,MAAM;MACJS,OAAO,EAAEgG,kCAAkC;MAC3C9F,MAAM,EAAE+F;IACV,CAAC,GAAG7F,SAAS,CAAE6E,cAAc,CAACzE,MAAM,CAACgC,kBAAkB,CAASnC,GAAG,CAACH,MAAM,CAAC;IAC3E,MAAM;MACJF,OAAO,EAAEkG,qCAAqC;MAC9ChG,MAAM,EAAEiG;IACV,CAAC,GAAG/F,SAAS,CAAC6E,cAAc,CAACzE,MAAM,CAACgC,kBAAkB,CAAChC,MAAM,CAACN,MAAM,CAAC;IACrE,EACE,KAAK,IAAI+E,cAAc,CAACzE,MAAM,CAACgC,kBAAkB,IAC5CwD,kCAAkC,KAC/B1F,mBAAmB,IACtB4F,qCAAqC,KAClCP,6BAA6B,IAAAL,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALvCjG,SAAS,QAMP,aAAa0F,cAAc,CAACzE,MAAM,CAACgC,kBAAkB,CAACxC,OAAO,wDAAwD2F,6BAA6B,eAAerF,mBAAmB,EAAE,IANxLf,SAAS;EAQX;AACF;AAEA,OAAO,SAASa,SAASA,CACvBF,MAAqC,EACI;EACzC,MAAMkG,aAAa,GAAG,OAAOlG,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAACF,OAAO;EAC1E,MAAMqG,UAAU,GACdhH,qBAAqB,CAAC,CAAC,CAACC,sBAAsB,CAACgH,WAAW,CAAC,CAACF,aAAa,CAAC,IACrEhH,gBAAgB,CAAC,CAAC,CAACE,sBAAsB,CAACgH,WAAW,CAAC,CAACF,aAAa,CAAC;EAC5E,EACEC,UAAU,KAAKtG,SAAS,IAAAuF,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1BjG,SAAS,QAEP,UAAU6G,aAAa,iBAAiB,IAF1C7G,SAAS;EAIT,OAAO;IAAES,OAAO,EAAEoG,aAAa;IAAElG,MAAM,EAAEmG;EAAW,CAAC;AACvD;AAEA,OAAO,SAAShC,iBAAiBA,CAC/BD,MAAsC,EACtCzE,YAAkC,EAClB;EAChB,IACE,OAAOyE,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAIA,MAAM,IAC3CA,MAAM,CAACnD,IAAI,KAAK,YAAY,EAC/B;IACA,OAAO;MACLA,IAAI,EAAE,YAAY;MAClBsF,UAAU,EAAE;QACVC,OAAO,EAAEpC,MAAM,CAACoC,OAAO;QACvBC,QAAQ,EAAErC,MAAM,CAACqC,QAAQ;QACzBC,UAAU,EAAEtC,MAAM,CAACsC,UAAU,GACzB/G,YAAY,CAAC4C,sBAAsB,CACnCpD,0BAA0B,CAACiF,MAAM,CAACsC,UAAU,CAC9C,CAAC,GACC3G;MACN;IACF,CAAC;EACH;EACA,QAAQqE,MAAM;IACZ,KAAK,cAAc;MACjB,OAAO;QAAEnD,IAAI,EAAE,cAAc;QAAE0F,YAAY,EAAE,CAAC;MAAE,CAAC;IACnD,KAAK,SAAS;MACZ,OAAO;QAAE1F,IAAI,EAAE,SAAS;QAAE2F,OAAO,EAAE,CAAC;MAAE,CAAC;IACzC,KAAK,QAAQ;IACb;MACE,OAAO;QAAE3F,IAAI,EAAE,QAAQ;QAAE4F,MAAM,EAAE,CAAC;MAAE,CAAC;EACzC;AACF","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -2081,6 +2081,11 @@ function convertLink(linkType, ridGenerator) {
|
|
|
2081
2081
|
const manyObjectRidB = ridGenerator.generateRidForObjectType(toManyObjectApiName);
|
|
2082
2082
|
const manyPkRidA = ridGenerator.generatePropertyRid(manyObject.primaryKeyPropertyApiName, manyObjectApiName);
|
|
2083
2083
|
const manyPkRidB = ridGenerator.generatePropertyRid(toManyObject.primaryKeyPropertyApiName, toManyObjectApiName);
|
|
2084
|
+
const columnA = manyObject.primaryKeyPropertyApiName;
|
|
2085
|
+
const columnB = toManyObject.primaryKeyPropertyApiName;
|
|
2086
|
+
const hasCollision = columnA === columnB;
|
|
2087
|
+
const resolvedColumnA = hasCollision ? `${columnA}_from` : columnA;
|
|
2088
|
+
const resolvedColumnB = hasCollision ? `${columnB}_to` : columnB;
|
|
2084
2089
|
definition = {
|
|
2085
2090
|
type: "manyToMany",
|
|
2086
2091
|
manyToMany: {
|
|
@@ -2109,10 +2114,10 @@ function convertLink(linkType, ridGenerator) {
|
|
|
2109
2114
|
writebackDatasetRid: void 0,
|
|
2110
2115
|
// TODO: Convert property mappings to use property RIDs as keys
|
|
2111
2116
|
objectTypeAPrimaryKeyMapping: {
|
|
2112
|
-
[manyPkRidA]:
|
|
2117
|
+
[manyPkRidA]: resolvedColumnA
|
|
2113
2118
|
},
|
|
2114
2119
|
objectTypeBPrimaryKeyMapping: {
|
|
2115
|
-
[manyPkRidB]:
|
|
2120
|
+
[manyPkRidB]: resolvedColumnB
|
|
2116
2121
|
}
|
|
2117
2122
|
}
|
|
2118
2123
|
},
|
|
@@ -2190,7 +2195,7 @@ function validateLink(linkDefinition) {
|
|
|
2190
2195
|
}
|
|
2191
2196
|
function getObject(object) {
|
|
2192
2197
|
const objectApiName = typeof object === "string" ? object : object.apiName;
|
|
2193
|
-
const fullObject = maker.getOntologyDefinition()[maker.OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];
|
|
2198
|
+
const fullObject = maker.getOntologyDefinition()[maker.OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName] ?? maker.getImportedTypes()[maker.OntologyEntityTypeEnum.OBJECT_TYPE][objectApiName];
|
|
2194
2199
|
!(fullObject !== void 0) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Object ${objectApiName} is not defined`) : invariant5__default.default(false) : void 0;
|
|
2195
2200
|
return {
|
|
2196
2201
|
apiName: objectApiName,
|
|
@@ -4245,7 +4250,7 @@ var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
|
4245
4250
|
var uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
4246
4251
|
async function main(args = process.argv) {
|
|
4247
4252
|
consola.consola.log("Generating BlockGeneratorResult for ontology...");
|
|
4248
|
-
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.6.0-beta.
|
|
4253
|
+
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.6.0-beta.6").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
|
|
4249
4254
|
input: {
|
|
4250
4255
|
alias: "i",
|
|
4251
4256
|
describe: "Input file",
|