@osdk/maker 0.10.0-beta.21 → 0.10.0-beta.23

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 (88) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/browser/api/defineAction.js +8 -6
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/api/defineImportSpt.js +6 -7
  5. package/build/browser/api/defineImportSpt.js.map +1 -1
  6. package/build/browser/api/defineInterface.js +29 -26
  7. package/build/browser/api/defineInterface.js.map +1 -1
  8. package/build/browser/api/defineInterfaceLinkConstraint.js +11 -13
  9. package/build/browser/api/defineInterfaceLinkConstraint.js.map +1 -1
  10. package/build/browser/api/defineLink.js +10 -5
  11. package/build/browser/api/defineLink.js.map +1 -1
  12. package/build/browser/api/defineObject.js +14 -9
  13. package/build/browser/api/defineObject.js.map +1 -1
  14. package/build/browser/api/defineOntology.js +241 -57
  15. package/build/browser/api/defineOntology.js.map +1 -1
  16. package/build/browser/api/defineSpt.js +13 -9
  17. package/build/browser/api/defineSpt.js.map +1 -1
  18. package/build/browser/api/defineValueType.js +7 -8
  19. package/build/browser/api/defineValueType.js.map +1 -1
  20. package/build/browser/api/importOntologyEntity.js +30 -0
  21. package/build/browser/api/importOntologyEntity.js.map +1 -0
  22. package/build/browser/api/objectStatus.test.js +7 -7
  23. package/build/browser/api/objectStatus.test.js.map +1 -1
  24. package/build/browser/api/overall.test.js +314 -212
  25. package/build/browser/api/overall.test.js.map +1 -1
  26. package/build/browser/api/types.js +27 -1
  27. package/build/browser/api/types.js.map +1 -1
  28. package/build/browser/cli/main.js +5 -33
  29. package/build/browser/cli/main.js.map +1 -1
  30. package/build/browser/index.js +1 -0
  31. package/build/browser/index.js.map +1 -1
  32. package/build/cjs/index.cjs +439 -208
  33. package/build/cjs/index.cjs.map +1 -1
  34. package/build/cjs/index.d.cts +64 -21
  35. package/build/esm/api/defineAction.js +8 -6
  36. package/build/esm/api/defineAction.js.map +1 -1
  37. package/build/esm/api/defineImportSpt.js +6 -7
  38. package/build/esm/api/defineImportSpt.js.map +1 -1
  39. package/build/esm/api/defineInterface.js +29 -26
  40. package/build/esm/api/defineInterface.js.map +1 -1
  41. package/build/esm/api/defineInterfaceLinkConstraint.js +11 -13
  42. package/build/esm/api/defineInterfaceLinkConstraint.js.map +1 -1
  43. package/build/esm/api/defineLink.js +10 -5
  44. package/build/esm/api/defineLink.js.map +1 -1
  45. package/build/esm/api/defineObject.js +14 -9
  46. package/build/esm/api/defineObject.js.map +1 -1
  47. package/build/esm/api/defineOntology.js +241 -57
  48. package/build/esm/api/defineOntology.js.map +1 -1
  49. package/build/esm/api/defineSpt.js +13 -9
  50. package/build/esm/api/defineSpt.js.map +1 -1
  51. package/build/esm/api/defineValueType.js +7 -8
  52. package/build/esm/api/defineValueType.js.map +1 -1
  53. package/build/esm/api/importOntologyEntity.js +30 -0
  54. package/build/esm/api/importOntologyEntity.js.map +1 -0
  55. package/build/esm/api/objectStatus.test.js +7 -7
  56. package/build/esm/api/objectStatus.test.js.map +1 -1
  57. package/build/esm/api/overall.test.js +314 -212
  58. package/build/esm/api/overall.test.js.map +1 -1
  59. package/build/esm/api/types.js +27 -1
  60. package/build/esm/api/types.js.map +1 -1
  61. package/build/esm/cli/main.js +5 -33
  62. package/build/esm/cli/main.js.map +1 -1
  63. package/build/esm/index.js +1 -0
  64. package/build/esm/index.js.map +1 -1
  65. package/build/types/api/defineAction.d.ts +2 -2
  66. package/build/types/api/defineAction.d.ts.map +1 -1
  67. package/build/types/api/defineImportSpt.d.ts +1 -1
  68. package/build/types/api/defineImportSpt.d.ts.map +1 -1
  69. package/build/types/api/defineInterface.d.ts +4 -3
  70. package/build/types/api/defineInterface.d.ts.map +1 -1
  71. package/build/types/api/defineLink.d.ts +2 -2
  72. package/build/types/api/defineLink.d.ts.map +1 -1
  73. package/build/types/api/defineObject.d.ts +2 -2
  74. package/build/types/api/defineObject.d.ts.map +1 -1
  75. package/build/types/api/defineOntology.d.ts +7 -1
  76. package/build/types/api/defineOntology.d.ts.map +1 -1
  77. package/build/types/api/defineSpt.d.ts +13 -12
  78. package/build/types/api/defineSpt.d.ts.map +1 -1
  79. package/build/types/api/defineValueType.d.ts +4 -3
  80. package/build/types/api/defineValueType.d.ts.map +1 -1
  81. package/build/types/api/importOntologyEntity.d.ts +2 -0
  82. package/build/types/api/importOntologyEntity.d.ts.map +1 -0
  83. package/build/types/api/types.d.ts +54 -13
  84. package/build/types/api/types.d.ts.map +1 -1
  85. package/build/types/cli/main.d.ts.map +1 -1
  86. package/build/types/index.d.ts +1 -0
  87. package/build/types/index.d.ts.map +1 -1
  88. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.10.0-beta.23
4
+
5
+ ### Minor Changes
6
+
7
+ - 18ba34f: Adds the ability to generate and execute functions at pinned versions
8
+ - f1b1188: OAC Imports v0
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [18ba34f]
13
+ - @osdk/api@2.2.0-beta.22
14
+
15
+ ## 0.10.0-beta.22
16
+
17
+ ### Minor Changes
18
+
19
+ - 75f6b51: Propagate required/optional fields from interfaces to actions
20
+
3
21
  ## 0.10.0-beta.21
4
22
 
5
23
  ### Minor Changes
@@ -15,7 +15,8 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
- import { namespace, ontologyDefinition } from "./defineOntology.js";
18
+ import { namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
19
+ import { OntologyEntityTypeEnum } from "./types.js";
19
20
  export function defineCreateInterfaceObjectAction(interfaceType, objectType) {
20
21
  return defineAction({
21
22
  apiName: `create-${kebab(interfaceType.apiName.split(".").pop() ?? interfaceType.apiName)}${objectType === undefined ? "" : `-${kebab(objectType.apiName.split(".").pop() ?? objectType.apiName)}`}`,
@@ -55,7 +56,7 @@ export function defineCreateInterfaceObjectAction(interfaceType, objectType) {
55
56
  validation: {
56
57
  required: prop.sharedPropertyType.array ?? false ? {
57
58
  listLength: {}
58
- } : true,
59
+ } : prop.required,
59
60
  allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
60
61
  }
61
62
  }))],
@@ -138,7 +139,7 @@ export function defineModifyInterfaceObjectAction(interfaceType, objectType) {
138
139
  validation: {
139
140
  required: prop.sharedPropertyType.array ?? false ? {
140
141
  listLength: {}
141
- } : true,
142
+ } : prop.required,
142
143
  allowedValues: extractAllowedValuesFromType(prop.sharedPropertyType.type)
143
144
  }
144
145
  }))],
@@ -229,7 +230,7 @@ export function defineDeleteObjectAction(objectType) {
229
230
  export function defineAction(actionDef) {
230
231
  const apiName = namespace + actionDef.apiName;
231
232
  const parameterIds = (actionDef.parameters ?? []).map(p => p.id);
232
- if (ontologyDefinition.actionTypes[apiName] !== undefined) {
233
+ if (ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName] !== undefined) {
233
234
  throw new Error(`Action type with apiName ${actionDef.apiName} is already defined`);
234
235
  }
235
236
  !/^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `Action type apiName "${actionDef.apiName}" must be alphanumeric, lowercase, and kebab-case`) : invariant(false) : void 0;
@@ -251,9 +252,10 @@ export function defineAction(actionDef) {
251
252
  });
252
253
  const fullAction = {
253
254
  ...actionDef,
254
- apiName: apiName
255
+ apiName: apiName,
256
+ __type: OntologyEntityTypeEnum.ACTION_TYPE
255
257
  };
256
- ontologyDefinition.actionTypes[apiName] = fullAction;
258
+ updateOntology(fullAction);
257
259
  return fullAction;
258
260
  }
259
261
  function referencedParameterIds(actionDef) {
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","defineCreateInterfaceObjectAction","interfaceType","objectType","defineAction","apiName","kebab","split","pop","undefined","displayName","displayMetadata","parameters","id","type","objectTypeReference","interfaceTypeRids","validation","required","allowedValues","interfaceTypes","oneOf","label","value","objectTypeId","Object","entries","propertiesV2","map","prop","sharedPropertyType","nonNameSpacedApiName","extractActionParameterType","typeClasses","array","listLength","extractAllowedValuesFromType","status","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","fromEntries","parameterId","defineCreateObjectAction","properties","addObjectRule","propertyValues","p","structFieldValues","defineModifyInterfaceObjectAction","interfaceReference","interfaceTypeRid","modifyInterfaceRule","interfaceObjectToModifyParameter","defineModifyObjectAction","objectReference","modifyObjectRule","objectToModify","defineDeleteObjectAction","deleteObjectRule","objectToDelete","actionDef","parameterIds","actionTypes","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","sectionId","sId","forEach","rule","some","fullAction","values","pId","add","item","sanitize","k","v","addOrModifyObjectRuleV2","min","staticValue","integer","max","markingType","pt","typeType","maybeAddList","isActionParameterTypePrimitive","includes","replace","toLowerCase"],"sources":["defineAction.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ParameterId } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { namespace, ontologyDefinition } from \"./defineOntology.js\";\nimport type {\n ActionParameterAllowedValues,\n ActionParameterType,\n ActionParameterTypePrimitive,\n ActionType,\n InterfaceType,\n ObjectPropertyType,\n ObjectType,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\nexport function defineCreateInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Create ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"objectTypeParameter\",\n displayName: \"Object type to create\",\n type: {\n type: \"objectTypeReference\",\n objectTypeReference: { interfaceTypeRids: [interfaceType.apiName] },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : true,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: interfaceType.apiName,\n objectTypeParameter: \"objectTypeParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineCreateObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `create-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Create ${objectType.displayName}`,\n parameters: [\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [{\n type: \"addObjectRule\",\n addObjectRule: {\n objectTypeId: objectType.apiName,\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, { type: \"parameterId\", parameterId: p.apiName }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n }],\n });\n}\n\nexport function defineModifyInterfaceObjectAction(\n interfaceType: InterfaceType,\n objectType?: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-${\n kebab(interfaceType.apiName.split(\".\").pop() ?? interfaceType.apiName)\n }${\n objectType === undefined\n ? \"\"\n : `-${kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)}`\n }`,\n displayName: `Modify ${interfaceType.displayMetadata.displayName}`,\n parameters: [\n {\n id: \"interfaceObjectToModifyParameter\",\n displayName: \"Object type to modify\",\n type: {\n type: \"interfaceReference\",\n interfaceReference: { interfaceTypeRid: interfaceType.apiName },\n },\n validation: {\n required: true,\n allowedValues: objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: objectType.apiName },\n },\n }],\n },\n },\n },\n ...Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => ({\n id,\n displayName: prop.sharedPropertyType.displayName\n ?? prop.sharedPropertyType.nonNameSpacedApiName,\n type: extractActionParameterType(prop.sharedPropertyType),\n typeClasses: prop.sharedPropertyType.typeClasses ?? [],\n validation: {\n required: (prop.sharedPropertyType.array ?? false)\n ? { listLength: {} }\n : true,\n allowedValues: extractAllowedValuesFromType(\n prop.sharedPropertyType.type,\n ),\n },\n })),\n ],\n status: interfaceType.status.type !== \"deprecated\"\n ? interfaceType.status.type\n : interfaceType.status,\n rules: [\n {\n type: \"modifyInterfaceRule\",\n modifyInterfaceRule: {\n interfaceObjectToModifyParameter: \"interfaceObjectToModifyParameter\",\n sharedPropertyValues: Object.fromEntries(\n Object.entries(interfaceType.propertiesV2).map((\n [id, prop],\n ) => [id, { type: \"parameterId\", parameterId: id }]),\n ),\n },\n },\n ],\n });\n}\n\nexport function defineModifyObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `modify-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Modify ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToModifyParameter\",\n displayName: \"Modify object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n allowedValues: { type: \"objectQuery\" },\n required: true,\n },\n },\n ...(objectType.properties?.map(prop => ({\n id: prop.apiName,\n displayName: prop.displayName,\n type: extractActionParameterType(prop),\n validation: {\n required: true,\n allowedValues: extractAllowedValuesFromType(prop.type),\n },\n })) ?? []),\n ],\n status: \"active\",\n rules: [\n {\n type: \"modifyObjectRule\",\n modifyObjectRule: {\n objectToModify: \"objectToModifyParameter\",\n propertyValues: objectType.properties\n ? Object.fromEntries(\n objectType.properties.map(\n p => [p.apiName, {\n type: \"parameterId\",\n parameterId: p.apiName,\n }],\n ),\n )\n : {},\n structFieldValues: {},\n },\n },\n ],\n });\n}\n\nexport function defineDeleteObjectAction(\n objectType: ObjectType,\n): ActionType {\n return defineAction({\n apiName: `delete-object-${\n kebab(objectType.apiName.split(\".\").pop() ?? objectType.apiName)\n }`,\n displayName: `Delete ${objectType.displayName}`,\n parameters: [\n {\n id: \"objectToDeleteParameter\",\n displayName: \"Delete object\",\n type: {\n type: \"objectReference\",\n objectReference: { objectTypeId: objectType.apiName },\n },\n validation: {\n required: true,\n allowedValues: { type: \"objectQuery\" },\n },\n },\n ],\n status: \"active\",\n rules: [\n {\n type: \"deleteObjectRule\",\n deleteObjectRule: {\n objectToDelete: \"objectToDeleteParameter\",\n },\n },\n ],\n });\n}\n\nexport function defineAction(actionDef: ActionType): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (ontologyDefinition.actionTypes[apiName] !== undefined) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n });\n const fullAction = { ...actionDef, apiName: apiName };\n ontologyDefinition.actionTypes[apiName] = fullAction;\n return fullAction;\n}\n\nfunction referencedParameterIds(actionDef: ActionType): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geoshape\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt: SharedPropertyType | ObjectPropertyType,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nfunction isActionParameterTypePrimitive(\n type: string,\n): type is ActionParameterTypePrimitive {\n return [\n \"boolean\",\n \"booleanList\",\n \"integer\",\n \"integerList\",\n \"long\",\n \"longList\",\n \"double\",\n \"doubleList\",\n \"string\",\n \"stringList\",\n \"decimal\",\n \"decimalList\",\n \"timestamp\",\n \"timestampList\",\n \"geohash\",\n \"geohashList\",\n \"geoshape\",\n \"geoshapeList\",\n \"timeSeriesReference\",\n \"date\",\n \"dateList\",\n \"objectTypeReference\",\n \"objectReference\",\n \"attachment\",\n \"attachmentList\",\n \"marking\",\n \"markingList\",\n \"mediaReference\",\n \"mediaReferenceList\",\n \"geotimeSeriesReference\",\n \"geotimeSeriesReferenceList\",\n ].includes(type);\n}\n\nfunction kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,SAAS,EAAEC,kBAAkB,QAAQ,qBAAqB;AAanE,OAAO,SAASC,iCAAiCA,CAC/CC,aAA4B,EAC5BC,UAAuB,EACX;EACZ,OAAOC,YAAY,CAAC;IAClBC,OAAO,EAAE,UACPC,KAAK,CAACJ,aAAa,CAACG,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIN,aAAa,CAACG,OAAO,CAAC,GAEtEF,UAAU,KAAKM,SAAS,GACpB,EAAE,GACF,IAAIH,KAAK,CAACH,UAAU,CAACE,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIL,UAAU,CAACE,OAAO,CAAC,EAAE,EAC1E;IACFK,WAAW,EAAE,UAAUR,aAAa,CAACS,eAAe,CAACD,WAAW,EAAE;IAClEE,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,qBAAqB;MACzBH,WAAW,EAAE,uBAAuB;MACpCI,IAAI,EAAE;QACJA,IAAI,EAAE,qBAAqB;QAC3BC,mBAAmB,EAAE;UAAEC,iBAAiB,EAAE,CAACd,aAAa,CAACG,OAAO;QAAE;MACpE,CAAC;MACDY,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAEhB,UAAU,KAAKM,SAAS,GACnC;UACAK,IAAI,EAAE,qBAAqB;UAC3BM,cAAc,EAAE,CAAClB,aAAa,CAACG,OAAO;QACxC,CAAC,GACC;UACAS,IAAI,EAAE,OAAO;UACbO,KAAK,EAAE,CAAC;YACNC,KAAK,EAAEnB,UAAU,CAACO,WAAW;YAC7Ba,KAAK,EAAE;cACLT,IAAI,EAAE,YAAY;cAClBX,UAAU,EAAE;gBAAEqB,YAAY,EAAErB,UAAU,CAACE;cAAQ;YACjD;UACF,CAAC;QACH;MACJ;IACF,CAAC,EACD,GAAGoB,MAAM,CAACC,OAAO,CAACxB,aAAa,CAACyB,YAAY,CAAC,CAACC,GAAG,CAAC,CAChD,CAACf,EAAE,EAAEgB,IAAI,CAAC,MACN;MACJhB,EAAE;MACFH,WAAW,EAAEmB,IAAI,CAACC,kBAAkB,CAACpB,WAAW,IAC3CmB,IAAI,CAACC,kBAAkB,CAACC,oBAAoB;MACjDjB,IAAI,EAAEkB,0BAA0B,CAACH,IAAI,CAACC,kBAAkB,CAAC;MACzDG,WAAW,EAAEJ,IAAI,CAACC,kBAAkB,CAACG,WAAW,IAAI,EAAE;MACtDhB,UAAU,EAAE;QACVC,QAAQ,EAAGW,IAAI,CAACC,kBAAkB,CAACI,KAAK,IAAI,KAAK,GAC7C;UAAEC,UAAU,EAAE,CAAC;QAAE,CAAC,GAClB,IAAI;QACRhB,aAAa,EAAEiB,4BAA4B,CACzCP,IAAI,CAACC,kBAAkB,CAAChB,IAC1B;MACF;IACF,CAAC,CAAC,CAAC,CACJ;IACDuB,MAAM,EAAEnC,aAAa,CAACmC,MAAM,CAACvB,IAAI,KAAK,YAAY,GAC9CZ,aAAa,CAACmC,MAAM,CAACvB,IAAI,GACzBZ,aAAa,CAACmC,MAAM;IACxBC,KAAK,EAAE,CACL;MACExB,IAAI,EAAE,kBAAkB;MACxByB,gBAAgB,EAAE;QAChBC,gBAAgB,EAAEtC,aAAa,CAACG,OAAO;QACvCoC,mBAAmB,EAAE,qBAAqB;QAC1CC,oBAAoB,EAAEjB,MAAM,CAACkB,WAAW,CACtClB,MAAM,CAACC,OAAO,CAACxB,aAAa,CAACyB,YAAY,CAAC,CAACC,GAAG,CAAC,CAC7C,CAACf,EAAE,EAAEgB,IAAI,CAAC,KACP,CAAChB,EAAE,EAAE;UAAEC,IAAI,EAAE,aAAa;UAAE8B,WAAW,EAAE/B;QAAG,CAAC,CAAC,CACrD;MACF;IACF,CAAC;EAEL,CAAC,CAAC;AACJ;AAEA,OAAO,SAASgC,wBAAwBA,CACtC1C,UAAsB,EACV;EACZ,OAAOC,YAAY,CAAC;IAClBC,OAAO,EAAE,iBACPC,KAAK,CAACH,UAAU,CAACE,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIL,UAAU,CAACE,OAAO,CAAC,EAChE;IACFK,WAAW,EAAE,UAAUP,UAAU,CAACO,WAAW,EAAE;IAC/CE,UAAU,EAAE,CACV,IAAIT,UAAU,CAAC2C,UAAU,EAAElB,GAAG,CAACC,IAAI,KAAK;MACtChB,EAAE,EAAEgB,IAAI,CAACxB,OAAO;MAChBK,WAAW,EAAEmB,IAAI,CAACnB,WAAW;MAC7BI,IAAI,EAAEkB,0BAA0B,CAACH,IAAI,CAAC;MACtCZ,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAEiB,4BAA4B,CAACP,IAAI,CAACf,IAAI;MACvD;IACF,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACX;IACDuB,MAAM,EAAE,QAAQ;IAChBC,KAAK,EAAE,CAAC;MACNxB,IAAI,EAAE,eAAe;MACrBiC,aAAa,EAAE;QACbvB,YAAY,EAAErB,UAAU,CAACE,OAAO;QAChC2C,cAAc,EAAE7C,UAAU,CAAC2C,UAAU,GACjCrB,MAAM,CAACkB,WAAW,CAClBxC,UAAU,CAAC2C,UAAU,CAAClB,GAAG,CACvBqB,CAAC,IAAI,CAACA,CAAC,CAAC5C,OAAO,EAAE;UAAES,IAAI,EAAE,aAAa;UAAE8B,WAAW,EAAEK,CAAC,CAAC5C;QAAQ,CAAC,CAClE,CACF,CAAC,GACC,CAAC,CAAC;QACN6C,iBAAiB,EAAE,CAAC;MACtB;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,iCAAiCA,CAC/CjD,aAA4B,EAC5BC,UAAuB,EACX;EACZ,OAAOC,YAAY,CAAC;IAClBC,OAAO,EAAE,UACPC,KAAK,CAACJ,aAAa,CAACG,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIN,aAAa,CAACG,OAAO,CAAC,GAEtEF,UAAU,KAAKM,SAAS,GACpB,EAAE,GACF,IAAIH,KAAK,CAACH,UAAU,CAACE,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIL,UAAU,CAACE,OAAO,CAAC,EAAE,EAC1E;IACFK,WAAW,EAAE,UAAUR,aAAa,CAACS,eAAe,CAACD,WAAW,EAAE;IAClEE,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,kCAAkC;MACtCH,WAAW,EAAE,uBAAuB;MACpCI,IAAI,EAAE;QACJA,IAAI,EAAE,oBAAoB;QAC1BsC,kBAAkB,EAAE;UAAEC,gBAAgB,EAAEnD,aAAa,CAACG;QAAQ;MAChE,CAAC;MACDY,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAEhB,UAAU,KAAKM,SAAS,GACnC;UAAEK,IAAI,EAAE;QAAuB,CAAC,GAChC;UACAA,IAAI,EAAE,OAAO;UACbO,KAAK,EAAE,CAAC;YACNC,KAAK,EAAEnB,UAAU,CAACO,WAAW;YAC7Ba,KAAK,EAAE;cACLT,IAAI,EAAE,YAAY;cAClBX,UAAU,EAAE;gBAAEqB,YAAY,EAAErB,UAAU,CAACE;cAAQ;YACjD;UACF,CAAC;QACH;MACJ;IACF,CAAC,EACD,GAAGoB,MAAM,CAACC,OAAO,CAACxB,aAAa,CAACyB,YAAY,CAAC,CAACC,GAAG,CAAC,CAChD,CAACf,EAAE,EAAEgB,IAAI,CAAC,MACN;MACJhB,EAAE;MACFH,WAAW,EAAEmB,IAAI,CAACC,kBAAkB,CAACpB,WAAW,IAC3CmB,IAAI,CAACC,kBAAkB,CAACC,oBAAoB;MACjDjB,IAAI,EAAEkB,0BAA0B,CAACH,IAAI,CAACC,kBAAkB,CAAC;MACzDG,WAAW,EAAEJ,IAAI,CAACC,kBAAkB,CAACG,WAAW,IAAI,EAAE;MACtDhB,UAAU,EAAE;QACVC,QAAQ,EAAGW,IAAI,CAACC,kBAAkB,CAACI,KAAK,IAAI,KAAK,GAC7C;UAAEC,UAAU,EAAE,CAAC;QAAE,CAAC,GAClB,IAAI;QACRhB,aAAa,EAAEiB,4BAA4B,CACzCP,IAAI,CAACC,kBAAkB,CAAChB,IAC1B;MACF;IACF,CAAC,CAAC,CAAC,CACJ;IACDuB,MAAM,EAAEnC,aAAa,CAACmC,MAAM,CAACvB,IAAI,KAAK,YAAY,GAC9CZ,aAAa,CAACmC,MAAM,CAACvB,IAAI,GACzBZ,aAAa,CAACmC,MAAM;IACxBC,KAAK,EAAE,CACL;MACExB,IAAI,EAAE,qBAAqB;MAC3BwC,mBAAmB,EAAE;QACnBC,gCAAgC,EAAE,kCAAkC;QACpEb,oBAAoB,EAAEjB,MAAM,CAACkB,WAAW,CACtClB,MAAM,CAACC,OAAO,CAACxB,aAAa,CAACyB,YAAY,CAAC,CAACC,GAAG,CAAC,CAC7C,CAACf,EAAE,EAAEgB,IAAI,CAAC,KACP,CAAChB,EAAE,EAAE;UAAEC,IAAI,EAAE,aAAa;UAAE8B,WAAW,EAAE/B;QAAG,CAAC,CAAC,CACrD;MACF;IACF,CAAC;EAEL,CAAC,CAAC;AACJ;AAEA,OAAO,SAAS2C,wBAAwBA,CACtCrD,UAAsB,EACV;EACZ,OAAOC,YAAY,CAAC;IAClBC,OAAO,EAAE,iBACPC,KAAK,CAACH,UAAU,CAACE,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIL,UAAU,CAACE,OAAO,CAAC,EAChE;IACFK,WAAW,EAAE,UAAUP,UAAU,CAACO,WAAW,EAAE;IAC/CE,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,yBAAyB;MAC7BH,WAAW,EAAE,eAAe;MAC5BI,IAAI,EAAE;QACJA,IAAI,EAAE,iBAAiB;QACvB2C,eAAe,EAAE;UAAEjC,YAAY,EAAErB,UAAU,CAACE;QAAQ;MACtD,CAAC;MACDY,UAAU,EAAE;QACVE,aAAa,EAAE;UAAEL,IAAI,EAAE;QAAc,CAAC;QACtCI,QAAQ,EAAE;MACZ;IACF,CAAC,EACD,IAAIf,UAAU,CAAC2C,UAAU,EAAElB,GAAG,CAACC,IAAI,KAAK;MACtChB,EAAE,EAAEgB,IAAI,CAACxB,OAAO;MAChBK,WAAW,EAAEmB,IAAI,CAACnB,WAAW;MAC7BI,IAAI,EAAEkB,0BAA0B,CAACH,IAAI,CAAC;MACtCZ,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAEiB,4BAA4B,CAACP,IAAI,CAACf,IAAI;MACvD;IACF,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACX;IACDuB,MAAM,EAAE,QAAQ;IAChBC,KAAK,EAAE,CACL;MACExB,IAAI,EAAE,kBAAkB;MACxB4C,gBAAgB,EAAE;QAChBC,cAAc,EAAE,yBAAyB;QACzCX,cAAc,EAAE7C,UAAU,CAAC2C,UAAU,GACjCrB,MAAM,CAACkB,WAAW,CAClBxC,UAAU,CAAC2C,UAAU,CAAClB,GAAG,CACvBqB,CAAC,IAAI,CAACA,CAAC,CAAC5C,OAAO,EAAE;UACfS,IAAI,EAAE,aAAa;UACnB8B,WAAW,EAAEK,CAAC,CAAC5C;QACjB,CAAC,CACH,CACF,CAAC,GACC,CAAC,CAAC;QACN6C,iBAAiB,EAAE,CAAC;MACtB;IACF,CAAC;EAEL,CAAC,CAAC;AACJ;AAEA,OAAO,SAASU,wBAAwBA,CACtCzD,UAAsB,EACV;EACZ,OAAOC,YAAY,CAAC;IAClBC,OAAO,EAAE,iBACPC,KAAK,CAACH,UAAU,CAACE,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIL,UAAU,CAACE,OAAO,CAAC,EAChE;IACFK,WAAW,EAAE,UAAUP,UAAU,CAACO,WAAW,EAAE;IAC/CE,UAAU,EAAE,CACV;MACEC,EAAE,EAAE,yBAAyB;MAC7BH,WAAW,EAAE,eAAe;MAC5BI,IAAI,EAAE;QACJA,IAAI,EAAE,iBAAiB;QACvB2C,eAAe,EAAE;UAAEjC,YAAY,EAAErB,UAAU,CAACE;QAAQ;MACtD,CAAC;MACDY,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,aAAa,EAAE;UAAEL,IAAI,EAAE;QAAc;MACvC;IACF,CAAC,CACF;IACDuB,MAAM,EAAE,QAAQ;IAChBC,KAAK,EAAE,CACL;MACExB,IAAI,EAAE,kBAAkB;MACxB+C,gBAAgB,EAAE;QAChBC,cAAc,EAAE;MAClB;IACF,CAAC;EAEL,CAAC,CAAC;AACJ;AAEA,OAAO,SAAS1D,YAAYA,CAAC2D,SAAqB,EAAc;EAC9D,MAAM1D,OAAO,GAAGN,SAAS,GAAGgE,SAAS,CAAC1D,OAAO;EAC7C,MAAM2D,YAAY,GAAG,CAACD,SAAS,CAACnD,UAAU,IAAI,EAAE,EAAEgB,GAAG,CAACqB,CAAC,IAAIA,CAAC,CAACpC,EAAE,CAAC;EAEhE,IAAIb,kBAAkB,CAACiE,WAAW,CAAC5D,OAAO,CAAC,KAAKI,SAAS,EAAE;IACzD,MAAM,IAAIyD,KAAK,CACb,4BAA4BH,SAAS,CAAC1D,OAAO,qBAC/C,CAAC;EACH;EACA,CACE,0BAA0B,CAAC8D,IAAI,CAACJ,SAAS,CAAC1D,OAAO,CAAC,GAAA+D,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpDxE,SAAS,QAEP,wBAAwBiE,SAAS,CAAC1D,OAAO,mDAAmD,IAF9FP,SAAS;EAKT,MAAMyE,eAAe,GAAG,IAAIC,GAAG,CAACR,YAAY,CAAC;EAC7C,EACEO,eAAe,CAACE,IAAI,KAAKT,YAAY,CAACU,MAAM,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD9CxE,SAAS,QAEP,8BAA8B,IAFhCA,SAAS;EAKT,MAAM6E,oBAAoB,GAAGC,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAACf,SAAS,CAAC,CAAC,CACvEgB,MAAM,CAAC9B,CAAC,IAAI,CAACsB,eAAe,CAACS,GAAG,CAAC/B,CAAC,CAAC,CAAC;EACvC,EACE0B,oBAAoB,CAACD,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADnCxE,SAAS,QAEP,cACEmF,IAAI,CAACC,SAAS,CAACP,oBAAoB,CAAC,kCACJ,IAJpC7E,SAAS;EAOT,MAAMqF,iBAAiB,GAAG,IAAIX,GAAG,CAAC/C,MAAM,CAAC2D,IAAI,CAACrB,SAAS,CAACsB,QAAQ,IAAI,EAAE,CAAC,CAAC;EACxE,MAAMC,2BAA2B,GAAG,CAACvB,SAAS,CAACwB,mBAAmB,IAAI,EAAE,EACrEC,OAAO,CACNC,CAAC,IAAIA,CAAC,CAAC3E,IAAI,KAAK,aAAa,GAAG,EAAE,GAAG,CAAC2E,CAAC,CAACC,SAAS,CACnD,CAAC,CAACX,MAAM,CAACY,GAAG,IAAI,CAACR,iBAAiB,CAACH,GAAG,CAACW,GAAG,CAAC,CAAC;EAC9C,EACEL,2BAA2B,CAACZ,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1CxE,SAAS,QAEP,aAAawF,2BAA2B,uDAAuD,IAFjGxF,SAAS;EAKT,EACEiE,SAAS,CAACzB,KAAK,CAACoC,MAAM,GAAG,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5BxE,SAAS,QAEP,eAAeiE,SAAS,CAAC1D,OAAO,oCAAoC,IAFtEP,SAAS;EAITiE,SAAS,CAACzB,KAAK,CAACsD,OAAO,CAACC,IAAI,IAAI;IAC9B,IAAIA,IAAI,CAAC/E,IAAI,KAAK,kBAAkB,EAAE;MACpC,CACEkD,YAAY,CAAC8B,IAAI,CAACjF,EAAE,IAAIA,EAAE,KAAKgF,IAAI,CAACnC,gBAAgB,CAACC,cAAc,CAAC,GAAAS,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADtExE,SAAS,QAEP,0DAA0D,IAF5DA,SAAS;IAIX;IACA,IAAI+F,IAAI,CAAC/E,IAAI,KAAK,kBAAkB,EAAE;MACpC,CACEkD,YAAY,CAAC8B,IAAI,CAACjF,EAAE,IAAIA,EAAE,KAAKgF,IAAI,CAAChC,gBAAgB,CAACC,cAAc,CAAC,GAAAM,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADtExE,SAAS,QAEP,0DAA0D,IAF5DA,SAAS;IAIX;EACF,CAAC,CAAC;EACF,MAAMiG,UAAU,GAAG;IAAE,GAAGhC,SAAS;IAAE1D,OAAO,EAAEA;EAAQ,CAAC;EACrDL,kBAAkB,CAACiE,WAAW,CAAC5D,OAAO,CAAC,GAAG0F,UAAU;EACpD,OAAOA,UAAU;AACnB;AAEA,SAASjB,sBAAsBA,CAACf,SAAqB,EAAoB;EACvE,MAAMC,YAA8B,GAAG,IAAIQ,GAAG,CAAC,CAAC;;EAEhD;EACA/C,MAAM,CAACuE,MAAM,CAACjC,SAAS,CAACsB,QAAQ,IAAI,CAAC,CAAC,CAAC,CACpCG,OAAO,CAACvC,CAAC,IAAIA,CAAC,CAAC,CAAC2C,OAAO,CAACK,GAAG,IAAIjC,YAAY,CAACkC,GAAG,CAACD,GAAG,CAAC,CAAC;;EAExD;EACA,CAAClC,SAAS,CAACwB,mBAAmB,IAAI,EAAE,EAAEK,OAAO,CAACO,IAAI,IAAI;IACpD,IAAIA,IAAI,CAACrF,IAAI,KAAK,aAAa,EAAE;MAC/BkD,YAAY,CAACkC,GAAG,CAACC,IAAI,CAACvD,WAAW,CAAC;IACpC;EACF,CAAC,CAAC;;EAEF;EACAmB,SAAS,CAACzB,KAAK,CAACsD,OAAO,CAACC,IAAI,IAAI;IAC9B;IACA,QAAQA,IAAI,CAAC/E,IAAI;MACf,KAAK,kBAAkB;QACrB+E,IAAI,CAACtD,gBAAgB,CAACC,gBAAgB,GAAG4D,QAAQ,CAC/CP,IAAI,CAACtD,gBAAgB,CAACC,gBACxB,CAAC;QACDwB,YAAY,CAACkC,GAAG,CAACL,IAAI,CAACtD,gBAAgB,CAACE,mBAAmB,CAAC;QAC3DhB,MAAM,CAACC,OAAO,CAACmE,IAAI,CAACtD,gBAAgB,CAACG,oBAAoB,CAAC,CAACkD,OAAO,CAChE,CAAC,CAACS,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAACxF,IAAI,KAAK,aAAa,EAAE;YAC5BkD,YAAY,CAACkC,GAAG,CAACI,CAAC,CAAC1D,WAAW,CAAC;UACjC;UACAiD,IAAI,CAACtD,gBAAgB,CAACG,oBAAoB,CAAC0D,QAAQ,CAACC,CAAC,CAAC,CAAC,GAAGC,CAAC;UAC3D,OAAOT,IAAI,CAACtD,gBAAgB,CAACG,oBAAoB,CAAC2D,CAAC,CAAC;QACtD,CACF,CAAC;QACD;MACF,KAAK,qBAAqB;QACxBrC,YAAY,CAACkC,GAAG,CACdL,IAAI,CAACvC,mBAAmB,CAACC,gCAC3B,CAAC;QACD9B,MAAM,CAACC,OAAO,CAACmE,IAAI,CAACvC,mBAAmB,CAACZ,oBAAoB,CAAC,CAACkD,OAAO,CACnE,CAAC,CAACS,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAACxF,IAAI,KAAK,aAAa,EAAE;YAC5BkD,YAAY,CAACkC,GAAG,CAACI,CAAC,CAAC1D,WAAW,CAAC;UACjC;UACAiD,IAAI,CAACvC,mBAAmB,CAACZ,oBAAoB,CAAC0D,QAAQ,CAACC,CAAC,CAAC,CAAC,GAAGC,CAAC;UAC9D,OAAOT,IAAI,CAACvC,mBAAmB,CAACZ,oBAAoB,CAAC2D,CAAC,CAAC;QACzD,CACF,CAAC;QACD;MACF,KAAK,eAAe;QAClB5E,MAAM,CAACC,OAAO,CAACmE,IAAI,CAAC9C,aAAa,CAACC,cAAc,CAAC,CAAC4C,OAAO,CAAC,CAAC,CAACS,CAAC,EAAEC,CAAC,CAAC,KAAK;UACpE,IAAIA,CAAC,CAACxF,IAAI,KAAK,aAAa,EAAE;YAC5BkD,YAAY,CAACkC,GAAG,CAACI,CAAC,CAAC1D,WAAW,CAAC;UACjC;QACF,CAAC,CAAC;QACF;MACF,KAAK,kBAAkB;QACrBnB,MAAM,CAACC,OAAO,CAACmE,IAAI,CAACnC,gBAAgB,CAACV,cAAc,CAAC,CAAC4C,OAAO,CAC1D,CAAC,CAACS,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAACxF,IAAI,KAAK,aAAa,EAAE;YAC5BkD,YAAY,CAACkC,GAAG,CAACI,CAAC,CAAC1D,WAAW,CAAC;UACjC;QACF,CACF,CAAC;QACD;MACF,KAAK,yBAAyB;QAC5BnB,MAAM,CAACC,OAAO,CAACmE,IAAI,CAACU,uBAAuB,CAACvD,cAAc,CAAC,CAAC4C,OAAO,CACjE,CAAC,CAACS,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAACxF,IAAI,KAAK,aAAa,EAAE;YAC5BkD,YAAY,CAACkC,GAAG,CAACI,CAAC,CAAC1D,WAAW,CAAC;UACjC;QACF,CACF,CAAC;QACD;IACJ;EACF,CAAC,CAAC;EACF,OAAOoB,YAAY;AACrB;AAEA,SAAS5B,4BAA4BA,CACnCtB,IAAsB,EACQ;EAC9B,QAAQA,IAAI;IACV,KAAK,SAAS;MACZ,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,MAAM;MACT,OAAO;QACLA,IAAI,EAAE,OAAO;QACb0F,GAAG,EAAE;UACH1F,IAAI,EAAE,aAAa;UACnB2F,WAAW,EAAE;YAAE3F,IAAI,EAAE,SAAS;YAAE4F,OAAO,EAAE;UAAE;QAC7C,CAAC;QACDC,GAAG,EAAE;UACH7F,IAAI,EAAE,aAAa;UACnB2F,WAAW,EAAE;YAAE3F,IAAI,EAAE,SAAS;YAAE4F,OAAO,EAAE;UAAI;QAC/C;MACF,CAAC;IACH,KAAK,WAAW;IAChB,KAAK,MAAM;MACT,OAAO;QAAE5F,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,MAAM;MACT,OAAO;QAAEA,IAAI,EAAE;MAAQ,CAAC;IAC1B,KAAK,OAAO;MACV,OAAO;QACLA,IAAI,EAAE,OAAO;QACb0F,GAAG,EAAE;UACH1F,IAAI,EAAE,aAAa;UACnB2F,WAAW,EAAE;YAAE3F,IAAI,EAAE,SAAS;YAAE4F,OAAO,EAAE;UAAE;QAC7C,CAAC;QACDC,GAAG,EAAE;UACH7F,IAAI,EAAE,aAAa;UACnB2F,WAAW,EAAE;YAAE3F,IAAI,EAAE,SAAS;YAAE4F,OAAO,EAAE;UAAM;QACjD;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QAAE5F,IAAI,EAAE;MAAO,CAAC;IACzB,KAAK,UAAU;IACf,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,gBAAgB;MACnB,OAAO;QAAEA,IAAI,EAAE;MAAiB,CAAC;IACnC,KAAK,eAAe;MAClB,OAAO;QAAEA,IAAI,EAAE;MAAyB,CAAC;IAC3C;MACE,QAAQA,IAAI,CAACA,IAAI;QACf,KAAK,SAAS;UACZ,OAAOA,IAAI,CAAC8F,WAAW,KAAK,MAAM,GAC9B;YAAE9F,IAAI,EAAE;UAAc,CAAC,GACvB;YAAEA,IAAI,EAAE;UAAmB,CAAC;QAClC,KAAK,QAAQ;UACX,MAAM,IAAIoD,KAAK,CAAC,+BAA+B,CAAC;QAClD;UACE,MAAM,IAAIA,KAAK,CAAC,cAAc,CAAC;MACnC;MACA;EACJ;AACF;AAEA,SAASlC,0BAA0BA,CACjC6E,EAA2C,EACtB;EACrB,MAAMC,QAAQ,GAAGD,EAAE,CAAC/F,IAAI;EACxB,IAAI,OAAOgG,QAAQ,KAAK,QAAQ,EAAE;IAChC,QAAQA,QAAQ,CAAChG,IAAI;MACnB,KAAK,SAAS;QACZ,OAAOiG,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;MACpC,KAAK,QAAQ;QACX,MAAM,IAAI3C,KAAK,CAAC,+BAA+B,CAAC;MAClD;QACE,MAAM,IAAIA,KAAK,CAAC,cAAc,CAAC;IACnC;EACF;EACA,IACE,OAAO4C,QAAQ,KAAK,QAAQ,IAAIE,8BAA8B,CAACF,QAAQ,CAAC,EACxE;IACA,OAAOC,YAAY,CAACD,QAAQ,EAAED,EAAE,CAAC;EACnC;EACA,QAAQC,QAAQ;IACd,KAAK,MAAM;IACX,KAAK,OAAO;MACV,OAAOC,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;IACpC,KAAK,UAAU;MACb,OAAOE,YAAY,CAAC,UAAU,EAAEF,EAAE,CAAC;IACrC,KAAK,OAAO;MACV,OAAOE,YAAY,CAAC,QAAQ,EAAEF,EAAE,CAAC;IACnC,KAAK,eAAe;MAClB,OAAOE,YAAY,CAAC,wBAAwB,EAAEF,EAAE,CAAC;IACnD;MACE,MAAM,IAAI3C,KAAK,CAAC,cAAc,CAAC;EACnC;AACF;AAEA,SAAS6C,YAAYA,CACnBjG,IAAkC,EAClC+F,EAA2C,EACtB;EACrB,OAASA,EAAE,CAAC3E,KAAK,IAAI,KAAK,GAAIpB,IAAI,GAAG,MAAM,GAAGA,IAAI;AACpD;AAEA,SAASkG,8BAA8BA,CACrClG,IAAY,EAC0B;EACtC,OAAO,CACL,SAAS,EACT,aAAa,EACb,SAAS,EACT,aAAa,EACb,MAAM,EACN,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,CAC7B,CAACmG,QAAQ,CAACnG,IAAI,CAAC;AAClB;AAEA,SAASR,KAAKA,CAACmF,CAAS,EAAU;EAChC,OAAOA,CAAC,CACLyB,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CACxCA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBC,WAAW,CAAC,CAAC;AAClB;AAEA,SAASf,QAAQA,CAACX,CAAS,EAAU;EACnC,OAAOA,CAAC,CAACwB,QAAQ,CAAC,GAAG,CAAC,GAAGxB,CAAC,GAAG1F,SAAS,GAAG0F,CAAC;AAC5C","ignoreList":[]}
1
+ {"version":3,"file":"defineAction.js","names":["invariant","namespace","ontologyDefinition","updateOntology","OntologyEntityTypeEnum","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","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"],"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 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): 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: 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"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,8 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
- import { ontologyDefinition } from "./defineOntology.js";
18
+ import { OntologyEntityTypeEnum } from "./types.js";
19
+
19
20
  /**
20
21
  * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation
21
22
  */
@@ -26,22 +27,20 @@ export function importSharedPropertyType(opts) {
26
27
  typeHint
27
28
  } = opts;
28
29
  if (packageName !== undefined) {
29
- ontologyDefinition.importedTypes.sharedPropertyTypes.push({
30
- apiName,
31
- packageName
32
- });
33
30
  !!packageName.endsWith(".") ? process.env.NODE_ENV !== "production" ? invariant(false, "Package name format invalid ends with period") : invariant(false) : void 0;
34
31
  !(packageName.match("[A-Z]") == null) ? process.env.NODE_ENV !== "production" ? invariant(false, "Package name includes upper case characters") : invariant(false) : void 0;
35
32
  return {
36
33
  apiName: packageName + "." + apiName,
37
34
  type: typeHint,
38
- nonNameSpacedApiName: apiName
35
+ nonNameSpacedApiName: apiName,
36
+ __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE
39
37
  };
40
38
  }
41
39
  return {
42
40
  apiName: apiName,
43
41
  type: typeHint,
44
- nonNameSpacedApiName: apiName
42
+ nonNameSpacedApiName: apiName,
43
+ __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE
45
44
  };
46
45
  }
47
46
  //# sourceMappingURL=defineImportSpt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineImportSpt.js","names":["invariant","ontologyDefinition","importSharedPropertyType","opts","apiName","packageName","typeHint","undefined","importedTypes","sharedPropertyTypes","push","endsWith","process","env","NODE_ENV","match","type","nonNameSpacedApiName"],"sources":["defineImportSpt.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 { ontologyDefinition } from \"./defineOntology.js\";\nimport type { PropertyTypeType, SharedPropertyType } from \"./types.js\";\n\n/**\n * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation\n */\nexport function importSharedPropertyType(\n opts: {\n apiName: string;\n packageName?: string;\n typeHint: PropertyTypeType;\n },\n): SharedPropertyType {\n const { apiName, packageName, typeHint } = opts;\n if (packageName !== undefined) {\n ontologyDefinition.importedTypes.sharedPropertyTypes.push({\n apiName,\n packageName,\n });\n invariant(\n !packageName.endsWith(\".\"),\n \"Package name format invalid ends with period\",\n );\n\n invariant(\n packageName.match(\"[A-Z]\") == null,\n \"Package name includes upper case characters\",\n );\n\n return {\n apiName: packageName + \".\" + apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName,\n };\n }\n return { apiName: apiName, type: typeHint, nonNameSpacedApiName: apiName };\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,kBAAkB,QAAQ,qBAAqB;AAGxD;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CACtCC,IAIC,EACmB;EACpB,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGH,IAAI;EAC/C,IAAIE,WAAW,KAAKE,SAAS,EAAE;IAC7BN,kBAAkB,CAACO,aAAa,CAACC,mBAAmB,CAACC,IAAI,CAAC;MACxDN,OAAO;MACPC;IACF,CAAC,CAAC;IACF,CACE,CAACA,WAAW,CAACM,QAAQ,CAAC,GAAG,CAAC,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5Bd,SAAS,QAEP,8CAA8C,IAFhDA,SAAS;IAKT,EACEK,WAAW,CAACU,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAAH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpCd,SAAS,QAEP,6CAA6C,IAF/CA,SAAS;IAKT,OAAO;MACLI,OAAO,EAAEC,WAAW,GAAG,GAAG,GAAGD,OAAO;MACpCY,IAAI,EAAEV,QAAQ;MACdW,oBAAoB,EAAEb;IACxB,CAAC;EACH;EACA,OAAO;IAAEA,OAAO,EAAEA,OAAO;IAAEY,IAAI,EAAEV,QAAQ;IAAEW,oBAAoB,EAAEb;EAAQ,CAAC;AAC5E","ignoreList":[]}
1
+ {"version":3,"file":"defineImportSpt.js","names":["invariant","OntologyEntityTypeEnum","importSharedPropertyType","opts","apiName","packageName","typeHint","undefined","endsWith","process","env","NODE_ENV","match","type","nonNameSpacedApiName","__type","SHARED_PROPERTY_TYPE"],"sources":["defineImportSpt.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 {\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type SharedPropertyType,\n} from \"./types.js\";\n\n/**\n * Defines a foreign shared property type you want to take as an input to your product. The typeHint field is used for OSDK generation\n */\nexport function importSharedPropertyType(\n opts: {\n apiName: string;\n packageName?: string;\n typeHint: PropertyTypeType;\n },\n): SharedPropertyType {\n const { apiName, packageName, typeHint } = opts;\n if (packageName !== undefined) {\n invariant(\n !packageName.endsWith(\".\"),\n \"Package name format invalid ends with period\",\n );\n\n invariant(\n packageName.match(\"[A-Z]\") == null,\n \"Package name includes upper case characters\",\n );\n\n return {\n apiName: packageName + \".\" + apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName,\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE,\n };\n }\n return {\n apiName: apiName,\n type: typeHint,\n nonNameSpacedApiName: apiName,\n __type: OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SACEC,sBAAsB,QAGjB,YAAY;;AAEnB;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CACtCC,IAIC,EACmB;EACpB,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGH,IAAI;EAC/C,IAAIE,WAAW,KAAKE,SAAS,EAAE;IAC7B,CACE,CAACF,WAAW,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5BX,SAAS,QAEP,8CAA8C,IAFhDA,SAAS;IAKT,EACEK,WAAW,CAACO,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAAH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpCX,SAAS,QAEP,6CAA6C,IAF/CA,SAAS;IAKT,OAAO;MACLI,OAAO,EAAEC,WAAW,GAAG,GAAG,GAAGD,OAAO;MACpCS,IAAI,EAAEP,QAAQ;MACdQ,oBAAoB,EAAEV,OAAO;MAC7BW,MAAM,EAAEd,sBAAsB,CAACe;IACjC,CAAC;EACH;EACA,OAAO;IACLZ,OAAO,EAAEA,OAAO;IAChBS,IAAI,EAAEP,QAAQ;IACdQ,oBAAoB,EAAEV,OAAO;IAC7BW,MAAM,EAAEd,sBAAsB,CAACe;EACjC,CAAC;AACH","ignoreList":[]}
@@ -15,58 +15,61 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
- import { namespace, ontologyDefinition } from "./defineOntology.js";
18
+ import { namespace, ontologyDefinition, updateOntology, withoutNamespace } from "./defineOntology.js";
19
19
  import { defineSharedPropertyType } from "./defineSpt.js";
20
- export function defineInterface(opts) {
21
- const apiName = namespace + opts.apiName;
22
- !(ontologyDefinition.interfaceTypes[apiName] === undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Interface ${apiName} already exists`) : invariant(false) : void 0;
23
- const properties = Object.fromEntries(Object.entries(opts.properties ?? {}).map(([apiName, type]) => {
20
+ import { OntologyEntityTypeEnum } from "./types.js";
21
+ export function defineInterface(interfaceDef) {
22
+ const apiName = namespace + interfaceDef.apiName;
23
+ !(ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName] === undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Interface ${apiName} already exists`) : invariant(false) : void 0;
24
+ const properties = Object.fromEntries(Object.entries(interfaceDef.properties ?? {}).map(([apiName, type]) => {
24
25
  if (typeof type === "object" && "propertyDefinition" in type) {
25
26
  return [apiName, {
26
27
  required: type.required,
27
- sharedPropertyType: unifyBasePropertyDefinition(apiName, type.propertyDefinition)
28
+ sharedPropertyType: unifyBasePropertyDefinition(namespace, apiName, type.propertyDefinition)
28
29
  }];
29
30
  }
30
31
  return [apiName, {
31
32
  required: true,
32
- sharedPropertyType: unifyBasePropertyDefinition(apiName, type)
33
+ sharedPropertyType: unifyBasePropertyDefinition(namespace, apiName, type)
33
34
  }];
34
35
  }));
35
36
  let extendsInterfaces = [];
36
- if (opts.extends) {
37
- if (typeof opts.extends === "string") {
38
- extendsInterfaces = [opts.extends];
39
- } else if (Array.isArray(opts.extends) && opts.extends.every(item => typeof item === "string")) {
40
- extendsInterfaces = opts.extends;
41
- } else if (opts.extends.apiName !== undefined) {
42
- extendsInterfaces = [opts.extends.apiName];
37
+ if (interfaceDef.extends) {
38
+ if (typeof interfaceDef.extends === "string") {
39
+ extendsInterfaces = [interfaceDef.extends];
40
+ } else if (Array.isArray(interfaceDef.extends) && interfaceDef.extends.every(item => typeof item === "string")) {
41
+ extendsInterfaces = interfaceDef.extends;
42
+ } else if (interfaceDef.extends.apiName !== undefined) {
43
+ extendsInterfaces = [interfaceDef.extends.apiName];
43
44
  } else {
44
- extendsInterfaces = opts.extends.map(item => item.apiName);
45
+ extendsInterfaces = interfaceDef.extends.map(item => item.apiName);
45
46
  }
46
47
  }
47
- const status = mapSimplifiedStatusToInterfaceTypeStatus(opts.status ?? {
48
+ const status = mapSimplifiedStatusToInterfaceTypeStatus(interfaceDef.status ?? {
48
49
  type: "active"
49
50
  });
50
51
  !(status.type !== "deprecated" || status.deprecated.message && status.deprecated.deadline) ? process.env.NODE_ENV !== "production" ? invariant(false, `Deprecated status must include message and deadline properties.`) : invariant(false) : void 0;
51
- const a = {
52
+ const fullInterface = {
52
53
  apiName,
53
54
  displayMetadata: {
54
- displayName: opts.displayName ?? opts.apiName,
55
- description: opts.description ?? opts.displayName ?? opts.apiName,
56
- icon: opts.icon !== undefined ? {
55
+ displayName: interfaceDef.displayName ?? interfaceDef.apiName,
56
+ description: interfaceDef.description ?? interfaceDef.displayName ?? interfaceDef.apiName,
57
+ icon: interfaceDef.icon !== undefined ? {
57
58
  type: "blueprint",
58
59
  blueprint: {
59
- color: opts.icon.color,
60
- locator: opts.icon.locator
60
+ color: interfaceDef.icon.color,
61
+ locator: interfaceDef.icon.locator
61
62
  }
62
63
  } : undefined
63
64
  },
64
65
  extendsInterfaces: extendsInterfaces,
65
66
  links: [],
66
67
  status,
67
- propertiesV2: properties
68
+ propertiesV2: properties,
69
+ __type: OntologyEntityTypeEnum.INTERFACE_TYPE
68
70
  };
69
- return ontologyDefinition.interfaceTypes[apiName] = a;
71
+ updateOntology(fullInterface);
72
+ return fullInterface;
70
73
  }
71
74
  function isPropertyTypeType(v) {
72
75
  return v === "boolean" || v === "byte" || v === "date" || v === "decimal" || v === "double" || v === "float" || v === "geopoint" || v === "geoshape" || v === "integer" || v === "long" || typeof v === "object" && v.type === "marking" || v === "short" || v === "string" || v === "timestamp";
@@ -96,7 +99,7 @@ function mapSimplifiedStatusToInterfaceTypeStatus(status) {
96
99
  throw new Error(`Invalid status type: ${status.type}`);
97
100
  }
98
101
  }
99
- function unifyBasePropertyDefinition(apiName, type) {
102
+ function unifyBasePropertyDefinition(namespace, apiName, type) {
100
103
  if (typeof type === "string" || typeof type === "object" && !("apiName" in type)) {
101
104
  !isPropertyTypeType(type) ? process.env.NODE_ENV !== "production" ? invariant(false, `Invalid data type ${JSON.stringify(type)} for property ${apiName} on InterfaceType ${apiName}`) : invariant(false) : void 0;
102
105
  const spt = defineSharedPropertyType({
@@ -107,7 +110,7 @@ function unifyBasePropertyDefinition(apiName, type) {
107
110
  });
108
111
  return spt;
109
112
  } else {
110
- const unNamespacedTypeApiName = type.apiName.slice(type.apiName.lastIndexOf(".") + 1);
113
+ const unNamespacedTypeApiName = withoutNamespace(type.apiName);
111
114
  !(namespace + apiName === type.apiName || apiName === unNamespacedTypeApiName) ? process.env.NODE_ENV !== "production" ? invariant(false, `property key and it's apiName must be identical. ${JSON.stringify({
112
115
  key: apiName,
113
116
  apiName: type.apiName
@@ -1 +1 @@
1
- {"version":3,"file":"defineInterface.js","names":["invariant","namespace","ontologyDefinition","defineSharedPropertyType","defineInterface","opts","apiName","interfaceTypes","undefined","process","env","NODE_ENV","properties","Object","fromEntries","entries","map","type","required","sharedPropertyType","unifyBasePropertyDefinition","propertyDefinition","extendsInterfaces","extends","Array","isArray","every","item","status","mapSimplifiedStatusToInterfaceTypeStatus","deprecated","message","deadline","a","displayMetadata","displayName","description","icon","blueprint","color","locator","links","propertiesV2","isPropertyTypeType","v","replacedBy","active","experimental","Error","JSON","stringify","spt","array","unNamespacedTypeApiName","slice","lastIndexOf","key"],"sources":["defineInterface.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 { defineSharedPropertyType } from \"./defineSpt.js\";\nimport type { BlueprintIcon } from \"./iconNames.js\";\nimport type {\n InterfaceType,\n InterfaceTypeStatus,\n PropertyTypeType,\n SharedPropertyType,\n} from \"./types.js\";\n\ntype SimplifiedInterfaceTypeStatus =\n | { type: \"deprecated\"; message: string; deadline: string }\n | { type: \"active\" }\n | { type: \"experimental\" };\n\ntype PropertyBase = SharedPropertyType | PropertyTypeType;\ntype PropertyWithOptional = {\n required: boolean;\n propertyDefinition: PropertyBase;\n};\n\nexport function defineInterface(\n opts: {\n apiName: string;\n displayName?: string;\n description?: string;\n icon?: { locator: BlueprintIcon; color: string };\n status?: SimplifiedInterfaceTypeStatus;\n properties?: Record<\n string,\n PropertyBase | PropertyWithOptional\n >;\n\n extends?: InterfaceType | InterfaceType[] | string | string[];\n },\n): InterfaceType {\n const apiName = namespace + opts.apiName;\n invariant(\n ontologyDefinition.interfaceTypes[apiName] === undefined,\n `Interface ${apiName} already exists`,\n );\n\n const properties = Object.fromEntries(\n Object.entries(opts.properties ?? {}).map<\n [string, { required: boolean; sharedPropertyType: SharedPropertyType }]\n >(\n ([apiName, type]) => {\n if (typeof type === \"object\" && \"propertyDefinition\" in type) {\n return [apiName, {\n required: type.required,\n sharedPropertyType: unifyBasePropertyDefinition(\n apiName,\n type.propertyDefinition,\n ),\n }];\n }\n\n return [apiName, {\n required: true,\n sharedPropertyType: unifyBasePropertyDefinition(apiName, type),\n }];\n },\n ),\n );\n\n let extendsInterfaces: string[] = [];\n if (opts.extends) {\n if (typeof opts.extends === \"string\") {\n extendsInterfaces = [opts.extends];\n } else if (\n Array.isArray(opts.extends)\n && opts.extends.every(item => typeof item === \"string\")\n ) {\n extendsInterfaces = opts.extends;\n } else if ((opts.extends as InterfaceType).apiName !== undefined) {\n extendsInterfaces = [(opts.extends as InterfaceType).apiName];\n } else {\n extendsInterfaces = (opts.extends as InterfaceType[]).map(item =>\n item.apiName\n );\n }\n }\n\n const status: InterfaceTypeStatus = mapSimplifiedStatusToInterfaceTypeStatus(\n opts.status ?? { type: \"active\" },\n );\n\n invariant(\n status.type !== \"deprecated\"\n || (status.deprecated.message && status.deprecated.deadline),\n `Deprecated status must include message and deadline properties.`,\n );\n\n const a: InterfaceType = {\n apiName,\n displayMetadata: {\n displayName: opts.displayName ?? opts.apiName,\n description: opts.description ?? opts.displayName ?? opts.apiName,\n icon: opts.icon !== undefined\n ? {\n type: \"blueprint\",\n blueprint: { color: opts.icon.color, locator: opts.icon.locator },\n }\n : undefined,\n },\n extendsInterfaces: extendsInterfaces,\n links: [],\n status,\n propertiesV2: properties,\n };\n\n return ontologyDefinition.interfaceTypes[apiName] = a;\n}\n\nfunction isPropertyTypeType(\n v: PropertyTypeType,\n): v is PropertyTypeType {\n return v === \"boolean\" || v === \"byte\"\n || v === \"date\" || v === \"decimal\" || v === \"double\"\n || v === \"float\" || v === \"geopoint\" || v === \"geoshape\"\n || v === \"integer\" || v === \"long\"\n || (typeof v === \"object\" && v.type === \"marking\")\n || v === \"short\" || v === \"string\"\n || v === \"timestamp\";\n}\n\nfunction mapSimplifiedStatusToInterfaceTypeStatus(\n status: SimplifiedInterfaceTypeStatus,\n): InterfaceTypeStatus {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n case \"active\":\n return {\n type: \"active\",\n active: {},\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {},\n };\n default:\n throw new Error(`Invalid status type: ${(status as any).type}`);\n }\n}\n\nfunction unifyBasePropertyDefinition(\n apiName: string,\n type: PropertyBase,\n): SharedPropertyType {\n if (\n typeof type === \"string\"\n || (typeof type === \"object\" && !(\"apiName\" in type))\n ) {\n invariant(\n isPropertyTypeType(type),\n `Invalid data type ${\n JSON.stringify(type)\n } for property ${apiName} on InterfaceType ${apiName}`,\n );\n\n const spt = defineSharedPropertyType({\n apiName,\n displayName: apiName,\n type,\n array: false,\n });\n return spt;\n } else {\n const unNamespacedTypeApiName = type.apiName.slice(\n type.apiName.lastIndexOf(\".\") + 1,\n );\n invariant(\n namespace + apiName === type.apiName\n || apiName === unNamespacedTypeApiName,\n `property key and it's apiName must be identical. ${\n JSON.stringify({ key: apiName, apiName: type.apiName })\n }`,\n );\n return type;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineInterface.js","names":["invariant","namespace","ontologyDefinition","updateOntology","withoutNamespace","defineSharedPropertyType","OntologyEntityTypeEnum","defineInterface","interfaceDef","apiName","INTERFACE_TYPE","undefined","process","env","NODE_ENV","properties","Object","fromEntries","entries","map","type","required","sharedPropertyType","unifyBasePropertyDefinition","propertyDefinition","extendsInterfaces","extends","Array","isArray","every","item","status","mapSimplifiedStatusToInterfaceTypeStatus","deprecated","message","deadline","fullInterface","displayMetadata","displayName","description","icon","blueprint","color","locator","links","propertiesV2","__type","isPropertyTypeType","v","replacedBy","active","experimental","Error","JSON","stringify","spt","array","unNamespacedTypeApiName","key"],"sources":["defineInterface.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 {\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { defineSharedPropertyType } from \"./defineSpt.js\";\nimport type { BlueprintIcon } from \"./iconNames.js\";\nimport {\n type InterfaceType,\n type InterfaceTypeStatus,\n OntologyEntityTypeEnum,\n type PropertyTypeType,\n type SharedPropertyType,\n} from \"./types.js\";\n\ntype SimplifiedInterfaceTypeStatus =\n | { type: \"deprecated\"; message: string; deadline: string }\n | { type: \"active\" }\n | { type: \"experimental\" };\n\ntype PropertyBase = SharedPropertyType | PropertyTypeType;\ntype PropertyWithOptional = {\n required: boolean;\n propertyDefinition: PropertyBase;\n};\n\nexport type InterfaceTypeDefinition = {\n apiName: string;\n displayName?: string;\n description?: string;\n icon?: { locator: BlueprintIcon; color: string };\n status?: SimplifiedInterfaceTypeStatus;\n properties?: Record<\n string,\n PropertyBase | PropertyWithOptional\n >;\n extends?: InterfaceType | InterfaceType[] | string | string[];\n};\n\nexport function defineInterface(\n interfaceDef: InterfaceTypeDefinition,\n): InterfaceType {\n const apiName = namespace + interfaceDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName]\n === undefined,\n `Interface ${apiName} already exists`,\n );\n\n const properties = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).map<\n [string, { required: boolean; sharedPropertyType: SharedPropertyType }]\n >(\n ([apiName, type]) => {\n if (typeof type === \"object\" && \"propertyDefinition\" in type) {\n return [apiName, {\n required: type.required,\n sharedPropertyType: unifyBasePropertyDefinition(\n namespace,\n apiName,\n type.propertyDefinition,\n ),\n }];\n }\n\n return [apiName, {\n required: true,\n sharedPropertyType: unifyBasePropertyDefinition(\n namespace,\n apiName,\n type,\n ),\n }];\n },\n ),\n );\n\n let extendsInterfaces: string[] = [];\n if (interfaceDef.extends) {\n if (typeof interfaceDef.extends === \"string\") {\n extendsInterfaces = [interfaceDef.extends];\n } else if (\n Array.isArray(interfaceDef.extends)\n && interfaceDef.extends.every(item => typeof item === \"string\")\n ) {\n extendsInterfaces = interfaceDef.extends;\n } else if ((interfaceDef.extends as InterfaceType).apiName !== undefined) {\n extendsInterfaces = [(interfaceDef.extends as InterfaceType).apiName];\n } else {\n extendsInterfaces = (interfaceDef.extends as InterfaceType[]).map(item =>\n item.apiName\n );\n }\n }\n\n const status: InterfaceTypeStatus = mapSimplifiedStatusToInterfaceTypeStatus(\n interfaceDef.status ?? { type: \"active\" },\n );\n\n invariant(\n status.type !== \"deprecated\"\n || (status.deprecated.message && status.deprecated.deadline),\n `Deprecated status must include message and deadline properties.`,\n );\n\n const fullInterface: InterfaceType = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName\n ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined\n ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator,\n },\n }\n : undefined,\n },\n extendsInterfaces: extendsInterfaces,\n links: [],\n status,\n propertiesV2: properties,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE,\n };\n\n updateOntology(fullInterface);\n return fullInterface;\n}\n\nfunction isPropertyTypeType(\n v: PropertyTypeType,\n): v is PropertyTypeType {\n return v === \"boolean\" || v === \"byte\"\n || v === \"date\" || v === \"decimal\" || v === \"double\"\n || v === \"float\" || v === \"geopoint\" || v === \"geoshape\"\n || v === \"integer\" || v === \"long\"\n || (typeof v === \"object\" && v.type === \"marking\")\n || v === \"short\" || v === \"string\"\n || v === \"timestamp\";\n}\n\nfunction mapSimplifiedStatusToInterfaceTypeStatus(\n status: SimplifiedInterfaceTypeStatus,\n): InterfaceTypeStatus {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n case \"active\":\n return {\n type: \"active\",\n active: {},\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {},\n };\n default:\n throw new Error(`Invalid status type: ${(status as any).type}`);\n }\n}\n\nfunction unifyBasePropertyDefinition(\n namespace: string,\n apiName: string,\n type: PropertyBase,\n): SharedPropertyType {\n if (\n typeof type === \"string\"\n || (typeof type === \"object\" && !(\"apiName\" in type))\n ) {\n invariant(\n isPropertyTypeType(type),\n `Invalid data type ${\n JSON.stringify(type)\n } for property ${apiName} on InterfaceType ${apiName}`,\n );\n\n const spt = defineSharedPropertyType({\n apiName,\n displayName: apiName,\n type,\n array: false,\n });\n return spt;\n } else {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n invariant(\n namespace + apiName === type.apiName\n || apiName === unNamespacedTypeApiName,\n `property key and it's apiName must be identical. ${\n JSON.stringify({ key: apiName, apiName: type.apiName })\n }`,\n );\n return type;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
- import { namespace } from "./defineOntology.js";
18
+ import { namespace, sanitize, withoutNamespace } from "./defineOntology.js";
19
19
  export function defineInterfaceLinkConstraint(linkDef) {
20
20
  const fromLinkMeta = getLinkMeta(linkDef);
21
21
  !(linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName) == null) ? process.env.NODE_ENV !== "production" ? invariant(false, `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`) : invariant(false) : void 0;
@@ -33,19 +33,17 @@ function getLinkedType(t) {
33
33
  };
34
34
  }
35
35
  function getLinkMeta(meta) {
36
- return typeof meta === "string" ? withDefaults({
37
- apiName: namespace + meta
38
- }) : withDefaults(meta);
39
- }
40
- function withDefaults({
41
- apiName,
42
- description,
43
- displayName
44
- }) {
36
+ const {
37
+ apiName,
38
+ displayName,
39
+ description
40
+ } = meta;
41
+ const apiNameWithNamespace = sanitize(namespace, apiName);
42
+ const apiNameWithoutNamespace = withoutNamespace(apiNameWithNamespace);
45
43
  return {
46
- apiName: namespace + apiName,
47
- displayName: displayName ?? apiName,
48
- description: description ?? displayName ?? apiName
44
+ apiName: apiNameWithNamespace,
45
+ displayName: displayName ?? apiNameWithoutNamespace,
46
+ description: description ?? displayName ?? apiNameWithoutNamespace
49
47
  };
50
48
  }
51
49
  //# sourceMappingURL=defineInterfaceLinkConstraint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineInterfaceLinkConstraint.js","names":["invariant","namespace","defineInterfaceLinkConstraint","linkDef","fromLinkMeta","getLinkMeta","from","links","find","a","metadata","apiName","process","env","NODE_ENV","push","cardinality","toMany","linkedEntityTypeId","getLinkedType","toOne","required","t","type","interfaceType","meta","withDefaults","description","displayName"],"sources":["defineInterfaceLinkConstraint.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 } from \"./defineOntology.js\";\nimport type { InterfaceType } from \"./types.js\";\n\ntype Meta = { apiName: string; displayName?: string; description?: string };\ntype ApiNameOrInterfaceType = string | InterfaceType;\n\ntype Many = {\n apiName: string;\n from: InterfaceType;\n toMany: ApiNameOrInterfaceType;\n toOne?: never;\n displayName?: string;\n description?: string;\n required?: boolean;\n};\ntype One = {\n apiName: string;\n from: InterfaceType;\n toOne: ApiNameOrInterfaceType;\n toMany?: never;\n displayName?: string;\n description?: string;\n required?: boolean;\n};\n\nexport function defineInterfaceLinkConstraint(\n linkDef: One | Many,\n): void {\n const fromLinkMeta = getLinkMeta(linkDef);\n\n invariant(\n linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName)\n == null,\n `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`,\n );\n\n linkDef.from.links.push({\n cardinality: linkDef.toMany ? \"MANY\" : \"SINGLE\",\n linkedEntityTypeId: getLinkedType(linkDef.toMany ?? linkDef.toOne),\n metadata: fromLinkMeta,\n required: linkDef.required ?? true,\n });\n}\n\nfunction getLinkedType(t: string | InterfaceType) {\n return {\n type: \"interfaceType\" as const,\n interfaceType: typeof t === \"string\" ? t : t.apiName,\n };\n}\n\nfunction getLinkMeta(meta: One | Many) {\n return typeof meta === \"string\"\n ? withDefaults({ apiName: namespace + meta })\n : withDefaults(meta);\n}\n\nfunction withDefaults(\n { apiName, description, displayName }: Meta,\n): Required<Meta> {\n return {\n apiName: namespace + apiName,\n displayName: displayName ?? apiName,\n description: description ?? displayName ?? apiName,\n };\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,SAAS,QAAQ,qBAAqB;AAyB/C,OAAO,SAASC,6BAA6BA,CAC3CC,OAAmB,EACb;EACN,MAAMC,YAAY,GAAGC,WAAW,CAACF,OAAO,CAAC;EAEzC,EACEA,OAAO,CAACG,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAACC,OAAO,KAAKP,YAAY,CAACO,OAAO,CAAC,IACpE,IAAI,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFXd,SAAS,QAGP,qBAAqBI,YAAY,CAACO,OAAO,sBAAsBR,OAAO,CAACQ,OAAO,EAAE,IAHlFX,SAAS;EAMTG,OAAO,CAACG,IAAI,CAACC,KAAK,CAACQ,IAAI,CAAC;IACtBC,WAAW,EAAEb,OAAO,CAACc,MAAM,GAAG,MAAM,GAAG,QAAQ;IAC/CC,kBAAkB,EAAEC,aAAa,CAAChB,OAAO,CAACc,MAAM,IAAId,OAAO,CAACiB,KAAK,CAAC;IAClEV,QAAQ,EAAEN,YAAY;IACtBiB,QAAQ,EAAElB,OAAO,CAACkB,QAAQ,IAAI;EAChC,CAAC,CAAC;AACJ;AAEA,SAASF,aAAaA,CAACG,CAAyB,EAAE;EAChD,OAAO;IACLC,IAAI,EAAE,eAAwB;IAC9BC,aAAa,EAAE,OAAOF,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGA,CAAC,CAACX;EAC/C,CAAC;AACH;AAEA,SAASN,WAAWA,CAACoB,IAAgB,EAAE;EACrC,OAAO,OAAOA,IAAI,KAAK,QAAQ,GAC3BC,YAAY,CAAC;IAAEf,OAAO,EAAEV,SAAS,GAAGwB;EAAK,CAAC,CAAC,GAC3CC,YAAY,CAACD,IAAI,CAAC;AACxB;AAEA,SAASC,YAAYA,CACnB;EAAEf,OAAO;EAAEgB,WAAW;EAAEC;AAAkB,CAAC,EAC3B;EAChB,OAAO;IACLjB,OAAO,EAAEV,SAAS,GAAGU,OAAO;IAC5BiB,WAAW,EAAEA,WAAW,IAAIjB,OAAO;IACnCgB,WAAW,EAAEA,WAAW,IAAIC,WAAW,IAAIjB;EAC7C,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"defineInterfaceLinkConstraint.js","names":["invariant","namespace","sanitize","withoutNamespace","defineInterfaceLinkConstraint","linkDef","fromLinkMeta","getLinkMeta","from","links","find","a","metadata","apiName","process","env","NODE_ENV","push","cardinality","toMany","linkedEntityTypeId","getLinkedType","toOne","required","t","type","interfaceType","meta","displayName","description","apiNameWithNamespace","apiNameWithoutNamespace"],"sources":["defineInterfaceLinkConstraint.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, sanitize, withoutNamespace } from \"./defineOntology.js\";\nimport type { InterfaceType } from \"./types.js\";\n\ntype Meta = { apiName: string; displayName?: string; description?: string };\ntype ApiNameOrInterfaceType = string | InterfaceType;\n\ntype Many = {\n apiName: string;\n from: InterfaceType;\n toMany: ApiNameOrInterfaceType;\n toOne?: never;\n displayName?: string;\n description?: string;\n required?: boolean;\n};\ntype One = {\n apiName: string;\n from: InterfaceType;\n toOne: ApiNameOrInterfaceType;\n toMany?: never;\n displayName?: string;\n description?: string;\n required?: boolean;\n};\n\nexport function defineInterfaceLinkConstraint(\n linkDef: One | Many,\n): void {\n const fromLinkMeta = getLinkMeta(linkDef);\n\n invariant(\n linkDef.from.links.find(a => a.metadata.apiName === fromLinkMeta.apiName)\n == null,\n `Link with apiName ${fromLinkMeta.apiName} already exists on ${linkDef.apiName}`,\n );\n\n linkDef.from.links.push({\n cardinality: linkDef.toMany ? \"MANY\" : \"SINGLE\",\n linkedEntityTypeId: getLinkedType(linkDef.toMany ?? linkDef.toOne),\n metadata: fromLinkMeta,\n required: linkDef.required ?? true,\n });\n}\n\nfunction getLinkedType(t: string | InterfaceType) {\n return {\n type: \"interfaceType\" as const,\n interfaceType: typeof t === \"string\" ? t : t.apiName,\n };\n}\n\nfunction getLinkMeta(meta: One | Many): Required<Meta> {\n const { apiName, displayName, description } = meta;\n const apiNameWithNamespace = sanitize(namespace, apiName);\n const apiNameWithoutNamespace = withoutNamespace(apiNameWithNamespace);\n return {\n apiName: apiNameWithNamespace,\n displayName: displayName ?? apiNameWithoutNamespace,\n description: description ?? displayName ?? apiNameWithoutNamespace,\n };\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,SAAS,EAAEC,QAAQ,EAAEC,gBAAgB,QAAQ,qBAAqB;AAyB3E,OAAO,SAASC,6BAA6BA,CAC3CC,OAAmB,EACb;EACN,MAAMC,YAAY,GAAGC,WAAW,CAACF,OAAO,CAAC;EAEzC,EACEA,OAAO,CAACG,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAACC,OAAO,KAAKP,YAAY,CAACO,OAAO,CAAC,IACpE,IAAI,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFXhB,SAAS,QAGP,qBAAqBM,YAAY,CAACO,OAAO,sBAAsBR,OAAO,CAACQ,OAAO,EAAE,IAHlFb,SAAS;EAMTK,OAAO,CAACG,IAAI,CAACC,KAAK,CAACQ,IAAI,CAAC;IACtBC,WAAW,EAAEb,OAAO,CAACc,MAAM,GAAG,MAAM,GAAG,QAAQ;IAC/CC,kBAAkB,EAAEC,aAAa,CAAChB,OAAO,CAACc,MAAM,IAAId,OAAO,CAACiB,KAAK,CAAC;IAClEV,QAAQ,EAAEN,YAAY;IACtBiB,QAAQ,EAAElB,OAAO,CAACkB,QAAQ,IAAI;EAChC,CAAC,CAAC;AACJ;AAEA,SAASF,aAAaA,CAACG,CAAyB,EAAE;EAChD,OAAO;IACLC,IAAI,EAAE,eAAwB;IAC9BC,aAAa,EAAE,OAAOF,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGA,CAAC,CAACX;EAC/C,CAAC;AACH;AAEA,SAASN,WAAWA,CAACoB,IAAgB,EAAkB;EACrD,MAAM;IAAEd,OAAO;IAAEe,WAAW;IAAEC;EAAY,CAAC,GAAGF,IAAI;EAClD,MAAMG,oBAAoB,GAAG5B,QAAQ,CAACD,SAAS,EAAEY,OAAO,CAAC;EACzD,MAAMkB,uBAAuB,GAAG5B,gBAAgB,CAAC2B,oBAAoB,CAAC;EACtE,OAAO;IACLjB,OAAO,EAAEiB,oBAAoB;IAC7BF,WAAW,EAAEA,WAAW,IAAIG,uBAAuB;IACnDF,WAAW,EAAEA,WAAW,IAAID,WAAW,IAAIG;EAC7C,CAAC;AACH","ignoreList":[]}
@@ -15,7 +15,8 @@
15
15
  */
16
16
 
17
17
  import invariant from "tiny-invariant";
18
- import { ontologyDefinition } from "./defineOntology.js";
18
+ import { updateOntology } from "./defineOntology.js";
19
+ import { OntologyEntityTypeEnum } from "./types.js";
19
20
  const defaultTypeClasses = [{
20
21
  kind: "render_hint",
21
22
  name: "SELECTABLE"
@@ -26,11 +27,15 @@ const defaultTypeClasses = [{
26
27
  export function defineLink(linkDefinition) {
27
28
  if ("one" in linkDefinition) {
28
29
  const foreignKey = linkDefinition.toMany.object.properties?.find(prop => prop.apiName === linkDefinition.manyForeignKeyProperty);
29
- !(foreignKey !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Foreign key ${linkDefinition.manyForeignKeyProperty} on link ${linkDefinition.id} does not exist on object ${linkDefinition.toMany.object.apiName}}`) : invariant(false) : void 0;
30
+ !(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;
30
31
  const typesMatch = foreignKey.type === linkDefinition.one.object.properties?.find(prop => prop.apiName === linkDefinition.one.object.primaryKeyPropertyApiName)?.type;
31
- !typesMatch ? process.env.NODE_ENV !== "production" ? invariant(false, `Link ${linkDefinition.id} has type mismatch between the one side's primary key and the foreign key on the many side`) : invariant(false) : void 0;
32
+ !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;
32
33
  }
33
- ontologyDefinition.linkTypes[linkDefinition.id] = linkDefinition;
34
- return linkDefinition;
34
+ const linkType = {
35
+ ...linkDefinition,
36
+ __type: OntologyEntityTypeEnum.LINK_TYPE
37
+ };
38
+ updateOntology(linkType);
39
+ return linkType;
35
40
  }
36
41
  //# sourceMappingURL=defineLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineLink.js","names":["invariant","ontologyDefinition","defaultTypeClasses","kind","name","defineLink","linkDefinition","foreignKey","toMany","object","properties","find","prop","apiName","manyForeignKeyProperty","undefined","process","env","NODE_ENV","id","typesMatch","type","one","primaryKeyPropertyApiName","linkTypes"],"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 { ontologyDefinition } from \"./defineOntology.js\";\nimport type { LinkTypeDefinition, SharedPropertyType } from \"./types.js\";\n\nconst defaultTypeClasses: SharedPropertyType[\"typeClasses\"] = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\",\n}, { kind: \"render_hint\", name: \"SORTABLE\" }];\n\nexport function defineLink(\n linkDefinition: LinkTypeDefinition,\n): LinkTypeDefinition {\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.id} 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.id} has type mismatch between the one side's primary key and the foreign key on the many side`,\n );\n }\n ontologyDefinition.linkTypes[linkDefinition.id] = linkDefinition;\n return linkDefinition;\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,kBAAkB,QAAQ,qBAAqB;AAGxD,MAAMC,kBAAqD,GAAG,CAAC;EAC7DC,IAAI,EAAE,aAAa;EACnBC,IAAI,EAAE;AACR,CAAC,EAAE;EAAED,IAAI,EAAE,aAAa;EAAEC,IAAI,EAAE;AAAW,CAAC,CAAC;AAE7C,OAAO,SAASC,UAAUA,CACxBC,cAAkC,EACd;EACpB,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,oBAD1BlB,SAAS,QAEP,eAAeM,cAAc,CAACQ,sBAAsB,YAAYR,cAAc,CAACa,EAAE,6BAA6Bb,cAAc,CAACE,MAAM,CAACC,MAAM,CAACI,OAAO,GAAG,IAFvJb,SAAS;IAKT,MAAMoB,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,oBADZlB,SAAS,QAEP,QAAQM,cAAc,CAACa,EAAE,4FAA4F,IAFvHnB,SAAS;EAIX;EACAC,kBAAkB,CAACuB,SAAS,CAAClB,cAAc,CAACa,EAAE,CAAC,GAAGb,cAAc;EAChE,OAAOA,cAAc;AACvB","ignoreList":[]}
1
+ {"version":3,"file":"defineLink.js","names":["invariant","updateOntology","OntologyEntityTypeEnum","defaultTypeClasses","kind","name","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 {\n LinkType,\n LinkTypeDefinition,\n SharedPropertyType,\n} from \"./types.js\";\nimport { OntologyEntityTypeEnum } from \"./types.js\";\n\nconst defaultTypeClasses: SharedPropertyType[\"typeClasses\"] = [{\n kind: \"render_hint\",\n name: \"SELECTABLE\",\n}, { kind: \"render_hint\", name: \"SORTABLE\" }];\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;AAMpD,SAASC,sBAAsB,QAAQ,YAAY;AAEnD,MAAMC,kBAAqD,GAAG,CAAC;EAC7DC,IAAI,EAAE,aAAa;EACnBC,IAAI,EAAE;AACR,CAAC,EAAE;EAAED,IAAI,EAAE,aAAa;EAAEC,IAAI,EAAE;AAAW,CAAC,CAAC;AAE7C,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,oBAD1BnB,SAAS,QAEP,eAAeO,cAAc,CAACQ,sBAAsB,YAAYR,cAAc,CAACO,OAAO,6BAA6BP,cAAc,CAACE,MAAM,CAACC,MAAM,CAACI,OAAO,GAAG,IAF5Jd,SAAS;IAKT,MAAMoB,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,oBADZnB,SAAS,QAEP,QAAQO,cAAc,CAACO,OAAO,4FAA4F,IAF5Hd,SAAS;EAIX;EACA,MAAMwB,QAAkB,GAAG;IACzB,GAAGjB,cAAc;IACjBkB,MAAM,EAAEvB,sBAAsB,CAACwB;EACjC,CAAC;EACDzB,cAAc,CAACuB,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB","ignoreList":[]}