@osdk/maker 0.10.0-beta.21 → 0.10.0-beta.22
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 +6 -0
- package/build/browser/api/defineAction.js +2 -2
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/cjs/index.cjs +3 -3
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/api/defineAction.js +2 -2
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -55,7 +55,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType) {
|
|
|
55
55
|
validation: {
|
|
56
56
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
57
57
|
listLength: {}
|
|
58
|
-
} :
|
|
58
|
+
} : prop.required,
|
|
59
59
|
allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
|
|
60
60
|
}
|
|
61
61
|
}))],
|
|
@@ -138,7 +138,7 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType) {
|
|
|
138
138
|
validation: {
|
|
139
139
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
140
140
|
listLength: {}
|
|
141
|
-
} :
|
|
141
|
+
} : prop.required,
|
|
142
142
|
allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
|
|
143
143
|
}
|
|
144
144
|
}))],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","defineCreateInterfaceObjectAction","interfaceType","objectType","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","Object","entries","propertiesV2","map","prop","sharedPropertyType","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","parameterId","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","actionTypes","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","forEach","rule","some","fullAction","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase"],"sources":["defineAction.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 { ParameterId } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n ActionParameterAllowedValues,\n ActionParameterType,\n ActionParameterTypePrimitive,\n ActionType,\n InterfaceType,\n ObjectPropertyType,\n ObjectType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : true,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, { type: \"parameterId\", parameterId: p.apiName }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n }],\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : true,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [\n {\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName,\n }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n },\n ],\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `delete-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: \"active\",\n rules: [\n {\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n },\n ],\n });\n}\n\nexport function defineAction(actionDef: ActionType): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\n const fullAction = { ...actionDef, apiName: apiName };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\n\nfunction referencedParameterIds(actionDef: ActionType): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","defineCreateInterfaceObjectAction","interfaceType","objectType","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","Object","entries","propertiesV2","map","prop","sharedPropertyType","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","parameterId","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","actionTypes","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","forEach","rule","some","fullAction","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase"],"sources":["defineAction.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 { ParameterId } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n ActionParameterAllowedValues,\n ActionParameterType,\n ActionParameterTypePrimitive,\n ActionType,\n InterfaceType,\n ObjectPropertyType,\n ObjectType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, { type: \"parameterId\", parameterId: p.apiName }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n }],\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [\n {\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName,\n }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n },\n ],\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `delete-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: \"active\",\n rules: [\n {\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n },\n ],\n });\n}\n\nexport function defineAction(actionDef: ActionType): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\n const fullAction = { ...actionDef, apiName: apiName };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\n\nfunction referencedParameterIds(actionDef: ActionType): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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.10.0-beta.
|
|
29
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.10.0-beta.22" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
30
30
|
input: {
|
|
31
31
|
alias: "i",
|
|
32
32
|
describe: "Input file",
|
package/build/cjs/index.cjs
CHANGED
|
@@ -1106,7 +1106,7 @@ function unifyBasePropertyDefinition(apiName, type) {
|
|
|
1106
1106
|
// src/cli/main.ts
|
|
1107
1107
|
var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
|
|
1108
1108
|
async function main(args = process.argv) {
|
|
1109
|
-
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.10.0-beta.
|
|
1109
|
+
const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.10.0-beta.22").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
|
|
1110
1110
|
input: {
|
|
1111
1111
|
alias: "i",
|
|
1112
1112
|
describe: "Input file",
|
|
@@ -1197,7 +1197,7 @@ function defineCreateInterfaceObjectAction(interfaceType, objectType) {
|
|
|
1197
1197
|
validation: {
|
|
1198
1198
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
1199
1199
|
listLength: {}
|
|
1200
|
-
} :
|
|
1200
|
+
} : prop.required,
|
|
1201
1201
|
allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
|
|
1202
1202
|
}
|
|
1203
1203
|
}))],
|
|
@@ -1280,7 +1280,7 @@ function defineModifyInterfaceObjectAction(interfaceType, objectType) {
|
|
|
1280
1280
|
validation: {
|
|
1281
1281
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
1282
1282
|
listLength: {}
|
|
1283
|
-
} :
|
|
1283
|
+
} : prop.required,
|
|
1284
1284
|
allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
|
|
1285
1285
|
}
|
|
1286
1286
|
}))],
|
package/build/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/api/defineObject.ts","../../src/api/defineOntology.ts","../../src/api/defineSpt.ts","../../src/api/defineInterface.ts","../../src/cli/main.ts","../../src/api/defineAction.ts","../../src/api/defineImportSpt.ts","../../src/api/defineInterfaceLinkConstraint.ts","../../src/api/defineLink.ts","../../src/api/defineValueType.ts"],"names":["invariant","apiName","yargs","hideBin","path","consola","fs"],"mappings":"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","file":"index.cjs","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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION = /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\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 !propertyApiNames.includes(objectDef.primaryKeyPropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;\n const retentionPeriod = objectDef.datasource?.retentionPeriod;\n !(retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`) : invariant(false) : void 0;\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties = (objectDef.properties ?? []).filter(property => property.status === \"active\").map(property => property.apiName);\n !(activeProperties.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${activeProperties.join(\", \")}`) : invariant(false) : void 0;\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (objectDef.status && typeof objectDef.status === \"object\" && objectDef.status.type === \"deprecated\") {\n const deadline = objectDef.status.deadline;\n !(deadline !== undefined && ISO_8601_DATETIME.test(deadline)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`) : invariant(false) : void 0;\n }\n !(objectDef.properties ?? []).filter(p => p.apiName === objectDef.titlePropertyApiName).every(p => !isExotic(p.type)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} must be a primitive type`) : invariant(false) : void 0;\n !(objectDef.properties ?? []).filter(p => p.apiName === objectDef.primaryKeyPropertyApiName).every(p => !isExotic(p.type)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key properties ${objectDef.primaryKeyPropertyApiName} can only be primitive types`) : invariant(false) : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => interfaceImpl.implements.propertiesV2[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].sharedPropertyType.nonNameSpacedApiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1].sharedPropertyType, interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp[1].sharedPropertyType.nonNameSpacedApiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const baseValidations = Object.entries(interfaceImpl.implements.propertiesV2).map(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces.flatMap(interfaceApiName => Object.entries(ontologyDefinition.interfaceTypes[interfaceApiName].propertiesV2).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}\nexport function isExotic(type) {\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(type);\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\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 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\nimport invariant from \"tiny-invariant\";\nimport { isExotic } from \"./defineObject.js\";\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 linkTypes: {},\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 linkTypes: Object.fromEntries(Object.entries(ontology.linkTypes).map(([id, link]) => {\n return [id, convertLink(link)];\n })),\n actionTypes: Object.fromEntries(Object.entries(ontology.actionTypes).map(([apiName, action]) => {\n return [apiName, convertAction(action)];\n })),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {}\n }\n },\n importedTypes: ontology.importedTypes\n };\n}\nfunction convertObject(objectType) {\n const propertyDatasources = (objectType.properties ?? []).flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, objectType.properties ?? []));\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.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\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: [...propertyDatasources, objectDatasource],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false\n }\n };\n}\nfunction extractPropertyDatasource(property, objectTypeApiName) {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type) {\n case \"geotimeSeries\":\n const geotimeDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName]\n }\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName]\n }\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\nfunction buildDatasource(apiName, definition) {\n return {\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: false\n };\n}\nfunction convertDatasourceDefinition(objectType, properties) {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy = window ? {\n type: \"time\",\n time: {\n window\n }\n } : {\n type: \"none\",\n none: {}\n };\n const propertyMapping = Object.fromEntries(properties.map(prop => [prop.apiName, prop.apiName]));\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: objectType.apiName,\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined\n }\n };\n case \"dataset\":\n default:\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: Object.fromEntries(properties.map(prop => [prop.apiName, {\n type: \"column\",\n column: prop.apiName\n }]))\n }\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: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined\n };\n return output;\n}\nfunction convertLink(linkType) {\n let definition;\n let datasource = undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: \"ONE_TO_ONE\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeyPropertyApiName,\n object: linkType.one.object.apiName\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName\n }\n }]\n }\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n }\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n }\n }]\n }\n };\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.id),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.id),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n },\n column: linkType.many.object.primaryKeyPropertyApiName\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n },\n column: linkType.many.object.primaryKeyPropertyApiName\n }]\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: linkType.redacted\n };\n }\n return {\n linkType: {\n definition: definition,\n id: linkType.id,\n status: linkType.status ?? {\n type: \"active\",\n active: {}\n },\n redacted: linkType.redacted ?? false\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false\n }\n };\n}\nfunction convertInterface(interfaceType) {\n return {\n ...interfaceType,\n propertiesV2: Object.fromEntries(Object.values(interfaceType.propertiesV2).map(spt => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType)\n }])),\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 allPropertiesV2: {},\n properties: []\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 visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability\n}) {\n const dataConstraint = convertNullabilityToDataConstraint({\n type,\n nullability\n });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: 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 typeof type === \"object\" && \"isLongText\" in type:\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard: type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching\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 case type === \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\nfunction convertObjectStatus(status) {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {}\n };\n }\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n }\n return status;\n}\nfunction convertAction(action) {\n const actionValidation = convertActionValidation(action);\n const actionParameters = convertActionParameters(action);\n const actionSections = convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules\n },\n validation: actionValidation\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1\n }\n },\n enableLayoutUserSwitch: false\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? {\n locator: \"edit\",\n color: \"#000000\"\n }\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? []\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\" ? {\n type: action.status,\n [action.status]: {}\n } : action.status\n }\n }\n };\n}\nfunction convertActionValidation(action) {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries((action.validation ?? [{\n condition: {\n type: \"true\",\n true: {}\n },\n displayMetadata: {\n failureMessage: \"\",\n typeClasses: []\n }\n }]).map((rule, idx) => [idx, rule]))\n },\n parameterValidations: Object.fromEntries((action.parameters ?? []).map(p => {\n return [p.id, {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p),\n visibility: {\n type: \"editable\",\n editable: {}\n }\n },\n validation: {\n allowedValues: extractAllowedValues(p),\n required: convertParameterRequirementConstraint(p.validation.required)\n }\n }\n }];\n }))\n };\n}\nfunction convertActionParameters(action) {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: typeof p.type === \"string\" ? {\n type: p.type,\n [p.type]: {}\n } : p.type,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: []\n }\n }]));\n}\nfunction convertActionSections(action) {\n return Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, parameterIds]) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({\n type: \"parameterId\",\n parameterId: p\n })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true\n }\n }]));\n}\nfunction extractAllowedValues(parameter) {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: {\n allowed: false\n }\n }\n }\n };\n case \"range\":\n const {\n min,\n max\n } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined ? {} : {\n minimum: {\n inclusive: true,\n value: min\n }\n }),\n ...(max === undefined ? {} : {\n maximum: {\n inclusive: true,\n value: max\n }\n })\n }\n }\n };\n case \"text\":\n const {\n minLength,\n maxLength,\n regex\n } = parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined ? {} : {\n minimumLength: minLength\n }),\n ...(maxLength === undefined ? {} : {\n maximumLength: maxLength\n }),\n ...(regex === undefined ? {} : {\n regex: {\n regex: regex,\n failureMessage: \"Invalid input\"\n }\n })\n }\n }\n };\n case \"datetime\":\n const {\n minimum,\n maximum\n } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum\n }\n }\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: parameter.validation.allowedValues.interfaceTypes\n }\n }\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {}\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {}\n }\n };\n default:\n const k = parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {}\n }\n };\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\nfunction renderHintFromBaseType(parameter) {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\" ? parameter.type : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"checkbox\",\n checkbox: {}\n };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return {\n type: \"numericInput\",\n numericInput: {}\n };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return {\n type: \"textInput\",\n textInput: {}\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"dateTimePicker\",\n dateTimePicker: {}\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"filePicker\",\n filePicker: {}\n };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return {\n type: \"mandatoryMarkingPicker\",\n mandatoryMarkingPicker: {}\n };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return {\n type: \"cbacMarkingPicker\",\n cbacMarkingPicker: {}\n };\n } else {\n throw new Error(`The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`);\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return {\n type: \"dropdown\",\n dropdown: {}\n };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\nfunction convertParameterRequirementConstraint(required) {\n if (typeof required === \"boolean\") {\n return required ? {\n type: \"required\",\n required: {}\n } : {\n type: \"notRequired\",\n notRequired: {}\n };\n }\n const {\n min,\n max\n } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: {\n minLength: min,\n maxLength: max\n }\n };\n}\nfunction convertNullabilityToDataConstraint(prop) {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noEmptyCollections: true,\n noNulls: true\n }\n };\n }\n !prop.nullability?.noNulls ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Marking property type has noNulls set to false, marking properties must not be nullable\") : invariant(false) : void 0;\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\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 === \"object\" && \"propertyDefinition\" in type) {\n return [apiName, {\n required: type.required,\n sharedPropertyType: unifyBasePropertyDefinition(apiName, type.propertyDefinition)\n }];\n }\n return [apiName, {\n required: true,\n sharedPropertyType: unifyBasePropertyDefinition(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 status,\n propertiesV2: properties\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}\nfunction unifyBasePropertyDefinition(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 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 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 { 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 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 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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nexport function defineCreateInterfaceObjectAction(interfaceType, objectType) {\n return defineAction({\n apiName: `create-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [interfaceType.apiName]\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName]\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...Object.entries(interfaceType.propertiesV2).map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : true,\n allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n rules: [{\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(Object.entries(interfaceType.propertiesV2).map(([id, prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }]\n });\n}\nexport function defineCreateObjectAction(objectType) {\n return defineAction({\n apiName: `create-object-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type)\n }\n })) ?? [])],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties ? Object.fromEntries(objectType.properties.map(p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName\n }])) : {},\n structFieldValues: {}\n }\n }]\n });\n}\nexport function defineModifyInterfaceObjectAction(interfaceType, objectType) {\n return defineAction({\n apiName: `modify-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: interfaceType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"interfaceObjectQuery\"\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...Object.entries(interfaceType.propertiesV2).map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : true,\n allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n rules: [{\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(Object.entries(interfaceType.propertiesV2).map(([id, prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }]\n });\n}\nexport function defineModifyObjectAction(objectType) {\n return defineAction({\n apiName: `modify-object-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [{\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: objectType.apiName\n }\n },\n validation: {\n allowedValues: {\n type: \"objectQuery\"\n },\n required: true\n }\n }, ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type)\n }\n })) ?? [])],\n status: \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties ? Object.fromEntries(objectType.properties.map(p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName\n }])) : {},\n structFieldValues: {}\n }\n }]\n });\n}\nexport function defineDeleteObjectAction(objectType) {\n return defineAction({\n apiName: `delete-object-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [{\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: objectType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: {\n type: \"objectQuery\"\n }\n }\n }],\n status: \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\"\n }\n }]\n });\n}\nexport function defineAction(actionDef) {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(`Action type with apiName ${actionDef.apiName} is already defined`);\n }\n !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`) : invariant(false) : void 0;\n const parameterIdsSet = new Set(parameterIds);\n !(parameterIdsSet.size === parameterIds.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter ids must be unique`) : invariant(false) : void 0;\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef)).filter(p => !parameterIdsSet.has(p));\n !(parameterIdsNotFound.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameters ${JSON.stringify(parameterIdsNotFound)} were referenced but not defined`) : invariant(false) : void 0;\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? []).flatMap(s => s.type === \"parameterId\" ? [] : [s.sectionId]).filter(sId => !definedSectionIds.has(sId));\n !(undefinedSectionsInOrdering.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`) : invariant(false) : void 0;\n !(actionDef.rules.length > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type ${actionDef.apiName} must have at least one logic rule`) : invariant(false) : void 0;\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n !parameterIds.some(id => id === rule.modifyObjectRule.objectToModify) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to modify parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n if (rule.type === \"deleteObjectRule\") {\n !parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to delete parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n });\n const fullAction = {\n ...actionDef,\n apiName: apiName\n };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\nfunction referencedParameterIds(actionDef) {\n const parameterIds = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {}).flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(rule.addInterfaceRule.interfaceApiName);\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n });\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(rule.modifyInterfaceRule.interfaceObjectToModifyParameter);\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n });\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n }\n });\n return parameterIds;\n}\nfunction extractAllowedValuesFromType(type) {\n switch (type) {\n case \"boolean\":\n return {\n type: \"boolean\"\n };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 255\n }\n }\n };\n case \"timestamp\":\n case \"date\":\n return {\n type: \"datetime\"\n };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return {\n type: \"range\"\n };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 65535\n }\n }\n };\n case \"string\":\n return {\n type: \"text\"\n };\n case \"geopoint\":\n case \"geoshape\":\n return {\n type: \"geoshape\"\n };\n case \"mediaReference\":\n return {\n type: \"mediaReference\"\n };\n case \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\"\n };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\" ? {\n type: \"cbacMarking\"\n } : {\n type: \"mandatoryMarking\"\n };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\nfunction extractActionParameterType(pt) {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\nfunction maybeAddList(type, pt) {\n return pt.array ?? false ? type + \"List\" : type;\n}\nfunction isActionParameterTypePrimitive(type) {\n return [\"boolean\", \"booleanList\", \"integer\", \"integerList\", \"long\", \"longList\", \"double\", \"doubleList\", \"string\", \"stringList\", \"decimal\", \"decimalList\", \"timestamp\", \"timestampList\", \"geohash\", \"geohashList\", \"geoshape\", \"geoshapeList\", \"timeSeriesReference\", \"date\", \"dateList\", \"objectTypeReference\", \"objectReference\", \"attachment\", \"attachmentList\", \"marking\", \"markingList\", \"mediaReference\", \"mediaReferenceList\", \"geotimeSeriesReference\", \"geotimeSeriesReferenceList\"].includes(type);\n}\nfunction kebab(s) {\n return s.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\").replace(/\\./g, \"-\").toLowerCase();\n}\nfunction sanitize(s) {\n return s.includes(\".\") ? s : namespace + s;\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 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 invariant from \"tiny-invariant\";\nimport { ontologyDefinition } from \"./defineOntology.js\";\nconst defaultTypeClasses = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\"\n}, {\n kind: \"render_hint\",\n name: \"SORTABLE\"\n}];\nexport function defineLink(linkDefinition) {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.find(prop => prop.apiName === linkDefinition.manyForeignKeyProperty);\n !(foreignKey !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.id} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;\n const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.find(prop => prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName)?.type;\n !typesMatch ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link ${linkDefinition.id} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;\n }\n ontologyDefinition.linkTypes[linkDefinition.id] = linkDefinition;\n return linkDefinition;\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/defineObject.ts","../../src/api/defineOntology.ts","../../src/api/defineSpt.ts","../../src/api/defineInterface.ts","../../src/cli/main.ts","../../src/api/defineAction.ts","../../src/api/defineImportSpt.ts","../../src/api/defineInterfaceLinkConstraint.ts","../../src/api/defineLink.ts","../../src/api/defineValueType.ts"],"names":["invariant","apiName","yargs","hideBin","path","consola","fs"],"mappings":"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","file":"index.cjs","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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION = /^P(?!$)(?:(?:((?:\\d+Y)|(?:\\d+(?:\\.|,)\\d+Y$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+D)|(?:\\d+(?:\\.|,)\\d+D$))?(T((?:\\d+H)|(?:\\d+(?:\\.|,)\\d+H$))?((?:\\d+M)|(?:\\d+(?:\\.|,)\\d+M$))?((?:\\d+S)|(?:\\d+(?:\\.|,)\\d+S$))?)?)|(?:\\d+(?:(?:\\.|,)\\d+)?W))$/;\n\n// ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)\nconst ISO_8601_DATETIME = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\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 !propertyApiNames.includes(objectDef.primaryKeyPropertyApiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`) : invariant(false) : void 0;\n const retentionPeriod = objectDef.datasource?.retentionPeriod;\n !(retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`) : invariant(false) : void 0;\n\n // Validate that if object status is experimental, no property can have a status of active\n if (objectDef.status === \"experimental\") {\n const activeProperties = (objectDef.properties ?? []).filter(property => property.status === \"active\").map(property => property.apiName);\n !(activeProperties.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${activeProperties.join(\", \")}`) : invariant(false) : void 0;\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (objectDef.status && typeof objectDef.status === \"object\" && objectDef.status.type === \"deprecated\") {\n const deadline = objectDef.status.deadline;\n !(deadline !== undefined && ISO_8601_DATETIME.test(deadline)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`) : invariant(false) : void 0;\n }\n !(objectDef.properties ?? []).filter(p => p.apiName === objectDef.titlePropertyApiName).every(p => !isExotic(p.type)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Title property ${objectDef.titlePropertyApiName} must be a primitive type`) : invariant(false) : void 0;\n !(objectDef.properties ?? []).filter(p => p.apiName === objectDef.primaryKeyPropertyApiName).every(p => !isExotic(p.type)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Primary key properties ${objectDef.primaryKeyPropertyApiName} can only be primitive types`) : invariant(false) : void 0;\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties = interfaceImpl.propertyMapping.map(val => val.interfaceProperty).filter(interfaceProperty => interfaceImpl.implements.propertiesV2[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].sharedPropertyType.nonNameSpacedApiName in interfaceToObjectProperties) {\n return validateInterfaceImplProperty(interfaceProp[1].sharedPropertyType, interfaceToObjectProperties[interfaceProp[0]], objectDef);\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp[1].sharedPropertyType.nonNameSpacedApiName} not implemented by ${objectDef.apiName} object definition`\n };\n };\n const baseValidations = Object.entries(interfaceImpl.implements.propertiesV2).map(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces.flatMap(interfaceApiName => Object.entries(ontologyDefinition.interfaceTypes[interfaceApiName].propertiesV2).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}\nexport function isExotic(type) {\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(type);\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\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 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\nimport invariant from \"tiny-invariant\";\nimport { isExotic } from \"./defineObject.js\";\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 linkTypes: {},\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 linkTypes: Object.fromEntries(Object.entries(ontology.linkTypes).map(([id, link]) => {\n return [id, convertLink(link)];\n })),\n actionTypes: Object.fromEntries(Object.entries(ontology.actionTypes).map(([apiName, action]) => {\n return [apiName, convertAction(action)];\n })),\n blockPermissionInformation: {\n actionTypes: {},\n linkTypes: {},\n objectTypes: {}\n }\n },\n importedTypes: ontology.importedTypes\n };\n}\nfunction convertObject(objectType) {\n const propertyDatasources = (objectType.properties ?? []).flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n const objectDatasource = buildDatasource(objectType.apiName, convertDatasourceDefinition(objectType, objectType.properties ?? []));\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.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\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: [...propertyDatasources, objectDatasource],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false\n }\n };\n}\nfunction extractPropertyDatasource(property, objectTypeApiName) {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type) {\n case \"geotimeSeries\":\n const geotimeDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName]\n }\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName]\n }\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\nfunction buildDatasource(apiName, definition) {\n return {\n rid: \"ri.ontology.main.datasource.\".concat(apiName),\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: false\n };\n}\nfunction convertDatasourceDefinition(objectType, properties) {\n switch (objectType.datasource?.type) {\n case \"stream\":\n const window = objectType.datasource.retentionPeriod;\n const retentionPolicy = window ? {\n type: \"time\",\n time: {\n window\n }\n } : {\n type: \"none\",\n none: {}\n };\n const propertyMapping = Object.fromEntries(properties.map(prop => [prop.apiName, prop.apiName]));\n return {\n type: \"streamV2\",\n streamV2: {\n streamLocator: objectType.apiName,\n propertyMapping,\n retentionPolicy,\n propertySecurityGroups: undefined\n }\n };\n case \"dataset\":\n default:\n return {\n type: \"datasetV2\",\n datasetV2: {\n datasetRid: objectType.apiName,\n propertyMapping: Object.fromEntries(properties.map(prop => [prop.apiName, {\n type: \"column\",\n column: prop.apiName\n }]))\n }\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: convertObjectStatus(property.status),\n inlineAction: undefined,\n dataConstraints: convertNullabilityToDataConstraint(property),\n sharedPropertyTypeRid: property.sharedPropertyType?.apiName,\n valueType: undefined\n };\n return output;\n}\nfunction convertLink(linkType) {\n let definition;\n let datasource = undefined;\n if (\"one\" in linkType) {\n definition = {\n type: \"oneToMany\",\n oneToMany: {\n cardinalityHint: \"ONE_TO_ONE\",\n manyToOneLinkMetadata: linkType.toMany.metadata,\n objectTypeRidManySide: linkType.toMany.object.apiName,\n objectTypeRidOneSide: linkType.one.object.apiName,\n oneToManyLinkMetadata: linkType.one.metadata,\n oneSidePrimaryKeyToManySidePropertyMapping: [{\n from: {\n apiName: linkType.one.object.primaryKeyPropertyApiName,\n object: linkType.one.object.apiName\n },\n to: {\n apiName: linkType.manyForeignKeyProperty,\n object: linkType.toMany.object.apiName\n }\n }]\n }\n };\n } else {\n definition = {\n type: \"manyToMany\",\n manyToMany: {\n objectTypeAToBLinkMetadata: linkType.many.metadata,\n objectTypeBToALinkMetadata: linkType.toMany.metadata,\n objectTypeRidA: linkType.many.object.apiName,\n objectTypeRidB: linkType.toMany.object.apiName,\n peeringMetadata: undefined,\n objectTypeAPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n },\n to: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n }\n }],\n objectTypeBPrimaryKeyPropertyMapping: [{\n from: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n },\n to: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n }\n }]\n }\n };\n datasource = {\n rid: \"ri.ontology.main.datasource.link-\".concat(linkType.id),\n datasource: {\n type: \"dataset\",\n dataset: {\n datasetRid: \"link-\".concat(linkType.id),\n writebackDatasetRid: undefined,\n objectTypeAPrimaryKeyMapping: [{\n property: {\n apiName: linkType.many.object.primaryKeyPropertyApiName,\n object: linkType.many.object.apiName\n },\n column: linkType.many.object.primaryKeyPropertyApiName\n }],\n objectTypeBPrimaryKeyMapping: [{\n property: {\n apiName: linkType.toMany.object.primaryKeyPropertyApiName,\n object: linkType.toMany.object.apiName\n },\n column: linkType.many.object.primaryKeyPropertyApiName\n }]\n }\n },\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false\n },\n redacted: linkType.redacted\n };\n }\n return {\n linkType: {\n definition: definition,\n id: linkType.id,\n status: linkType.status ?? {\n type: \"active\",\n active: {}\n },\n redacted: linkType.redacted ?? false\n },\n datasources: datasource !== undefined ? [datasource] : [],\n entityMetadata: {\n arePatchesEnabled: linkType.editsEnabled ?? false\n }\n };\n}\nfunction convertInterface(interfaceType) {\n return {\n ...interfaceType,\n propertiesV2: Object.fromEntries(Object.values(interfaceType.propertiesV2).map(spt => [spt.sharedPropertyType.apiName, {\n required: spt.required,\n sharedPropertyType: convertSpt(spt.sharedPropertyType)\n }])),\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 allPropertiesV2: {},\n properties: []\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 visibility,\n gothamMapping,\n typeClasses,\n valueType,\n nullability\n}) {\n const dataConstraint = convertNullabilityToDataConstraint({\n type,\n nullability\n });\n return {\n apiName,\n displayMetadata: {\n displayName: displayName ?? apiName,\n visibility: 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 typeof type === \"object\" && \"isLongText\" in type:\n return {\n \"type\": \"string\",\n \"string\": {\n analyzerOverride: undefined,\n enableAsciiFolding: undefined,\n isLongText: type.isLongText,\n supportsEfficientLeadingWildcard: type.supportsEfficientLeadingWildcard,\n supportsExactMatching: type.supportsExactMatching\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 case type === \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {}\n };\n default:\n // use helper function to distribute `type` properly\n return distributeTypeHelper(type);\n }\n}\nfunction convertObjectStatus(status) {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {}\n };\n }\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {}\n };\n }\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined\n }\n };\n }\n return status;\n}\nfunction convertAction(action) {\n const actionValidation = convertActionValidation(action);\n const actionParameters = convertActionParameters(action);\n const actionSections = convertActionSections(action);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules\n },\n validation: actionValidation\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: \"FORM\",\n displayAndFormat: {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1\n }\n },\n enableLayoutUserSwitch: false\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? {\n locator: \"edit\",\n color: \"#000000\"\n }\n },\n successMessage: [],\n typeClasses: action.typeClasses ?? []\n },\n formContentOrdering: action.formContentOrdering ?? [],\n parameterOrdering: (action.parameters ?? []).map(p => p.id),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\" ? {\n type: action.status,\n [action.status]: {}\n } : action.status\n }\n }\n };\n}\nfunction convertActionValidation(action) {\n return {\n actionTypeLevelValidation: {\n rules: Object.fromEntries((action.validation ?? [{\n condition: {\n type: \"true\",\n true: {}\n },\n displayMetadata: {\n failureMessage: \"\",\n typeClasses: []\n }\n }]).map((rule, idx) => [idx, rule]))\n },\n parameterValidations: Object.fromEntries((action.parameters ?? []).map(p => {\n return [p.id, {\n defaultValidation: {\n display: {\n renderHint: renderHintFromBaseType(p),\n visibility: {\n type: \"editable\",\n editable: {}\n }\n },\n validation: {\n allowedValues: extractAllowedValues(p),\n required: convertParameterRequirementConstraint(p.validation.required)\n }\n }\n }];\n }))\n };\n}\nfunction convertActionParameters(action) {\n return Object.fromEntries((action.parameters ?? []).map(p => [p.id, {\n id: p.id,\n type: typeof p.type === \"string\" ? {\n type: p.type,\n [p.type]: {}\n } : p.type,\n displayMetadata: {\n displayName: p.displayName,\n description: p.description ?? \"\",\n typeClasses: []\n }\n }]));\n}\nfunction convertActionSections(action) {\n return Object.fromEntries(Object.entries(action.sections ?? {}).map(([sectionId, parameterIds]) => [sectionId, {\n id: sectionId,\n content: parameterIds.map(p => ({\n type: \"parameterId\",\n parameterId: p\n })),\n displayMetadata: {\n collapsedByDefault: false,\n columnCount: 1,\n description: \"\",\n displayName: sectionId,\n showTitleBar: true\n }\n }]));\n}\nfunction extractAllowedValues(parameter) {\n switch (parameter.validation.allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: parameter.validation.allowedValues.oneOf,\n otherValueAllowed: {\n allowed: false\n }\n }\n }\n };\n case \"range\":\n const {\n min,\n max\n } = parameter.validation.allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined ? {} : {\n minimum: {\n inclusive: true,\n value: min\n }\n }),\n ...(max === undefined ? {} : {\n maximum: {\n inclusive: true,\n value: max\n }\n })\n }\n }\n };\n case \"text\":\n const {\n minLength,\n maxLength,\n regex\n } = parameter.validation.allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined ? {} : {\n minimumLength: minLength\n }),\n ...(maxLength === undefined ? {} : {\n maximumLength: maxLength\n }),\n ...(regex === undefined ? {} : {\n regex: {\n regex: regex,\n failureMessage: \"Invalid input\"\n }\n })\n }\n }\n };\n case \"datetime\":\n const {\n minimum,\n maximum\n } = parameter.validation.allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum\n }\n }\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: parameter.validation.allowedValues.interfaceTypes\n }\n }\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {}\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {}\n }\n };\n default:\n const k = parameter.validation.allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {}\n }\n };\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\nfunction renderHintFromBaseType(parameter) {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\" ? parameter.type : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return {\n type: \"checkbox\",\n checkbox: {}\n };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return {\n type: \"numericInput\",\n numericInput: {}\n };\n case \"string\":\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return {\n type: \"textInput\",\n textInput: {}\n };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return {\n type: \"dateTimePicker\",\n dateTimePicker: {}\n };\n case \"attachment\":\n case \"attachmentList\":\n return {\n type: \"filePicker\",\n filePicker: {}\n };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues.type === \"mandatoryMarking\") {\n return {\n type: \"mandatoryMarkingPicker\",\n mandatoryMarkingPicker: {}\n };\n } else if (parameter.validation.allowedValues.type === \"cbacMarking\") {\n return {\n type: \"cbacMarkingPicker\",\n cbacMarkingPicker: {}\n };\n } else {\n throw new Error(`The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`);\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return {\n type: \"dropdown\",\n dropdown: {}\n };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\nfunction convertParameterRequirementConstraint(required) {\n if (typeof required === \"boolean\") {\n return required ? {\n type: \"required\",\n required: {}\n } : {\n type: \"notRequired\",\n notRequired: {}\n };\n }\n const {\n min,\n max\n } = required.listLength;\n return {\n type: \"listLengthValidation\",\n listLengthValidation: {\n minLength: min,\n maxLength: max\n }\n };\n}\nfunction convertNullabilityToDataConstraint(prop) {\n if (typeof prop.type === \"object\" && prop.type.type === \"marking\") {\n if (prop.nullability === undefined) {\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: {\n noEmptyCollections: true,\n noNulls: true\n }\n };\n }\n !prop.nullability?.noNulls ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Marking property type has noNulls set to false, marking properties must not be nullable\") : invariant(false) : void 0;\n return {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\n };\n }\n return prop.nullability === undefined ? undefined : {\n propertyTypeConstraints: [],\n nullability: undefined,\n nullabilityV2: prop.nullability\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 === \"object\" && \"propertyDefinition\" in type) {\n return [apiName, {\n required: type.required,\n sharedPropertyType: unifyBasePropertyDefinition(apiName, type.propertyDefinition)\n }];\n }\n return [apiName, {\n required: true,\n sharedPropertyType: unifyBasePropertyDefinition(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 status,\n propertiesV2: properties\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}\nfunction unifyBasePropertyDefinition(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 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 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 { 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 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 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 invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nexport function defineCreateInterfaceObjectAction(interfaceType, objectType) {\n return defineAction({\n apiName: `create-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [interfaceType.apiName]\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName]\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...Object.entries(interfaceType.propertiesV2).map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : prop.required,\n allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n rules: [{\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(Object.entries(interfaceType.propertiesV2).map(([id, prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }]\n });\n}\nexport function defineCreateObjectAction(objectType) {\n return defineAction({\n apiName: `create-object-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type)\n }\n })) ?? [])],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties ? Object.fromEntries(objectType.properties.map(p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName\n }])) : {},\n structFieldValues: {}\n }\n }]\n });\n}\nexport function defineModifyInterfaceObjectAction(interfaceType, objectType) {\n return defineAction({\n apiName: `modify-${kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)}${objectType === undefined ? \"\" : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`}`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [{\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: interfaceType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined ? {\n type: \"interfaceObjectQuery\"\n } : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: {\n objectTypeId: objectType.apiName\n }\n }\n }]\n }\n }\n }, ...Object.entries(interfaceType.propertiesV2).map(([id, prop]) => ({\n id,\n displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: prop.sharedPropertyType.array ?? false ? {\n listLength: {}\n } : prop.required,\n allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)\n }\n }))],\n status: interfaceType.status.type !== \"deprecated\" ? interfaceType.status.type : interfaceType.status,\n rules: [{\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(Object.entries(interfaceType.propertiesV2).map(([id, prop]) => [id, {\n type: \"parameterId\",\n parameterId: id\n }]))\n }\n }]\n });\n}\nexport function defineModifyObjectAction(objectType) {\n return defineAction({\n apiName: `modify-object-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [{\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: objectType.apiName\n }\n },\n validation: {\n allowedValues: {\n type: \"objectQuery\"\n },\n required: true\n }\n }, ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type)\n }\n })) ?? [])],\n status: \"active\",\n rules: [{\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties ? Object.fromEntries(objectType.properties.map(p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName\n }])) : {},\n structFieldValues: {}\n }\n }]\n });\n}\nexport function defineDeleteObjectAction(objectType) {\n return defineAction({\n apiName: `delete-object-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [{\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: objectType.apiName\n }\n },\n validation: {\n required: true,\n allowedValues: {\n type: \"objectQuery\"\n }\n }\n }],\n status: \"active\",\n rules: [{\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\"\n }\n }]\n });\n}\nexport function defineAction(actionDef) {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(`Action type with apiName ${actionDef.apiName} is already defined`);\n }\n !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`) : invariant(false) : void 0;\n const parameterIdsSet = new Set(parameterIds);\n !(parameterIdsSet.size === parameterIds.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameter ids must be unique`) : invariant(false) : void 0;\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef)).filter(p => !parameterIdsSet.has(p));\n !(parameterIdsNotFound.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Parameters ${JSON.stringify(parameterIdsNotFound)} were referenced but not defined`) : invariant(false) : void 0;\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? []).flatMap(s => s.type === \"parameterId\" ? [] : [s.sectionId]).filter(sId => !definedSectionIds.has(sId));\n !(undefinedSectionsInOrdering.length === 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`) : invariant(false) : void 0;\n !(actionDef.rules.length > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Action type ${actionDef.apiName} must have at least one logic rule`) : invariant(false) : void 0;\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n !parameterIds.some(id => id === rule.modifyObjectRule.objectToModify) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to modify parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n if (rule.type === \"deleteObjectRule\") {\n !parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Object to delete parameter must be defined in parameters`) : invariant(false) : void 0;\n }\n });\n const fullAction = {\n ...actionDef,\n apiName: apiName\n };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\nfunction referencedParameterIds(actionDef) {\n const parameterIds = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {}).flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(rule.addInterfaceRule.interfaceApiName);\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n });\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(rule.modifyInterfaceRule.interfaceObjectToModifyParameter);\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n });\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n }\n });\n return parameterIds;\n}\nfunction extractAllowedValuesFromType(type) {\n switch (type) {\n case \"boolean\":\n return {\n type: \"boolean\"\n };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 255\n }\n }\n };\n case \"timestamp\":\n case \"date\":\n return {\n type: \"datetime\"\n };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return {\n type: \"range\"\n };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 0\n }\n },\n max: {\n type: \"staticValue\",\n staticValue: {\n type: \"integer\",\n integer: 65535\n }\n }\n };\n case \"string\":\n return {\n type: \"text\"\n };\n case \"geopoint\":\n case \"geoshape\":\n return {\n type: \"geoshape\"\n };\n case \"mediaReference\":\n return {\n type: \"mediaReference\"\n };\n case \"geotimeSeries\":\n return {\n type: \"geotimeSeriesReference\"\n };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\" ? {\n type: \"cbacMarking\"\n } : {\n type: \"mandatoryMarking\"\n };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\nfunction extractActionParameterType(pt) {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\nfunction maybeAddList(type, pt) {\n return pt.array ?? false ? type + \"List\" : type;\n}\nfunction isActionParameterTypePrimitive(type) {\n return [\"boolean\", \"booleanList\", \"integer\", \"integerList\", \"long\", \"longList\", \"double\", \"doubleList\", \"string\", \"stringList\", \"decimal\", \"decimalList\", \"timestamp\", \"timestampList\", \"geohash\", \"geohashList\", \"geoshape\", \"geoshapeList\", \"timeSeriesReference\", \"date\", \"dateList\", \"objectTypeReference\", \"objectReference\", \"attachment\", \"attachmentList\", \"marking\", \"markingList\", \"mediaReference\", \"mediaReferenceList\", \"geotimeSeriesReference\", \"geotimeSeriesReferenceList\"].includes(type);\n}\nfunction kebab(s) {\n return s.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\").replace(/\\./g, \"-\").toLowerCase();\n}\nfunction sanitize(s) {\n return s.includes(\".\") ? s : namespace + s;\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 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 invariant from \"tiny-invariant\";\nimport { ontologyDefinition } from \"./defineOntology.js\";\nconst defaultTypeClasses = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\"\n}, {\n kind: \"render_hint\",\n name: \"SORTABLE\"\n}];\nexport function defineLink(linkDefinition) {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.find(prop => prop.apiName === linkDefinition.manyForeignKeyProperty);\n !(foreignKey !== undefined) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.id} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;\n const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.find(prop => prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName)?.type;\n !typesMatch ? process.env.NODE_ENV !== \"production\" ? invariant(false, `Link ${linkDefinition.id} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;\n }\n ontologyDefinition.linkTypes[linkDefinition.id] = linkDefinition;\n return linkDefinition;\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}"]}
|
|
@@ -55,7 +55,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType) {
|
|
|
55
55
|
validation: {
|
|
56
56
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
57
57
|
listLength: {}
|
|
58
|
-
} :
|
|
58
|
+
} : prop.required,
|
|
59
59
|
allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
|
|
60
60
|
}
|
|
61
61
|
}))],
|
|
@@ -138,7 +138,7 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType) {
|
|
|
138
138
|
validation: {
|
|
139
139
|
required: prop.sharedPropertyType.array ?? false ? {
|
|
140
140
|
listLength: {}
|
|
141
|
-
} :
|
|
141
|
+
} : prop.required,
|
|
142
142
|
allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
|
|
143
143
|
}
|
|
144
144
|
}))],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","defineCreateInterfaceObjectAction","interfaceType","objectType","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","Object","entries","propertiesV2","map","prop","sharedPropertyType","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","parameterId","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","actionTypes","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","forEach","rule","some","fullAction","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase"],"sources":["defineAction.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 { ParameterId } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n ActionParameterAllowedValues,\n ActionParameterType,\n ActionParameterTypePrimitive,\n ActionType,\n InterfaceType,\n ObjectPropertyType,\n ObjectType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : true,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, { type: \"parameterId\", parameterId: p.apiName }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n }],\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : true,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [\n {\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName,\n }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n },\n ],\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `delete-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: \"active\",\n rules: [\n {\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n },\n ],\n });\n}\n\nexport function defineAction(actionDef: ActionType): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\n const fullAction = { ...actionDef, apiName: apiName };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\n\nfunction referencedParameterIds(actionDef: ActionType): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","defineCreateInterfaceObjectAction","interfaceType","objectType","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","Object","entries","propertiesV2","map","prop","sharedPropertyType","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","parameterId","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","actionTypes","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","forEach","rule","some","fullAction","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase"],"sources":["defineAction.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 { ParameterId } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n ActionParameterAllowedValues,\n ActionParameterType,\n ActionParameterTypePrimitive,\n ActionType,\n InterfaceType,\n ObjectPropertyType,\n ObjectType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, { type: \"parameterId\", parameterId: p.apiName }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n }],\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : prop.required,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [\n {\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName,\n }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n },\n ],\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `delete-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: \"active\",\n rules: [\n {\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n },\n ],\n });\n}\n\nexport function defineAction(actionDef: ActionType): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\n const fullAction = { ...actionDef, apiName: apiName };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\n\nfunction referencedParameterIds(actionDef: ActionType): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n"],"mappings":"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","ignoreList":[]}
|
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.10.0-beta.
|
|
29
|
+
const commandLineOpts = await yargs(hideBin(args)).version("0.10.0-beta.22" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
|
|
30
30
|
input: {
|
|
31
31
|
alias: "i",
|
|
32
32
|
describe: "Input file",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/maker",
|
|
3
|
-
"version": "0.10.0-beta.
|
|
3
|
+
"version": "0.10.0-beta.22",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"@types/yargs": "^17.0.32",
|
|
40
40
|
"typescript": "~5.5.4",
|
|
41
41
|
"vitest": "^3.0.5",
|
|
42
|
-
"@osdk/client.unstable": "~2.2.0-beta.21",
|
|
43
42
|
"@osdk/monorepo.api-extractor": "~0.1.0-beta.1",
|
|
44
|
-
"@osdk/monorepo.tsconfig": "~0.1.0-beta.1"
|
|
43
|
+
"@osdk/monorepo.tsconfig": "~0.1.0-beta.1",
|
|
44
|
+
"@osdk/client.unstable": "~2.2.0-beta.21"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|