@osdk/maker 0.16.0-beta.3 → 0.16.0-beta.4

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 (101) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/browser/api/cloneDefinition.js +36 -0
  3. package/build/browser/api/cloneDefinition.js.map +1 -0
  4. package/build/browser/api/code-snippets/createCodeSnippets.js +1 -1
  5. package/build/browser/api/code-snippets/createCodeSnippets.js.map +1 -1
  6. package/build/browser/api/defineAction.js +3 -1
  7. package/build/browser/api/defineAction.js.map +1 -1
  8. package/build/browser/api/defineCreateInterfaceObjectAction.js +3 -1
  9. package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -1
  10. package/build/browser/api/defineCreateObjectAction.js +3 -1
  11. package/build/browser/api/defineCreateObjectAction.js.map +1 -1
  12. package/build/browser/api/defineCreateOrModifyObjectAction.js +3 -1
  13. package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -1
  14. package/build/browser/api/defineDeleteInterfaceObjectAction.js +3 -1
  15. package/build/browser/api/defineDeleteInterfaceObjectAction.js.map +1 -1
  16. package/build/browser/api/defineDeleteObjectAction.js +3 -1
  17. package/build/browser/api/defineDeleteObjectAction.js.map +1 -1
  18. package/build/browser/api/defineInterface.js +3 -1
  19. package/build/browser/api/defineInterface.js.map +1 -1
  20. package/build/browser/api/defineInterfaceLinkConstraint.js +6 -2
  21. package/build/browser/api/defineInterfaceLinkConstraint.js.map +1 -1
  22. package/build/browser/api/defineLink.js +3 -1
  23. package/build/browser/api/defineLink.js.map +1 -1
  24. package/build/browser/api/defineModifyInterfaceObjectAction.js +3 -1
  25. package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -1
  26. package/build/browser/api/defineModifyObjectAction.js +3 -1
  27. package/build/browser/api/defineModifyObjectAction.js.map +1 -1
  28. package/build/browser/api/defineObject.js +3 -1
  29. package/build/browser/api/defineObject.js.map +1 -1
  30. package/build/browser/api/defineSpt.js +3 -1
  31. package/build/browser/api/defineSpt.js.map +1 -1
  32. package/build/browser/api/defineValueType.js +3 -1
  33. package/build/browser/api/defineValueType.js.map +1 -1
  34. package/build/browser/cli/main.js +1 -1
  35. package/build/cjs/index.cjs +44 -16
  36. package/build/cjs/index.cjs.map +1 -1
  37. package/build/cjs/index.d.cts +14 -14
  38. package/build/esm/api/cloneDefinition.js +36 -0
  39. package/build/esm/api/cloneDefinition.js.map +1 -0
  40. package/build/esm/api/code-snippets/createCodeSnippets.js +1 -1
  41. package/build/esm/api/code-snippets/createCodeSnippets.js.map +1 -1
  42. package/build/esm/api/defineAction.js +3 -1
  43. package/build/esm/api/defineAction.js.map +1 -1
  44. package/build/esm/api/defineCreateInterfaceObjectAction.js +3 -1
  45. package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -1
  46. package/build/esm/api/defineCreateObjectAction.js +3 -1
  47. package/build/esm/api/defineCreateObjectAction.js.map +1 -1
  48. package/build/esm/api/defineCreateOrModifyObjectAction.js +3 -1
  49. package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -1
  50. package/build/esm/api/defineDeleteInterfaceObjectAction.js +3 -1
  51. package/build/esm/api/defineDeleteInterfaceObjectAction.js.map +1 -1
  52. package/build/esm/api/defineDeleteObjectAction.js +3 -1
  53. package/build/esm/api/defineDeleteObjectAction.js.map +1 -1
  54. package/build/esm/api/defineInterface.js +3 -1
  55. package/build/esm/api/defineInterface.js.map +1 -1
  56. package/build/esm/api/defineInterfaceLinkConstraint.js +6 -2
  57. package/build/esm/api/defineInterfaceLinkConstraint.js.map +1 -1
  58. package/build/esm/api/defineLink.js +3 -1
  59. package/build/esm/api/defineLink.js.map +1 -1
  60. package/build/esm/api/defineModifyInterfaceObjectAction.js +3 -1
  61. package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -1
  62. package/build/esm/api/defineModifyObjectAction.js +3 -1
  63. package/build/esm/api/defineModifyObjectAction.js.map +1 -1
  64. package/build/esm/api/defineObject.js +3 -1
  65. package/build/esm/api/defineObject.js.map +1 -1
  66. package/build/esm/api/defineSpt.js +3 -1
  67. package/build/esm/api/defineSpt.js.map +1 -1
  68. package/build/esm/api/defineValueType.js +3 -1
  69. package/build/esm/api/defineValueType.js.map +1 -1
  70. package/build/esm/cli/main.js +1 -1
  71. package/build/types/api/cloneDefinition.d.ts +9 -0
  72. package/build/types/api/cloneDefinition.d.ts.map +1 -0
  73. package/build/types/api/defineAction.d.ts +1 -1
  74. package/build/types/api/defineAction.d.ts.map +1 -1
  75. package/build/types/api/defineCreateInterfaceObjectAction.d.ts +1 -1
  76. package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -1
  77. package/build/types/api/defineCreateObjectAction.d.ts +1 -1
  78. package/build/types/api/defineCreateObjectAction.d.ts.map +1 -1
  79. package/build/types/api/defineCreateOrModifyObjectAction.d.ts +1 -1
  80. package/build/types/api/defineCreateOrModifyObjectAction.d.ts.map +1 -1
  81. package/build/types/api/defineDeleteInterfaceObjectAction.d.ts +1 -1
  82. package/build/types/api/defineDeleteInterfaceObjectAction.d.ts.map +1 -1
  83. package/build/types/api/defineDeleteObjectAction.d.ts +1 -1
  84. package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -1
  85. package/build/types/api/defineInterface.d.ts +1 -1
  86. package/build/types/api/defineInterface.d.ts.map +1 -1
  87. package/build/types/api/defineInterfaceLinkConstraint.d.ts +1 -1
  88. package/build/types/api/defineInterfaceLinkConstraint.d.ts.map +1 -1
  89. package/build/types/api/defineLink.d.ts +1 -1
  90. package/build/types/api/defineLink.d.ts.map +1 -1
  91. package/build/types/api/defineModifyInterfaceObjectAction.d.ts +1 -1
  92. package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -1
  93. package/build/types/api/defineModifyObjectAction.d.ts +1 -1
  94. package/build/types/api/defineModifyObjectAction.d.ts.map +1 -1
  95. package/build/types/api/defineObject.d.ts +1 -1
  96. package/build/types/api/defineObject.d.ts.map +1 -1
  97. package/build/types/api/defineSpt.d.ts +1 -1
  98. package/build/types/api/defineSpt.d.ts.map +1 -1
  99. package/build/types/api/defineValueType.d.ts +1 -1
  100. package/build/types/api/defineValueType.d.ts.map +1 -1
  101. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.16.0-beta.4
4
+
5
+ ### Minor Changes
6
+
7
+ - ab50d31: Remove propertiesV2 from code-snippets
8
+ - 2b15836: Disallow ILCs on imported interfaces
9
+ - e0ba9eb: Shallow clone arrays in definition when passed in to defineFoo methods
10
+
11
+ ### Patch Changes
12
+
13
+ - @osdk/api@2.8.0-beta.6
14
+
3
15
  ## 0.16.0-beta.3
4
16
 
5
17
  ### Minor Changes
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * Shallow-clones a definition object, copying any array-valued properties
19
+ * to prevent shared-array mutation bugs (e.g. when users pass the same
20
+ * datasources constant to multiple defineObject calls).
21
+ *
22
+ * Does NOT deep-clone nested objects so that entity references (interfaces,
23
+ * link types, etc.) preserve their identity for registry lookups.
24
+ */
25
+ export function cloneDefinition(input) {
26
+ const clone = {
27
+ ...input
28
+ };
29
+ for (const key in clone) {
30
+ if (Object.prototype.hasOwnProperty.call(clone, key) && Array.isArray(clone[key])) {
31
+ clone[key] = [...clone[key]];
32
+ }
33
+ }
34
+ return clone;
35
+ }
36
+ //# sourceMappingURL=cloneDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneDefinition.js","names":["cloneDefinition","input","clone","key","Object","prototype","hasOwnProperty","call","Array","isArray"],"sources":["cloneDefinition.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\n/**\n * Shallow-clones a definition object, copying any array-valued properties\n * to prevent shared-array mutation bugs (e.g. when users pass the same\n * datasources constant to multiple defineObject calls).\n *\n * Does NOT deep-clone nested objects so that entity references (interfaces,\n * link types, etc.) preserve their identity for registry lookups.\n */\nexport function cloneDefinition<T extends object>(\n input: T,\n): T {\n const clone = { ...input };\n for (const key in clone) {\n if (\n Object.prototype.hasOwnProperty.call(clone, key)\n && Array.isArray(clone[key])\n ) {\n (clone as any)[key] = [...(clone[key] as unknown[])];\n }\n }\n return clone;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAC7BC,KAAQ,EACL;EACH,MAAMC,KAAK,GAAG;IAAE,GAAGD;EAAM,CAAC;EAC1B,KAAK,MAAME,GAAG,IAAID,KAAK,EAAE;IACvB,IACEE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,EAAEC,GAAG,CAAC,IAC7CK,KAAK,CAACC,OAAO,CAACP,KAAK,CAACC,GAAG,CAAC,CAAC,EAC5B;MACCD,KAAK,CAASC,GAAG,CAAC,GAAG,CAAC,GAAID,KAAK,CAACC,GAAG,CAAe,CAAC;IACtD;EACF;EACA,OAAOD,KAAK;AACd","ignoreList":[]}
@@ -60,7 +60,7 @@ function generateInterfaceSnippet(interfaceType, packageName) {
60
60
  "interfaceApiName": interfaceType.apiName,
61
61
  "packageName": packageName,
62
62
  "objectOrInterfaceApiName": interfaceType.apiName,
63
- "propertyNames": [...Object.keys(interfaceType.propertiesV3), ...Object.keys(interfaceType.propertiesV2)],
63
+ "propertyNames": Object.keys(interfaceType.propertiesV3),
64
64
  "interfaceName": interfaceType.displayMetadata.displayName
65
65
  };
66
66
  return getSnippets(interfaceSnippets, interfaceContext);
@@ -1 +1 @@
1
- {"version":3,"file":"createCodeSnippets.js","names":["TYPESCRIPT_OSDK_SNIPPETS","consola","fs","Mustache","path","OntologyEntityTypeEnum","actionSnippets","interfaceSnippets","objectSnippets","snippetNameMapping","createCodeSnippets","ontology","packageName","outputDir","undefined","existsSync","mkdirSync","recursive","info","type","Object","values","object","snippet","OBJECT_TYPE","generateObjectSnippet","ACTION_TYPE","generateActionSnippet","INTERFACE_TYPE","generateInterfaceSnippet","writeFileSync","join","apiName","JSON","stringify","interfaceType","interfaceContext","keys","propertiesV3","propertiesV2","displayMetadata","displayName","getSnippets","objectType","objectContext","actionType","actionContext","snippetType","context","allSnippets","templateName","filter","key","isNaN","Number","versions","latestTemplate","slice","reverse","find","v","snippets","at","template","renderedTemplate","render","snippetName","get"],"sources":["createCodeSnippets.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 { TYPESCRIPT_OSDK_SNIPPETS } from \"@osdk/typescript-sdk-docs\";\nimport { consola } from \"consola\";\nimport * as fs from \"fs\";\nimport Mustache from \"mustache\";\nimport * as path from \"path\";\nimport type { ActionType } from \"../action/ActionType.js\";\nimport type { OntologyDefinition } from \"../common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { InterfaceType } from \"../interface/InterfaceType.js\";\nimport type { ObjectType } from \"../object/ObjectType.js\";\nimport {\n actionSnippets,\n interfaceSnippets,\n objectSnippets,\n snippetNameMapping,\n} from \"./snippetTypes.js\";\n\nexport function createCodeSnippets(\n ontology: OntologyDefinition,\n packageName: string | undefined,\n outputDir: string | undefined,\n): void {\n if (outputDir === undefined) {\n outputDir = \"./code-snippets\";\n }\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n if (packageName === undefined) {\n packageName = \"\";\n }\n consola.info(\"Generating code snippets to \", outputDir);\n for (const type of Object.values(OntologyEntityTypeEnum)) {\n for (const object of Object.values(ontology[type])) {\n let snippet = {};\n switch (type) {\n case OntologyEntityTypeEnum.OBJECT_TYPE:\n snippet = generateObjectSnippet(object, packageName);\n break;\n case OntologyEntityTypeEnum.ACTION_TYPE:\n snippet = generateActionSnippet(object, packageName);\n break;\n case OntologyEntityTypeEnum.INTERFACE_TYPE:\n snippet = generateInterfaceSnippet(object, packageName);\n break;\n default:\n continue;\n }\n fs.writeFileSync(\n path.join(outputDir, object.apiName),\n JSON.stringify(snippet),\n );\n }\n }\n consola.info(\"Finished Code Snippet Generation\");\n}\n\nfunction generateInterfaceSnippet(\n interfaceType: InterfaceType,\n packageName: string,\n) {\n const interfaceContext = {\n \"interfaceApiName\": interfaceType.apiName,\n \"packageName\": packageName,\n \"objectOrInterfaceApiName\": interfaceType.apiName,\n \"propertyNames\": [\n ...Object.keys(interfaceType.propertiesV3),\n ...Object.keys(interfaceType.propertiesV2),\n ],\n \"interfaceName\": interfaceType.displayMetadata.displayName,\n };\n\n return getSnippets(interfaceSnippets, interfaceContext);\n}\n\nfunction generateObjectSnippet(objectType: ObjectType, packageName: string) {\n const objectContext = {\n \"objectType\": objectType.apiName,\n \"packageName\": packageName,\n \"objectOrInterfaceApiName\": objectType.apiName,\n };\n return getSnippets(objectSnippets, objectContext);\n}\n\nfunction generateActionSnippet(actionType: ActionType, packageName: string) {\n const actionContext = {\n \"actionApiName\": actionType.apiName,\n \"packageName\": packageName,\n };\n return getSnippets(actionSnippets, actionContext);\n}\n\nfunction getSnippets(\n snippetType:\n | typeof interfaceSnippets\n | typeof actionSnippets\n | typeof objectSnippets,\n context: {},\n) {\n const allSnippets = {};\n for (\n const templateName of Object.keys(snippetType).filter(key =>\n isNaN(Number(key))\n )\n ) {\n const versions = Object.values(TYPESCRIPT_OSDK_SNIPPETS.versions);\n const latestTemplate = versions\n .slice()\n .reverse()\n .find(v => v.snippets[templateName])\n ?.snippets[templateName]\n .at(-1)?.template ?? \"\";\n const renderedTemplate = Mustache.render(latestTemplate, context);\n const snippetName = snippetNameMapping.get(templateName);\n\n (allSnippets as any)[\n snippetName !== undefined\n ? Mustache.render(snippetName, context)\n : templateName\n ] = renderedTemplate;\n }\n return allSnippets;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createCodeSnippets.js","names":["TYPESCRIPT_OSDK_SNIPPETS","consola","fs","Mustache","path","OntologyEntityTypeEnum","actionSnippets","interfaceSnippets","objectSnippets","snippetNameMapping","createCodeSnippets","ontology","packageName","outputDir","undefined","existsSync","mkdirSync","recursive","info","type","Object","values","object","snippet","OBJECT_TYPE","generateObjectSnippet","ACTION_TYPE","generateActionSnippet","INTERFACE_TYPE","generateInterfaceSnippet","writeFileSync","join","apiName","JSON","stringify","interfaceType","interfaceContext","keys","propertiesV3","displayMetadata","displayName","getSnippets","objectType","objectContext","actionType","actionContext","snippetType","context","allSnippets","templateName","filter","key","isNaN","Number","versions","latestTemplate","slice","reverse","find","v","snippets","at","template","renderedTemplate","render","snippetName","get"],"sources":["createCodeSnippets.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 { TYPESCRIPT_OSDK_SNIPPETS } from \"@osdk/typescript-sdk-docs\";\nimport { consola } from \"consola\";\nimport * as fs from \"fs\";\nimport Mustache from \"mustache\";\nimport * as path from \"path\";\nimport type { ActionType } from \"../action/ActionType.js\";\nimport type { OntologyDefinition } from \"../common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { InterfaceType } from \"../interface/InterfaceType.js\";\nimport type { ObjectType } from \"../object/ObjectType.js\";\nimport {\n actionSnippets,\n interfaceSnippets,\n objectSnippets,\n snippetNameMapping,\n} from \"./snippetTypes.js\";\n\nexport function createCodeSnippets(\n ontology: OntologyDefinition,\n packageName: string | undefined,\n outputDir: string | undefined,\n): void {\n if (outputDir === undefined) {\n outputDir = \"./code-snippets\";\n }\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n if (packageName === undefined) {\n packageName = \"\";\n }\n consola.info(\"Generating code snippets to \", outputDir);\n for (const type of Object.values(OntologyEntityTypeEnum)) {\n for (const object of Object.values(ontology[type])) {\n let snippet = {};\n switch (type) {\n case OntologyEntityTypeEnum.OBJECT_TYPE:\n snippet = generateObjectSnippet(object, packageName);\n break;\n case OntologyEntityTypeEnum.ACTION_TYPE:\n snippet = generateActionSnippet(object, packageName);\n break;\n case OntologyEntityTypeEnum.INTERFACE_TYPE:\n snippet = generateInterfaceSnippet(object, packageName);\n break;\n default:\n continue;\n }\n fs.writeFileSync(\n path.join(outputDir, object.apiName),\n JSON.stringify(snippet),\n );\n }\n }\n consola.info(\"Finished Code Snippet Generation\");\n}\n\nfunction generateInterfaceSnippet(\n interfaceType: InterfaceType,\n packageName: string,\n) {\n const interfaceContext = {\n \"interfaceApiName\": interfaceType.apiName,\n \"packageName\": packageName,\n \"objectOrInterfaceApiName\": interfaceType.apiName,\n \"propertyNames\": Object.keys(interfaceType.propertiesV3),\n \"interfaceName\": interfaceType.displayMetadata.displayName,\n };\n\n return getSnippets(interfaceSnippets, interfaceContext);\n}\n\nfunction generateObjectSnippet(objectType: ObjectType, packageName: string) {\n const objectContext = {\n \"objectType\": objectType.apiName,\n \"packageName\": packageName,\n \"objectOrInterfaceApiName\": objectType.apiName,\n };\n return getSnippets(objectSnippets, objectContext);\n}\n\nfunction generateActionSnippet(actionType: ActionType, packageName: string) {\n const actionContext = {\n \"actionApiName\": actionType.apiName,\n \"packageName\": packageName,\n };\n return getSnippets(actionSnippets, actionContext);\n}\n\nfunction getSnippets(\n snippetType:\n | typeof interfaceSnippets\n | typeof actionSnippets\n | typeof objectSnippets,\n context: {},\n) {\n const allSnippets = {};\n for (\n const templateName of Object.keys(snippetType).filter(key =>\n isNaN(Number(key))\n )\n ) {\n const versions = Object.values(TYPESCRIPT_OSDK_SNIPPETS.versions);\n const latestTemplate = versions\n .slice()\n .reverse()\n .find(v => v.snippets[templateName])\n ?.snippets[templateName]\n .at(-1)?.template ?? \"\";\n const renderedTemplate = Mustache.render(latestTemplate, context);\n const snippetName = snippetNameMapping.get(templateName);\n\n (allSnippets as any)[\n snippetName !== undefined\n ? Mustache.render(snippetName, context)\n : templateName\n ] = renderedTemplate;\n }\n return allSnippets;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,7 @@
17
17
  import invariant from "tiny-invariant";
18
18
  import { convertConditionDefinition } from "../conversion/toMarketplace/convertConditionDefinition.js";
19
19
  import { isActionParameterTypePrimitive } from "./action/ActionParameterType.js";
20
+ import { cloneDefinition } from "./cloneDefinition.js";
20
21
  import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
21
22
  import { uppercaseFirstLetter } from "./defineObject.js";
22
23
  import { addNamespaceIfNone, importedTypes, namespace, ontologyDefinition, updateOntology, withoutNamespace } from "./defineOntology.js";
@@ -28,7 +29,8 @@ export const CREATE_OR_MODIFY_OBJECT_PARAMETER = "objectToCreateOrModifyParamete
28
29
  export const DELETE_OBJECT_PARAMETER = "objectToDeleteParameter";
29
30
  export const CREATE_INTERFACE_OBJECT_PARAMETER = "objectTypeParameter";
30
31
  export const MODIFY_INTERFACE_OBJECT_PARAMETER = "interfaceObjectToModifyParameter";
31
- export function defineAction(actionDef) {
32
+ export function defineAction(actionDefInput) {
33
+ const actionDef = cloneDefinition(actionDefInput);
32
34
  const apiName = namespace + actionDef.apiName;
33
35
  const parameterIds = (actionDef.parameters ?? []).map(p => p.id);
34
36
  if (ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName] !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"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 {\n OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\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 if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\n });\n }\n });\n\n const fullAction = {\n ...actionDef,\n apiName: apiName,\n entities: actionDef.entities ?? {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n __type: OntologyEntityTypeEnum.ACTION_TYPE,\n } as ActionType;\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, InterfacePropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => {\n let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\n };\n },\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType!.apiName,\n maybeCreateObjectOption: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (def.primaryKeyOption === \"autoGenerated\")\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\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.parameters).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 delete rule.addInterfaceRule.sharedPropertyValues[k];\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\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 delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\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 extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n return { type: \"geohash\" };\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n return { type: \"attachment\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"string\":\n return { type: \"text\" };\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:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\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 \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nexport function 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\nexport function convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\n condition: ConditionDefinition,\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n): void {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n invariant(\n parameters?.some(p => p.id === overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`,\n );\n invariant(\n overrideParamId !== currentParameterId,\n `Parameter condition on ${currentParameterId} is referencing itself`,\n );\n invariant(\n seenParameterIds.has(overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`,\n );\n break;\n case \"and\":\n // this will not catch the niche edge case where users use the full syntax for unions\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"comparison\":\n case \"group\":\n case \"not\":\n case \"markings\":\n case \"regex\":\n case \"redacted\":\n case \"true\":\n break;\n default:\n throw new Error(\n `Unknown condition type on parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || properties.includes(withoutNamespace(id)),\n `Property ${id} does not exist as a property on ${name}`,\n );\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","cloneDefinition","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDefInput","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"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 {\n OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport { cloneDefinition } from \"./cloneDefinition.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport function defineAction(actionDefInput: ActionTypeDefinition): ActionType {\n const actionDef = cloneDefinition(actionDefInput);\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 if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\n });\n }\n });\n\n const fullAction = {\n ...actionDef,\n apiName: apiName,\n entities: actionDef.entities ?? {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n __type: OntologyEntityTypeEnum.ACTION_TYPE,\n } as ActionType;\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, InterfacePropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => {\n let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\n };\n },\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType!.apiName,\n maybeCreateObjectOption: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (def.primaryKeyOption === \"autoGenerated\")\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\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.parameters).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 delete rule.addInterfaceRule.sharedPropertyValues[k];\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\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 delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\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 extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n return { type: \"geohash\" };\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n return { type: \"attachment\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"string\":\n return { type: \"text\" };\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:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\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 \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nexport function 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\nexport function convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\n condition: ConditionDefinition,\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n): void {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n invariant(\n parameters?.some(p => p.id === overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`,\n );\n invariant(\n overrideParamId !== currentParameterId,\n `Parameter condition on ${currentParameterId} is referencing itself`,\n );\n invariant(\n seenParameterIds.has(overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`,\n );\n break;\n case \"and\":\n // this will not catch the niche edge case where users use the full syntax for unions\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"comparison\":\n case \"group\":\n case \"not\":\n case \"markings\":\n case \"regex\":\n case \"redacted\":\n case \"true\":\n break;\n default:\n throw new Error(\n `Unknown condition type on parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || properties.includes(withoutNamespace(id)),\n `Property ${id} does not exist as a property on ${name}`,\n );\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,10 +15,12 @@
15
15
  */
16
16
 
17
17
  import { convertInterfacePropertyMappingValue, convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
18
+ import { cloneDefinition } from "./cloneDefinition.js";
18
19
  import { convertValidationRule, CREATE_INTERFACE_OBJECT_PARAMETER, createDefaultParameterOrdering, createParameters, defineAction, getInterfaceParameterName, getNonNamespacedParameterName, isPropertyParameter, kebab, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
19
20
  import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfaceProperties.js";
20
21
  import { getInterfacePropertyTypeType, isInterfaceSharedPropertyType } from "./interface/InterfacePropertyType.js";
21
- export function defineCreateInterfaceObjectAction(def) {
22
+ export function defineCreateInterfaceObjectAction(defInput) {
23
+ const def = cloneDefinition(defInput);
22
24
  const allProperties = getFlattenedInterfaceProperties(def.interfaceType);
23
25
  validateActionParameters(def, Object.keys(allProperties), def.interfaceType.apiName);
24
26
  const actionInterfaceProperties = Object.entries(allProperties).filter(([apiName, type]) => isPropertyParameter(def, apiName, getInterfacePropertyTypeType(type)));
@@ -1 +1 @@
1
- {"version":3,"file":"defineCreateInterfaceObjectAction.js","names":["convertInterfacePropertyMappingValue","convertMappingValue","convertValidationRule","CREATE_INTERFACE_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","getInterfaceParameterName","getNonNamespacedParameterName","isPropertyParameter","kebab","validateActionParameters","validateParameterOrdering","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","defineCreateInterfaceObjectAction","def","allProperties","interfaceType","Object","keys","apiName","actionInterfaceProperties","entries","filter","type","sptNames","_apiName","map","parameterNames","Set","_type","propertyMap","fromEntries","id","prop","parameterConfiguration","forEach","param","add","actionApiName","split","pop","objectType","undefined","parameterOrdering","includes","unshift","parameters","required","sptMappings","mappings","nonParameterMappings","value","displayName","displayMetadata","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","parameterId","useNonNamespacedParameters","interfacePropertyValues","logicRuleValue","Array","from","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata","icon"],"sources":["defineCreateInterfaceObjectAction.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 {\n convertInterfacePropertyMappingValue,\n convertMappingValue,\n} from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { InterfaceActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_INTERFACE_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n getInterfaceParameterName,\n getNonNamespacedParameterName,\n isPropertyParameter,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\n\nexport function defineCreateInterfaceObjectAction(\n def: InterfaceActionTypeUserDefinition,\n): ActionType {\n const allProperties = getFlattenedInterfaceProperties(def.interfaceType);\n validateActionParameters(\n def,\n Object.keys(allProperties),\n def.interfaceType.apiName,\n );\n const actionInterfaceProperties = Object.entries(allProperties).filter((\n [apiName, type],\n ) =>\n isPropertyParameter(\n def,\n apiName,\n getInterfacePropertyTypeType(type),\n )\n );\n const sptNames = actionInterfaceProperties\n .filter(([_apiName, type]) => isInterfaceSharedPropertyType(type))\n .map(([apiName]) => apiName);\n\n const parameterNames = new Set(\n actionInterfaceProperties.map(([apiName, _type]) =>\n getInterfaceParameterName(def, apiName)\n ),\n );\n const propertyMap = Object.fromEntries(\n Object.entries(allProperties).map((\n [id, prop],\n ) => [getInterfaceParameterName(def, id), prop]),\n );\n\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(getInterfaceParameterName(def, param))\n );\n parameterNames.add(CREATE_INTERFACE_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `create-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_INTERFACE_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n propertyMap,\n parameterNames,\n Object.fromEntries(\n Object.entries(allProperties).map((\n [id, prop],\n ) => [id, prop.required ?? true]),\n ),\n );\n let sptMappings = {};\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => {\n if (sptNames.includes(id)) {\n sptMappings = {\n ...sptMappings,\n [id]: convertMappingValue(value),\n };\n }\n return [id, convertInterfacePropertyMappingValue(value)];\n }),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create ${def.interfaceType.displayMetadata.displayName}`,\n parameters: parameters,\n status: def.status ?? (def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status),\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: def.interfaceType.apiName,\n objectTypeParameter: CREATE_INTERFACE_OBJECT_PARAMETER,\n sharedPropertyValues: {\n ...Object.fromEntries(\n sptNames.map(\n id => [id, {\n type: \"parameterId\",\n parameterId: def.useNonNamespacedParameters\n ? getNonNamespacedParameterName(def, id)\n : id,\n }],\n ),\n ),\n ...sptMappings,\n },\n interfacePropertyValues: {\n ...Object.fromEntries(\n actionInterfaceProperties\n .map(([id, _type]) => [\n id,\n {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: def.useNonNamespacedParameters\n ? getNonNamespacedParameterName(def, id)\n : id,\n },\n },\n ]),\n ),\n ...mappings,\n },\n },\n },\n ],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Array.from(parameterNames),\n parameters,\n CREATE_INTERFACE_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n ...(def.icon && { icon: def.icon }),\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineCreateInterfaceObjectAction.js","names":["convertInterfacePropertyMappingValue","convertMappingValue","cloneDefinition","convertValidationRule","CREATE_INTERFACE_OBJECT_PARAMETER","createDefaultParameterOrdering","createParameters","defineAction","getInterfaceParameterName","getNonNamespacedParameterName","isPropertyParameter","kebab","validateActionParameters","validateParameterOrdering","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","defineCreateInterfaceObjectAction","defInput","def","allProperties","interfaceType","Object","keys","apiName","actionInterfaceProperties","entries","filter","type","sptNames","_apiName","map","parameterNames","Set","_type","propertyMap","fromEntries","id","prop","parameterConfiguration","forEach","param","add","actionApiName","split","pop","objectType","undefined","parameterOrdering","includes","unshift","parameters","required","sptMappings","mappings","nonParameterMappings","value","displayName","displayMetadata","status","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","rules","addInterfaceRule","interfaceApiName","objectTypeParameter","sharedPropertyValues","parameterId","useNonNamespacedParameters","interfacePropertyValues","logicRuleValue","Array","from","actionLevelValidation","validation","defaultFormat","enableLayoutSwitch","tableConfiguration","displayAndFormat","table","sections","section","submissionMetadata","icon"],"sources":["defineCreateInterfaceObjectAction.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 {\n convertInterfacePropertyMappingValue,\n convertMappingValue,\n} from \"../conversion/toMarketplace/convertMappingValue.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport { cloneDefinition } from \"./cloneDefinition.js\";\nimport type { InterfaceActionTypeUserDefinition } from \"./defineAction.js\";\nimport {\n convertValidationRule,\n CREATE_INTERFACE_OBJECT_PARAMETER,\n createDefaultParameterOrdering,\n createParameters,\n defineAction,\n getInterfaceParameterName,\n getNonNamespacedParameterName,\n isPropertyParameter,\n kebab,\n validateActionParameters,\n validateParameterOrdering,\n} from \"./defineAction.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\n\nexport function defineCreateInterfaceObjectAction(\n defInput: InterfaceActionTypeUserDefinition,\n): ActionType {\n const def = cloneDefinition(defInput);\n const allProperties = getFlattenedInterfaceProperties(def.interfaceType);\n validateActionParameters(\n def,\n Object.keys(allProperties),\n def.interfaceType.apiName,\n );\n const actionInterfaceProperties = Object.entries(allProperties).filter((\n [apiName, type],\n ) =>\n isPropertyParameter(\n def,\n apiName,\n getInterfacePropertyTypeType(type),\n )\n );\n const sptNames = actionInterfaceProperties\n .filter(([_apiName, type]) => isInterfaceSharedPropertyType(type))\n .map(([apiName]) => apiName);\n\n const parameterNames = new Set(\n actionInterfaceProperties.map(([apiName, _type]) =>\n getInterfaceParameterName(def, apiName)\n ),\n );\n const propertyMap = Object.fromEntries(\n Object.entries(allProperties).map((\n [id, prop],\n ) => [getInterfaceParameterName(def, id), prop]),\n );\n\n Object.keys(def.parameterConfiguration ?? {}).forEach(param =>\n parameterNames.add(getInterfaceParameterName(def, param))\n );\n parameterNames.add(CREATE_INTERFACE_OBJECT_PARAMETER);\n const actionApiName = def.apiName ?? `create-${\n kebab(\n def.interfaceType.apiName.split(\".\").pop() ?? def.interfaceType.apiName,\n )\n }${\n def.objectType === undefined\n ? \"\"\n : `-${\n kebab(\n def.objectType.apiName.split(\".\").pop() ?? def.objectType.apiName,\n )\n }`\n }`;\n if (def.parameterOrdering) {\n if (!def.parameterOrdering.includes(CREATE_INTERFACE_OBJECT_PARAMETER)) {\n def.parameterOrdering.unshift(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n validateParameterOrdering(\n def.parameterOrdering,\n parameterNames,\n actionApiName,\n );\n }\n const parameters = createParameters(\n def,\n propertyMap,\n parameterNames,\n Object.fromEntries(\n Object.entries(allProperties).map((\n [id, prop],\n ) => [id, prop.required ?? true]),\n ),\n );\n let sptMappings = {};\n const mappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {}).map((\n [id, value],\n ) => {\n if (sptNames.includes(id)) {\n sptMappings = {\n ...sptMappings,\n [id]: convertMappingValue(value),\n };\n }\n return [id, convertInterfacePropertyMappingValue(value)];\n }),\n );\n\n return defineAction({\n apiName: actionApiName,\n displayName: def.displayName\n ?? `Create ${def.interfaceType.displayMetadata.displayName}`,\n parameters: parameters,\n status: def.status ?? (def.interfaceType.status.type !== \"deprecated\"\n ? def.interfaceType.status.type\n : def.interfaceType.status),\n entities: {\n affectedInterfaceTypes: [def.interfaceType.apiName],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n rules: [\n {\n type: \"addInterfaceRule\",\n addInterfaceRule: {\n interfaceApiName: def.interfaceType.apiName,\n objectTypeParameter: CREATE_INTERFACE_OBJECT_PARAMETER,\n sharedPropertyValues: {\n ...Object.fromEntries(\n sptNames.map(\n id => [id, {\n type: \"parameterId\",\n parameterId: def.useNonNamespacedParameters\n ? getNonNamespacedParameterName(def, id)\n : id,\n }],\n ),\n ),\n ...sptMappings,\n },\n interfacePropertyValues: {\n ...Object.fromEntries(\n actionInterfaceProperties\n .map(([id, _type]) => [\n id,\n {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: def.useNonNamespacedParameters\n ? getNonNamespacedParameterName(def, id)\n : id,\n },\n },\n ]),\n ),\n ...mappings,\n },\n },\n },\n ],\n parameterOrdering: def.parameterOrdering\n ?? createDefaultParameterOrdering(\n def,\n Array.from(parameterNames),\n parameters,\n CREATE_INTERFACE_OBJECT_PARAMETER,\n ),\n ...(def.actionLevelValidation\n ? {\n validation: convertValidationRule(\n def.actionLevelValidation,\n parameters,\n ),\n }\n : {}),\n ...(def.defaultFormat && { defaultFormat: def.defaultFormat }),\n ...(def.enableLayoutSwitch\n && { enableLayoutSwitch: def.enableLayoutSwitch }),\n ...(def.tableConfiguration && {\n displayAndFormat: {\n table: def.tableConfiguration,\n },\n }),\n ...(def.sections\n && {\n sections: Object.fromEntries(\n def.sections.map(section => [section.id, section]),\n ),\n }),\n ...(def.submissionMetadata\n && { submissionMetadata: def.submissionMetadata }),\n ...(def.icon && { icon: def.icon }),\n });\n}\n"],"mappings":"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","ignoreList":[]}