@osdk/maker 0.11.0-beta.6 → 0.11.0-beta.8

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 (34) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/browser/api/defineAction.js +5 -2
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/api/defineLink.js +2 -0
  5. package/build/browser/api/defineLink.js.map +1 -1
  6. package/build/browser/api/defineOntology.js +22 -3
  7. package/build/browser/api/defineOntology.js.map +1 -1
  8. package/build/browser/api/overall.test.js +5 -5
  9. package/build/browser/api/overall.test.js.map +1 -1
  10. package/build/browser/cli/main.js +10 -2
  11. package/build/browser/cli/main.js.map +1 -1
  12. package/build/browser/index.js +1 -1
  13. package/build/browser/index.js.map +1 -1
  14. package/build/cjs/index.cjs +54 -22
  15. package/build/cjs/index.cjs.map +1 -1
  16. package/build/cjs/index.d.cts +1 -1
  17. package/build/esm/api/defineAction.js +5 -2
  18. package/build/esm/api/defineAction.js.map +1 -1
  19. package/build/esm/api/defineLink.js +2 -0
  20. package/build/esm/api/defineLink.js.map +1 -1
  21. package/build/esm/api/defineOntology.js +22 -3
  22. package/build/esm/api/defineOntology.js.map +1 -1
  23. package/build/esm/api/overall.test.js +5 -5
  24. package/build/esm/api/overall.test.js.map +1 -1
  25. package/build/esm/cli/main.js +10 -2
  26. package/build/esm/cli/main.js.map +1 -1
  27. package/build/esm/index.js +1 -1
  28. package/build/esm/index.js.map +1 -1
  29. package/build/types/api/defineLink.d.ts.map +1 -1
  30. package/build/types/api/defineOntology.d.ts.map +1 -1
  31. package/build/types/cli/main.d.ts.map +1 -1
  32. package/build/types/index.d.ts +1 -1
  33. package/build/types/index.d.ts.map +1 -1
  34. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.11.0-beta.8
4
+
5
+ ### Minor Changes
6
+
7
+ - f8db93d: improve media upload (beta)
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [f8db93d]
12
+ - @osdk/api@2.3.0-beta.7
13
+
14
+ ## 0.11.0-beta.7
15
+
16
+ ### Minor Changes
17
+
18
+ - 77674dd: Remove alias
19
+ - c305ea8: link id sanitation
20
+ - ab2ef22: Fix dependency injection
21
+ - 1608ba5: Make modify action params optional
22
+ - dc7d201: Fix geopoint bug
23
+
24
+ ### Patch Changes
25
+
26
+ - @osdk/api@2.3.0-beta.6
27
+
3
28
  ## 0.11.0-beta.6
4
29
 
5
30
  ### Minor Changes
@@ -189,7 +189,7 @@ export function defineModifyObjectAction(objectType, validation) {
189
189
  displayName: prop.displayName,
190
190
  type: extractActionParameterType(prop),
191
191
  validation: {
192
- required: true,
192
+ required: false,
193
193
  allowedValues: extractAllowedValuesFromType(prop.type)
194
194
  }
195
195
  })) ?? [])],
@@ -396,6 +396,9 @@ function extractAllowedValuesFromType(type) {
396
396
  type: "text"
397
397
  };
398
398
  case "geopoint":
399
+ return {
400
+ type: "geohash"
401
+ };
399
402
  case "geoshape":
400
403
  return {
401
404
  type: "geoshape"
@@ -444,7 +447,7 @@ function extractActionParameterType(pt) {
444
447
  case "short":
445
448
  return maybeAddList("integer", pt);
446
449
  case "geopoint":
447
- return maybeAddList("geoshape", pt);
450
+ return maybeAddList("geohash", pt);
448
451
  case "float":
449
452
  return maybeAddList("double", pt);
450
453
  case "geotimeSeries":
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","defineCreateInterfaceObjectAction","interfaceType","objectType","validation","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","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","createValidationRule","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","ACTION_TYPE","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","__type","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase","actionValidation","condition","comparison","operator","left","userProperty","userId","currentUser","propertyValue","groupIds","right","stringList","strings","name","failureMessage"],"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 {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport {\n type ActionParameterAllowedValues,\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n type ActionType,\n type ActionTypeDefinition,\n type ActionValidationDefinition,\n type ActionValidationRule,\n type InterfaceType,\n type ObjectPropertyType,\n type ObjectType,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\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 = {\n ...actionDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.ACTION_TYPE,\n } as ActionType;\n updateOntology(fullAction);\n return fullAction;\n}\n\nfunction referencedParameterIds(\n actionDef: ActionTypeDefinition,\n): 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\nfunction createValidationRule(\n actionValidation: ActionValidationDefinition,\n): ActionValidationRule {\n if (!(\"type\" in actionValidation)) {\n return actionValidation;\n }\n switch (actionValidation.type) {\n case \"group\":\n return {\n condition: {\n type: \"comparison\",\n comparison: {\n operator: \"EQUALS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n userId: {\n type: \"currentUser\",\n currentUser: {},\n },\n propertyValue: {\n type: \"groupIds\",\n groupIds: {},\n },\n },\n },\n right: {\n type: \"staticValue\",\n staticValue: {\n type: \"stringList\",\n stringList: {\n strings: [\n actionValidation.name,\n ],\n },\n },\n },\n },\n },\n displayMetadata: {\n failureMessage:\n \"Insufficient permissions. Missing organization membership required to submit action\",\n typeClasses: [],\n },\n };\n default:\n throw new Error(\n `Unknown action validation type: ${actionValidation.type}`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","defineCreateInterfaceObjectAction","interfaceType","objectType","validation","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","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","createValidationRule","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","ACTION_TYPE","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","__type","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase","actionValidation","condition","comparison","operator","left","userProperty","userId","currentUser","propertyValue","groupIds","right","stringList","strings","name","failureMessage"],"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 {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport {\n type ActionParameterAllowedValues,\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n type ActionType,\n type ActionTypeDefinition,\n type ActionValidationDefinition,\n type ActionValidationRule,\n type InterfaceType,\n type ObjectPropertyType,\n type ObjectType,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n validation?: ActionValidationDefinition,\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: false,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n validation?: ActionValidationDefinition,\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 ...(validation\n ? {\n validation: [\n createValidationRule(validation),\n ],\n }\n : {}),\n });\n}\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\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 = {\n ...actionDef,\n apiName: apiName,\n __type: OntologyEntityTypeEnum.ACTION_TYPE,\n } as ActionType;\n updateOntology(fullAction);\n return fullAction;\n}\n\nfunction referencedParameterIds(\n actionDef: ActionTypeDefinition,\n): 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 return { type: \"geohash\" };\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(\"geohash\", 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\nfunction createValidationRule(\n actionValidation: ActionValidationDefinition,\n): ActionValidationRule {\n if (!(\"type\" in actionValidation)) {\n return actionValidation;\n }\n switch (actionValidation.type) {\n case \"group\":\n return {\n condition: {\n type: \"comparison\",\n comparison: {\n operator: \"EQUALS\",\n left: {\n type: \"userProperty\",\n userProperty: {\n userId: {\n type: \"currentUser\",\n currentUser: {},\n },\n propertyValue: {\n type: \"groupIds\",\n groupIds: {},\n },\n },\n },\n right: {\n type: \"staticValue\",\n staticValue: {\n type: \"stringList\",\n stringList: {\n strings: [\n actionValidation.name,\n ],\n },\n },\n },\n },\n },\n displayMetadata: {\n failureMessage:\n \"Insufficient permissions. Missing organization membership required to submit action\",\n typeClasses: [],\n },\n };\n default:\n throw new Error(\n `Unknown action validation type: ${actionValidation.type}`,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,10 +17,12 @@
17
17
  import invariant from "tiny-invariant";
18
18
  import { updateOntology } from "./defineOntology.js";
19
19
  import { OntologyEntityTypeEnum } from "./types.js";
20
+ const typeIdPattern = /([a-z][a-z0-9\\-]*)/;
20
21
  export function defineLink(linkDefinition) {
21
22
  if ("one" in linkDefinition) {
22
23
  const foreignKey = linkDefinition.toMany.object.properties?.find(prop => prop.apiName === linkDefinition.manyForeignKeyProperty);
23
24
  !(foreignKey !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;
25
+ !typeIdPattern.test(linkDefinition.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\-]*) ${linkDefinition.apiName} does not match`) : invariant(false) : void 0;
24
26
  const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.find(prop => prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName)?.type;
25
27
  !typesMatch ? process.env.NODE_ENV !== "production" ? invariant(false, `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;
26
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defineLink.js","names":["invariant","updateOntology","OntologyEntityTypeEnum","defineLink","linkDefinition","foreignKey","toMany","object","properties","find","prop","apiName","manyForeignKeyProperty","undefined","process","env","NODE_ENV","typesMatch","type","one","primaryKeyPropertyApiName","linkType","__type","LINK_TYPE"],"sources":["defineLink.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 invariant from \"tiny-invariant\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type { LinkType, LinkTypeDefinition } from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.find(prop =>\n prop.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n const typesMatch =\n foreignKey.type === linkDefinition.one.object.properties?.find(prop =>\n prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n const linkType: LinkType = {\n ...linkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,SAASC,sBAAsB,QAAQ,YAAY;AAEnD,OAAO,SAASC,UAAUA,CACxBC,cAAkC,EACxB;EACV,IAAI,KAAK,IAAIA,cAAc,EAAE;IAC3B,MAAMC,UAAU,GAAGD,cAAc,CAACE,MAAM,CAACC,MAAM,CAACC,UAAU,EAAEC,IAAI,CAACC,IAAI,IACnEA,IAAI,CAACC,OAAO,KAAKP,cAAc,CAACQ,sBAClC,CAAC;IACD,EACEP,UAAU,KAAKQ,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1BhB,SAAS,QAEP,eAAeI,cAAc,CAACQ,sBAAsB,YAAYR,cAAc,CAACO,OAAO,6BAA6BP,cAAc,CAACE,MAAM,CAACC,MAAM,CAACI,OAAO,GAAG,IAF5JX,SAAS;IAKT,MAAMiB,UAAU,GACdZ,UAAU,CAACa,IAAI,KAAKd,cAAc,CAACe,GAAG,CAACZ,MAAM,CAACC,UAAU,EAAEC,IAAI,CAACC,IAAI,IACjEA,IAAI,CAACC,OAAO,KAAKP,cAAc,CAACe,GAAG,CAACZ,MAAM,CAACa,yBAC7C,CAAC,EAAEF,IAAI;IACT,CACED,UAAU,GAAAH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZhB,SAAS,QAEP,QAAQI,cAAc,CAACO,OAAO,4FAA4F,IAF5HX,SAAS;EAIX;EACA,MAAMqB,QAAkB,GAAG;IACzB,GAAGjB,cAAc;IACjBkB,MAAM,EAAEpB,sBAAsB,CAACqB;EACjC,CAAC;EACDtB,cAAc,CAACoB,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB","ignoreList":[]}
1
+ {"version":3,"file":"defineLink.js","names":["invariant","updateOntology","OntologyEntityTypeEnum","typeIdPattern","defineLink","linkDefinition","foreignKey","toMany","object","properties","find","prop","apiName","manyForeignKeyProperty","undefined","process","env","NODE_ENV","test","typesMatch","type","one","primaryKeyPropertyApiName","linkType","__type","LINK_TYPE"],"sources":["defineLink.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 invariant from \"tiny-invariant\";\nimport { updateOntology } from \"./defineOntology.js\";\nimport type { LinkType, LinkTypeDefinition } from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\nconst typeIdPattern = /([a-z][a-z0-9\\\\-]*)/;\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkType {\n if (\"one\" in linkDefinition) {\n const foreignKey = linkDefinition.toMany.object.properties?.find(prop =>\n prop.apiName === linkDefinition.manyForeignKeyProperty\n );\n invariant(\n foreignKey !== undefined,\n `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.apiName} does not exist on object ${linkDefinition.toMany.object.apiName}}`,\n );\n\n invariant(\n typeIdPattern.test(linkDefinition.apiName),\n `Top level link api names are expected to match the regex pattern ([a-z][a-z0-9\\\\-]*) ${linkDefinition.apiName} does not match`,\n );\n\n const typesMatch =\n foreignKey.type === linkDefinition.one.object.properties?.find(prop =>\n prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName\n )?.type;\n invariant(\n typesMatch,\n `Link ${linkDefinition.apiName} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n const linkType: LinkType = {\n ...linkDefinition,\n __type: OntologyEntityTypeEnum.LINK_TYPE,\n };\n updateOntology(linkType);\n return linkType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,SAASC,sBAAsB,QAAQ,YAAY;AAEnD,MAAMC,aAAa,GAAG,qBAAqB;AAE3C,OAAO,SAASC,UAAUA,CACxBC,cAAkC,EACxB;EACV,IAAI,KAAK,IAAIA,cAAc,EAAE;IAC3B,MAAMC,UAAU,GAAGD,cAAc,CAACE,MAAM,CAACC,MAAM,CAACC,UAAU,EAAEC,IAAI,CAACC,IAAI,IACnEA,IAAI,CAACC,OAAO,KAAKP,cAAc,CAACQ,sBAClC,CAAC;IACD,EACEP,UAAU,KAAKQ,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1BjB,SAAS,QAEP,eAAeK,cAAc,CAACQ,sBAAsB,YAAYR,cAAc,CAACO,OAAO,6BAA6BP,cAAc,CAACE,MAAM,CAACC,MAAM,CAACI,OAAO,GAAG,IAF5JZ,SAAS;IAKT,CACEG,aAAa,CAACe,IAAI,CAACb,cAAc,CAACO,OAAO,CAAC,GAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5CjB,SAAS,QAEP,wFAAwFK,cAAc,CAACO,OAAO,iBAAiB,IAFjIZ,SAAS;IAKT,MAAMmB,UAAU,GACdb,UAAU,CAACc,IAAI,KAAKf,cAAc,CAACgB,GAAG,CAACb,MAAM,CAACC,UAAU,EAAEC,IAAI,CAACC,IAAI,IACjEA,IAAI,CAACC,OAAO,KAAKP,cAAc,CAACgB,GAAG,CAACb,MAAM,CAACc,yBAC7C,CAAC,EAAEF,IAAI;IACT,CACED,UAAU,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZjB,SAAS,QAEP,QAAQK,cAAc,CAACO,OAAO,4FAA4F,IAF5HZ,SAAS;EAIX;EACA,MAAMuB,QAAkB,GAAG;IACzB,GAAGlB,cAAc;IACjBmB,MAAM,EAAEtB,sBAAsB,CAACuB;EACjC,CAAC;EACDxB,cAAc,CAACsB,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB","ignoreList":[]}
@@ -17,6 +17,7 @@
17
17
  import * as fs from "fs";
18
18
  import * as path from "path";
19
19
  import invariant from "tiny-invariant";
20
+ import { fileURLToPath } from "url";
20
21
  import { isExotic } from "./defineObject.js";
21
22
  import { convertNullabilityToDataConstraint, convertType, convertValueType, convertValueTypeDataConstraints, defaultTypeClasses, getPropertyTypeName, hasRenderHints, shouldNotHaveRenderHints } from "./propertyConversionUtils.js";
22
23
  import { OntologyEntityTypeEnum } from "./types.js";
@@ -462,7 +463,7 @@ function convertLink(linkType) {
462
463
  definition = {
463
464
  type: "oneToMany",
464
465
  oneToMany: {
465
- cardinalityHint: "ONE_TO_ONE",
466
+ cardinalityHint: "ONE_TO_MANY",
466
467
  manyToOneLinkMetadata: linkType.toMany.metadata,
467
468
  objectTypeRidManySide: linkType.toMany.object.apiName,
468
469
  objectTypeRidOneSide: linkType.one.object.apiName,
@@ -542,7 +543,7 @@ function convertLink(linkType) {
542
543
  return {
543
544
  linkType: {
544
545
  definition: definition,
545
- id: linkType.apiName,
546
+ id: cleanAndValidateLinkTypeId(linkType.apiName),
546
547
  status: linkType.status ?? {
547
548
  type: "active",
548
549
  active: {}
@@ -555,6 +556,18 @@ function convertLink(linkType) {
555
556
  }
556
557
  };
557
558
  }
559
+ function cleanAndValidateLinkTypeId(apiName) {
560
+ // Insert a dash before any uppercase letter that follows a lowercase letter or digit
561
+ const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, "$1-$2");
562
+ // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter
563
+ // then convert the whole string to lowercase
564
+ // e.g., apiName, APIname, and apiNAME will all be converted to api-name
565
+ const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").toLowerCase();
566
+ if (!/^([a-z][a-z0-9\-]*)$/.test(linkTypeId)) {
567
+ throw new Error(`LinkType id '${linkTypeId}' must be lower case with dashes.`);
568
+ }
569
+ return linkTypeId;
570
+ }
558
571
  function convertInterface(interfaceType) {
559
572
  const {
560
573
  __type,
@@ -1026,7 +1039,13 @@ function writeDependencyFile(dependencyFile) {
1026
1039
  }
1027
1040
  function dependencyInjectionString() {
1028
1041
  const namespaceNoDot = namespace.endsWith(".") ? namespace.slice(0, -1) : namespace;
1029
- const packageJson = JSON.parse(fs.readFileSync("package.json", "utf-8"));
1042
+ const currentFilePath = fileURLToPath(import.meta.url);
1043
+ let packageJsonDirPath = path.join(currentFilePath, "..", "..", "..");
1044
+ if (!currentFilePath.endsWith(".ts")) {
1045
+ packageJsonDirPath = path.join(packageJsonDirPath, "..");
1046
+ }
1047
+ const packageJsonFilePath = path.join(packageJsonDirPath, "package.json");
1048
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonFilePath, "utf-8"));
1030
1049
  const currentPackageVersion = packageJson.version ?? "";
1031
1050
  return `import { addDependency } from '@osdk/maker';\n\naddDependency("${namespaceNoDot}", "${currentPackageVersion}");\n`;
1032
1051
  }