@osdk/maker 0.10.0-beta.20 → 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.
Files changed (32) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/build/browser/api/defineAction.js +4 -2
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/api/defineObject.js +15 -0
  5. package/build/browser/api/defineObject.js.map +1 -1
  6. package/build/browser/api/defineOntology.js +33 -8
  7. package/build/browser/api/defineOntology.js.map +1 -1
  8. package/build/browser/api/objectStatus.test.js +160 -0
  9. package/build/browser/api/objectStatus.test.js.map +1 -0
  10. package/build/browser/api/types.js.map +1 -1
  11. package/build/browser/cli/main.js +1 -1
  12. package/build/cjs/index.cjs +77 -41
  13. package/build/cjs/index.cjs.map +1 -1
  14. package/build/cjs/index.d.cts +9 -2
  15. package/build/esm/api/defineAction.js +4 -2
  16. package/build/esm/api/defineAction.js.map +1 -1
  17. package/build/esm/api/defineObject.js +15 -0
  18. package/build/esm/api/defineObject.js.map +1 -1
  19. package/build/esm/api/defineOntology.js +33 -8
  20. package/build/esm/api/defineOntology.js.map +1 -1
  21. package/build/esm/api/objectStatus.test.js +160 -0
  22. package/build/esm/api/objectStatus.test.js.map +1 -0
  23. package/build/esm/api/types.js.map +1 -1
  24. package/build/esm/cli/main.js +1 -1
  25. package/build/types/api/defineAction.d.ts.map +1 -1
  26. package/build/types/api/defineObject.d.ts.map +1 -1
  27. package/build/types/api/defineOntology.d.ts.map +1 -1
  28. package/build/types/api/objectStatus.test.d.ts +1 -0
  29. package/build/types/api/objectStatus.test.d.ts.map +1 -0
  30. package/build/types/api/types.d.ts +9 -2
  31. package/build/types/api/types.d.ts.map +1 -1
  32. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.10.0-beta.22
4
+
5
+ ### Minor Changes
6
+
7
+ - 75f6b51: Propagate required/optional fields from interfaces to actions
8
+
9
+ ## 0.10.0-beta.21
10
+
11
+ ### Minor Changes
12
+
13
+ - 94663ab: Change the status definitions for objects and add validation for timestamps.
14
+ - f12caa4: Fix marking list for modify action
15
+ - 317b555: Release
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [317b555]
20
+ - @osdk/api@2.2.0-beta.21
21
+
3
22
  ## 0.10.0-beta.20
4
23
 
5
24
  ### Minor Changes
@@ -55,7 +55,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType) {
55
55
  validation: {
56
56
  required: prop.sharedPropertyType.array ?? false ? {
57
57
  listLength: {}
58
- } : true,
58
+ } : prop.required,
59
59
  allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
60
60
  }
61
61
  }))],
@@ -136,7 +136,9 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType) {
136
136
  type: extractActionParameterType(prop.sharedPropertyType),
137
137
  typeClasses: prop.sharedPropertyType.typeClasses ?? [],
138
138
  validation: {
139
- required: true,
139
+ required: prop.sharedPropertyType.array ?? false ? {
140
+ listLength: {}
141
+ } : prop.required,
140
142
  allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
141
143
  }
142
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: 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":[]}
@@ -18,6 +18,9 @@ import invariant from "tiny-invariant";
18
18
  import { namespace, ontologyDefinition } from "./defineOntology.js";
19
19
  // From https://stackoverflow.com/a/79288714
20
20
  const 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))$/;
21
+
22
+ // ISO 8601 date and time format (YYYY-MM-DDThh:mm:ss.sssZ)
23
+ const ISO_8601_DATETIME = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?)?$/;
21
24
  export function defineObject(objectDef) {
22
25
  const apiName = namespace + objectDef.apiName;
23
26
  const propertyApiNames = (objectDef.properties ?? []).map(val => val.apiName);
@@ -28,6 +31,18 @@ export function defineObject(objectDef) {
28
31
  !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;
29
32
  const retentionPeriod = objectDef.datasource?.retentionPeriod;
30
33
  !(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;
34
+
35
+ // Validate that if object status is experimental, no property can have a status of active
36
+ if (objectDef.status === "experimental") {
37
+ const activeProperties = (objectDef.properties ?? []).filter(property => property.status === "active").map(property => property.apiName);
38
+ !(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;
39
+ }
40
+
41
+ // Validate deprecated status deadline is in ISO 8601 format
42
+ if (objectDef.status && typeof objectDef.status === "object" && objectDef.status.type === "deprecated") {
43
+ const deadline = objectDef.status.deadline;
44
+ !(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;
45
+ }
31
46
  !(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;
32
47
  !(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;
33
48
  objectDef.implementsInterfaces?.forEach(interfaceImpl => {
@@ -1 +1 @@
1
- {"version":3,"file":"defineObject.js","names":["invariant","namespace","ontologyDefinition","ISO_8601_DURATION","defineObject","objectDef","apiName","propertyApiNames","properties","map","val","objectTypes","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeyPropertyApiName","retentionPeriod","datasource","test","filter","p","every","isExotic","type","implementsInterfaces","forEach","interfaceImpl","nonExistentInterfaceProperties","propertyMapping","interfaceProperty","implements","propertiesV2","interfaceProp","reason","interfaceToObjectProperties","Object","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","nonNameSpacedApiName","validateInterfaceImplProperty","baseValidations","entries","extendsValidations","extendsInterfaces","flatMap","interfaceApiName","interfaceTypes","allFailedValidations","concat","length","formatValidationErrors","join","error","spt","mappedObjectProp","object","objProp","find","prop"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n ObjectType,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^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\nexport function defineObject(objectDef: ObjectType): ObjectType {\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(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\n invariant(\n (objectDef.properties ?? []).filter(p =>\n p.apiName === objectDef.titlePropertyApiName\n ).every(p => !isExotic(p.type)),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n (objectDef.properties ?? []).filter(p =>\n p.apiName === objectDef.primaryKeyPropertyApiName\n ).every(p => !isExotic(p.type)),\n `Primary key properties ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n interfaceImpl.implements.propertiesV2[interfaceProperty]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, mapping.mapsTo],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const baseValidations = Object.entries(\n interfaceImpl.implements.propertiesV2,\n )\n .map<ValidationResult>(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces\n .flatMap(interfaceApiName =>\n Object.entries(\n ontologyDefinition.interfaceTypes[interfaceApiName].propertiesV2,\n ).map(validateProperty)\n );\n\n const allFailedValidations = baseValidations.concat(\n extendsValidations,\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n ontologyDefinition.objectTypes[apiName] = { ...objectDef, apiName: apiName };\n return { ...objectDef, apiName: apiName };\n}\n\nexport function isExotic(\n type: PropertyTypeType,\n): type is PropertyTypeTypeExotic {\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectType,\n): ValidationResult {\n const objProp = object.properties?.find(prop =>\n prop.apiName === mappedObjectProp\n );\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `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:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineObject.js","names":["invariant","namespace","ontologyDefinition","ISO_8601_DURATION","ISO_8601_DATETIME","defineObject","objectDef","apiName","propertyApiNames","properties","map","val","objectTypes","undefined","Error","includes","titlePropertyApiName","process","env","NODE_ENV","primaryKeyPropertyApiName","retentionPeriod","datasource","test","status","activeProperties","filter","property","length","join","type","deadline","p","every","isExotic","implementsInterfaces","forEach","interfaceImpl","nonExistentInterfaceProperties","propertyMapping","interfaceProperty","implements","propertiesV2","interfaceProp","reason","interfaceToObjectProperties","Object","fromEntries","mapping","mapsTo","validateProperty","sharedPropertyType","nonNameSpacedApiName","validateInterfaceImplProperty","baseValidations","entries","extendsValidations","extendsInterfaces","flatMap","interfaceApiName","interfaceTypes","allFailedValidations","concat","formatValidationErrors","error","spt","mappedObjectProp","object","objProp","find","prop"],"sources":["defineObject.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n InterfacePropertyType,\n ObjectType,\n PropertyTypeType,\n PropertyTypeTypeExotic,\n SharedPropertyType,\n} from \"./types.js\";\n\n// From https://stackoverflow.com/a/79288714\nconst ISO_8601_DURATION =\n /^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 =\n /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport function defineObject(objectDef: ObjectType): ObjectType {\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(\n `Object type with apiName ${objectDef.apiName} is already defined`,\n );\n }\n invariant(\n propertyApiNames.includes(objectDef.titlePropertyApiName),\n `Title property ${objectDef.titlePropertyApiName} is not defined on object ${objectDef.apiName}`,\n );\n invariant(\n propertyApiNames.includes(objectDef.primaryKeyPropertyApiName),\n `Primary key property ${objectDef.primaryKeyPropertyApiName} does not exist on object ${objectDef.apiName}`,\n );\n const retentionPeriod = (objectDef.datasource as any)?.retentionPeriod;\n invariant(\n retentionPeriod === undefined || ISO_8601_DURATION.test(retentionPeriod),\n `Retention period \"${retentionPeriod}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 duration string`,\n );\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 ?? [])\n .filter(property => property.status === \"active\")\n .map(property => property.apiName);\n\n invariant(\n activeProperties.length === 0,\n `When object \"${objectDef.apiName}\" has experimental status, no properties can have \"active\" status, but found active properties: ${\n activeProperties.join(\", \")\n }`,\n );\n }\n\n // Validate deprecated status deadline is in ISO 8601 format\n if (\n objectDef.status && typeof objectDef.status === \"object\"\n && objectDef.status.type === \"deprecated\"\n ) {\n const deadline = objectDef.status.deadline;\n invariant(\n deadline !== undefined && ISO_8601_DATETIME.test(deadline),\n `Deprecated status deadline \"${deadline}\" on object \"${objectDef.apiName}\" is not a valid ISO 8601 datetime string`,\n );\n }\n invariant(\n (objectDef.properties ?? []).filter(p =>\n p.apiName === objectDef.titlePropertyApiName\n ).every(p => !isExotic(p.type)),\n `Title property ${objectDef.titlePropertyApiName} must be a primitive type`,\n );\n invariant(\n (objectDef.properties ?? []).filter(p =>\n p.apiName === objectDef.primaryKeyPropertyApiName\n ).every(p => !isExotic(p.type)),\n `Primary key properties ${objectDef.primaryKeyPropertyApiName} can only be primitive types`,\n );\n\n objectDef.implementsInterfaces?.forEach(interfaceImpl => {\n const nonExistentInterfaceProperties: ValidationResult[] = interfaceImpl\n .propertyMapping.map(val => val.interfaceProperty).filter(\n interfaceProperty =>\n interfaceImpl.implements.propertiesV2[interfaceProperty]\n === undefined,\n ).map(interfaceProp => ({\n type: \"invalid\",\n reason:\n `Interface property ${interfaceImpl.implements.apiName}.${interfaceProp} referenced in ${objectDef.apiName} object does not exist`,\n }));\n\n const interfaceToObjectProperties = Object.fromEntries(\n interfaceImpl.propertyMapping.map(\n mapping => [mapping.interfaceProperty, mapping.mapsTo],\n ),\n );\n const validateProperty = (\n interfaceProp: [string, InterfacePropertyType],\n ): ValidationResult => {\n if (\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n in interfaceToObjectProperties\n ) {\n return validateInterfaceImplProperty(\n interfaceProp[1].sharedPropertyType,\n interfaceToObjectProperties[interfaceProp[0]],\n objectDef,\n );\n }\n return {\n type: \"invalid\",\n reason: `Interface property ${interfaceImpl.implements.apiName}.${\n interfaceProp[1].sharedPropertyType.nonNameSpacedApiName\n } not implemented by ${objectDef.apiName} object definition`,\n };\n };\n const baseValidations = Object.entries(\n interfaceImpl.implements.propertiesV2,\n )\n .map<ValidationResult>(validateProperty);\n const extendsValidations = interfaceImpl.implements.extendsInterfaces\n .flatMap(interfaceApiName =>\n Object.entries(\n ontologyDefinition.interfaceTypes[interfaceApiName].propertiesV2,\n ).map(validateProperty)\n );\n\n const allFailedValidations = baseValidations.concat(\n extendsValidations,\n nonExistentInterfaceProperties,\n ).filter(val => val.type === \"invalid\");\n invariant(\n allFailedValidations.length === 0,\n \"\\n\" + allFailedValidations.map(formatValidationErrors).join(\"\\n\"),\n );\n });\n\n ontologyDefinition.objectTypes[apiName] = { ...objectDef, apiName: apiName };\n return { ...objectDef, apiName: apiName };\n}\n\nexport function isExotic(\n type: PropertyTypeType,\n): type is PropertyTypeTypeExotic {\n if (typeof type === \"string\") {\n return [\"geopoint\", \"geoshape\", \"mediaReference\", \"geotimeSeries\"].includes(\n type,\n );\n } else if (typeof type === \"object\" && type != null) {\n return type.type === \"marking\" || type.type === \"struct\";\n }\n return false;\n}\n\ntype ValidationResult = { type: \"valid\" } | { type: \"invalid\"; reason: string };\n\nfunction formatValidationErrors(\n error: { type: \"invalid\"; reason: string },\n): string {\n return `Ontology Definition Error: ${error.reason}\\n`;\n}\n\n// Validate that the object and the interface property match up\nfunction validateInterfaceImplProperty(\n spt: SharedPropertyType,\n mappedObjectProp: string,\n object: ObjectType,\n): ValidationResult {\n const objProp = object.properties?.find(prop =>\n prop.apiName === mappedObjectProp\n );\n if (objProp === undefined) {\n return {\n type: \"invalid\",\n reason:\n `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:\n `Object property type does not match the interface property it is mapped to. Interface Property: ${spt.apiName}, objectProperty: ${mappedObjectProp}`,\n };\n }\n\n return { type: \"valid\" };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -133,10 +133,7 @@ function convertObject(objectType) {
133
133
  propertyTypes: Object.fromEntries(objectType.properties?.map(val => [val.apiName, convertProperty(val)]) ?? []),
134
134
  titlePropertyTypeRid: objectType.titlePropertyApiName,
135
135
  apiName: objectType.apiName,
136
- status: objectType.status ?? {
137
- type: "active",
138
- active: {}
139
- },
136
+ status: convertObjectStatus(objectType.status),
140
137
  redacted: false,
141
138
  implementsInterfaces2: implementations.map(impl => ({
142
139
  interfaceTypeApiName: impl.implements.apiName,
@@ -242,10 +239,7 @@ function convertProperty(property) {
242
239
  baseFormatter: property.baseFormatter,
243
240
  type: convertType(property.type),
244
241
  typeClasses: property.typeClasses ?? [],
245
- status: property.status ?? {
246
- type: "active",
247
- active: {}
248
- },
242
+ status: convertObjectStatus(property.status),
249
243
  inlineAction: undefined,
250
244
  dataConstraints: convertNullabilityToDataConstraint(property),
251
245
  sharedPropertyTypeRid: property.sharedPropertyType?.apiName,
@@ -519,6 +513,37 @@ function convertType(type) {
519
513
  return distributeTypeHelper(type);
520
514
  }
521
515
  }
516
+ function convertObjectStatus(status) {
517
+ if (status === undefined) {
518
+ return {
519
+ type: "active",
520
+ active: {}
521
+ };
522
+ }
523
+ if (status === "active") {
524
+ return {
525
+ type: "active",
526
+ active: {}
527
+ };
528
+ }
529
+ if (status === "experimental") {
530
+ return {
531
+ type: "experimental",
532
+ experimental: {}
533
+ };
534
+ }
535
+ if (typeof status === "object" && status.type === "deprecated") {
536
+ return {
537
+ type: "deprecated",
538
+ deprecated: {
539
+ message: status.message,
540
+ deadline: status.deadline,
541
+ replacedBy: undefined
542
+ }
543
+ };
544
+ }
545
+ return status;
546
+ }
522
547
  function convertAction(action) {
523
548
  const actionValidation = convertActionValidation(action);
524
549
  const actionParameters = convertActionParameters(action);