@osdk/maker 0.9.0-rc.32 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,95 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 25fd9f0: Updating package.json to have better entry points to support react native bundlers.
|
|
8
|
+
- f0b519d: Upgrade to vitest 3 and vite 6
|
|
9
|
+
- 1812118: Add geotime support for OSDK.
|
|
10
|
+
- bc1761c: Update platform API dependencies.
|
|
11
|
+
- bb8b219: Use new external packages instead of the internal ones.
|
|
12
|
+
- 44e62f6: Updating fetch for auth and other packages.
|
|
13
|
+
- 91cfa3a: Fixing url parsing for client.
|
|
14
|
+
- c9e855d: Allowing interfaces to extend other interfaces for ontology as code.
|
|
15
|
+
- 94463b6: Support objects as code
|
|
16
|
+
- 9d35a1f: Remove unused imports
|
|
17
|
+
- 8d8bebb: Fix nullability
|
|
18
|
+
- 7a95618: Generate new OMS APIs
|
|
19
|
+
- c9da74c: Improves code quality by fixing linting errors
|
|
20
|
+
- abfe4b3: Add support for reading struct properties.
|
|
21
|
+
- caf1abc: Support generating linked products for marketplace
|
|
22
|
+
- cd8d657: Support importing foreign SPTs
|
|
23
|
+
- b8a1a58: Add nullability to markings because of course they need to be nullable. This sucks in the data model, I should talk to the ontology team about this.
|
|
24
|
+
- b0544d4: Add additional marking configuration
|
|
25
|
+
- 9018dc2: Updating platform api dependencies.
|
|
26
|
+
- f569124: Add media reference to maker
|
|
27
|
+
- 0a4f131: Fix value types so they actually serialize correctly.
|
|
28
|
+
- 8e5e49a: Add optional link constraints
|
|
29
|
+
- 6b6c8a1: Updates gateway endpoints and changes fetchContents for attachments to return a response
|
|
30
|
+
- 2b35ed4: Structs in maker package
|
|
31
|
+
- 09eaf24: Update to latest platform sdks
|
|
32
|
+
- 06e66dc: Making interface type status configurable
|
|
33
|
+
- d665147: Update platform sdk deps
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- Updated dependencies [966d408]
|
|
38
|
+
- Updated dependencies [cddc196]
|
|
39
|
+
- Updated dependencies [d794c19]
|
|
40
|
+
- Updated dependencies [05febf4]
|
|
41
|
+
- Updated dependencies [55c05f2]
|
|
42
|
+
- Updated dependencies [0dc40b0]
|
|
43
|
+
- Updated dependencies [25fd9f0]
|
|
44
|
+
- Updated dependencies [11a05cc]
|
|
45
|
+
- Updated dependencies [7865cb6]
|
|
46
|
+
- Updated dependencies [9c4efe6]
|
|
47
|
+
- Updated dependencies [3ea2e79]
|
|
48
|
+
- Updated dependencies [1812118]
|
|
49
|
+
- Updated dependencies [bc1761c]
|
|
50
|
+
- Updated dependencies [656f975]
|
|
51
|
+
- Updated dependencies [f1145ff]
|
|
52
|
+
- Updated dependencies [f446d0c]
|
|
53
|
+
- Updated dependencies [c80ca45]
|
|
54
|
+
- Updated dependencies [bb8b219]
|
|
55
|
+
- Updated dependencies [03f95eb]
|
|
56
|
+
- Updated dependencies [1a89f23]
|
|
57
|
+
- Updated dependencies [9d35a1f]
|
|
58
|
+
- Updated dependencies [c691c8b]
|
|
59
|
+
- Updated dependencies [749cf69]
|
|
60
|
+
- Updated dependencies [f03e39f]
|
|
61
|
+
- Updated dependencies [11088aa]
|
|
62
|
+
- Updated dependencies [72c1905]
|
|
63
|
+
- Updated dependencies [9298f75]
|
|
64
|
+
- Updated dependencies [f34b3d4]
|
|
65
|
+
- Updated dependencies [acbfab9]
|
|
66
|
+
- Updated dependencies [62c1d63]
|
|
67
|
+
- Updated dependencies [3c9ac22]
|
|
68
|
+
- Updated dependencies [1591f04]
|
|
69
|
+
- Updated dependencies [03e1941]
|
|
70
|
+
- Updated dependencies [abfe4b3]
|
|
71
|
+
- Updated dependencies [b79becf]
|
|
72
|
+
- Updated dependencies [27866a8]
|
|
73
|
+
- Updated dependencies [e5fe7c0]
|
|
74
|
+
- Updated dependencies [1b2e8c9]
|
|
75
|
+
- Updated dependencies [9f3807c]
|
|
76
|
+
- Updated dependencies [0c56d21]
|
|
77
|
+
- Updated dependencies [e548b9b]
|
|
78
|
+
- Updated dependencies [ee6224b]
|
|
79
|
+
- Updated dependencies [1dc0228]
|
|
80
|
+
- Updated dependencies [6c60414]
|
|
81
|
+
- Updated dependencies [5fe2c8d]
|
|
82
|
+
- Updated dependencies [d3b3f35]
|
|
83
|
+
- Updated dependencies [785f663]
|
|
84
|
+
- Updated dependencies [6b6c8a1]
|
|
85
|
+
- Updated dependencies [c537e2d]
|
|
86
|
+
- Updated dependencies [73fa373]
|
|
87
|
+
- Updated dependencies [8e6a5f4]
|
|
88
|
+
- Updated dependencies [2d5e648]
|
|
89
|
+
- Updated dependencies [31e7d70]
|
|
90
|
+
- Updated dependencies [f19da8e]
|
|
91
|
+
- @osdk/api@2.1.0
|
|
92
|
+
|
|
3
93
|
## 0.9.0-rc.32
|
|
4
94
|
|
|
5
95
|
### Patch Changes
|
|
@@ -26,7 +26,7 @@ import { defineOntology } from "../api/defineOntology.js";
|
|
|
26
26
|
import { defineSharedPropertyType } from "../api/defineSpt.js";
|
|
27
27
|
const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
28
28
|
export default async function main(args = process.argv) {
|
|
29
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.9.0
|
|
29
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.9.0" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
30
30
|
input: {
|
|
31
31
|
alias: "i",
|
|
32
32
|
describe: "Input file",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineInterface","defineObject","defineOntology","defineSharedPropertyType","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","valueTypesOutput","parseAsync","length","slice","env","NODE_ENV","test","info","ontology","loadOntology","writeFile","JSON","stringify","valueType","valueTypes","loadOntologyViaJiti","Object","assign","globalThis","jiti_","jiti","cwd","debug","loadOntologyViaTsNode","tsNode","tsNodeService","register","transpileOnly","compilerOptions","module","target","esm","enabled","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 { defineInterface } from \"../api/defineInterface.js\";\nimport { defineObject } from \"../api/defineObject.js\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nimport { defineSharedPropertyType } from \"../api/defineSpt.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 } = 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 valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\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 const ontology = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(ontology.ontology, null, 2),\n );\n // No point in generating block if there aren't any value types\n if (ontology.valueType.valueTypes.length > 0) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(ontology.valueType, null, 2),\n );\n }\n}\n\nasync function loadOntologyViaJiti(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const jiti_ = await import(\"jiti\");\n const jiti = (jiti_.default as any as typeof jiti_[\"default\"][\"default\"])(\n process.cwd(),\n { debug: true },\n );\n\n return defineOntology(\"\", async () => await jiti(input));\n}\n\nasync function loadOntologyViaTsNode(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const tsNode = await import(\"ts-node\");\n const tsNodeService = tsNode.register({\n transpileOnly: true,\n compilerOptions: {\n module: \"commonjs\",\n target: \"esnext\",\n },\n esm: true,\n });\n\n tsNodeService.enabled(true);\n\n const q = await import(input);\n return q;\n}\n\nasync function loadOntology(input: string, apiNamespace: string) {\n // Object.assign(globalThis, {\n // defineInterface,\n // defineLink,\n // defineObject,\n // defineSharedPropertyType,\n // });\n\n const q = await defineOntology(apiNamespace, async () => await import(input));\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,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,wBAAwB,QAAQ,qBAAqB;AAE9D,MAAMC,iBAAiB,GAAG,+BAA+B;AAEzD,eAAe,eAAeC,IAAIA,CAChCC,IAAc,GAAGC,OAAO,CAACC,IAAI,EACd;EACf,MAAMC,eAML,GAAG,MAAMX,KAAK,CAACC,OAAO,CAACO,IAAI,CAAC,CAAC,CAC3BI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineInterface","defineObject","defineOntology","defineSharedPropertyType","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","valueTypesOutput","parseAsync","length","slice","env","NODE_ENV","test","info","ontology","loadOntology","writeFile","JSON","stringify","valueType","valueTypes","loadOntologyViaJiti","Object","assign","globalThis","jiti_","jiti","cwd","debug","loadOntologyViaTsNode","tsNode","tsNodeService","register","transpileOnly","compilerOptions","module","target","esm","enabled","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 { defineInterface } from \"../api/defineInterface.js\";\nimport { defineObject } from \"../api/defineObject.js\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nimport { defineSharedPropertyType } from \"../api/defineSpt.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 } = 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 valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\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 const ontology = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(ontology.ontology, null, 2),\n );\n // No point in generating block if there aren't any value types\n if (ontology.valueType.valueTypes.length > 0) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(ontology.valueType, null, 2),\n );\n }\n}\n\nasync function loadOntologyViaJiti(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const jiti_ = await import(\"jiti\");\n const jiti = (jiti_.default as any as typeof jiti_[\"default\"][\"default\"])(\n process.cwd(),\n { debug: true },\n );\n\n return defineOntology(\"\", async () => await jiti(input));\n}\n\nasync function loadOntologyViaTsNode(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const tsNode = await import(\"ts-node\");\n const tsNodeService = tsNode.register({\n transpileOnly: true,\n compilerOptions: {\n module: \"commonjs\",\n target: \"esnext\",\n },\n esm: true,\n });\n\n tsNodeService.enabled(true);\n\n const q = await import(input);\n return q;\n}\n\nasync function loadOntology(input: string, apiNamespace: string) {\n // Object.assign(globalThis, {\n // defineInterface,\n // defineLink,\n // defineObject,\n // defineSharedPropertyType,\n // });\n\n const q = await defineOntology(apiNamespace, async () => await import(input));\n return q;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -507,7 +507,7 @@ function validateInterfaceImplProperty(spt, mappedObjectProp, object) {
|
|
|
507
507
|
// src/cli/main.ts
|
|
508
508
|
var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
509
509
|
async function main(args = process.argv) {
|
|
510
|
-
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.9.0
|
|
510
|
+
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.9.0").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
|
|
511
511
|
input: {
|
|
512
512
|
alias: "i",
|
|
513
513
|
describe: "Input file",
|
package/build/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/defineOntology.ts","../../src/api/defineSpt.ts","../../src/api/defineInterface.ts","../../src/api/defineObject.ts","../../src/cli/main.ts","../../src/api/defineImportSpt.ts","../../src/api/defineInterfaceLinkConstraint.ts","../../src/api/defineValueType.ts"],"names":["invariant","apiName","yargs","hideBin","path","consola","fs"],"mappings":"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","file":"index.cjs","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\n/*\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\n/** @internal */\nexport let ontologyDefinition;\n\n/** @internal */\nexport let namespace;\nexport async function defineOntology(ns, body) {\n namespace = ns;\n ontologyDefinition = {\n actionTypes: {},\n objectTypes: {},\n queryTypes: {},\n interfaceTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n importedTypes: {\n sharedPropertyTypes: []\n }\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected error while processing the body of the ontology\", e);\n throw e;\n }\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition)\n };\n}\nfunction convertOntologyToValueTypeIr(ontology) {\n return {\n valueTypes: Object.values(ontology.valueTypes).map(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues\n }))\n }))\n };\n}\nfunction convertToWireOntologyIr(ontology) {\n return {\n blockData: {\n objectTypes: Object.fromEntries(Object.entries(ontology.objectTypes).map(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n })),\n sharedPropertyTypes: Object.fromEntries(Object.entries(ontology.sharedPropertyTypes).map(([apiName, spt]) => [apiName, {\n sharedPropertyType: convertSpt(spt)\n }])),\n interfaceTypes: Object.fromEntries(Object.entries(ontology.interfaceTypes).map(([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType)\n }];\n })),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {}\n }\n },\n importedTypes: ontology.importedTypes\n };\n}\nfunction convertObject(objectType) {\n const propertyDatasource = {};\n (objectType.properties ?? []).forEach(property => {\n propertyDatasource[property.apiName] = {\n type: \"column\",\n column: property.apiName\n };\n });\n const datasource = {\n rid: \"ri.ontology.main.datasource.\".concat(objectType.apiName),\n datasource: {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: propertyDatasource\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: false\n };\n const implementations = objectType.implementsInterfaces ?? [];\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? {\n locator: \"cube\",\n color: \"#2D72D2\"\n }\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\"\n },\n primaryKeys: objectType.primaryKeys,\n propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: objectType.status ?? {\n type: \"active\",\n active: {}\n },\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(impl.propertyMapping.map(mapping => [namespace + mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo\n }]))\n })),\n allImplementsInterfaces: {}\n },\n datasources: [datasource],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false\n }\n };\n}\nfunction convertProperty(property) {\n const output = {\n apiName: property.apiName,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\"\n },\n indexedForSearch: property.indexedForSearch ?? true,\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: convertType(property.type),\n typeClasses: property.typeClasses ?? [],\n status: property.status ?? {\n type: \"active\",\n active: {}\n },\n inlineAction: undefined,\n dataConstraints: property.dataConstraints,\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined\n };\n return output;\n}\nfunction convertInterface(interfaceType) {\n return {\n ...interfaceType,\n properties: Object.values(interfaceType.properties).map(spt => convertSpt(spt)),\n // these are omitted from our internal types but we need to re-add them for the final json\n allExtendsInterfaces: [],\n allLinks: [],\n allProperties: []\n };\n}\nexport function dumpOntologyFullMetadata() {\n return convertToWireOntologyIr(ontologyDefinition);\n}\nexport function dumpValueTypeWireType() {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\nfunction convertSpt({\n type,\n array,\n description,\n apiName,\n displayName,\n gothamMapping,\n typeClasses,\n valueType\n}) {\n const dataConstraint = typeof type === \"object\" && type.type === \"marking\" ? {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noEmptyCollections: true,\n noNulls: true\n }\n } : undefined;\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: \"NORMAL\",\n description\n },\n type: array ? {\n type: \"array\",\n array: {\n subtype: convertType(type)\n }\n } : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n provenance: undefined,\n typeClasses: typeClasses ?? [],\n valueType: valueType\n };\n}\nfunction convertType(type) {\n switch (true) {\n case typeof type === \"object\" && \"markingType\" in type:\n return {\n \"type\": \"marking\",\n marking: {\n markingType: type.markingType\n }\n };\n case typeof type === \"object\" && \"structDefinition\" in type:\n const structFields = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? []\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n }\n }\n structFields.push(field);\n }\n return {\n type: \"struct\",\n struct: {\n structFields\n }\n };\n case type === \"geopoint\":\n return {\n type: \"geohash\",\n geohash: {}\n };\n case type === \"decimal\":\n return {\n type,\n [type]: {\n precision: undefined,\n scale: undefined\n }\n };\n case type === \"string\":\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true\n }\n };\n case type === \"mediaReference\":\n return {\n type: type,\n mediaReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nfunction distributeTypeHelper(type) {\n return {\n type,\n [type]: {}\n }; // any cast to match conditional return type\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nconst defaultTypeClasses = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\"\n}, {\n kind: \"render_hint\",\n name: \"SORTABLE\"\n}];\nexport function defineSharedPropertyType(opts) {\n const apiName = namespace + opts.apiName;\n !(ontologyDefinition.sharedPropertyTypes[apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Shared property type ${apiName} already exists`) : invariant(false) : void 0;\n return ontologyDefinition.sharedPropertyTypes[apiName] = {\n ...opts,\n apiName,\n nonNameSpacedApiName: opts.apiName,\n displayName: opts.displayName ?? opts.apiName,\n // This way the non-namespaced api name is the display name (maybe not ideal)\n typeClasses: opts.typeClasses ?? defaultTypeClasses\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport { defineSharedPropertyType } from \"./defineSpt.js\";\nexport function defineInterface(opts) {\n const apiName = namespace + opts.apiName;\n !(ontologyDefinition.interfaceTypes[apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Interface ${apiName} already exists`) : invariant(false) : void 0;\n const properties = Object.fromEntries(Object.entries(opts.properties ?? {}).map(([apiName, type]) => {\n if (typeof type === \"string\" || typeof type === \"object\" && !(\"apiName\" in type)) {\n !isPropertyTypeType(type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Invalid data type ${JSON.stringify(type)} for property ${apiName} on InterfaceType ${apiName}`) : invariant(false) : void 0;\n const spt = defineSharedPropertyType({\n apiName,\n displayName: apiName,\n type,\n array: false\n });\n return [apiName, spt];\n } else {\n const unNamespacedTypeApiName = type.apiName.slice(type.apiName.lastIndexOf(\".\") + 1);\n !(namespace + apiName === type.apiName || apiName === unNamespacedTypeApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `property key and it's apiName must be identical. ${JSON.stringify({\n key: apiName,\n apiName: type.apiName\n })}`) : invariant(false) : void 0;\n return [apiName, type];\n }\n }));\n let extendsInterfaces = [];\n if (opts.extends) {\n if (typeof opts.extends === \"string\") {\n extendsInterfaces = [opts.extends];\n } else if (Array.isArray(opts.extends) && opts.extends.every(item => typeof item === \"string\")) {\n extendsInterfaces = opts.extends;\n } else if (opts.extends.apiName !== undefined) {\n extendsInterfaces = [opts.extends.apiName];\n } else {\n extendsInterfaces = opts.extends.map(item => item.apiName);\n }\n }\n const status = mapSimplifiedStatusToInterfaceTypeStatus(opts.status ?? {\n type: \"active\"\n });\n !(status.type !== \"deprecated\" || status.deprecated.message && status.deprecated.deadline) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status must include message and deadline properties.`) : invariant(false) : void 0;\n const a = {\n apiName,\n displayMetadata: {\n displayName: opts.displayName ?? opts.apiName,\n description: opts.description ?? opts.displayName ?? opts.apiName,\n icon: opts.icon !== undefined ? {\n type: \"blueprint\",\n blueprint: {\n color: opts.icon.color,\n locator: opts.icon.locator\n }\n } : undefined\n },\n extendsInterfaces: extendsInterfaces,\n links: [],\n properties,\n status\n };\n return ontologyDefinition.interfaceTypes[apiName] = a;\n}\nfunction isPropertyTypeType(v) {\n return v === \"boolean\" || v === \"byte\" || v === \"date\" || v === \"decimal\" || v === \"double\" || v === \"float\" || v === \"geopoint\" || v === \"geoshape\" || v === \"integer\" || v === \"long\" || typeof v === \"object\" && v.type === \"marking\" || v === \"short\" || v === \"string\" || v === \"timestamp\";\n}\nfunction mapSimplifiedStatusToInterfaceTypeStatus(status) {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n case \"active\":\n return {\n type: \"active\",\n active: {}\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {}\n };\n default:\n throw new Error(`Invalid status type: ${status.type}`);\n }\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nexport function defineObject(objectDef) {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = (objectDef.properties ?? []).map(val => val.apiName);\n if (ontologyDefinition.objectTypes[apiName] !== undefined) {\n throw new Error(`Object type with apiName ${objectDef.apiName} is already defined`);\n }\n !propertyApiNames.includes(objectDef.titlePropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`) : invariant(false) : void 0;\n !(objectDef.primaryKeys.length !== 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${objectDef.apiName} does not have any primary keys, objects must have at least one primary key`) : invariant(false) : void 0;\n const nonExistentPrimaryKeys = objectDef.primaryKeys.filter(primaryKey => !objectDef.properties?.map(val => val.apiName).includes(primaryKey));\n !(nonExistentPrimaryKeys.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key properties ${nonExistentPrimaryKeys} do not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => interfaceImpl.implements.properties[interfaceProperty] === undefined).map(interfaceProp => ({\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp} referenced in ${objectDef.apiName} object does not exist`\n }));\n const interfaceToObjectProperties = Object.fromEntries(interfaceImpl.propertyMapping.map(mapping => [mapping.interfaceProperty, mapping.mapsTo]));\n const validateProperty = interfaceProp => {\n if (interfaceProp[1].nonNameSpacedApiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1], interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp[1].nonNameSpacedApiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const baseValidations = Object.entries(interfaceImpl.implements.properties).map(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces.flatMap(interfaceApiName => Object.entries(ontologyDefinition.interfaceTypes[interfaceApiName].properties).map(validateProperty));\n const allFailedValidations = baseValidations.concat(extendsValidations, nonExistentInterfaceProperties).filter(val => val.type === \"invalid\");\n !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\")) : invariant(false) : void 0;\n });\n ontologyDefinition.objectTypes[apiName] = {\n ...objectDef,\n apiName: apiName\n };\n return {\n ...objectDef,\n apiName: apiName\n };\n}\nfunction formatValidationErrors(error) {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(spt, mappedObjectProp, object) {\n const objProp = object.properties?.find(prop => prop.apiName === mappedObjectProp);\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason: `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`\n };\n }\n if (spt.type !== objProp?.type) {\n return {\n type: \"invalid\",\n reason: `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`\n };\n }\n return {\n type: \"valid\"\n };\n}","/*\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 { defineInterface } from \"../api/defineInterface.js\";\nimport { defineObject } from \"../api/defineObject.js\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nimport { defineSharedPropertyType } from \"../api/defineSpt.js\";\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nexport default async function main(args = process.argv) {\n const commandLineOpts = await yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().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 valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve\n }\n }).parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = commandLineOpts.apiNamespace.slice(-1) !== \".\" ? commandLineOpts.apiNamespace + \".\" : commandLineOpts.apiNamespace;\n !(apiNamespace.length < 1024) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is too long.\") : invariant(false) : void 0;\n !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;\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n const ontology = await loadOntology(commandLineOpts.input, apiNamespace);\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(commandLineOpts.output, JSON.stringify(ontology.ontology, null, 2));\n // No point in generating block if there aren't any value types\n if (ontology.valueType.valueTypes.length > 0) {\n await fs.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(ontology.valueType, null, 2));\n }\n}\nasync function loadOntologyViaJiti(input) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType\n });\n const jiti_ = await import(\"jiti\");\n const jiti = jiti_.default(process.cwd(), {\n debug: true\n });\n return defineOntology(\"\", async () => await jiti(input));\n}\nasync function loadOntologyViaTsNode(input) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType\n });\n const tsNode = await import(\"ts-node\");\n const tsNodeService = tsNode.register({\n transpileOnly: true,\n compilerOptions: {\n module: \"commonjs\",\n target: \"esnext\"\n },\n esm: true\n });\n tsNodeService.enabled(true);\n const q = await import(input);\n return q;\n}\nasync function loadOntology(input, apiNamespace) {\n // Object.assign(globalThis, {\n // defineInterface,\n // defineLink,\n // defineObject,\n // defineSharedPropertyType,\n // });\n\n const q = await defineOntology(apiNamespace, async () => await import(input));\n return q;\n}","/*\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 invariant from \"tiny-invariant\";\nimport { ontologyDefinition } from \"./defineOntology.js\";\n/**\n * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation\n */\nexport function importSharedPropertyType(opts) {\n const {\n apiName,\n packageName,\n typeHint\n } = opts;\n if (packageName !== undefined) {\n ontologyDefinition.importedTypes.sharedPropertyTypes.push({\n apiName,\n packageName\n });\n !!packageName.endsWith(\".\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name format invalid ends with period\") : invariant(false) : void 0;\n !(packageName.match(\"[A-Z]\") == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name includes upper case characters\") : invariant(false) : void 0;\n return {\n apiName: packageName + \".\" + apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName\n };\n }\n return {\n apiName: apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace } from \"./defineOntology.js\";\nexport function defineInterfaceLinkConstraint(linkDef) {\n const fromLinkMeta = getLinkMeta(linkDef);\n !(linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName) == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`) : invariant(false) : void 0;\n linkDef.from.links.push({\n cardinality: linkDef.toMany ? \"MANY\" : \"SINGLE\",\n linkedEntityTypeId: getLinkedType(linkDef.toMany ?? linkDef.toOne),\n metadata: fromLinkMeta,\n required: linkDef.required ?? true\n });\n}\nfunction getLinkedType(t) {\n return {\n type: \"interfaceType\",\n interfaceType: typeof t === \"string\" ? t : t.apiName\n };\n}\nfunction getLinkMeta(meta) {\n return typeof meta === \"string\" ? withDefaults({\n apiName: namespace + meta\n }) : withDefaults(meta);\n}\nfunction withDefaults({\n apiName,\n description,\n displayName\n}) {\n return {\n apiName: namespace + apiName,\n displayName: displayName ?? apiName,\n description: description ?? displayName ?? apiName\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { ontologyDefinition } from \"./defineOntology.js\";\nfunction convertValueTypeTypeToBaseType(valueType) {\n if (typeof valueType === \"string\") {}\n switch (true) {\n case typeof valueType === \"object\" && valueType.type === \"array\":\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"struct\":\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType)\n }))\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"map\":\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"optional\":\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType)\n }\n };\n case typeof valueType === \"string\":\n return {\n type: valueType,\n [valueType]: {}\n };\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\nexport function defineValueType(opts) {\n const {\n apiName,\n displayName,\n description,\n type,\n version\n } = opts;\n const semverValidation = /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n !semverValidation.test(version) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Version is not a valid semver\") : invariant(false) : void 0;\n const typeName = typeof type.type === \"string\" ? type.type : type.type.type === \"struct\" ? \"structV2\" : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints ? type.constraints.map(constraint => {\n const output = {\n constraint: {\n type: typeName,\n [typeName]: constraint.constraint\n },\n failureMessage: constraint.failureMessage\n };\n return {\n constraint: output\n };\n }) : [];\n const baseType = convertValueTypeTypeToBaseType(type.type);\n const vt = {\n apiName,\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\"\n },\n status: {\n type: \"active\",\n active: {}\n },\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: []\n };\n if (ontologyDefinition.valueTypes[apiName] === undefined) {\n ontologyDefinition.valueTypes[apiName] = [];\n }\n ontologyDefinition.valueTypes[apiName].push(vt);\n return vt;\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/api/defineOntology.ts","../../src/api/defineSpt.ts","../../src/api/defineInterface.ts","../../src/api/defineObject.ts","../../src/cli/main.ts","../../src/api/defineImportSpt.ts","../../src/api/defineInterfaceLinkConstraint.ts","../../src/api/defineValueType.ts"],"names":["invariant","apiName","yargs","hideBin","path","consola","fs"],"mappings":"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","file":"index.cjs","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\n/*\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\n/** @internal */\nexport let ontologyDefinition;\n\n/** @internal */\nexport let namespace;\nexport async function defineOntology(ns, body) {\n namespace = ns;\n ontologyDefinition = {\n actionTypes: {},\n objectTypes: {},\n queryTypes: {},\n interfaceTypes: {},\n sharedPropertyTypes: {},\n valueTypes: {},\n importedTypes: {\n sharedPropertyTypes: []\n }\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected error while processing the body of the ontology\", e);\n throw e;\n }\n return {\n ontology: convertToWireOntologyIr(ontologyDefinition),\n valueType: convertOntologyToValueTypeIr(ontologyDefinition)\n };\n}\nfunction convertOntologyToValueTypeIr(ontology) {\n return {\n valueTypes: Object.values(ontology.valueTypes).map(definitions => ({\n metadata: {\n apiName: definitions[0].apiName,\n displayMetadata: definitions[0].displayMetadata,\n status: definitions[0].status\n },\n versions: definitions.map(definition => ({\n version: definition.version,\n baseType: definition.baseType,\n constraints: definition.constraints,\n exampleValues: definition.exampleValues\n }))\n }))\n };\n}\nfunction convertToWireOntologyIr(ontology) {\n return {\n blockData: {\n objectTypes: Object.fromEntries(Object.entries(ontology.objectTypes).map(([apiName, objectType]) => {\n return [apiName, convertObject(objectType)];\n })),\n sharedPropertyTypes: Object.fromEntries(Object.entries(ontology.sharedPropertyTypes).map(([apiName, spt]) => [apiName, {\n sharedPropertyType: convertSpt(spt)\n }])),\n interfaceTypes: Object.fromEntries(Object.entries(ontology.interfaceTypes).map(([apiName, interfaceType]) => {\n return [apiName, {\n interfaceType: convertInterface(interfaceType)\n }];\n })),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {}\n }\n },\n importedTypes: ontology.importedTypes\n };\n}\nfunction convertObject(objectType) {\n const propertyDatasource = {};\n (objectType.properties ?? []).forEach(property => {\n propertyDatasource[property.apiName] = {\n type: \"column\",\n column: property.apiName\n };\n });\n const datasource = {\n rid: \"ri.ontology.main.datasource.\".concat(objectType.apiName),\n datasource: {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: propertyDatasource\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: false\n };\n const implementations = objectType.implementsInterfaces ?? [];\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? {\n locator: \"cube\",\n color: \"#2D72D2\"\n }\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\"\n },\n primaryKeys: objectType.primaryKeys,\n propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: objectType.status ?? {\n type: \"active\",\n active: {}\n },\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n properties: Object.fromEntries(impl.propertyMapping.map(mapping => [namespace + mapping.interfaceProperty, {\n propertyTypeRid: mapping.mapsTo\n }]))\n })),\n allImplementsInterfaces: {}\n },\n datasources: [datasource],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false\n }\n };\n}\nfunction convertProperty(property) {\n const output = {\n apiName: property.apiName,\n sharedPropertyTypeApiName: property.sharedPropertyType?.apiName,\n displayMetadata: {\n displayName: property.displayName,\n description: property.description,\n visibility: property.visibility ?? \"NORMAL\"\n },\n indexedForSearch: property.indexedForSearch ?? true,\n ruleSetBinding: undefined,\n baseFormatter: property.baseFormatter,\n type: convertType(property.type),\n typeClasses: property.typeClasses ?? [],\n status: property.status ?? {\n type: \"active\",\n active: {}\n },\n inlineAction: undefined,\n dataConstraints: property.dataConstraints,\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined\n };\n return output;\n}\nfunction convertInterface(interfaceType) {\n return {\n ...interfaceType,\n properties: Object.values(interfaceType.properties).map(spt => convertSpt(spt)),\n // these are omitted from our internal types but we need to re-add them for the final json\n allExtendsInterfaces: [],\n allLinks: [],\n allProperties: []\n };\n}\nexport function dumpOntologyFullMetadata() {\n return convertToWireOntologyIr(ontologyDefinition);\n}\nexport function dumpValueTypeWireType() {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\nfunction convertSpt({\n type,\n array,\n description,\n apiName,\n displayName,\n gothamMapping,\n typeClasses,\n valueType\n}) {\n const dataConstraint = typeof type === \"object\" && type.type === \"marking\" ? {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noEmptyCollections: true,\n noNulls: true\n }\n } : undefined;\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: \"NORMAL\",\n description\n },\n type: array ? {\n type: \"array\",\n array: {\n subtype: convertType(type)\n }\n } : convertType(type),\n aliases: [],\n baseFormatter: undefined,\n dataConstraints: dataConstraint,\n gothamMapping: gothamMapping,\n indexedForSearch: true,\n provenance: undefined,\n typeClasses: typeClasses ?? [],\n valueType: valueType\n };\n}\nfunction convertType(type) {\n switch (true) {\n case typeof type === \"object\" && \"markingType\" in type:\n return {\n \"type\": \"marking\",\n marking: {\n markingType: type.markingType\n }\n };\n case typeof type === \"object\" && \"structDefinition\" in type:\n const structFields = new Array();\n for (const key in type.structDefinition) {\n const fieldTypeDefinition = type.structDefinition[key];\n let field;\n if (typeof fieldTypeDefinition === \"string\") {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n } else {\n // If it is a full form type definition then process it as such\n if (\"fieldType\" in fieldTypeDefinition) {\n field = {\n ...fieldTypeDefinition,\n apiName: key,\n fieldType: convertType(fieldTypeDefinition.fieldType),\n typeClasses: fieldTypeDefinition.typeClasses ?? [],\n aliases: fieldTypeDefinition.aliases ?? []\n };\n } else {\n field = {\n apiName: key,\n displayMetadata: {\n displayName: key,\n description: undefined\n },\n typeClasses: [],\n aliases: [],\n fieldType: convertType(fieldTypeDefinition)\n };\n }\n }\n structFields.push(field);\n }\n return {\n type: \"struct\",\n struct: {\n structFields\n }\n };\n case type === \"geopoint\":\n return {\n type: \"geohash\",\n geohash: {}\n };\n case type === \"decimal\":\n return {\n type,\n [type]: {\n precision: undefined,\n scale: undefined\n }\n };\n case type === \"string\":\n return {\n type,\n [type]: {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: false,\n supportsEfficientLeadingWildcard: false,\n supportsExactMatching: true\n }\n };\n case type === \"mediaReference\":\n return {\n type: type,\n mediaReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\n\n/**\n * Helper function to avoid duplication. Makes the types match properly with the correct\n * behavior without needing to switch on type.\n * @param type\n * @returns\n */\nfunction distributeTypeHelper(type) {\n return {\n type,\n [type]: {}\n }; // any cast to match conditional return type\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nconst defaultTypeClasses = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\"\n}, {\n kind: \"render_hint\",\n name: \"SORTABLE\"\n}];\nexport function defineSharedPropertyType(opts) {\n const apiName = namespace + opts.apiName;\n !(ontologyDefinition.sharedPropertyTypes[apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Shared property type ${apiName} already exists`) : invariant(false) : void 0;\n return ontologyDefinition.sharedPropertyTypes[apiName] = {\n ...opts,\n apiName,\n nonNameSpacedApiName: opts.apiName,\n displayName: opts.displayName ?? opts.apiName,\n // This way the non-namespaced api name is the display name (maybe not ideal)\n typeClasses: opts.typeClasses ?? defaultTypeClasses\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport { defineSharedPropertyType } from \"./defineSpt.js\";\nexport function defineInterface(opts) {\n const apiName = namespace + opts.apiName;\n !(ontologyDefinition.interfaceTypes[apiName] === undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Interface ${apiName} already exists`) : invariant(false) : void 0;\n const properties = Object.fromEntries(Object.entries(opts.properties ?? {}).map(([apiName, type]) => {\n if (typeof type === \"string\" || typeof type === \"object\" && !(\"apiName\" in type)) {\n !isPropertyTypeType(type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Invalid data type ${JSON.stringify(type)} for property ${apiName} on InterfaceType ${apiName}`) : invariant(false) : void 0;\n const spt = defineSharedPropertyType({\n apiName,\n displayName: apiName,\n type,\n array: false\n });\n return [apiName, spt];\n } else {\n const unNamespacedTypeApiName = type.apiName.slice(type.apiName.lastIndexOf(\".\") + 1);\n !(namespace + apiName === type.apiName || apiName === unNamespacedTypeApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `property key and it's apiName must be identical. ${JSON.stringify({\n key: apiName,\n apiName: type.apiName\n })}`) : invariant(false) : void 0;\n return [apiName, type];\n }\n }));\n let extendsInterfaces = [];\n if (opts.extends) {\n if (typeof opts.extends === \"string\") {\n extendsInterfaces = [opts.extends];\n } else if (Array.isArray(opts.extends) && opts.extends.every(item => typeof item === \"string\")) {\n extendsInterfaces = opts.extends;\n } else if (opts.extends.apiName !== undefined) {\n extendsInterfaces = [opts.extends.apiName];\n } else {\n extendsInterfaces = opts.extends.map(item => item.apiName);\n }\n }\n const status = mapSimplifiedStatusToInterfaceTypeStatus(opts.status ?? {\n type: \"active\"\n });\n !(status.type !== \"deprecated\" || status.deprecated.message && status.deprecated.deadline) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status must include message and deadline properties.`) : invariant(false) : void 0;\n const a = {\n apiName,\n displayMetadata: {\n displayName: opts.displayName ?? opts.apiName,\n description: opts.description ?? opts.displayName ?? opts.apiName,\n icon: opts.icon !== undefined ? {\n type: \"blueprint\",\n blueprint: {\n color: opts.icon.color,\n locator: opts.icon.locator\n }\n } : undefined\n },\n extendsInterfaces: extendsInterfaces,\n links: [],\n properties,\n status\n };\n return ontologyDefinition.interfaceTypes[apiName] = a;\n}\nfunction isPropertyTypeType(v) {\n return v === \"boolean\" || v === \"byte\" || v === \"date\" || v === \"decimal\" || v === \"double\" || v === \"float\" || v === \"geopoint\" || v === \"geoshape\" || v === \"integer\" || v === \"long\" || typeof v === \"object\" && v.type === \"marking\" || v === \"short\" || v === \"string\" || v === \"timestamp\";\n}\nfunction mapSimplifiedStatusToInterfaceTypeStatus(status) {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n case \"active\":\n return {\n type: \"active\",\n active: {}\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {}\n };\n default:\n throw new Error(`Invalid status type: ${status.type}`);\n }\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nexport function defineObject(objectDef) {\n const apiName = namespace + objectDef.apiName;\n const propertyApiNames = (objectDef.properties ?? []).map(val => val.apiName);\n if (ontologyDefinition.objectTypes[apiName] !== undefined) {\n throw new Error(`Object type with apiName ${objectDef.apiName} is already defined`);\n }\n !propertyApiNames.includes(objectDef.titlePropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`) : invariant(false) : void 0;\n !(objectDef.primaryKeys.length !== 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${objectDef.apiName} does not have any primary keys, objects must have at least one primary key`) : invariant(false) : void 0;\n const nonExistentPrimaryKeys = objectDef.primaryKeys.filter(primaryKey => !objectDef.properties?.map(val => val.apiName).includes(primaryKey));\n !(nonExistentPrimaryKeys.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key properties ${nonExistentPrimaryKeys} do not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => interfaceImpl.implements.properties[interfaceProperty] === undefined).map(interfaceProp => ({\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp} referenced in ${objectDef.apiName} object does not exist`\n }));\n const interfaceToObjectProperties = Object.fromEntries(interfaceImpl.propertyMapping.map(mapping => [mapping.interfaceProperty, mapping.mapsTo]));\n const validateProperty = interfaceProp => {\n if (interfaceProp[1].nonNameSpacedApiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1], interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp[1].nonNameSpacedApiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const baseValidations = Object.entries(interfaceImpl.implements.properties).map(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces.flatMap(interfaceApiName => Object.entries(ontologyDefinition.interfaceTypes[interfaceApiName].properties).map(validateProperty));\n const allFailedValidations = baseValidations.concat(extendsValidations, nonExistentInterfaceProperties).filter(val => val.type === \"invalid\");\n !(allFailedValidations.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\")) : invariant(false) : void 0;\n });\n ontologyDefinition.objectTypes[apiName] = {\n ...objectDef,\n apiName: apiName\n };\n return {\n ...objectDef,\n apiName: apiName\n };\n}\nfunction formatValidationErrors(error) {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(spt, mappedObjectProp, object) {\n const objProp = object.properties?.find(prop => prop.apiName === mappedObjectProp);\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason: `Object property mapped to interface does not exist. Object Property Mapped: ${mappedObjectProp}`\n };\n }\n if (spt.type !== objProp?.type) {\n return {\n type: \"invalid\",\n reason: `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`\n };\n }\n return {\n type: \"valid\"\n };\n}","/*\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 { defineInterface } from \"../api/defineInterface.js\";\nimport { defineObject } from \"../api/defineObject.js\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nimport { defineSharedPropertyType } from \"../api/defineSpt.js\";\nconst apiNamespaceRegex = /^[a-z0-9-]+(\\.[a-z0-9-]+)*\\.$/;\nexport default async function main(args = process.argv) {\n const commandLineOpts = await yargs(hideBin(args)).version(process.env.PACKAGE_VERSION ?? \"\").wrap(Math.min(150, yargs().terminalWidth())).strict().help().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 valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\n coerce: path.resolve\n }\n }).parseAsync();\n let apiNamespace = \"\";\n if (commandLineOpts.apiNamespace.length !== 0) {\n apiNamespace = commandLineOpts.apiNamespace.slice(-1) !== \".\" ? commandLineOpts.apiNamespace + \".\" : commandLineOpts.apiNamespace;\n !(apiNamespace.length < 1024) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"API namespace is too long.\") : invariant(false) : void 0;\n !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;\n }\n consola.info(`Loading ontology from ${commandLineOpts.input}`);\n const ontology = await loadOntology(commandLineOpts.input, apiNamespace);\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(commandLineOpts.output, JSON.stringify(ontology.ontology, null, 2));\n // No point in generating block if there aren't any value types\n if (ontology.valueType.valueTypes.length > 0) {\n await fs.writeFile(commandLineOpts.valueTypesOutput, JSON.stringify(ontology.valueType, null, 2));\n }\n}\nasync function loadOntologyViaJiti(input) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType\n });\n const jiti_ = await import(\"jiti\");\n const jiti = jiti_.default(process.cwd(), {\n debug: true\n });\n return defineOntology(\"\", async () => await jiti(input));\n}\nasync function loadOntologyViaTsNode(input) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType\n });\n const tsNode = await import(\"ts-node\");\n const tsNodeService = tsNode.register({\n transpileOnly: true,\n compilerOptions: {\n module: \"commonjs\",\n target: \"esnext\"\n },\n esm: true\n });\n tsNodeService.enabled(true);\n const q = await import(input);\n return q;\n}\nasync function loadOntology(input, apiNamespace) {\n // Object.assign(globalThis, {\n // defineInterface,\n // defineLink,\n // defineObject,\n // defineSharedPropertyType,\n // });\n\n const q = await defineOntology(apiNamespace, async () => await import(input));\n return q;\n}","/*\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 invariant from \"tiny-invariant\";\nimport { ontologyDefinition } from \"./defineOntology.js\";\n/**\n * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation\n */\nexport function importSharedPropertyType(opts) {\n const {\n apiName,\n packageName,\n typeHint\n } = opts;\n if (packageName !== undefined) {\n ontologyDefinition.importedTypes.sharedPropertyTypes.push({\n apiName,\n packageName\n });\n !!packageName.endsWith(\".\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name format invalid ends with period\") : invariant(false) : void 0;\n !(packageName.match(\"[A-Z]\") == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Package name includes upper case characters\") : invariant(false) : void 0;\n return {\n apiName: packageName + \".\" + apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName\n };\n }\n return {\n apiName: apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { namespace } from \"./defineOntology.js\";\nexport function defineInterfaceLinkConstraint(linkDef) {\n const fromLinkMeta = getLinkMeta(linkDef);\n !(linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName) == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`) : invariant(false) : void 0;\n linkDef.from.links.push({\n cardinality: linkDef.toMany ? \"MANY\" : \"SINGLE\",\n linkedEntityTypeId: getLinkedType(linkDef.toMany ?? linkDef.toOne),\n metadata: fromLinkMeta,\n required: linkDef.required ?? true\n });\n}\nfunction getLinkedType(t) {\n return {\n type: \"interfaceType\",\n interfaceType: typeof t === \"string\" ? t : t.apiName\n };\n}\nfunction getLinkMeta(meta) {\n return typeof meta === \"string\" ? withDefaults({\n apiName: namespace + meta\n }) : withDefaults(meta);\n}\nfunction withDefaults({\n apiName,\n description,\n displayName\n}) {\n return {\n apiName: namespace + apiName,\n displayName: displayName ?? apiName,\n description: description ?? displayName ?? apiName\n };\n}","/*\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 invariant from \"tiny-invariant\";\nimport { ontologyDefinition } from \"./defineOntology.js\";\nfunction convertValueTypeTypeToBaseType(valueType) {\n if (typeof valueType === \"string\") {}\n switch (true) {\n case typeof valueType === \"object\" && valueType.type === \"array\":\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"struct\":\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType)\n }))\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"map\":\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType)\n }\n };\n case typeof valueType === \"object\" && valueType.type === \"optional\":\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType)\n }\n };\n case typeof valueType === \"string\":\n return {\n type: valueType,\n [valueType]: {}\n };\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\nexport function defineValueType(opts) {\n const {\n apiName,\n displayName,\n description,\n type,\n version\n } = opts;\n const semverValidation = /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n !semverValidation.test(version) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Version is not a valid semver\") : invariant(false) : void 0;\n const typeName = typeof type.type === \"string\" ? type.type : type.type.type === \"struct\" ? \"structV2\" : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints ? type.constraints.map(constraint => {\n const output = {\n constraint: {\n type: typeName,\n [typeName]: constraint.constraint\n },\n failureMessage: constraint.failureMessage\n };\n return {\n constraint: output\n };\n }) : [];\n const baseType = convertValueTypeTypeToBaseType(type.type);\n const vt = {\n apiName,\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\"\n },\n status: {\n type: \"active\",\n active: {}\n },\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: []\n };\n if (ontologyDefinition.valueTypes[apiName] === undefined) {\n ontologyDefinition.valueTypes[apiName] = [];\n }\n ontologyDefinition.valueTypes[apiName].push(vt);\n return vt;\n}"]}
|
package/build/esm/cli/main.js
CHANGED
|
@@ -26,7 +26,7 @@ import { defineOntology } from "../api/defineOntology.js";
|
|
|
26
26
|
import { defineSharedPropertyType } from "../api/defineSpt.js";
|
|
27
27
|
const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
28
28
|
export default async function main(args = process.argv) {
|
|
29
|
-
const commandLineOpts = await yargs(hideBin(args)).version("0.9.0
|
|
29
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.9.0" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
30
30
|
input: {
|
|
31
31
|
alias: "i",
|
|
32
32
|
describe: "Input file",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineInterface","defineObject","defineOntology","defineSharedPropertyType","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","valueTypesOutput","parseAsync","length","slice","env","NODE_ENV","test","info","ontology","loadOntology","writeFile","JSON","stringify","valueType","valueTypes","loadOntologyViaJiti","Object","assign","globalThis","jiti_","jiti","cwd","debug","loadOntologyViaTsNode","tsNode","tsNodeService","register","transpileOnly","compilerOptions","module","target","esm","enabled","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 { defineInterface } from \"../api/defineInterface.js\";\nimport { defineObject } from \"../api/defineObject.js\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nimport { defineSharedPropertyType } from \"../api/defineSpt.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 } = 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 valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\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 const ontology = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(ontology.ontology, null, 2),\n );\n // No point in generating block if there aren't any value types\n if (ontology.valueType.valueTypes.length > 0) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(ontology.valueType, null, 2),\n );\n }\n}\n\nasync function loadOntologyViaJiti(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const jiti_ = await import(\"jiti\");\n const jiti = (jiti_.default as any as typeof jiti_[\"default\"][\"default\"])(\n process.cwd(),\n { debug: true },\n );\n\n return defineOntology(\"\", async () => await jiti(input));\n}\n\nasync function loadOntologyViaTsNode(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const tsNode = await import(\"ts-node\");\n const tsNodeService = tsNode.register({\n transpileOnly: true,\n compilerOptions: {\n module: \"commonjs\",\n target: \"esnext\",\n },\n esm: true,\n });\n\n tsNodeService.enabled(true);\n\n const q = await import(input);\n return q;\n}\n\nasync function loadOntology(input: string, apiNamespace: string) {\n // Object.assign(globalThis, {\n // defineInterface,\n // defineLink,\n // defineObject,\n // defineSharedPropertyType,\n // });\n\n const q = await defineOntology(apiNamespace, async () => await import(input));\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,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,wBAAwB,QAAQ,qBAAqB;AAE9D,MAAMC,iBAAiB,GAAG,+BAA+B;AAEzD,eAAe,eAAeC,IAAIA,CAChCC,IAAc,GAAGC,OAAO,CAACC,IAAI,EACd;EACf,MAAMC,eAML,GAAG,MAAMX,KAAK,CAACC,OAAO,CAACO,IAAI,CAAC,CAAC,CAC3BI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"main.js","names":["consola","fs","path","invariant","yargs","hideBin","defineInterface","defineObject","defineOntology","defineSharedPropertyType","apiNamespaceRegex","main","args","process","argv","commandLineOpts","version","wrap","Math","min","terminalWidth","strict","help","options","input","alias","describe","type","default","coerce","resolve","output","apiNamespace","snapshotDir","valueTypesOutput","parseAsync","length","slice","env","NODE_ENV","test","info","ontology","loadOntology","writeFile","JSON","stringify","valueType","valueTypes","loadOntologyViaJiti","Object","assign","globalThis","jiti_","jiti","cwd","debug","loadOntologyViaTsNode","tsNode","tsNodeService","register","transpileOnly","compilerOptions","module","target","esm","enabled","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 { defineInterface } from \"../api/defineInterface.js\";\nimport { defineObject } from \"../api/defineObject.js\";\nimport { defineOntology } from \"../api/defineOntology.js\";\nimport { defineSharedPropertyType } from \"../api/defineSpt.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 } = 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 valueTypesOutput: {\n describe: \"Value Type Output File\",\n type: \"string\",\n default: \"value-types.json\",\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 const ontology = await loadOntology(\n commandLineOpts.input,\n apiNamespace,\n );\n\n consola.info(`Saving ontology to ${commandLineOpts.output}`);\n await fs.writeFile(\n commandLineOpts.output,\n JSON.stringify(ontology.ontology, null, 2),\n );\n // No point in generating block if there aren't any value types\n if (ontology.valueType.valueTypes.length > 0) {\n await fs.writeFile(\n commandLineOpts.valueTypesOutput,\n JSON.stringify(ontology.valueType, null, 2),\n );\n }\n}\n\nasync function loadOntologyViaJiti(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const jiti_ = await import(\"jiti\");\n const jiti = (jiti_.default as any as typeof jiti_[\"default\"][\"default\"])(\n process.cwd(),\n { debug: true },\n );\n\n return defineOntology(\"\", async () => await jiti(input));\n}\n\nasync function loadOntologyViaTsNode(input: string) {\n Object.assign(globalThis, {\n defineInterface,\n defineObject,\n defineSharedPropertyType,\n });\n\n const tsNode = await import(\"ts-node\");\n const tsNodeService = tsNode.register({\n transpileOnly: true,\n compilerOptions: {\n module: \"commonjs\",\n target: \"esnext\",\n },\n esm: true,\n });\n\n tsNodeService.enabled(true);\n\n const q = await import(input);\n return q;\n}\n\nasync function loadOntology(input: string, apiNamespace: string) {\n // Object.assign(globalThis, {\n // defineInterface,\n // defineLink,\n // defineObject,\n // defineSharedPropertyType,\n // });\n\n const q = await defineOntology(apiNamespace, async () => await import(input));\n return q;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/maker",
|
|
3
|
-
"version": "0.9.0
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
"tiny-invariant": "^1.3.3",
|
|
33
33
|
"ts-node": "^10.9.2",
|
|
34
34
|
"yargs": "^17.7.2",
|
|
35
|
-
"@osdk/api": "~2.1.0
|
|
35
|
+
"@osdk/api": "~2.1.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@osdk/foundry.ontologies": "2.13.0",
|
|
39
39
|
"@types/yargs": "^17.0.32",
|
|
40
40
|
"typescript": "~5.5.4",
|
|
41
41
|
"vitest": "^3.0.5",
|
|
42
|
-
"@osdk/client.unstable": "~2.1.0
|
|
43
|
-
"@osdk/monorepo.
|
|
44
|
-
"@osdk/monorepo.
|
|
42
|
+
"@osdk/client.unstable": "~2.1.0",
|
|
43
|
+
"@osdk/monorepo.api-extractor": "~0.0.0",
|
|
44
|
+
"@osdk/monorepo.tsconfig": "~0.0.0"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|