@machinemetrics/mm-erp-sdk 0.1.9 → 0.2.0-beta.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 (339) hide show
  1. package/README.md +0 -5
  2. package/dist/config-CvA-mFWF.js +418 -0
  3. package/dist/config-CvA-mFWF.js.map +1 -0
  4. package/dist/connector-factory-BPm2GVVF.js +30 -0
  5. package/dist/connector-factory-BPm2GVVF.js.map +1 -0
  6. package/dist/hashed-cache-manager-B15NN8hK.js +322 -0
  7. package/dist/hashed-cache-manager-B15NN8hK.js.map +1 -0
  8. package/dist/index-D8qO1NyK.js +192 -0
  9. package/dist/index-D8qO1NyK.js.map +1 -0
  10. package/dist/index.d.ts +43 -42
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/knexfile-Bng2Ru9c.js +20 -0
  13. package/dist/knexfile-Bng2Ru9c.js.map +1 -0
  14. package/dist/knexfile.d.ts.map +1 -1
  15. package/dist/logger-BWw0_z9q.js +17557 -0
  16. package/dist/logger-BWw0_z9q.js.map +1 -0
  17. package/dist/migrations/20241015162631_create_cache_table.js +15 -11
  18. package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
  19. package/dist/migrations/20241015162632_create_sdk_cache_table.js +15 -11
  20. package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
  21. package/dist/migrations/20250103162631_create_record_tracking_table.js +15 -14
  22. package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
  23. package/dist/mm-erp-sdk.js +4978 -0
  24. package/dist/mm-erp-sdk.js.map +1 -0
  25. package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
  26. package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
  27. package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
  28. package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
  29. package/dist/services/caching-service/index.d.ts +1 -1
  30. package/dist/services/caching-service/index.d.ts.map +1 -1
  31. package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
  32. package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
  33. package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
  34. package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
  35. package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
  36. package/dist/services/data-sync-service/index.d.ts +3 -3
  37. package/dist/services/data-sync-service/index.d.ts.map +1 -1
  38. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +39 -40
  39. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
  40. package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
  41. package/dist/services/data-sync-service/jobs/from-erp.js +36 -48
  42. package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
  43. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +35 -36
  44. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
  45. package/dist/services/data-sync-service/jobs/run-migrations.js +21 -22
  46. package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
  47. package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
  48. package/dist/services/data-sync-service/jobs/to-erp.js +45 -48
  49. package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
  50. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +30 -0
  51. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +1 -0
  52. package/dist/services/erp-api-services/errors.d.ts +1 -1
  53. package/dist/services/erp-api-services/errors.d.ts.map +1 -1
  54. package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
  55. package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
  56. package/dist/services/erp-api-services/index.d.ts +8 -8
  57. package/dist/services/erp-api-services/index.d.ts.map +1 -1
  58. package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
  59. package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
  60. package/dist/services/erp-api-services/types.d.ts +2 -2
  61. package/dist/services/erp-api-services/types.d.ts.map +1 -1
  62. package/dist/services/mm-api-service/company-info.d.ts +13 -0
  63. package/dist/services/mm-api-service/company-info.d.ts.map +1 -0
  64. package/dist/services/mm-api-service/index.d.ts +13 -6
  65. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  66. package/dist/services/mm-api-service/mm-api-service.d.ts +13 -7
  67. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  68. package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
  69. package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
  70. package/dist/services/mm-api-service/types/receive-types.d.ts +3 -0
  71. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  72. package/dist/services/nats-service/nats-service.d.ts +114 -0
  73. package/dist/services/nats-service/nats-service.d.ts.map +1 -0
  74. package/dist/services/nats-service/test-nats-subscriber.d.ts +6 -0
  75. package/dist/services/nats-service/test-nats-subscriber.d.ts.map +1 -0
  76. package/dist/services/psql-erp-service/index.d.ts +3 -3
  77. package/dist/services/psql-erp-service/index.d.ts.map +1 -1
  78. package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
  79. package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
  80. package/dist/services/reporting-service/index.d.ts +1 -1
  81. package/dist/services/reporting-service/index.d.ts.map +1 -1
  82. package/dist/services/reporting-service/logger.d.ts.map +1 -1
  83. package/dist/services/sql-server-erp-service/index.d.ts +3 -3
  84. package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
  85. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
  86. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
  87. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
  88. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
  89. package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
  90. package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
  91. package/dist/services/sqlite-service/index.d.ts +1 -1
  92. package/dist/services/sqlite-service/index.d.ts.map +1 -1
  93. package/dist/types/erp-connector.d.ts +1 -1
  94. package/dist/types/erp-connector.d.ts.map +1 -1
  95. package/dist/types/index.d.ts +2 -2
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/utils/connector-factory.d.ts +1 -1
  98. package/dist/utils/connector-factory.d.ts.map +1 -1
  99. package/dist/utils/connector-log/log-deduper.d.ts +1 -1
  100. package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
  101. package/dist/utils/connector-log/mm-connector-logger-example.d.ts +0 -1
  102. package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
  103. package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
  104. package/dist/utils/erp-type-from-entity.d.ts +1 -1
  105. package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
  106. package/dist/utils/error-formatter.d.ts +19 -0
  107. package/dist/utils/error-formatter.d.ts.map +1 -0
  108. package/dist/utils/index.d.ts +38 -33
  109. package/dist/utils/index.d.ts.map +1 -1
  110. package/dist/utils/mm-labor-ticket-helpers.d.ts +1 -1
  111. package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
  112. package/dist/utils/removeExtraneousFields.d.ts +1 -1
  113. package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
  114. package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
  115. package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
  116. package/dist/utils/resource-group.d.ts +1 -1
  117. package/dist/utils/resource-group.d.ts.map +1 -1
  118. package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
  119. package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
  120. package/dist/utils/standard-process-drivers/index.d.ts +3 -3
  121. package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
  122. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +1 -1
  123. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  124. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +4 -4
  125. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  126. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +4 -4
  127. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  128. package/package.json +10 -6
  129. package/src/index.ts +45 -42
  130. package/src/knexfile.ts +0 -1
  131. package/src/services/caching-service/batch-cache-manager.ts +2 -2
  132. package/src/services/caching-service/hashed-cache-manager.ts +5 -5
  133. package/src/services/caching-service/index.ts +1 -1
  134. package/src/services/caching-service/record-tracking-manager.ts +2 -2
  135. package/src/services/data-sync-service/configuration-manager.ts +2 -2
  136. package/src/services/data-sync-service/data-sync-service.ts +19 -10
  137. package/src/services/data-sync-service/index.ts +3 -3
  138. package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +3 -3
  139. package/src/services/data-sync-service/jobs/from-erp.ts +5 -10
  140. package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +2 -2
  141. package/src/services/data-sync-service/jobs/run-migrations.ts +2 -2
  142. package/src/services/data-sync-service/jobs/to-erp.ts +7 -3
  143. package/src/services/data-sync-service/nats-labor-ticket-listener.ts +341 -0
  144. package/src/services/erp-api-services/errors.ts +3 -3
  145. package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
  146. package/src/services/erp-api-services/index.ts +8 -8
  147. package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
  148. package/src/services/erp-api-services/types.ts +2 -2
  149. package/src/services/mm-api-service/company-info.ts +87 -0
  150. package/src/services/mm-api-service/index.ts +14 -6
  151. package/src/services/mm-api-service/mm-api-service.ts +29 -12
  152. package/src/services/mm-api-service/token-mgr.ts +4 -4
  153. package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
  154. package/src/services/mm-api-service/types/receive-types.ts +1 -0
  155. package/src/services/nats-service/nats-service.ts +351 -0
  156. package/src/services/nats-service/test-nats-subscriber.ts +96 -0
  157. package/src/services/psql-erp-service/index.ts +3 -3
  158. package/src/services/psql-erp-service/psql-service.ts +4 -4
  159. package/src/services/reporting-service/index.ts +1 -1
  160. package/src/services/reporting-service/logger.ts +81 -111
  161. package/src/services/sql-server-erp-service/index.ts +3 -3
  162. package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
  163. package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
  164. package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
  165. package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
  166. package/src/services/sqlite-service/index.ts +1 -1
  167. package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
  168. package/src/types/erp-connector.ts +1 -1
  169. package/src/types/index.ts +2 -2
  170. package/src/utils/application-initializer.ts +5 -5
  171. package/src/utils/connector-factory.ts +2 -2
  172. package/src/utils/connector-log/log-deduper.ts +2 -2
  173. package/src/utils/connector-log/mm-connector-logger.ts +3 -3
  174. package/src/utils/erp-type-from-entity.ts +1 -1
  175. package/src/utils/error-formatter.ts +205 -0
  176. package/src/utils/http-client.ts +3 -2
  177. package/src/utils/index.ts +39 -33
  178. package/src/utils/local-data-store/database-lock.ts +1 -1
  179. package/src/utils/mm-labor-ticket-helpers.ts +2 -2
  180. package/src/utils/removeExtraneousFields.ts +1 -1
  181. package/src/utils/removeIdFieldFromPayload.ts +1 -1
  182. package/src/utils/resource-group.ts +2 -2
  183. package/src/utils/standard-process-drivers/error-processor.ts +5 -5
  184. package/src/utils/standard-process-drivers/index.ts +3 -3
  185. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +6 -6
  186. package/src/utils/standard-process-drivers/mm-entity-processor.ts +7 -7
  187. package/src/utils/standard-process-drivers/standard-process-drivers.ts +6 -6
  188. package/src/utils/time-utils.ts +3 -3
  189. package/src/utils/timezone.ts +2 -2
  190. package/dist/index.js +0 -48
  191. package/dist/index.js.map +0 -1
  192. package/dist/knexfile.js +0 -19
  193. package/dist/knexfile.js.map +0 -1
  194. package/dist/migrations/20241015162631_create_cache_table.d.ts +0 -4
  195. package/dist/migrations/20241015162631_create_cache_table.d.ts.map +0 -1
  196. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +0 -4
  197. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +0 -1
  198. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +0 -4
  199. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +0 -1
  200. package/dist/services/caching-service/batch-cache-manager.js +0 -84
  201. package/dist/services/caching-service/batch-cache-manager.js.map +0 -1
  202. package/dist/services/caching-service/hashed-cache-manager.js +0 -223
  203. package/dist/services/caching-service/hashed-cache-manager.js.map +0 -1
  204. package/dist/services/caching-service/index.js +0 -2
  205. package/dist/services/caching-service/index.js.map +0 -1
  206. package/dist/services/caching-service/record-tracking-manager.js +0 -28
  207. package/dist/services/caching-service/record-tracking-manager.js.map +0 -1
  208. package/dist/services/data-sync-service/configuration-manager.js +0 -163
  209. package/dist/services/data-sync-service/configuration-manager.js.map +0 -1
  210. package/dist/services/data-sync-service/data-sync-service.js +0 -95
  211. package/dist/services/data-sync-service/data-sync-service.js.map +0 -1
  212. package/dist/services/data-sync-service/index.js +0 -10
  213. package/dist/services/data-sync-service/index.js.map +0 -1
  214. package/dist/services/erp-api-services/errors.js +0 -83
  215. package/dist/services/erp-api-services/errors.js.map +0 -1
  216. package/dist/services/erp-api-services/graphql/graphql-service.js +0 -102
  217. package/dist/services/erp-api-services/graphql/graphql-service.js.map +0 -1
  218. package/dist/services/erp-api-services/graphql/types.js +0 -6
  219. package/dist/services/erp-api-services/graphql/types.js.map +0 -1
  220. package/dist/services/erp-api-services/index.js +0 -13
  221. package/dist/services/erp-api-services/index.js.map +0 -1
  222. package/dist/services/erp-api-services/oauth-client.js +0 -41
  223. package/dist/services/erp-api-services/oauth-client.js.map +0 -1
  224. package/dist/services/erp-api-services/rest/get-query-params.js +0 -23
  225. package/dist/services/erp-api-services/rest/get-query-params.js.map +0 -1
  226. package/dist/services/erp-api-services/rest/rest-api-service.js +0 -163
  227. package/dist/services/erp-api-services/rest/rest-api-service.js.map +0 -1
  228. package/dist/services/erp-api-services/types.js +0 -2
  229. package/dist/services/erp-api-services/types.js.map +0 -1
  230. package/dist/services/mm-api-service/index.js +0 -15
  231. package/dist/services/mm-api-service/index.js.map +0 -1
  232. package/dist/services/mm-api-service/mm-api-service.js +0 -519
  233. package/dist/services/mm-api-service/mm-api-service.js.map +0 -1
  234. package/dist/services/mm-api-service/token-mgr.js +0 -113
  235. package/dist/services/mm-api-service/token-mgr.js.map +0 -1
  236. package/dist/services/mm-api-service/types/checkpoint.js +0 -2
  237. package/dist/services/mm-api-service/types/checkpoint.js.map +0 -1
  238. package/dist/services/mm-api-service/types/entity-transformer.js +0 -186
  239. package/dist/services/mm-api-service/types/entity-transformer.js.map +0 -1
  240. package/dist/services/mm-api-service/types/mm-response-interfaces.js +0 -34
  241. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +0 -1
  242. package/dist/services/mm-api-service/types/receive-types.js +0 -55
  243. package/dist/services/mm-api-service/types/receive-types.js.map +0 -1
  244. package/dist/services/mm-api-service/types/send-types.js +0 -337
  245. package/dist/services/mm-api-service/types/send-types.js.map +0 -1
  246. package/dist/services/psql-erp-service/configuration.js +0 -2
  247. package/dist/services/psql-erp-service/configuration.js.map +0 -1
  248. package/dist/services/psql-erp-service/index.js +0 -10
  249. package/dist/services/psql-erp-service/index.js.map +0 -1
  250. package/dist/services/psql-erp-service/internal/types/psql-types.js +0 -5
  251. package/dist/services/psql-erp-service/internal/types/psql-types.js.map +0 -1
  252. package/dist/services/psql-erp-service/psql-helpers.js +0 -99
  253. package/dist/services/psql-erp-service/psql-helpers.js.map +0 -1
  254. package/dist/services/psql-erp-service/psql-service.js +0 -187
  255. package/dist/services/psql-erp-service/psql-service.js.map +0 -1
  256. package/dist/services/reporting-service/index.js +0 -5
  257. package/dist/services/reporting-service/index.js.map +0 -1
  258. package/dist/services/reporting-service/logger.js +0 -217
  259. package/dist/services/reporting-service/logger.js.map +0 -1
  260. package/dist/services/sql-server-erp-service/configuration.js +0 -2
  261. package/dist/services/sql-server-erp-service/configuration.js.map +0 -1
  262. package/dist/services/sql-server-erp-service/index.js +0 -11
  263. package/dist/services/sql-server-erp-service/index.js.map +0 -1
  264. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +0 -50
  265. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +0 -1
  266. package/dist/services/sql-server-erp-service/internal/sql-server-config.js +0 -40
  267. package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +0 -1
  268. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +0 -36
  269. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +0 -1
  270. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +0 -2
  271. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +0 -1
  272. package/dist/services/sql-server-erp-service/sql-server-helpers.js +0 -66
  273. package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +0 -1
  274. package/dist/services/sql-server-erp-service/sql-server-service.js +0 -154
  275. package/dist/services/sql-server-erp-service/sql-server-service.js.map +0 -1
  276. package/dist/services/sql-server-erp-service/types/sql-input-param.js +0 -2
  277. package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +0 -1
  278. package/dist/services/sqlite-service/index.js +0 -2
  279. package/dist/services/sqlite-service/index.js.map +0 -1
  280. package/dist/services/sqlite-service/sqlite-coordinator.js +0 -60
  281. package/dist/services/sqlite-service/sqlite-coordinator.js.map +0 -1
  282. package/dist/types/erp-connector.js +0 -2
  283. package/dist/types/erp-connector.js.map +0 -1
  284. package/dist/types/erp-types.js +0 -13
  285. package/dist/types/erp-types.js.map +0 -1
  286. package/dist/types/index.js +0 -6
  287. package/dist/types/index.js.map +0 -1
  288. package/dist/utils/application-initializer.js +0 -55
  289. package/dist/utils/application-initializer.js.map +0 -1
  290. package/dist/utils/cleanup-numbers.js +0 -6
  291. package/dist/utils/cleanup-numbers.js.map +0 -1
  292. package/dist/utils/connector-factory.js +0 -34
  293. package/dist/utils/connector-factory.js.map +0 -1
  294. package/dist/utils/connector-log/log-deduper.js +0 -240
  295. package/dist/utils/connector-log/log-deduper.js.map +0 -1
  296. package/dist/utils/connector-log/mm-connector-logger-example.js +0 -88
  297. package/dist/utils/connector-log/mm-connector-logger-example.js.map +0 -1
  298. package/dist/utils/connector-log/mm-connector-logger.js +0 -151
  299. package/dist/utils/connector-log/mm-connector-logger.js.map +0 -1
  300. package/dist/utils/data-transformation.js +0 -38
  301. package/dist/utils/data-transformation.js.map +0 -1
  302. package/dist/utils/erp-type-from-entity.js +0 -6
  303. package/dist/utils/erp-type-from-entity.js.map +0 -1
  304. package/dist/utils/error-utils.js +0 -21
  305. package/dist/utils/error-utils.js.map +0 -1
  306. package/dist/utils/http-client.js +0 -186
  307. package/dist/utils/http-client.js.map +0 -1
  308. package/dist/utils/index.js +0 -65
  309. package/dist/utils/index.js.map +0 -1
  310. package/dist/utils/local-data-store/database-lock.js +0 -68
  311. package/dist/utils/local-data-store/database-lock.js.map +0 -1
  312. package/dist/utils/local-data-store/jobs-shared-data.js +0 -116
  313. package/dist/utils/local-data-store/jobs-shared-data.js.map +0 -1
  314. package/dist/utils/mm-labor-ticket-helpers.js +0 -23
  315. package/dist/utils/mm-labor-ticket-helpers.js.map +0 -1
  316. package/dist/utils/removeExtraneousFields.js +0 -16
  317. package/dist/utils/removeExtraneousFields.js.map +0 -1
  318. package/dist/utils/removeIdFieldFromPayload.js +0 -16
  319. package/dist/utils/removeIdFieldFromPayload.js.map +0 -1
  320. package/dist/utils/resource-group.js +0 -59
  321. package/dist/utils/resource-group.js.map +0 -1
  322. package/dist/utils/standard-process-drivers/error-processor.js +0 -262
  323. package/dist/utils/standard-process-drivers/error-processor.js.map +0 -1
  324. package/dist/utils/standard-process-drivers/index.js +0 -4
  325. package/dist/utils/standard-process-drivers/index.js.map +0 -1
  326. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +0 -164
  327. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +0 -1
  328. package/dist/utils/standard-process-drivers/mm-entity-processor.js +0 -168
  329. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +0 -1
  330. package/dist/utils/standard-process-drivers/standard-process-drivers.js +0 -324
  331. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +0 -1
  332. package/dist/utils/time-utils.js +0 -96
  333. package/dist/utils/time-utils.js.map +0 -1
  334. package/dist/utils/timezone.js +0 -105
  335. package/dist/utils/timezone.js.map +0 -1
  336. package/dist/utils/trimObjectValues.js +0 -11
  337. package/dist/utils/trimObjectValues.js.map +0 -1
  338. package/dist/utils/uniqueRows.js +0 -35
  339. package/dist/utils/uniqueRows.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { PsqlService } from "./psql-service.js";
1
+ import { PsqlService } from "./psql-service";
2
2
 
3
3
  /**
4
4
  * A class to manage interactions with PSQL (Pervasive) databases via ODBC
@@ -8,7 +8,7 @@ export { PsqlService };
8
8
  /**
9
9
  * Configuration interface for PSQL connections
10
10
  */
11
- export type { PsqlConfiguration } from "./configuration.js";
11
+ export type { PsqlConfiguration } from "./configuration";
12
12
 
13
13
  /**
14
14
  * Helper functions for PSQL data formatting
@@ -19,4 +19,4 @@ export {
19
19
  combinePsqlDateTime,
20
20
  isPsqlDateEmpty,
21
21
  cleanPsqlCharField,
22
- } from "./psql-helpers.js";
22
+ } from "./psql-helpers";
@@ -1,7 +1,7 @@
1
- import { PsqlConfiguration } from "./configuration.js";
2
- import { ERPResponse } from "../../types/erp-types.js";
3
- import { OdbcErrorResponse } from "./internal/types/psql-types.js";
4
- import logger from "../reporting-service/logger.js";
1
+ import { PsqlConfiguration } from "./configuration";
2
+ import { ERPResponse } from "../../types/erp-types";
3
+ import { OdbcErrorResponse } from "./internal/types/psql-types";
4
+ import logger from "../reporting-service/logger";
5
5
 
6
6
  type PagingParams = {
7
7
  limit?: number;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Export the logger instance for use throughout the application
3
3
  */
4
- export { default as logger } from "./logger.js";
4
+ export { default as logger } from "./logger";
@@ -3,33 +3,6 @@ import DailyRotateFile from "winston-daily-rotate-file";
3
3
  import path from "path";
4
4
 
5
5
  const logDirectory = "logs";
6
- const initialLogLevel = process.env.LOG_LEVEL || "info";
7
-
8
- const LOGGER_ERROR_PREFIX = "[mm-erp-sdk logger]";
9
-
10
- const serializeLoggerError = (error: unknown): string => {
11
- if (error instanceof Error) {
12
- return error.stack ?? error.message;
13
- }
14
- if (typeof error === "string") {
15
- return error;
16
- }
17
- try {
18
- return JSON.stringify(error);
19
- } catch {
20
- return String(error);
21
- }
22
- };
23
-
24
- const handleLoggerError = (error: unknown) => {
25
- const serialized = serializeLoggerError(error);
26
- try {
27
- // eslint-disable-next-line no-console
28
- console.error(`${LOGGER_ERROR_PREFIX} transport error: ${serialized}`);
29
- } catch {
30
- /* ignore failures when reporting logger errors */
31
- }
32
- };
33
6
 
34
7
  const MSG_MAX_LEN = 60;
35
8
  const MSG_MAX_CHARS = 2048;
@@ -50,8 +23,45 @@ const truncateString = (str: string): string => {
50
23
  return result;
51
24
  };
52
25
 
26
+ /**
27
+ * Safe JSON serializer that handles circular references and extracts meaningful error data
28
+ */
29
+ const safeStringify = (obj: any, indent: number = 2): string => {
30
+ const seen = new WeakSet();
31
+
32
+ return JSON.stringify(
33
+ obj,
34
+ (key, value) => {
35
+ // Handle Error objects specially
36
+ if (value instanceof Error) {
37
+ return {
38
+ message: value.message,
39
+ name: value.name,
40
+ stack: value.stack,
41
+ ...(value.constructor.name === 'HTTPError' || value.constructor.name === 'AxiosError' ? {
42
+ status: (value as any).status,
43
+ code: (value as any).code,
44
+ data: (value as any).data,
45
+ } : {}),
46
+ };
47
+ }
48
+
49
+ // Handle circular references
50
+ if (typeof value === "object" && value !== null) {
51
+ if (seen.has(value)) {
52
+ return "[Circular]";
53
+ }
54
+ seen.add(value);
55
+ }
56
+
57
+ return value;
58
+ },
59
+ indent
60
+ );
61
+ };
62
+
53
63
  const baseFormat = format.printf(({ timestamp, level, message, ...rest }) => {
54
- let restString = JSON.stringify(rest, undefined, 2);
64
+ let restString = safeStringify(rest, 2);
55
65
  restString = restString === "{}" ? "" : restString;
56
66
 
57
67
  let formattedMessage: string;
@@ -87,31 +97,25 @@ const logFormat = format.combine(
87
97
  baseFormat
88
98
  );
89
99
 
90
- const createConsoleTransport = () => {
91
- const consoleTransport = new transports.Console({
92
- format: format.combine(
93
- format.timestamp(),
94
- format.splat(),
95
- baseFormat,
96
- format.colorize({ all: true })
97
- ),
98
- });
99
- consoleTransport.on("error", handleLoggerError);
100
- return consoleTransport;
101
- };
102
-
103
100
  // Create a basic logger with default configuration
104
101
  const logger = createLogger({
105
- level: initialLogLevel,
102
+ level: process.env.LOG_LEVEL || "info",
106
103
  format: logFormat,
107
- transports: [createConsoleTransport()],
104
+ transports: [
105
+ new transports.Console({
106
+ format: format.combine(
107
+ format.timestamp(),
108
+ format.splat(),
109
+ baseFormat,
110
+ format.colorize({ all: true })
111
+ ),
112
+ }),
113
+ ],
108
114
  });
109
115
 
110
- logger.on("error", handleLoggerError);
111
-
112
116
  // Helper function to create a file transport with shared configuration
113
117
  const createFileTransport = (): DailyRotateFile => {
114
- const transport = new DailyRotateFile({
118
+ return new DailyRotateFile({
115
119
  filename: path.join(logDirectory, "%DATE%.log"),
116
120
  datePattern: "YYYY-MM-DD",
117
121
  zippedArchive: true,
@@ -119,8 +123,6 @@ const createFileTransport = (): DailyRotateFile => {
119
123
  maxFiles: "14d",
120
124
  format: logFormat,
121
125
  });
122
- transport.on("error", handleLoggerError);
123
- return transport;
124
126
  };
125
127
 
126
128
  // Rotate mitigation helper: attaches rotate handler to transport and recursively attaches to replacements
@@ -134,76 +136,35 @@ function attachRotateMitigation(
134
136
  if (isRefreshing) return;
135
137
  isRefreshing = true;
136
138
  let removalTimer: NodeJS.Timeout | null = null;
137
- let next: DailyRotateFile | null = null;
138
139
 
139
- const cleanupRefresh = () => {
140
+ // Create replacement first to avoid any logging gap
141
+ const next = createFileTransport();
142
+ // When the new file is created, remove the old transport
143
+ next.on("new", () => {
140
144
  if (removalTimer) {
141
145
  clearTimeout(removalTimer);
142
146
  removalTimer = null;
143
147
  }
148
+ try {
149
+ logger.remove(transport);
150
+ } catch {}
144
151
  isRefreshing = false;
145
- };
146
-
147
- try {
148
- // Create replacement first to avoid any logging gap
149
- next = createFileTransport();
150
- // When the new file is created, remove the old transport
151
- next.on("new", () => {
152
- if (removalTimer) {
153
- clearTimeout(removalTimer);
154
- removalTimer = null;
155
- }
156
- try {
157
- logger.remove(transport);
158
- } catch (error) {
159
- handleLoggerError(error);
160
- }
161
- cleanupRefresh();
162
- });
163
- attachRotateMitigation(next, opts);
152
+ });
153
+ attachRotateMitigation(next, opts);
154
+ logger.add(next);
155
+
156
+ // Fallback: if the "new" event doesn't fire, remove the old transport after a grace period
157
+ const REMOVAL_GRACE_MS = 30000;
158
+ removalTimer = setTimeout(() => {
164
159
  try {
165
- logger.add(next);
166
- } catch (error) {
167
- handleLoggerError(error);
168
- cleanupRefresh();
169
- try {
170
- logger.remove(next);
171
- } catch {}
172
- try {
173
- if (typeof next.close === "function") {
174
- next.close();
175
- }
176
- } catch {}
177
- return;
178
- }
160
+ logger.remove(transport);
161
+ } catch {}
162
+ isRefreshing = false;
163
+ removalTimer = null;
164
+ }, REMOVAL_GRACE_MS);
179
165
 
180
- // Fallback: if the "new" event doesn't fire, remove the old transport after a grace period
181
- const REMOVAL_GRACE_MS = 30000;
182
- removalTimer = setTimeout(() => {
183
- try {
184
- logger.remove(transport);
185
- } catch (error) {
186
- handleLoggerError(error);
187
- }
188
- cleanupRefresh();
189
- }, REMOVAL_GRACE_MS);
190
-
191
- // Keep console and other transports intact; do not silence or clear
192
- logger.level = logLevel;
193
- } catch (error) {
194
- cleanupRefresh();
195
- handleLoggerError(error);
196
- if (next) {
197
- try {
198
- logger.remove(next);
199
- } catch {}
200
- try {
201
- if (typeof next.close === "function") {
202
- next.close();
203
- }
204
- } catch {}
205
- }
206
- }
166
+ // Keep console and other transports intact; do not silence or clear
167
+ logger.level = logLevel;
207
168
  });
208
169
  }
209
170
 
@@ -233,7 +194,16 @@ export const configureLogger = (logLevel: string, nodeEnv: string) => {
233
194
 
234
195
  // Add console transport in non-production environments
235
196
  if (nodeEnv !== "production") {
236
- logger.add(createConsoleTransport());
197
+ logger.add(
198
+ new transports.Console({
199
+ format: format.combine(
200
+ format.timestamp(),
201
+ format.splat(),
202
+ baseFormat,
203
+ format.colorize({ all: true })
204
+ ),
205
+ })
206
+ );
237
207
  }
238
208
 
239
209
  // Set the log level
@@ -1,6 +1,6 @@
1
- import { SqlServerService } from "./sql-server-service.js";
2
- import { SqlServerHelper } from "./sql-server-helpers.js";
3
- import { SQLInput } from "./types/sql-input-param.js";
1
+ import { SqlServerService } from "./sql-server-service";
2
+ import { SqlServerHelper } from "./sql-server-helpers";
3
+ import { SQLInput } from "./types/sql-input-param";
4
4
 
5
5
  /**
6
6
  * A class to manage interactions with SQL Server
@@ -1,6 +1,6 @@
1
1
  import sql from "mssql";
2
- import { SQLInput } from "../types/sql-input-param.js";
3
- import { SQLTransactionOperation } from "./sql-transaction-manager.js";
2
+ import { SQLInput } from "../types/sql-input-param";
3
+ import { SQLTransactionOperation } from "./sql-transaction-manager";
4
4
 
5
5
  /**
6
6
  * Insert a new labor ticket into the database.
@@ -1,5 +1,5 @@
1
1
  import sql from "mssql";
2
- import logger from "../../reporting-service/logger.js";
2
+ import logger from "../../reporting-service/logger";
3
3
 
4
4
  export interface SQLTransactionConfig {
5
5
  isolationLevel?: sql.IIsolationLevel;
@@ -1,12 +1,12 @@
1
- import { SQLTransactionManager } from "./internal/sql-transaction-manager.js";
1
+ import { SQLTransactionManager } from "./internal/sql-transaction-manager";
2
2
  import {
3
3
  SQLLaborTicketInsertOperation,
4
4
  SQLLaborTicketUpdateOperation,
5
- } from "./internal/sql-labor-ticket-operations.js";
6
- import { MMReceiveLaborTicket } from "../mm-api-service/types/receive-types.js";
7
- import { SqlServerService } from "./sql-server-service.js";
8
- import logger from "../reporting-service/logger.js";
9
- import { SQLInput } from "./types/sql-input-param.js";
5
+ } from "./internal/sql-labor-ticket-operations";
6
+ import { MMReceiveLaborTicket } from "../mm-api-service/types/receive-types";
7
+ import { SqlServerService } from "./sql-server-service";
8
+ import logger from "../reporting-service/logger";
9
+ import { SQLInput } from "./types/sql-input-param";
10
10
 
11
11
  export class SqlServerHelper {
12
12
  /**
@@ -1,8 +1,8 @@
1
1
  import sql, { ConnectionPool, IRecordSet } from "mssql";
2
- import { SQLServerConfigSchema } from "./internal/sql-server-config.js";
3
- import logger from "../reporting-service/logger.js";
4
- import { ERPResponse } from "../../types/erp-types.js";
5
- import { SQLServerConfiguration } from "./configuration.js";
2
+ import { SQLServerConfigSchema } from "./internal/sql-server-config";
3
+ import logger from "../reporting-service/logger";
4
+ import { ERPResponse } from "../../types/erp-types";
5
+ import { SQLServerConfiguration } from "./configuration";
6
6
 
7
7
  type PagingParams = {
8
8
  limit?: number;
@@ -1 +1 @@
1
- export { SQLiteCoordinator } from "./sqlite-coordinator.js";
1
+ export { SQLiteCoordinator } from "./sqlite-coordinator";
@@ -2,8 +2,8 @@ import {
2
2
  acquireDatabaseLock,
3
3
  releaseDatabaseLock,
4
4
  getDatabaseLock,
5
- } from "../../utils/local-data-store/database-lock.js";
6
- import { logger } from "../reporting-service/index.js";
5
+ } from "../../utils/local-data-store/database-lock";
6
+ import { logger } from "../reporting-service";
7
7
 
8
8
  export class SQLiteCoordinator {
9
9
  private static readonly LOCK_TIMEOUT_MS = 30_000; // 30 seconds
@@ -1,4 +1,4 @@
1
- import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types.js";
1
+ import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
2
2
 
3
3
  /**
4
4
  * Interface for ERP connectors.
@@ -3,10 +3,10 @@
3
3
  * This file re-exports all type definitions that are part of the public API.
4
4
  */
5
5
 
6
- export type { IERPConnector } from "./erp-connector.js";
6
+ export type { IERPConnector } from "./erp-connector";
7
7
  export type {
8
8
  ERPObjType,
9
9
  ERPPagination,
10
10
  ERPResponse,
11
11
  ERPObject,
12
- } from "./erp-types.js";
12
+ } from "./erp-types";
@@ -1,9 +1,9 @@
1
- import logger from "../services/reporting-service/logger.js";
2
- import { CoreConfiguration } from "../services/data-sync-service/configuration-manager.js";
3
- import { SQLiteCoordinator } from "../services/sqlite-service/index.js";
4
- import { getTimezoneOffsetAndPersist } from "./time-utils.js";
1
+ import logger from "../services/reporting-service/logger";
2
+ import { CoreConfiguration } from "../services/data-sync-service/configuration-manager";
3
+ import { SQLiteCoordinator } from "../services/sqlite-service";
4
+ import { getTimezoneOffsetAndPersist } from "./time-utils";
5
5
  import knex from "knex";
6
- import config from "../knexfile.js";
6
+ import config from "../knexfile";
7
7
 
8
8
  /**
9
9
  * Utility class to handle application initialization tasks
@@ -1,5 +1,5 @@
1
- import { IERPConnector } from "../types/erp-connector.js";
2
- import logger from "../services/reporting-service/logger.js";
1
+ import { IERPConnector } from "../types/erp-connector";
2
+ import logger from "../services/reporting-service/logger";
3
3
  import { pathToFileURL } from "url";
4
4
 
5
5
  /**
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import logger from '../../services/reporting-service/logger.js';
4
- import type { LogEntry, LogLevelString } from './mm-connector-logger.js';
3
+ import logger from '../../services/reporting-service/logger';
4
+ import type { LogEntry, LogLevelString } from './mm-connector-logger';
5
5
 
6
6
  /**
7
7
  * Implement a custom LogDeduper or use the provided FileLogDeduper
@@ -1,6 +1,6 @@
1
- import { MMApiClient } from '../../services/mm-api-service/mm-api-service.js';
2
- import logger from '../../services/reporting-service/logger.js';
3
- import type { LogDeduper } from './log-deduper.js';
1
+ import { MMApiClient } from '../../services/mm-api-service/mm-api-service';
2
+ import logger from '../../services/reporting-service/logger';
3
+ import type { LogDeduper } from './log-deduper';
4
4
 
5
5
  export type LogLevelString = 'info' | 'warn' | 'error';
6
6
 
@@ -1,4 +1,4 @@
1
- import { ERPObjType } from "../types/erp-types.js";
1
+ import { ERPObjType } from "../types/erp-types";
2
2
 
3
3
  export function getERPAPITypeFromEntity(
4
4
  entity: string,
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Error formatter utility for standardizing error messages across connectors
3
+ * Extracts human-readable messages from various error types (axios, custom errors, etc.)
4
+ */
5
+
6
+ export interface FormattedError {
7
+ message: string;
8
+ code: string;
9
+ httpStatus?: number;
10
+ metadata?: Record<string, any>;
11
+ }
12
+
13
+ /**
14
+ * Extract meaningful error message from various error types
15
+ */
16
+ export function formatError(error: any): FormattedError {
17
+ if (!error) {
18
+ return {
19
+ message: 'Unknown error occurred',
20
+ code: 'UNKNOWN_ERROR',
21
+ };
22
+ }
23
+
24
+ // Handle axios errors FIRST (before checking for FormattedError)
25
+ // because axios errors also have message and code properties
26
+ if (error.isAxiosError || error.name === 'AxiosError') {
27
+ return formatAxiosError(error);
28
+ }
29
+
30
+ // If it's already a FormattedError, return as-is
31
+ // Check for httpStatus or metadata to distinguish from axios errors
32
+ if (error.message && error.code && typeof error.message === 'string' && typeof error.code === 'string' && !error.config) {
33
+ return error as FormattedError;
34
+ }
35
+
36
+ // Handle standard Error objects
37
+ if (error instanceof Error) {
38
+ return {
39
+ message: error.message || 'An error occurred',
40
+ code: 'ERROR',
41
+ metadata: {
42
+ name: error.name,
43
+ },
44
+ };
45
+ }
46
+
47
+ // Handle string errors
48
+ if (typeof error === 'string') {
49
+ return {
50
+ message: error,
51
+ code: 'ERROR',
52
+ };
53
+ }
54
+
55
+ // Last resort: try to extract any useful info
56
+ const message = error.message || error.toString?.() || 'Unknown error occurred';
57
+ return {
58
+ message: typeof message === 'string' ? message : JSON.stringify(message),
59
+ code: error.code || 'UNKNOWN_ERROR',
60
+ };
61
+ }
62
+
63
+ /**
64
+ * Format axios-specific errors with detailed context
65
+ */
66
+ function formatAxiosError(error: any): FormattedError {
67
+ const httpStatus = error.response?.status;
68
+ const method = error.config?.method?.toUpperCase();
69
+ const url = error.config?.url;
70
+
71
+ // First check if connector already extracted the message
72
+ let message = error._extractedMessage;
73
+
74
+ // If not, try to extract from response data
75
+ if (!message) {
76
+ const extractedMessage = extractErrorMessage(error.response?.data);
77
+ message = extractedMessage || error.response?.statusText || error.message || 'Request failed';
78
+ }
79
+
80
+ // Determine error code based on status
81
+ const code = categorizeHttpError(httpStatus);
82
+
83
+ const metadata: Record<string, any> = {
84
+ method,
85
+ url,
86
+ };
87
+
88
+ // Add additional context for specific error types
89
+ if (httpStatus === 401 || httpStatus === 403) {
90
+ metadata.hint = 'Check authentication credentials';
91
+ } else if (httpStatus === 404) {
92
+ metadata.hint = 'Resource not found - check endpoint URL';
93
+ } else if (httpStatus && httpStatus >= 500) {
94
+ metadata.hint = 'ERP system may be temporarily unavailable';
95
+ }
96
+
97
+ return {
98
+ message,
99
+ code,
100
+ httpStatus,
101
+ metadata,
102
+ };
103
+ }
104
+
105
+ /**
106
+ * Extract meaningful error message from response data
107
+ * Handles various ERP-specific response formats
108
+ */
109
+ function extractErrorMessage(data: any): string | null {
110
+ if (!data) return null;
111
+
112
+ // Common error message fields across different ERPs
113
+ const possibleFields = [
114
+ 'ErrorMessage', // Epicor
115
+ 'error.message', // Common REST format
116
+ 'error', // Simple format
117
+ 'Message', // .NET style
118
+ 'message', // JavaScript style
119
+ 'errorMessage', // Camel case
120
+ 'error_message', // Snake case
121
+ 'errors[0].message', // Array of errors
122
+ 'title', // Problem details format
123
+ 'detail', // Problem details format
124
+ ];
125
+
126
+ for (const field of possibleFields) {
127
+ const value = getNestedValue(data, field);
128
+ if (value && typeof value === 'string') {
129
+ return value;
130
+ }
131
+ }
132
+
133
+ // If data is a string, return it
134
+ if (typeof data === 'string') {
135
+ // Try to parse as JSON first
136
+ try {
137
+ const parsed = JSON.parse(data);
138
+ return extractErrorMessage(parsed);
139
+ } catch {
140
+ return data;
141
+ }
142
+ }
143
+
144
+ return null;
145
+ }
146
+
147
+ /**
148
+ * Get nested value from object using dot notation
149
+ */
150
+ function getNestedValue(obj: any, path: string): any {
151
+ const parts = path.split('.');
152
+ let current = obj;
153
+
154
+ for (const part of parts) {
155
+ // Handle array notation like 'errors[0]'
156
+ const arrayMatch = part.match(/(\w+)\[(\d+)\]/);
157
+ if (arrayMatch) {
158
+ const [, key, index] = arrayMatch;
159
+ current = current?.[key]?.[parseInt(index, 10)];
160
+ } else {
161
+ current = current?.[part];
162
+ }
163
+
164
+ if (current === undefined || current === null) {
165
+ return null;
166
+ }
167
+ }
168
+
169
+ return current;
170
+ }
171
+
172
+ /**
173
+ * Categorize HTTP errors into standard codes
174
+ */
175
+ function categorizeHttpError(status?: number): string {
176
+ if (!status) return 'NETWORK_ERROR';
177
+
178
+ if (status === 400) return 'VALIDATION_ERROR';
179
+ if (status === 401) return 'AUTHENTICATION_ERROR';
180
+ if (status === 403) return 'AUTHORIZATION_ERROR';
181
+ if (status === 404) return 'NOT_FOUND';
182
+ if (status === 409) return 'CONFLICT';
183
+ if (status === 422) return 'VALIDATION_ERROR';
184
+ if (status === 429) return 'RATE_LIMIT';
185
+ if (status >= 500) return 'ERP_SERVER_ERROR';
186
+ if (status >= 400) return 'CLIENT_ERROR';
187
+
188
+ return 'HTTP_ERROR';
189
+ }
190
+
191
+ /**
192
+ * Format error for logging (shorter, cleaner version)
193
+ */
194
+ export function formatErrorForLogging(error: any): string {
195
+ const formatted = formatError(error);
196
+
197
+ let message = `[${formatted.code}] ${formatted.message}`;
198
+
199
+ if (formatted.httpStatus) {
200
+ message = `[${formatted.httpStatus}] ${message}`;
201
+ }
202
+
203
+ return message;
204
+ }
205
+
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosError, AxiosInstance, AxiosRequestConfig } from "axios";
2
- import logger from "../services/reporting-service/logger.js";
2
+ import logger from "../services/reporting-service/logger";
3
3
 
4
4
  export class HTTPError extends Error {
5
5
  constructor(
@@ -64,9 +64,10 @@ class AxiosClient implements HTTPClient {
64
64
  * It can be convenient to set `baseURL` for an instance of axios to pass relative URLs to methods of that instance.
65
65
  */
66
66
  constructor(baseUrl: string, retryAttempts: number) {
67
+ const timeout = parseInt(process.env.MM_API_TIMEOUT || "30000");
67
68
  this.client = axios.create({
68
69
  baseURL: baseUrl,
69
- timeout: 30000,
70
+ timeout: timeout,
70
71
  headers: {
71
72
  "Content-Type": "application/json",
72
73
  },