@machinemetrics/mm-erp-sdk 0.2.0-beta.0 → 0.2.0-beta.2

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 (361) 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.d.ts.map +1 -1
  39. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +40 -42
  40. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
  41. package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
  42. package/dist/services/data-sync-service/jobs/from-erp.js +37 -50
  43. package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
  44. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.d.ts.map +1 -1
  45. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +36 -38
  46. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
  47. package/dist/services/data-sync-service/jobs/run-migrations.d.ts.map +1 -1
  48. package/dist/services/data-sync-service/jobs/run-migrations.js +22 -24
  49. package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
  50. package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
  51. package/dist/services/data-sync-service/jobs/to-erp.js +49 -49
  52. package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
  53. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +30 -0
  54. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +1 -0
  55. package/dist/services/erp-api-services/errors.d.ts +1 -1
  56. package/dist/services/erp-api-services/errors.d.ts.map +1 -1
  57. package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
  58. package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
  59. package/dist/services/erp-api-services/index.d.ts +8 -8
  60. package/dist/services/erp-api-services/index.d.ts.map +1 -1
  61. package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
  62. package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
  63. package/dist/services/erp-api-services/types.d.ts +2 -2
  64. package/dist/services/erp-api-services/types.d.ts.map +1 -1
  65. package/dist/services/mm-api-service/company-info.d.ts +13 -0
  66. package/dist/services/mm-api-service/company-info.d.ts.map +1 -0
  67. package/dist/services/mm-api-service/index.d.ts +13 -6
  68. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  69. package/dist/services/mm-api-service/mm-api-service.d.ts +13 -7
  70. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  71. package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
  72. package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
  73. package/dist/services/mm-api-service/types/receive-types.d.ts +3 -0
  74. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  75. package/dist/services/nats-service/nats-service.d.ts +114 -0
  76. package/dist/services/nats-service/nats-service.d.ts.map +1 -0
  77. package/dist/services/nats-service/test-nats-subscriber.d.ts +6 -0
  78. package/dist/services/nats-service/test-nats-subscriber.d.ts.map +1 -0
  79. package/dist/services/psql-erp-service/index.d.ts +3 -3
  80. package/dist/services/psql-erp-service/index.d.ts.map +1 -1
  81. package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
  82. package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
  83. package/dist/services/reporting-service/index.d.ts +1 -1
  84. package/dist/services/reporting-service/index.d.ts.map +1 -1
  85. package/dist/services/reporting-service/logger.d.ts.map +1 -1
  86. package/dist/services/sql-server-erp-service/index.d.ts +3 -3
  87. package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
  88. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
  89. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
  90. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
  91. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
  92. package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
  93. package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
  94. package/dist/services/sqlite-service/index.d.ts +1 -1
  95. package/dist/services/sqlite-service/index.d.ts.map +1 -1
  96. package/dist/types/erp-connector.d.ts +2 -9
  97. package/dist/types/erp-connector.d.ts.map +1 -1
  98. package/dist/types/index.d.ts +2 -3
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/utils/connector-factory.d.ts +1 -1
  101. package/dist/utils/connector-factory.d.ts.map +1 -1
  102. package/dist/utils/connector-log/log-deduper.d.ts +1 -1
  103. package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
  104. package/dist/utils/connector-log/mm-connector-logger-example.d.ts +0 -1
  105. package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
  106. package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
  107. package/dist/utils/erp-type-from-entity.d.ts +1 -1
  108. package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
  109. package/dist/utils/error-formatter.d.ts +19 -0
  110. package/dist/utils/error-formatter.d.ts.map +1 -0
  111. package/dist/utils/index.d.ts +38 -34
  112. package/dist/utils/index.d.ts.map +1 -1
  113. package/dist/utils/local-data-store/jobs-shared-data.d.ts +0 -2
  114. package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
  115. package/dist/utils/mm-labor-ticket-helpers.d.ts +5 -4
  116. package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
  117. package/dist/utils/removeExtraneousFields.d.ts +1 -1
  118. package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
  119. package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
  120. package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
  121. package/dist/utils/resource-group.d.ts +1 -1
  122. package/dist/utils/resource-group.d.ts.map +1 -1
  123. package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
  124. package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
  125. package/dist/utils/standard-process-drivers/index.d.ts +3 -3
  126. package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
  127. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +1 -1
  128. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  129. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +5 -11
  130. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  131. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +6 -12
  132. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  133. package/dist/utils/time-utils.d.ts.map +1 -1
  134. package/package.json +10 -8
  135. package/src/index.ts +45 -42
  136. package/src/knexfile.ts +0 -1
  137. package/src/services/caching-service/batch-cache-manager.ts +2 -2
  138. package/src/services/caching-service/hashed-cache-manager.ts +5 -5
  139. package/src/services/caching-service/index.ts +1 -1
  140. package/src/services/caching-service/record-tracking-manager.ts +2 -2
  141. package/src/services/data-sync-service/configuration-manager.ts +39 -52
  142. package/src/services/data-sync-service/data-sync-service.ts +19 -10
  143. package/src/services/data-sync-service/index.ts +3 -3
  144. package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +4 -5
  145. package/src/services/data-sync-service/jobs/from-erp.ts +6 -12
  146. package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +3 -4
  147. package/src/services/data-sync-service/jobs/run-migrations.ts +3 -4
  148. package/src/services/data-sync-service/jobs/to-erp.ts +14 -5
  149. package/src/services/data-sync-service/nats-labor-ticket-listener.ts +341 -0
  150. package/src/services/erp-api-services/errors.ts +3 -3
  151. package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
  152. package/src/services/erp-api-services/index.ts +8 -8
  153. package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
  154. package/src/services/erp-api-services/types.ts +2 -2
  155. package/src/services/mm-api-service/company-info.ts +87 -0
  156. package/src/services/mm-api-service/index.ts +14 -6
  157. package/src/services/mm-api-service/mm-api-service.ts +30 -13
  158. package/src/services/mm-api-service/token-mgr.ts +4 -4
  159. package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
  160. package/src/services/mm-api-service/types/receive-types.ts +1 -0
  161. package/src/services/nats-service/nats-service.ts +351 -0
  162. package/src/services/nats-service/test-nats-subscriber.ts +96 -0
  163. package/src/services/psql-erp-service/index.ts +3 -3
  164. package/src/services/psql-erp-service/psql-service.ts +4 -4
  165. package/src/services/reporting-service/index.ts +1 -1
  166. package/src/services/reporting-service/logger.ts +81 -116
  167. package/src/services/sql-server-erp-service/index.ts +3 -3
  168. package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
  169. package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
  170. package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
  171. package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
  172. package/src/services/sqlite-service/index.ts +1 -1
  173. package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
  174. package/src/types/erp-connector.ts +2 -9
  175. package/src/types/index.ts +2 -10
  176. package/src/utils/application-initializer.ts +5 -5
  177. package/src/utils/connector-factory.ts +2 -2
  178. package/src/utils/connector-log/log-deduper.ts +2 -2
  179. package/src/utils/connector-log/mm-connector-logger.ts +3 -3
  180. package/src/utils/erp-type-from-entity.ts +1 -1
  181. package/src/utils/error-formatter.ts +205 -0
  182. package/src/utils/http-client.ts +3 -2
  183. package/src/utils/index.ts +39 -38
  184. package/src/utils/local-data-store/database-lock.ts +1 -1
  185. package/src/utils/local-data-store/jobs-shared-data.ts +0 -2
  186. package/src/utils/mm-labor-ticket-helpers.ts +9 -12
  187. package/src/utils/removeExtraneousFields.ts +1 -1
  188. package/src/utils/removeIdFieldFromPayload.ts +1 -1
  189. package/src/utils/resource-group.ts +2 -2
  190. package/src/utils/standard-process-drivers/error-processor.ts +5 -5
  191. package/src/utils/standard-process-drivers/index.ts +3 -3
  192. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +12 -16
  193. package/src/utils/standard-process-drivers/mm-entity-processor.ts +8 -14
  194. package/src/utils/standard-process-drivers/standard-process-drivers.ts +25 -39
  195. package/src/utils/time-utils.ts +3 -14
  196. package/src/utils/timezone.ts +2 -2
  197. package/dist/index.js +0 -48
  198. package/dist/index.js.map +0 -1
  199. package/dist/knexfile.js +0 -19
  200. package/dist/knexfile.js.map +0 -1
  201. package/dist/migrations/20241015162631_create_cache_table.d.ts +0 -4
  202. package/dist/migrations/20241015162631_create_cache_table.d.ts.map +0 -1
  203. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +0 -4
  204. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +0 -1
  205. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +0 -4
  206. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +0 -1
  207. package/dist/services/caching-service/batch-cache-manager.js +0 -84
  208. package/dist/services/caching-service/batch-cache-manager.js.map +0 -1
  209. package/dist/services/caching-service/hashed-cache-manager.js +0 -223
  210. package/dist/services/caching-service/hashed-cache-manager.js.map +0 -1
  211. package/dist/services/caching-service/index.js +0 -2
  212. package/dist/services/caching-service/index.js.map +0 -1
  213. package/dist/services/caching-service/record-tracking-manager.js +0 -28
  214. package/dist/services/caching-service/record-tracking-manager.js.map +0 -1
  215. package/dist/services/data-sync-service/configuration-manager.js +0 -163
  216. package/dist/services/data-sync-service/configuration-manager.js.map +0 -1
  217. package/dist/services/data-sync-service/data-sync-service.js +0 -95
  218. package/dist/services/data-sync-service/data-sync-service.js.map +0 -1
  219. package/dist/services/data-sync-service/index.js +0 -10
  220. package/dist/services/data-sync-service/index.js.map +0 -1
  221. package/dist/services/erp-api-services/errors.js +0 -83
  222. package/dist/services/erp-api-services/errors.js.map +0 -1
  223. package/dist/services/erp-api-services/graphql/graphql-service.js +0 -102
  224. package/dist/services/erp-api-services/graphql/graphql-service.js.map +0 -1
  225. package/dist/services/erp-api-services/graphql/types.js +0 -6
  226. package/dist/services/erp-api-services/graphql/types.js.map +0 -1
  227. package/dist/services/erp-api-services/index.js +0 -13
  228. package/dist/services/erp-api-services/index.js.map +0 -1
  229. package/dist/services/erp-api-services/oauth-client.js +0 -41
  230. package/dist/services/erp-api-services/oauth-client.js.map +0 -1
  231. package/dist/services/erp-api-services/rest/get-query-params.js +0 -23
  232. package/dist/services/erp-api-services/rest/get-query-params.js.map +0 -1
  233. package/dist/services/erp-api-services/rest/rest-api-service.js +0 -163
  234. package/dist/services/erp-api-services/rest/rest-api-service.js.map +0 -1
  235. package/dist/services/erp-api-services/types.js +0 -2
  236. package/dist/services/erp-api-services/types.js.map +0 -1
  237. package/dist/services/mm-api-service/index.js +0 -15
  238. package/dist/services/mm-api-service/index.js.map +0 -1
  239. package/dist/services/mm-api-service/mm-api-service.js +0 -519
  240. package/dist/services/mm-api-service/mm-api-service.js.map +0 -1
  241. package/dist/services/mm-api-service/token-mgr.js +0 -113
  242. package/dist/services/mm-api-service/token-mgr.js.map +0 -1
  243. package/dist/services/mm-api-service/types/checkpoint.js +0 -2
  244. package/dist/services/mm-api-service/types/checkpoint.js.map +0 -1
  245. package/dist/services/mm-api-service/types/entity-transformer.js +0 -186
  246. package/dist/services/mm-api-service/types/entity-transformer.js.map +0 -1
  247. package/dist/services/mm-api-service/types/mm-response-interfaces.js +0 -34
  248. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +0 -1
  249. package/dist/services/mm-api-service/types/receive-types.js +0 -55
  250. package/dist/services/mm-api-service/types/receive-types.js.map +0 -1
  251. package/dist/services/mm-api-service/types/send-types.js +0 -337
  252. package/dist/services/mm-api-service/types/send-types.js.map +0 -1
  253. package/dist/services/psql-erp-service/configuration.js +0 -2
  254. package/dist/services/psql-erp-service/configuration.js.map +0 -1
  255. package/dist/services/psql-erp-service/index.js +0 -10
  256. package/dist/services/psql-erp-service/index.js.map +0 -1
  257. package/dist/services/psql-erp-service/internal/types/psql-types.js +0 -5
  258. package/dist/services/psql-erp-service/internal/types/psql-types.js.map +0 -1
  259. package/dist/services/psql-erp-service/psql-helpers.js +0 -99
  260. package/dist/services/psql-erp-service/psql-helpers.js.map +0 -1
  261. package/dist/services/psql-erp-service/psql-service.js +0 -187
  262. package/dist/services/psql-erp-service/psql-service.js.map +0 -1
  263. package/dist/services/reporting-service/index.js +0 -5
  264. package/dist/services/reporting-service/index.js.map +0 -1
  265. package/dist/services/reporting-service/logger.js +0 -221
  266. package/dist/services/reporting-service/logger.js.map +0 -1
  267. package/dist/services/sql-server-erp-service/configuration.js +0 -2
  268. package/dist/services/sql-server-erp-service/configuration.js.map +0 -1
  269. package/dist/services/sql-server-erp-service/index.js +0 -11
  270. package/dist/services/sql-server-erp-service/index.js.map +0 -1
  271. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +0 -50
  272. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +0 -1
  273. package/dist/services/sql-server-erp-service/internal/sql-server-config.js +0 -40
  274. package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +0 -1
  275. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +0 -36
  276. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +0 -1
  277. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +0 -2
  278. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +0 -1
  279. package/dist/services/sql-server-erp-service/sql-server-helpers.js +0 -66
  280. package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +0 -1
  281. package/dist/services/sql-server-erp-service/sql-server-service.js +0 -154
  282. package/dist/services/sql-server-erp-service/sql-server-service.js.map +0 -1
  283. package/dist/services/sql-server-erp-service/types/sql-input-param.js +0 -2
  284. package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +0 -1
  285. package/dist/services/sqlite-service/index.js +0 -2
  286. package/dist/services/sqlite-service/index.js.map +0 -1
  287. package/dist/services/sqlite-service/sqlite-coordinator.js +0 -60
  288. package/dist/services/sqlite-service/sqlite-coordinator.js.map +0 -1
  289. package/dist/types/erp-connector.js +0 -2
  290. package/dist/types/erp-connector.js.map +0 -1
  291. package/dist/types/erp-types.js +0 -13
  292. package/dist/types/erp-types.js.map +0 -1
  293. package/dist/types/flattened-work-order.d.ts +0 -99
  294. package/dist/types/flattened-work-order.d.ts.map +0 -1
  295. package/dist/types/flattened-work-order.js +0 -2
  296. package/dist/types/flattened-work-order.js.map +0 -1
  297. package/dist/types/index.js +0 -6
  298. package/dist/types/index.js.map +0 -1
  299. package/dist/utils/application-initializer.js +0 -55
  300. package/dist/utils/application-initializer.js.map +0 -1
  301. package/dist/utils/cleanup-numbers.js +0 -6
  302. package/dist/utils/cleanup-numbers.js.map +0 -1
  303. package/dist/utils/connector-factory.js +0 -34
  304. package/dist/utils/connector-factory.js.map +0 -1
  305. package/dist/utils/connector-log/log-deduper.js +0 -240
  306. package/dist/utils/connector-log/log-deduper.js.map +0 -1
  307. package/dist/utils/connector-log/mm-connector-logger-example.js +0 -88
  308. package/dist/utils/connector-log/mm-connector-logger-example.js.map +0 -1
  309. package/dist/utils/connector-log/mm-connector-logger.js +0 -151
  310. package/dist/utils/connector-log/mm-connector-logger.js.map +0 -1
  311. package/dist/utils/data-transformation.js +0 -38
  312. package/dist/utils/data-transformation.js.map +0 -1
  313. package/dist/utils/env.d.ts +0 -8
  314. package/dist/utils/env.d.ts.map +0 -1
  315. package/dist/utils/env.js +0 -58
  316. package/dist/utils/env.js.map +0 -1
  317. package/dist/utils/erp-timezone-utils.d.ts +0 -20
  318. package/dist/utils/erp-timezone-utils.d.ts.map +0 -1
  319. package/dist/utils/erp-timezone-utils.js +0 -75
  320. package/dist/utils/erp-timezone-utils.js.map +0 -1
  321. package/dist/utils/erp-type-from-entity.js +0 -6
  322. package/dist/utils/erp-type-from-entity.js.map +0 -1
  323. package/dist/utils/error-utils.js +0 -21
  324. package/dist/utils/error-utils.js.map +0 -1
  325. package/dist/utils/http-client.js +0 -186
  326. package/dist/utils/http-client.js.map +0 -1
  327. package/dist/utils/index.js +0 -66
  328. package/dist/utils/index.js.map +0 -1
  329. package/dist/utils/local-data-store/database-lock.js +0 -68
  330. package/dist/utils/local-data-store/database-lock.js.map +0 -1
  331. package/dist/utils/local-data-store/jobs-shared-data.js +0 -118
  332. package/dist/utils/local-data-store/jobs-shared-data.js.map +0 -1
  333. package/dist/utils/mm-labor-ticket-helpers.js +0 -28
  334. package/dist/utils/mm-labor-ticket-helpers.js.map +0 -1
  335. package/dist/utils/removeExtraneousFields.js +0 -16
  336. package/dist/utils/removeExtraneousFields.js.map +0 -1
  337. package/dist/utils/removeIdFieldFromPayload.js +0 -16
  338. package/dist/utils/removeIdFieldFromPayload.js.map +0 -1
  339. package/dist/utils/resource-group.js +0 -59
  340. package/dist/utils/resource-group.js.map +0 -1
  341. package/dist/utils/standard-process-drivers/error-processor.js +0 -262
  342. package/dist/utils/standard-process-drivers/error-processor.js.map +0 -1
  343. package/dist/utils/standard-process-drivers/index.js +0 -4
  344. package/dist/utils/standard-process-drivers/index.js.map +0 -1
  345. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +0 -173
  346. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +0 -1
  347. package/dist/utils/standard-process-drivers/mm-entity-processor.js +0 -174
  348. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +0 -1
  349. package/dist/utils/standard-process-drivers/standard-process-drivers.js +0 -333
  350. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +0 -1
  351. package/dist/utils/time-utils.js +0 -103
  352. package/dist/utils/time-utils.js.map +0 -1
  353. package/dist/utils/timezone.js +0 -105
  354. package/dist/utils/timezone.js.map +0 -1
  355. package/dist/utils/trimObjectValues.js +0 -11
  356. package/dist/utils/trimObjectValues.js.map +0 -1
  357. package/dist/utils/uniqueRows.js +0 -35
  358. package/dist/utils/uniqueRows.js.map +0 -1
  359. package/src/types/flattened-work-order.ts +0 -108
  360. package/src/utils/env.ts +0 -75
  361. package/src/utils/erp-timezone-utils.ts +0 -99
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@machinemetrics/mm-erp-sdk",
3
3
  "description": "A library for syncing data between MachineMetrics and ERP systems",
4
- "version": "0.2.0-beta.0",
4
+ "version": "0.2.0-beta.2",
5
5
  "license": "MIT",
6
6
  "author": "machinemetrics",
7
- "main": "dist/index.js",
7
+ "main": "dist/mm-erp-sdk.js",
8
8
  "types": "dist/index.d.ts",
9
9
  "source": "src/index.ts",
10
10
  "type": "module",
@@ -12,9 +12,10 @@
12
12
  "node": ">=20"
13
13
  },
14
14
  "scripts": {
15
- "build": "tsc --project tsconfig.build.json",
16
- "start": "tsc --project tsconfig.build.json --watch",
17
- "type-check": "tsc --noEmit"
15
+ "build": "vite build && tsc --project tsconfig.declarations.json",
16
+ "start": "vite build --watch",
17
+ "type-check": "tsc --noEmit",
18
+ "test:nats": "tsx src/services/nats-service/test-nats-subscriber.ts"
18
19
  },
19
20
  "dependencies": {
20
21
  "@azure/msal-node": "^2.12.0",
@@ -27,8 +28,8 @@
27
28
  "json-stable-stringify": "^1.3.0",
28
29
  "knex": "^3.1.0",
29
30
  "lodash": "^4.17.21",
30
- "luxon": "^3.7.2",
31
31
  "mssql": "^11.0.1",
32
+ "nats": "^2.29.3",
32
33
  "winston": "^3.14.0",
33
34
  "winston-daily-rotate-file": "^5.0.0",
34
35
  "xxhashjs": "^0.2.2",
@@ -40,12 +41,13 @@
40
41
  "devDependencies": {
41
42
  "@types/json-stable-stringify": "^1.1.0",
42
43
  "@types/lodash": "^4.17.10",
43
- "@types/luxon": "^3.7.1",
44
44
  "@types/mssql": "^9.1.6",
45
45
  "@types/node": "^20.0.0",
46
46
  "@types/xxhashjs": "^0.2.4",
47
47
  "prettier": "^3.6.2",
48
- "typescript": "^5.8.3"
48
+ "tsx": "^4.20.6",
49
+ "typescript": "^5.8.3",
50
+ "vite": "^5.3.4"
49
51
  },
50
52
  "files": [
51
53
  "dist",
package/src/index.ts CHANGED
@@ -4,24 +4,24 @@
4
4
  */
5
5
 
6
6
  // Core interfaces and types
7
- export type { IERPConnector } from "./types/erp-connector.js";
8
- export { ERPObjType } from "./types/erp-types.js";
9
- export type { ERPPagination, ERPResponse, ERPObject } from "./types/erp-types.js";
7
+ export type { IERPConnector } from "./types/erp-connector";
8
+ export { ERPObjType } from "./types/erp-types";
9
+ export type { ERPPagination, ERPResponse, ERPObject } from "./types/erp-types";
10
10
 
11
11
  // Configuration interfaces
12
- export { ErpApiConnectionParams } from "./services/data-sync-service/configuration-manager.js";
13
- export { getErpApiConnectionParams } from "./services/data-sync-service/configuration-manager.js";
14
- export { buildLogicalCondition } from "./services/erp-api-services/rest/get-query-params.js";
15
- export type { ERPApiConfig } from "./services/erp-api-services/types.js";
12
+ export { ErpApiConnectionParams } from "./services/data-sync-service/configuration-manager";
13
+ export { getErpApiConnectionParams } from "./services/data-sync-service/configuration-manager";
14
+ export { buildLogicalCondition } from "./services/erp-api-services/rest/get-query-params";
15
+ export type { ERPApiConfig } from "./services/erp-api-services/types";
16
16
 
17
17
  // MM API client and types
18
- export { MMApiClient } from "./services/mm-api-service/index.js";
19
- export { MMReceiveLaborTicket } from "./services/mm-api-service/index.js";
18
+ export { MMApiClient } from "./services/mm-api-service";
19
+ export { MMReceiveLaborTicket } from "./services/mm-api-service";
20
20
  export type {
21
21
  MMReceiveLaborTicketReason,
22
22
  MMReceiveLaborTicketWorkOrderOperation,
23
23
  IToRESTApiObject,
24
- } from "./services/mm-api-service/index.js";
24
+ } from "./services/mm-api-service";
25
25
 
26
26
  export {
27
27
  MMSendPerson,
@@ -32,9 +32,9 @@ export {
32
32
  MMSendWorkOrderOperation,
33
33
  MMSendReason,
34
34
  MMSendLaborTicket,
35
- } from "./services/mm-api-service/index.js";
35
+ } from "./services/mm-api-service";
36
36
 
37
- export type { MMSendWorkOrderBatch } from "./services/mm-api-service/index.js";
37
+ export type { MMSendWorkOrderBatch } from "./services/mm-api-service";
38
38
 
39
39
  // Utility functions that are safe for client use
40
40
  export {
@@ -49,69 +49,72 @@ export {
49
49
  applyTimezoneOffsetsToFields,
50
50
  convertToLocalTime,
51
51
  getErrorType,
52
- } from "./utils/index.js";
52
+ formatError,
53
+ formatErrorForLogging,
54
+ } from "./utils";
55
+ export type { FormattedError } from "./utils";
53
56
 
54
57
  // Local data store
55
- export { getInitialLoadComplete, setInitialLoadComplete } from "./utils/index.js";
58
+ export { getInitialLoadComplete, setInitialLoadComplete } from "./utils";
56
59
 
57
60
  // HTTP client factory and types for custom API integrations
58
- export { HTTPClientFactory } from "./utils/http-client.js";
59
- export { HTTPError } from "./utils/http-client.js";
61
+ export { HTTPClientFactory } from "./utils/http-client";
62
+ export { HTTPError } from "./utils/http-client";
60
63
  export type {
61
64
  HTTPResponse,
62
65
  HTTPClient,
63
66
  HTTPRequestConfig,
64
- } from "./utils/http-client.js";
67
+ } from "./utils/http-client";
65
68
 
66
69
  // Application initialization utilities
67
- export { ApplicationInitializer } from "./utils/application-initializer.js";
70
+ export { ApplicationInitializer } from "./utils/application-initializer";
68
71
 
69
72
  // Data sync service
70
- export { runDataSyncService } from "./services/data-sync-service/index.js";
73
+ export { runDataSyncService } from "./services/data-sync-service";
71
74
 
72
75
  // Logging service
73
- export { logger } from "./services/reporting-service/index.js";
76
+ export { logger } from "./services/reporting-service";
74
77
 
75
78
  // Labor ticket handler interface
76
- export type { IERPLaborTicketHandler } from "./types/erp-connector.js";
79
+ export type { IERPLaborTicketHandler } from "./types/erp-connector";
77
80
 
78
81
  // Process drivers and utilities
79
82
  export {
80
83
  StandardProcessDrivers,
81
84
  getCachedTimezoneOffset,
82
85
  getCachedTimezoneName,
83
- } from "./utils/index.js";
84
- export type { WriteEntitiesToMMResult } from "./utils/index.js";
85
- export { MMBatchValidationError } from "./utils/index.js";
86
+ } from "./utils";
87
+ export type { WriteEntitiesToMMResult } from "./utils";
88
+ export { MMBatchValidationError } from "./utils";
86
89
 
87
90
  // API services
88
- export type { APIResponse } from "./services/erp-api-services/types.js";
89
- export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service.js";
90
- export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors.js";
91
+ export type { APIResponse } from "./services/erp-api-services/types";
92
+ export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service";
93
+ export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors";
91
94
  export type {
92
95
  QueryParams,
93
96
  PaginatedAPIResponse,
94
- } from "./services/erp-api-services/rest/get-query-params.js";
95
- export { OAuthClient } from "./services/erp-api-services/oauth-client.js";
96
- export type { OAuthConfig } from "./services/erp-api-services/oauth-client.js";
97
- export { GraphQLService } from "./services/erp-api-services/graphql/graphql-service.js";
98
- export type { GraphQLServerError } from "./services/erp-api-services/graphql/types.js";
97
+ } from "./services/erp-api-services/rest/get-query-params";
98
+ export { OAuthClient } from "./services/erp-api-services/oauth-client";
99
+ export type { OAuthConfig } from "./services/erp-api-services/oauth-client";
100
+ export { GraphQLService } from "./services/erp-api-services/graphql/graphql-service";
101
+ export type { GraphQLServerError } from "./services/erp-api-services/graphql/types";
99
102
 
100
103
  // Caching services
101
- export { BatchCacheManager } from "./services/caching-service/batch-cache-manager.js";
104
+ export { BatchCacheManager } from "./services/caching-service/batch-cache-manager";
102
105
 
103
106
  // Configuration services
104
107
  export {
105
108
  CoreConfiguration,
106
109
  getSQLServerConfiguration,
107
- } from "./services/data-sync-service/configuration-manager.js";
110
+ } from "./services/data-sync-service/configuration-manager";
108
111
 
109
112
  // SQL Server services
110
113
  export {
111
114
  SqlServerService,
112
115
  SqlServerHelper,
113
- } from "./services/sql-server-erp-service/index.js";
114
- export type { SQLInput } from "./services/sql-server-erp-service/index.js";
116
+ } from "./services/sql-server-erp-service";
117
+ export type { SQLInput } from "./services/sql-server-erp-service";
115
118
 
116
119
  // PSQL (Pervasive) services
117
120
  export {
@@ -121,15 +124,15 @@ export {
121
124
  combinePsqlDateTime,
122
125
  isPsqlDateEmpty,
123
126
  cleanPsqlCharField,
124
- } from "./services/psql-erp-service/index.js";
125
- export type { PsqlConfiguration } from "./services/psql-erp-service/index.js";
127
+ } from "./services/psql-erp-service";
128
+ export type { PsqlConfiguration } from "./services/psql-erp-service";
126
129
 
127
130
  // Record tracking services
128
- export { RecordTrackingManager } from "./services/caching-service/record-tracking-manager.js";
129
- export type { RecordTrackingObject } from "./services/caching-service/record-tracking-manager.js";
131
+ export { RecordTrackingManager } from "./services/caching-service/record-tracking-manager";
132
+ export type { RecordTrackingObject } from "./services/caching-service/record-tracking-manager";
130
133
 
131
134
  // Knex services
132
- export { default as knexDatabaseConfig } from "./knexfile.js";
135
+ export { default as knexDatabaseConfig } from "./knexfile";
133
136
 
134
137
  // MM Connector Logging
135
138
  export {
@@ -138,4 +141,4 @@ export {
138
141
  LogEntry,
139
142
  type LogLevelString,
140
143
  type LogResponse,
141
- } from "./utils/index.js";
144
+ } from "./utils";
package/src/knexfile.ts CHANGED
@@ -14,7 +14,6 @@ const config: { [key: string]: Knex.Config } = {
14
14
  migrations: {
15
15
  directory: path.join(__dirname, "migrations"),
16
16
  extension: "js",
17
- loadExtensions: [".js"],
18
17
  },
19
18
  },
20
19
  };
@@ -1,5 +1,5 @@
1
- import { HashedCacheManager } from "./hashed-cache-manager.js";
2
- import { ERPObjType } from "../../types/erp-types.js";
1
+ import { HashedCacheManager } from "./hashed-cache-manager";
2
+ import { ERPObjType } from "../../types/erp-types";
3
3
 
4
4
  export type BatchResult<T> = {
5
5
  duplicates: T[];
@@ -1,11 +1,11 @@
1
1
  import knex, { Knex } from "knex";
2
- import config from "../../knexfile.js";
2
+ import config from "../../knexfile";
3
3
  import stringify from "json-stable-stringify";
4
4
  import XXH from "xxhashjs";
5
- import { ERPObjType } from "../../types/erp-types.js";
6
- import { CacheMetrics } from "./index.js";
7
- import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
8
- import { logger } from "../reporting-service/index.js";
5
+ import { ERPObjType } from "../../types/erp-types";
6
+ import { CacheMetrics } from "./index";
7
+ import { CoreConfiguration } from "../data-sync-service/configuration-manager";
8
+ import { logger } from "../reporting-service";
9
9
 
10
10
  type HashedCacheManagerOptions = {
11
11
  ttl?: number;
@@ -1,4 +1,4 @@
1
- import { ERPObjType, ERPObject } from "../../types/erp-types.js";
1
+ import { ERPObjType, ERPObject } from "../../types/erp-types";
2
2
 
3
3
  export interface CacheServiceConfig {
4
4
  tableName: string;
@@ -1,6 +1,6 @@
1
1
  import knex, { Knex } from "knex";
2
- import config from "../../knexfile.js";
3
- import { ERPObjType } from "../../types/erp-types.js";
2
+ import config from "../../knexfile";
3
+ import { ERPObjType } from "../../types/erp-types";
4
4
 
5
5
  const DEFAULT_RECORD_TRACKING_TABLE_NAME = "record_tracking";
6
6
 
@@ -1,7 +1,6 @@
1
1
  import "dotenv/config";
2
- import { configureLogger } from "../reporting-service/logger.js";
3
- import { SQLServerConfiguration } from "../sql-server-erp-service/configuration.js";
4
- import { getEnvBoolean, getEnvNumber, getEnvString } from "../../utils/env.js";
2
+ import { configureLogger } from "../reporting-service/logger";
3
+ import { SQLServerConfiguration } from "../sql-server-erp-service/configuration";
5
4
 
6
5
  export class CoreConfiguration {
7
6
  private static instance: CoreConfiguration;
@@ -30,66 +29,58 @@ export class CoreConfiguration {
30
29
  public readonly cacheExpirationCheckInterval: string;
31
30
 
32
31
  private constructor() {
33
- this.logLevel = getEnvString("LOG_LEVEL", "info");
34
- this.erpSystem = getEnvString("ERP_SYSTEM", "template");
35
- this.nodeEnv = getEnvString("NODE_ENV", "development");
32
+ this.logLevel = process.env.LOG_LEVEL || "info";
33
+ this.erpSystem = process.env.ERP_SYSTEM || "template";
34
+ this.nodeEnv = process.env.NODE_ENV || "development";
36
35
 
37
36
  //#region MM API (aka "Mapping") Service
38
37
  /**
39
38
  * MM ERP Service REST API URL (typically https://erp-api.svc.machinemetrics.com)
40
39
  */
41
- this.mmERPSvcApiBaseUrl = getEnvString("MM_MAPPING_SERVICE_URL", "");
40
+ this.mmERPSvcApiBaseUrl = process.env.MM_MAPPING_SERVICE_URL || "";
42
41
 
43
42
  /**
44
43
  * MM REST API URL (typically https://api.machinemetrics.com)
45
44
  */
46
45
  console.log("=== CONFIG DEBUG ===");
47
- const mmAuthSvcUrl = getEnvString("MM_MAPPING_AUTH_SERVICE_URL", "");
48
- console.log("MM_MAPPING_AUTH_SERVICE_URL env var:", mmAuthSvcUrl);
49
- this.mmApiBaseUrl = mmAuthSvcUrl;
46
+ console.log("MM_MAPPING_AUTH_SERVICE_URL env var:", process.env.MM_MAPPING_AUTH_SERVICE_URL);
47
+ this.mmApiBaseUrl = process.env.MM_MAPPING_AUTH_SERVICE_URL || "";
50
48
  console.log("mmApiBaseUrl set to:", this.mmApiBaseUrl);
51
49
  console.log("=== END CONFIG DEBUG ===");
52
50
 
53
51
  /**
54
52
  * Company Auth Token
55
53
  */
56
- this.mmApiAuthToken = getEnvString("MM_MAPPING_SERVICE_TOKEN", "");
54
+ this.mmApiAuthToken = process.env.MM_MAPPING_SERVICE_TOKEN || "";
57
55
 
58
56
  /**
59
57
  * Number of retry attempts for MM API calls
60
58
  */
61
- this.mmApiRetryAttempts = getEnvNumber("RETRY_ATTEMPTS", 0);
59
+ this.mmApiRetryAttempts = parseInt(process.env.RETRY_ATTEMPTS || "0");
62
60
  //#endregion MM API (aka "Mapping") Service
63
61
 
64
62
  /**
65
63
  * Default pagination limit for ERP API
66
64
  */
67
- this.erpApiPagingLimit = getEnvNumber("ERP_PAGINATION_LIMIT", 0);
65
+ this.erpApiPagingLimit = parseInt(process.env.ERP_PAGINATION_LIMIT || "0");
68
66
  //#endregion ERP API Service
69
67
 
70
68
  /**
71
69
  * For how to define the intervals, see Bree's documentation: https://github.com/breejs/bree
72
70
  */
73
- const pollInterval = getEnvString("POLL_INTERVAL", "");
74
- this.fromErpInterval = getEnvString(
75
- "FROM_ERP_INTERVAL",
76
- pollInterval || "5 min"
77
- );
78
- this.toErpInterval = getEnvString("TO_ERP_INTERVAL", "5 min");
79
- this.retryLaborTicketsInterval = getEnvString(
80
- "RETRY_LABOR_TICKETS_INTERVAL",
81
- "30 min"
82
- );
83
- this.cacheExpirationCheckInterval = getEnvString(
84
- "CACHE_EXPIRATION_CHECK_INTERVAL",
85
- "5 min"
86
- );
71
+ this.fromErpInterval =
72
+ process.env.FROM_ERP_INTERVAL || process.env.POLL_INTERVAL || "5 min";
73
+ this.toErpInterval = process.env.TO_ERP_INTERVAL || "5 min";
74
+ this.retryLaborTicketsInterval =
75
+ process.env.RETRY_LABOR_TICKETS_INTERVAL || "30 min";
76
+ this.cacheExpirationCheckInterval =
77
+ process.env.CACHE_EXPIRATION_CHECK_INTERVAL || "5 min";
87
78
 
88
79
  /**
89
80
  * Cache TTL (in seconds)
90
81
  */
91
82
  const cacheTTLDef = 7 * 24 * 60 * 60; // 7 days
92
- this.cacheTTL = getEnvNumber("CACHE_TTL", cacheTTLDef);
83
+ this.cacheTTL = parseInt(process.env.CACHE_TTL || cacheTTLDef.toString());
93
84
 
94
85
  // Configure the logger with our settings
95
86
  configureLogger(this.logLevel, this.nodeEnv);
@@ -141,24 +132,20 @@ export class CoreConfiguration {
141
132
  */
142
133
  export const getSQLServerConfiguration = (): SQLServerConfiguration => {
143
134
  return {
144
- username: getEnvString("ERP_SQLSERVER_USERNAME", ""),
145
- password: getEnvString("ERP_SQLSERVER_PASSWORD", ""),
146
- database: getEnvString("ERP_SQLSERVER_DATABASE", ""),
147
- host: getEnvString(
148
- "ERP_SQLSERVER_HOST",
149
- getEnvString("ERP_SQLSERVER_SERVER", "")
150
- ),
151
- port: getEnvString("ERP_SQLSERVER_PORT", "1433"),
152
- connectionTimeout: getEnvString("ERP_SQLSERVER_CONNECTION_TIMEOUT", "30000"),
153
- requestTimeout: getEnvString("ERP_SQLSERVER_REQUEST_TIMEOUT", "60000"),
154
- poolMax: getEnvString("ERP_SQLSERVER_MAX", "10"),
155
- poolMin: getEnvString("ERP_SQLSERVER_MIN", "0"),
156
- idleTimeoutMillis: getEnvString(
157
- "ERP_SQLSERVER_IDLE_TIMEOUT_MMILLIS",
158
- "30000"
159
- ),
160
- encrypt: getEnvBoolean("ERP_SQLSERVER_ENCRYPT", false),
161
- trustServer: getEnvBoolean("ERP_SQLSERVER_TRUST_SERVER", false),
135
+ username: process.env.ERP_SQLSERVER_USERNAME || "",
136
+ password: process.env.ERP_SQLSERVER_PASSWORD || "",
137
+ database: process.env.ERP_SQLSERVER_DATABASE || "",
138
+ host:
139
+ process.env.ERP_SQLSERVER_HOST || process.env.ERP_SQLSERVER_SERVER || "",
140
+ port: process.env.ERP_SQLSERVER_PORT || "1433",
141
+ connectionTimeout: process.env.ERP_SQLSERVER_CONNECTION_TIMEOUT || "30000",
142
+ requestTimeout: process.env.ERP_SQLSERVER_REQUEST_TIMEOUT || "60000",
143
+ poolMax: process.env.ERP_SQLSERVER_MAX || "10",
144
+ poolMin: process.env.ERP_SQLSERVER_MIN || "0",
145
+ idleTimeoutMillis:
146
+ process.env.ERP_SQLSERVER_IDLE_TIMEOUT_MMILLIS || "30000",
147
+ encrypt: process.env.ERP_SQLSERVER_ENCRYPT === "true",
148
+ trustServer: process.env.ERP_SQLSERVER_TRUST_SERVER === "true",
162
149
  };
163
150
  };
164
151
 
@@ -184,11 +171,11 @@ export class ErpApiConnectionParams {
184
171
  */
185
172
  export const getErpApiConnectionParams = (): ErpApiConnectionParams => {
186
173
  return new ErpApiConnectionParams(
187
- getEnvString("ERP_API_URL", ""),
188
- getEnvString("ERP_API_CLIENT_ID", ""),
189
- getEnvString("ERP_API_CLIENT_SECRET", ""),
190
- getEnvString("ERP_API_ORGANIZATION_ID", ""),
191
- getEnvString("ERP_AUTH_BASE_URL", ""),
192
- getEnvNumber("ERP_API_RETRY_ATTEMPTS", 3)
174
+ process.env.ERP_API_URL || "",
175
+ process.env.ERP_API_CLIENT_ID || "",
176
+ process.env.ERP_API_CLIENT_SECRET || "",
177
+ process.env.ERP_API_ORGANIZATION_ID || "",
178
+ process.env.ERP_AUTH_BASE_URL || "",
179
+ parseInt(process.env.ERP_API_RETRY_ATTEMPTS || "3")
193
180
  );
194
181
  };
@@ -2,19 +2,23 @@ import Bree, { Job } from "bree";
2
2
  import Graceful from "@ladjs/graceful";
3
3
  import path from "path";
4
4
  import { fileURLToPath } from "url";
5
- import { CoreConfiguration } from "./configuration-manager.js";
6
- import logger from "../reporting-service/logger.js";
7
-
8
- type GracefulConstructor = new (config: { brees: Bree[] }) => {
9
- listen: () => void;
10
- };
11
-
12
- const GracefulClass = Graceful as unknown as GracefulConstructor;
5
+ import { CoreConfiguration } from "./configuration-manager";
6
+ import logger from "../reporting-service/logger";
7
+ import { createConnectorFromPath } from "../../utils/connector-factory";
8
+ import { NatsLaborTicketListener } from "./nats-labor-ticket-listener";
13
9
 
14
10
  export const runDataSyncService = async (connectorPath: string) => {
15
11
  const config = CoreConfiguration.inst();
16
12
 
17
13
  try {
14
+ // Create connector instance
15
+ const connector = await createConnectorFromPath(connectorPath);
16
+
17
+ // Start NATS listener if enabled
18
+ if (process.env.NATS_ENABLED === "true") {
19
+ const natsListener = new NatsLaborTicketListener(connector);
20
+ await natsListener.start();
21
+ }
18
22
  // Find the SDK's node_modules directory and jobs path using ES module import
19
23
  const currentFileUrl = import.meta.url;
20
24
  const currentFilePath = fileURLToPath(currentFileUrl);
@@ -23,7 +27,12 @@ export const runDataSyncService = async (connectorPath: string) => {
23
27
  // Current: /path/to/sdk/dist/mm-erp-sdk.js.js
24
28
  // Target: /path/to/sdk/dist/services/data-sync-service/jobs
25
29
  const sdkDistPath = path.dirname(currentFilePath);
26
- const jobsPath = path.join(sdkDistPath, "jobs");
30
+ const jobsPath = path.join(
31
+ sdkDistPath,
32
+ "services",
33
+ "data-sync-service",
34
+ "jobs"
35
+ );
27
36
 
28
37
  const bree = new Bree({
29
38
  root: jobsPath,
@@ -79,7 +88,7 @@ export const runDataSyncService = async (connectorPath: string) => {
79
88
  }));
80
89
  logger.info("JOBS CONFIGURATION:", { jobs: jobsConfig });
81
90
 
82
- const graceful = new GracefulClass({ brees: [bree] });
91
+ const graceful = new Graceful({ brees: [bree] });
83
92
  graceful.listen();
84
93
 
85
94
  (async () => {
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Core data sync service functionality
3
3
  */
4
- export { runDataSyncService } from "./data-sync-service.js";
4
+ export { runDataSyncService } from "./data-sync-service";
5
5
 
6
6
  /**
7
7
  * Configuration management for data sync
8
8
  */
9
- export { getSQLServerConfiguration } from "./configuration-manager.js";
9
+ export { getSQLServerConfiguration } from "./configuration-manager";
10
10
 
11
- export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager.js";
11
+ export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager";
@@ -1,11 +1,10 @@
1
1
  import "dotenv/config";
2
- import { HashedCacheManager } from "../../caching-service/hashed-cache-manager.js";
3
- import { SQLiteCoordinator } from "../../sqlite-service/index.js";
4
- import logger from "../../../services/reporting-service/logger.js";
5
- import { getEnvString } from "../../../utils/env.js";
2
+ import { HashedCacheManager } from "../../caching-service/hashed-cache-manager";
3
+ import { SQLiteCoordinator } from "../../sqlite-service";
4
+ import logger from "../../../services/reporting-service/logger";
6
5
 
7
6
  // Configure the logger with the correct log level
8
- logger.level = getEnvString("LOG_LEVEL", "info");
7
+ logger.level = process.env.LOG_LEVEL || "info";
9
8
 
10
9
  const main = async () => {
11
10
  const cacheManager = new HashedCacheManager();
@@ -1,12 +1,11 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../../services/reporting-service/logger.js";
4
- import { SQLiteCoordinator } from "../../sqlite-service/index.js";
5
- import { createConnectorFromPath } from "../../../utils/connector-factory.js";
6
- import { getEnvString } from "../../../utils/env.js";
3
+ import logger from "../../../services/reporting-service/logger";
4
+ import { SQLiteCoordinator } from "../../sqlite-service";
5
+ import { createConnectorFromPath } from "../../../utils/connector-factory";
7
6
 
8
7
  // Configure the logger with the correct log level
9
- logger.level = getEnvString("LOG_LEVEL", "info");
8
+ logger.level = process.env.LOG_LEVEL || "info";
10
9
 
11
10
  const main = async () => {
12
11
  try {
@@ -30,14 +29,9 @@ const main = async () => {
30
29
  await connector.syncFromERPCompleted();
31
30
  logger.info("==========Completed from-erp job cycle==========");
32
31
  } catch (error) {
33
- const errorDetails = {
34
- message: error instanceof Error ? error.message : String(error),
35
- stack: error instanceof Error ? error.stack : undefined,
36
- name: error instanceof Error ? error.name : undefined,
37
- ...(error && typeof error === "object" ? error : {}), // Include all enumerable properties if it's an object
38
- };
32
+ // Logger now handles circular references and error objects safely
39
33
  logger.error('Worker for job "from-erp" had an error', {
40
- error: errorDetails,
34
+ error,
41
35
  });
42
36
 
43
37
  throw error; // Rethrow so Bree can handle it properly
@@ -1,11 +1,10 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../../services/reporting-service/logger.js";
4
- import { getEnvString } from "../../../utils/env.js";
5
- import { createConnectorFromPath } from "../../../utils/connector-factory.js";
3
+ import logger from "../../../services/reporting-service/logger";
4
+ import { createConnectorFromPath } from "../../../utils/connector-factory";
6
5
 
7
6
  // Configure the logger with the correct log level
8
- logger.level = getEnvString("LOG_LEVEL", "info");
7
+ logger.level = process.env.LOG_LEVEL || "info";
9
8
 
10
9
  const main = async () => {
11
10
  try {
@@ -1,10 +1,9 @@
1
1
  import knex, { Knex } from "knex";
2
- import logger from "../../reporting-service/logger.js";
3
- import config from "../../../knexfile.js";
4
- import { getEnvString } from "../../../utils/env.js";
2
+ import logger from "../../reporting-service/logger";
3
+ import config from "../../../knexfile";
5
4
 
6
5
  // Configure the logger with the correct log level
7
- logger.level = getEnvString("LOG_LEVEL", "info");
6
+ logger.level = process.env.LOG_LEVEL || "info";
8
7
 
9
8
  // MLW TODO Consider the location of knexfile
10
9
  const db: Knex = knex(config.local);
@@ -1,11 +1,11 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../reporting-service/logger.js";
4
- import { createConnectorFromPath } from "../../../utils/connector-factory.js";
5
- import { getEnvString } from "../../../utils/env.js";
3
+ import logger from "../../reporting-service/logger";
4
+ import { SQLiteCoordinator } from "../../sqlite-service";
5
+ import { createConnectorFromPath } from "../../../utils/connector-factory";
6
6
 
7
7
  // Configure the logger with the correct log level
8
- logger.level = getEnvString("LOG_LEVEL", "info");
8
+ logger.level = process.env.LOG_LEVEL || "info";
9
9
 
10
10
  const main = async () => {
11
11
  try {
@@ -22,7 +22,16 @@ const main = async () => {
22
22
  // Create a new connector instance for this job
23
23
  const connector = await createConnectorFromPath(connectorPath);
24
24
 
25
- await connector.syncToERP();
25
+ // Only use lock if NATS is enabled (to prevent concurrent processing)
26
+ // Otherwise, no lock needed - just run directly
27
+ if (process.env.NATS_ENABLED === "true") {
28
+ await SQLiteCoordinator.executeWithLock("to-erp", async () => {
29
+ await connector.syncToERP();
30
+ });
31
+ } else {
32
+ await connector.syncToERP();
33
+ }
34
+
26
35
  await connector.syncToERPCompleted();
27
36
 
28
37
  logger.info("==========Completed to-erp job cycle==========");