@osdk/maker 0.14.0-beta.3 → 0.14.0-beta.5

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 (120) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/build/browser/api/defineAction.js +130 -413
  3. package/build/browser/api/defineAction.js.map +1 -1
  4. package/build/browser/api/defineCreateInterfaceObjectAction.js +77 -0
  5. package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -0
  6. package/build/browser/api/defineCreateObjectAction.js +76 -0
  7. package/build/browser/api/defineCreateObjectAction.js.map +1 -0
  8. package/build/browser/api/defineCreateOrModifyObjectAction.js +92 -0
  9. package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -0
  10. package/build/browser/api/defineDeleteObjectAction.js +56 -0
  11. package/build/browser/api/defineDeleteObjectAction.js.map +1 -0
  12. package/build/browser/api/defineModifyInterfaceObjectAction.js +76 -0
  13. package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -0
  14. package/build/browser/api/defineModifyObjectAction.js +91 -0
  15. package/build/browser/api/defineModifyObjectAction.js.map +1 -0
  16. package/build/browser/api/test/actions.test.js +11181 -0
  17. package/build/browser/api/test/actions.test.js.map +1 -0
  18. package/build/browser/api/test/interfaces.test.js +924 -0
  19. package/build/browser/api/test/interfaces.test.js.map +1 -0
  20. package/build/browser/api/test/links.test.js +1974 -0
  21. package/build/browser/api/test/links.test.js.map +1 -0
  22. package/build/browser/api/{markingconstraint.test.js → test/markingconstraint.test.js} +28 -2
  23. package/build/browser/api/test/markingconstraint.test.js.map +1 -0
  24. package/build/browser/api/test/misc.test.js +1058 -0
  25. package/build/browser/api/test/misc.test.js.map +1 -0
  26. package/build/browser/api/{objectStatus.test.js → test/objectStatus.test.js} +2 -2
  27. package/build/browser/api/test/objectStatus.test.js.map +1 -0
  28. package/build/browser/api/test/objects.test.js +1494 -0
  29. package/build/browser/api/test/objects.test.js.map +1 -0
  30. package/build/browser/api/test/spt.test.js +387 -0
  31. package/build/browser/api/test/spt.test.js.map +1 -0
  32. package/build/browser/api/test/valueTypes.test.js +156 -0
  33. package/build/browser/api/test/valueTypes.test.js.map +1 -0
  34. package/build/browser/cli/main.js +1 -1
  35. package/build/browser/index.js +7 -1
  36. package/build/browser/index.js.map +1 -1
  37. package/build/cjs/index.cjs +593 -510
  38. package/build/cjs/index.cjs.map +1 -1
  39. package/build/cjs/index.d.cts +31 -14
  40. package/build/esm/api/defineAction.js +130 -413
  41. package/build/esm/api/defineAction.js.map +1 -1
  42. package/build/esm/api/defineCreateInterfaceObjectAction.js +77 -0
  43. package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -0
  44. package/build/esm/api/defineCreateObjectAction.js +76 -0
  45. package/build/esm/api/defineCreateObjectAction.js.map +1 -0
  46. package/build/esm/api/defineCreateOrModifyObjectAction.js +92 -0
  47. package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -0
  48. package/build/esm/api/defineDeleteObjectAction.js +56 -0
  49. package/build/esm/api/defineDeleteObjectAction.js.map +1 -0
  50. package/build/esm/api/defineModifyInterfaceObjectAction.js +76 -0
  51. package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -0
  52. package/build/esm/api/defineModifyObjectAction.js +91 -0
  53. package/build/esm/api/defineModifyObjectAction.js.map +1 -0
  54. package/build/esm/api/test/actions.test.js +11181 -0
  55. package/build/esm/api/test/actions.test.js.map +1 -0
  56. package/build/esm/api/test/interfaces.test.js +924 -0
  57. package/build/esm/api/test/interfaces.test.js.map +1 -0
  58. package/build/esm/api/test/links.test.js +1974 -0
  59. package/build/esm/api/test/links.test.js.map +1 -0
  60. package/build/esm/api/{markingconstraint.test.js → test/markingconstraint.test.js} +28 -2
  61. package/build/esm/api/test/markingconstraint.test.js.map +1 -0
  62. package/build/esm/api/test/misc.test.js +1058 -0
  63. package/build/esm/api/test/misc.test.js.map +1 -0
  64. package/build/esm/api/{objectStatus.test.js → test/objectStatus.test.js} +2 -2
  65. package/build/esm/api/test/objectStatus.test.js.map +1 -0
  66. package/build/esm/api/test/objects.test.js +1494 -0
  67. package/build/esm/api/test/objects.test.js.map +1 -0
  68. package/build/esm/api/test/spt.test.js +387 -0
  69. package/build/esm/api/test/spt.test.js.map +1 -0
  70. package/build/esm/api/test/valueTypes.test.js +156 -0
  71. package/build/esm/api/test/valueTypes.test.js.map +1 -0
  72. package/build/esm/cli/main.js +1 -1
  73. package/build/esm/index.js +7 -1
  74. package/build/esm/index.js.map +1 -1
  75. package/build/types/api/defineAction.d.ts +27 -7
  76. package/build/types/api/defineAction.d.ts.map +1 -1
  77. package/build/types/api/defineCreateInterfaceObjectAction.d.ts +3 -0
  78. package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -0
  79. package/build/types/api/defineCreateObjectAction.d.ts +3 -0
  80. package/build/types/api/defineCreateObjectAction.d.ts.map +1 -0
  81. package/build/types/api/defineCreateOrModifyObjectAction.d.ts +3 -0
  82. package/build/types/api/defineCreateOrModifyObjectAction.d.ts.map +1 -0
  83. package/build/types/api/defineDeleteObjectAction.d.ts +3 -0
  84. package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -0
  85. package/build/types/api/defineModifyInterfaceObjectAction.d.ts +3 -0
  86. package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -0
  87. package/build/types/api/defineModifyObjectAction.d.ts +3 -0
  88. package/build/types/api/defineModifyObjectAction.d.ts.map +1 -0
  89. package/build/types/api/test/actions.test.d.ts.map +1 -0
  90. package/build/types/api/test/interfaces.test.d.ts.map +1 -0
  91. package/build/types/api/test/links.test.d.ts.map +1 -0
  92. package/build/types/api/test/markingconstraint.test.d.ts +1 -0
  93. package/build/types/api/test/markingconstraint.test.d.ts.map +1 -0
  94. package/build/types/api/test/misc.test.d.ts +1 -0
  95. package/build/types/api/test/misc.test.d.ts.map +1 -0
  96. package/build/types/api/test/objectStatus.test.d.ts +1 -0
  97. package/build/types/api/test/objectStatus.test.d.ts.map +1 -0
  98. package/build/types/api/test/objects.test.d.ts +1 -0
  99. package/build/types/api/test/objects.test.d.ts.map +1 -0
  100. package/build/types/api/test/spt.test.d.ts +1 -0
  101. package/build/types/api/test/spt.test.d.ts.map +1 -0
  102. package/build/types/api/test/valueTypes.test.d.ts +1 -0
  103. package/build/types/api/test/valueTypes.test.d.ts.map +1 -0
  104. package/build/types/index.d.ts +7 -1
  105. package/build/types/index.d.ts.map +1 -1
  106. package/package.json +5 -5
  107. package/build/browser/api/markingconstraint.test.js.map +0 -1
  108. package/build/browser/api/objectStatus.test.js.map +0 -1
  109. package/build/browser/api/overall.test.js +0 -14002
  110. package/build/browser/api/overall.test.js.map +0 -1
  111. package/build/esm/api/markingconstraint.test.js.map +0 -1
  112. package/build/esm/api/objectStatus.test.js.map +0 -1
  113. package/build/esm/api/overall.test.js +0 -14002
  114. package/build/esm/api/overall.test.js.map +0 -1
  115. package/build/types/api/markingconstraint.test.d.ts.map +0 -1
  116. package/build/types/api/objectStatus.test.d.ts.map +0 -1
  117. package/build/types/api/overall.test.d.ts.map +0 -1
  118. /package/build/types/api/{markingconstraint.test.d.ts → test/actions.test.d.ts} +0 -0
  119. /package/build/types/api/{objectStatus.test.d.ts → test/interfaces.test.d.ts} +0 -0
  120. /package/build/types/api/{overall.test.d.ts → test/links.test.d.ts} +0 -0
@@ -1705,7 +1705,7 @@ function addNamespaceIfNone(apiName) {
1705
1705
  var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
1706
1706
  var uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
1707
1707
  async function main(args = process.argv) {
1708
- const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.14.0-beta.3").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
1708
+ const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.14.0-beta.5").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
1709
1709
  input: {
1710
1710
  alias: "i",
1711
1711
  describe: "Input file",
@@ -1796,29 +1796,6 @@ function addDependency(namespaceNoDot, fileInPackage) {
1796
1796
  const packageJson = JSON.parse(fs__namespace.readFileSync(packageJsonPath, "utf-8"));
1797
1797
  dependencies[namespaceNoDot] = packageJson.version ?? "";
1798
1798
  }
1799
- function convertMappingValue(value) {
1800
- switch (value.type) {
1801
- case "uuid":
1802
- return {
1803
- type: "uniqueIdentifier",
1804
- uniqueIdentifier: {
1805
- linkId: value.linkId ?? crypto.randomUUID()
1806
- }
1807
- };
1808
- case "currentTime":
1809
- return {
1810
- type: "currentTime",
1811
- currentTime: {}
1812
- };
1813
- case "currentUser":
1814
- return {
1815
- type: "currentUser",
1816
- currentUser: {}
1817
- };
1818
- default:
1819
- return value;
1820
- }
1821
- }
1822
1799
 
1823
1800
  // src/api/action/ActionParameterType.ts
1824
1801
  function isActionParameterTypePrimitive(type) {
@@ -1828,383 +1805,8 @@ function isActionParameterTypePrimitive(type) {
1828
1805
  // src/api/defineAction.ts
1829
1806
  var MODIFY_OBJECT_PARAMETER = "objectToModifyParameter";
1830
1807
  var CREATE_OR_MODIFY_OBJECT_PARAMETER = "objectToCreateOrModifyParameter";
1831
- function defineCreateInterfaceObjectAction(def) {
1832
- const allProperties = Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type) && !(def.excludedProperties ?? []).includes(prop.sharedPropertyType.nonNameSpacedApiName));
1833
- if (allProperties.length !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).length) {
1834
- consola.consola.info(`Some properties on ${def.interfaceType.apiName} were skipped in the create action because they are structs`);
1835
- }
1836
- return defineAction({
1837
- apiName: `create-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === void 0 ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`,
1838
- displayName: `Create ${def.interfaceType.displayMetadata.displayName}`,
1839
- parameters: [{
1840
- id: "objectTypeParameter",
1841
- displayName: "Object type to create",
1842
- type: {
1843
- type: "objectTypeReference",
1844
- objectTypeReference: {
1845
- interfaceTypeRids: [def.interfaceType.apiName]
1846
- }
1847
- },
1848
- validation: {
1849
- required: true,
1850
- allowedValues: def.objectType === void 0 ? {
1851
- type: "objectTypeReference",
1852
- interfaceTypes: [def.interfaceType.apiName]
1853
- } : {
1854
- type: "oneOf",
1855
- oneOf: [{
1856
- label: def.objectType.displayName,
1857
- value: {
1858
- type: "objectType",
1859
- objectType: {
1860
- objectTypeId: def.objectType.apiName
1861
- }
1862
- }
1863
- }]
1864
- }
1865
- }
1866
- }, ...allProperties.map(([id, prop]) => ({
1867
- id,
1868
- displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,
1869
- type: extractActionParameterType(prop.sharedPropertyType),
1870
- typeClasses: prop.sharedPropertyType.typeClasses ?? [],
1871
- validation: {
1872
- required: prop.sharedPropertyType.array ?? false ? {
1873
- listLength: {}
1874
- } : prop.required,
1875
- allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)
1876
- }
1877
- }))],
1878
- status: def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status,
1879
- entities: {
1880
- affectedInterfaceTypes: [def.interfaceType.apiName],
1881
- affectedObjectTypes: [],
1882
- affectedLinkTypes: [],
1883
- typeGroups: []
1884
- },
1885
- rules: [{
1886
- type: "addInterfaceRule",
1887
- addInterfaceRule: {
1888
- interfaceApiName: def.interfaceType.apiName,
1889
- objectTypeParameter: "objectTypeParameter",
1890
- sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {
1891
- type: "parameterId",
1892
- parameterId: id
1893
- }]))
1894
- }
1895
- }],
1896
- ...def.validation ? {
1897
- validation: convertValidationRule(def.validation)
1898
- } : {}
1899
- });
1900
- }
1901
- function defineCreateObjectAction(def) {
1902
- validateActionParameters(def);
1903
- const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter((id) => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type));
1904
- const parameterNames = new Set(propertyParameters);
1905
- Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(param));
1906
- const actionApiName = def.apiName ?? `create-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
1907
- if (def.parameterOrdering) {
1908
- validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
1909
- }
1910
- const parameters = createParameters(def, parameterNames);
1911
- const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
1912
- return defineAction({
1913
- apiName: actionApiName,
1914
- displayName: def.displayName ?? `Create ${def.objectType.displayName}`,
1915
- parameters,
1916
- status: def.status ?? "active",
1917
- entities: {
1918
- affectedInterfaceTypes: [],
1919
- affectedObjectTypes: [def.objectType.apiName],
1920
- affectedLinkTypes: [],
1921
- typeGroups: []
1922
- },
1923
- rules: [{
1924
- type: "addObjectRule",
1925
- addObjectRule: {
1926
- objectTypeId: def.objectType.apiName,
1927
- propertyValues: {
1928
- ...Object.fromEntries(propertyParameters.map((p) => [p, {
1929
- type: "parameterId",
1930
- parameterId: p
1931
- }])),
1932
- ...mappings
1933
- },
1934
- structFieldValues: {}
1935
- }
1936
- }],
1937
- parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters),
1938
- ...def.actionLevelValidation ? {
1939
- validation: convertValidationRule(def.actionLevelValidation, parameters)
1940
- } : {},
1941
- ...def.defaultFormat && {
1942
- defaultFormat: def.defaultFormat
1943
- },
1944
- ...def.enableLayoutSwitch && {
1945
- enableLayoutSwitch: def.enableLayoutSwitch
1946
- },
1947
- ...def.displayAndFormat && {
1948
- displayAndFormat: def.displayAndFormat
1949
- },
1950
- ...def.sections && {
1951
- sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
1952
- },
1953
- ...def.submissionMetadata && {
1954
- submissionMetadata: def.submissionMetadata
1955
- }
1956
- });
1957
- }
1958
- function defineModifyInterfaceObjectAction(def) {
1959
- const allProperties = Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).filter(([_, prop]) => !isStruct(prop.sharedPropertyType.type) && !(def.excludedProperties ?? []).includes(prop.sharedPropertyType.nonNameSpacedApiName));
1960
- if (allProperties.length !== Object.entries(getFlattenedInterfaceProperties(def.interfaceType)).length) {
1961
- consola.consola.info(`Some properties on ${def.interfaceType.apiName} were skipped in the modify action because they are structs`);
1962
- }
1963
- return defineAction({
1964
- apiName: `modify-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === void 0 ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`,
1965
- displayName: `Modify ${def.interfaceType.displayMetadata.displayName}`,
1966
- parameters: [{
1967
- id: "interfaceObjectToModifyParameter",
1968
- displayName: "Object type to modify",
1969
- type: {
1970
- type: "interfaceReference",
1971
- interfaceReference: {
1972
- interfaceTypeRid: def.interfaceType.apiName
1973
- }
1974
- },
1975
- validation: {
1976
- required: true,
1977
- allowedValues: def.objectType === void 0 ? {
1978
- type: "interfaceObjectQuery"
1979
- } : {
1980
- type: "oneOf",
1981
- oneOf: [{
1982
- label: def.objectType.displayName,
1983
- value: {
1984
- type: "objectType",
1985
- objectType: {
1986
- objectTypeId: def.objectType.apiName
1987
- }
1988
- }
1989
- }]
1990
- }
1991
- }
1992
- }, ...allProperties.map(([id, prop]) => ({
1993
- id,
1994
- displayName: prop.sharedPropertyType.displayName ?? prop.sharedPropertyType.nonNameSpacedApiName,
1995
- type: extractActionParameterType(prop.sharedPropertyType),
1996
- typeClasses: prop.sharedPropertyType.typeClasses ?? [],
1997
- validation: {
1998
- required: prop.sharedPropertyType.array ?? false ? {
1999
- listLength: {}
2000
- } : prop.required,
2001
- allowedValues: extractAllowedValuesFromPropertyType(prop.sharedPropertyType.type)
2002
- }
2003
- }))],
2004
- status: def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status,
2005
- entities: {
2006
- affectedInterfaceTypes: [def.interfaceType.apiName],
2007
- affectedObjectTypes: [],
2008
- affectedLinkTypes: [],
2009
- typeGroups: []
2010
- },
2011
- rules: [{
2012
- type: "modifyInterfaceRule",
2013
- modifyInterfaceRule: {
2014
- interfaceObjectToModifyParameter: "interfaceObjectToModifyParameter",
2015
- sharedPropertyValues: Object.fromEntries(allProperties.map(([id, _prop]) => [id, {
2016
- type: "parameterId",
2017
- parameterId: id
2018
- }]))
2019
- }
2020
- }],
2021
- ...def.validation ? {
2022
- validation: convertValidationRule(def.validation)
2023
- } : {}
2024
- });
2025
- }
2026
- function defineModifyObjectAction(def) {
2027
- validateActionParameters(def);
2028
- const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter((id) => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
2029
- const parameterNames = new Set(propertyParameters);
2030
- Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(param));
2031
- parameterNames.add(MODIFY_OBJECT_PARAMETER);
2032
- const actionApiName = def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
2033
- if (def.parameterOrdering) {
2034
- if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {
2035
- def.parameterOrdering = [MODIFY_OBJECT_PARAMETER, ...def.parameterOrdering];
2036
- }
2037
- validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2038
- }
2039
- const parameters = createParameters(def, parameterNames);
2040
- parameters.forEach((p) => {
2041
- if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === void 0) {
2042
- p.defaultValue = {
2043
- type: "objectParameterPropertyValue",
2044
- objectParameterPropertyValue: {
2045
- parameterId: MODIFY_OBJECT_PARAMETER,
2046
- propertyTypeId: p.id
2047
- }
2048
- };
2049
- }
2050
- });
2051
- const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2052
- return defineAction({
2053
- apiName: actionApiName,
2054
- displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,
2055
- parameters,
2056
- status: def.status ?? "active",
2057
- rules: [{
2058
- type: "modifyObjectRule",
2059
- modifyObjectRule: {
2060
- objectToModify: MODIFY_OBJECT_PARAMETER,
2061
- propertyValues: {
2062
- ...Object.fromEntries(propertyParameters.map((p) => [p, {
2063
- type: "parameterId",
2064
- parameterId: p
2065
- }])),
2066
- ...mappings
2067
- },
2068
- structFieldValues: {}
2069
- }
2070
- }],
2071
- entities: {
2072
- affectedInterfaceTypes: [],
2073
- affectedObjectTypes: [def.objectType.apiName],
2074
- affectedLinkTypes: [],
2075
- typeGroups: []
2076
- },
2077
- parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, MODIFY_OBJECT_PARAMETER),
2078
- ...def.actionLevelValidation ? {
2079
- validation: convertValidationRule(def.actionLevelValidation, parameters)
2080
- } : {},
2081
- ...def.defaultFormat && {
2082
- defaultFormat: def.defaultFormat
2083
- },
2084
- ...def.enableLayoutSwitch && {
2085
- enableLayoutSwitch: def.enableLayoutSwitch
2086
- },
2087
- ...def.displayAndFormat && {
2088
- displayAndFormat: def.displayAndFormat
2089
- },
2090
- ...def.sections && {
2091
- sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2092
- },
2093
- ...def.submissionMetadata && {
2094
- submissionMetadata: def.submissionMetadata
2095
- }
2096
- });
2097
- }
2098
- function defineDeleteObjectAction(def) {
2099
- return defineAction({
2100
- apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
2101
- displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,
2102
- parameters: [{
2103
- id: "objectToDeleteParameter",
2104
- displayName: "Delete object",
2105
- type: {
2106
- type: "objectReference",
2107
- objectReference: {
2108
- objectTypeId: def.objectType.apiName
2109
- }
2110
- },
2111
- validation: {
2112
- required: true,
2113
- allowedValues: {
2114
- type: "objectQuery"
2115
- }
2116
- }
2117
- }],
2118
- status: def.status ?? "active",
2119
- rules: [{
2120
- type: "deleteObjectRule",
2121
- deleteObjectRule: {
2122
- objectToDelete: "objectToDeleteParameter"
2123
- }
2124
- }],
2125
- entities: {
2126
- affectedInterfaceTypes: [],
2127
- affectedObjectTypes: [def.objectType.apiName],
2128
- affectedLinkTypes: [],
2129
- typeGroups: []
2130
- },
2131
- ...def.actionLevelValidation ? {
2132
- validation: convertValidationRule(def.actionLevelValidation)
2133
- } : {}
2134
- });
2135
- }
2136
- function defineCreateOrModifyObjectAction(def) {
2137
- validateActionParameters(def);
2138
- const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter((id) => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
2139
- const parameterNames = new Set(propertyParameters);
2140
- Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(param));
2141
- parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);
2142
- const actionApiName = def.apiName ?? `create-or-modify-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
2143
- if (def.parameterOrdering) {
2144
- if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {
2145
- def.parameterOrdering = [CREATE_OR_MODIFY_OBJECT_PARAMETER, ...def.parameterOrdering];
2146
- }
2147
- validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2148
- }
2149
- const parameters = createParameters(def, parameterNames);
2150
- parameters.forEach((p) => {
2151
- if (p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER && p.defaultValue === void 0) {
2152
- p.defaultValue = {
2153
- type: "objectParameterPropertyValue",
2154
- objectParameterPropertyValue: {
2155
- parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,
2156
- propertyTypeId: p.id
2157
- }
2158
- };
2159
- }
2160
- });
2161
- const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2162
- return defineAction({
2163
- apiName: actionApiName,
2164
- displayName: def.displayName ?? `Create or Modify ${def.objectType.displayName}`,
2165
- parameters,
2166
- status: def.status ?? "active",
2167
- rules: [{
2168
- type: "addOrModifyObjectRuleV2",
2169
- addOrModifyObjectRuleV2: {
2170
- objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,
2171
- propertyValues: {
2172
- ...Object.fromEntries(propertyParameters.map((p) => [p, {
2173
- type: "parameterId",
2174
- parameterId: p
2175
- }])),
2176
- ...mappings
2177
- },
2178
- structFieldValues: {}
2179
- }
2180
- }],
2181
- entities: {
2182
- affectedInterfaceTypes: [],
2183
- affectedObjectTypes: [def.objectType.apiName],
2184
- affectedLinkTypes: [],
2185
- typeGroups: []
2186
- },
2187
- parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, parameters, CREATE_OR_MODIFY_OBJECT_PARAMETER),
2188
- ...def.actionLevelValidation ? {
2189
- validation: convertValidationRule(def.actionLevelValidation, parameters)
2190
- } : {},
2191
- ...def.defaultFormat && {
2192
- defaultFormat: def.defaultFormat
2193
- },
2194
- ...def.enableLayoutSwitch && {
2195
- enableLayoutSwitch: def.enableLayoutSwitch
2196
- },
2197
- ...def.displayAndFormat && {
2198
- displayAndFormat: def.displayAndFormat
2199
- },
2200
- ...def.sections && {
2201
- sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2202
- },
2203
- ...def.submissionMetadata && {
2204
- submissionMetadata: def.submissionMetadata
2205
- }
2206
- });
2207
- }
1808
+ var CREATE_INTERFACE_OBJECT_PARAMETER = "objectTypeParameter";
1809
+ var MODIFY_INTERFACE_OBJECT_PARAMETER = "interfaceObjectToModifyParameter";
2208
1810
  function defineAction(actionDef) {
2209
1811
  const apiName = namespace + actionDef.apiName;
2210
1812
  const parameterIds = (actionDef.parameters ?? []).map((p) => p.id);
@@ -2260,11 +1862,36 @@ function defineAction(actionDef) {
2260
1862
  updateOntology(fullAction);
2261
1863
  return fullAction;
2262
1864
  }
2263
- function createParameters(def, parameterSet) {
2264
- const targetParam = [];
1865
+ function isPropertyParameter(def, name, type) {
1866
+ return !Object.keys(def.nonParameterMappings ?? {}).includes(name) && !isStruct(type) && !def.excludedProperties?.includes(name);
1867
+ }
1868
+ function createParameters(def, propertyMap, parameterSet, requiredMap) {
1869
+ const targetParams = getTargetParameters(def, parameterSet);
1870
+ return [...targetParams, ...Array.from(parameterSet).map((id) => ({
1871
+ id,
1872
+ displayName: def.parameterConfiguration?.[id]?.displayName ?? propertyMap[id]?.displayName ?? uppercaseFirstLetter(id),
1873
+ type: def.parameterConfiguration?.[id]?.customParameterType ?? extractActionParameterType(propertyMap[id]),
1874
+ validation: def.parameterConfiguration?.[id] !== void 0 ? {
1875
+ ...def.parameterConfiguration?.[id],
1876
+ allowedValues: def.parameterConfiguration?.[id].allowedValues ?? (def.parameterConfiguration?.[id].customParameterType ? extractAllowedValuesFromActionParameterType(def.parameterConfiguration?.[id].customParameterType) : extractAllowedValuesFromPropertyType(propertyMap[id]?.type)),
1877
+ required: def.parameterConfiguration?.[id].required ?? propertyMap[id]?.nullability?.noNulls ?? false
1878
+ } : {
1879
+ required: propertyMap[id]?.array ?? false ? {
1880
+ listLength: propertyMap[id]?.nullability?.noEmptyCollections ? {
1881
+ min: 1
1882
+ } : {}
1883
+ } : requiredMap?.[id] ?? propertyMap[id]?.nullability?.noNulls ?? false,
1884
+ allowedValues: extractAllowedValuesFromPropertyType(propertyMap[id]?.type)
1885
+ },
1886
+ defaultValue: def.parameterConfiguration?.[id]?.defaultValue,
1887
+ description: def.parameterConfiguration?.[id]?.description
1888
+ }))];
1889
+ }
1890
+ function getTargetParameters(def, parameterSet) {
1891
+ const targetParams = [];
2265
1892
  parameterSet.forEach((name) => {
2266
1893
  if (name === MODIFY_OBJECT_PARAMETER) {
2267
- targetParam.push({
1894
+ targetParams.push({
2268
1895
  id: MODIFY_OBJECT_PARAMETER,
2269
1896
  displayName: def.parameterConfiguration?.[name]?.displayName ?? "Modify object",
2270
1897
  type: {
@@ -2286,14 +1913,17 @@ function createParameters(def, parameterSet) {
2286
1913
  parameterSet.delete(MODIFY_OBJECT_PARAMETER);
2287
1914
  }
2288
1915
  if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {
2289
- targetParam.push({
1916
+ targetParams.push({
2290
1917
  id: CREATE_OR_MODIFY_OBJECT_PARAMETER,
2291
1918
  displayName: def.parameterConfiguration?.[name]?.displayName ?? "Create or modify object",
2292
1919
  type: {
2293
1920
  type: "objectReference",
2294
1921
  objectReference: {
2295
1922
  objectTypeId: def.objectType.apiName,
2296
- maybeCreateObjectOption: !def.primaryKeyOption || def.primaryKeyOption === "autoGenerated" ? {
1923
+ maybeCreateObjectOption: !("primaryKeyOption" in def) ? {
1924
+ type: "autoGenerated",
1925
+ autoGenerated: {}
1926
+ } : def.primaryKeyOption === "autoGenerated" ? {
2297
1927
  type: "autoGenerated",
2298
1928
  autoGenerated: {}
2299
1929
  } : {
@@ -2304,36 +1934,85 @@ function createParameters(def, parameterSet) {
2304
1934
  },
2305
1935
  validation: {
2306
1936
  ...def.parameterConfiguration?.[name],
2307
- allowedValues: {
2308
- type: "objectQuery"
2309
- },
2310
- required: def.parameterConfiguration?.[name]?.required ?? true
1937
+ allowedValues: {
1938
+ type: "objectQuery"
1939
+ },
1940
+ required: def.parameterConfiguration?.[name]?.required ?? true
1941
+ },
1942
+ defaultValue: def.parameterConfiguration?.[name]?.defaultValue,
1943
+ description: def.parameterConfiguration?.[name]?.description
1944
+ });
1945
+ parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);
1946
+ }
1947
+ if (name === CREATE_INTERFACE_OBJECT_PARAMETER && "interfaceType" in def) {
1948
+ targetParams.push({
1949
+ id: CREATE_INTERFACE_OBJECT_PARAMETER,
1950
+ displayName: def.parameterConfiguration?.[name]?.displayName ?? "Object type to create",
1951
+ type: {
1952
+ type: "objectTypeReference",
1953
+ objectTypeReference: {
1954
+ interfaceTypeRids: [def.interfaceType.apiName]
1955
+ }
1956
+ },
1957
+ validation: {
1958
+ ...def.parameterConfiguration?.[name],
1959
+ required: true,
1960
+ allowedValues: def.objectType === void 0 ? {
1961
+ type: "objectTypeReference",
1962
+ interfaceTypes: [def.interfaceType.apiName]
1963
+ } : {
1964
+ type: "oneOf",
1965
+ oneOf: [{
1966
+ label: def.objectType.displayName,
1967
+ value: {
1968
+ type: "objectType",
1969
+ objectType: {
1970
+ objectTypeId: def.objectType.apiName
1971
+ }
1972
+ }
1973
+ }]
1974
+ }
1975
+ },
1976
+ defaultValue: def.parameterConfiguration?.[name]?.defaultValue,
1977
+ description: def.parameterConfiguration?.[name]?.description
1978
+ });
1979
+ parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);
1980
+ }
1981
+ if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && "interfaceType" in def) {
1982
+ targetParams.push({
1983
+ id: MODIFY_INTERFACE_OBJECT_PARAMETER,
1984
+ displayName: def.parameterConfiguration?.[name]?.displayName ?? "Object type to modify",
1985
+ type: {
1986
+ type: "interfaceReference",
1987
+ interfaceReference: {
1988
+ interfaceTypeRid: def.interfaceType.apiName
1989
+ }
1990
+ },
1991
+ validation: {
1992
+ ...def.parameterConfiguration?.[name],
1993
+ required: true,
1994
+ allowedValues: def.objectType === void 0 ? {
1995
+ type: "interfaceObjectQuery"
1996
+ } : {
1997
+ type: "oneOf",
1998
+ oneOf: [{
1999
+ label: def.objectType.displayName,
2000
+ value: {
2001
+ type: "objectType",
2002
+ objectType: {
2003
+ objectTypeId: def.objectType.apiName
2004
+ }
2005
+ }
2006
+ }]
2007
+ }
2311
2008
  },
2312
2009
  defaultValue: def.parameterConfiguration?.[name]?.defaultValue,
2313
2010
  description: def.parameterConfiguration?.[name]?.description
2314
2011
  });
2315
- parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);
2012
+ parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);
2316
2013
  }
2317
2014
  });
2318
- return [...targetParam, ...Array.from(parameterSet).map((id) => ({
2319
- id,
2320
- displayName: def.parameterConfiguration?.[id]?.displayName ?? def.objectType.properties?.[id]?.displayName ?? uppercaseFirstLetter(id),
2321
- type: def.parameterConfiguration?.[id]?.customParameterType ?? extractActionParameterType(def.objectType.properties?.[id]),
2322
- validation: def.parameterConfiguration?.[id] !== void 0 ? {
2323
- ...def.parameterConfiguration?.[id],
2324
- allowedValues: def.parameterConfiguration?.[id].allowedValues ?? (def.parameterConfiguration?.[id].customParameterType ? extractAllowedValuesFromActionParameterType(def.parameterConfiguration?.[id].customParameterType) : extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)),
2325
- required: def.parameterConfiguration?.[id].required ?? def.objectType.properties?.[id]?.nullability?.noNulls ?? false
2326
- } : {
2327
- required: def.objectType.properties?.[id].array ?? false ? {
2328
- listLength: def.objectType.properties?.[id].nullability?.noEmptyCollections ? {
2329
- min: 1
2330
- } : {}
2331
- } : def.objectType.properties?.[id].nullability?.noNulls ?? false,
2332
- allowedValues: extractAllowedValuesFromPropertyType(def.objectType.properties?.[id].type)
2333
- },
2334
- defaultValue: def.parameterConfiguration?.[id]?.defaultValue,
2335
- description: def.parameterConfiguration?.[id]?.description
2336
- }))];
2015
+ return targetParams;
2337
2016
  }
2338
2017
  function referencedParameterIds(actionDef) {
2339
2018
  const parameterIds = /* @__PURE__ */ new Set();
@@ -2606,92 +2285,362 @@ function convertValidationRule(actionValidation, actionParameters) {
2606
2285
  failureMessage: "Did not satisfy validation",
2607
2286
  typeClasses: []
2608
2287
  }
2609
- };
2610
- });
2611
- }
2612
- function validateActionConfiguration(action) {
2613
- const seenParameterIds = /* @__PURE__ */ new Set();
2614
- const parameterMap = action.parameters?.reduce((acc, param) => {
2615
- acc[param.id] = param;
2616
- return acc;
2617
- }, {}) ?? {};
2618
- const orderedParameters = action.parameterOrdering?.map((id) => parameterMap[id]) ?? action.parameters;
2619
- orderedParameters?.forEach((param) => {
2620
- param.validation.conditionalOverrides?.forEach((override) => {
2621
- validateParameterCondition(override.condition, param.id, seenParameterIds, action.parameters);
2622
- });
2623
- validateParameterPrefill(param.id, seenParameterIds, action.parameters, param.defaultValue);
2624
- seenParameterIds.add(param.id);
2288
+ };
2289
+ });
2290
+ }
2291
+ function validateActionConfiguration(action) {
2292
+ const seenParameterIds = /* @__PURE__ */ new Set();
2293
+ const parameterMap = action.parameters?.reduce((acc, param) => {
2294
+ acc[param.id] = param;
2295
+ return acc;
2296
+ }, {}) ?? {};
2297
+ const orderedParameters = action.parameterOrdering?.map((id) => parameterMap[id]) ?? action.parameters;
2298
+ orderedParameters?.forEach((param) => {
2299
+ param.validation.conditionalOverrides?.forEach((override) => {
2300
+ validateParameterCondition(override.condition, param.id, seenParameterIds, action.parameters);
2301
+ });
2302
+ validateParameterPrefill(param.id, seenParameterIds, action.parameters, param.defaultValue);
2303
+ seenParameterIds.add(param.id);
2304
+ });
2305
+ }
2306
+ function validateParameterCondition(condition, currentParameterId, seenParameterIds, parameters) {
2307
+ switch (condition.type) {
2308
+ case "parameter":
2309
+ const overrideParamId = condition.parameterId;
2310
+ !parameters?.some((p) => p.id === overrideParamId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`) : invariant6__default.default(false) : void 0;
2311
+ !(overrideParamId !== currentParameterId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter condition on ${currentParameterId} is referencing itself`) : invariant6__default.default(false) : void 0;
2312
+ !seenParameterIds.has(overrideParamId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`) : invariant6__default.default(false) : void 0;
2313
+ break;
2314
+ case "and":
2315
+ if ("conditions" in condition) {
2316
+ condition.conditions.forEach((c) => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));
2317
+ }
2318
+ break;
2319
+ case "or":
2320
+ if ("conditions" in condition) {
2321
+ condition.conditions.forEach((c) => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));
2322
+ }
2323
+ break;
2324
+ case "comparison":
2325
+ case "group":
2326
+ case "not":
2327
+ case "markings":
2328
+ case "regex":
2329
+ case "redacted":
2330
+ case "true":
2331
+ break;
2332
+ default:
2333
+ throw new Error(`Unknown condition type on parameter ${currentParameterId}`);
2334
+ }
2335
+ }
2336
+ function validateParameterPrefill(currentParameterId, seenParameterIds, parameters, defaultValue) {
2337
+ if (!defaultValue) return;
2338
+ switch (defaultValue.type) {
2339
+ case "objectParameterPropertyValue":
2340
+ !parameters?.some((p) => p.id === defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant6__default.default(false) : void 0;
2341
+ !seenParameterIds.has(defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant6__default.default(false) : void 0;
2342
+ break;
2343
+ case "staticValue":
2344
+ !(defaultValue.staticValue.type === parameters?.find((p) => p.id === currentParameterId)?.type) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Default static value for parameter ${currentParameterId} does not match type`) : invariant6__default.default(false) : void 0;
2345
+ break;
2346
+ case "staticObject":
2347
+ case "interfaceParameterPropertyValue":
2348
+ case "objectQueryPrefill":
2349
+ case "objectQueryPropertyValue":
2350
+ case "objectSetRidPrefill":
2351
+ case "redacted":
2352
+ break;
2353
+ default:
2354
+ throw new Error(`Unknown default value type for parameter ${currentParameterId}`);
2355
+ }
2356
+ }
2357
+ function validateActionParameters(def, properties, name) {
2358
+ [...Object.keys(def.parameterConfiguration ?? {})].forEach((id) => {
2359
+ !(properties.includes(id) || properties.includes(addNamespaceIfNone(id)) || def.parameterConfiguration?.[id].customParameterType !== void 0 || isTargetParameter(id)) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`) : invariant6__default.default(false) : void 0;
2360
+ });
2361
+ [...Object.keys(def.nonParameterMappings ?? {}), ...def.excludedProperties ?? []].forEach((id) => {
2362
+ !(properties.includes(id) || properties.includes(addNamespaceIfNone(id))) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Property ${id} does not exist as a property on ${name}`) : invariant6__default.default(false) : void 0;
2363
+ });
2364
+ }
2365
+ function createDefaultParameterOrdering(def, properties, parameters, priorityId) {
2366
+ return [...priorityId ? [priorityId] : [], ...Object.keys(def.parameterConfiguration ?? {}).filter((id) => id !== priorityId), ...properties.filter((id) => !def.parameterConfiguration?.[id] && parameters.some((p) => p.id === id))];
2367
+ }
2368
+ function validateParameterOrdering(parameterOrdering, parameterSet, actionApiName) {
2369
+ const orderingSet = new Set(parameterOrdering);
2370
+ const missingParameters = [...parameterSet].filter((param) => !orderingSet.has(param));
2371
+ const extraneousParameters = parameterOrdering.filter((param) => !parameterSet.has(param));
2372
+ !(extraneousParameters.length === 0 && missingParameters.length === 0) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`) : invariant6__default.default(false) : void 0;
2373
+ }
2374
+ function isTargetParameter(parameterId) {
2375
+ return parameterId === MODIFY_OBJECT_PARAMETER || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;
2376
+ }
2377
+ function addNamespaceToActionDefinition(def) {
2378
+ def.parameterConfiguration = Object.fromEntries(Object.entries(def.parameterConfiguration ?? {}).map(([id, config]) => [getInterfaceParameterName(def, id), config]));
2379
+ def.nonParameterMappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [addNamespaceIfNone(id), value]));
2380
+ def.excludedProperties = (def.excludedProperties ?? []).map((id) => addNamespaceIfNone(id));
2381
+ def.sections = def.sections?.map((section) => ({
2382
+ ...section,
2383
+ parameters: section.parameters.map((p) => getInterfaceParameterName(def, p))
2384
+ }));
2385
+ }
2386
+ function getInterfaceParameterName(def, parameter) {
2387
+ return isTargetParameter(parameter) || !Object.keys(def.interfaceType.propertiesV2).includes(addNamespaceIfNone(parameter)) ? parameter : addNamespaceIfNone(parameter);
2388
+ }
2389
+ function convertMappingValue(value) {
2390
+ switch (value.type) {
2391
+ case "uuid":
2392
+ return {
2393
+ type: "uniqueIdentifier",
2394
+ uniqueIdentifier: {
2395
+ linkId: value.linkId ?? crypto.randomUUID()
2396
+ }
2397
+ };
2398
+ case "currentTime":
2399
+ return {
2400
+ type: "currentTime",
2401
+ currentTime: {}
2402
+ };
2403
+ case "currentUser":
2404
+ return {
2405
+ type: "currentUser",
2406
+ currentUser: {}
2407
+ };
2408
+ default:
2409
+ return value;
2410
+ }
2411
+ }
2412
+
2413
+ // src/api/defineCreateInterfaceObjectAction.ts
2414
+ function defineCreateInterfaceObjectAction(def) {
2415
+ addNamespaceToActionDefinition(def);
2416
+ const allProperties = getFlattenedInterfaceProperties(def.interfaceType);
2417
+ validateActionParameters(def, Object.keys(allProperties), def.interfaceType.apiName);
2418
+ const propertyParameters = Object.keys(allProperties).filter((apiName) => isPropertyParameter(def, apiName, allProperties[apiName].sharedPropertyType.type));
2419
+ const parameterNames = new Set(propertyParameters);
2420
+ Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(getInterfaceParameterName(def, param)));
2421
+ parameterNames.add(CREATE_INTERFACE_OBJECT_PARAMETER);
2422
+ const actionApiName = def.apiName ?? `create-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === void 0 ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`;
2423
+ if (def.parameterOrdering) {
2424
+ if (!def.parameterOrdering.includes(CREATE_INTERFACE_OBJECT_PARAMETER)) {
2425
+ def.parameterOrdering.unshift(CREATE_INTERFACE_OBJECT_PARAMETER);
2426
+ }
2427
+ validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2428
+ }
2429
+ const parameters = createParameters(def, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.sharedPropertyType])), parameterNames, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.required])));
2430
+ const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2431
+ return defineAction({
2432
+ apiName: actionApiName,
2433
+ displayName: def.displayName ?? `Create ${def.interfaceType.displayMetadata.displayName}`,
2434
+ parameters,
2435
+ status: def.status ?? (def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status),
2436
+ entities: {
2437
+ affectedInterfaceTypes: [def.interfaceType.apiName],
2438
+ affectedObjectTypes: [],
2439
+ affectedLinkTypes: [],
2440
+ typeGroups: []
2441
+ },
2442
+ rules: [{
2443
+ type: "addInterfaceRule",
2444
+ addInterfaceRule: {
2445
+ interfaceApiName: def.interfaceType.apiName,
2446
+ objectTypeParameter: CREATE_INTERFACE_OBJECT_PARAMETER,
2447
+ sharedPropertyValues: {
2448
+ ...Object.fromEntries(propertyParameters.map((id) => [id, {
2449
+ type: "parameterId",
2450
+ parameterId: id
2451
+ }])),
2452
+ ...mappings
2453
+ }
2454
+ }
2455
+ }],
2456
+ parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(allProperties), parameters, CREATE_INTERFACE_OBJECT_PARAMETER),
2457
+ ...def.actionLevelValidation ? {
2458
+ actionLevelValidation: convertValidationRule(def.actionLevelValidation, parameters)
2459
+ } : {},
2460
+ ...def.enableLayoutSwitch && {
2461
+ enableLayoutSwitch: def.enableLayoutSwitch
2462
+ },
2463
+ ...def.sections && {
2464
+ sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2465
+ },
2466
+ ...def.submissionMetadata && {
2467
+ submissionMetadata: def.submissionMetadata
2468
+ }
2469
+ });
2470
+ }
2471
+
2472
+ // src/api/defineCreateObjectAction.ts
2473
+ function defineCreateObjectAction(def) {
2474
+ validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
2475
+ const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter((id) => isPropertyParameter(def, id, def.objectType.properties?.[id].type));
2476
+ const parameterNames = new Set(propertyParameters);
2477
+ Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(param));
2478
+ const actionApiName = def.apiName ?? `create-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
2479
+ if (def.parameterOrdering) {
2480
+ validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2481
+ }
2482
+ const parameters = createParameters(def, def.objectType.properties ?? {}, parameterNames);
2483
+ const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2484
+ return defineAction({
2485
+ apiName: actionApiName,
2486
+ displayName: def.displayName ?? `Create ${def.objectType.displayName}`,
2487
+ parameters,
2488
+ status: def.status ?? "active",
2489
+ entities: {
2490
+ affectedInterfaceTypes: [],
2491
+ affectedObjectTypes: [def.objectType.apiName],
2492
+ affectedLinkTypes: [],
2493
+ typeGroups: []
2494
+ },
2495
+ rules: [{
2496
+ type: "addObjectRule",
2497
+ addObjectRule: {
2498
+ objectTypeId: def.objectType.apiName,
2499
+ propertyValues: {
2500
+ ...Object.fromEntries(propertyParameters.map((p) => [p, {
2501
+ type: "parameterId",
2502
+ parameterId: p
2503
+ }])),
2504
+ ...mappings
2505
+ },
2506
+ structFieldValues: {}
2507
+ }
2508
+ }],
2509
+ parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(def.objectType.properties ?? {}), parameters),
2510
+ ...def.actionLevelValidation ? {
2511
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
2512
+ } : {},
2513
+ ...def.defaultFormat && {
2514
+ defaultFormat: def.defaultFormat
2515
+ },
2516
+ ...def.enableLayoutSwitch && {
2517
+ enableLayoutSwitch: def.enableLayoutSwitch
2518
+ },
2519
+ ...def.displayAndFormat && {
2520
+ displayAndFormat: def.displayAndFormat
2521
+ },
2522
+ ...def.sections && {
2523
+ sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2524
+ },
2525
+ ...def.submissionMetadata && {
2526
+ submissionMetadata: def.submissionMetadata
2527
+ }
2528
+ });
2529
+ }
2530
+
2531
+ // src/api/defineCreateOrModifyObjectAction.ts
2532
+ function defineCreateOrModifyObjectAction(def) {
2533
+ validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
2534
+ const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter((id) => !Object.keys(def.nonParameterMappings ?? {}).includes(id) && !def.excludedProperties?.includes(id) && !isStruct(def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
2535
+ const parameterNames = new Set(propertyParameters);
2536
+ Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(param));
2537
+ parameterNames.add(CREATE_OR_MODIFY_OBJECT_PARAMETER);
2538
+ const actionApiName = def.apiName ?? `create-or-modify-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
2539
+ if (def.parameterOrdering) {
2540
+ if (!def.parameterOrdering.includes(CREATE_OR_MODIFY_OBJECT_PARAMETER)) {
2541
+ def.parameterOrdering.unshift(CREATE_OR_MODIFY_OBJECT_PARAMETER);
2542
+ }
2543
+ validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2544
+ }
2545
+ const parameters = createParameters(def, def.objectType.properties ?? {}, parameterNames);
2546
+ parameters.forEach((p) => {
2547
+ if (p.id !== CREATE_OR_MODIFY_OBJECT_PARAMETER && p.defaultValue === void 0) {
2548
+ p.defaultValue = {
2549
+ type: "objectParameterPropertyValue",
2550
+ objectParameterPropertyValue: {
2551
+ parameterId: CREATE_OR_MODIFY_OBJECT_PARAMETER,
2552
+ propertyTypeId: p.id
2553
+ }
2554
+ };
2555
+ }
2556
+ });
2557
+ const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2558
+ return defineAction({
2559
+ apiName: actionApiName,
2560
+ displayName: def.displayName ?? `Create or Modify ${def.objectType.displayName}`,
2561
+ parameters,
2562
+ status: def.status ?? "active",
2563
+ rules: [{
2564
+ type: "addOrModifyObjectRuleV2",
2565
+ addOrModifyObjectRuleV2: {
2566
+ objectToModify: CREATE_OR_MODIFY_OBJECT_PARAMETER,
2567
+ propertyValues: {
2568
+ ...Object.fromEntries(propertyParameters.map((p) => [p, {
2569
+ type: "parameterId",
2570
+ parameterId: p
2571
+ }])),
2572
+ ...mappings
2573
+ },
2574
+ structFieldValues: {}
2575
+ }
2576
+ }],
2577
+ entities: {
2578
+ affectedInterfaceTypes: [],
2579
+ affectedObjectTypes: [def.objectType.apiName],
2580
+ affectedLinkTypes: [],
2581
+ typeGroups: []
2582
+ },
2583
+ parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(def.objectType.properties ?? {}), parameters, CREATE_OR_MODIFY_OBJECT_PARAMETER),
2584
+ ...def.actionLevelValidation ? {
2585
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
2586
+ } : {},
2587
+ ...def.defaultFormat && {
2588
+ defaultFormat: def.defaultFormat
2589
+ },
2590
+ ...def.enableLayoutSwitch && {
2591
+ enableLayoutSwitch: def.enableLayoutSwitch
2592
+ },
2593
+ ...def.displayAndFormat && {
2594
+ displayAndFormat: def.displayAndFormat
2595
+ },
2596
+ ...def.sections && {
2597
+ sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2598
+ },
2599
+ ...def.submissionMetadata && {
2600
+ submissionMetadata: def.submissionMetadata
2601
+ }
2625
2602
  });
2626
2603
  }
2627
- function validateParameterCondition(condition, currentParameterId, seenParameterIds, parameters) {
2628
- switch (condition.type) {
2629
- case "parameter":
2630
- const overrideParamId = condition.parameterId;
2631
- !parameters?.some((p) => p.id === overrideParamId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`) : invariant6__default.default(false) : void 0;
2632
- !(overrideParamId !== currentParameterId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter condition on ${currentParameterId} is referencing itself`) : invariant6__default.default(false) : void 0;
2633
- !seenParameterIds.has(overrideParamId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`) : invariant6__default.default(false) : void 0;
2634
- break;
2635
- case "and":
2636
- if ("conditions" in condition) {
2637
- condition.conditions.forEach((c) => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));
2604
+
2605
+ // src/api/defineDeleteObjectAction.ts
2606
+ function defineDeleteObjectAction(def) {
2607
+ return defineAction({
2608
+ apiName: def.apiName ?? `delete-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`,
2609
+ displayName: def.displayName ?? `Delete ${def.objectType.displayName}`,
2610
+ parameters: [{
2611
+ id: "objectToDeleteParameter",
2612
+ displayName: "Delete object",
2613
+ type: {
2614
+ type: "objectReference",
2615
+ objectReference: {
2616
+ objectTypeId: def.objectType.apiName
2617
+ }
2618
+ },
2619
+ validation: {
2620
+ required: true,
2621
+ allowedValues: {
2622
+ type: "objectQuery"
2623
+ }
2638
2624
  }
2639
- break;
2640
- case "or":
2641
- if ("conditions" in condition) {
2642
- condition.conditions.forEach((c) => validateParameterCondition(c, currentParameterId, seenParameterIds, parameters));
2625
+ }],
2626
+ status: def.status ?? "active",
2627
+ rules: [{
2628
+ type: "deleteObjectRule",
2629
+ deleteObjectRule: {
2630
+ objectToDelete: "objectToDeleteParameter"
2643
2631
  }
2644
- break;
2645
- case "comparison":
2646
- case "group":
2647
- case "not":
2648
- case "markings":
2649
- case "regex":
2650
- case "redacted":
2651
- case "true":
2652
- break;
2653
- default:
2654
- throw new Error(`Unknown condition type on parameter ${currentParameterId}`);
2655
- }
2656
- }
2657
- function validateParameterPrefill(currentParameterId, seenParameterIds, parameters, defaultValue) {
2658
- if (!defaultValue) return;
2659
- switch (defaultValue.type) {
2660
- case "objectParameterPropertyValue":
2661
- !parameters?.some((p) => p.id === defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant6__default.default(false) : void 0;
2662
- !seenParameterIds.has(defaultValue.objectParameterPropertyValue.parameterId) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`) : invariant6__default.default(false) : void 0;
2663
- break;
2664
- case "staticValue":
2665
- !(defaultValue.staticValue.type === parameters?.find((p) => p.id === currentParameterId)?.type) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Default static value for parameter ${currentParameterId} does not match type`) : invariant6__default.default(false) : void 0;
2666
- break;
2667
- case "staticObject":
2668
- case "interfaceParameterPropertyValue":
2669
- case "objectQueryPrefill":
2670
- case "objectQueryPropertyValue":
2671
- case "objectSetRidPrefill":
2672
- case "redacted":
2673
- break;
2674
- default:
2675
- throw new Error(`Unknown default value type for parameter ${currentParameterId}`);
2676
- }
2677
- }
2678
- function validateActionParameters(def) {
2679
- [...Object.keys(def.parameterConfiguration ?? {})].forEach((id) => {
2680
- !(def.objectType.properties?.[id] !== void 0 || def.parameterConfiguration?.[id].customParameterType !== void 0 || id === MODIFY_OBJECT_PARAMETER || id === CREATE_OR_MODIFY_OBJECT_PARAMETER) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Parameter ${id} does not exist as a property on ${def.objectType.apiName} and its type is not explicitly defined`) : invariant6__default.default(false) : void 0;
2681
- });
2682
- [...Object.keys(def.nonParameterMappings ?? {}), ...def.excludedProperties ?? []].forEach((id) => {
2683
- !(def.objectType.properties?.[id] !== void 0) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Property ${id} does not exist as a property on ${def.objectType.apiName}`) : invariant6__default.default(false) : void 0;
2632
+ }],
2633
+ entities: {
2634
+ affectedInterfaceTypes: [],
2635
+ affectedObjectTypes: [def.objectType.apiName],
2636
+ affectedLinkTypes: [],
2637
+ typeGroups: []
2638
+ },
2639
+ ...def.actionLevelValidation ? {
2640
+ validation: convertValidationRule(def.actionLevelValidation)
2641
+ } : {}
2684
2642
  });
2685
2643
  }
2686
- function createDefaultParameterOrdering(def, parameters, priorityId) {
2687
- return [...priorityId ? [priorityId] : [], ...Object.keys(def.parameterConfiguration ?? {}), ...Object.keys(def.objectType.properties ?? {}).filter((id) => !def.parameterConfiguration?.[id] && parameters.some((p) => p.id === id))];
2688
- }
2689
- function validateParameterOrdering(parameterOrdering, parameterSet, actionApiName) {
2690
- const orderingSet = new Set(parameterOrdering);
2691
- const missingParameters = [...parameterSet].filter((param) => !orderingSet.has(param));
2692
- const extraneousParameters = parameterOrdering.filter((param) => !parameterSet.has(param));
2693
- !(extraneousParameters.length === 0 && missingParameters.length === 0) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`) : invariant6__default.default(false) : void 0;
2694
- }
2695
2644
  function defineSharedPropertyType(sptDef) {
2696
2645
  const apiName = namespace + sptDef.apiName;
2697
2646
  !(ontologyDefinition[OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE][apiName] === void 0) ? process.env.NODE_ENV !== "production" ? invariant6__default.default(false, `Shared property type ${apiName} already exists`) : invariant6__default.default(false) : void 0;
@@ -2907,6 +2856,138 @@ function convertLinkTypeMetadata(metadata) {
2907
2856
  typeClasses: []
2908
2857
  };
2909
2858
  }
2859
+
2860
+ // src/api/defineModifyInterfaceObjectAction.ts
2861
+ function defineModifyInterfaceObjectAction(def) {
2862
+ addNamespaceToActionDefinition(def);
2863
+ const allProperties = getFlattenedInterfaceProperties(def.interfaceType);
2864
+ validateActionParameters(def, Object.keys(allProperties), def.interfaceType.apiName);
2865
+ const propertyParameters = Object.keys(allProperties).filter((apiName) => isPropertyParameter(def, apiName, allProperties[apiName].sharedPropertyType.type));
2866
+ const parameterNames = new Set(propertyParameters);
2867
+ Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(getInterfaceParameterName(def, param)));
2868
+ parameterNames.add(MODIFY_INTERFACE_OBJECT_PARAMETER);
2869
+ const actionApiName = def.apiName ?? `modify-${kebab(def.interfaceType.apiName.split(".").pop() ?? def.interfaceType.apiName)}${def.objectType === void 0 ? "" : `-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`}`;
2870
+ if (def.parameterOrdering) {
2871
+ if (!def.parameterOrdering.includes(MODIFY_INTERFACE_OBJECT_PARAMETER)) {
2872
+ def.parameterOrdering.unshift(MODIFY_INTERFACE_OBJECT_PARAMETER);
2873
+ }
2874
+ validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2875
+ }
2876
+ const parameters = createParameters(def, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.sharedPropertyType])), parameterNames, Object.fromEntries(Object.entries(allProperties).map(([id, prop]) => [id, prop.required])));
2877
+ const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2878
+ return defineAction({
2879
+ apiName: actionApiName,
2880
+ displayName: def.displayName ?? `Modify ${def.interfaceType.displayMetadata.displayName}`,
2881
+ parameters,
2882
+ status: def.status ?? (def.interfaceType.status.type !== "deprecated" ? def.interfaceType.status.type : def.interfaceType.status),
2883
+ entities: {
2884
+ affectedInterfaceTypes: [def.interfaceType.apiName],
2885
+ affectedObjectTypes: [],
2886
+ affectedLinkTypes: [],
2887
+ typeGroups: []
2888
+ },
2889
+ rules: [{
2890
+ type: "modifyInterfaceRule",
2891
+ modifyInterfaceRule: {
2892
+ interfaceObjectToModifyParameter: "interfaceObjectToModifyParameter",
2893
+ sharedPropertyValues: {
2894
+ ...Object.fromEntries(propertyParameters.map((id) => [id, {
2895
+ type: "parameterId",
2896
+ parameterId: id
2897
+ }])),
2898
+ ...mappings
2899
+ }
2900
+ }
2901
+ }],
2902
+ parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(allProperties), parameters, MODIFY_INTERFACE_OBJECT_PARAMETER),
2903
+ ...def.actionLevelValidation ? {
2904
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
2905
+ } : {},
2906
+ ...def.enableLayoutSwitch && {
2907
+ enableLayoutSwitch: def.enableLayoutSwitch
2908
+ },
2909
+ ...def.sections && {
2910
+ sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2911
+ },
2912
+ ...def.submissionMetadata && {
2913
+ submissionMetadata: def.submissionMetadata
2914
+ }
2915
+ });
2916
+ }
2917
+
2918
+ // src/api/defineModifyObjectAction.ts
2919
+ function defineModifyObjectAction(def) {
2920
+ validateActionParameters(def, Object.keys(def.objectType.properties ?? {}), def.objectType.apiName);
2921
+ const propertyParameters = Object.keys(def.objectType.properties ?? {}).filter((id) => isPropertyParameter(def, id, def.objectType.properties?.[id].type) && id !== def.objectType.primaryKeyPropertyApiName);
2922
+ const parameterNames = new Set(propertyParameters);
2923
+ Object.keys(def.parameterConfiguration ?? {}).forEach((param) => parameterNames.add(param));
2924
+ parameterNames.add(MODIFY_OBJECT_PARAMETER);
2925
+ const actionApiName = def.apiName ?? `modify-object-${kebab(def.objectType.apiName.split(".").pop() ?? def.objectType.apiName)}`;
2926
+ if (def.parameterOrdering) {
2927
+ if (!def.parameterOrdering.includes(MODIFY_OBJECT_PARAMETER)) {
2928
+ def.parameterOrdering.unshift(MODIFY_OBJECT_PARAMETER);
2929
+ }
2930
+ validateParameterOrdering(def.parameterOrdering, parameterNames, actionApiName);
2931
+ }
2932
+ const parameters = createParameters(def, def.objectType.properties ?? {}, parameterNames);
2933
+ parameters.forEach((p) => {
2934
+ if (p.id !== MODIFY_OBJECT_PARAMETER && p.defaultValue === void 0) {
2935
+ p.defaultValue = {
2936
+ type: "objectParameterPropertyValue",
2937
+ objectParameterPropertyValue: {
2938
+ parameterId: MODIFY_OBJECT_PARAMETER,
2939
+ propertyTypeId: p.id
2940
+ }
2941
+ };
2942
+ }
2943
+ });
2944
+ const mappings = Object.fromEntries(Object.entries(def.nonParameterMappings ?? {}).map(([id, value]) => [id, convertMappingValue(value)]));
2945
+ return defineAction({
2946
+ apiName: actionApiName,
2947
+ displayName: def.displayName ?? `Modify ${def.objectType.displayName}`,
2948
+ parameters,
2949
+ status: def.status ?? "active",
2950
+ rules: [{
2951
+ type: "modifyObjectRule",
2952
+ modifyObjectRule: {
2953
+ objectToModify: MODIFY_OBJECT_PARAMETER,
2954
+ propertyValues: {
2955
+ ...Object.fromEntries(propertyParameters.map((p) => [p, {
2956
+ type: "parameterId",
2957
+ parameterId: p
2958
+ }])),
2959
+ ...mappings
2960
+ },
2961
+ structFieldValues: {}
2962
+ }
2963
+ }],
2964
+ entities: {
2965
+ affectedInterfaceTypes: [],
2966
+ affectedObjectTypes: [def.objectType.apiName],
2967
+ affectedLinkTypes: [],
2968
+ typeGroups: []
2969
+ },
2970
+ parameterOrdering: def.parameterOrdering ?? createDefaultParameterOrdering(def, Object.keys(def.objectType.properties ?? {}), parameters, MODIFY_OBJECT_PARAMETER),
2971
+ ...def.actionLevelValidation ? {
2972
+ validation: convertValidationRule(def.actionLevelValidation, parameters)
2973
+ } : {},
2974
+ ...def.defaultFormat && {
2975
+ defaultFormat: def.defaultFormat
2976
+ },
2977
+ ...def.enableLayoutSwitch && {
2978
+ enableLayoutSwitch: def.enableLayoutSwitch
2979
+ },
2980
+ ...def.displayAndFormat && {
2981
+ displayAndFormat: def.displayAndFormat
2982
+ },
2983
+ ...def.sections && {
2984
+ sections: Object.fromEntries(def.sections.map((section) => [section.id, section]))
2985
+ },
2986
+ ...def.submissionMetadata && {
2987
+ submissionMetadata: def.submissionMetadata
2988
+ }
2989
+ });
2990
+ }
2910
2991
  function convertValueTypeTypeToBaseType(valueType) {
2911
2992
  switch (true) {
2912
2993
  case (typeof valueType === "object" && valueType.type === "array"):
@@ -3039,7 +3120,9 @@ function wrapWithProxy(entity) {
3039
3120
  });
3040
3121
  }
3041
3122
 
3123
+ exports.CREATE_INTERFACE_OBJECT_PARAMETER = CREATE_INTERFACE_OBJECT_PARAMETER;
3042
3124
  exports.CREATE_OR_MODIFY_OBJECT_PARAMETER = CREATE_OR_MODIFY_OBJECT_PARAMETER;
3125
+ exports.MODIFY_INTERFACE_OBJECT_PARAMETER = MODIFY_INTERFACE_OBJECT_PARAMETER;
3043
3126
  exports.MODIFY_OBJECT_PARAMETER = MODIFY_OBJECT_PARAMETER;
3044
3127
  exports.OntologyEntityTypeEnum = OntologyEntityTypeEnum;
3045
3128
  exports.addDependency = addDependency;