@osdk/maker 0.13.0-beta.13 → 0.13.0-beta.15

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +49 -11
  3. package/build/browser/api/defineLink.js +30 -9
  4. package/build/browser/api/defineLink.js.map +1 -1
  5. package/build/browser/api/defineOntology.js +3 -3
  6. package/build/browser/api/defineOntology.js.map +1 -1
  7. package/build/browser/api/links/LinkType.js.map +1 -1
  8. package/build/browser/api/overall.test.js +596 -31
  9. package/build/browser/api/overall.test.js.map +1 -1
  10. package/build/browser/cli/main.js +10 -1
  11. package/build/browser/cli/main.js.map +1 -1
  12. package/build/browser/conversion/toMarketplace/convertLink.js +14 -1
  13. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
  14. package/build/browser/conversion/toMarketplace/convertOntologyDefinition.js +3 -2
  15. package/build/browser/conversion/toMarketplace/convertOntologyDefinition.js.map +1 -1
  16. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +2 -2
  17. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -1
  18. package/build/cjs/index.cjs +61 -17
  19. package/build/cjs/index.cjs.map +1 -1
  20. package/build/cjs/index.d.cts +30 -1
  21. package/build/esm/api/defineLink.js +30 -9
  22. package/build/esm/api/defineLink.js.map +1 -1
  23. package/build/esm/api/defineOntology.js +3 -3
  24. package/build/esm/api/defineOntology.js.map +1 -1
  25. package/build/esm/api/links/LinkType.js.map +1 -1
  26. package/build/esm/api/overall.test.js +596 -31
  27. package/build/esm/api/overall.test.js.map +1 -1
  28. package/build/esm/cli/main.js +10 -1
  29. package/build/esm/cli/main.js.map +1 -1
  30. package/build/esm/conversion/toMarketplace/convertLink.js +14 -1
  31. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  32. package/build/esm/conversion/toMarketplace/convertOntologyDefinition.js +3 -2
  33. package/build/esm/conversion/toMarketplace/convertOntologyDefinition.js.map +1 -1
  34. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +2 -2
  35. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -1
  36. package/build/types/api/defineLink.d.ts.map +1 -1
  37. package/build/types/api/defineOntology.d.ts +1 -1
  38. package/build/types/api/defineOntology.d.ts.map +1 -1
  39. package/build/types/api/links/LinkType.d.ts +29 -0
  40. package/build/types/api/links/LinkType.d.ts.map +1 -1
  41. package/build/types/cli/main.d.ts.map +1 -1
  42. package/build/types/conversion/toMarketplace/convertOntologyDefinition.d.ts +1 -1
  43. package/build/types/conversion/toMarketplace/convertOntologyDefinition.d.ts.map +1 -1
  44. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts.map +1 -1
  45. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.13.0-beta.15
4
+
5
+ ### Minor Changes
6
+
7
+ - 04e664e: readme update and missing changeset for wiring up randomness key
8
+
9
+ ## 0.13.0-beta.14
10
+
11
+ ### Minor Changes
12
+
13
+ - 9dd5a63: Intermediary links in oac
14
+ - e62408b: Fix Maker Rid Generation
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [b7edfb5]
19
+ - @osdk/api@2.5.0-beta.14
20
+
3
21
  ## 0.13.0-beta.13
4
22
 
5
23
  ### Minor Changes
package/README.md CHANGED
@@ -495,18 +495,18 @@ const departmentToEmployeesLink = defineLink({
495
495
  one: {
496
496
  object: departmentObject, // The "one" side of the relationship
497
497
  metadata: {
498
- apiName: "department",
499
- displayName: "Department",
500
- pluralDisplayName: "Departments",
498
+ apiName: "employees",
499
+ displayName: "Employee",
500
+ pluralDisplayName: "Employees",
501
501
  visibility: "NORMAL",
502
502
  },
503
503
  },
504
504
  toMany: {
505
505
  object: employeeObject, // The "many" side of the relationship
506
506
  metadata: {
507
- apiName: "employees",
508
- displayName: "Employee",
509
- pluralDisplayName: "Employees",
507
+ apiName: "department",
508
+ displayName: "Department",
509
+ pluralDisplayName: "Departments",
510
510
  visibility: "NORMAL",
511
511
  },
512
512
  },
@@ -522,6 +522,15 @@ const productToCategoriesLink = defineLink({
522
522
  apiName: "productToCategories",
523
523
  many: {
524
524
  object: productObject, // One side of the many-to-many relationship
525
+ metadata: {
526
+ apiName: "categories",
527
+ displayName: "Category",
528
+ pluralDisplayName: "Categories",
529
+ visibility: "NORMAL",
530
+ },
531
+ },
532
+ toMany: {
533
+ object: categoryObject, // Other side of the many-to-many relationship
525
534
  metadata: {
526
535
  apiName: "products",
527
536
  displayName: "Product",
@@ -529,15 +538,38 @@ const productToCategoriesLink = defineLink({
529
538
  visibility: "NORMAL",
530
539
  },
531
540
  },
541
+ });
542
+ ```
543
+
544
+ ### Intermediary Link
545
+
546
+ ```typescript
547
+ // Define an object-backed link type between aircraft and flights using a manifest
548
+ const manifest = defineObject(...); // define an intermediary object
549
+ const aircraftToManifestLink = defineLink(...); // define a one-to-many link between aircraft and intermediary object
550
+ const flightsToManifestLink = defineLink(...); // define a one-to-many link between flights and intermediary object
551
+
552
+ const aircraftToFlightsLink = defineLink({
553
+ apiName: "aircraftToFlights",
554
+ many: {
555
+ object: aircraft,
556
+ metadata: {
557
+ displayName: "Flight",
558
+ pluralDisplayName: "Flights",
559
+ apiName: "flights",
560
+ },
561
+ linkToIntermediary: aircraftToManifestLink,
562
+ },
532
563
  toMany: {
533
- object: categoryObject, // Other side of the many-to-many relationship
564
+ object: flight,
534
565
  metadata: {
535
- apiName: "categories",
536
- displayName: "Category",
537
- pluralDisplayName: "Categories",
538
- visibility: "NORMAL",
566
+ displayName: "Aircraft",
567
+ pluralDisplayName: "Aircraft",
568
+ apiName: "aircraft",
539
569
  },
570
+ linkToIntermediary: flightsToManifestLink,
540
571
  },
572
+ intermediaryObjectType: manifest,
541
573
  });
542
574
  ```
543
575
 
@@ -623,6 +655,12 @@ const createEmployeePersonAction = defineCreateInterfaceObjectAction(
623
655
  const modifyPersonAction = defineModifyInterfaceObjectAction({
624
656
  interfaceType: personInterface,
625
657
  });
658
+
659
+ // Define a more complex interface action
660
+ const modifyPersonAction = defineModifyInterfaceObjectAction({
661
+ interfaceType: personInterface,
662
+ excludedProperties: ["primaryKey"],
663
+ });
626
664
  ```
627
665
 
628
666
  ### Custom Action
@@ -27,15 +27,30 @@ export function defineLink(linkDefinition) {
27
27
  const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;
28
28
  !typesMatch ? process.env.NODE_ENV !== "production" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;
29
29
  }
30
- const fullLinkDefinition = "one" in linkDefinition ? {
31
- ...linkDefinition,
32
- one: convertUserOneToManyLinkDefinition(linkDefinition.one),
33
- toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)
34
- } : {
35
- ...linkDefinition,
36
- many: convertUserManyToManyLinkDefinition(linkDefinition.many),
37
- toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)
38
- };
30
+ if ("intermediaryObjectType" in linkDefinition) {
31
+ !("one" in linkDefinition.many.linkToIntermediary && linkDefinition.many.linkToIntermediary.one.object.apiName === linkDefinition.many.object.apiName && linkDefinition.many.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`) : invariant(false) : void 0;
32
+ !("one" in linkDefinition.toMany.linkToIntermediary && linkDefinition.toMany.linkToIntermediary.one.object.apiName === linkDefinition.toMany.object.apiName && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName === linkDefinition.intermediaryObjectType.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`) : invariant(false) : void 0;
33
+ }
34
+ let fullLinkDefinition;
35
+ if ("one" in linkDefinition) {
36
+ fullLinkDefinition = {
37
+ ...linkDefinition,
38
+ one: convertUserOneToManyLinkDefinition(linkDefinition.one),
39
+ toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)
40
+ };
41
+ } else if ("intermediaryObjectType" in linkDefinition) {
42
+ fullLinkDefinition = {
43
+ ...linkDefinition,
44
+ many: convertUserIntermediaryLinkDefinition(linkDefinition.many),
45
+ toMany: convertUserIntermediaryLinkDefinition(linkDefinition.toMany)
46
+ };
47
+ } else {
48
+ fullLinkDefinition = {
49
+ ...linkDefinition,
50
+ many: convertUserManyToManyLinkDefinition(linkDefinition.many),
51
+ toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)
52
+ };
53
+ }
39
54
  const linkType = {
40
55
  cardinality: "one" in linkDefinition ? linkDefinition.cardinality : undefined,
41
56
  ...fullLinkDefinition,
@@ -56,6 +71,12 @@ function convertUserManyToManyLinkDefinition(manyToMany) {
56
71
  metadata: convertLinkTypeMetadata(manyToMany.metadata)
57
72
  };
58
73
  }
74
+ function convertUserIntermediaryLinkDefinition(intermediary) {
75
+ return {
76
+ ...intermediary,
77
+ metadata: convertLinkTypeMetadata(intermediary.metadata)
78
+ };
79
+ }
59
80
  function convertLinkTypeMetadata(metadata) {
60
81
  return {
61
82
  apiName: metadata.apiName,
@@ -1 +1 @@
1
- {"version":3,"file":"defineLink.js","names":["invariant","OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","fullLinkDefinition","convertUserOneToManyLinkDefinition","many","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.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 { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.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 === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].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 const fullLinkDefinition = \"one\" in linkDefinition\n ? {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n }\n : {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineLink.js","names":["invariant","OntologyEntityTypeEnum","convertToPluralDisplayName","uppercaseFirstLetter","updateOntology","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","manyForeignKeyProperty","undefined","process","env","NODE_ENV","apiName","test","typesMatch","type","one","primaryKeyPropertyApiName","many","linkToIntermediary","intermediaryObjectType","fullLinkDefinition","convertUserOneToManyLinkDefinition","convertUserIntermediaryLinkDefinition","convertUserManyToManyLinkDefinition","linkType","cardinality","__type","LINK_TYPE","oneToMany","metadata","convertLinkTypeMetadata","manyToMany","intermediary","displayMetadata","displayName","pluralDisplayName","visibility","groupDisplayName","typeClasses"],"sources":["defineLink.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 { LinkTypeMetadata } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n convertToPluralDisplayName,\n uppercaseFirstLetter,\n} from \"./defineObject.js\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type {\n IntermediaryObjectLinkReference,\n IntermediaryObjectLinkReferenceUserDefinition,\n LinkType,\n LinkTypeDefinition,\n LinkTypeMetadataUserDefinition,\n ManyToManyObjectLinkReference,\n ManyToManyObjectLinkReferenceUserDefinition,\n OneToManyObjectLinkReference,\n OneToManyObjectLinkReferenceUserDefinition,\n} from \"./links/LinkType.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties\n ?.[linkDefinition.manyForeignKeyProperty];\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.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 === linkDefinition.one.object.properties\n ?.[linkDefinition.one.object.primaryKeyPropertyApiName].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 invariant(\n \"one\" in linkDefinition.many.linkToIntermediary\n && linkDefinition.many.linkToIntermediary.one.object.apiName\n === linkDefinition.many.object.apiName\n && linkDefinition.many.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeA ${linkDefinition.many.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectA ${linkDefinition.many.object.apiName}`,\n );\n invariant(\n \"one\" in linkDefinition.toMany.linkToIntermediary\n && linkDefinition.toMany.linkToIntermediary.one.object.apiName\n === linkDefinition.toMany.object.apiName\n && linkDefinition.toMany.linkToIntermediary.toMany.object.apiName\n === linkDefinition.intermediaryObjectType.apiName,\n `LinkTypeB ${linkDefinition.toMany.linkToIntermediary.apiName} must be a many to one link from intermediary object ${linkDefinition.intermediaryObjectType.apiName} to objectB ${linkDefinition.toMany.object.apiName}`,\n );\n }\n let fullLinkDefinition;\n if (\"one\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n one: convertUserOneToManyLinkDefinition(linkDefinition.one),\n toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany),\n };\n } else if (\"intermediaryObjectType\" in linkDefinition) {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserIntermediaryLinkDefinition(\n linkDefinition.many,\n ),\n toMany: convertUserIntermediaryLinkDefinition(\n linkDefinition.toMany,\n ),\n };\n } else {\n fullLinkDefinition = {\n ...linkDefinition,\n many: convertUserManyToManyLinkDefinition(linkDefinition.many),\n toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany),\n };\n }\n const linkType: LinkType = {\n cardinality: \"one\" in linkDefinition\n ? linkDefinition.cardinality\n : undefined,\n ...fullLinkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n\nfunction convertUserOneToManyLinkDefinition(\n oneToMany: OneToManyObjectLinkReferenceUserDefinition,\n): OneToManyObjectLinkReference {\n return {\n ...oneToMany,\n metadata: convertLinkTypeMetadata(oneToMany.metadata),\n };\n}\n\nfunction convertUserManyToManyLinkDefinition(\n manyToMany: ManyToManyObjectLinkReferenceUserDefinition,\n): ManyToManyObjectLinkReference {\n return {\n ...manyToMany,\n metadata: convertLinkTypeMetadata(manyToMany.metadata),\n };\n}\n\nfunction convertUserIntermediaryLinkDefinition(\n intermediary: IntermediaryObjectLinkReferenceUserDefinition,\n): IntermediaryObjectLinkReference {\n return {\n ...intermediary,\n metadata: convertLinkTypeMetadata(intermediary.metadata),\n };\n}\n\nfunction convertLinkTypeMetadata(\n metadata: LinkTypeMetadataUserDefinition,\n): LinkTypeMetadata {\n return {\n apiName: metadata.apiName,\n displayMetadata: {\n displayName: metadata.displayName\n ?? uppercaseFirstLetter(metadata.apiName),\n pluralDisplayName: metadata.pluralDisplayName\n ?? convertToPluralDisplayName(metadata.apiName),\n visibility: metadata.visibility ?? \"NORMAL\",\n groupDisplayName: metadata.groupDisplayName ?? \"\",\n },\n typeClasses: [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -48,7 +48,7 @@ export function updateOntology(entity) {
48
48
  }
49
49
  ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName].push(entity);
50
50
  }
51
- export async function defineOntology(ns, body, outputDir, dependencyFile) {
51
+ export async function defineOntology(ns, body, outputDir, dependencyFile, randomnessKey) {
52
52
  namespace = ns;
53
53
  dependencies = {};
54
54
  ontologyDefinition = {
@@ -80,7 +80,7 @@ export async function defineOntology(ns, body, outputDir, dependencyFile) {
80
80
  if (dependencyFile) {
81
81
  writeDependencyFile(dependencyFile);
82
82
  }
83
- return convertOntologyDefinition(ontologyDefinition);
83
+ return convertOntologyDefinition(ontologyDefinition, randomnessKey);
84
84
  }
85
85
  export function writeStaticObjects(outputDir) {
86
86
  const codegenDir = path.resolve(outputDir, "codegen");
@@ -155,7 +155,7 @@ export function buildDatasource(apiName, definition, classificationMarkingGroupN
155
155
  } : undefined
156
156
  } : undefined;
157
157
  return {
158
- rid: "ri.ontology.main.datasource.".concat(apiName),
158
+ datasourceName: apiName,
159
159
  datasource: definition,
160
160
  editsConfiguration: {
161
161
  onlyAllowPrivilegedEdits: false
@@ -1 +1 @@
1
- {"version":3,"file":"defineOntology.js","names":["fs","path","convertActionParameters","convertActionSections","convertActionValidation","convertOntologyDefinition","convertOntologyToValueTypeIr","getFormContentOrdering","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","buildDatasource","definition","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","rid","concat","datasource","editsConfiguration","onlyAllowPrivilegedEdits","redacted","dataSecurity","cleanAndValidateLinkTypeId","step1","linkTypeId","toLowerCase","test","Error","dumpOntologyFullMetadata","dumpValueTypeWireType","convertObjectStatus","status","type","active","experimental","deprecated","message","deadline","replacedBy","convertAction","action","actionValidation","actionParameters","actionSections","parameterOrdering","parameters","map","p","id","actionType","actionTypeLogic","logic","rules","validation","metadata","displayMetadata","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","description","displayName","icon","blueprint","locator","color","successMessage","submissionMetadata","typeClasses","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","extractAllowedValues","allowedValues","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","failureMessage","datetime","objectTypeReference","interfaceTypeRids","interfaceTypes","geotimeSeriesReference","geotimeSeries","k","renderHintFromBaseType","parameter","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith","addNamespaceIfNone","includes"],"sources":["defineOntology.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionTypeStatus,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrAllowedParameterValues,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrParameter,\n OntologyIrSection,\n OntologyIrValueTypeBlockData,\n ParameterId,\n ParameterRenderHint,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport type { ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionType } from \"./action/ActionType.js\";\nimport type { OntologyDefinition } from \"./common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport type { OntologyEntityType } from \"./common/OntologyEntityTypeMapping.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nexport function buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\n });\n}\n\nexport function cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nexport function convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nexport function convertAction(\n action: ActionType,\n): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n entities: action.entities,\n },\n },\n };\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nexport function renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineOntology.js","names":["fs","path","convertActionParameters","convertActionSections","convertActionValidation","convertOntologyDefinition","convertOntologyToValueTypeIr","getFormContentOrdering","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","randomnessKey","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","buildDatasource","definition","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","datasourceName","datasource","editsConfiguration","onlyAllowPrivilegedEdits","redacted","dataSecurity","cleanAndValidateLinkTypeId","step1","linkTypeId","toLowerCase","test","Error","dumpOntologyFullMetadata","dumpValueTypeWireType","convertObjectStatus","status","type","active","experimental","deprecated","message","deadline","replacedBy","convertAction","action","actionValidation","actionParameters","actionSections","parameterOrdering","parameters","map","p","id","actionType","actionTypeLogic","logic","rules","validation","metadata","displayMetadata","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","description","displayName","icon","blueprint","locator","color","successMessage","submissionMetadata","typeClasses","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","extractAllowedValues","allowedValues","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","failureMessage","datetime","objectTypeReference","interfaceTypeRids","interfaceTypes","geotimeSeriesReference","geotimeSeries","k","renderHintFromBaseType","parameter","checkbox","numericInput","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith","addNamespaceIfNone","includes"],"sources":["defineOntology.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionTypeStatus,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrAllowedParameterValues,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrParameter,\n OntologyIrSection,\n OntologyIrValueTypeBlockData,\n ParameterId,\n ParameterRenderHint,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport type { ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionType } from \"./action/ActionType.js\";\nimport type { OntologyDefinition } from \"./common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport type { OntologyEntityType } from \"./common/OntologyEntityTypeMapping.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n randomnessKey?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n return convertOntologyDefinition(ontologyDefinition, randomnessKey);\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nexport function buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n datasourceName: apiName,\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\n });\n}\n\nexport function cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nexport function convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nexport function convertAction(\n action: ActionType,\n): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n entities: action.entities,\n },\n },\n };\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nexport function renderHintFromBaseType(\n parameter: ActionParameter,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkType.js","names":[],"sources":["LinkType.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 LinkTypeDisplayMetadata,\n LinkTypeMetadata,\n OntologyIrLinkTypeStatus,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport type { OptionalFields } from \"../../util/OptionalFields.js\";\nimport type { RequiredFields } from \"../../util/RequiredFields.js\";\nimport type { OntologyEntityBase } from \"../common/OntologyEntityBase.js\";\nimport type { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { ObjectTypeDefinition } from \"../object/ObjectTypeDefinition.js\";\n\nexport type LinkType =\n | (OntologyEntityBase & OneToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n });\n\nexport type LinkTypeDefinition =\n | Omit<\n OntologyEntityBase & OneToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >;\n\nexport type ObjectTypePropertyApiName = string;\n\nexport interface OneToManyLinkTypeDefinition {\n apiName: string;\n one: OneToManyObjectLinkReference;\n toMany: OneToManyObjectLinkReference;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality: \"OneToMany\" | \"OneToOne\" | undefined;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface OneToManyObjectLinkReference {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadata;\n}\n\nexport interface OneToManyLinkTypeUserDefinition {\n apiName: string;\n one: OneToManyObjectLinkReferenceUserDefinition;\n toMany: OneToManyObjectLinkReferenceUserDefinition;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality?: \"OneToMany\" | \"OneToOne\" | undefined;\n}\n\nexport interface OneToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface ManyToManyLinkTypeDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReference;\n toMany: ManyToManyObjectLinkReference;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface ManyToManyObjectLinkReference {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadata;\n}\n\nexport interface ManyToManyLinkTypeUserDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReferenceUserDefinition;\n toMany: ManyToManyObjectLinkReferenceUserDefinition;\n}\n\nexport interface ManyToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface LinkTypeMetadataUserDefinition {\n apiName: string;\n displayName?: string;\n pluralDisplayName?: string;\n visibility?: Visibility;\n groupDisplayName?: string;\n}\n\nexport type LinkSideMetadata = OptionalFields<\n RequiredFields<\n Omit<LinkTypeMetadata, \"displayMetadata\"> & LinkTypeDisplayMetadata,\n \"apiName\"\n >,\n \"visibility\" | \"typeClasses\"\n>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"LinkType.js","names":[],"sources":["LinkType.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 LinkTypeDisplayMetadata,\n LinkTypeMetadata,\n OntologyIrLinkTypeStatus,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport type { OptionalFields } from \"../../util/OptionalFields.js\";\nimport type { RequiredFields } from \"../../util/RequiredFields.js\";\nimport type { OntologyEntityBase } from \"../common/OntologyEntityBase.js\";\nimport type { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { ObjectTypeDefinition } from \"../object/ObjectTypeDefinition.js\";\n\nexport type LinkType =\n | (OntologyEntityBase & OneToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n });\n\nexport type LinkTypeDefinition =\n | Omit<\n OntologyEntityBase & OneToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >;\n\nexport type ObjectTypePropertyApiName = string;\n\nexport interface OneToManyLinkTypeDefinition {\n apiName: string;\n one: OneToManyObjectLinkReference;\n toMany: OneToManyObjectLinkReference;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality: \"OneToMany\" | \"OneToOne\" | undefined;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface OneToManyObjectLinkReference {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadata;\n}\n\nexport interface OneToManyLinkTypeUserDefinition {\n apiName: string;\n one: OneToManyObjectLinkReferenceUserDefinition;\n toMany: OneToManyObjectLinkReferenceUserDefinition;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality?: \"OneToMany\" | \"OneToOne\" | undefined;\n}\n\nexport interface OneToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface ManyToManyLinkTypeDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReference;\n toMany: ManyToManyObjectLinkReference;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface ManyToManyObjectLinkReference {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadata;\n}\n\nexport interface ManyToManyLinkTypeUserDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReferenceUserDefinition;\n toMany: ManyToManyObjectLinkReferenceUserDefinition;\n}\n\nexport interface ManyToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface IntermediaryLinkTypeDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReference;\n toMany: IntermediaryObjectLinkReference;\n intermediaryObjectType: ObjectTypeDefinition;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface IntermediaryObjectLinkReference {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadata;\n linkToIntermediary: LinkType;\n}\n\nexport interface IntermediaryLinkTypeUserDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReferenceUserDefinition;\n toMany: IntermediaryObjectLinkReferenceUserDefinition;\n intermediaryObjectType: ObjectTypeDefinition;\n}\n\nexport interface IntermediaryObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition;\n metadata: LinkTypeMetadataUserDefinition;\n linkToIntermediary: LinkType;\n}\n\nexport interface LinkTypeMetadataUserDefinition {\n apiName: string;\n displayName?: string;\n pluralDisplayName?: string;\n visibility?: Visibility;\n groupDisplayName?: string;\n}\n\nexport type LinkSideMetadata = OptionalFields<\n RequiredFields<\n Omit<LinkTypeMetadata, \"displayMetadata\"> & LinkTypeDisplayMetadata,\n \"apiName\"\n >,\n \"visibility\" | \"typeClasses\"\n>;\n"],"mappings":"","ignoreList":[]}