@limetech/n8n-nodes-lime 0.5.0 → 2.5.0-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 (316) hide show
  1. package/.github/workflows/lint.yml +4 -2
  2. package/.github/workflows/release.yml +8 -41
  3. package/.github/workflows/test-and-build.yml +1 -16
  4. package/.releaserc.json +2 -1
  5. package/CHANGELOG.md +155 -0
  6. package/Dockerfile +0 -21
  7. package/README.md +1 -1
  8. package/credentials/LimeCrmApi.credentials.ts +38 -1
  9. package/credentials/index.ts +2 -0
  10. package/eslint.config.mjs +2 -1
  11. package/knip.json +9 -0
  12. package/nodes/errorHandling.ts +60 -0
  13. package/nodes/fortnox/index.ts +6 -0
  14. package/nodes/fortnox/resources/customers/index.ts +18 -22
  15. package/nodes/fortnox/resources/customers/operations/create.operation.ts +12 -8
  16. package/nodes/fortnox/resources/customers/operations/delete.operation.ts +10 -15
  17. package/nodes/fortnox/resources/customers/operations/get.operation.ts +10 -15
  18. package/nodes/fortnox/resources/customers/operations/getAll.operation.ts +1 -2
  19. package/nodes/fortnox/resources/customers/operations/index.ts +5 -0
  20. package/nodes/fortnox/resources/customers/operations/update.operation.ts +30 -30
  21. package/nodes/fortnox/resources/invoice/index.ts +16 -18
  22. package/nodes/fortnox/resources/invoice/model.ts +0 -4
  23. package/nodes/fortnox/resources/invoice/operations/create.operation.ts +1 -2
  24. package/nodes/fortnox/resources/invoice/operations/get.operation.ts +10 -15
  25. package/nodes/fortnox/resources/invoice/operations/getAll.operation.ts +1 -2
  26. package/nodes/fortnox/resources/invoice/operations/index.ts +4 -0
  27. package/nodes/fortnox/resources/invoice/operations/update.operation.ts +11 -16
  28. package/nodes/fortnox/transport/index.ts +14 -11
  29. package/nodes/index.ts +4 -0
  30. package/nodes/lime-crm/LimeCrmNode.node.ts +89 -11
  31. package/nodes/lime-crm/LimeCrmTrigger.node.ts +75 -21
  32. package/nodes/lime-crm/index.ts +9 -0
  33. package/nodes/lime-crm/methods/getLimetypeProperties.ts +53 -8
  34. package/nodes/lime-crm/methods/getLimetypes.ts +15 -9
  35. package/nodes/lime-crm/methods/index.ts +6 -1
  36. package/nodes/lime-crm/methods/resourceMapping.ts +141 -0
  37. package/nodes/lime-crm/models/constants.ts +73 -0
  38. package/nodes/lime-crm/models/index.ts +21 -0
  39. package/nodes/lime-crm/models/limeobject.ts +13 -0
  40. package/nodes/lime-crm/models/limetype.ts +65 -0
  41. package/nodes/lime-crm/models/propertyTypes.ts +13 -0
  42. package/nodes/lime-crm/models/users.ts +46 -0
  43. package/nodes/lime-crm/models/webhook.ts +61 -0
  44. package/nodes/lime-crm/resources/admin/index.ts +94 -0
  45. package/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.ts +174 -0
  46. package/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.ts +112 -0
  47. package/nodes/lime-crm/resources/admin/operations/index.ts +8 -0
  48. package/nodes/lime-crm/resources/data/index.ts +77 -31
  49. package/nodes/lime-crm/resources/data/operations/{createSingleObject.ts → createSingleObject.operation.ts} +64 -54
  50. package/nodes/lime-crm/resources/data/operations/{deleteSingleObject.ts → deleteSingleObject.operation.ts} +39 -6
  51. package/nodes/lime-crm/resources/data/operations/{getManyObjects.ts → getManyObjects.operation.ts} +195 -48
  52. package/nodes/lime-crm/resources/data/operations/{getSingleFile.ts → getSingleFile.operation.ts} +47 -11
  53. package/nodes/lime-crm/resources/data/operations/{getSingleObject.ts → getSingleObject.operation.ts} +50 -8
  54. package/nodes/lime-crm/resources/data/operations/index.ts +24 -0
  55. package/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.ts +83 -61
  56. package/nodes/lime-crm/resources/metadata/index.ts +60 -16
  57. package/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.ts +18 -4
  58. package/nodes/lime-crm/resources/metadata/operations/{getSingleFileMetadata.ts → getSingleFileMetadata.operation.ts} +46 -26
  59. package/nodes/lime-crm/resources/metadata/operations/{getSingleLimetype.ts → getSingleLimetype.operation.ts} +30 -3
  60. package/nodes/lime-crm/resources/metadata/operations/index.ts +12 -0
  61. package/nodes/lime-crm/transport/commons.ts +90 -18
  62. package/nodes/lime-crm/transport/files.ts +161 -71
  63. package/nodes/lime-crm/transport/index.ts +35 -17
  64. package/nodes/lime-crm/transport/limeQuery.ts +43 -7
  65. package/nodes/lime-crm/transport/limeobjects.ts +113 -178
  66. package/nodes/lime-crm/transport/limetypes.ts +125 -48
  67. package/nodes/lime-crm/transport/users.ts +300 -0
  68. package/nodes/lime-crm/transport/webhooks.ts +97 -37
  69. package/nodes/lime-crm/{commons → utils}/files.ts +79 -26
  70. package/nodes/lime-crm/utils/hmac.ts +35 -0
  71. package/nodes/lime-crm/utils/index.ts +10 -0
  72. package/nodes/lime-crm/utils/webhook.ts +81 -0
  73. package/nodes/modules.ts +44 -0
  74. package/nodes/response.ts +54 -0
  75. package/package.json +21 -28
  76. package/tests/nodes/lime-crm/methods.spec.ts +91 -0
  77. package/tests/nodes/lime-crm/utils.spec.ts +273 -0
  78. package/typedoc.css +9 -0
  79. package/typedoc.json +19 -0
  80. package/.dockerignore +0 -1
  81. package/dist/credentials/FortnoxApi.credentials.d.ts +0 -9
  82. package/dist/credentials/FortnoxApi.credentials.js +0 -57
  83. package/dist/credentials/FortnoxApi.credentials.js.map +0 -1
  84. package/dist/credentials/LimeCrmApi.credentials.d.ts +0 -9
  85. package/dist/credentials/LimeCrmApi.credentials.js +0 -66
  86. package/dist/credentials/LimeCrmApi.credentials.js.map +0 -1
  87. package/dist/nodes/fortnox/Fortnox.node.d.ts +0 -5
  88. package/dist/nodes/fortnox/Fortnox.node.js +0 -95
  89. package/dist/nodes/fortnox/Fortnox.node.js.map +0 -1
  90. package/dist/nodes/fortnox/Fortnox.node.json +0 -18
  91. package/dist/nodes/fortnox/FortnoxTrigger.node.d.ts +0 -5
  92. package/dist/nodes/fortnox/FortnoxTrigger.node.js +0 -155
  93. package/dist/nodes/fortnox/FortnoxTrigger.node.js.map +0 -1
  94. package/dist/nodes/fortnox/FortnoxTrigger.node.json +0 -18
  95. package/dist/nodes/fortnox/commons.d.ts +0 -25
  96. package/dist/nodes/fortnox/commons.js +0 -44
  97. package/dist/nodes/fortnox/commons.js.map +0 -1
  98. package/dist/nodes/fortnox/fortnoxLogo.svg +0 -15
  99. package/dist/nodes/fortnox/model.d.ts +0 -20
  100. package/dist/nodes/fortnox/model.js +0 -3
  101. package/dist/nodes/fortnox/model.js.map +0 -1
  102. package/dist/nodes/fortnox/resources/customers/filterParameters.d.ts +0 -2
  103. package/dist/nodes/fortnox/resources/customers/filterParameters.js +0 -31
  104. package/dist/nodes/fortnox/resources/customers/filterParameters.js.map +0 -1
  105. package/dist/nodes/fortnox/resources/customers/index.d.ts +0 -20
  106. package/dist/nodes/fortnox/resources/customers/index.js +0 -87
  107. package/dist/nodes/fortnox/resources/customers/index.js.map +0 -1
  108. package/dist/nodes/fortnox/resources/customers/model.d.ts +0 -99
  109. package/dist/nodes/fortnox/resources/customers/model.js +0 -3
  110. package/dist/nodes/fortnox/resources/customers/model.js.map +0 -1
  111. package/dist/nodes/fortnox/resources/customers/operations/create.operation.d.ts +0 -12
  112. package/dist/nodes/fortnox/resources/customers/operations/create.operation.js +0 -283
  113. package/dist/nodes/fortnox/resources/customers/operations/create.operation.js.map +0 -1
  114. package/dist/nodes/fortnox/resources/customers/operations/delete.operation.d.ts +0 -10
  115. package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js +0 -45
  116. package/dist/nodes/fortnox/resources/customers/operations/delete.operation.js.map +0 -1
  117. package/dist/nodes/fortnox/resources/customers/operations/get.operation.d.ts +0 -11
  118. package/dist/nodes/fortnox/resources/customers/operations/get.operation.js +0 -45
  119. package/dist/nodes/fortnox/resources/customers/operations/get.operation.js.map +0 -1
  120. package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.d.ts +0 -11
  121. package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js +0 -68
  122. package/dist/nodes/fortnox/resources/customers/operations/getAll.operation.js.map +0 -1
  123. package/dist/nodes/fortnox/resources/customers/operations/update.operation.d.ts +0 -12
  124. package/dist/nodes/fortnox/resources/customers/operations/update.operation.js +0 -276
  125. package/dist/nodes/fortnox/resources/customers/operations/update.operation.js.map +0 -1
  126. package/dist/nodes/fortnox/resources/customers/sortParameters.d.ts +0 -2
  127. package/dist/nodes/fortnox/resources/customers/sortParameters.js +0 -30
  128. package/dist/nodes/fortnox/resources/customers/sortParameters.js.map +0 -1
  129. package/dist/nodes/fortnox/resources/invoice/filterParameters.d.ts +0 -2
  130. package/dist/nodes/fortnox/resources/invoice/filterParameters.js +0 -72
  131. package/dist/nodes/fortnox/resources/invoice/filterParameters.js.map +0 -1
  132. package/dist/nodes/fortnox/resources/invoice/index.d.ts +0 -20
  133. package/dist/nodes/fortnox/resources/invoice/index.js +0 -81
  134. package/dist/nodes/fortnox/resources/invoice/index.js.map +0 -1
  135. package/dist/nodes/fortnox/resources/invoice/invoiceParameters.d.ts +0 -2
  136. package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js +0 -193
  137. package/dist/nodes/fortnox/resources/invoice/invoiceParameters.js.map +0 -1
  138. package/dist/nodes/fortnox/resources/invoice/model.d.ts +0 -150
  139. package/dist/nodes/fortnox/resources/invoice/model.js +0 -3
  140. package/dist/nodes/fortnox/resources/invoice/model.js.map +0 -1
  141. package/dist/nodes/fortnox/resources/invoice/operations/create.operation.d.ts +0 -11
  142. package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js +0 -64
  143. package/dist/nodes/fortnox/resources/invoice/operations/create.operation.js.map +0 -1
  144. package/dist/nodes/fortnox/resources/invoice/operations/get.operation.d.ts +0 -11
  145. package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js +0 -44
  146. package/dist/nodes/fortnox/resources/invoice/operations/get.operation.js.map +0 -1
  147. package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.d.ts +0 -11
  148. package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js +0 -92
  149. package/dist/nodes/fortnox/resources/invoice/operations/getAll.operation.js.map +0 -1
  150. package/dist/nodes/fortnox/resources/invoice/operations/update.operation.d.ts +0 -11
  151. package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js +0 -71
  152. package/dist/nodes/fortnox/resources/invoice/operations/update.operation.js.map +0 -1
  153. package/dist/nodes/fortnox/transport/errorCodes.d.ts +0 -1
  154. package/dist/nodes/fortnox/transport/errorCodes.js +0 -50
  155. package/dist/nodes/fortnox/transport/errorCodes.js.map +0 -1
  156. package/dist/nodes/fortnox/transport/index.d.ts +0 -4
  157. package/dist/nodes/fortnox/transport/index.js +0 -77
  158. package/dist/nodes/fortnox/transport/index.js.map +0 -1
  159. package/dist/nodes/lime-crm/LimeCrm.node.json +0 -18
  160. package/dist/nodes/lime-crm/LimeCrmNode.node.d.ts +0 -14
  161. package/dist/nodes/lime-crm/LimeCrmNode.node.js +0 -126
  162. package/dist/nodes/lime-crm/LimeCrmNode.node.js.map +0 -1
  163. package/dist/nodes/lime-crm/LimeCrmTrigger.node.d.ts +0 -18
  164. package/dist/nodes/lime-crm/LimeCrmTrigger.node.js +0 -215
  165. package/dist/nodes/lime-crm/LimeCrmTrigger.node.js.map +0 -1
  166. package/dist/nodes/lime-crm/assets/lime-crm.svg +0 -1
  167. package/dist/nodes/lime-crm/commons/constants.d.ts +0 -5
  168. package/dist/nodes/lime-crm/commons/constants.js +0 -9
  169. package/dist/nodes/lime-crm/commons/constants.js.map +0 -1
  170. package/dist/nodes/lime-crm/commons/hmac.d.ts +0 -1
  171. package/dist/nodes/lime-crm/commons/hmac.js +0 -11
  172. package/dist/nodes/lime-crm/commons/hmac.js.map +0 -1
  173. package/dist/nodes/lime-crm/commons/index.d.ts +0 -3
  174. package/dist/nodes/lime-crm/commons/index.js +0 -12
  175. package/dist/nodes/lime-crm/commons/index.js.map +0 -1
  176. package/dist/nodes/lime-crm/commons/limetype.d.ts +0 -10
  177. package/dist/nodes/lime-crm/commons/limetype.js +0 -3
  178. package/dist/nodes/lime-crm/commons/limetype.js.map +0 -1
  179. package/dist/nodes/lime-crm/commons/task.d.ts +0 -14
  180. package/dist/nodes/lime-crm/commons/task.js +0 -48
  181. package/dist/nodes/lime-crm/commons/task.js.map +0 -1
  182. package/dist/nodes/lime-crm/commons/webhook.d.ts +0 -20
  183. package/dist/nodes/lime-crm/commons/webhook.js +0 -30
  184. package/dist/nodes/lime-crm/commons/webhook.js.map +0 -1
  185. package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.d.ts +0 -5
  186. package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.js +0 -11
  187. package/dist/nodes/lime-crm/methods/getEntitiesForErpSystem.js.map +0 -1
  188. package/dist/nodes/lime-crm/methods/getLimeTypeProperties.d.ts +0 -2
  189. package/dist/nodes/lime-crm/methods/getLimeTypeProperties.js +0 -20
  190. package/dist/nodes/lime-crm/methods/getLimeTypeProperties.js.map +0 -1
  191. package/dist/nodes/lime-crm/methods/getLimeTypes.d.ts +0 -2
  192. package/dist/nodes/lime-crm/methods/getLimeTypes.js +0 -20
  193. package/dist/nodes/lime-crm/methods/getLimeTypes.js.map +0 -1
  194. package/dist/nodes/lime-crm/methods/index.d.ts +0 -3
  195. package/dist/nodes/lime-crm/methods/index.js +0 -10
  196. package/dist/nodes/lime-crm/methods/index.js.map +0 -1
  197. package/dist/nodes/lime-crm/resources/erpConnector/index.d.ts +0 -23
  198. package/dist/nodes/lime-crm/resources/erpConnector/index.js +0 -67
  199. package/dist/nodes/lime-crm/resources/erpConnector/index.js.map +0 -1
  200. package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.d.ts +0 -26
  201. package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.js +0 -65
  202. package/dist/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.js.map +0 -1
  203. package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.d.ts +0 -9
  204. package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.js +0 -220
  205. package/dist/nodes/lime-crm/resources/erpConnector/operations/transform.operation.js.map +0 -1
  206. package/dist/nodes/lime-crm/resources/erpConnector/transform.d.ts +0 -15
  207. package/dist/nodes/lime-crm/resources/erpConnector/transform.js +0 -11
  208. package/dist/nodes/lime-crm/resources/erpConnector/transform.js.map +0 -1
  209. package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.d.ts +0 -4
  210. package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.js +0 -7
  211. package/dist/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.js.map +0 -1
  212. package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.d.ts +0 -37
  213. package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.js +0 -124
  214. package/dist/nodes/lime-crm/resources/erpConnector/transformers/fortnox.js.map +0 -1
  215. package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.d.ts +0 -1
  216. package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.js +0 -6
  217. package/dist/nodes/lime-crm/resources/erpConnector/transformers/index.js.map +0 -1
  218. package/dist/nodes/lime-crm/resources/limeObject/index.d.ts +0 -14
  219. package/dist/nodes/lime-crm/resources/limeObject/index.js +0 -88
  220. package/dist/nodes/lime-crm/resources/limeObject/index.js.map +0 -1
  221. package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.d.ts +0 -9
  222. package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.js +0 -139
  223. package/dist/nodes/lime-crm/resources/limeObject/operations/create.operation.js.map +0 -1
  224. package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.d.ts +0 -9
  225. package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.js +0 -51
  226. package/dist/nodes/lime-crm/resources/limeObject/operations/delete.operation.js.map +0 -1
  227. package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.d.ts +0 -9
  228. package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.js +0 -103
  229. package/dist/nodes/lime-crm/resources/limeObject/operations/fetchMany.operation.js.map +0 -1
  230. package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.d.ts +0 -9
  231. package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.js +0 -51
  232. package/dist/nodes/lime-crm/resources/limeObject/operations/get.operation.js.map +0 -1
  233. package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.d.ts +0 -9
  234. package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.js +0 -103
  235. package/dist/nodes/lime-crm/resources/limeObject/operations/search.operation.js.map +0 -1
  236. package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.d.ts +0 -9
  237. package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.js +0 -149
  238. package/dist/nodes/lime-crm/resources/limeObject/operations/update.operation.js.map +0 -1
  239. package/dist/nodes/lime-crm/resources/limeQuery/index.d.ts +0 -6
  240. package/dist/nodes/lime-crm/resources/limeQuery/index.js +0 -66
  241. package/dist/nodes/lime-crm/resources/limeQuery/index.js.map +0 -1
  242. package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.d.ts +0 -9
  243. package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.js +0 -191
  244. package/dist/nodes/lime-crm/resources/limeQuery/operations/query.operation.js.map +0 -1
  245. package/dist/nodes/lime-crm/resources/limeType/index.d.ts +0 -20
  246. package/dist/nodes/lime-crm/resources/limeType/index.js +0 -81
  247. package/dist/nodes/lime-crm/resources/limeType/index.js.map +0 -1
  248. package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.d.ts +0 -11
  249. package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.js +0 -36
  250. package/dist/nodes/lime-crm/resources/limeType/operations/getProperties.operation.js.map +0 -1
  251. package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.d.ts +0 -9
  252. package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.js +0 -36
  253. package/dist/nodes/lime-crm/resources/limeType/operations/getType.operation.js.map +0 -1
  254. package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.d.ts +0 -10
  255. package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.js +0 -15
  256. package/dist/nodes/lime-crm/resources/limeType/operations/listTypes.operation.js.map +0 -1
  257. package/dist/nodes/lime-crm/transport/commons.d.ts +0 -5
  258. package/dist/nodes/lime-crm/transport/commons.js +0 -33
  259. package/dist/nodes/lime-crm/transport/commons.js.map +0 -1
  260. package/dist/nodes/lime-crm/transport/erpConnector.d.ts +0 -9
  261. package/dist/nodes/lime-crm/transport/erpConnector.js +0 -11
  262. package/dist/nodes/lime-crm/transport/erpConnector.js.map +0 -1
  263. package/dist/nodes/lime-crm/transport/index.d.ts +0 -6
  264. package/dist/nodes/lime-crm/transport/index.js +0 -24
  265. package/dist/nodes/lime-crm/transport/index.js.map +0 -1
  266. package/dist/nodes/lime-crm/transport/limeQuery.d.ts +0 -10
  267. package/dist/nodes/lime-crm/transport/limeQuery.js +0 -15
  268. package/dist/nodes/lime-crm/transport/limeQuery.js.map +0 -1
  269. package/dist/nodes/lime-crm/transport/limeobjects.d.ts +0 -7
  270. package/dist/nodes/lime-crm/transport/limeobjects.js +0 -134
  271. package/dist/nodes/lime-crm/transport/limeobjects.js.map +0 -1
  272. package/dist/nodes/lime-crm/transport/limetypes.d.ts +0 -6
  273. package/dist/nodes/lime-crm/transport/limetypes.js +0 -54
  274. package/dist/nodes/lime-crm/transport/limetypes.js.map +0 -1
  275. package/dist/nodes/lime-crm/transport/task.d.ts +0 -13
  276. package/dist/nodes/lime-crm/transport/task.js +0 -13
  277. package/dist/nodes/lime-crm/transport/task.js.map +0 -1
  278. package/dist/nodes/lime-crm/transport/webhooks.d.ts +0 -16
  279. package/dist/nodes/lime-crm/transport/webhooks.js +0 -43
  280. package/dist/nodes/lime-crm/transport/webhooks.js.map +0 -1
  281. package/dist/nodes/nodeResponse.d.ts +0 -12
  282. package/dist/nodes/nodeResponse.js +0 -3
  283. package/dist/nodes/nodeResponse.js.map +0 -1
  284. package/dist/package.json +0 -75
  285. package/dist/tsconfig.tsbuildinfo +0 -1
  286. package/docker-compose.yml +0 -52
  287. package/nodes/lime-crm/commons/constants.ts +0 -9
  288. package/nodes/lime-crm/commons/hmac.ts +0 -13
  289. package/nodes/lime-crm/commons/index.ts +0 -10
  290. package/nodes/lime-crm/commons/task.ts +0 -55
  291. package/nodes/lime-crm/commons/webhook.ts +0 -68
  292. package/nodes/lime-crm/methods/getEntitiesForErpSystem.ts +0 -11
  293. package/nodes/lime-crm/model.ts +0 -22
  294. package/nodes/lime-crm/resources/erpConnector/index.ts +0 -43
  295. package/nodes/lime-crm/resources/erpConnector/operations/createOrUpdateObjects.operation.ts +0 -69
  296. package/nodes/lime-crm/resources/erpConnector/operations/transform.operation.ts +0 -274
  297. package/nodes/lime-crm/resources/erpConnector/transform.ts +0 -49
  298. package/nodes/lime-crm/resources/erpConnector/transformers/baseTransformer.ts +0 -18
  299. package/nodes/lime-crm/resources/erpConnector/transformers/fortnox.ts +0 -201
  300. package/nodes/lime-crm/resources/erpConnector/transformers/index.ts +0 -1
  301. package/nodes/lime-crm/transport/erpConnector.ts +0 -21
  302. package/nodes/lime-crm/transport/task.ts +0 -32
  303. package/nodes/nodeResponse.ts +0 -13
  304. package/restore_script/README +0 -42
  305. package/restore_script/api_key_download.txt +0 -0
  306. package/restore_script/api_key_upload.txt +0 -0
  307. package/restore_script/cli.py +0 -73
  308. package/restore_script/download.py +0 -73
  309. package/restore_script/main.py +0 -19
  310. package/restore_script/poetry.lock +0 -162
  311. package/restore_script/pyproject.toml +0 -15
  312. package/restore_script/transfer.py +0 -41
  313. package/restore_script/upload.py +0 -66
  314. package/restore_script/utils.py +0 -42
  315. package/tests/fixtures/fortnox.ts +0 -182
  316. package/tests/transform.spec.ts +0 -187
@@ -1,9 +1,27 @@
1
- import { LIME_CRM_API_CREDENTIAL_KEY } from '../commons';
2
- import { IAllExecuteFunctions } from 'n8n-workflow';
3
- import { NodeResponse } from '../../nodeResponse';
1
+ import { LIME_CRM_API_CREDENTIAL_KEY } from '../models';
2
+ import { IAllExecuteFunctions, JsonObject } from 'n8n-workflow';
3
+ import { WorkflowErrorContext, handleWorkflowError } from '../utils';
4
+ import { APIResponse, SuccessResponse } from '../../response';
4
5
 
5
- type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
6
+ /**
7
+ * HTTP methods supported by the Lime CRM API.
8
+ *
9
+ * @group Transport
10
+ * @public
11
+ */
12
+ export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
6
13
 
14
+ /**
15
+ * Return a copy of the given object with specified keys removed.
16
+ *
17
+ * @param data - The source object
18
+ * @param keys - An array of keys to remove from the object
19
+ *
20
+ * @returns A new object with the specified keys omitted
21
+ *
22
+ * @public
23
+ * @group Transport
24
+ */
7
25
  export function removeKeys<T extends object, K extends keyof T>(
8
26
  data: T,
9
27
  keys: K[]
@@ -15,6 +33,26 @@ export function removeKeys<T extends object, K extends keyof T>(
15
33
  return obj;
16
34
  }
17
35
 
36
+ export function prepareResponseWithoutKeys<T extends object, K extends keyof T>(
37
+ response: SuccessResponse<T>,
38
+ keys: K[]
39
+ ): SuccessResponse<Omit<T, K>> {
40
+ return {
41
+ success: true,
42
+ data: removeKeys(response.data, keys),
43
+ };
44
+ }
45
+
46
+ /**
47
+ * Retrieve the base URL for the Lime CRM API from stored credentials.
48
+ *
49
+ * @param context - The n8n execution context
50
+ *
51
+ * @returns The Lime CRM API base URL as a string
52
+ *
53
+ * @internal
54
+ * @group Transport
55
+ */
18
56
  async function getLimeUrl(context: IAllExecuteFunctions): Promise<string> {
19
57
  const credentials = await context.getCredentials(
20
58
  LIME_CRM_API_CREDENTIAL_KEY
@@ -22,24 +60,55 @@ async function getLimeUrl(context: IAllExecuteFunctions): Promise<string> {
22
60
  return credentials.url as string;
23
61
  }
24
62
 
63
+ /**
64
+ * CallLimeAPI arguments wrapped in a single interface to enable keyword-style
65
+ * arguments.
66
+ *
67
+ * @property method - The HTTP method to use (GET, POST, etc.)
68
+ * @property url - The API endpoint URL (relative path)
69
+ * @property requestOptions - Optional additional request options (headers, body, query, etc.)
70
+ * @property json - Whether to parse the response as JSON.
71
+ * @property errorMetadata - Additional information we want to pass to message in case of error
72
+ *
73
+ * @public
74
+ * @group Transport
75
+ */
76
+
77
+ interface LimeAPIArguments {
78
+ method: HTTPMethod;
79
+ url: string;
80
+ requestOptions?: Record<string, unknown>;
81
+ json?: boolean;
82
+ errorMetadata?: Record<string, unknown>;
83
+ }
84
+
85
+ /**
86
+ * Make an authenticated HTTP request to the Lime CRM API and returns a structured response.
87
+ *
88
+ * @typeParam T - The expected type of the API response data
89
+ * @param nodeContext - The n8n execution context
90
+ * @param options - {@link LimeAPIArguments} object
91
+ *
92
+ * @returns API data or response details
93
+ *
94
+ * @public
95
+ * @group Transport
96
+ */
25
97
  export async function callLimeApi<T>(
26
98
  nodeContext: IAllExecuteFunctions,
27
- method: HTTPMethod,
28
- url: string,
29
- options?: Record<string, unknown>,
30
- json = true
31
- ): Promise<NodeResponse<T>> {
99
+ options: LimeAPIArguments
100
+ ): Promise<APIResponse<T>> {
32
101
  try {
33
- const response: T =
102
+ const response =
34
103
  await nodeContext.helpers.requestWithAuthentication.call(
35
104
  nodeContext,
36
105
  LIME_CRM_API_CREDENTIAL_KEY,
37
106
  {
38
- method: method,
39
- url: url,
40
- json: json,
107
+ method: options.method,
108
+ url: options.url,
109
+ json: options.json || true,
41
110
  baseURL: await getLimeUrl(nodeContext),
42
- ...options,
111
+ ...options.requestOptions,
43
112
  }
44
113
  );
45
114
  return {
@@ -47,11 +116,14 @@ export async function callLimeApi<T>(
47
116
  data: response,
48
117
  };
49
118
  } catch (error) {
50
- return {
51
- success: false,
52
- error: error instanceof Error ? error.message : String(error),
119
+ const errorContext: WorkflowErrorContext = {
120
+ message: error instanceof Error ? error.message : String(error),
53
121
  status: error?.cause?.status,
54
- metadata: options,
122
+ metadata: {
123
+ ...options.requestOptions,
124
+ ...options.errorMetadata,
125
+ } as JsonObject,
55
126
  };
127
+ return handleWorkflowError(nodeContext, errorContext, true);
56
128
  }
57
129
  }
@@ -1,17 +1,51 @@
1
1
  import { callLimeApi, getLimeobject } from '.';
2
2
  import { IExecuteFunctions, IBinaryData, BINARY_ENCODING } from 'n8n-workflow';
3
- import { NodeResponse } from '../../nodeResponse';
4
- import { removeKeys } from './commons';
5
- import { getFilenameFromHeader, setFilename } from '../commons';
6
-
3
+ import { prepareResponseWithoutKeys } from './commons';
4
+ import {
5
+ getFilenameFromHeader,
6
+ handleWorkflowError,
7
+ setFilename,
8
+ } from '../utils';
9
+ import { APIResponse } from '../../response';
10
+ /**
11
+ * Endpoint path for Lime CRM file API.
12
+ *
13
+ * @internal
14
+ * @group Transport
15
+ */
7
16
  const LIME_FILE_URL = '/api/v1/file/';
8
17
 
9
- interface FileApiResponse {
18
+ /**
19
+ * Response from Lime file API containing HTTP headers and raw file body.
20
+ *
21
+ * @property headers - HTTP headers returned by the API
22
+ * @property body - Raw file body as a Buffer
23
+ *
24
+ * @public
25
+ * @group Transport
26
+ */
27
+ export interface FileApiResponse {
10
28
  headers: Record<string, string | string[] | undefined>;
11
29
  body: Buffer;
12
30
  }
13
31
 
14
- interface FileMetadata {
32
+ /**
33
+ * Metadata about a file stored in Lime CRM.
34
+ *
35
+ * @property filename - Name of the file
36
+ * @property id - File ID in Lime CRM
37
+ * @property size - File size in bytes
38
+ * @property content_type - MIME type of the file
39
+ * @property extension - File extension
40
+ * @property created_by - ID of the user who created the file
41
+ * @property locked_by - ID of the user who locked the file
42
+ * @property last_modified - Last modified timestamp
43
+ * @property _links - Optional links returned by Lime API
44
+ *
45
+ * @public
46
+ * @group Transport
47
+ */
48
+ export type FileMetadata = {
15
49
  filename: string;
16
50
  id: number;
17
51
  size: number;
@@ -21,74 +55,101 @@ interface FileMetadata {
21
55
  locked_by: number;
22
56
  last_modified: string;
23
57
  _links?: { [key: string]: { href: string } };
24
- }
25
-
58
+ };
59
+
60
+ /**
61
+ * Retrieve metadata for a file by its ID.
62
+ *
63
+ * @param nodeContext - n8n execution context
64
+ * @param id - The ID of the file
65
+ * @returns File metadata
66
+ *
67
+ * @public
68
+ * @group Transport
69
+ */
26
70
  export async function getFileMetadata(
27
71
  nodeContext: IExecuteFunctions,
28
72
  id: string | number
29
- ): Promise<NodeResponse<FileMetadata>> {
73
+ ): Promise<APIResponse<FileMetadata>> {
30
74
  const url = `${LIME_FILE_URL}${id}/`;
31
- const response = await callLimeApi<FileMetadata>(nodeContext, 'GET', url);
32
- if (!response.success) {
33
- return response;
34
- }
75
+ const fileMetadataResponse = await callLimeApi<FileMetadata>(nodeContext, {
76
+ method: 'GET',
77
+ url: url,
78
+ });
35
79
 
36
- return {
37
- success: true,
38
- data: removeKeys(response.data, ['_links']),
39
- };
80
+ if (!fileMetadataResponse.success) return fileMetadataResponse;
81
+
82
+ return prepareResponseWithoutKeys(fileMetadataResponse, ['_links']);
40
83
  }
41
84
 
85
+ /**
86
+ * Retrieve file metadata for a specific property of a Lime object.
87
+ *
88
+ * @param nodeContext - n8n execution context
89
+ * @param limetype - Name of the Limetype
90
+ * @param id - The Lime object ID
91
+ * @param fileTypeProperty - The property name holding the file reference
92
+ * @returns File metadata
93
+ *
94
+ * @public
95
+ * @group Transport
96
+ */
42
97
  export async function getFileMetadataByLimeobject(
43
98
  nodeContext: IExecuteFunctions,
44
99
  limetype: string,
45
100
  id: string,
46
101
  fileTypeProperty: string
47
- ): Promise<NodeResponse<FileMetadata>> {
102
+ ): Promise<APIResponse<FileMetadata>> {
48
103
  const objectResponse = await getLimeobject(nodeContext, limetype, id);
49
- if (!objectResponse.success) {
50
- return objectResponse;
51
- }
104
+ if (!objectResponse.success) return objectResponse;
105
+
52
106
  const fileId = objectResponse.data[fileTypeProperty] as string | undefined;
53
107
 
54
108
  if (!fileId) {
55
- return {
56
- success: false,
57
- error: 'The specified Limeobject does not have an associated file.',
58
- };
109
+ return handleWorkflowError(
110
+ nodeContext,
111
+ {
112
+ message:
113
+ 'The specified Limeobject does not have an associated file',
114
+ },
115
+ true
116
+ );
59
117
  }
60
118
 
61
- const metadataResponse = await getFileMetadata(nodeContext, fileId);
62
- if (!metadataResponse.success) {
63
- return metadataResponse;
64
- }
119
+ const fileMetadataResponse = await getFileMetadata(nodeContext, fileId);
120
+ if (!fileMetadataResponse.success) return fileMetadataResponse;
65
121
 
66
- return {
67
- success: true,
68
- data: removeKeys(metadataResponse.data, ['_links']),
69
- };
122
+ return prepareResponseWithoutKeys(fileMetadataResponse, ['_links']);
70
123
  }
71
124
 
125
+ /**
126
+ * Download file content by file ID and prepare binary data for n8n nodes.
127
+ *
128
+ * @param nodeContext - n8n execution context
129
+ * @param id - The ID of the file
130
+ * @returns prepared binary data
131
+ *
132
+ * @public
133
+ * @group Transport
134
+ */
72
135
  export async function getFileContent(
73
136
  nodeContext: IExecuteFunctions,
74
137
  id: string | number
75
- ): Promise<NodeResponse<IBinaryData>> {
138
+ ): Promise<APIResponse<IBinaryData>> {
76
139
  const url = `${LIME_FILE_URL}${id}/contents/`;
77
140
 
78
- const response = await callLimeApi<FileApiResponse>(
79
- nodeContext,
80
- 'GET',
81
- url,
82
- {
141
+ const response = await callLimeApi<FileApiResponse>(nodeContext, {
142
+ method: 'GET',
143
+ url: url,
144
+ requestOptions: {
83
145
  encoding: null,
84
146
  responseType: 'stream',
85
147
  resolveWithFullResponse: true,
86
148
  },
87
- false
88
- );
89
- if (!response.success) {
90
- return response;
91
- }
149
+ json: false,
150
+ });
151
+
152
+ if (!response.success) return response;
92
153
 
93
154
  const fileName =
94
155
  getFilenameFromHeader(response.data.headers) || `file_${id}`;
@@ -103,53 +164,82 @@ export async function getFileContent(
103
164
  };
104
165
  }
105
166
 
167
+ /**
168
+ * Download file content for a specific property of a Lime object.
169
+ *
170
+ * @param nodeContext - n8n execution context
171
+ * @param limetype - Name of the Limetype
172
+ * @param id - The Lime object ID
173
+ * @param fileTypeProperty - The property name holding the file reference
174
+ * @returns Prepared binary data
175
+ *
176
+ * @public
177
+ * @group Transport
178
+ */
106
179
  export async function getFileContentByLimetype(
107
180
  nodeContext: IExecuteFunctions,
108
181
  limetype: string,
109
182
  id: string,
110
183
  fileTypeProperty: string
111
- ): Promise<NodeResponse<IBinaryData>> {
112
- const objectResponse = await getLimeobject(nodeContext, limetype, id);
113
- if (!objectResponse.success) {
114
- return objectResponse;
115
- }
116
- const fileId = objectResponse.data[fileTypeProperty] as string | undefined;
184
+ ): Promise<APIResponse<IBinaryData>> {
185
+ const limeObjectResponse = await getLimeobject(nodeContext, limetype, id);
186
+ if (!limeObjectResponse.success) return limeObjectResponse;
187
+
188
+ const fileId = limeObjectResponse.data[fileTypeProperty] as
189
+ | string
190
+ | undefined;
117
191
 
118
192
  if (!fileId) {
119
- return {
120
- success: false,
121
- error: 'The specified Limeobject does not have an associated file.',
122
- };
193
+ return handleWorkflowError(
194
+ nodeContext,
195
+ {
196
+ message:
197
+ 'The specified Limeobject does not have an associated file.',
198
+ },
199
+ true
200
+ );
123
201
  }
124
202
 
125
203
  return await getFileContent(nodeContext, fileId);
126
204
  }
127
205
 
206
+ /**
207
+ * Create a file in Lime CRM using binary data.
208
+ *
209
+ * @param nodeContext - n8n execution context
210
+ * @param binary - The binary data to upload
211
+ * @param fallbackFileName - File name to use if `binary.fileName` is missing
212
+ * @returns Created file metadata
213
+ *
214
+ * @public
215
+ * @group Transport
216
+ */
128
217
  export async function createFile(
129
218
  nodeContext: IExecuteFunctions,
130
219
  binary: IBinaryData,
131
220
  fallbackFileName: string
132
- ): Promise<NodeResponse<FileMetadata>> {
133
- const response = await callLimeApi<FileMetadata>(
134
- nodeContext,
135
- 'POST',
136
- LIME_FILE_URL,
137
- {
221
+ ): Promise<APIResponse<FileMetadata>> {
222
+ const response = await callLimeApi<FileMetadata>(nodeContext, {
223
+ method: 'POST',
224
+ url: LIME_FILE_URL,
225
+ requestOptions: {
138
226
  body: Buffer.from(binary.data, BINARY_ENCODING),
139
227
  headers: {
140
228
  'Content-Disposition': `;filename*="UTF-8''${encodeURIComponent(binary.fileName || fallbackFileName)}"`,
141
229
  'Content-Type': binary.mimeType,
142
230
  },
143
- }
144
- );
145
-
146
- // Remove metadata from the response to reduce its overall size
147
- if (!response.success) {
148
- return { success: false, error: response.error };
149
- }
231
+ },
232
+ });
233
+ if (!response.success)
234
+ return {
235
+ success: false,
236
+ data: {
237
+ error: {
238
+ message: response.data.error.message,
239
+ status: response.data.error.status,
240
+ },
241
+ },
242
+ };
150
243
 
151
- return {
152
- success: true,
153
- data: removeKeys(response.data, ['_links']),
154
- };
244
+ return prepareResponseWithoutKeys(response, ['_links']);
155
245
  }
@@ -1,25 +1,43 @@
1
+ export { HTTPMethod, callLimeApi, removeKeys } from './commons';
1
2
  export {
2
- getSubscription,
3
- deleteSubscription,
4
- createSubscription,
5
- listSubscriptionsWithExistingData,
6
- } from './webhooks';
7
- export { getLimetypesFromApi, getProperties } from './limetypes';
8
-
3
+ FileApiResponse,
4
+ FileMetadata,
5
+ createFile,
6
+ getFileContent,
7
+ getFileContentByLimetype,
8
+ getFileMetadata,
9
+ getFileMetadataByLimeobject,
10
+ } from './files';
9
11
  export {
12
+ FetchManyLimeobjectsApiResponse,
13
+ LimeobjectCrmApiResponse,
10
14
  createLimeobject,
11
15
  deleteLimeobject,
12
16
  updateLimeobject,
13
17
  getLimeobject,
14
- fetchManyLimeobjects,
15
18
  } from './limeobjects';
16
- export { startCreateOrUpdateObjectsTask } from './erpConnector';
17
- export { queryLimeobjects } from './limeQuery';
18
19
  export {
19
- createFile,
20
- getFileContent,
21
- getFileContentByLimetype,
22
- getFileMetadata,
23
- getFileMetadataByLimeobject,
24
- } from './files';
25
- export { callLimeApi } from './commons';
20
+ IncludedProperties,
21
+ QueryResponse,
22
+ queryLimeobjects,
23
+ } from './limeQuery';
24
+ export {
25
+ LimetypeCrmApiResponse,
26
+ LimetypePropertiesApiResponse,
27
+ LimetypePropertyApiResponse,
28
+ LimetypesCrmApiResponse,
29
+ getLimetypesFromApi,
30
+ getProperties,
31
+ } from './limetypes';
32
+ export {
33
+ ApiResponseWebhook,
34
+ createSubscription,
35
+ deleteSubscription,
36
+ getSubscription,
37
+ listSubscriptionsWithExistingData,
38
+ } from './webhooks';
39
+ export {
40
+ fetchManyUsers,
41
+ fetchSingleUserById,
42
+ fetchSingleUserByLimeobjectId,
43
+ } from './users';
@@ -1,26 +1,62 @@
1
1
  import { IAllExecuteFunctions } from 'n8n-workflow';
2
- import { NodeResponse } from '../../nodeResponse';
3
2
  import { callLimeApi } from './commons';
4
-
3
+ import { APIResponsePrimitiveValue } from '../models';
4
+ import { APIResponse } from '../../response';
5
+ /**
6
+ * Endpoint path for Lime CRM Lime Query API.
7
+ *
8
+ * @internal
9
+ * @group Transport
10
+ */
5
11
  const LIME_QUERY_URL = '/api/v1/query/';
6
12
 
7
- interface IncludedProperties {
8
- [key: string]: IncludedProperties | string | number | boolean | null;
13
+ /**
14
+ * Structure of included properties returned by a query.
15
+ *
16
+ * The properties can themselves contain nested objects, primitive values, or nulls.
17
+ *
18
+ * @public
19
+ * @group Transport
20
+ */
21
+ export interface IncludedProperties {
22
+ [key: string]: IncludedProperties | APIResponsePrimitiveValue;
9
23
  }
10
24
 
25
+ /**
26
+ * The structure of a Lime CRM query API response.
27
+ *
28
+ * @property objects - An array of returned Limeobjects with their properties represented by a {@link IncludedProperties}
29
+ *
30
+ * @public
31
+ * @group Transport
32
+ */
11
33
  export interface QueryResponse {
12
34
  objects: IncludedProperties[];
13
35
  }
14
36
 
37
+ /**
38
+ * Execute a Lime CRM query through the API.
39
+ *
40
+ * @param nodeContext - The n8n execution context
41
+ * @param q - The query string to execute
42
+ * @returns Query results
43
+ *
44
+ * @public
45
+ * @group Transport
46
+ */
15
47
  export async function queryLimeobjects(
16
48
  nodeContext: IAllExecuteFunctions,
17
49
  q: string
18
- ): Promise<NodeResponse<QueryResponse>> {
50
+ ): Promise<APIResponse<QueryResponse>> {
19
51
  const queryParameters = {
20
52
  q: q,
21
53
  };
22
54
 
23
- return await callLimeApi(nodeContext, 'GET', LIME_QUERY_URL, {
24
- qs: queryParameters,
55
+ return await callLimeApi(nodeContext, {
56
+ method: 'GET',
57
+ url: LIME_QUERY_URL,
58
+ requestOptions: {
59
+ qs: queryParameters,
60
+ },
25
61
  });
26
62
  }