n8n-nodes-base 1.92.0 → 1.93.0

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 (189) hide show
  1. package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js +0 -9
  2. package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js.map +1 -1
  3. package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js +13 -0
  4. package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js.map +1 -1
  5. package/dist/credentials/Snowflake.credentials.js +46 -2
  6. package/dist/credentials/Snowflake.credentials.js.map +1 -1
  7. package/dist/known/credentials.json +10 -1
  8. package/dist/known/nodes.json +20 -0
  9. package/dist/methods/defined.json +6 -0
  10. package/dist/methods/referenced.json +3 -0
  11. package/dist/nodes/Aws/IAM/AwsIam.node.js +95 -0
  12. package/dist/nodes/Aws/IAM/AwsIam.node.js.map +1 -0
  13. package/dist/nodes/Aws/IAM/AwsIam.node.json +18 -0
  14. package/dist/nodes/Aws/IAM/AwsIam.svg +18 -0
  15. package/dist/nodes/Aws/IAM/descriptions/common.js +188 -0
  16. package/dist/nodes/Aws/IAM/descriptions/common.js.map +1 -0
  17. package/dist/nodes/Aws/IAM/descriptions/group/Group.resource.js +175 -0
  18. package/dist/nodes/Aws/IAM/descriptions/group/Group.resource.js.map +1 -0
  19. package/dist/nodes/Aws/IAM/descriptions/group/create.operation.js +66 -0
  20. package/dist/nodes/Aws/IAM/descriptions/group/create.operation.js.map +1 -0
  21. package/dist/nodes/Aws/IAM/descriptions/group/delete.operation.js +43 -0
  22. package/dist/nodes/Aws/IAM/descriptions/group/delete.operation.js.map +1 -0
  23. package/dist/nodes/Aws/IAM/descriptions/group/get.operation.js +50 -0
  24. package/dist/nodes/Aws/IAM/descriptions/group/get.operation.js.map +1 -0
  25. package/dist/nodes/Aws/IAM/descriptions/group/getAll.operation.js +47 -0
  26. package/dist/nodes/Aws/IAM/descriptions/group/getAll.operation.js.map +1 -0
  27. package/dist/nodes/Aws/IAM/descriptions/group/update.operation.js +70 -0
  28. package/dist/nodes/Aws/IAM/descriptions/group/update.operation.js.map +1 -0
  29. package/dist/nodes/Aws/IAM/descriptions/index.js +42 -0
  30. package/dist/nodes/Aws/IAM/descriptions/index.js.map +1 -0
  31. package/dist/nodes/Aws/IAM/descriptions/user/User.resource.js +231 -0
  32. package/dist/nodes/Aws/IAM/descriptions/user/User.resource.js.map +1 -0
  33. package/dist/nodes/Aws/IAM/descriptions/user/addToGroup.operation.js +47 -0
  34. package/dist/nodes/Aws/IAM/descriptions/user/addToGroup.operation.js.map +1 -0
  35. package/dist/nodes/Aws/IAM/descriptions/user/create.operation.js +118 -0
  36. package/dist/nodes/Aws/IAM/descriptions/user/create.operation.js.map +1 -0
  37. package/dist/nodes/Aws/IAM/descriptions/user/delete.operation.js +43 -0
  38. package/dist/nodes/Aws/IAM/descriptions/user/delete.operation.js.map +1 -0
  39. package/dist/nodes/Aws/IAM/descriptions/user/get.operation.js +43 -0
  40. package/dist/nodes/Aws/IAM/descriptions/user/get.operation.js.map +1 -0
  41. package/dist/nodes/Aws/IAM/descriptions/user/getAll.operation.js +66 -0
  42. package/dist/nodes/Aws/IAM/descriptions/user/getAll.operation.js.map +1 -0
  43. package/dist/nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.js +74 -0
  44. package/dist/nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.js.map +1 -0
  45. package/dist/nodes/Aws/IAM/descriptions/user/update.operation.js +68 -0
  46. package/dist/nodes/Aws/IAM/descriptions/user/update.operation.js.map +1 -0
  47. package/dist/nodes/Aws/IAM/helpers/constants.js +47 -0
  48. package/dist/nodes/Aws/IAM/helpers/constants.js.map +1 -0
  49. package/dist/nodes/Aws/IAM/helpers/errorHandler.js +90 -0
  50. package/dist/nodes/Aws/IAM/helpers/errorHandler.js.map +1 -0
  51. package/dist/nodes/Aws/IAM/helpers/types.js +17 -0
  52. package/dist/nodes/Aws/IAM/helpers/types.js.map +1 -0
  53. package/dist/nodes/Aws/IAM/helpers/utils.js +279 -0
  54. package/dist/nodes/Aws/IAM/helpers/utils.js.map +1 -0
  55. package/dist/nodes/Aws/IAM/methods/index.js +39 -0
  56. package/dist/nodes/Aws/IAM/methods/index.js.map +1 -0
  57. package/dist/nodes/Aws/IAM/methods/listSearch.js +132 -0
  58. package/dist/nodes/Aws/IAM/methods/listSearch.js.map +1 -0
  59. package/dist/nodes/Aws/IAM/transport/index.js +64 -0
  60. package/dist/nodes/Aws/IAM/transport/index.js.map +1 -0
  61. package/dist/nodes/Cron/Cron.node.js +1 -1
  62. package/dist/nodes/Cron/Cron.node.js.map +1 -1
  63. package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js +2 -2
  64. package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js.map +1 -1
  65. package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js +2 -2
  66. package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js.map +1 -1
  67. package/dist/nodes/Evaluation/Evaluation/Description.node.js +146 -0
  68. package/dist/nodes/Evaluation/Evaluation/Description.node.js.map +1 -0
  69. package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js +117 -0
  70. package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js.map +1 -0
  71. package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +187 -0
  72. package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -0
  73. package/dist/nodes/Evaluation/methods/index.js +42 -0
  74. package/dist/nodes/Evaluation/methods/index.js.map +1 -0
  75. package/dist/nodes/Evaluation/methods/loadOptions.js +40 -0
  76. package/dist/nodes/Evaluation/methods/loadOptions.js.map +1 -0
  77. package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js +119 -0
  78. package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js.map +1 -0
  79. package/dist/nodes/Evaluation/utils/evaluationUtils.js +171 -0
  80. package/dist/nodes/Evaluation/utils/evaluationUtils.js.map +1 -0
  81. package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js +4 -3
  82. package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js.map +1 -1
  83. package/dist/nodes/Form/common.descriptions.js +2 -2
  84. package/dist/nodes/Form/common.descriptions.js.map +1 -1
  85. package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js +113 -107
  86. package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js.map +1 -1
  87. package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js +52 -106
  88. package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js.map +1 -1
  89. package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js +97 -0
  90. package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js.map +1 -0
  91. package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js +20 -17
  92. package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js.map +1 -1
  93. package/dist/nodes/Google/YouTube/YouTube.node.js +4 -2
  94. package/dist/nodes/Google/YouTube/YouTube.node.js.map +1 -1
  95. package/dist/nodes/Interval/Interval.node.js +1 -1
  96. package/dist/nodes/Interval/Interval.node.js.map +1 -1
  97. package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +2 -2
  98. package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
  99. package/dist/nodes/MQTT/MqttTrigger.node.js +2 -2
  100. package/dist/nodes/MQTT/MqttTrigger.node.js.map +1 -1
  101. package/dist/nodes/ManualTrigger/ManualTrigger.node.js +1 -1
  102. package/dist/nodes/ManualTrigger/ManualTrigger.node.js.map +1 -1
  103. package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js +93 -0
  104. package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js.map +1 -0
  105. package/dist/nodes/Microsoft/SharePoint/MicrosoftSharepoint.node.json +18 -0
  106. package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js +190 -0
  107. package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js.map +1 -0
  108. package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js +108 -0
  109. package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js.map +1 -0
  110. package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js +62 -0
  111. package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js.map +1 -0
  112. package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js +129 -0
  113. package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js.map +1 -0
  114. package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js +77 -0
  115. package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js.map +1 -0
  116. package/dist/nodes/Microsoft/SharePoint/descriptions/index.js +45 -0
  117. package/dist/nodes/Microsoft/SharePoint/descriptions/index.js.map +1 -0
  118. package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js +175 -0
  119. package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js.map +1 -0
  120. package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js +100 -0
  121. package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js.map +1 -0
  122. package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js +62 -0
  123. package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js.map +1 -0
  124. package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js +83 -0
  125. package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js.map +1 -0
  126. package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js +203 -0
  127. package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js.map +1 -0
  128. package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js +100 -0
  129. package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js.map +1 -0
  130. package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js +100 -0
  131. package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js.map +1 -0
  132. package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js +99 -0
  133. package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js.map +1 -0
  134. package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js +65 -0
  135. package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js.map +1 -0
  136. package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js +105 -0
  137. package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js.map +1 -0
  138. package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js +17 -0
  139. package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js.map +1 -0
  140. package/dist/nodes/Microsoft/SharePoint/helpers/utils.js +252 -0
  141. package/dist/nodes/Microsoft/SharePoint/helpers/utils.js.map +1 -0
  142. package/dist/nodes/Microsoft/SharePoint/methods/index.js +42 -0
  143. package/dist/nodes/Microsoft/SharePoint/methods/index.js.map +1 -0
  144. package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js +222 -0
  145. package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js.map +1 -0
  146. package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js +104 -0
  147. package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js.map +1 -0
  148. package/dist/nodes/Microsoft/SharePoint/test/credentials.js +54 -0
  149. package/dist/nodes/Microsoft/SharePoint/test/credentials.js.map +1 -0
  150. package/dist/nodes/Microsoft/SharePoint/transport/index.js +46 -0
  151. package/dist/nodes/Microsoft/SharePoint/transport/index.js.map +1 -0
  152. package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js +387 -0
  153. package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js.map +1 -0
  154. package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.json +18 -0
  155. package/dist/nodes/Microsoft/Teams/v2/helpers/types.js +17 -0
  156. package/dist/nodes/Microsoft/Teams/v2/helpers/types.js.map +1 -0
  157. package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js +147 -0
  158. package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js.map +1 -0
  159. package/dist/nodes/Microsoft/Teams/v2/transport/index.js.map +1 -1
  160. package/dist/nodes/PostBin/BinDescription.js +1 -1
  161. package/dist/nodes/PostBin/BinDescription.js.map +1 -1
  162. package/dist/nodes/PostBin/GenericFunctions.js +5 -5
  163. package/dist/nodes/PostBin/GenericFunctions.js.map +1 -1
  164. package/dist/nodes/PostBin/PostBin.node.js +1 -1
  165. package/dist/nodes/PostBin/PostBin.node.js.map +1 -1
  166. package/dist/nodes/PostBin/RequestDescription.js +2 -2
  167. package/dist/nodes/PostBin/RequestDescription.js.map +1 -1
  168. package/dist/nodes/Postgres/PostgresTrigger.node.js +2 -2
  169. package/dist/nodes/Postgres/PostgresTrigger.node.js.map +1 -1
  170. package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js +2 -2
  171. package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js.map +1 -1
  172. package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js +8 -3
  173. package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js.map +1 -1
  174. package/dist/nodes/RespondToWebhook/utils.js +43 -0
  175. package/dist/nodes/RespondToWebhook/utils.js.map +1 -0
  176. package/dist/nodes/Schedule/ScheduleTrigger.node.js +1 -1
  177. package/dist/nodes/Schedule/ScheduleTrigger.node.js.map +1 -1
  178. package/dist/nodes/Snowflake/GenericFunctions.js +34 -2
  179. package/dist/nodes/Snowflake/GenericFunctions.js.map +1 -1
  180. package/dist/nodes/Snowflake/Snowflake.node.js +5 -7
  181. package/dist/nodes/Snowflake/Snowflake.node.js.map +1 -1
  182. package/dist/nodes/SseTrigger/SseTrigger.node.js +2 -2
  183. package/dist/nodes/SseTrigger/SseTrigger.node.js.map +1 -1
  184. package/dist/types/credentials.json +6 -6
  185. package/dist/types/nodes.json +22 -17
  186. package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +12 -2
  187. package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
  188. package/package.json +13 -9
  189. /package/dist/{credentials/icons/SharePoint.svg → nodes/Microsoft/SharePoint/microsoftSharePoint.svg} +0 -0
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var removeFromGroup_operation_exports = {};
20
+ __export(removeFromGroup_operation_exports, {
21
+ description: () => description
22
+ });
23
+ module.exports = __toCommonJS(removeFromGroup_operation_exports);
24
+ var import_n8n_workflow = require("n8n-workflow");
25
+ var import_common = require("../common");
26
+ const properties = [
27
+ {
28
+ ...import_common.userLocator,
29
+ description: "Select the user you want to remove from the group"
30
+ },
31
+ {
32
+ ...import_common.groupLocator,
33
+ description: "Select the group you want to remove the user from",
34
+ modes: [
35
+ {
36
+ displayName: "From list",
37
+ name: "list",
38
+ type: "list",
39
+ typeOptions: {
40
+ searchListMethod: "searchGroupsForUser",
41
+ searchable: true
42
+ }
43
+ },
44
+ {
45
+ displayName: "By Name",
46
+ name: "groupName",
47
+ type: "string",
48
+ hint: "Enter the group name",
49
+ validation: [
50
+ {
51
+ type: "regex",
52
+ properties: {
53
+ regex: "^[\\w+=,.@-]+$",
54
+ errorMessage: "The group name must follow the allowed pattern"
55
+ }
56
+ }
57
+ ],
58
+ placeholder: "e.g. Admins"
59
+ }
60
+ ]
61
+ }
62
+ ];
63
+ const displayOptions = {
64
+ show: {
65
+ resource: ["user"],
66
+ operation: ["removeFromGroup"]
67
+ }
68
+ };
69
+ const description = (0, import_n8n_workflow.updateDisplayOptions)(displayOptions, properties);
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ description
73
+ });
74
+ //# sourceMappingURL=removeFromGroup.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\nimport { updateDisplayOptions } from 'n8n-workflow';\n\nimport { groupLocator, userLocator } from '../common';\n\nconst properties: INodeProperties[] = [\n\t{\n\t\t...userLocator,\n\t\tdescription: 'Select the user you want to remove from the group',\n\t},\n\t{\n\t\t...groupLocator,\n\t\tdescription: 'Select the group you want to remove the user from',\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tdisplayName: 'From list',\n\t\t\t\tname: 'list',\n\t\t\t\ttype: 'list',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tsearchListMethod: 'searchGroupsForUser',\n\t\t\t\t\tsearchable: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'By Name',\n\t\t\t\tname: 'groupName',\n\t\t\t\ttype: 'string',\n\t\t\t\thint: 'Enter the group name',\n\t\t\t\tvalidation: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tregex: '^[\\\\w+=,.@-]+$',\n\t\t\t\t\t\t\terrorMessage: 'The group name must follow the allowed pattern',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tplaceholder: 'e.g. Admins',\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst displayOptions = {\n\tshow: {\n\t\tresource: ['user'],\n\t\toperation: ['removeFromGroup'],\n\t},\n};\n\nexport const description = updateDisplayOptions(displayOptions, properties);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAqC;AAErC,oBAA0C;AAE1C,MAAM,aAAgC;AAAA,EACrC;AAAA,IACC,GAAG;AAAA,IACH,aAAa;AAAA,EACd;AAAA,EACA;AAAA,IACC,GAAG;AAAA,IACH,aAAa;AAAA,IACb,OAAO;AAAA,MACN;AAAA,QACC,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,UACZ,kBAAkB;AAAA,UAClB,YAAY;AAAA,QACb;AAAA,MACD;AAAA,MACA;AAAA,QACC,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,UACX;AAAA,YACC,MAAM;AAAA,YACN,YAAY;AAAA,cACX,OAAO;AAAA,cACP,cAAc;AAAA,YACf;AAAA,UACD;AAAA,QACD;AAAA,QACA,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AACD;AAEA,MAAM,iBAAiB;AAAA,EACtB,MAAM;AAAA,IACL,UAAU,CAAC,MAAM;AAAA,IACjB,WAAW,CAAC,iBAAiB;AAAA,EAC9B;AACD;AAEO,MAAM,kBAAc,0CAAqB,gBAAgB,UAAU;","names":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var update_operation_exports = {};
20
+ __export(update_operation_exports, {
21
+ description: () => description
22
+ });
23
+ module.exports = __toCommonJS(update_operation_exports);
24
+ var import_n8n_workflow = require("n8n-workflow");
25
+ var import_utils = require("../../helpers/utils");
26
+ var import_common = require("../common");
27
+ const properties = [
28
+ {
29
+ ...import_common.userLocator,
30
+ description: "Select the user you want to update"
31
+ },
32
+ {
33
+ ...import_common.userNameParameter,
34
+ description: "The new name of the user"
35
+ },
36
+ {
37
+ displayName: "Additional Fields",
38
+ name: "additionalFields",
39
+ type: "collection",
40
+ placeholder: "Add Option",
41
+ default: {},
42
+ options: [
43
+ {
44
+ ...import_common.pathParameter,
45
+ placeholder: "e.g. /division_abc/subdivision_xyz/",
46
+ routing: {
47
+ send: {
48
+ preSend: [import_utils.validatePath],
49
+ property: "NewPath",
50
+ type: "query"
51
+ }
52
+ }
53
+ }
54
+ ]
55
+ }
56
+ ];
57
+ const displayOptions = {
58
+ show: {
59
+ resource: ["user"],
60
+ operation: ["update"]
61
+ }
62
+ };
63
+ const description = (0, import_n8n_workflow.updateDisplayOptions)(displayOptions, properties);
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ description
67
+ });
68
+ //# sourceMappingURL=update.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../nodes/Aws/IAM/descriptions/user/update.operation.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\nimport { updateDisplayOptions } from 'n8n-workflow';\n\nimport { validatePath } from '../../helpers/utils';\nimport { pathParameter, userLocator, userNameParameter } from '../common';\n\nconst properties: INodeProperties[] = [\n\t{\n\t\t...userLocator,\n\t\tdescription: 'Select the user you want to update',\n\t},\n\t{\n\t\t...userNameParameter,\n\t\tdescription: 'The new name of the user',\n\t},\n\t{\n\t\tdisplayName: 'Additional Fields',\n\t\tname: 'additionalFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Option',\n\t\tdefault: {},\n\t\toptions: [\n\t\t\t{\n\t\t\t\t...pathParameter,\n\t\t\t\tplaceholder: 'e.g. /division_abc/subdivision_xyz/',\n\t\t\t\trouting: {\n\t\t\t\t\tsend: {\n\t\t\t\t\t\tpreSend: [validatePath],\n\t\t\t\t\t\tproperty: 'NewPath',\n\t\t\t\t\t\ttype: 'query',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst displayOptions = {\n\tshow: {\n\t\tresource: ['user'],\n\t\toperation: ['update'],\n\t},\n};\n\nexport const description = updateDisplayOptions(displayOptions, properties);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAqC;AAErC,mBAA6B;AAC7B,oBAA8D;AAE9D,MAAM,aAAgC;AAAA,EACrC;AAAA,IACC,GAAG;AAAA,IACH,aAAa;AAAA,EACd;AAAA,EACA;AAAA,IACC,GAAG;AAAA,IACH,aAAa;AAAA,EACd;AAAA,EACA;AAAA,IACC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,IACV,SAAS;AAAA,MACR;AAAA,QACC,GAAG;AAAA,QACH,aAAa;AAAA,QACb,SAAS;AAAA,UACR,MAAM;AAAA,YACL,SAAS,CAAC,yBAAY;AAAA,YACtB,UAAU;AAAA,YACV,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,MAAM,iBAAiB;AAAA,EACtB,MAAM;AAAA,IACL,UAAU,CAAC,MAAM;AAAA,IACjB,WAAW,CAAC,QAAQ;AAAA,EACrB;AACD;AAEO,MAAM,kBAAc,0CAAqB,gBAAgB,UAAU;","names":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var constants_exports = {};
20
+ __export(constants_exports, {
21
+ BASE_URL: () => BASE_URL,
22
+ CURRENT_VERSION: () => CURRENT_VERSION,
23
+ ERROR_DESCRIPTIONS: () => ERROR_DESCRIPTIONS
24
+ });
25
+ module.exports = __toCommonJS(constants_exports);
26
+ const CURRENT_VERSION = "2010-05-08";
27
+ const BASE_URL = "https://iam.amazonaws.com";
28
+ const ERROR_DESCRIPTIONS = {
29
+ EntityAlreadyExists: {
30
+ User: "The given user name already exists - try entering a unique name for the user.",
31
+ Group: "The given group name already exists - try entering a unique name for the group."
32
+ },
33
+ NoSuchEntity: {
34
+ User: "The given user was not found - try entering a different user.",
35
+ Group: "The given group was not found - try entering a different group."
36
+ },
37
+ DeleteConflict: {
38
+ Default: "Cannot delete entity, please remove users from group first."
39
+ }
40
+ };
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ BASE_URL,
44
+ CURRENT_VERSION,
45
+ ERROR_DESCRIPTIONS
46
+ });
47
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../nodes/Aws/IAM/helpers/constants.ts"],"sourcesContent":["export const CURRENT_VERSION = '2010-05-08';\nexport const BASE_URL = 'https://iam.amazonaws.com';\nexport const ERROR_DESCRIPTIONS = {\n\tEntityAlreadyExists: {\n\t\tUser: 'The given user name already exists - try entering a unique name for the user.',\n\t\tGroup: 'The given group name already exists - try entering a unique name for the group.',\n\t},\n\tNoSuchEntity: {\n\t\tUser: 'The given user was not found - try entering a different user.',\n\t\tGroup: 'The given group was not found - try entering a different group.',\n\t},\n\tDeleteConflict: {\n\t\tDefault: 'Cannot delete entity, please remove users from group first.',\n\t},\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,kBAAkB;AACxB,MAAM,WAAW;AACjB,MAAM,qBAAqB;AAAA,EACjC,qBAAqB;AAAA,IACpB,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,cAAc;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,gBAAgB;AAAA,IACf,SAAS;AAAA,EACV;AACD;","names":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var errorHandler_exports = {};
20
+ __export(errorHandler_exports, {
21
+ handleError: () => handleError
22
+ });
23
+ module.exports = __toCommonJS(errorHandler_exports);
24
+ var import_n8n_workflow = require("n8n-workflow");
25
+ var import_constants = require("./constants");
26
+ function mapErrorToResponse(errorCode, errorMessage) {
27
+ const isUser = /user/i.test(errorMessage);
28
+ const isGroup = /group/i.test(errorMessage);
29
+ switch (errorCode) {
30
+ case "EntityAlreadyExists":
31
+ if (isUser) {
32
+ return {
33
+ message: errorMessage,
34
+ description: import_constants.ERROR_DESCRIPTIONS.EntityAlreadyExists.User
35
+ };
36
+ }
37
+ if (isGroup) {
38
+ return {
39
+ message: errorMessage,
40
+ description: import_constants.ERROR_DESCRIPTIONS.EntityAlreadyExists.Group
41
+ };
42
+ }
43
+ break;
44
+ case "NoSuchEntity":
45
+ if (isUser) {
46
+ return {
47
+ message: errorMessage,
48
+ description: import_constants.ERROR_DESCRIPTIONS.NoSuchEntity.User
49
+ };
50
+ }
51
+ if (isGroup) {
52
+ return {
53
+ message: errorMessage,
54
+ description: import_constants.ERROR_DESCRIPTIONS.NoSuchEntity.Group
55
+ };
56
+ }
57
+ break;
58
+ case "DeleteConflict":
59
+ return {
60
+ message: errorMessage,
61
+ description: import_constants.ERROR_DESCRIPTIONS.DeleteConflict.Default
62
+ };
63
+ }
64
+ return void 0;
65
+ }
66
+ async function handleError(data, response) {
67
+ const statusCode = String(response.statusCode);
68
+ if (!statusCode.startsWith("4") && !statusCode.startsWith("5")) {
69
+ return data;
70
+ }
71
+ const responseBody = response.body;
72
+ const error = responseBody.Error;
73
+ if (!error) {
74
+ throw new import_n8n_workflow.NodeApiError(this.getNode(), response);
75
+ }
76
+ const specificError = mapErrorToResponse(error.Code, error.Message);
77
+ if (specificError) {
78
+ throw new import_n8n_workflow.NodeApiError(this.getNode(), response, specificError);
79
+ } else {
80
+ throw new import_n8n_workflow.NodeApiError(this.getNode(), response, {
81
+ message: error.Code,
82
+ description: error.Message
83
+ });
84
+ }
85
+ }
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ handleError
89
+ });
90
+ //# sourceMappingURL=errorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../nodes/Aws/IAM/helpers/errorHandler.ts"],"sourcesContent":["import type {\n\tJsonObject,\n\tIDataObject,\n\tIExecuteSingleFunctions,\n\tIN8nHttpFullResponse,\n\tINodeExecutionData,\n} from 'n8n-workflow';\nimport { NodeApiError } from 'n8n-workflow';\n\nimport { ERROR_DESCRIPTIONS } from './constants';\nimport type { AwsError, ErrorMessage } from './types';\n\nfunction mapErrorToResponse(errorCode: string, errorMessage: string): ErrorMessage | undefined {\n\tconst isUser = /user/i.test(errorMessage);\n\tconst isGroup = /group/i.test(errorMessage);\n\n\tswitch (errorCode) {\n\t\tcase 'EntityAlreadyExists':\n\t\t\tif (isUser) {\n\t\t\t\treturn {\n\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\tdescription: ERROR_DESCRIPTIONS.EntityAlreadyExists.User,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (isGroup) {\n\t\t\t\treturn {\n\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\tdescription: ERROR_DESCRIPTIONS.EntityAlreadyExists.Group,\n\t\t\t\t};\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'NoSuchEntity':\n\t\t\tif (isUser) {\n\t\t\t\treturn {\n\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\tdescription: ERROR_DESCRIPTIONS.NoSuchEntity.User,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (isGroup) {\n\t\t\t\treturn {\n\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\tdescription: ERROR_DESCRIPTIONS.NoSuchEntity.Group,\n\t\t\t\t};\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'DeleteConflict':\n\t\t\treturn {\n\t\t\t\tmessage: errorMessage,\n\t\t\t\tdescription: ERROR_DESCRIPTIONS.DeleteConflict.Default,\n\t\t\t};\n\t}\n\n\treturn undefined;\n}\n\nexport async function handleError(\n\tthis: IExecuteSingleFunctions,\n\tdata: INodeExecutionData[],\n\tresponse: IN8nHttpFullResponse,\n): Promise<INodeExecutionData[]> {\n\tconst statusCode = String(response.statusCode);\n\n\tif (!statusCode.startsWith('4') && !statusCode.startsWith('5')) {\n\t\treturn data;\n\t}\n\n\tconst responseBody = response.body as IDataObject;\n\tconst error = responseBody.Error as AwsError;\n\n\tif (!error) {\n\t\tthrow new NodeApiError(this.getNode(), response as unknown as JsonObject);\n\t}\n\n\tconst specificError = mapErrorToResponse(error.Code, error.Message);\n\n\tif (specificError) {\n\t\tthrow new NodeApiError(this.getNode(), response as unknown as JsonObject, specificError);\n\t} else {\n\t\tthrow new NodeApiError(this.getNode(), response as unknown as JsonObject, {\n\t\t\tmessage: error.Code,\n\t\t\tdescription: error.Message,\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,0BAA6B;AAE7B,uBAAmC;AAGnC,SAAS,mBAAmB,WAAmB,cAAgD;AAC9F,QAAM,SAAS,QAAQ,KAAK,YAAY;AACxC,QAAM,UAAU,SAAS,KAAK,YAAY;AAE1C,UAAQ,WAAW;AAAA,IAClB,KAAK;AACJ,UAAI,QAAQ;AACX,eAAO;AAAA,UACN,SAAS;AAAA,UACT,aAAa,oCAAmB,oBAAoB;AAAA,QACrD;AAAA,MACD;AACA,UAAI,SAAS;AACZ,eAAO;AAAA,UACN,SAAS;AAAA,UACT,aAAa,oCAAmB,oBAAoB;AAAA,QACrD;AAAA,MACD;AACA;AAAA,IAED,KAAK;AACJ,UAAI,QAAQ;AACX,eAAO;AAAA,UACN,SAAS;AAAA,UACT,aAAa,oCAAmB,aAAa;AAAA,QAC9C;AAAA,MACD;AACA,UAAI,SAAS;AACZ,eAAO;AAAA,UACN,SAAS;AAAA,UACT,aAAa,oCAAmB,aAAa;AAAA,QAC9C;AAAA,MACD;AACA;AAAA,IAED,KAAK;AACJ,aAAO;AAAA,QACN,SAAS;AAAA,QACT,aAAa,oCAAmB,eAAe;AAAA,MAChD;AAAA,EACF;AAEA,SAAO;AACR;AAEA,eAAsB,YAErB,MACA,UACgC;AAChC,QAAM,aAAa,OAAO,SAAS,UAAU;AAE7C,MAAI,CAAC,WAAW,WAAW,GAAG,KAAK,CAAC,WAAW,WAAW,GAAG,GAAG;AAC/D,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,SAAS;AAC9B,QAAM,QAAQ,aAAa;AAE3B,MAAI,CAAC,OAAO;AACX,UAAM,IAAI,iCAAa,KAAK,QAAQ,GAAG,QAAiC;AAAA,EACzE;AAEA,QAAM,gBAAgB,mBAAmB,MAAM,MAAM,MAAM,OAAO;AAElE,MAAI,eAAe;AAClB,UAAM,IAAI,iCAAa,KAAK,QAAQ,GAAG,UAAmC,aAAa;AAAA,EACxF,OAAO;AACN,UAAM,IAAI,iCAAa,KAAK,QAAQ,GAAG,UAAmC;AAAA,MACzE,SAAS,MAAM;AAAA,MACf,aAAa,MAAM;AAAA,IACpB,CAAC;AAAA,EACF;AACD;","names":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../nodes/Aws/IAM/helpers/types.ts"],"sourcesContent":["export type Group = {\n\tArn: string;\n\tCreateDate: number;\n\tGroupId: string;\n\tGroupName: string;\n\tPath?: string;\n};\n\nexport type User = {\n\tArn: string;\n\tCreateDate: number;\n\tPasswordLastUsed?: number;\n\tPath?: string;\n\tPermissionsBoundary?: string;\n\tTags: Array<{ Key: string; Value: string }>;\n\tUserId: string;\n\tUserName: string;\n};\n\nexport type Tags = {\n\ttags: Array<{ key: string; value: string }>;\n};\n\nexport type GetUserResponseBody = {\n\tGetUserResponse: {\n\t\tGetUserResult: {\n\t\t\tUser: User;\n\t\t};\n\t};\n};\n\nexport type GetGroupResponseBody = {\n\tGetGroupResponse: {\n\t\tGetGroupResult: {\n\t\t\tGroup: Group;\n\t\t\tUsers?: User[];\n\t\t};\n\t};\n};\n\nexport type GetAllUsersResponseBody = {\n\tListUsersResponse: {\n\t\tListUsersResult: {\n\t\t\tUsers: User[];\n\t\t\tIsTruncated: boolean;\n\t\t\tMarker: string;\n\t\t};\n\t};\n};\n\nexport type GetAllGroupsResponseBody = {\n\tListGroupsResponse: {\n\t\tListGroupsResult: {\n\t\t\tGroups: Group[];\n\t\t\tIsTruncated: boolean;\n\t\t\tMarker: string;\n\t\t};\n\t};\n};\n\nexport type AwsError = {\n\tCode: string;\n\tMessage: string;\n};\n\nexport type ErrorResponse = {\n\tError: {\n\t\tCode: string;\n\t\tMessage: string;\n\t};\n};\n\nexport type ErrorMessage = {\n\tmessage: string;\n\tdescription: string;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var utils_exports = {};
20
+ __export(utils_exports, {
21
+ deleteGroupMembers: () => deleteGroupMembers,
22
+ encodeBodyAsFormUrlEncoded: () => encodeBodyAsFormUrlEncoded,
23
+ findUsersForGroup: () => findUsersForGroup,
24
+ preprocessTags: () => preprocessTags,
25
+ removeUserFromGroups: () => removeUserFromGroups,
26
+ simplifyGetAllGroupsResponse: () => simplifyGetAllGroupsResponse,
27
+ simplifyGetAllUsersResponse: () => simplifyGetAllUsersResponse,
28
+ simplifyGetGroupsResponse: () => simplifyGetGroupsResponse,
29
+ validateName: () => validateName,
30
+ validatePath: () => validatePath,
31
+ validatePermissionsBoundary: () => validatePermissionsBoundary,
32
+ validateUserPath: () => validateUserPath
33
+ });
34
+ module.exports = __toCommonJS(utils_exports);
35
+ var import_n8n_workflow = require("n8n-workflow");
36
+ var import_constants = require("./constants");
37
+ var import_listSearch = require("../methods/listSearch");
38
+ var import_transport = require("../transport");
39
+ async function encodeBodyAsFormUrlEncoded(requestOptions) {
40
+ if (requestOptions.body) {
41
+ requestOptions.body = new URLSearchParams(
42
+ requestOptions.body
43
+ ).toString();
44
+ }
45
+ return requestOptions;
46
+ }
47
+ async function findUsersForGroup(groupName) {
48
+ const options = {
49
+ method: "POST",
50
+ url: "",
51
+ body: new URLSearchParams({
52
+ Action: "GetGroup",
53
+ Version: import_constants.CURRENT_VERSION,
54
+ GroupName: groupName
55
+ }).toString()
56
+ };
57
+ const responseData = await import_transport.awsApiRequest.call(this, options);
58
+ return responseData?.GetGroupResponse?.GetGroupResult?.Users ?? [];
59
+ }
60
+ async function simplifyGetGroupsResponse(_, response) {
61
+ const includeUsers = this.getNodeParameter("includeUsers", false);
62
+ const responseBody = response.body;
63
+ const groupData = responseBody.GetGroupResponse.GetGroupResult;
64
+ const group = groupData.Group;
65
+ return [
66
+ { json: includeUsers ? { ...group, Users: groupData.Users ?? [] } : group }
67
+ ];
68
+ }
69
+ async function simplifyGetAllGroupsResponse(items, response) {
70
+ const includeUsers = this.getNodeParameter("includeUsers", false);
71
+ const responseBody = response.body;
72
+ const groups = responseBody.ListGroupsResponse.ListGroupsResult.Groups ?? [];
73
+ if (groups.length === 0) {
74
+ return items;
75
+ }
76
+ if (!includeUsers) {
77
+ return this.helpers.returnJsonArray(groups);
78
+ }
79
+ const processedItems = [];
80
+ for (const group of groups) {
81
+ const users = await findUsersForGroup.call(this, group.GroupName);
82
+ processedItems.push({ ...group, Users: users });
83
+ }
84
+ return this.helpers.returnJsonArray(processedItems);
85
+ }
86
+ async function simplifyGetAllUsersResponse(_items, response) {
87
+ if (!response.body) {
88
+ return [];
89
+ }
90
+ const responseBody = response.body;
91
+ const users = responseBody?.ListUsersResponse?.ListUsersResult?.Users ?? [];
92
+ return this.helpers.returnJsonArray(users);
93
+ }
94
+ async function deleteGroupMembers(requestOptions) {
95
+ const groupName = this.getNodeParameter("group", void 0, { extractValue: true });
96
+ const users = await findUsersForGroup.call(this, groupName);
97
+ if (!users.length) {
98
+ return requestOptions;
99
+ }
100
+ await Promise.all(
101
+ users.map(async (user) => {
102
+ const userName = user.UserName;
103
+ if (!user.UserName) {
104
+ return;
105
+ }
106
+ try {
107
+ await import_transport.awsApiRequest.call(this, {
108
+ method: "POST",
109
+ url: "",
110
+ body: {
111
+ Action: "RemoveUserFromGroup",
112
+ GroupName: groupName,
113
+ UserName: userName,
114
+ Version: import_constants.CURRENT_VERSION
115
+ },
116
+ ignoreHttpStatusErrors: true
117
+ });
118
+ } catch (error) {
119
+ throw new import_n8n_workflow.NodeApiError(this.getNode(), error, {
120
+ message: `Failed to remove user "${userName}" from "${groupName}"!`
121
+ });
122
+ }
123
+ })
124
+ );
125
+ return requestOptions;
126
+ }
127
+ async function validatePath(requestOptions) {
128
+ const path = this.getNodeParameter("additionalFields.path");
129
+ if (path.length < 1 || path.length > 512) {
130
+ throw new import_n8n_workflow.NodeOperationError(
131
+ this.getNode(),
132
+ 'The "Path" parameter must be between 1 and 512 characters long.'
133
+ );
134
+ }
135
+ const validPathRegex = /^\/[\u0021-\u007E]*\/$/;
136
+ if (!validPathRegex.test(path) && path !== "/") {
137
+ throw new import_n8n_workflow.NodeOperationError(
138
+ this.getNode(),
139
+ "Ensure the path is structured correctly, e.g. /division_abc/subdivision_xyz/"
140
+ );
141
+ }
142
+ return requestOptions;
143
+ }
144
+ async function validateUserPath(requestOptions) {
145
+ const prefix = this.getNodeParameter("additionalFields.pathPrefix");
146
+ let formattedPrefix = prefix;
147
+ if (!formattedPrefix.startsWith("/")) {
148
+ formattedPrefix = "/" + formattedPrefix;
149
+ }
150
+ if (!formattedPrefix.endsWith("/") && formattedPrefix !== "/") {
151
+ formattedPrefix = formattedPrefix + "/";
152
+ }
153
+ if (requestOptions.body && typeof requestOptions.body === "object") {
154
+ Object.assign(requestOptions.body, { PathPrefix: formattedPrefix });
155
+ }
156
+ const options = {
157
+ method: "POST",
158
+ url: "",
159
+ body: {
160
+ Action: "ListUsers",
161
+ Version: import_constants.CURRENT_VERSION
162
+ }
163
+ };
164
+ const responseData = await import_transport.awsApiRequest.call(this, options);
165
+ const users = responseData.ListUsersResponse.ListUsersResult.Users;
166
+ if (!users || users.length === 0) {
167
+ throw new import_n8n_workflow.NodeOperationError(
168
+ this.getNode(),
169
+ 'No users found. Please adjust the "Path" parameter and try again.'
170
+ );
171
+ }
172
+ const userPaths = users.map((user) => user.Path).filter(Boolean);
173
+ const isPathValid = userPaths.some((path) => path?.startsWith(formattedPrefix));
174
+ if (!isPathValid) {
175
+ throw new import_n8n_workflow.NodeOperationError(
176
+ this.getNode(),
177
+ `The "${formattedPrefix}" path was not found in your users. Try entering a different path.`
178
+ );
179
+ }
180
+ return requestOptions;
181
+ }
182
+ async function validateName(requestOptions) {
183
+ const resource = this.getNodeParameter("resource");
184
+ const nameParam = resource === "user" ? "userName" : "groupName";
185
+ const name = this.getNodeParameter(nameParam);
186
+ const maxLength = resource === "user" ? 64 : 128;
187
+ const capitalizedResource = resource.replace(/^./, (c) => c.toUpperCase());
188
+ const validNamePattern = /^[a-zA-Z0-9-_]+$/;
189
+ const isInvalid = !validNamePattern.test(name) || name.length > maxLength;
190
+ if (/\s/.test(name)) {
191
+ throw new import_n8n_workflow.NodeOperationError(
192
+ this.getNode(),
193
+ `${capitalizedResource} name should not contain spaces.`
194
+ );
195
+ }
196
+ if (isInvalid) {
197
+ throw new import_n8n_workflow.NodeOperationError(
198
+ this.getNode(),
199
+ `${capitalizedResource} name can have up to ${maxLength} characters. Valid characters: letters, numbers, hyphens (-), and underscores (_).`
200
+ );
201
+ }
202
+ return requestOptions;
203
+ }
204
+ async function validatePermissionsBoundary(requestOptions) {
205
+ const permissionsBoundary = this.getNodeParameter(
206
+ "additionalFields.permissionsBoundary"
207
+ );
208
+ if (permissionsBoundary) {
209
+ const arnPattern = /^arn:aws:iam::\d{12}:policy\/[\w\-+\/=._]+$/;
210
+ if (!arnPattern.test(permissionsBoundary)) {
211
+ throw new import_n8n_workflow.NodeOperationError(
212
+ this.getNode(),
213
+ "Permissions boundaries must be provided in ARN format (e.g. arn:aws:iam::123456789012:policy/ExampleBoundaryPolicy). These can be found at the top of the permissions boundary detail page in the IAM dashboard."
214
+ );
215
+ }
216
+ if (requestOptions.body) {
217
+ Object.assign(requestOptions.body, { PermissionsBoundary: permissionsBoundary });
218
+ } else {
219
+ requestOptions.body = {
220
+ PermissionsBoundary: permissionsBoundary
221
+ };
222
+ }
223
+ }
224
+ return requestOptions;
225
+ }
226
+ async function preprocessTags(requestOptions) {
227
+ const tagsData = this.getNodeParameter("additionalFields.tags");
228
+ const tags = tagsData?.tags || [];
229
+ let bodyObj = {};
230
+ if (typeof requestOptions.body === "string") {
231
+ const params = new URLSearchParams(requestOptions.body);
232
+ bodyObj = Object.fromEntries(params.entries());
233
+ }
234
+ tags.forEach((tag, index) => {
235
+ if (!tag.key || !tag.value) {
236
+ throw new import_n8n_workflow.NodeOperationError(
237
+ this.getNode(),
238
+ `Tag at position ${index + 1} is missing '${!tag.key ? "Key" : "Value"}'. Both 'Key' and 'Value' are required.`
239
+ );
240
+ }
241
+ bodyObj[`Tags.member.${index + 1}.Key`] = tag.key;
242
+ bodyObj[`Tags.member.${index + 1}.Value`] = tag.value;
243
+ });
244
+ requestOptions.body = new URLSearchParams(bodyObj).toString();
245
+ return requestOptions;
246
+ }
247
+ async function removeUserFromGroups(requestOptions) {
248
+ const userName = this.getNodeParameter("user", void 0, { extractValue: true });
249
+ const userGroups = await import_listSearch.searchGroupsForUser.call(this);
250
+ for (const group of userGroups.results) {
251
+ await import_transport.awsApiRequest.call(this, {
252
+ method: "POST",
253
+ url: "",
254
+ body: {
255
+ Action: "RemoveUserFromGroup",
256
+ Version: import_constants.CURRENT_VERSION,
257
+ GroupName: group.value,
258
+ UserName: userName
259
+ }
260
+ });
261
+ }
262
+ return requestOptions;
263
+ }
264
+ // Annotate the CommonJS export names for ESM import in node:
265
+ 0 && (module.exports = {
266
+ deleteGroupMembers,
267
+ encodeBodyAsFormUrlEncoded,
268
+ findUsersForGroup,
269
+ preprocessTags,
270
+ removeUserFromGroups,
271
+ simplifyGetAllGroupsResponse,
272
+ simplifyGetAllUsersResponse,
273
+ simplifyGetGroupsResponse,
274
+ validateName,
275
+ validatePath,
276
+ validatePermissionsBoundary,
277
+ validateUserPath
278
+ });
279
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../nodes/Aws/IAM/helpers/utils.ts"],"sourcesContent":["import type {\n\tIHttpRequestOptions,\n\tIDataObject,\n\tIExecuteSingleFunctions,\n\tIN8nHttpFullResponse,\n\tINodeExecutionData,\n\tJsonObject,\n} from 'n8n-workflow';\nimport { NodeApiError, NodeOperationError } from 'n8n-workflow';\n\nimport { CURRENT_VERSION } from './constants';\nimport type {\n\tGetAllGroupsResponseBody,\n\tGetAllUsersResponseBody,\n\tGetGroupResponseBody,\n\tTags,\n} from './types';\nimport { searchGroupsForUser } from '../methods/listSearch';\nimport { awsApiRequest } from '../transport';\n\nexport async function encodeBodyAsFormUrlEncoded(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tif (requestOptions.body) {\n\t\trequestOptions.body = new URLSearchParams(\n\t\t\trequestOptions.body as Record<string, string>,\n\t\t).toString();\n\t}\n\treturn requestOptions;\n}\n\nexport async function findUsersForGroup(\n\tthis: IExecuteSingleFunctions,\n\tgroupName: string,\n): Promise<IDataObject[]> {\n\tconst options: IHttpRequestOptions = {\n\t\tmethod: 'POST',\n\t\turl: '',\n\t\tbody: new URLSearchParams({\n\t\t\tAction: 'GetGroup',\n\t\t\tVersion: CURRENT_VERSION,\n\t\t\tGroupName: groupName,\n\t\t}).toString(),\n\t};\n\tconst responseData = (await awsApiRequest.call(this, options)) as GetGroupResponseBody;\n\treturn responseData?.GetGroupResponse?.GetGroupResult?.Users ?? [];\n}\n\nexport async function simplifyGetGroupsResponse(\n\tthis: IExecuteSingleFunctions,\n\t_: INodeExecutionData[],\n\tresponse: IN8nHttpFullResponse,\n): Promise<INodeExecutionData[]> {\n\tconst includeUsers = this.getNodeParameter('includeUsers', false);\n\tconst responseBody = response.body as GetGroupResponseBody;\n\tconst groupData = responseBody.GetGroupResponse.GetGroupResult;\n\tconst group = groupData.Group;\n\treturn [\n\t\t{ json: includeUsers ? { ...group, Users: groupData.Users ?? [] } : group },\n\t] as INodeExecutionData[];\n}\n\nexport async function simplifyGetAllGroupsResponse(\n\tthis: IExecuteSingleFunctions,\n\titems: INodeExecutionData[],\n\tresponse: IN8nHttpFullResponse,\n): Promise<INodeExecutionData[]> {\n\tconst includeUsers = this.getNodeParameter('includeUsers', false);\n\tconst responseBody = response.body as GetAllGroupsResponseBody;\n\tconst groups = responseBody.ListGroupsResponse.ListGroupsResult.Groups ?? [];\n\n\tif (groups.length === 0) {\n\t\treturn items;\n\t}\n\n\tif (!includeUsers) {\n\t\treturn this.helpers.returnJsonArray(groups);\n\t}\n\n\tconst processedItems: IDataObject[] = [];\n\tfor (const group of groups) {\n\t\tconst users = await findUsersForGroup.call(this, group.GroupName);\n\t\tprocessedItems.push({ ...group, Users: users });\n\t}\n\treturn this.helpers.returnJsonArray(processedItems);\n}\n\nexport async function simplifyGetAllUsersResponse(\n\tthis: IExecuteSingleFunctions,\n\t_items: INodeExecutionData[],\n\tresponse: IN8nHttpFullResponse,\n): Promise<INodeExecutionData[]> {\n\tif (!response.body) {\n\t\treturn [];\n\t}\n\tconst responseBody = response.body as GetAllUsersResponseBody;\n\tconst users = responseBody?.ListUsersResponse?.ListUsersResult?.Users ?? [];\n\treturn this.helpers.returnJsonArray(users);\n}\n\nexport async function deleteGroupMembers(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst groupName = this.getNodeParameter('group', undefined, { extractValue: true }) as string;\n\n\tconst users = await findUsersForGroup.call(this, groupName);\n\tif (!users.length) {\n\t\treturn requestOptions;\n\t}\n\n\tawait Promise.all(\n\t\tusers.map(async (user) => {\n\t\t\tconst userName = user.UserName as string;\n\t\t\tif (!user.UserName) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait awsApiRequest.call(this, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\turl: '',\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tAction: 'RemoveUserFromGroup',\n\t\t\t\t\t\tGroupName: groupName,\n\t\t\t\t\t\tUserName: userName,\n\t\t\t\t\t\tVersion: CURRENT_VERSION,\n\t\t\t\t\t},\n\t\t\t\t\tignoreHttpStatusErrors: true,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tthrow new NodeApiError(this.getNode(), error as JsonObject, {\n\t\t\t\t\tmessage: `Failed to remove user \"${userName}\" from \"${groupName}\"!`,\n\t\t\t\t});\n\t\t\t}\n\t\t}),\n\t);\n\n\treturn requestOptions;\n}\n\nexport async function validatePath(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst path = this.getNodeParameter('additionalFields.path') as string;\n\tif (path.length < 1 || path.length > 512) {\n\t\tthrow new NodeOperationError(\n\t\t\tthis.getNode(),\n\t\t\t'The \"Path\" parameter must be between 1 and 512 characters long.',\n\t\t);\n\t}\n\n\tconst validPathRegex = /^\\/[\\u0021-\\u007E]*\\/$/;\n\tif (!validPathRegex.test(path) && path !== '/') {\n\t\tthrow new NodeOperationError(\n\t\t\tthis.getNode(),\n\t\t\t'Ensure the path is structured correctly, e.g. /division_abc/subdivision_xyz/',\n\t\t);\n\t}\n\n\treturn requestOptions;\n}\n\nexport async function validateUserPath(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst prefix = this.getNodeParameter('additionalFields.pathPrefix') as string;\n\n\tlet formattedPrefix = prefix;\n\tif (!formattedPrefix.startsWith('/')) {\n\t\tformattedPrefix = '/' + formattedPrefix;\n\t}\n\tif (!formattedPrefix.endsWith('/') && formattedPrefix !== '/') {\n\t\tformattedPrefix = formattedPrefix + '/';\n\t}\n\n\tif (requestOptions.body && typeof requestOptions.body === 'object') {\n\t\tObject.assign(requestOptions.body, { PathPrefix: formattedPrefix });\n\t}\n\n\tconst options: IHttpRequestOptions = {\n\t\tmethod: 'POST',\n\t\turl: '',\n\t\tbody: {\n\t\t\tAction: 'ListUsers',\n\t\t\tVersion: CURRENT_VERSION,\n\t\t},\n\t};\n\tconst responseData = (await awsApiRequest.call(this, options)) as GetAllUsersResponseBody;\n\n\tconst users = responseData.ListUsersResponse.ListUsersResult.Users;\n\tif (!users || users.length === 0) {\n\t\tthrow new NodeOperationError(\n\t\t\tthis.getNode(),\n\t\t\t'No users found. Please adjust the \"Path\" parameter and try again.',\n\t\t);\n\t}\n\n\tconst userPaths = users.map((user) => user.Path).filter(Boolean);\n\tconst isPathValid = userPaths.some((path) => path?.startsWith(formattedPrefix));\n\tif (!isPathValid) {\n\t\tthrow new NodeOperationError(\n\t\t\tthis.getNode(),\n\t\t\t`The \"${formattedPrefix}\" path was not found in your users. Try entering a different path.`,\n\t\t);\n\t}\n\treturn requestOptions;\n}\n\nexport async function validateName(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst resource = this.getNodeParameter('resource') as string;\n\tconst nameParam = resource === 'user' ? 'userName' : 'groupName';\n\tconst name = this.getNodeParameter(nameParam) as string;\n\n\tconst maxLength = resource === 'user' ? 64 : 128;\n\tconst capitalizedResource = resource.replace(/^./, (c) => c.toUpperCase());\n\tconst validNamePattern = /^[a-zA-Z0-9-_]+$/;\n\n\tconst isInvalid = !validNamePattern.test(name) || name.length > maxLength;\n\n\tif (/\\s/.test(name)) {\n\t\tthrow new NodeOperationError(\n\t\t\tthis.getNode(),\n\t\t\t`${capitalizedResource} name should not contain spaces.`,\n\t\t);\n\t}\n\n\tif (isInvalid) {\n\t\tthrow new NodeOperationError(\n\t\t\tthis.getNode(),\n\t\t\t`${capitalizedResource} name can have up to ${maxLength} characters. Valid characters: letters, numbers, hyphens (-), and underscores (_).`,\n\t\t);\n\t}\n\n\treturn requestOptions;\n}\n\nexport async function validatePermissionsBoundary(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst permissionsBoundary = this.getNodeParameter(\n\t\t'additionalFields.permissionsBoundary',\n\t) as string;\n\n\tif (permissionsBoundary) {\n\t\tconst arnPattern = /^arn:aws:iam::\\d{12}:policy\\/[\\w\\-+\\/=._]+$/;\n\n\t\tif (!arnPattern.test(permissionsBoundary)) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t'Permissions boundaries must be provided in ARN format (e.g. arn:aws:iam::123456789012:policy/ExampleBoundaryPolicy). These can be found at the top of the permissions boundary detail page in the IAM dashboard.',\n\t\t\t);\n\t\t}\n\n\t\tif (requestOptions.body) {\n\t\t\tObject.assign(requestOptions.body, { PermissionsBoundary: permissionsBoundary });\n\t\t} else {\n\t\t\trequestOptions.body = {\n\t\t\t\tPermissionsBoundary: permissionsBoundary,\n\t\t\t};\n\t\t}\n\t}\n\treturn requestOptions;\n}\n\nexport async function preprocessTags(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst tagsData = this.getNodeParameter('additionalFields.tags') as Tags;\n\tconst tags = tagsData?.tags || [];\n\n\tlet bodyObj: Record<string, string> = {};\n\tif (typeof requestOptions.body === 'string') {\n\t\tconst params = new URLSearchParams(requestOptions.body);\n\t\tbodyObj = Object.fromEntries(params.entries());\n\t}\n\n\ttags.forEach((tag, index) => {\n\t\tif (!tag.key || !tag.value) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tthis.getNode(),\n\t\t\t\t`Tag at position ${index + 1} is missing '${!tag.key ? 'Key' : 'Value'}'. Both 'Key' and 'Value' are required.`,\n\t\t\t);\n\t\t}\n\t\tbodyObj[`Tags.member.${index + 1}.Key`] = tag.key;\n\t\tbodyObj[`Tags.member.${index + 1}.Value`] = tag.value;\n\t});\n\n\trequestOptions.body = new URLSearchParams(bodyObj).toString();\n\n\treturn requestOptions;\n}\n\nexport async function removeUserFromGroups(\n\tthis: IExecuteSingleFunctions,\n\trequestOptions: IHttpRequestOptions,\n): Promise<IHttpRequestOptions> {\n\tconst userName = this.getNodeParameter('user', undefined, { extractValue: true });\n\tconst userGroups = await searchGroupsForUser.call(this);\n\n\tfor (const group of userGroups.results) {\n\t\tawait awsApiRequest.call(this, {\n\t\t\tmethod: 'POST',\n\t\t\turl: '',\n\t\t\tbody: {\n\t\t\t\tAction: 'RemoveUserFromGroup',\n\t\t\t\tVersion: CURRENT_VERSION,\n\t\t\t\tGroupName: group.value,\n\t\t\t\tUserName: userName,\n\t\t\t},\n\t\t});\n\t}\n\n\treturn requestOptions;\n}\n"],"mappings":"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","names":[]}