@limetech/n8n-nodes-lime 0.5.0 → 2.3.1-dev.1

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 (303) hide show
  1. package/.github/workflows/lint.yml +3 -1
  2. package/.github/workflows/release.yml +2 -49
  3. package/.github/workflows/test-and-build.yml +1 -1
  4. package/.releaserc.json +2 -1
  5. package/CHANGELOG.md +122 -0
  6. package/README.md +1 -1
  7. package/credentials/LimeCrmApi.credentials.ts +38 -1
  8. package/credentials/index.ts +2 -0
  9. package/eslint.config.mjs +2 -1
  10. package/knip.json +9 -0
  11. package/nodes/fortnox/index.ts +6 -0
  12. package/nodes/fortnox/resources/customers/index.ts +18 -22
  13. package/nodes/fortnox/resources/customers/operations/create.operation.ts +12 -8
  14. package/nodes/fortnox/resources/customers/operations/delete.operation.ts +10 -15
  15. package/nodes/fortnox/resources/customers/operations/get.operation.ts +10 -15
  16. package/nodes/fortnox/resources/customers/operations/getAll.operation.ts +1 -2
  17. package/nodes/fortnox/resources/customers/operations/index.ts +5 -0
  18. package/nodes/fortnox/resources/customers/operations/update.operation.ts +30 -30
  19. package/nodes/fortnox/resources/invoice/index.ts +16 -18
  20. package/nodes/fortnox/resources/invoice/model.ts +0 -4
  21. package/nodes/fortnox/resources/invoice/operations/create.operation.ts +1 -2
  22. package/nodes/fortnox/resources/invoice/operations/get.operation.ts +10 -15
  23. package/nodes/fortnox/resources/invoice/operations/getAll.operation.ts +1 -2
  24. package/nodes/fortnox/resources/invoice/operations/index.ts +4 -0
  25. package/nodes/fortnox/resources/invoice/operations/update.operation.ts +11 -16
  26. package/nodes/fortnox/transport/index.ts +14 -11
  27. package/nodes/index.ts +4 -0
  28. package/nodes/lime-crm/LimeCrmNode.node.ts +81 -11
  29. package/nodes/lime-crm/LimeCrmTrigger.node.ts +70 -30
  30. package/nodes/lime-crm/index.ts +9 -0
  31. package/nodes/lime-crm/methods/getLimetypeProperties.ts +51 -8
  32. package/nodes/lime-crm/methods/getLimetypes.ts +14 -9
  33. package/nodes/lime-crm/methods/index.ts +1 -1
  34. package/nodes/lime-crm/models/constants.ts +73 -0
  35. package/nodes/lime-crm/models/index.ts +21 -0
  36. package/nodes/lime-crm/models/limeobject.ts +13 -0
  37. package/nodes/lime-crm/models/limetype.ts +47 -0
  38. package/nodes/lime-crm/models/propertyTypes.ts +13 -0
  39. package/nodes/lime-crm/models/users.ts +46 -0
  40. package/nodes/lime-crm/models/webhook.ts +61 -0
  41. package/nodes/lime-crm/resources/admin/index.ts +89 -0
  42. package/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.ts +166 -0
  43. package/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.ts +113 -0
  44. package/nodes/lime-crm/resources/admin/operations/index.ts +8 -0
  45. package/nodes/lime-crm/resources/data/index.ts +68 -31
  46. package/nodes/lime-crm/resources/data/operations/{createSingleObject.ts → createSingleObject.operation.ts} +82 -26
  47. package/nodes/lime-crm/resources/data/operations/{deleteSingleObject.ts → deleteSingleObject.operation.ts} +32 -4
  48. package/nodes/lime-crm/resources/data/operations/{getManyObjects.ts → getManyObjects.operation.ts} +191 -48
  49. package/nodes/lime-crm/resources/data/operations/{getSingleFile.ts → getSingleFile.operation.ts} +36 -12
  50. package/nodes/lime-crm/resources/data/operations/{getSingleObject.ts → getSingleObject.operation.ts} +39 -6
  51. package/nodes/lime-crm/resources/data/operations/index.ts +24 -0
  52. package/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.ts +55 -17
  53. package/nodes/lime-crm/resources/metadata/index.ts +56 -16
  54. package/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.ts +15 -5
  55. package/nodes/lime-crm/resources/metadata/operations/{getSingleFileMetadata.ts → getSingleFileMetadata.operation.ts} +31 -14
  56. package/nodes/lime-crm/resources/metadata/operations/{getSingleLimetype.ts → getSingleLimetype.operation.ts} +23 -1
  57. package/nodes/lime-crm/resources/metadata/operations/index.ts +12 -0
  58. package/nodes/lime-crm/transport/commons.ts +86 -28
  59. package/nodes/lime-crm/transport/files.ts +149 -84
  60. package/nodes/lime-crm/transport/index.ts +35 -17
  61. package/nodes/lime-crm/transport/limeQuery.ts +42 -6
  62. package/nodes/lime-crm/transport/limeobjects.ts +102 -179
  63. package/nodes/lime-crm/transport/limetypes.ts +126 -70
  64. package/nodes/lime-crm/transport/users.ts +264 -0
  65. package/nodes/lime-crm/transport/webhooks.ts +96 -37
  66. package/nodes/lime-crm/{commons → utils}/files.ts +75 -39
  67. package/nodes/lime-crm/utils/hmac.ts +35 -0
  68. package/nodes/lime-crm/utils/index.ts +10 -0
  69. package/nodes/lime-crm/utils/propertyAdapters.ts +75 -0
  70. package/nodes/lime-crm/utils/webhook.ts +81 -0
  71. package/nodes/modules.ts +44 -0
  72. package/nodes/response.ts +16 -0
  73. package/package.json +18 -27
  74. package/tests/nodes/lime-crm/utils.spec.ts +238 -0
  75. package/typedoc.css +9 -0
  76. package/typedoc.json +19 -0
  77. package/.dockerignore +0 -1
  78. package/Dockerfile +0 -21
  79. package/dist/credentials/FortnoxApi.credentials.d.ts +0 -9
  80. package/dist/credentials/FortnoxApi.credentials.js +0 -57
  81. package/dist/credentials/FortnoxApi.credentials.js.map +0 -1
  82. package/dist/credentials/LimeCrmApi.credentials.d.ts +0 -9
  83. package/dist/credentials/LimeCrmApi.credentials.js +0 -66
  84. package/dist/credentials/LimeCrmApi.credentials.js.map +0 -1
  85. package/dist/nodes/fortnox/Fortnox.node.d.ts +0 -5
  86. package/dist/nodes/fortnox/Fortnox.node.js +0 -95
  87. package/dist/nodes/fortnox/Fortnox.node.js.map +0 -1
  88. package/dist/nodes/fortnox/Fortnox.node.json +0 -18
  89. package/dist/nodes/fortnox/FortnoxTrigger.node.d.ts +0 -5
  90. package/dist/nodes/fortnox/FortnoxTrigger.node.js +0 -155
  91. package/dist/nodes/fortnox/FortnoxTrigger.node.js.map +0 -1
  92. package/dist/nodes/fortnox/FortnoxTrigger.node.json +0 -18
  93. package/dist/nodes/fortnox/commons.d.ts +0 -25
  94. package/dist/nodes/fortnox/commons.js +0 -44
  95. package/dist/nodes/fortnox/commons.js.map +0 -1
  96. package/dist/nodes/fortnox/fortnoxLogo.svg +0 -15
  97. package/dist/nodes/fortnox/model.d.ts +0 -20
  98. package/dist/nodes/fortnox/model.js +0 -3
  99. package/dist/nodes/fortnox/model.js.map +0 -1
  100. package/dist/nodes/fortnox/resources/customers/filterParameters.d.ts +0 -2
  101. package/dist/nodes/fortnox/resources/customers/filterParameters.js +0 -31
  102. package/dist/nodes/fortnox/resources/customers/filterParameters.js.map +0 -1
  103. package/dist/nodes/fortnox/resources/customers/index.d.ts +0 -20
  104. package/dist/nodes/fortnox/resources/customers/index.js +0 -87
  105. package/dist/nodes/fortnox/resources/customers/index.js.map +0 -1
  106. package/dist/nodes/fortnox/resources/customers/model.d.ts +0 -99
  107. package/dist/nodes/fortnox/resources/customers/model.js +0 -3
  108. package/dist/nodes/fortnox/resources/customers/model.js.map +0 -1
  109. package/dist/nodes/fortnox/resources/customers/operations/create.operation.d.ts +0 -12
  110. package/dist/nodes/fortnox/resources/customers/operations/create.operation.js +0 -283
  111. package/dist/nodes/fortnox/resources/customers/operations/create.operation.js.map +0 -1
  112. package/dist/nodes/fortnox/resources/customers/operations/delete.operation.d.ts +0 -10
  113. package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js +0 -45
  114. package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js.map +0 -1
  115. package/dist/nodes/fortnox/resources/customers/operations/get.operation.d.ts +0 -11
  116. package/dist/nodes/fortnox/resources/customers/operations/get.operation.js +0 -45
  117. package/dist/nodes/fortnox/resources/customers/operations/get.operation.js.map +0 -1
  118. package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.d.ts +0 -11
  119. package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js +0 -68
  120. package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js.map +0 -1
  121. package/dist/nodes/fortnox/resources/customers/operations/update.operation.d.ts +0 -12
  122. package/dist/nodes/fortnox/resources/customers/operations/update.operation.js +0 -276
  123. package/dist/nodes/fortnox/resources/customers/operations/update.operation.js.map +0 -1
  124. package/dist/nodes/fortnox/resources/customers/sortParameters.d.ts +0 -2
  125. package/dist/nodes/fortnox/resources/customers/sortParameters.js +0 -30
  126. package/dist/nodes/fortnox/resources/customers/sortParameters.js.map +0 -1
  127. package/dist/nodes/fortnox/resources/invoice/filterParameters.d.ts +0 -2
  128. package/dist/nodes/fortnox/resources/invoice/filterParameters.js +0 -72
  129. package/dist/nodes/fortnox/resources/invoice/filterParameters.js.map +0 -1
  130. package/dist/nodes/fortnox/resources/invoice/index.d.ts +0 -20
  131. package/dist/nodes/fortnox/resources/invoice/index.js +0 -81
  132. package/dist/nodes/fortnox/resources/invoice/index.js.map +0 -1
  133. package/dist/nodes/fortnox/resources/invoice/invoiceParameters.d.ts +0 -2
  134. package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js +0 -193
  135. package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js.map +0 -1
  136. package/dist/nodes/fortnox/resources/invoice/model.d.ts +0 -150
  137. package/dist/nodes/fortnox/resources/invoice/model.js +0 -3
  138. package/dist/nodes/fortnox/resources/invoice/model.js.map +0 -1
  139. package/dist/nodes/fortnox/resources/invoice/operations/create.operation.d.ts +0 -11
  140. package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js +0 -64
  141. package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js.map +0 -1
  142. package/dist/nodes/fortnox/resources/invoice/operations/get.operation.d.ts +0 -11
  143. package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js +0 -44
  144. package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js.map +0 -1
  145. package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.d.ts +0 -11
  146. package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js +0 -92
  147. package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js.map +0 -1
  148. package/dist/nodes/fortnox/resources/invoice/operations/update.operation.d.ts +0 -11
  149. package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js +0 -71
  150. package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js.map +0 -1
  151. package/dist/nodes/fortnox/transport/errorCodes.d.ts +0 -1
  152. package/dist/nodes/fortnox/transport/errorCodes.js +0 -50
  153. package/dist/nodes/fortnox/transport/errorCodes.js.map +0 -1
  154. package/dist/nodes/fortnox/transport/index.d.ts +0 -4
  155. package/dist/nodes/fortnox/transport/index.js +0 -77
  156. package/dist/nodes/fortnox/transport/index.js.map +0 -1
  157. package/dist/nodes/lime-crm/LimeCrm.node.json +0 -18
  158. package/dist/nodes/lime-crm/LimeCrmNode.node.d.ts +0 -14
  159. package/dist/nodes/lime-crm/LimeCrmNode.node.js +0 -126
  160. package/dist/nodes/lime-crm/LimeCrmNode.node.js.map +0 -1
  161. package/dist/nodes/lime-crm/LimeCrmTrigger.node.d.ts +0 -18
  162. package/dist/nodes/lime-crm/LimeCrmTrigger.node.js +0 -215
  163. package/dist/nodes/lime-crm/LimeCrmTrigger.node.js.map +0 -1
  164. package/dist/nodes/lime-crm/assets/lime-crm.svg +0 -1
  165. package/dist/nodes/lime-crm/commons/constants.d.ts +0 -5
  166. package/dist/nodes/lime-crm/commons/constants.js +0 -9
  167. package/dist/nodes/lime-crm/commons/constants.js.map +0 -1
  168. package/dist/nodes/lime-crm/commons/hmac.d.ts +0 -1
  169. package/dist/nodes/lime-crm/commons/hmac.js +0 -11
  170. package/dist/nodes/lime-crm/commons/hmac.js.map +0 -1
  171. package/dist/nodes/lime-crm/commons/index.d.ts +0 -3
  172. package/dist/nodes/lime-crm/commons/index.js +0 -12
  173. package/dist/nodes/lime-crm/commons/index.js.map +0 -1
  174. package/dist/nodes/lime-crm/commons/limetype.d.ts +0 -10
  175. package/dist/nodes/lime-crm/commons/limetype.js +0 -3
  176. package/dist/nodes/lime-crm/commons/limetype.js.map +0 -1
  177. package/dist/nodes/lime-crm/commons/task.d.ts +0 -14
  178. package/dist/nodes/lime-crm/commons/task.js +0 -48
  179. package/dist/nodes/lime-crm/commons/task.js.map +0 -1
  180. package/dist/nodes/lime-crm/commons/webhook.d.ts +0 -20
  181. package/dist/nodes/lime-crm/commons/webhook.js +0 -30
  182. package/dist/nodes/lime-crm/commons/webhook.js.map +0 -1
  183. package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.d.ts +0 -5
  184. package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.js +0 -11
  185. package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.js.map +0 -1
  186. package/dist/nodes/lime-crm/methods/getLimeTypeProperties.d.ts +0 -2
  187. package/dist/nodes/lime-crm/methods/getLimeTypeProperties.js +0 -20
  188. package/dist/nodes/lime-crm/methods/getLimeTypeProperties.js.map +0 -1
  189. package/dist/nodes/lime-crm/methods/getLimeTypes.d.ts +0 -2
  190. package/dist/nodes/lime-crm/methods/getLimeTypes.js +0 -20
  191. package/dist/nodes/lime-crm/methods/getLimeTypes.js.map +0 -1
  192. package/dist/nodes/lime-crm/methods/index.d.ts +0 -3
  193. package/dist/nodes/lime-crm/methods/index.js +0 -10
  194. package/dist/nodes/lime-crm/methods/index.js.map +0 -1
  195. package/dist/nodes/lime-crm/resources/erpConnector/index.d.ts +0 -23
  196. package/dist/nodes/lime-crm/resources/erpConnector/index.js +0 -67
  197. package/dist/nodes/lime-crm/resources/erpConnector/index.js.map +0 -1
  198. package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.d.ts +0 -26
  199. package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.js +0 -65
  200. package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.js.map +0 -1
  201. package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.d.ts +0 -9
  202. package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.js +0 -220
  203. package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.js.map +0 -1
  204. package/dist/nodes/lime-crm/resources/erpConnector/transform.d.ts +0 -15
  205. package/dist/nodes/lime-crm/resources/erpConnector/transform.js +0 -11
  206. package/dist/nodes/lime-crm/resources/erpConnector/transform.js.map +0 -1
  207. package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.d.ts +0 -4
  208. package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.js +0 -7
  209. package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.js.map +0 -1
  210. package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.d.ts +0 -37
  211. package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.js +0 -124
  212. package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.js.map +0 -1
  213. package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.d.ts +0 -1
  214. package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.js +0 -6
  215. package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.js.map +0 -1
  216. package/dist/nodes/lime-crm/resources/limeObject/index.d.ts +0 -14
  217. package/dist/nodes/lime-crm/resources/limeObject/index.js +0 -88
  218. package/dist/nodes/lime-crm/resources/limeObject/index.js.map +0 -1
  219. package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.d.ts +0 -9
  220. package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.js +0 -139
  221. package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.js.map +0 -1
  222. package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.d.ts +0 -9
  223. package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.js +0 -51
  224. package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.js.map +0 -1
  225. package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.d.ts +0 -9
  226. package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.js +0 -103
  227. package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.js.map +0 -1
  228. package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.d.ts +0 -9
  229. package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.js +0 -51
  230. package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.js.map +0 -1
  231. package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.d.ts +0 -9
  232. package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.js +0 -103
  233. package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.js.map +0 -1
  234. package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.d.ts +0 -9
  235. package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.js +0 -149
  236. package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.js.map +0 -1
  237. package/dist/nodes/lime-crm/resources/limeQuery/index.d.ts +0 -6
  238. package/dist/nodes/lime-crm/resources/limeQuery/index.js +0 -66
  239. package/dist/nodes/lime-crm/resources/limeQuery/index.js.map +0 -1
  240. package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.d.ts +0 -9
  241. package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.js +0 -191
  242. package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.js.map +0 -1
  243. package/dist/nodes/lime-crm/resources/limeType/index.d.ts +0 -20
  244. package/dist/nodes/lime-crm/resources/limeType/index.js +0 -81
  245. package/dist/nodes/lime-crm/resources/limeType/index.js.map +0 -1
  246. package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.d.ts +0 -11
  247. package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.js +0 -36
  248. package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.js.map +0 -1
  249. package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.d.ts +0 -9
  250. package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.js +0 -36
  251. package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.js.map +0 -1
  252. package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.d.ts +0 -10
  253. package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.js +0 -15
  254. package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.js.map +0 -1
  255. package/dist/nodes/lime-crm/transport/commons.d.ts +0 -5
  256. package/dist/nodes/lime-crm/transport/commons.js +0 -33
  257. package/dist/nodes/lime-crm/transport/commons.js.map +0 -1
  258. package/dist/nodes/lime-crm/transport/erpConnector.d.ts +0 -9
  259. package/dist/nodes/lime-crm/transport/erpConnector.js +0 -11
  260. package/dist/nodes/lime-crm/transport/erpConnector.js.map +0 -1
  261. package/dist/nodes/lime-crm/transport/index.d.ts +0 -6
  262. package/dist/nodes/lime-crm/transport/index.js +0 -24
  263. package/dist/nodes/lime-crm/transport/index.js.map +0 -1
  264. package/dist/nodes/lime-crm/transport/limeQuery.d.ts +0 -10
  265. package/dist/nodes/lime-crm/transport/limeQuery.js +0 -15
  266. package/dist/nodes/lime-crm/transport/limeQuery.js.map +0 -1
  267. package/dist/nodes/lime-crm/transport/limeobjects.d.ts +0 -7
  268. package/dist/nodes/lime-crm/transport/limeobjects.js +0 -134
  269. package/dist/nodes/lime-crm/transport/limeobjects.js.map +0 -1
  270. package/dist/nodes/lime-crm/transport/limetypes.d.ts +0 -6
  271. package/dist/nodes/lime-crm/transport/limetypes.js +0 -54
  272. package/dist/nodes/lime-crm/transport/limetypes.js.map +0 -1
  273. package/dist/nodes/lime-crm/transport/task.d.ts +0 -13
  274. package/dist/nodes/lime-crm/transport/task.js +0 -13
  275. package/dist/nodes/lime-crm/transport/task.js.map +0 -1
  276. package/dist/nodes/lime-crm/transport/webhooks.d.ts +0 -16
  277. package/dist/nodes/lime-crm/transport/webhooks.js +0 -43
  278. package/dist/nodes/lime-crm/transport/webhooks.js.map +0 -1
  279. package/dist/nodes/nodeResponse.d.ts +0 -12
  280. package/dist/nodes/nodeResponse.js +0 -3
  281. package/dist/nodes/nodeResponse.js.map +0 -1
  282. package/dist/package.json +0 -75
  283. package/dist/tsconfig.tsbuildinfo +0 -1
  284. package/docker-compose.yml +0 -52
  285. package/nodes/lime-crm/commons/constants.ts +0 -9
  286. package/nodes/lime-crm/commons/hmac.ts +0 -13
  287. package/nodes/lime-crm/commons/index.ts +0 -10
  288. package/nodes/lime-crm/commons/task.ts +0 -55
  289. package/nodes/lime-crm/commons/webhook.ts +0 -68
  290. package/nodes/lime-crm/methods/getEntitiesForErpSystem.ts +0 -11
  291. package/nodes/lime-crm/model.ts +0 -22
  292. package/nodes/lime-crm/resources/erpConnector/index.ts +0 -43
  293. package/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.ts +0 -69
  294. package/nodes/lime-crm/resources/erpConnector/operations/transform.operation.ts +0 -274
  295. package/nodes/lime-crm/resources/erpConnector/transform.ts +0 -49
  296. package/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.ts +0 -18
  297. package/nodes/lime-crm/resources/erpConnector/transformers/fortnox.ts +0 -201
  298. package/nodes/lime-crm/resources/erpConnector/transformers/index.ts +0 -1
  299. package/nodes/lime-crm/transport/erpConnector.ts +0 -21
  300. package/nodes/lime-crm/transport/task.ts +0 -32
  301. package/nodes/nodeResponse.ts +0 -13
  302. package/tests/fixtures/fortnox.ts +0 -182
  303. package/tests/transform.spec.ts +0 -187
@@ -0,0 +1,113 @@
1
+ import {
2
+ IExecuteFunctions,
3
+ INodeProperties,
4
+ NodeOperationError,
5
+ } from 'n8n-workflow';
6
+
7
+ import { User, ADMIN_RESOURCE } from '../../../models';
8
+ import {
9
+ fetchSingleUserById,
10
+ fetchSingleUserByLimeobjectId,
11
+ } from '../../../transport';
12
+
13
+ export const description = {
14
+ name: 'Get single user',
15
+ value: 'getSingleUser',
16
+ description: 'Get a single user data',
17
+ action: 'Get single user',
18
+ };
19
+
20
+ /**
21
+ * Node properties for the "Get Single User" operation.
22
+ *
23
+ * @param {string} id - The ID of the user to retrieve
24
+ *
25
+ * @public
26
+ */
27
+ export const properties: INodeProperties[] = [
28
+ {
29
+ displayName: 'Get by',
30
+ name: 'source',
31
+ type: 'options',
32
+ required: true,
33
+ placeholder: 'Add Source',
34
+ displayOptions: {
35
+ show: {
36
+ resource: [ADMIN_RESOURCE],
37
+ operation: ['getSingleUser'],
38
+ },
39
+ },
40
+ options: [
41
+ {
42
+ name: 'User ID',
43
+ value: 'byUser',
44
+ description: 'Get user by its ID',
45
+ },
46
+ {
47
+ name: 'Limeobject ID',
48
+ value: 'byLimeobject',
49
+ description: "Get user by it's related Limeobject ID",
50
+ },
51
+ ],
52
+ default: 'byUser',
53
+ },
54
+ {
55
+ displayName: 'Identifier',
56
+ name: 'identifier',
57
+ type: 'string',
58
+ required: true,
59
+ default: '',
60
+ description: 'The ID of the user or Limeobject to retrieve',
61
+ displayOptions: {
62
+ show: {
63
+ resource: [ADMIN_RESOURCE],
64
+ operation: ['getSingleUser'],
65
+ },
66
+ },
67
+ },
68
+ {
69
+ displayName: 'Include Coworker',
70
+ name: 'withCoworker',
71
+ type: 'boolean',
72
+ default: '',
73
+ description: 'Whether to include coworker data in the response',
74
+ displayOptions: {
75
+ show: {
76
+ resource: [ADMIN_RESOURCE],
77
+ operation: ['getSingleUser'],
78
+ },
79
+ },
80
+ },
81
+ ];
82
+ /**
83
+ * Execute the "Get Single Object" operation for Lime CRM.
84
+ *
85
+ * @remarks
86
+ * This method retrieves a single Lime CRM user identified by its ID.
87
+ *
88
+ * @param i - The index of the current item in the workflow execution
89
+ *
90
+ * @returns User data.
91
+ *
92
+ * @public
93
+ */
94
+ export async function execute(
95
+ this: IExecuteFunctions,
96
+ i: number
97
+ ): Promise<User> {
98
+ const source = this.getNodeParameter('source', i) as string;
99
+ const id = this.getNodeParameter('identifier', i) as string;
100
+ const withCoworker = this.getNodeParameter('withCoworker', i) as boolean;
101
+
102
+ if (source == 'byUser') {
103
+ return await fetchSingleUserById(this, id, withCoworker);
104
+ }
105
+ if (source == 'byLimeobject') {
106
+ return await fetchSingleUserByLimeobjectId(this, id, withCoworker);
107
+ }
108
+
109
+ throw new NodeOperationError(
110
+ this.getNode(),
111
+ `The source "${source}" is not supported!`
112
+ );
113
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @group Resources
3
+ */
4
+ export * as getManyUsers from './getManyUsers.operation';
5
+ /**
6
+ * @group Resources
7
+ */
8
+ export * as getSingleUser from './getSingleUser.operation';
@@ -6,15 +6,40 @@ import {
6
6
  NodeOperationError,
7
7
  } from 'n8n-workflow';
8
8
 
9
- import * as createSingleObject from './operations/createSingleObject';
10
- import * as getSingleObject from './operations/getSingleObject';
11
- import * as updateSingleObject from './operations/updateSingleObject.operation';
12
- import * as deleteSingleObject from './operations/deleteSingleObject';
13
- import * as getManyObjects from './operations/getManyObjects';
14
- import * as getSingleFile from './operations/getSingleFile';
9
+ import * as operations from './operations';
15
10
 
16
- import { DATA_RESOURCE } from '../../commons';
11
+ import { DATA_RESOURCE } from '../../models';
12
+ import { N8NOperationModuleHandler } from '../../../modules';
17
13
 
14
+ /**
15
+ * List of modules consisting data operations
16
+ */
17
+ const moduleHandler = new N8NOperationModuleHandler([
18
+ operations.createSingleObject,
19
+ operations.getSingleObject,
20
+ operations.updateSingleObject,
21
+ operations.deleteSingleObject,
22
+ operations.getManyObjects,
23
+ operations.getSingleFile,
24
+ ]);
25
+
26
+ /**
27
+ * Fields and operations for the **Data** resource in Lime CRM.
28
+ *
29
+ * @remarks
30
+ * - These fields are displayed in the n8n node UI when the resource is set to `Data`.
31
+ * - Each operation corresponds to a CRUD action or a file retrieval for Lime objects.
32
+ *
33
+ * @group Resources
34
+ * @public
35
+ *
36
+ * @see {@link createSingleObject} - Operation to create a single Limeobject
37
+ * @see {@link getSingleObject} - Operation to retrieve a single Limeobject by ID
38
+ * @see {@link updateSingleObject} - Operation to update a single Limeobject by ID
39
+ * @see {@link deleteSingleObject} - Operation to delete a single Limeobject by ID
40
+ * @see {@link getManyObjects} - Operation to fetch multiple Limeobjects based on search criteria
41
+ * @see {@link getSingleFile} - Operation to retrieve a single from Lime CRM
42
+ */
18
43
  export const dataFields: INodeProperties[] = [
19
44
  {
20
45
  displayName: 'Operation',
@@ -26,50 +51,60 @@ export const dataFields: INodeProperties[] = [
26
51
  resource: [DATA_RESOURCE],
27
52
  },
28
53
  },
29
- options: [
30
- createSingleObject.description,
31
- getSingleObject.description,
32
- updateSingleObject.description,
33
- deleteSingleObject.description,
34
- getManyObjects.description,
35
- getSingleFile.description,
36
- ],
54
+ options: moduleHandler.getDescriptions(),
37
55
  default: 'fetchMany',
38
56
  },
39
57
 
40
- ...createSingleObject.properties,
41
- ...getSingleObject.properties,
42
- ...updateSingleObject.properties,
43
- ...deleteSingleObject.properties,
44
- ...getSingleFile.properties,
45
- ...getManyObjects.properties,
58
+ ...moduleHandler.getProperties(),
46
59
  ];
47
60
 
61
+ /**
62
+ * Execute a specific **Data** operation on Lime CRM objects.
63
+ *
64
+ * @param args - Contextual parameters for the operation being executed
65
+ * @param args.operation - The operation to perform (e.g., `createSingleObject`, `getManyObjects`)
66
+ * @param args.i - The index of the input item to process
67
+ *
68
+ * @returns A promise resolving to the n8n object containing the result of the operation.
69
+ *
70
+ * @throws NodeOperationError if the operation is unsupported or fails.
71
+ *
72
+ * @public
73
+ * @group Resources
74
+ */
48
75
  export async function dataOperations(
49
76
  this: IExecuteFunctions,
50
77
  { operation, i }: { operation: string; i: number }
51
- ): Promise<INodeExecutionData> {
78
+ ): Promise<INodeExecutionData | INodeExecutionData[]> {
52
79
  switch (operation) {
53
80
  case 'createSingleObject': {
54
- return { json: await createSingleObject.execute.call(this, i) };
81
+ return {
82
+ json: await operations.createSingleObject.execute.call(this, i),
83
+ };
55
84
  }
56
85
  case 'getSingleObject': {
57
- return await getSingleObject.execute.call(this, i);
86
+ return await operations.getSingleObject.execute.call(this, i);
58
87
  }
59
88
  case 'updateSingleObject': {
60
- return { json: await updateSingleObject.execute.call(this, i) };
89
+ return {
90
+ json: await operations.updateSingleObject.execute.call(this, i),
91
+ };
61
92
  }
62
93
  case 'deleteSingleObject': {
63
- await deleteSingleObject.execute.call(this, i);
64
- return { json: { success: true } };
94
+ await operations.deleteSingleObject.execute.call(this, i);
95
+ return { json: {} };
65
96
  }
66
97
  case 'getManyObjects': {
67
- return {
68
- json: await getManyObjects.execute.call(this, i),
69
- };
98
+ const result = await operations.getManyObjects.execute.call(
99
+ this,
100
+ i
101
+ );
102
+ return result.map((item) => ({
103
+ json: item,
104
+ }));
70
105
  }
71
106
  case 'getSingleFile': {
72
- return await getSingleFile.execute.call(this, i);
107
+ return await operations.getSingleFile.execute.call(this, i);
73
108
  }
74
109
  }
75
110
 
@@ -78,3 +113,5 @@ export async function dataOperations(
78
113
  `The operation "${operation}" is not supported!`
79
114
  );
80
115
  }
116
+
117
+ export * from './operations';
@@ -1,13 +1,20 @@
1
1
  import { IDataObject, IExecuteFunctions, INodeProperties } from 'n8n-workflow';
2
2
 
3
- import { createLimeobject } from '../../../transport';
4
- import { DATA_RESOURCE } from '../../../commons';
3
+ import { createLimeobject, getProperties } from '../../../transport';
4
+ import { DATA_RESOURCE, LimetypeProperty } from '../../../models';
5
5
  import {
6
- getFileProperties,
6
+ adaptProperty,
7
+ getFilePropertiesNames,
8
+ getPropertyType,
7
9
  processFileResponse,
8
10
  setFileProperties,
9
- } from '../../../commons/files';
11
+ } from '../../../utils';
10
12
 
13
+ /**
14
+ * Description and metadata for the "Create Single Object" operation in Lime CRM.
15
+ *
16
+ * @public
17
+ */
11
18
  export const description = {
12
19
  name: 'Create Single Object',
13
20
  value: 'createSingleObject',
@@ -15,6 +22,16 @@ export const description = {
15
22
  action: 'Create single object',
16
23
  };
17
24
 
25
+ /**
26
+ * Node properties for the "Create Single Object" operation.
27
+ *
28
+ * @param {string} limetype - The type of entity to create
29
+ * @param {'fields' | 'json'} inputMethod - How the user provides object data: 'fields' for form inputs, 'json' for raw JSON
30
+ * @param {Array<{ name: string; value: string }>} properties - Used if inputMethod is 'fields'. List of property name/value pairs to set on the object
31
+ * @param {string} objectJson - Used if inputMethod is 'json'. The full object data in JSON format
32
+ *
33
+ * @public
34
+ */
18
35
  export const properties: INodeProperties[] = [
19
36
  {
20
37
  displayName: 'Limetype',
@@ -83,7 +100,7 @@ export const properties: INodeProperties[] = [
83
100
  type: 'options',
84
101
  typeOptions: {
85
102
  sortable: true,
86
- loadOptionsMethod: 'getLimetypeProperties',
103
+ loadOptionsMethod: 'getNoHasManyProperties',
87
104
  loadOptionsDependsOn: ['limetype'],
88
105
  },
89
106
  default: '',
@@ -119,35 +136,76 @@ export const properties: INodeProperties[] = [
119
136
  },
120
137
  ];
121
138
 
139
+ /**
140
+ *
141
+ * @param context - Node execution context
142
+ * @param i - The index of the current item in the workflow execution
143
+ * @param properties - List of {@link LimeTypeProperty} fetched from Lime CRM
144
+ * @returns IDataObject - parsed data from Simple Fields mode
145
+ */
146
+ function parseSimpleFieldsData(
147
+ context: IExecuteFunctions,
148
+ i: number,
149
+ properties: LimetypeProperty[]
150
+ ): IDataObject {
151
+ const objectData: IDataObject = {};
152
+ const propertiesInput = context.getNodeParameter(
153
+ 'properties.property',
154
+ i,
155
+ []
156
+ ) as IDataObject[];
157
+
158
+ if (propertiesInput && propertiesInput.length > 0) {
159
+ for (const prop of propertiesInput) {
160
+ if (prop.name && prop.value !== undefined) {
161
+ const propertyName = prop.name as string;
162
+ objectData[propertyName] = adaptProperty(
163
+ prop.value as string,
164
+ getPropertyType(propertyName, properties)
165
+ );
166
+ }
167
+ }
168
+ }
169
+ return objectData;
170
+ }
171
+
172
+ /**
173
+ * Execute the "Create Single Object" operation for Lime CRM.
174
+ *
175
+ * @param i - The index of the current item in the workflow execution
176
+ * @remarks
177
+ * This method handles creating a single Lime CRM object. It supports two input methods:
178
+ * - `fields`: where the user provides property values via form fields.
179
+ * - `json`: where the user provides a full JSON object representing the entity.
180
+ *
181
+ * The method performs the following steps:
182
+ * 1. Reads the limetype and input method from node parameters.
183
+ * 2. Parses input data according to the selected input method.
184
+ * 3. Resolves any file properties present in the object and sets the file properties on the object.
185
+ * 4. Sends a request to the Lime API to create the object.
186
+ * 5. Processes any returned file data and formats the response.
187
+ *
188
+ * @returns The newly created Lime object.
189
+ *
190
+ * @public
191
+ */
122
192
  export async function execute(this: IExecuteFunctions, i: number) {
123
193
  const limetype = this.getNodeParameter('limetype', i) as string;
124
194
  const inputMethod = this.getNodeParameter('inputMethod', i) as string;
125
195
 
126
196
  let objectData: IDataObject;
127
197
 
198
+ const properties = await getProperties(this, limetype);
199
+
128
200
  if (inputMethod === 'json') {
129
201
  const jsonInput = this.getNodeParameter('objectJson', i) as string;
130
202
  objectData = JSON.parse(jsonInput);
131
203
  } else {
132
- objectData = {};
133
- const propertiesInput = this.getNodeParameter(
134
- 'properties.property',
135
- i,
136
- []
137
- ) as IDataObject[];
138
-
139
- if (propertiesInput && propertiesInput.length > 0) {
140
- for (const prop of propertiesInput) {
141
- if (prop.name && prop.value !== undefined) {
142
- objectData[prop.name as string] = prop.value;
143
- }
144
- }
145
- }
204
+ objectData = parseSimpleFieldsData(this, i, properties);
146
205
  }
147
206
 
148
- const fileProperties = await getFileProperties(
149
- this,
150
- limetype,
207
+ const fileProperties = getFilePropertiesNames(
208
+ properties,
151
209
  new Set(Object.keys(objectData))
152
210
  );
153
211
 
@@ -157,19 +215,17 @@ export async function execute(this: IExecuteFunctions, i: number) {
157
215
  fileProperties,
158
216
  objectData
159
217
  );
160
- if (!setFilePropertiesResponse.success) return setFilePropertiesResponse;
161
218
 
162
219
  const createLimeobjectResponse = await createLimeobject(
163
220
  this,
164
221
  limetype,
165
- setFilePropertiesResponse.data
222
+ setFilePropertiesResponse
166
223
  );
167
- if (!createLimeobjectResponse.success) return createLimeobjectResponse;
168
224
 
169
225
  const response = await processFileResponse(
170
226
  this,
171
227
  fileProperties,
172
- createLimeobjectResponse.data
228
+ createLimeobjectResponse
173
229
  );
174
230
  return response.json;
175
231
  }
@@ -1,8 +1,13 @@
1
1
  import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
2
2
 
3
3
  import { deleteLimeobject } from '../../../transport';
4
- import { DATA_RESOURCE } from '../../../commons';
4
+ import { DATA_RESOURCE } from '../../../models';
5
5
 
6
+ /**
7
+ * Description and metadata for the "Delete Single Object" operation in Lime CRM.
8
+ *
9
+ * @public
10
+ */
6
11
  export const description = {
7
12
  name: 'Delete Single Object',
8
13
  value: 'deleteSingleObject',
@@ -10,8 +15,16 @@ export const description = {
10
15
  action: 'Delete single object',
11
16
  };
12
17
 
18
+ /**
19
+ * Node properties for the "Delete Single Object" operation.
20
+ *
21
+ *
22
+ * @param {string} limetype - The type of entity to delete. Loaded from available Limetypes
23
+ * @param {string} objectId - The ID of the object to delete
24
+ *
25
+ * @public
26
+ */
13
27
  export const properties: INodeProperties[] = [
14
- // Limetype selection
15
28
  {
16
29
  displayName: 'Limetype',
17
30
  name: 'limetype',
@@ -29,8 +42,6 @@ export const properties: INodeProperties[] = [
29
42
  },
30
43
  },
31
44
  },
32
-
33
- // Object ID
34
45
  {
35
46
  displayName: 'Object ID',
36
47
  name: 'objectId',
@@ -47,6 +58,23 @@ export const properties: INodeProperties[] = [
47
58
  },
48
59
  ];
49
60
 
61
+ /**
62
+ * Execute the "Delete Single Object" operation for Lime CRM.
63
+ *
64
+ * @remarks
65
+ * This operation deletes a single Lime CRM object identified by its object ID.
66
+ * The object type is determined by the selected limetype.
67
+ *
68
+ * The method performs the following steps:
69
+ * 1. Retrieves the `limetype` and `objectId` from {@link properties}.
70
+ * 2. Calls the {@link deleteLimeobject} function to delete the object from Lime CRM.
71
+ *
72
+ * @param i - The index of the current item in the workflow execution
73
+ *
74
+ * @returns The response from the Lime API after attempting deletion.
75
+ *
76
+ * @public
77
+ */
50
78
  export async function execute(this: IExecuteFunctions, i: number) {
51
79
  const limetype = this.getNodeParameter('limetype', i) as string;
52
80
  const objectId = this.getNodeParameter('objectId', i) as string;