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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +43 -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 +1 -1
  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 +574 -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/convertOntologyDefinitionToWireBlockData.js +2 -2
  15. package/build/browser/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -1
  16. package/build/cjs/index.cjs +57 -14
  17. package/build/cjs/index.cjs.map +1 -1
  18. package/build/cjs/index.d.cts +30 -1
  19. package/build/esm/api/defineLink.js +30 -9
  20. package/build/esm/api/defineLink.js.map +1 -1
  21. package/build/esm/api/defineOntology.js +1 -1
  22. package/build/esm/api/defineOntology.js.map +1 -1
  23. package/build/esm/api/links/LinkType.js.map +1 -1
  24. package/build/esm/api/overall.test.js +574 -31
  25. package/build/esm/api/overall.test.js.map +1 -1
  26. package/build/esm/cli/main.js +10 -1
  27. package/build/esm/cli/main.js.map +1 -1
  28. package/build/esm/conversion/toMarketplace/convertLink.js +14 -1
  29. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  30. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js +2 -2
  31. package/build/esm/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.js.map +1 -1
  32. package/build/types/api/defineLink.d.ts.map +1 -1
  33. package/build/types/api/defineOntology.d.ts +1 -1
  34. package/build/types/api/defineOntology.d.ts.map +1 -1
  35. package/build/types/api/links/LinkType.d.ts +29 -0
  36. package/build/types/api/links/LinkType.d.ts.map +1 -1
  37. package/build/types/cli/main.d.ts.map +1 -1
  38. package/build/types/conversion/toMarketplace/convertOntologyDefinitionToWireBlockData.d.ts.map +1 -1
  39. package/package.json +5 -4
@@ -18,12 +18,13 @@ import { consola } from "consola";
18
18
  import * as fs from "node:fs/promises";
19
19
  import * as path from "node:path";
20
20
  import invariant from "tiny-invariant";
21
+ import { validate as validateUuid } from "uuid";
21
22
  import yargs from "yargs";
22
23
  import { hideBin } from "yargs/helpers";
23
24
  import { defineOntology } from "../api/defineOntology.js";
24
25
  const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
25
26
  export default async function main(args = process.argv) {
26
- const commandLineOpts = await yargs(hideBin(args)).version("0.13.0-beta.13" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
27
+ const commandLineOpts = await yargs(hideBin(args)).version("0.13.0-beta.14" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
27
28
  input: {
28
29
  alias: "i",
29
30
  describe: "Input file",
@@ -66,6 +67,11 @@ export default async function main(args = process.argv) {
66
67
  describe: "File to write dependencies to",
67
68
  type: "string",
68
69
  coerce: path.resolve
70
+ },
71
+ randomnessKey: {
72
+ describe: "Value used to assure uniqueness of entities",
73
+ type: "string",
74
+ coerce: path.resolve
69
75
  }
70
76
  }).parseAsync();
71
77
  let apiNamespace = "";
@@ -75,6 +81,9 @@ export default async function main(args = process.argv) {
75
81
  !apiNamespaceRegex.test(apiNamespace) ? process.env.NODE_ENV !== "production" ? invariant(false, "API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\.[a-z0-9-]+)*\.$") : invariant(false) : void 0;
76
82
  }
77
83
  consola.info(`Loading ontology from ${commandLineOpts.input}`);
84
+ if (commandLineOpts.randomnessKey !== undefined) {
85
+ !validateUuid(commandLineOpts.randomnessKey) ? process.env.NODE_ENV !== "production" ? invariant(false, "Supplied randomness key is not a uuid and shouldn't be used as a uniqueness guarantee") : invariant(false) : void 0;
86
+ }
78
87
  const ontologyIr = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.outputDir, commandLineOpts.dependencies);
79
88
  consola.info(`Saving ontology to ${commandLineOpts.output}`);
80
89
  await fs.writeFile(commandLineOpts.output, JSON.stringify(ontologyIr, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineOntology","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","outputDir","valueTypesOutput","dependencies","parseAsync","length","slice","env","NODE_ENV","test","info","ontologyIr","loadOntology","writeFile","JSON","stringify","valueTypes","importedValueTypes","dependencyFile","q"],"sources":["main.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 { consola } from \"consola\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntology } from \"../api/defineOntology.js\";\n\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\n\nexport default async function main(\n args: string[] = process.argv,\n): Promise<void> {\n const commandLineOpts: {\n input: string;\n output: string;\n apiNamespace: string;\n snapshotDir: string;\n valueTypesOutput: string;\n outputDir?: string;\n dependencies?: string;\n } = await yargs(hideBin(args))\n .version(process.env.PACKAGE_VERSION ?? \"\")\n .wrap(Math.min(150, yargs().terminalWidth()))\n .strict()\n .help()\n .options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve,\n },\n output: {\n alias: \"o\",\n describe: \"Output file\",\n type: \"string\",\n default: \"ontology.json\",\n coerce: path.resolve,\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\",\n },\n snapshotDir: {\n alias: \"s\",\n describe: \"Snapshot directory\",\n type: \"string\",\n default: \"snapshots\",\n coerce: path.resolve,\n },\n outputDir: {\n alias: \"d\",\n describe: \"Directory for generated ontology entities\",\n type: \"string\",\n coerce: path.resolve,\n },\n valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve,\n },\n dependencies: {\n describe: \"File to write dependencies to\",\n type: \"string\",\n coerce: path.resolve,\n },\n })\n .parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = (commandLineOpts.apiNamespace.slice(-1) !== \".\")\n ? commandLineOpts.apiNamespace + \".\"\n : commandLineOpts.apiNamespace;\n invariant(apiNamespace.length < 1024, \"API namespace is too long.\");\n invariant(\n apiNamespaceRegex.test(apiNamespace),\n \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\",\n );\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n\n const ontologyIr = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n commandLineOpts.outputDir,\n commandLineOpts.dependencies,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(\n ontologyIr,\n null,\n 2,\n ),\n );\n // No point in generating block if there aren't any value types\n if (\n ontologyIr.valueTypes.valueTypes.length > 0\n || ontologyIr.importedValueTypes.valueTypes.length > 0\n ) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(\n ontologyIr.valueTypes,\n null,\n 2,\n ),\n );\n }\n}\n\nasync function loadOntology(\n input: string,\n apiNamespace: string,\n outputDir: string | undefined,\n dependencyFile: string | undefined,\n) {\n const q = await defineOntology(\n apiNamespace,\n async () => await import(input),\n outputDir,\n dependencyFile,\n );\n return q;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"main.js","names":["consola","fs","path","invariant","validate","validateUuid","yargs","hideBin","defineOntology","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","outputDir","valueTypesOutput","dependencies","randomnessKey","parseAsync","length","slice","env","NODE_ENV","test","info","undefined","ontologyIr","loadOntology","writeFile","JSON","stringify","valueTypes","importedValueTypes","dependencyFile","q"],"sources":["main.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 { consola } from \"consola\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport invariant from \"tiny-invariant\";\nimport { validate as validateUuid } from \"uuid\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport { defineOntology } from \"../api/defineOntology.js\";\n\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\n\nexport default async function main(\n args: string[] = process.argv,\n): Promise<void> {\n const commandLineOpts: {\n input: string;\n output: string;\n apiNamespace: string;\n snapshotDir: string;\n valueTypesOutput: string;\n outputDir?: string;\n dependencies?: string;\n randomnessKey?: string;\n } = await yargs(hideBin(args))\n .version(process.env.PACKAGE_VERSION ?? \"\")\n .wrap(Math.min(150, yargs().terminalWidth()))\n .strict()\n .help()\n .options({\n input: {\n alias: \"i\",\n describe: \"Input file\",\n type: \"string\",\n default: \".ontology/ontology.ts\",\n coerce: path.resolve,\n },\n output: {\n alias: \"o\",\n describe: \"Output file\",\n type: \"string\",\n default: \"ontology.json\",\n coerce: path.resolve,\n },\n apiNamespace: {\n describe: \"Api name prefix for namespaced ontology types\",\n type: \"string\",\n default: \"\",\n },\n snapshotDir: {\n alias: \"s\",\n describe: \"Snapshot directory\",\n type: \"string\",\n default: \"snapshots\",\n coerce: path.resolve,\n },\n outputDir: {\n alias: \"d\",\n describe: \"Directory for generated ontology entities\",\n type: \"string\",\n coerce: path.resolve,\n },\n valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve,\n },\n dependencies: {\n describe: \"File to write dependencies to\",\n type: \"string\",\n coerce: path.resolve,\n },\n randomnessKey: {\n describe: \"Value used to assure uniqueness of entities\",\n type: \"string\",\n coerce: path.resolve,\n },\n })\n .parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = (commandLineOpts.apiNamespace.slice(-1) !== \".\")\n ? commandLineOpts.apiNamespace + \".\"\n : commandLineOpts.apiNamespace;\n invariant(apiNamespace.length < 1024, \"API namespace is too long.\");\n invariant(\n apiNamespaceRegex.test(apiNamespace),\n \"API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$\",\n );\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n\n if (commandLineOpts.randomnessKey !== undefined) {\n invariant(\n validateUuid(commandLineOpts.randomnessKey),\n \"Supplied randomness key is not a uuid and shouldn't be used as a uniqueness guarantee\",\n );\n }\n\n const ontologyIr = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n commandLineOpts.outputDir,\n commandLineOpts.dependencies,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(\n ontologyIr,\n null,\n 2,\n ),\n );\n // No point in generating block if there aren't any value types\n if (\n ontologyIr.valueTypes.valueTypes.length > 0\n || ontologyIr.importedValueTypes.valueTypes.length > 0\n ) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(\n ontologyIr.valueTypes,\n null,\n 2,\n ),\n );\n }\n}\n\nasync function loadOntology(\n input: string,\n apiNamespace: string,\n outputDir: string | undefined,\n dependencyFile: string | undefined,\n) {\n const q = await defineOntology(\n apiNamespace,\n async () => await import(input),\n outputDir,\n dependencyFile,\n );\n return q;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,SAAS;AACjC,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AACtC,OAAO,KAAKC,IAAI,MAAM,WAAW;AACjC,OAAOC,SAAS,MAAM,gBAAgB;AACtC,SAASC,QAAQ,IAAIC,YAAY,QAAQ,MAAM;AAC/C,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,cAAc,QAAQ,0BAA0B;AAEzD,MAAMC,iBAAiB,GAAG,+BAA+B;AAEzD,eAAe,eAAeC,IAAIA,CAChCC,IAAc,GAAGC,OAAO,CAACC,IAAI,EACd;EACf,MAAMC,eASL,GAAG,MAAMR,KAAK,CAACC,OAAO,CAACI,IAAI,CAAC,CAAC,CAC3BI,OAAO,CAAC,oBAA+B,EAAE,CAAC,CAC1CC,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,GAAG,EAAEZ,KAAK,CAAC,CAAC,CAACa,aAAa,CAAC,CAAC,CAAC,CAAC,CAC5CC,MAAM,CAAC,CAAC,CACRC,IAAI,CAAC,CAAC,CACNC,OAAO,CAAC;IACPC,KAAK,EAAE;MACLC,KAAK,EAAE,GAAG;MACVC,QAAQ,EAAE,YAAY;MACtBC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE,uBAAuB;MAChCC,MAAM,EAAE1B,IAAI,CAAC2B;IACf,CAAC;IACDC,MAAM,EAAE;MACNN,KAAK,EAAE,GAAG;MACVC,QAAQ,EAAE,aAAa;MACvBC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE,eAAe;MACxBC,MAAM,EAAE1B,IAAI,CAAC2B;IACf,CAAC;IACDE,YAAY,EAAE;MACZN,QAAQ,EAAE,+CAA+C;MACzDC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;IACX,CAAC;IACDK,WAAW,EAAE;MACXR,KAAK,EAAE,GAAG;MACVC,QAAQ,EAAE,oBAAoB;MAC9BC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE,WAAW;MACpBC,MAAM,EAAE1B,IAAI,CAAC2B;IACf,CAAC;IACDI,SAAS,EAAE;MACTT,KAAK,EAAE,GAAG;MACVC,QAAQ,EAAE,2CAA2C;MACrDC,IAAI,EAAE,QAAQ;MACdE,MAAM,EAAE1B,IAAI,CAAC2B;IACf,CAAC;IACDK,gBAAgB,EAAE;MAChBT,QAAQ,EAAE,wBAAwB;MAClCC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE,kBAAkB;MAC3BC,MAAM,EAAE1B,IAAI,CAAC2B;IACf,CAAC;IACDM,YAAY,EAAE;MACZV,QAAQ,EAAE,+BAA+B;MACzCC,IAAI,EAAE,QAAQ;MACdE,MAAM,EAAE1B,IAAI,CAAC2B;IACf,CAAC;IACDO,aAAa,EAAE;MACbX,QAAQ,EAAE,6CAA6C;MACvDC,IAAI,EAAE,QAAQ;MACdE,MAAM,EAAE1B,IAAI,CAAC2B;IACf;EACF,CAAC,CAAC,CACDQ,UAAU,CAAC,CAAC;EACf,IAAIN,YAAY,GAAG,EAAE;EACrB,IAAIjB,eAAe,CAACiB,YAAY,CAACO,MAAM,KAAK,CAAC,EAAE;IAC7CP,YAAY,GAAIjB,eAAe,CAACiB,YAAY,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAC1DzB,eAAe,CAACiB,YAAY,GAAG,GAAG,GAClCjB,eAAe,CAACiB,YAAY;IAChC,EAAUA,YAAY,CAACO,MAAM,GAAG,IAAI,IAAA1B,OAAA,CAAA4B,GAAA,CAAAC,QAAA,oBAApCtC,SAAS,QAA6B,4BAA4B,IAAlEA,SAAS;IACT,CACEM,iBAAiB,CAACiC,IAAI,CAACX,YAAY,CAAC,GAAAnB,OAAA,CAAA4B,GAAA,CAAAC,QAAA,oBADtCtC,SAAS,QAEP,sFAAsF,IAFxFA,SAAS;EAIX;EACAH,OAAO,CAAC2C,IAAI,CAAC,yBAAyB7B,eAAe,CAACS,KAAK,EAAE,CAAC;EAE9D,IAAIT,eAAe,CAACsB,aAAa,KAAKQ,SAAS,EAAE;IAC/C,CACEvC,YAAY,CAACS,eAAe,CAACsB,aAAa,CAAC,GAAAxB,OAAA,CAAA4B,GAAA,CAAAC,QAAA,oBAD7CtC,SAAS,QAEP,uFAAuF,IAFzFA,SAAS;EAIX;EAEA,MAAM0C,UAAU,GAAG,MAAMC,YAAY,CACnChC,eAAe,CAACS,KAAK,EACrBQ,YAAY,EACZjB,eAAe,CAACmB,SAAS,EACzBnB,eAAe,CAACqB,YAClB,CAAC;EAEDnC,OAAO,CAAC2C,IAAI,CAAC,sBAAsB7B,eAAe,CAACgB,MAAM,EAAE,CAAC;EAC5D,MAAM7B,EAAE,CAAC8C,SAAS,CAChBjC,eAAe,CAACgB,MAAM,EACtBkB,IAAI,CAACC,SAAS,CACZJ,UAAU,EACV,IAAI,EACJ,CACF,CACF,CAAC;EACD;EACA,IACEA,UAAU,CAACK,UAAU,CAACA,UAAU,CAACZ,MAAM,GAAG,CAAC,IACxCO,UAAU,CAACM,kBAAkB,CAACD,UAAU,CAACZ,MAAM,GAAG,CAAC,EACtD;IACA,MAAMrC,EAAE,CAAC8C,SAAS,CAChBjC,eAAe,CAACoB,gBAAgB,EAChCc,IAAI,CAACC,SAAS,CACZJ,UAAU,CAACK,UAAU,EACrB,IAAI,EACJ,CACF,CACF,CAAC;EACH;AACF;AAEA,eAAeJ,YAAYA,CACzBvB,KAAa,EACbQ,YAAoB,EACpBE,SAA6B,EAC7BmB,cAAkC,EAClC;EACA,MAAMC,CAAC,GAAG,MAAM7C,cAAc,CAC5BuB,YAAY,EACZ,YAAY,MAAM,MAAM,CAACR,KAAK,CAAC,EAC/BU,SAAS,EACTmB,cACF,CAAC;EACD,OAAOC,CAAC;AACV","ignoreList":[]}
@@ -40,6 +40,19 @@ export function convertLink(linkType) {
40
40
  }]
41
41
  }
42
42
  };
43
+ } else if ("intermediaryObjectType" in linkType) {
44
+ definition = {
45
+ type: "intermediary",
46
+ intermediary: {
47
+ objectTypeAToBLinkMetadata: linkType.many.metadata,
48
+ objectTypeBToALinkMetadata: linkType.toMany.metadata,
49
+ objectTypeRidA: linkType.many.object.apiName,
50
+ objectTypeRidB: linkType.toMany.object.apiName,
51
+ intermediaryObjectTypeRid: linkType.intermediaryObjectType.apiName,
52
+ aToIntermediaryLinkTypeRid: cleanAndValidateLinkTypeId(linkType.many.linkToIntermediary.apiName),
53
+ intermediaryToBLinkTypeRid: cleanAndValidateLinkTypeId(linkType.toMany.linkToIntermediary.apiName)
54
+ }
55
+ };
43
56
  } else {
44
57
  definition = {
45
58
  type: "manyToMany",
@@ -72,7 +85,7 @@ export function convertLink(linkType) {
72
85
  }
73
86
  };
74
87
  datasource = {
75
- rid: "ri.ontology.main.datasource.link-".concat(linkType.apiName),
88
+ datasourceName: linkType.apiName,
76
89
  datasource: {
77
90
  type: "dataset",
78
91
  dataset: {
@@ -1 +1 @@
1
- {"version":3,"file":"convertLink.js","names":["cleanAndValidateLinkTypeId","convertCardinality","convertLink","linkType","definition","datasource","undefined","type","oneToMany","cardinalityHint","cardinality","manyToOneLinkMetadata","toMany","metadata","objectTypeRidManySide","object","apiName","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","primaryKeyPropertyApiName","to","manyForeignKeyProperty","manyToMany","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","rid","concat","dataset","datasetRid","writebackDatasetRid","objectTypeAPrimaryKeyMapping","property","column","objectTypeBPrimaryKeyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","id","status","active","datasources","entityMetadata","arePatchesEnabled","editsEnabled"],"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 OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n} from \"@osdk/client.unstable\";\nimport { cleanAndValidateLinkTypeId } from \"../../api/defineOntology.js\";\nimport type { LinkType } from \"../../api/links/LinkType.js\";\nimport { convertCardinality } from \"./convertCardinality.js\";\n\nexport function convertLink(\n linkType: LinkType,\n): OntologyIrLinkTypeBlockDataV2 {\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeyPropertyApiName,\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.apiName),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.toMany.object.primaryKeyPropertyApiName,\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: linkType.status ?? { type: \"active\", active: {} },\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"convertLink.js","names":["cleanAndValidateLinkTypeId","convertCardinality","convertLink","linkType","definition","datasource","undefined","type","oneToMany","cardinalityHint","cardinality","manyToOneLinkMetadata","toMany","metadata","objectTypeRidManySide","object","apiName","objectTypeRidOneSide","one","oneToManyLinkMetadata","oneSidePrimaryKeyToManySidePropertyMapping","from","primaryKeyPropertyApiName","to","manyForeignKeyProperty","intermediary","objectTypeAToBLinkMetadata","many","objectTypeBToALinkMetadata","objectTypeRidA","objectTypeRidB","intermediaryObjectTypeRid","intermediaryObjectType","aToIntermediaryLinkTypeRid","linkToIntermediary","intermediaryToBLinkTypeRid","manyToMany","peeringMetadata","objectTypeAPrimaryKeyPropertyMapping","objectTypeBPrimaryKeyPropertyMapping","datasourceName","dataset","datasetRid","concat","writebackDatasetRid","objectTypeAPrimaryKeyMapping","property","column","objectTypeBPrimaryKeyMapping","editsConfiguration","onlyAllowPrivilegedEdits","redacted","id","status","active","datasources","entityMetadata","arePatchesEnabled","editsEnabled"],"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 OntologyIrLinkDefinition,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrManyToManyLinkTypeDatasource,\n} from \"@osdk/client.unstable\";\nimport { cleanAndValidateLinkTypeId } from \"../../api/defineOntology.js\";\nimport type { LinkType } from \"../../api/links/LinkType.js\";\nimport { convertCardinality } from \"./convertCardinality.js\";\n\nexport function convertLink(\n linkType: LinkType,\n): OntologyIrLinkTypeBlockDataV2 {\n let definition: OntologyIrLinkDefinition;\n let datasource: OntologyIrManyToManyLinkTypeDatasource | undefined =\n undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: convertCardinality(linkType.cardinality),\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeyPropertyApiName,\n object: linkType.one.object.apiName,\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n } else if (\"intermediaryObjectType\" in linkType) {\n definition = {\n type: \"intermediary\",\n intermediary: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n intermediaryObjectTypeRid: linkType.intermediaryObjectType.apiName,\n aToIntermediaryLinkTypeRid: cleanAndValidateLinkTypeId(\n linkType.many.linkToIntermediary.apiName,\n ),\n intermediaryToBLinkTypeRid: cleanAndValidateLinkTypeId(\n linkType.toMany.linkToIntermediary.apiName,\n ),\n },\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n }],\n },\n };\n\n datasource = {\n datasourceName: linkType.apiName,\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.apiName),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName,\n },\n column: linkType.many.object.primaryKeyPropertyApiName,\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName,\n },\n column: linkType.toMany.object.primaryKeyPropertyApiName,\n }],\n },\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: linkType.redacted,\n };\n }\n\n return {\n linkType: {\n definition: definition,\n id: cleanAndValidateLinkTypeId(linkType.apiName),\n status: linkType.status ?? { type: \"active\", active: {} },\n redacted: linkType.redacted ?? false,\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import { OntologyEntityTypeEnum } from "../../api/common/OntologyEntityTypeEnum.js";
18
- import { convertAction } from "../../api/defineOntology.js";
18
+ import { cleanAndValidateLinkTypeId, convertAction } from "../../api/defineOntology.js";
19
19
  import { convertInterface } from "./convertInterface.js";
20
20
  import { convertLink } from "./convertLink.js";
21
21
  import { convertObject } from "./convertObject.js";
@@ -34,7 +34,7 @@ export function convertOntologyDefinitionToWireBlockData(ontology) {
34
34
  }];
35
35
  })),
36
36
  linkTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map(([id, link]) => {
37
- return [id, convertLink(link)];
37
+ return [cleanAndValidateLinkTypeId(id), convertLink(link)];
38
38
  })),
39
39
  actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map(([apiName, action]) => {
40
40
  return [apiName, convertAction(action)];
@@ -1 +1 @@
1
- {"version":3,"file":"convertOntologyDefinitionToWireBlockData.js","names":["OntologyEntityTypeEnum","convertAction","convertInterface","convertLink","convertObject","convertSpt","convertOntologyDefinitionToWireBlockData","ontology","objectTypes","Object","fromEntries","entries","OBJECT_TYPE","map","apiName","objectType","sharedPropertyTypes","SHARED_PROPERTY_TYPE","spt","sharedPropertyType","interfaceTypes","INTERFACE_TYPE","interfaceType","linkTypes","LINK_TYPE","id","link","actionTypes","ACTION_TYPE","action","blockPermissionInformation","filter","validation","restrictionStatus","hasRolesApplied","ontologyPackageRid","publicProject"],"sources":["convertOntologyDefinitionToWireBlockData.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 ActionTypePermissionInformation,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrOntologyBlockDataV2,\n OntologyIrSharedPropertyTypeBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport { type OntologyDefinition } from \"../../api/common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"../../api/common/OntologyEntityTypeEnum.js\";\nimport { convertAction } from \"../../api/defineOntology.js\";\nimport { convertInterface } from \"./convertInterface.js\";\nimport { convertLink } from \"./convertLink.js\";\nimport { convertObject } from \"./convertObject.js\";\nimport { convertSpt } from \"./convertSpt.js\";\n\nexport function convertOntologyDefinitionToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [id, convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE])\n .filter(([apiName, action]) => action.validation)\n .map<\n [string, ActionTypePermissionInformation]\n >(([apiName, action]) => {\n return [apiName, {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null,\n publicProject: false,\n },\n }];\n }),\n ),\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,SAASA,sBAAsB,QAAQ,4CAA4C;AACnF,SAASC,aAAa,QAAQ,6BAA6B;AAC3D,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,UAAU,QAAQ,iBAAiB;AAE5C,OAAO,SAASC,wCAAwCA,CACtDC,QAA4B,EACG;EAC/B,OAAQ;IACNC,WAAW,EAAEC,MAAM,CAACC,WAAW,CAC7BD,MAAM,CAACE,OAAO,CAACJ,QAAQ,CAACP,sBAAsB,CAACY,WAAW,CAAC,CAAC,CAACC,GAAG,CAE9D,CAAC,CAACC,OAAO,EAAEC,UAAU,CAAC,KAAK;MAC3B,OAAO,CAACD,OAAO,EAAEV,aAAa,CAACW,UAAU,CAAC,CAAC;IAC7C,CAAC,CACH,CAAC;IACDC,mBAAmB,EAAEP,MAAM,CAACC,WAAW,CACrCD,MAAM,CAACE,OAAO,CACZJ,QAAQ,CAACP,sBAAsB,CAACiB,oBAAoB,CACtD,CAAC,CACEJ,GAAG,CAAoD,CACtD,CAACC,OAAO,EAAEI,GAAG,CAAC,KACX,CAACJ,OAAO,EAAE;MAAEK,kBAAkB,EAAEd,UAAU,CAACa,GAAG;IAAE,CAAC,CAAC,CAC3D,CAAC;IACDE,cAAc,EAAEX,MAAM,CAACC,WAAW,CAChCD,MAAM,CAACE,OAAO,CACZJ,QAAQ,CAACP,sBAAsB,CAACqB,cAAc,CAChD,CAAC,CACER,GAAG,CACF,CAAC,CAACC,OAAO,EAAEQ,aAAa,CAAC,KAAK;MAC5B,OAAO,CAACR,OAAO,EAAE;QACfQ,aAAa,EAAEpB,gBAAgB,CAACoB,aAAa;MAC/C,CAAC,CAAC;IACJ,CACF,CACJ,CAAC;IACDC,SAAS,EAAEd,MAAM,CAACC,WAAW,CAC3BD,MAAM,CAACE,OAAO,CAACJ,QAAQ,CAACP,sBAAsB,CAACwB,SAAS,CAAC,CAAC,CAACX,GAAG,CAE5D,CAAC,CAACY,EAAE,EAAEC,IAAI,CAAC,KAAK;MAChB,OAAO,CAACD,EAAE,EAAEtB,WAAW,CAACuB,IAAI,CAAC,CAAC;IAChC,CAAC,CACH,CAAC;IACDC,WAAW,EAAElB,MAAM,CAACC,WAAW,CAC7BD,MAAM,CAACE,OAAO,CAACJ,QAAQ,CAACP,sBAAsB,CAAC4B,WAAW,CAAC,CAAC,CAACf,GAAG,CAE9D,CAAC,CAACC,OAAO,EAAEe,MAAM,CAAC,KAAK;MACvB,OAAO,CAACf,OAAO,EAAEb,aAAa,CAAC4B,MAAM,CAAC,CAAC;IACzC,CAAC,CACH,CAAC;IACDC,0BAA0B,EAAE;MAC1BH,WAAW,EAAElB,MAAM,CAACC,WAAW,CAC7BD,MAAM,CAACE,OAAO,CAACJ,QAAQ,CAACP,sBAAsB,CAAC4B,WAAW,CAAC,CAAC,CACzDG,MAAM,CAAC,CAAC,CAACjB,OAAO,EAAEe,MAAM,CAAC,KAAKA,MAAM,CAACG,UAAU,CAAC,CAChDnB,GAAG,CAEF,CAAC,CAACC,OAAO,EAAEe,MAAM,CAAC,KAAK;QACvB,OAAO,CAACf,OAAO,EAAE;UACfmB,iBAAiB,EAAE;YACjBC,eAAe,EAAE,IAAI;YACrBC,kBAAkB,EAAE,IAAI;YACxBC,aAAa,EAAE;UACjB;QACF,CAAC,CAAC;MACJ,CAAC,CACL,CAAC;MACDb,SAAS,EAAE,CAAC,CAAC;MACbf,WAAW,EAAE,CAAC;IAChB;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"convertOntologyDefinitionToWireBlockData.js","names":["OntologyEntityTypeEnum","cleanAndValidateLinkTypeId","convertAction","convertInterface","convertLink","convertObject","convertSpt","convertOntologyDefinitionToWireBlockData","ontology","objectTypes","Object","fromEntries","entries","OBJECT_TYPE","map","apiName","objectType","sharedPropertyTypes","SHARED_PROPERTY_TYPE","spt","sharedPropertyType","interfaceTypes","INTERFACE_TYPE","interfaceType","linkTypes","LINK_TYPE","id","link","actionTypes","ACTION_TYPE","action","blockPermissionInformation","filter","validation","restrictionStatus","hasRolesApplied","ontologyPackageRid","publicProject"],"sources":["convertOntologyDefinitionToWireBlockData.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 ActionTypePermissionInformation,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrInterfaceTypeBlockDataV2,\n OntologyIrLinkTypeBlockDataV2,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrOntologyBlockDataV2,\n OntologyIrSharedPropertyTypeBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport { type OntologyDefinition } from \"../../api/common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"../../api/common/OntologyEntityTypeEnum.js\";\nimport {\n cleanAndValidateLinkTypeId,\n convertAction,\n} from \"../../api/defineOntology.js\";\nimport { convertInterface } from \"./convertInterface.js\";\nimport { convertLink } from \"./convertLink.js\";\nimport { convertObject } from \"./convertObject.js\";\nimport { convertSpt } from \"./convertSpt.js\";\n\nexport function convertOntologyDefinitionToWireBlockData(\n ontology: OntologyDefinition,\n): OntologyIrOntologyBlockDataV2 {\n return ({\n objectTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.OBJECT_TYPE]).map<\n [string, OntologyIrObjectTypeBlockDataV2]\n >(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n }),\n ),\n sharedPropertyTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE],\n )\n .map<[string, OntologyIrSharedPropertyTypeBlockDataV2]>((\n [apiName, spt],\n ) => [apiName, { sharedPropertyType: convertSpt(spt) }]),\n ),\n interfaceTypes: Object.fromEntries(\n Object.entries(\n ontology[OntologyEntityTypeEnum.INTERFACE_TYPE],\n )\n .map<[string, OntologyIrInterfaceTypeBlockDataV2]>(\n ([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType),\n }];\n },\n ),\n ),\n linkTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map<\n [string, OntologyIrLinkTypeBlockDataV2]\n >(([id, link]) => {\n return [cleanAndValidateLinkTypeId(id), convertLink(link)];\n }),\n ),\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map<\n [string, OntologyIrActionTypeBlockDataV2]\n >(([apiName, action]) => {\n return [apiName, convertAction(action)];\n }),\n ),\n blockPermissionInformation: {\n actionTypes: Object.fromEntries(\n Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE])\n .filter(([apiName, action]) => action.validation)\n .map<\n [string, ActionTypePermissionInformation]\n >(([apiName, action]) => {\n return [apiName, {\n restrictionStatus: {\n hasRolesApplied: true,\n ontologyPackageRid: null,\n publicProject: false,\n },\n }];\n }),\n ),\n linkTypes: {},\n objectTypes: {},\n },\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ var consola = require('consola');
6
6
  var fs2 = require('fs/promises');
7
7
  var path2 = require('path');
8
8
  var invariant5 = require('tiny-invariant');
9
+ var uuid = require('uuid');
9
10
  var yargs = require('yargs');
10
11
  var helpers = require('yargs/helpers');
11
12
  var fs = require('fs');
@@ -734,6 +735,19 @@ function convertLink(linkType) {
734
735
  }]
735
736
  }
736
737
  };
738
+ } else if ("intermediaryObjectType" in linkType) {
739
+ definition = {
740
+ type: "intermediary",
741
+ intermediary: {
742
+ objectTypeAToBLinkMetadata: linkType.many.metadata,
743
+ objectTypeBToALinkMetadata: linkType.toMany.metadata,
744
+ objectTypeRidA: linkType.many.object.apiName,
745
+ objectTypeRidB: linkType.toMany.object.apiName,
746
+ intermediaryObjectTypeRid: linkType.intermediaryObjectType.apiName,
747
+ aToIntermediaryLinkTypeRid: cleanAndValidateLinkTypeId(linkType.many.linkToIntermediary.apiName),
748
+ intermediaryToBLinkTypeRid: cleanAndValidateLinkTypeId(linkType.toMany.linkToIntermediary.apiName)
749
+ }
750
+ };
737
751
  } else {
738
752
  definition = {
739
753
  type: "manyToMany",
@@ -766,7 +780,7 @@ function convertLink(linkType) {
766
780
  }
767
781
  };
768
782
  datasource = {
769
- rid: "ri.ontology.main.datasource.link-".concat(linkType.apiName),
783
+ datasourceName: linkType.apiName,
770
784
  datasource: {
771
785
  type: "dataset",
772
786
  dataset: {
@@ -1132,7 +1146,7 @@ function convertOntologyDefinitionToWireBlockData(ontology) {
1132
1146
  }];
1133
1147
  })),
1134
1148
  linkTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.LINK_TYPE]).map(([id, link]) => {
1135
- return [id, convertLink(link)];
1149
+ return [cleanAndValidateLinkTypeId(id), convertLink(link)];
1136
1150
  })),
1137
1151
  actionTypes: Object.fromEntries(Object.entries(ontology[OntologyEntityTypeEnum.ACTION_TYPE]).map(([apiName, action]) => {
1138
1152
  return [apiName, convertAction(action)];
@@ -1228,7 +1242,7 @@ function updateOntology(entity) {
1228
1242
  }
1229
1243
  ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName].push(entity);
1230
1244
  }
1231
- async function defineOntology(ns, body, outputDir, dependencyFile) {
1245
+ async function defineOntology(ns, body, outputDir, dependencyFile, uniquenessKey) {
1232
1246
  namespace = ns;
1233
1247
  dependencies = {};
1234
1248
  ontologyDefinition = {
@@ -1334,7 +1348,7 @@ function buildDatasource(apiName, definition, classificationMarkingGroupName, ma
1334
1348
  } : void 0
1335
1349
  } : void 0;
1336
1350
  return {
1337
- rid: "ri.ontology.main.datasource.".concat(apiName),
1351
+ datasourceName: apiName,
1338
1352
  datasource: definition,
1339
1353
  editsConfiguration: {
1340
1354
  onlyAllowPrivilegedEdits: false
@@ -1690,7 +1704,7 @@ function addNamespaceIfNone(apiName) {
1690
1704
  // src/cli/main.ts
1691
1705
  var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
1692
1706
  async function main(args = process.argv) {
1693
- const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.13.0-beta.13").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
1707
+ const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.13.0-beta.14").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
1694
1708
  input: {
1695
1709
  alias: "i",
1696
1710
  describe: "Input file",
@@ -1733,6 +1747,11 @@ async function main(args = process.argv) {
1733
1747
  describe: "File to write dependencies to",
1734
1748
  type: "string",
1735
1749
  coerce: path2__namespace.resolve
1750
+ },
1751
+ randomnessKey: {
1752
+ describe: "Value used to assure uniqueness of entities",
1753
+ type: "string",
1754
+ coerce: path2__namespace.resolve
1736
1755
  }
1737
1756
  }).parseAsync();
1738
1757
  let apiNamespace = "";
@@ -1742,6 +1761,9 @@ async function main(args = process.argv) {
1742
1761
  !apiNamespaceRegex.test(apiNamespace) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "API namespace is invalid! It is expected to conform to ^[a-z0-9-]+(.[a-z0-9-]+)*.$") : invariant5__default.default(false) : void 0;
1743
1762
  }
1744
1763
  consola.consola.info(`Loading ontology from ${commandLineOpts.input}`);
1764
+ if (commandLineOpts.randomnessKey !== void 0) {
1765
+ !uuid.validate(commandLineOpts.randomnessKey) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Supplied randomness key is not a uuid and shouldn't be used as a uniqueness guarantee") : invariant5__default.default(false) : void 0;
1766
+ }
1745
1767
  const ontologyIr = await loadOntology(commandLineOpts.input, apiNamespace, commandLineOpts.outputDir, commandLineOpts.dependencies);
1746
1768
  consola.consola.info(`Saving ontology to ${commandLineOpts.output}`);
1747
1769
  await fs2__namespace.writeFile(commandLineOpts.output, JSON.stringify(ontologyIr, null, 2));
@@ -2822,15 +2844,30 @@ function defineLink(linkDefinition) {
2822
2844
  const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.[linkDefinition.one.object.primaryKeyPropertyApiName].type;
2823
2845
  !typesMatch ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant5__default.default(false) : void 0;
2824
2846
  }
2825
- const fullLinkDefinition = "one" in linkDefinition ? {
2826
- ...linkDefinition,
2827
- one: convertUserOneToManyLinkDefinition(linkDefinition.one),
2828
- toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)
2829
- } : {
2830
- ...linkDefinition,
2831
- many: convertUserManyToManyLinkDefinition(linkDefinition.many),
2832
- toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)
2833
- };
2847
+ if ("intermediaryObjectType" in linkDefinition) {
2848
+ !("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" ? invariant5__default.default(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}`) : invariant5__default.default(false) : void 0;
2849
+ !("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" ? invariant5__default.default(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}`) : invariant5__default.default(false) : void 0;
2850
+ }
2851
+ let fullLinkDefinition;
2852
+ if ("one" in linkDefinition) {
2853
+ fullLinkDefinition = {
2854
+ ...linkDefinition,
2855
+ one: convertUserOneToManyLinkDefinition(linkDefinition.one),
2856
+ toMany: convertUserOneToManyLinkDefinition(linkDefinition.toMany)
2857
+ };
2858
+ } else if ("intermediaryObjectType" in linkDefinition) {
2859
+ fullLinkDefinition = {
2860
+ ...linkDefinition,
2861
+ many: convertUserIntermediaryLinkDefinition(linkDefinition.many),
2862
+ toMany: convertUserIntermediaryLinkDefinition(linkDefinition.toMany)
2863
+ };
2864
+ } else {
2865
+ fullLinkDefinition = {
2866
+ ...linkDefinition,
2867
+ many: convertUserManyToManyLinkDefinition(linkDefinition.many),
2868
+ toMany: convertUserManyToManyLinkDefinition(linkDefinition.toMany)
2869
+ };
2870
+ }
2834
2871
  const linkType = {
2835
2872
  cardinality: "one" in linkDefinition ? linkDefinition.cardinality : void 0,
2836
2873
  ...fullLinkDefinition,
@@ -2851,6 +2888,12 @@ function convertUserManyToManyLinkDefinition(manyToMany) {
2851
2888
  metadata: convertLinkTypeMetadata(manyToMany.metadata)
2852
2889
  };
2853
2890
  }
2891
+ function convertUserIntermediaryLinkDefinition(intermediary) {
2892
+ return {
2893
+ ...intermediary,
2894
+ metadata: convertLinkTypeMetadata(intermediary.metadata)
2895
+ };
2896
+ }
2854
2897
  function convertLinkTypeMetadata(metadata) {
2855
2898
  return {
2856
2899
  apiName: metadata.apiName,