@osdk/generator-converters.preview 0.1.0-beta.7 → 0.1.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 +59 -0
- package/build/browser/ActionLogicRuleConverter.js +102 -0
- package/build/browser/ActionLogicRuleConverter.js.map +1 -1
- package/build/browser/PreviewOntologyIrConverter.js +12 -12
- package/build/browser/PreviewOntologyIrConverter.js.map +1 -1
- package/build/browser/cli/generate-sdk.js +6 -6
- package/build/browser/cli/generate-sdk.js.map +1 -1
- package/build/cjs/index.cjs +30 -69
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +3 -3
- package/build/esm/ActionLogicRuleConverter.js +102 -0
- package/build/esm/ActionLogicRuleConverter.js.map +1 -1
- package/build/esm/PreviewOntologyIrConverter.js +12 -12
- package/build/esm/PreviewOntologyIrConverter.js.map +1 -1
- package/build/esm/cli/generate-sdk.js +6 -6
- package/build/esm/cli/generate-sdk.js.map +1 -1
- package/build/types/ActionLogicRuleConverter.d.ts +2 -1
- package/build/types/ActionLogicRuleConverter.d.ts.map +1 -1
- package/build/types/PreviewOntologyIrConverter.d.ts +3 -3
- package/build/types/PreviewOntologyIrConverter.d.ts.map +1 -1
- package/package.json +7 -7
package/build/cjs/index.cjs
CHANGED
|
@@ -4,88 +4,48 @@ var generatorConverters_ontologyir = require('@osdk/generator-converters.ontolog
|
|
|
4
4
|
var crypto = require('crypto');
|
|
5
5
|
|
|
6
6
|
// src/PreviewOntologyIrConverter.ts
|
|
7
|
-
|
|
8
|
-
// src/ActionLogicRuleConverter.ts
|
|
9
|
-
function buildObjectTypeLookup(ir) {
|
|
10
|
-
if (!ir?.objectTypes) {
|
|
11
|
-
return void 0;
|
|
12
|
-
}
|
|
13
|
-
const byId = /* @__PURE__ */ new Map();
|
|
14
|
-
const byHyphenated = /* @__PURE__ */ new Map();
|
|
15
|
-
for (const [key, value] of Object.entries(ir.objectTypes)) {
|
|
16
|
-
const apiName = value.objectType.apiName;
|
|
17
|
-
byId.set(key, apiName);
|
|
18
|
-
byHyphenated.set(apiName.replace(/\./g, "-"), apiName);
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
byId,
|
|
22
|
-
byHyphenated
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function buildInterfaceTypeLookup(ir) {
|
|
26
|
-
if (!ir?.interfaceTypes) {
|
|
27
|
-
return void 0;
|
|
28
|
-
}
|
|
29
|
-
const byId = /* @__PURE__ */ new Map();
|
|
30
|
-
const byHyphenated = /* @__PURE__ */ new Map();
|
|
31
|
-
for (const [key, value] of Object.entries(ir.interfaceTypes)) {
|
|
32
|
-
const apiName = value.interfaceType.apiName;
|
|
33
|
-
byId.set(key, apiName);
|
|
34
|
-
byHyphenated.set(apiName.replace(/\./g, "-"), apiName);
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
byId,
|
|
38
|
-
byHyphenated
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function resolveApiName(id, lookup) {
|
|
42
|
-
if (!lookup) {
|
|
43
|
-
return id;
|
|
44
|
-
}
|
|
45
|
-
return lookup.byId.get(id) ?? lookup.byHyphenated.get(id) ?? id;
|
|
46
|
-
}
|
|
47
|
-
function getObjectReferenceType(action, paramKey) {
|
|
7
|
+
function getObjectReferenceTypeFromBlockData(action, paramKey) {
|
|
48
8
|
const param = action.actionType.metadata.parameters[paramKey];
|
|
49
9
|
if (!param || param.type.type !== "objectReference") {
|
|
50
10
|
throw new Error(`Parameter '${paramKey}' must be an objectReference type`);
|
|
51
11
|
}
|
|
52
12
|
return param.type.objectReference;
|
|
53
13
|
}
|
|
54
|
-
function
|
|
55
|
-
const objectLookup =
|
|
56
|
-
const interfaceLookup =
|
|
57
|
-
return rules.map((
|
|
14
|
+
function convertBlockDataLogicRulesToActionLogicRules(rules, action, blockdata) {
|
|
15
|
+
const objectLookup = generatorConverters_ontologyir.buildBlockDataObjectTypeLookup(blockdata);
|
|
16
|
+
const interfaceLookup = generatorConverters_ontologyir.buildBlockDataInterfaceTypeLookup(blockdata);
|
|
17
|
+
return rules.map((rule) => convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup));
|
|
58
18
|
}
|
|
59
|
-
function
|
|
60
|
-
switch (
|
|
19
|
+
function convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup) {
|
|
20
|
+
switch (rule.type) {
|
|
61
21
|
case "addObjectRule": {
|
|
62
|
-
const r =
|
|
22
|
+
const r = rule.addObjectRule;
|
|
63
23
|
const propertyArguments = {};
|
|
64
24
|
for (const [k, v] of Object.entries(r.propertyValues)) {
|
|
65
25
|
propertyArguments[k] = v;
|
|
66
26
|
}
|
|
67
27
|
const result = {
|
|
68
28
|
type: "createObject",
|
|
69
|
-
objectTypeApiName:
|
|
29
|
+
objectTypeApiName: generatorConverters_ontologyir.resolveBlockDataApiName(r.objectTypeId, objectLookup),
|
|
70
30
|
propertyArguments,
|
|
71
31
|
structPropertyArguments: {}
|
|
72
32
|
};
|
|
73
33
|
return result;
|
|
74
34
|
}
|
|
75
35
|
case "addOrModifyObjectRuleV2": {
|
|
76
|
-
const r =
|
|
77
|
-
const objRef =
|
|
36
|
+
const r = rule.addOrModifyObjectRuleV2;
|
|
37
|
+
const objRef = getObjectReferenceTypeFromBlockData(action, r.objectToModify);
|
|
78
38
|
const result = {
|
|
79
39
|
type: "createOrModifyObject",
|
|
80
|
-
objectTypeApiName:
|
|
40
|
+
objectTypeApiName: generatorConverters_ontologyir.resolveBlockDataApiName(objRef.objectTypeId, objectLookup),
|
|
81
41
|
propertyArguments: {},
|
|
82
42
|
structPropertyArguments: {}
|
|
83
43
|
};
|
|
84
44
|
return result;
|
|
85
45
|
}
|
|
86
46
|
case "modifyObjectRule": {
|
|
87
|
-
const r =
|
|
88
|
-
|
|
47
|
+
const r = rule.modifyObjectRule;
|
|
48
|
+
getObjectReferenceTypeFromBlockData(action, r.objectToModify);
|
|
89
49
|
const modifyPropertyArguments = {};
|
|
90
50
|
for (const [k, v] of Object.entries(r.propertyValues)) {
|
|
91
51
|
modifyPropertyArguments[k] = v;
|
|
@@ -99,7 +59,7 @@ function convertSingleRule(irRule, action, objectLookup, interfaceLookup) {
|
|
|
99
59
|
return result;
|
|
100
60
|
}
|
|
101
61
|
case "deleteObjectRule": {
|
|
102
|
-
const r =
|
|
62
|
+
const r = rule.deleteObjectRule;
|
|
103
63
|
const result = {
|
|
104
64
|
type: "deleteObject",
|
|
105
65
|
objectToDelete: r.objectToDelete
|
|
@@ -107,8 +67,8 @@ function convertSingleRule(irRule, action, objectLookup, interfaceLookup) {
|
|
|
107
67
|
return result;
|
|
108
68
|
}
|
|
109
69
|
case "addInterfaceRule": {
|
|
110
|
-
const r =
|
|
111
|
-
const interfaceApiName =
|
|
70
|
+
const r = rule.addInterfaceRule;
|
|
71
|
+
const interfaceApiName = generatorConverters_ontologyir.resolveBlockDataApiName(r.interfaceTypeRid, interfaceLookup);
|
|
112
72
|
const result = {
|
|
113
73
|
type: "createInterface",
|
|
114
74
|
interfaceTypeApiName: interfaceApiName,
|
|
@@ -119,10 +79,10 @@ function convertSingleRule(irRule, action, objectLookup, interfaceLookup) {
|
|
|
119
79
|
return result;
|
|
120
80
|
}
|
|
121
81
|
case "modifyInterfaceRule": {
|
|
122
|
-
const r =
|
|
82
|
+
const r = rule.modifyInterfaceRule;
|
|
123
83
|
const result = {
|
|
124
84
|
type: "modifyInterface",
|
|
125
|
-
interfaceObjectToModify: r.
|
|
85
|
+
interfaceObjectToModify: r.interfaceObjectToModify,
|
|
126
86
|
sharedPropertyArguments: {},
|
|
127
87
|
structPropertyArguments: {}
|
|
128
88
|
};
|
|
@@ -133,7 +93,7 @@ function convertSingleRule(irRule, action, objectLookup, interfaceLookup) {
|
|
|
133
93
|
case "deleteLinkRule":
|
|
134
94
|
throw new Error("deleteLinkRule is not supported for ActionLogicRule");
|
|
135
95
|
default:
|
|
136
|
-
throw new Error(`Unsupported logic rule type: ${
|
|
96
|
+
throw new Error(`Unsupported logic rule type: ${rule.type}`);
|
|
137
97
|
}
|
|
138
98
|
}
|
|
139
99
|
function toUuid(str) {
|
|
@@ -150,9 +110,9 @@ var PreviewOntologyIrConverter = class {
|
|
|
150
110
|
* Main entry point - converts IR to full metadata with enhanced action types.
|
|
151
111
|
* Returns ActionTypeFullMetadata which includes fullLogicRules.
|
|
152
112
|
*/
|
|
153
|
-
static
|
|
154
|
-
const baseMetadata = generatorConverters_ontologyir.
|
|
155
|
-
const actionTypes = this.
|
|
113
|
+
static getPreviewFullMetadataFromBlockData(blockdata) {
|
|
114
|
+
const baseMetadata = generatorConverters_ontologyir.OntologyBlockDataToFullMetadataConverter.getFullMetadataFromBlockData(blockdata);
|
|
115
|
+
const actionTypes = this.convertActionTypesWithFullLogicRulesFromBlockData(blockdata.actionTypes, blockdata);
|
|
156
116
|
const objectTypes = this.convertObjectTypesWithUuidRids(baseMetadata.objectTypes);
|
|
157
117
|
return {
|
|
158
118
|
...baseMetadata,
|
|
@@ -201,18 +161,19 @@ var PreviewOntologyIrConverter = class {
|
|
|
201
161
|
* Reuses base converter for action type conversion, then process
|
|
202
162
|
* RIDs to use UUID-based format and adds fullLogicRules.
|
|
203
163
|
*/
|
|
204
|
-
static
|
|
205
|
-
const
|
|
206
|
-
const
|
|
164
|
+
static convertActionTypesWithFullLogicRulesFromBlockData(actions, blockdata) {
|
|
165
|
+
const objectTypeLookup = generatorConverters_ontologyir.buildBlockDataObjectTypeLookup(blockdata);
|
|
166
|
+
const interfaceTypeLookup = generatorConverters_ontologyir.buildBlockDataInterfaceTypeLookup(blockdata);
|
|
167
|
+
const baseActionTypes = generatorConverters_ontologyir.OntologyBlockDataToFullMetadataConverter.getOsdkActionTypesFromBlockData(blockdata, objectTypeLookup, interfaceTypeLookup);
|
|
168
|
+
const actionsByApiName = new Map(Object.values(actions).map((a) => [a.actionType.metadata.apiName, a]));
|
|
207
169
|
const result = {};
|
|
208
170
|
for (const [apiName, baseActionType] of Object.entries(baseActionTypes)) {
|
|
209
171
|
const action = actionsByApiName.get(apiName);
|
|
210
172
|
result[apiName] = {
|
|
211
173
|
actionType: {
|
|
212
|
-
...baseActionType
|
|
213
|
-
rid: `ri.ontology.main.action-type.${toUuid(apiName)}`
|
|
174
|
+
...baseActionType
|
|
214
175
|
},
|
|
215
|
-
fullLogicRules:
|
|
176
|
+
fullLogicRules: convertBlockDataLogicRulesToActionLogicRules(action.actionType.actionTypeLogic.logic.rules, action, blockdata)
|
|
216
177
|
};
|
|
217
178
|
}
|
|
218
179
|
return result;
|
package/build/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ActionLogicRuleConverter.ts","../../src/ridUtils.ts","../../src/PreviewOntologyIrConverter.ts"],"names":["createHash","OntologyIrToFullMetadataConverter"],"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\nfunction buildObjectTypeLookup(ir) {\n if (!ir?.objectTypes) {\n return undefined;\n }\n const byId = new Map();\n const byHyphenated = new Map();\n for (const [key, value] of Object.entries(ir.objectTypes)) {\n const apiName = value.objectType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return {\n byId,\n byHyphenated\n };\n}\nfunction buildInterfaceTypeLookup(ir) {\n if (!ir?.interfaceTypes) {\n return undefined;\n }\n const byId = new Map();\n const byHyphenated = new Map();\n for (const [key, value] of Object.entries(ir.interfaceTypes)) {\n const apiName = value.interfaceType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return {\n byId,\n byHyphenated\n };\n}\nfunction resolveApiName(id, lookup) {\n if (!lookup) {\n return id;\n }\n return lookup.byId.get(id) ?? lookup.byHyphenated.get(id) ?? id;\n}\nfunction getObjectReferenceType(action, paramKey) {\n const param = action.actionType.metadata.parameters[paramKey];\n if (!param || param.type.type !== \"objectReference\") {\n throw new Error(`Parameter '${paramKey}' must be an objectReference type`);\n }\n return param.type.objectReference;\n}\n\n/**\n * Build lookups once and convert all logic rules for an action.\n * Avoids rebuilding lookup Maps on every rule.\n */\nexport function convertIrLogicRulesToActionLogicRules(rules, action, ir) {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n return rules.map(irRule => convertSingleRule(irRule, action, objectLookup, interfaceLookup));\n}\n\n/**\n * Convert a single OntologyIrLogicRule to ActionLogicRule.\n * Kept as a public API for callers that only need a single rule conversion.\n */\nexport function convertIrLogicRuleToActionLogicRule(irRule, action, ir) {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n return convertSingleRule(irRule, action, objectLookup, interfaceLookup);\n}\nfunction convertSingleRule(irRule, action, objectLookup, interfaceLookup) {\n switch (irRule.type) {\n case \"addObjectRule\":\n {\n const r = irRule.addObjectRule;\n const propertyArguments = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n propertyArguments[k] = v;\n }\n const result = {\n type: \"createObject\",\n objectTypeApiName: resolveApiName(r.objectTypeId, objectLookup),\n propertyArguments,\n structPropertyArguments: {}\n };\n return result;\n }\n case \"addOrModifyObjectRuleV2\":\n {\n const r = irRule.addOrModifyObjectRuleV2;\n const objRef = getObjectReferenceType(action, r.objectToModify);\n // propertyArguments left empty: the downstream generator resolves\n // property mappings from the action parameter configuration rather\n // than from the logic rule itself for createOrModify rules.\n const result = {\n type: \"createOrModifyObject\",\n objectTypeApiName: resolveApiName(objRef.objectTypeId, objectLookup),\n propertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"modifyObjectRule\":\n {\n const r = irRule.modifyObjectRule;\n // Validate that the parameter is an objectReference (throws if not)\n getObjectReferenceType(action, r.objectToModify);\n const modifyPropertyArguments = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n modifyPropertyArguments[k] = v;\n }\n const result = {\n type: \"modifyObject\",\n objectToModify: r.objectToModify,\n propertyArguments: modifyPropertyArguments,\n structPropertyArguments: {}\n };\n return result;\n }\n case \"deleteObjectRule\":\n {\n const r = irRule.deleteObjectRule;\n const result = {\n type: \"deleteObject\",\n objectToDelete: r.objectToDelete\n };\n return result;\n }\n case \"addInterfaceRule\":\n {\n const r = irRule.addInterfaceRule;\n const interfaceApiName = resolveApiName(r.interfaceApiName, interfaceLookup);\n const result = {\n type: \"createInterface\",\n interfaceTypeApiName: interfaceApiName,\n objectType: interfaceApiName,\n sharedPropertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"modifyInterfaceRule\":\n {\n const r = irRule.modifyInterfaceRule;\n const result = {\n type: \"modifyInterface\",\n interfaceObjectToModify: r.interfaceObjectToModifyParameter,\n sharedPropertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"addLinkRule\":\n throw new Error(\"addLinkRule is not supported for ActionLogicRule\");\n case \"deleteLinkRule\":\n throw new Error(\"deleteLinkRule is not supported for ActionLogicRule\");\n default:\n throw new Error(`Unsupported logic rule type: ${irRule.type}`);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createHash } from \"node:crypto\";\n\n/**\n * Generate a deterministic UUID v5-like identifier from a string.\n * Uses SHA-256 hash truncated to UUID format with version (5) and\n * variant (RFC 4122) bits set for spec compliance.\n */\nexport function toUuid(str) {\n const hashBytes = createHash(\"sha256\").update(str).digest();\n // Set version to 5 (name-based SHA) in byte 6: clear top nibble, set to 0101\n hashBytes[6] = hashBytes[6] & 0x0f | 0x50;\n // Set variant to RFC 4122 in byte 8: clear top 2 bits, set to 10\n hashBytes[8] = hashBytes[8] & 0x3f | 0x80;\n const hex = hashBytes.subarray(0, 16).toString(\"hex\");\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OntologyIrToFullMetadataConverter } from \"@osdk/generator-converters.ontologyir\";\nimport { convertIrLogicRulesToActionLogicRules } from \"./ActionLogicRuleConverter.js\";\nimport { toUuid } from \"./ridUtils.js\";\n\n/**\n * Extended return type that uses ActionTypeFullMetadata instead of ActionTypeV2.\n */\n\n/**\n * Preview converter that extends the base OntologyIrToFullMetadataConverter\n * to return ActionTypeFullMetadata with fullLogicRules instead of ActionTypeV2.\n */\nexport class PreviewOntologyIrConverter {\n /**\n * Main entry point - converts IR to full metadata with enhanced action types.\n * Returns ActionTypeFullMetadata which includes fullLogicRules.\n */\n static getPreviewFullMetadataFromIr(ir) {\n const baseMetadata = OntologyIrToFullMetadataConverter.getFullMetadataFromIr(ir);\n const actionTypes = this.convertActionTypesWithFullLogicRules(Object.values(ir.actionTypes), ir);\n\n // Post-process object types to use UUID-based RIDs\n const objectTypes = this.convertObjectTypesWithUuidRids(baseMetadata.objectTypes);\n return {\n ...baseMetadata,\n objectTypes,\n actionTypes,\n ontology: {\n apiName: \"ontology\",\n rid: \"ri.ontology.main.ontology.0\",\n displayName: \"ontology\",\n description: \"local ontology\"\n }\n };\n }\n\n /**\n * Post-process object types to use UUID-based RIDs for properties and link types.\n */\n static convertObjectTypesWithUuidRids(objectTypes) {\n const result = {};\n for (const [apiName, fullMetadata] of Object.entries(objectTypes)) {\n const objectType = fullMetadata.objectType;\n const properties = {};\n for (const [propKey, prop] of Object.entries(objectType.properties)) {\n properties[propKey] = {\n ...prop,\n rid: `ri.ontology.main.property.${toUuid(apiName + \".\" + propKey)}`\n };\n }\n const linkTypes = fullMetadata.linkTypes.map(lt => ({\n ...lt,\n linkTypeRid: `ri.ontology.main.link-type.${toUuid(lt.linkTypeRid || lt.apiName)}`\n }));\n result[apiName] = {\n ...fullMetadata,\n linkTypes,\n objectType: {\n ...objectType,\n rid: `ri.ontology.main.object-type.${toUuid(apiName)}`,\n properties\n }\n };\n }\n return result;\n }\n\n /**\n * Convert IR action types to ActionTypeFullMetadata format.\n * Reuses base converter for action type conversion, then process\n * RIDs to use UUID-based format and adds fullLogicRules.\n */\n static convertActionTypesWithFullLogicRules(actions, ir) {\n const baseActionTypes = OntologyIrToFullMetadataConverter.getOsdkActionTypes(actions);\n\n // Build a lookup from apiName to the original IR action for logic rules\n const actionsByApiName = new Map(actions.map(a => [a.actionType.metadata.apiName, a]));\n const result = {};\n for (const [apiName, baseActionType] of Object.entries(baseActionTypes)) {\n const action = actionsByApiName.get(apiName);\n result[apiName] = {\n actionType: {\n ...baseActionType,\n rid: `ri.ontology.main.action-type.${toUuid(apiName)}`\n },\n fullLogicRules: convertIrLogicRulesToActionLogicRules(action.actionType.actionTypeLogic.logic.rules, action, ir)\n };\n }\n return result;\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ActionLogicRuleConverter.ts","../../src/ridUtils.ts","../../src/PreviewOntologyIrConverter.ts"],"names":["buildBlockDataObjectTypeLookup","buildBlockDataInterfaceTypeLookup","resolveBlockDataApiName","createHash","OntologyBlockDataToFullMetadataConverter"],"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\nimport { buildBlockDataInterfaceTypeLookup, buildBlockDataObjectTypeLookup, resolveBlockDataApiName } from \"@osdk/generator-converters.ontologyir\";\nfunction buildObjectTypeLookup(ir) {\n if (!ir?.objectTypes) {\n return undefined;\n }\n const byId = new Map();\n const byHyphenated = new Map();\n for (const [key, value] of Object.entries(ir.objectTypes)) {\n const apiName = value.objectType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return {\n byId,\n byHyphenated\n };\n}\nfunction buildInterfaceTypeLookup(ir) {\n if (!ir?.interfaceTypes) {\n return undefined;\n }\n const byId = new Map();\n const byHyphenated = new Map();\n for (const [key, value] of Object.entries(ir.interfaceTypes)) {\n const apiName = value.interfaceType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return {\n byId,\n byHyphenated\n };\n}\nfunction resolveApiName(id, lookup) {\n if (!lookup) {\n return id;\n }\n return lookup.byId.get(id) ?? lookup.byHyphenated.get(id) ?? id;\n}\nfunction getObjectReferenceType(action, paramKey) {\n const param = action.actionType.metadata.parameters[paramKey];\n if (!param || param.type.type !== \"objectReference\") {\n throw new Error(`Parameter '${paramKey}' must be an objectReference type`);\n }\n return param.type.objectReference;\n}\nfunction getObjectReferenceTypeFromBlockData(action, paramKey) {\n const param = action.actionType.metadata.parameters[paramKey];\n if (!param || param.type.type !== \"objectReference\") {\n throw new Error(`Parameter '${paramKey}' must be an objectReference type`);\n }\n return param.type.objectReference;\n}\n\n/**\n * Build lookups once and convert all logic rules for an action.\n * Avoids rebuilding lookup Maps on every rule.\n */\nexport function convertIrLogicRulesToActionLogicRules(rules, action, ir) {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n return rules.map(irRule => convertSingleRule(irRule, action, objectLookup, interfaceLookup));\n}\nexport function convertBlockDataLogicRulesToActionLogicRules(rules, action, blockdata) {\n const objectLookup = buildBlockDataObjectTypeLookup(blockdata);\n const interfaceLookup = buildBlockDataInterfaceTypeLookup(blockdata);\n return rules.map(rule => convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup));\n}\n\n/**\n * Convert a single OntologyIrLogicRule to ActionLogicRule.\n * Kept as a public API for callers that only need a single rule conversion.\n */\nexport function convertIrLogicRuleToActionLogicRule(irRule, action, ir) {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n return convertSingleRule(irRule, action, objectLookup, interfaceLookup);\n}\nfunction convertSingleRule(irRule, action, objectLookup, interfaceLookup) {\n switch (irRule.type) {\n case \"addObjectRule\":\n {\n const r = irRule.addObjectRule;\n const propertyArguments = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n propertyArguments[k] = v;\n }\n const result = {\n type: \"createObject\",\n objectTypeApiName: resolveApiName(r.objectTypeId, objectLookup),\n propertyArguments,\n structPropertyArguments: {}\n };\n return result;\n }\n case \"addOrModifyObjectRuleV2\":\n {\n const r = irRule.addOrModifyObjectRuleV2;\n const objRef = getObjectReferenceType(action, r.objectToModify);\n // propertyArguments left empty: the downstream generator resolves\n // property mappings from the action parameter configuration rather\n // than from the logic rule itself for createOrModify rules.\n const result = {\n type: \"createOrModifyObject\",\n objectTypeApiName: resolveApiName(objRef.objectTypeId, objectLookup),\n propertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"modifyObjectRule\":\n {\n const r = irRule.modifyObjectRule;\n // Validate that the parameter is an objectReference (throws if not)\n getObjectReferenceType(action, r.objectToModify);\n const modifyPropertyArguments = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n modifyPropertyArguments[k] = v;\n }\n const result = {\n type: \"modifyObject\",\n objectToModify: r.objectToModify,\n propertyArguments: modifyPropertyArguments,\n structPropertyArguments: {}\n };\n return result;\n }\n case \"deleteObjectRule\":\n {\n const r = irRule.deleteObjectRule;\n const result = {\n type: \"deleteObject\",\n objectToDelete: r.objectToDelete\n };\n return result;\n }\n case \"addInterfaceRule\":\n {\n const r = irRule.addInterfaceRule;\n const interfaceApiName = resolveApiName(r.interfaceApiName, interfaceLookup);\n const result = {\n type: \"createInterface\",\n interfaceTypeApiName: interfaceApiName,\n objectType: interfaceApiName,\n sharedPropertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"modifyInterfaceRule\":\n {\n const r = irRule.modifyInterfaceRule;\n const result = {\n type: \"modifyInterface\",\n interfaceObjectToModify: r.interfaceObjectToModifyParameter,\n sharedPropertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"addLinkRule\":\n throw new Error(\"addLinkRule is not supported for ActionLogicRule\");\n case \"deleteLinkRule\":\n throw new Error(\"deleteLinkRule is not supported for ActionLogicRule\");\n default:\n throw new Error(`Unsupported logic rule type: ${irRule.type}`);\n }\n}\nfunction convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup) {\n switch (rule.type) {\n case \"addObjectRule\":\n {\n const r = rule.addObjectRule;\n const propertyArguments = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n propertyArguments[k] = v;\n }\n const result = {\n type: \"createObject\",\n objectTypeApiName: resolveBlockDataApiName(r.objectTypeId, objectLookup),\n propertyArguments,\n structPropertyArguments: {}\n };\n return result;\n }\n case \"addOrModifyObjectRuleV2\":\n {\n const r = rule.addOrModifyObjectRuleV2;\n const objRef = getObjectReferenceTypeFromBlockData(action, r.objectToModify);\n // propertyArguments left empty: the downstream generator resolves\n // property mappings from the action parameter configuration rather\n // than from the logic rule itself for createOrModify rules.\n const result = {\n type: \"createOrModifyObject\",\n objectTypeApiName: resolveBlockDataApiName(objRef.objectTypeId, objectLookup),\n propertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"modifyObjectRule\":\n {\n const r = rule.modifyObjectRule;\n // Validate that the parameter is an objectReference (throws if not)\n getObjectReferenceTypeFromBlockData(action, r.objectToModify);\n const modifyPropertyArguments = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n modifyPropertyArguments[k] = v;\n }\n const result = {\n type: \"modifyObject\",\n objectToModify: r.objectToModify,\n propertyArguments: modifyPropertyArguments,\n structPropertyArguments: {}\n };\n return result;\n }\n case \"deleteObjectRule\":\n {\n const r = rule.deleteObjectRule;\n const result = {\n type: \"deleteObject\",\n objectToDelete: r.objectToDelete\n };\n return result;\n }\n case \"addInterfaceRule\":\n {\n const r = rule.addInterfaceRule;\n const interfaceApiName = resolveBlockDataApiName(r.interfaceTypeRid, interfaceLookup);\n const result = {\n type: \"createInterface\",\n interfaceTypeApiName: interfaceApiName,\n objectType: interfaceApiName,\n sharedPropertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"modifyInterfaceRule\":\n {\n const r = rule.modifyInterfaceRule;\n const result = {\n type: \"modifyInterface\",\n interfaceObjectToModify: r.interfaceObjectToModify,\n sharedPropertyArguments: {},\n structPropertyArguments: {}\n };\n return result;\n }\n case \"addLinkRule\":\n throw new Error(\"addLinkRule is not supported for ActionLogicRule\");\n case \"deleteLinkRule\":\n throw new Error(\"deleteLinkRule is not supported for ActionLogicRule\");\n default:\n throw new Error(`Unsupported logic rule type: ${rule.type}`);\n }\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createHash } from \"node:crypto\";\n\n/**\n * Generate a deterministic UUID v5-like identifier from a string.\n * Uses SHA-256 hash truncated to UUID format with version (5) and\n * variant (RFC 4122) bits set for spec compliance.\n */\nexport function toUuid(str) {\n const hashBytes = createHash(\"sha256\").update(str).digest();\n // Set version to 5 (name-based SHA) in byte 6: clear top nibble, set to 0101\n hashBytes[6] = hashBytes[6] & 0x0f | 0x50;\n // Set variant to RFC 4122 in byte 8: clear top 2 bits, set to 10\n hashBytes[8] = hashBytes[8] & 0x3f | 0x80;\n const hex = hashBytes.subarray(0, 16).toString(\"hex\");\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { buildBlockDataInterfaceTypeLookup, buildBlockDataObjectTypeLookup, OntologyBlockDataToFullMetadataConverter } from \"@osdk/generator-converters.ontologyir\";\nimport { convertBlockDataLogicRulesToActionLogicRules } from \"./ActionLogicRuleConverter.js\";\nimport { toUuid } from \"./ridUtils.js\";\n\n/**\n * Extended return type that uses ActionTypeFullMetadata instead of ActionTypeV2.\n */\n\n/**\n * Preview converter that extends the base OntologyIrToFullMetadataConverter\n * to return ActionTypeFullMetadata with fullLogicRules instead of ActionTypeV2.\n */\nexport class PreviewOntologyIrConverter {\n /**\n * Main entry point - converts IR to full metadata with enhanced action types.\n * Returns ActionTypeFullMetadata which includes fullLogicRules.\n */\n static getPreviewFullMetadataFromBlockData(blockdata) {\n const baseMetadata = OntologyBlockDataToFullMetadataConverter.getFullMetadataFromBlockData(blockdata);\n const actionTypes = this.convertActionTypesWithFullLogicRulesFromBlockData(blockdata.actionTypes, blockdata);\n // Post-process object types to use UUID-based RIDs\n const objectTypes = this.convertObjectTypesWithUuidRids(baseMetadata.objectTypes);\n return {\n ...baseMetadata,\n objectTypes,\n actionTypes,\n ontology: {\n apiName: \"ontology\",\n rid: \"ri.ontology.main.ontology.0\",\n displayName: \"ontology\",\n description: \"local ontology\"\n }\n };\n }\n\n /**\n * Post-process object types to use UUID-based RIDs for properties and link types.\n */\n static convertObjectTypesWithUuidRids(objectTypes) {\n const result = {};\n for (const [apiName, fullMetadata] of Object.entries(objectTypes)) {\n const objectType = fullMetadata.objectType;\n const properties = {};\n for (const [propKey, prop] of Object.entries(objectType.properties)) {\n properties[propKey] = {\n ...prop,\n rid: `ri.ontology.main.property.${toUuid(apiName + \".\" + propKey)}`\n };\n }\n const linkTypes = fullMetadata.linkTypes.map(lt => ({\n ...lt,\n linkTypeRid: `ri.ontology.main.link-type.${toUuid(lt.linkTypeRid || lt.apiName)}`\n }));\n result[apiName] = {\n ...fullMetadata,\n linkTypes,\n objectType: {\n ...objectType,\n rid: `ri.ontology.main.object-type.${toUuid(apiName)}`,\n properties\n }\n };\n }\n return result;\n }\n\n /**\n * Convert IR action types to ActionTypeFullMetadata format.\n * Reuses base converter for action type conversion, then process\n * RIDs to use UUID-based format and adds fullLogicRules.\n */\n static convertActionTypesWithFullLogicRulesFromBlockData(actions, blockdata) {\n const objectTypeLookup = buildBlockDataObjectTypeLookup(blockdata);\n const interfaceTypeLookup = buildBlockDataInterfaceTypeLookup(blockdata);\n const baseActionTypes = OntologyBlockDataToFullMetadataConverter.getOsdkActionTypesFromBlockData(blockdata, objectTypeLookup, interfaceTypeLookup);\n\n // Build a lookup from apiName to the original IR action for logic rules\n const actionsByApiName = new Map(Object.values(actions).map(a => [a.actionType.metadata.apiName, a]));\n const result = {};\n for (const [apiName, baseActionType] of Object.entries(baseActionTypes)) {\n const action = actionsByApiName.get(apiName);\n result[apiName] = {\n actionType: {\n ...baseActionType\n },\n fullLogicRules: convertBlockDataLogicRulesToActionLogicRules(action.actionType.actionTypeLogic.logic.rules, action, blockdata)\n };\n }\n return result;\n }\n}"]}
|
package/build/cjs/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OntologyBlockDataV2 } from '@osdk/client.unstable';
|
|
2
2
|
import * as Ontologies from '@osdk/foundry.ontologies';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -16,7 +16,7 @@ declare class PreviewOntologyIrConverter {
|
|
|
16
16
|
* Main entry point - converts IR to full metadata with enhanced action types.
|
|
17
17
|
* Returns ActionTypeFullMetadata which includes fullLogicRules.
|
|
18
18
|
*/
|
|
19
|
-
static
|
|
19
|
+
static getPreviewFullMetadataFromBlockData(blockdata: OntologyBlockDataV2): PreviewOntologyFullMetadata;
|
|
20
20
|
/**
|
|
21
21
|
* Post-process object types to use UUID-based RIDs for properties and link types.
|
|
22
22
|
*/
|
|
@@ -26,7 +26,7 @@ declare class PreviewOntologyIrConverter {
|
|
|
26
26
|
* Reuses base converter for action type conversion, then process
|
|
27
27
|
* RIDs to use UUID-based format and adds fullLogicRules.
|
|
28
28
|
*/
|
|
29
|
-
private static
|
|
29
|
+
private static convertActionTypesWithFullLogicRulesFromBlockData;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export { type PreviewOntologyFullMetadata, PreviewOntologyIrConverter };
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { buildBlockDataInterfaceTypeLookup, buildBlockDataObjectTypeLookup, resolveBlockDataApiName } from "@osdk/generator-converters.ontologyir";
|
|
17
18
|
function buildObjectTypeLookup(ir) {
|
|
18
19
|
if (!ir?.objectTypes) {
|
|
19
20
|
return undefined;
|
|
@@ -59,6 +60,13 @@ function getObjectReferenceType(action, paramKey) {
|
|
|
59
60
|
}
|
|
60
61
|
return param.type.objectReference;
|
|
61
62
|
}
|
|
63
|
+
function getObjectReferenceTypeFromBlockData(action, paramKey) {
|
|
64
|
+
const param = action.actionType.metadata.parameters[paramKey];
|
|
65
|
+
if (!param || param.type.type !== "objectReference") {
|
|
66
|
+
throw new Error(`Parameter '${paramKey}' must be an objectReference type`);
|
|
67
|
+
}
|
|
68
|
+
return param.type.objectReference;
|
|
69
|
+
}
|
|
62
70
|
|
|
63
71
|
/**
|
|
64
72
|
* Build lookups once and convert all logic rules for an action.
|
|
@@ -69,6 +77,11 @@ export function convertIrLogicRulesToActionLogicRules(rules, action, ir) {
|
|
|
69
77
|
const interfaceLookup = buildInterfaceTypeLookup(ir);
|
|
70
78
|
return rules.map(irRule => convertSingleRule(irRule, action, objectLookup, interfaceLookup));
|
|
71
79
|
}
|
|
80
|
+
export function convertBlockDataLogicRulesToActionLogicRules(rules, action, blockdata) {
|
|
81
|
+
const objectLookup = buildBlockDataObjectTypeLookup(blockdata);
|
|
82
|
+
const interfaceLookup = buildBlockDataInterfaceTypeLookup(blockdata);
|
|
83
|
+
return rules.map(rule => convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup));
|
|
84
|
+
}
|
|
72
85
|
|
|
73
86
|
/**
|
|
74
87
|
* Convert a single OntologyIrLogicRule to ActionLogicRule.
|
|
@@ -168,4 +181,93 @@ function convertSingleRule(irRule, action, objectLookup, interfaceLookup) {
|
|
|
168
181
|
throw new Error(`Unsupported logic rule type: ${irRule.type}`);
|
|
169
182
|
}
|
|
170
183
|
}
|
|
184
|
+
function convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup) {
|
|
185
|
+
switch (rule.type) {
|
|
186
|
+
case "addObjectRule":
|
|
187
|
+
{
|
|
188
|
+
const r = rule.addObjectRule;
|
|
189
|
+
const propertyArguments = {};
|
|
190
|
+
for (const [k, v] of Object.entries(r.propertyValues)) {
|
|
191
|
+
propertyArguments[k] = v;
|
|
192
|
+
}
|
|
193
|
+
const result = {
|
|
194
|
+
type: "createObject",
|
|
195
|
+
objectTypeApiName: resolveBlockDataApiName(r.objectTypeId, objectLookup),
|
|
196
|
+
propertyArguments,
|
|
197
|
+
structPropertyArguments: {}
|
|
198
|
+
};
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
201
|
+
case "addOrModifyObjectRuleV2":
|
|
202
|
+
{
|
|
203
|
+
const r = rule.addOrModifyObjectRuleV2;
|
|
204
|
+
const objRef = getObjectReferenceTypeFromBlockData(action, r.objectToModify);
|
|
205
|
+
// propertyArguments left empty: the downstream generator resolves
|
|
206
|
+
// property mappings from the action parameter configuration rather
|
|
207
|
+
// than from the logic rule itself for createOrModify rules.
|
|
208
|
+
const result = {
|
|
209
|
+
type: "createOrModifyObject",
|
|
210
|
+
objectTypeApiName: resolveBlockDataApiName(objRef.objectTypeId, objectLookup),
|
|
211
|
+
propertyArguments: {},
|
|
212
|
+
structPropertyArguments: {}
|
|
213
|
+
};
|
|
214
|
+
return result;
|
|
215
|
+
}
|
|
216
|
+
case "modifyObjectRule":
|
|
217
|
+
{
|
|
218
|
+
const r = rule.modifyObjectRule;
|
|
219
|
+
// Validate that the parameter is an objectReference (throws if not)
|
|
220
|
+
getObjectReferenceTypeFromBlockData(action, r.objectToModify);
|
|
221
|
+
const modifyPropertyArguments = {};
|
|
222
|
+
for (const [k, v] of Object.entries(r.propertyValues)) {
|
|
223
|
+
modifyPropertyArguments[k] = v;
|
|
224
|
+
}
|
|
225
|
+
const result = {
|
|
226
|
+
type: "modifyObject",
|
|
227
|
+
objectToModify: r.objectToModify,
|
|
228
|
+
propertyArguments: modifyPropertyArguments,
|
|
229
|
+
structPropertyArguments: {}
|
|
230
|
+
};
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
case "deleteObjectRule":
|
|
234
|
+
{
|
|
235
|
+
const r = rule.deleteObjectRule;
|
|
236
|
+
const result = {
|
|
237
|
+
type: "deleteObject",
|
|
238
|
+
objectToDelete: r.objectToDelete
|
|
239
|
+
};
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
242
|
+
case "addInterfaceRule":
|
|
243
|
+
{
|
|
244
|
+
const r = rule.addInterfaceRule;
|
|
245
|
+
const interfaceApiName = resolveBlockDataApiName(r.interfaceTypeRid, interfaceLookup);
|
|
246
|
+
return {
|
|
247
|
+
type: "createInterface",
|
|
248
|
+
interfaceTypeApiName: interfaceApiName,
|
|
249
|
+
objectType: interfaceApiName,
|
|
250
|
+
sharedPropertyArguments: {},
|
|
251
|
+
structPropertyArguments: {}
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
case "modifyInterfaceRule":
|
|
255
|
+
{
|
|
256
|
+
const r = rule.modifyInterfaceRule;
|
|
257
|
+
const result = {
|
|
258
|
+
type: "modifyInterface",
|
|
259
|
+
interfaceObjectToModify: r.interfaceObjectToModify,
|
|
260
|
+
sharedPropertyArguments: {},
|
|
261
|
+
structPropertyArguments: {}
|
|
262
|
+
};
|
|
263
|
+
return result;
|
|
264
|
+
}
|
|
265
|
+
case "addLinkRule":
|
|
266
|
+
throw new Error("addLinkRule is not supported for ActionLogicRule");
|
|
267
|
+
case "deleteLinkRule":
|
|
268
|
+
throw new Error("deleteLinkRule is not supported for ActionLogicRule");
|
|
269
|
+
default:
|
|
270
|
+
throw new Error(`Unsupported logic rule type: ${rule.type}`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
171
273
|
//# sourceMappingURL=ActionLogicRuleConverter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionLogicRuleConverter.js","names":["buildObjectTypeLookup","ir","objectTypes","undefined","byId","Map","byHyphenated","key","value","Object","entries","apiName","objectType","set","replace","buildInterfaceTypeLookup","interfaceTypes","interfaceType","resolveApiName","id","lookup","get","getObjectReferenceType","action","paramKey","param","actionType","metadata","parameters","type","Error","objectReference","convertIrLogicRulesToActionLogicRules","rules","objectLookup","interfaceLookup","map","irRule","convertSingleRule","convertIrLogicRuleToActionLogicRule","r","addObjectRule","propertyArguments","k","v","propertyValues","result","objectTypeApiName","objectTypeId","structPropertyArguments","addOrModifyObjectRuleV2","objRef","objectToModify","modifyObjectRule","modifyPropertyArguments","deleteObjectRule","objectToDelete","addInterfaceRule","interfaceApiName","interfaceTypeApiName","sharedPropertyArguments","modifyInterfaceRule","interfaceObjectToModify","interfaceObjectToModifyParameter"],"sources":["ActionLogicRuleConverter.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n OntologyIrActionTypeBlockDataV2,\n OntologyIrLogicRule,\n OntologyIrOntologyBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport type * as Ontologies from \"@osdk/foundry.ontologies\";\n\ninterface ApiNameLookup {\n byId: Map<string, string>;\n byHyphenated: Map<string, string>;\n}\n\nfunction buildObjectTypeLookup(\n ir: OntologyIrOntologyBlockDataV2 | undefined,\n): ApiNameLookup | undefined {\n if (!ir?.objectTypes) {\n return undefined;\n }\n const byId = new Map<string, string>();\n const byHyphenated = new Map<string, string>();\n for (const [key, value] of Object.entries(ir.objectTypes)) {\n const apiName = value.objectType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return { byId, byHyphenated };\n}\n\nfunction buildInterfaceTypeLookup(\n ir: OntologyIrOntologyBlockDataV2 | undefined,\n): ApiNameLookup | undefined {\n if (!ir?.interfaceTypes) {\n return undefined;\n }\n const byId = new Map<string, string>();\n const byHyphenated = new Map<string, string>();\n for (const [key, value] of Object.entries(ir.interfaceTypes)) {\n const apiName = value.interfaceType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return { byId, byHyphenated };\n}\n\nfunction resolveApiName(id: string, lookup: ApiNameLookup | undefined): string {\n if (!lookup) {\n return id;\n }\n return lookup.byId.get(id) ?? lookup.byHyphenated.get(id) ?? id;\n}\n\nfunction getObjectReferenceType(\n action: OntologyIrActionTypeBlockDataV2,\n paramKey: string,\n): { objectTypeId: string } {\n const param = action.actionType.metadata.parameters[paramKey];\n if (!param || param.type.type !== \"objectReference\") {\n throw new Error(\n `Parameter '${paramKey}' must be an objectReference type`,\n );\n }\n return param.type.objectReference;\n}\n\n/**\n * Build lookups once and convert all logic rules for an action.\n * Avoids rebuilding lookup Maps on every rule.\n */\nexport function convertIrLogicRulesToActionLogicRules(\n rules: OntologyIrLogicRule[],\n action: OntologyIrActionTypeBlockDataV2,\n ir?: OntologyIrOntologyBlockDataV2,\n): Ontologies.ActionLogicRule[] {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n\n return rules.map(irRule =>\n convertSingleRule(irRule, action, objectLookup, interfaceLookup)\n );\n}\n\n/**\n * Convert a single OntologyIrLogicRule to ActionLogicRule.\n * Kept as a public API for callers that only need a single rule conversion.\n */\nexport function convertIrLogicRuleToActionLogicRule(\n irRule: OntologyIrLogicRule,\n action: OntologyIrActionTypeBlockDataV2,\n ir?: OntologyIrOntologyBlockDataV2,\n): Ontologies.ActionLogicRule {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n return convertSingleRule(irRule, action, objectLookup, interfaceLookup);\n}\n\nfunction convertSingleRule(\n irRule: OntologyIrLogicRule,\n action: OntologyIrActionTypeBlockDataV2,\n objectLookup: ApiNameLookup | undefined,\n interfaceLookup: ApiNameLookup | undefined,\n): Ontologies.ActionLogicRule {\n switch (irRule.type) {\n case \"addObjectRule\": {\n const r = irRule.addObjectRule;\n const propertyArguments: Record<\n Ontologies.PropertyApiName,\n Ontologies.LogicRuleArgument\n > = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n propertyArguments[k] = v as Ontologies.LogicRuleArgument;\n }\n const result: Ontologies.CreateObjectLogicRule & {\n type: \"createObject\";\n } = {\n type: \"createObject\",\n objectTypeApiName: resolveApiName(r.objectTypeId, objectLookup),\n propertyArguments,\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"addOrModifyObjectRuleV2\": {\n const r = irRule.addOrModifyObjectRuleV2;\n const objRef = getObjectReferenceType(action, r.objectToModify);\n // propertyArguments left empty: the downstream generator resolves\n // property mappings from the action parameter configuration rather\n // than from the logic rule itself for createOrModify rules.\n const result: Ontologies.CreateOrModifyObjectLogicRule & {\n type: \"createOrModifyObject\";\n } = {\n type: \"createOrModifyObject\",\n objectTypeApiName: resolveApiName(objRef.objectTypeId, objectLookup),\n propertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"modifyObjectRule\": {\n const r = irRule.modifyObjectRule;\n // Validate that the parameter is an objectReference (throws if not)\n getObjectReferenceType(action, r.objectToModify);\n const modifyPropertyArguments: Record<\n Ontologies.PropertyApiName,\n Ontologies.LogicRuleArgument\n > = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n modifyPropertyArguments[k] = v as Ontologies.LogicRuleArgument;\n }\n const result: Ontologies.ModifyObjectLogicRule & {\n type: \"modifyObject\";\n } = {\n type: \"modifyObject\",\n objectToModify: r.objectToModify,\n propertyArguments: modifyPropertyArguments,\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"deleteObjectRule\": {\n const r = irRule.deleteObjectRule;\n const result: Ontologies.DeleteObjectLogicRule & {\n type: \"deleteObject\";\n } = {\n type: \"deleteObject\",\n objectToDelete: r.objectToDelete,\n };\n return result;\n }\n\n case \"addInterfaceRule\": {\n const r = irRule.addInterfaceRule;\n const interfaceApiName = resolveApiName(\n r.interfaceApiName,\n interfaceLookup,\n );\n const result: Ontologies.CreateInterfaceLogicRule & {\n type: \"createInterface\";\n } = {\n type: \"createInterface\",\n interfaceTypeApiName: interfaceApiName,\n objectType: interfaceApiName,\n sharedPropertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"modifyInterfaceRule\": {\n const r = irRule.modifyInterfaceRule;\n const result: Ontologies.ModifyInterfaceLogicRule & {\n type: \"modifyInterface\";\n } = {\n type: \"modifyInterface\",\n interfaceObjectToModify: r.interfaceObjectToModifyParameter,\n sharedPropertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"addLinkRule\":\n throw new Error(\"addLinkRule is not supported for ActionLogicRule\");\n\n case \"deleteLinkRule\":\n throw new Error(\"deleteLinkRule is not supported for ActionLogicRule\");\n\n default:\n throw new Error(\n `Unsupported logic rule type: ${(irRule as { type: string }).type}`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ActionLogicRuleConverter.js","names":["buildBlockDataInterfaceTypeLookup","buildBlockDataObjectTypeLookup","resolveBlockDataApiName","buildObjectTypeLookup","ir","objectTypes","undefined","byId","Map","byHyphenated","key","value","Object","entries","apiName","objectType","set","replace","buildInterfaceTypeLookup","interfaceTypes","interfaceType","resolveApiName","id","lookup","get","getObjectReferenceType","action","paramKey","param","actionType","metadata","parameters","type","Error","objectReference","getObjectReferenceTypeFromBlockData","convertIrLogicRulesToActionLogicRules","rules","objectLookup","interfaceLookup","map","irRule","convertSingleRule","convertBlockDataLogicRulesToActionLogicRules","blockdata","rule","convertBlockDataSingleRule","convertIrLogicRuleToActionLogicRule","r","addObjectRule","propertyArguments","k","v","propertyValues","result","objectTypeApiName","objectTypeId","structPropertyArguments","addOrModifyObjectRuleV2","objRef","objectToModify","modifyObjectRule","modifyPropertyArguments","deleteObjectRule","objectToDelete","addInterfaceRule","interfaceApiName","interfaceTypeApiName","sharedPropertyArguments","modifyInterfaceRule","interfaceObjectToModify","interfaceObjectToModifyParameter","interfaceTypeRid"],"sources":["ActionLogicRuleConverter.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionTypeBlockDataV2,\n LogicRule,\n OntologyBlockDataV2,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrLogicRule,\n OntologyIrOntologyBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport type * as Ontologies from \"@osdk/foundry.ontologies\";\nimport {\n type BlockDataApiNameLookup,\n buildBlockDataInterfaceTypeLookup,\n buildBlockDataObjectTypeLookup,\n resolveBlockDataApiName,\n} from \"@osdk/generator-converters.ontologyir\";\n\ninterface ApiNameLookup {\n byId: Map<string, string>;\n byHyphenated: Map<string, string>;\n}\n\nfunction buildObjectTypeLookup(\n ir: OntologyIrOntologyBlockDataV2 | undefined,\n): ApiNameLookup | undefined {\n if (!ir?.objectTypes) {\n return undefined;\n }\n const byId = new Map<string, string>();\n const byHyphenated = new Map<string, string>();\n for (const [key, value] of Object.entries(ir.objectTypes)) {\n const apiName = value.objectType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return { byId, byHyphenated };\n}\n\nfunction buildInterfaceTypeLookup(\n ir: OntologyIrOntologyBlockDataV2 | undefined,\n): ApiNameLookup | undefined {\n if (!ir?.interfaceTypes) {\n return undefined;\n }\n const byId = new Map<string, string>();\n const byHyphenated = new Map<string, string>();\n for (const [key, value] of Object.entries(ir.interfaceTypes)) {\n const apiName = value.interfaceType.apiName;\n byId.set(key, apiName);\n byHyphenated.set(apiName.replace(/\\./g, \"-\"), apiName);\n }\n return { byId, byHyphenated };\n}\n\nfunction resolveApiName(id: string, lookup: ApiNameLookup | undefined): string {\n if (!lookup) {\n return id;\n }\n return lookup.byId.get(id) ?? lookup.byHyphenated.get(id) ?? id;\n}\n\nfunction getObjectReferenceType(\n action: OntologyIrActionTypeBlockDataV2,\n paramKey: string,\n): { objectTypeId: string } {\n const param = action.actionType.metadata.parameters[paramKey];\n if (!param || param.type.type !== \"objectReference\") {\n throw new Error(\n `Parameter '${paramKey}' must be an objectReference type`,\n );\n }\n return param.type.objectReference;\n}\n\nfunction getObjectReferenceTypeFromBlockData(\n action: ActionTypeBlockDataV2,\n paramKey: string,\n): { objectTypeId: string } {\n const param = action.actionType.metadata.parameters[paramKey];\n if (!param || param.type.type !== \"objectReference\") {\n throw new Error(\n `Parameter '${paramKey}' must be an objectReference type`,\n );\n }\n return param.type.objectReference;\n}\n\n/**\n * Build lookups once and convert all logic rules for an action.\n * Avoids rebuilding lookup Maps on every rule.\n */\nexport function convertIrLogicRulesToActionLogicRules(\n rules: OntologyIrLogicRule[],\n action: OntologyIrActionTypeBlockDataV2,\n ir?: OntologyIrOntologyBlockDataV2,\n): Ontologies.ActionLogicRule[] {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n\n return rules.map(irRule =>\n convertSingleRule(irRule, action, objectLookup, interfaceLookup)\n );\n}\n\nexport function convertBlockDataLogicRulesToActionLogicRules(\n rules: LogicRule[],\n action: ActionTypeBlockDataV2,\n blockdata?: OntologyBlockDataV2,\n): Ontologies.ActionLogicRule[] {\n const objectLookup = buildBlockDataObjectTypeLookup(blockdata);\n const interfaceLookup = buildBlockDataInterfaceTypeLookup(blockdata);\n\n return rules.map(rule =>\n convertBlockDataSingleRule(rule, action, objectLookup, interfaceLookup)\n );\n}\n\n/**\n * Convert a single OntologyIrLogicRule to ActionLogicRule.\n * Kept as a public API for callers that only need a single rule conversion.\n */\nexport function convertIrLogicRuleToActionLogicRule(\n irRule: OntologyIrLogicRule,\n action: OntologyIrActionTypeBlockDataV2,\n ir?: OntologyIrOntologyBlockDataV2,\n): Ontologies.ActionLogicRule {\n const objectLookup = buildObjectTypeLookup(ir);\n const interfaceLookup = buildInterfaceTypeLookup(ir);\n return convertSingleRule(irRule, action, objectLookup, interfaceLookup);\n}\n\nfunction convertSingleRule(\n irRule: OntologyIrLogicRule,\n action: OntologyIrActionTypeBlockDataV2,\n objectLookup: ApiNameLookup | undefined,\n interfaceLookup: ApiNameLookup | undefined,\n): Ontologies.ActionLogicRule {\n switch (irRule.type) {\n case \"addObjectRule\": {\n const r = irRule.addObjectRule;\n const propertyArguments: Record<\n Ontologies.PropertyApiName,\n Ontologies.LogicRuleArgument\n > = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n propertyArguments[k] = v as Ontologies.LogicRuleArgument;\n }\n const result: Ontologies.CreateObjectLogicRule & {\n type: \"createObject\";\n } = {\n type: \"createObject\",\n objectTypeApiName: resolveApiName(r.objectTypeId, objectLookup),\n propertyArguments,\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"addOrModifyObjectRuleV2\": {\n const r = irRule.addOrModifyObjectRuleV2;\n const objRef = getObjectReferenceType(action, r.objectToModify);\n // propertyArguments left empty: the downstream generator resolves\n // property mappings from the action parameter configuration rather\n // than from the logic rule itself for createOrModify rules.\n const result: Ontologies.CreateOrModifyObjectLogicRule & {\n type: \"createOrModifyObject\";\n } = {\n type: \"createOrModifyObject\",\n objectTypeApiName: resolveApiName(objRef.objectTypeId, objectLookup),\n propertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"modifyObjectRule\": {\n const r = irRule.modifyObjectRule;\n // Validate that the parameter is an objectReference (throws if not)\n getObjectReferenceType(action, r.objectToModify);\n const modifyPropertyArguments: Record<\n Ontologies.PropertyApiName,\n Ontologies.LogicRuleArgument\n > = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n modifyPropertyArguments[k] = v as Ontologies.LogicRuleArgument;\n }\n const result: Ontologies.ModifyObjectLogicRule & {\n type: \"modifyObject\";\n } = {\n type: \"modifyObject\",\n objectToModify: r.objectToModify,\n propertyArguments: modifyPropertyArguments,\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"deleteObjectRule\": {\n const r = irRule.deleteObjectRule;\n const result: Ontologies.DeleteObjectLogicRule & {\n type: \"deleteObject\";\n } = {\n type: \"deleteObject\",\n objectToDelete: r.objectToDelete,\n };\n return result;\n }\n\n case \"addInterfaceRule\": {\n const r = irRule.addInterfaceRule;\n const interfaceApiName = resolveApiName(\n r.interfaceApiName,\n interfaceLookup,\n );\n const result: Ontologies.CreateInterfaceLogicRule & {\n type: \"createInterface\";\n } = {\n type: \"createInterface\",\n interfaceTypeApiName: interfaceApiName,\n objectType: interfaceApiName,\n sharedPropertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"modifyInterfaceRule\": {\n const r = irRule.modifyInterfaceRule;\n const result: Ontologies.ModifyInterfaceLogicRule & {\n type: \"modifyInterface\";\n } = {\n type: \"modifyInterface\",\n interfaceObjectToModify: r.interfaceObjectToModifyParameter,\n sharedPropertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"addLinkRule\":\n throw new Error(\"addLinkRule is not supported for ActionLogicRule\");\n\n case \"deleteLinkRule\":\n throw new Error(\"deleteLinkRule is not supported for ActionLogicRule\");\n\n default:\n throw new Error(\n `Unsupported logic rule type: ${(irRule as { type: string }).type}`,\n );\n }\n}\n\nfunction convertBlockDataSingleRule(\n rule: LogicRule,\n action: ActionTypeBlockDataV2,\n objectLookup: BlockDataApiNameLookup | undefined,\n interfaceLookup: BlockDataApiNameLookup | undefined,\n): Ontologies.ActionLogicRule {\n switch (rule.type) {\n case \"addObjectRule\": {\n const r = rule.addObjectRule;\n const propertyArguments: Record<\n Ontologies.PropertyApiName,\n Ontologies.LogicRuleArgument\n > = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n propertyArguments[k] = v as Ontologies.LogicRuleArgument;\n }\n const result: Ontologies.CreateObjectLogicRule & {\n type: \"createObject\";\n } = {\n type: \"createObject\",\n objectTypeApiName: resolveBlockDataApiName(\n r.objectTypeId,\n objectLookup,\n ),\n propertyArguments,\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"addOrModifyObjectRuleV2\": {\n const r = rule.addOrModifyObjectRuleV2;\n const objRef = getObjectReferenceTypeFromBlockData(\n action,\n r.objectToModify,\n );\n // propertyArguments left empty: the downstream generator resolves\n // property mappings from the action parameter configuration rather\n // than from the logic rule itself for createOrModify rules.\n const result: Ontologies.CreateOrModifyObjectLogicRule & {\n type: \"createOrModifyObject\";\n } = {\n type: \"createOrModifyObject\",\n objectTypeApiName: resolveBlockDataApiName(\n objRef.objectTypeId,\n objectLookup,\n ),\n propertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"modifyObjectRule\": {\n const r = rule.modifyObjectRule;\n // Validate that the parameter is an objectReference (throws if not)\n getObjectReferenceTypeFromBlockData(action, r.objectToModify);\n const modifyPropertyArguments: Record<\n Ontologies.PropertyApiName,\n Ontologies.LogicRuleArgument\n > = {};\n for (const [k, v] of Object.entries(r.propertyValues)) {\n modifyPropertyArguments[k] = v as Ontologies.LogicRuleArgument;\n }\n const result: Ontologies.ModifyObjectLogicRule & {\n type: \"modifyObject\";\n } = {\n type: \"modifyObject\",\n objectToModify: r.objectToModify,\n propertyArguments: modifyPropertyArguments,\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"deleteObjectRule\": {\n const r = rule.deleteObjectRule;\n const result: Ontologies.DeleteObjectLogicRule & {\n type: \"deleteObject\";\n } = {\n type: \"deleteObject\",\n objectToDelete: r.objectToDelete,\n };\n return result;\n }\n\n case \"addInterfaceRule\": {\n const r = rule.addInterfaceRule;\n const interfaceApiName = resolveBlockDataApiName(\n r.interfaceTypeRid,\n interfaceLookup,\n );\n const result: Ontologies.CreateInterfaceLogicRule & {\n type: \"createInterface\";\n } = {\n type: \"createInterface\",\n interfaceTypeApiName: interfaceApiName,\n objectType: interfaceApiName,\n sharedPropertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"modifyInterfaceRule\": {\n const r = rule.modifyInterfaceRule;\n const result: Ontologies.ModifyInterfaceLogicRule & {\n type: \"modifyInterface\";\n } = {\n type: \"modifyInterface\",\n interfaceObjectToModify: r.interfaceObjectToModify,\n sharedPropertyArguments: {},\n structPropertyArguments: {},\n };\n return result;\n }\n\n case \"addLinkRule\":\n throw new Error(\"addLinkRule is not supported for ActionLogicRule\");\n\n case \"deleteLinkRule\":\n throw new Error(\"deleteLinkRule is not supported for ActionLogicRule\");\n\n default:\n throw new Error(\n `Unsupported logic rule type: ${(rule as { type: string }).type}`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { buildBlockDataInterfaceTypeLookup, buildBlockDataObjectTypeLookup, OntologyBlockDataToFullMetadataConverter } from "@osdk/generator-converters.ontologyir";
|
|
18
|
+
import { convertBlockDataLogicRulesToActionLogicRules } from "./ActionLogicRuleConverter.js";
|
|
19
19
|
import { toUuid } from "./ridUtils.js";
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -31,10 +31,9 @@ export class PreviewOntologyIrConverter {
|
|
|
31
31
|
* Main entry point - converts IR to full metadata with enhanced action types.
|
|
32
32
|
* Returns ActionTypeFullMetadata which includes fullLogicRules.
|
|
33
33
|
*/
|
|
34
|
-
static
|
|
35
|
-
const baseMetadata =
|
|
36
|
-
const actionTypes = this.
|
|
37
|
-
|
|
34
|
+
static getPreviewFullMetadataFromBlockData(blockdata) {
|
|
35
|
+
const baseMetadata = OntologyBlockDataToFullMetadataConverter.getFullMetadataFromBlockData(blockdata);
|
|
36
|
+
const actionTypes = this.convertActionTypesWithFullLogicRulesFromBlockData(blockdata.actionTypes, blockdata);
|
|
38
37
|
// Post-process object types to use UUID-based RIDs
|
|
39
38
|
const objectTypes = this.convertObjectTypesWithUuidRids(baseMetadata.objectTypes);
|
|
40
39
|
return {
|
|
@@ -86,20 +85,21 @@ export class PreviewOntologyIrConverter {
|
|
|
86
85
|
* Reuses base converter for action type conversion, then process
|
|
87
86
|
* RIDs to use UUID-based format and adds fullLogicRules.
|
|
88
87
|
*/
|
|
89
|
-
static
|
|
90
|
-
const
|
|
88
|
+
static convertActionTypesWithFullLogicRulesFromBlockData(actions, blockdata) {
|
|
89
|
+
const objectTypeLookup = buildBlockDataObjectTypeLookup(blockdata);
|
|
90
|
+
const interfaceTypeLookup = buildBlockDataInterfaceTypeLookup(blockdata);
|
|
91
|
+
const baseActionTypes = OntologyBlockDataToFullMetadataConverter.getOsdkActionTypesFromBlockData(blockdata, objectTypeLookup, interfaceTypeLookup);
|
|
91
92
|
|
|
92
93
|
// Build a lookup from apiName to the original IR action for logic rules
|
|
93
|
-
const actionsByApiName = new Map(actions.map(a => [a.actionType.metadata.apiName, a]));
|
|
94
|
+
const actionsByApiName = new Map(Object.values(actions).map(a => [a.actionType.metadata.apiName, a]));
|
|
94
95
|
const result = {};
|
|
95
96
|
for (const [apiName, baseActionType] of Object.entries(baseActionTypes)) {
|
|
96
97
|
const action = actionsByApiName.get(apiName);
|
|
97
98
|
result[apiName] = {
|
|
98
99
|
actionType: {
|
|
99
|
-
...baseActionType
|
|
100
|
-
rid: `ri.ontology.main.action-type.${toUuid(apiName)}`
|
|
100
|
+
...baseActionType
|
|
101
101
|
},
|
|
102
|
-
fullLogicRules:
|
|
102
|
+
fullLogicRules: convertBlockDataLogicRulesToActionLogicRules(action.actionType.actionTypeLogic.logic.rules, action, blockdata)
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
105
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewOntologyIrConverter.js","names":["
|
|
1
|
+
{"version":3,"file":"PreviewOntologyIrConverter.js","names":["buildBlockDataInterfaceTypeLookup","buildBlockDataObjectTypeLookup","OntologyBlockDataToFullMetadataConverter","convertBlockDataLogicRulesToActionLogicRules","toUuid","PreviewOntologyIrConverter","getPreviewFullMetadataFromBlockData","blockdata","baseMetadata","getFullMetadataFromBlockData","actionTypes","convertActionTypesWithFullLogicRulesFromBlockData","objectTypes","convertObjectTypesWithUuidRids","ontology","apiName","rid","displayName","description","result","fullMetadata","Object","entries","objectType","properties","propKey","prop","linkTypes","map","lt","linkTypeRid","actions","objectTypeLookup","interfaceTypeLookup","baseActionTypes","getOsdkActionTypesFromBlockData","actionsByApiName","Map","values","a","actionType","metadata","baseActionType","action","get","fullLogicRules","actionTypeLogic","logic","rules"],"sources":["PreviewOntologyIrConverter.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ActionTypeBlockDataV2,\n OntologyBlockDataV2,\n} from \"@osdk/client.unstable\";\nimport type * as Ontologies from \"@osdk/foundry.ontologies\";\nimport {\n buildBlockDataInterfaceTypeLookup,\n buildBlockDataObjectTypeLookup,\n OntologyBlockDataToFullMetadataConverter,\n} from \"@osdk/generator-converters.ontologyir\";\nimport { convertBlockDataLogicRulesToActionLogicRules } from \"./ActionLogicRuleConverter.js\";\nimport { toUuid } from \"./ridUtils.js\";\n\n/**\n * Extended return type that uses ActionTypeFullMetadata instead of ActionTypeV2.\n */\nexport interface PreviewOntologyFullMetadata\n extends Omit<Ontologies.OntologyFullMetadata, \"actionTypes\">\n{\n actionTypes: Record<string, Ontologies.ActionTypeFullMetadata>;\n}\n\n/**\n * Preview converter that extends the base OntologyIrToFullMetadataConverter\n * to return ActionTypeFullMetadata with fullLogicRules instead of ActionTypeV2.\n */\nexport class PreviewOntologyIrConverter {\n /**\n * Main entry point - converts IR to full metadata with enhanced action types.\n * Returns ActionTypeFullMetadata which includes fullLogicRules.\n */\n static getPreviewFullMetadataFromBlockData(\n blockdata: OntologyBlockDataV2,\n ): PreviewOntologyFullMetadata {\n const baseMetadata = OntologyBlockDataToFullMetadataConverter\n .getFullMetadataFromBlockData(blockdata);\n\n const actionTypes = this.convertActionTypesWithFullLogicRulesFromBlockData(\n blockdata.actionTypes,\n blockdata,\n );\n // Post-process object types to use UUID-based RIDs\n const objectTypes = this.convertObjectTypesWithUuidRids(\n baseMetadata.objectTypes,\n );\n\n return {\n ...baseMetadata,\n objectTypes,\n actionTypes,\n ontology: {\n apiName: \"ontology\",\n rid: \"ri.ontology.main.ontology.0\",\n displayName: \"ontology\",\n description: \"local ontology\",\n },\n };\n }\n\n /**\n * Post-process object types to use UUID-based RIDs for properties and link types.\n */\n private static convertObjectTypesWithUuidRids(\n objectTypes: Record<string, Ontologies.ObjectTypeFullMetadata>,\n ): Record<string, Ontologies.ObjectTypeFullMetadata> {\n const result: Record<string, Ontologies.ObjectTypeFullMetadata> = {};\n\n for (const [apiName, fullMetadata] of Object.entries(objectTypes)) {\n const objectType = fullMetadata.objectType;\n const properties: Record<string, Ontologies.PropertyV2> = {};\n\n for (const [propKey, prop] of Object.entries(objectType.properties)) {\n properties[propKey] = {\n ...prop,\n rid: `ri.ontology.main.property.${toUuid(apiName + \".\" + propKey)}`,\n };\n }\n\n const linkTypes = fullMetadata.linkTypes.map(lt => ({\n ...lt,\n linkTypeRid: `ri.ontology.main.link-type.${\n toUuid(lt.linkTypeRid || lt.apiName)\n }` as Ontologies.LinkTypeRid,\n }));\n\n result[apiName] = {\n ...fullMetadata,\n linkTypes,\n objectType: {\n ...objectType,\n rid: `ri.ontology.main.object-type.${toUuid(apiName)}`,\n properties,\n },\n };\n }\n\n return result;\n }\n\n /**\n * Convert IR action types to ActionTypeFullMetadata format.\n * Reuses base converter for action type conversion, then process\n * RIDs to use UUID-based format and adds fullLogicRules.\n */\n private static convertActionTypesWithFullLogicRulesFromBlockData(\n actions: Record<string, ActionTypeBlockDataV2>,\n blockdata: OntologyBlockDataV2,\n ): Record<string, Ontologies.ActionTypeFullMetadata> {\n const objectTypeLookup = buildBlockDataObjectTypeLookup(blockdata);\n const interfaceTypeLookup = buildBlockDataInterfaceTypeLookup(blockdata);\n const baseActionTypes = OntologyBlockDataToFullMetadataConverter\n .getOsdkActionTypesFromBlockData(\n blockdata,\n objectTypeLookup,\n interfaceTypeLookup,\n );\n\n // Build a lookup from apiName to the original IR action for logic rules\n const actionsByApiName = new Map(\n Object.values(actions).map(a => [a.actionType.metadata.apiName, a]),\n );\n const result: Record<string, Ontologies.ActionTypeFullMetadata> = {};\n for (const [apiName, baseActionType] of Object.entries(baseActionTypes)) {\n const action = actionsByApiName.get(apiName)!;\n result[apiName] = {\n actionType: {\n ...baseActionType,\n },\n fullLogicRules: convertBlockDataLogicRulesToActionLogicRules(\n action.actionType.actionTypeLogic.logic.rules,\n action,\n blockdata,\n ),\n };\n }\n\n return result;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|