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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +5 -0
  2. package/dist/index.d.ts +42 -43
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +48 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/knexfile.d.ts.map +1 -1
  7. package/dist/knexfile.js +19 -0
  8. package/dist/knexfile.js.map +1 -0
  9. package/dist/migrations/20241015162631_create_cache_table.d.ts +4 -0
  10. package/dist/migrations/20241015162631_create_cache_table.d.ts.map +1 -0
  11. package/dist/migrations/20241015162631_create_cache_table.js +11 -15
  12. package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
  13. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +4 -0
  14. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +1 -0
  15. package/dist/migrations/20241015162632_create_sdk_cache_table.js +11 -15
  16. package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
  17. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +4 -0
  18. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +1 -0
  19. package/dist/migrations/20250103162631_create_record_tracking_table.js +14 -15
  20. package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
  21. package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
  22. package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
  23. package/dist/services/caching-service/batch-cache-manager.js +84 -0
  24. package/dist/services/caching-service/batch-cache-manager.js.map +1 -0
  25. package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
  26. package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
  27. package/dist/services/caching-service/hashed-cache-manager.js +223 -0
  28. package/dist/services/caching-service/hashed-cache-manager.js.map +1 -0
  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/index.js +2 -0
  32. package/dist/services/caching-service/index.js.map +1 -0
  33. package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
  34. package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
  35. package/dist/services/caching-service/record-tracking-manager.js +28 -0
  36. package/dist/services/caching-service/record-tracking-manager.js.map +1 -0
  37. package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
  38. package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
  39. package/dist/services/data-sync-service/configuration-manager.js +163 -0
  40. package/dist/services/data-sync-service/configuration-manager.js.map +1 -0
  41. package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
  42. package/dist/services/data-sync-service/data-sync-service.js +95 -0
  43. package/dist/services/data-sync-service/data-sync-service.js.map +1 -0
  44. package/dist/services/data-sync-service/index.d.ts +3 -3
  45. package/dist/services/data-sync-service/index.d.ts.map +1 -1
  46. package/dist/services/data-sync-service/index.js +10 -0
  47. package/dist/services/data-sync-service/index.js.map +1 -0
  48. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.d.ts.map +1 -1
  49. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +42 -40
  50. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
  51. package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
  52. package/dist/services/data-sync-service/jobs/from-erp.js +50 -37
  53. package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
  54. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.d.ts.map +1 -1
  55. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +38 -36
  56. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
  57. package/dist/services/data-sync-service/jobs/run-migrations.d.ts.map +1 -1
  58. package/dist/services/data-sync-service/jobs/run-migrations.js +24 -22
  59. package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
  60. package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
  61. package/dist/services/data-sync-service/jobs/to-erp.js +49 -49
  62. package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
  63. package/dist/services/erp-api-services/errors.d.ts +1 -1
  64. package/dist/services/erp-api-services/errors.d.ts.map +1 -1
  65. package/dist/services/erp-api-services/errors.js +83 -0
  66. package/dist/services/erp-api-services/errors.js.map +1 -0
  67. package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
  68. package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
  69. package/dist/services/erp-api-services/graphql/graphql-service.js +102 -0
  70. package/dist/services/erp-api-services/graphql/graphql-service.js.map +1 -0
  71. package/dist/services/erp-api-services/graphql/types.js +6 -0
  72. package/dist/services/erp-api-services/graphql/types.js.map +1 -0
  73. package/dist/services/erp-api-services/index.d.ts +8 -8
  74. package/dist/services/erp-api-services/index.d.ts.map +1 -1
  75. package/dist/services/erp-api-services/index.js +13 -0
  76. package/dist/services/erp-api-services/index.js.map +1 -0
  77. package/dist/services/erp-api-services/oauth-client.js +41 -0
  78. package/dist/services/erp-api-services/oauth-client.js.map +1 -0
  79. package/dist/services/erp-api-services/rest/get-query-params.js +23 -0
  80. package/dist/services/erp-api-services/rest/get-query-params.js.map +1 -0
  81. package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
  82. package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
  83. package/dist/services/erp-api-services/rest/rest-api-service.js +163 -0
  84. package/dist/services/erp-api-services/rest/rest-api-service.js.map +1 -0
  85. package/dist/services/erp-api-services/types.d.ts +2 -2
  86. package/dist/services/erp-api-services/types.d.ts.map +1 -1
  87. package/dist/services/erp-api-services/types.js +2 -0
  88. package/dist/services/erp-api-services/types.js.map +1 -0
  89. package/dist/services/mm-api-service/index.d.ts +6 -13
  90. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  91. package/dist/services/mm-api-service/index.js +15 -0
  92. package/dist/services/mm-api-service/index.js.map +1 -0
  93. package/dist/services/mm-api-service/mm-api-service.d.ts +7 -13
  94. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  95. package/dist/services/mm-api-service/mm-api-service.js +519 -0
  96. package/dist/services/mm-api-service/mm-api-service.js.map +1 -0
  97. package/dist/services/mm-api-service/token-mgr.js +113 -0
  98. package/dist/services/mm-api-service/token-mgr.js.map +1 -0
  99. package/dist/services/mm-api-service/types/checkpoint.js +2 -0
  100. package/dist/services/mm-api-service/types/checkpoint.js.map +1 -0
  101. package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
  102. package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
  103. package/dist/services/mm-api-service/types/entity-transformer.js +186 -0
  104. package/dist/services/mm-api-service/types/entity-transformer.js.map +1 -0
  105. package/dist/services/mm-api-service/types/mm-response-interfaces.js +34 -0
  106. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -0
  107. package/dist/services/mm-api-service/types/receive-types.d.ts +0 -3
  108. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  109. package/dist/services/mm-api-service/types/receive-types.js +55 -0
  110. package/dist/services/mm-api-service/types/receive-types.js.map +1 -0
  111. package/dist/services/mm-api-service/types/send-types.js +337 -0
  112. package/dist/services/mm-api-service/types/send-types.js.map +1 -0
  113. package/dist/services/psql-erp-service/configuration.js +2 -0
  114. package/dist/services/psql-erp-service/configuration.js.map +1 -0
  115. package/dist/services/psql-erp-service/index.d.ts +3 -3
  116. package/dist/services/psql-erp-service/index.d.ts.map +1 -1
  117. package/dist/services/psql-erp-service/index.js +10 -0
  118. package/dist/services/psql-erp-service/index.js.map +1 -0
  119. package/dist/services/psql-erp-service/internal/types/psql-types.js +5 -0
  120. package/dist/services/psql-erp-service/internal/types/psql-types.js.map +1 -0
  121. package/dist/services/psql-erp-service/psql-helpers.js +99 -0
  122. package/dist/services/psql-erp-service/psql-helpers.js.map +1 -0
  123. package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
  124. package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
  125. package/dist/services/psql-erp-service/psql-service.js +187 -0
  126. package/dist/services/psql-erp-service/psql-service.js.map +1 -0
  127. package/dist/services/reporting-service/index.d.ts +1 -1
  128. package/dist/services/reporting-service/index.d.ts.map +1 -1
  129. package/dist/services/reporting-service/index.js +5 -0
  130. package/dist/services/reporting-service/index.js.map +1 -0
  131. package/dist/services/reporting-service/logger.d.ts.map +1 -1
  132. package/dist/services/reporting-service/logger.js +221 -0
  133. package/dist/services/reporting-service/logger.js.map +1 -0
  134. package/dist/services/sql-server-erp-service/configuration.js +2 -0
  135. package/dist/services/sql-server-erp-service/configuration.js.map +1 -0
  136. package/dist/services/sql-server-erp-service/index.d.ts +3 -3
  137. package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
  138. package/dist/services/sql-server-erp-service/index.js +11 -0
  139. package/dist/services/sql-server-erp-service/index.js.map +1 -0
  140. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
  141. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
  142. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +50 -0
  143. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +1 -0
  144. package/dist/services/sql-server-erp-service/internal/sql-server-config.js +40 -0
  145. package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +1 -0
  146. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +36 -0
  147. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +1 -0
  148. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +2 -0
  149. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +1 -0
  150. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
  151. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
  152. package/dist/services/sql-server-erp-service/sql-server-helpers.js +66 -0
  153. package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +1 -0
  154. package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
  155. package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
  156. package/dist/services/sql-server-erp-service/sql-server-service.js +154 -0
  157. package/dist/services/sql-server-erp-service/sql-server-service.js.map +1 -0
  158. package/dist/services/sql-server-erp-service/types/sql-input-param.js +2 -0
  159. package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +1 -0
  160. package/dist/services/sqlite-service/index.d.ts +1 -1
  161. package/dist/services/sqlite-service/index.d.ts.map +1 -1
  162. package/dist/services/sqlite-service/index.js +2 -0
  163. package/dist/services/sqlite-service/index.js.map +1 -0
  164. package/dist/services/sqlite-service/sqlite-coordinator.js +60 -0
  165. package/dist/services/sqlite-service/sqlite-coordinator.js.map +1 -0
  166. package/dist/types/erp-connector.d.ts +9 -2
  167. package/dist/types/erp-connector.d.ts.map +1 -1
  168. package/dist/types/erp-connector.js +2 -0
  169. package/dist/types/erp-connector.js.map +1 -0
  170. package/dist/types/erp-types.js +13 -0
  171. package/dist/types/erp-types.js.map +1 -0
  172. package/dist/types/flattened-work-order.d.ts +99 -0
  173. package/dist/types/flattened-work-order.d.ts.map +1 -0
  174. package/dist/types/flattened-work-order.js +2 -0
  175. package/dist/types/flattened-work-order.js.map +1 -0
  176. package/dist/types/index.d.ts +3 -2
  177. package/dist/types/index.d.ts.map +1 -1
  178. package/dist/types/index.js +6 -0
  179. package/dist/types/index.js.map +1 -0
  180. package/dist/utils/application-initializer.js +55 -0
  181. package/dist/utils/application-initializer.js.map +1 -0
  182. package/dist/utils/cleanup-numbers.js +6 -0
  183. package/dist/utils/cleanup-numbers.js.map +1 -0
  184. package/dist/utils/connector-factory.d.ts +1 -1
  185. package/dist/utils/connector-factory.d.ts.map +1 -1
  186. package/dist/utils/connector-factory.js +34 -0
  187. package/dist/utils/connector-factory.js.map +1 -0
  188. package/dist/utils/connector-log/log-deduper.d.ts +1 -1
  189. package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
  190. package/dist/utils/connector-log/log-deduper.js +240 -0
  191. package/dist/utils/connector-log/log-deduper.js.map +1 -0
  192. package/dist/utils/connector-log/mm-connector-logger-example.d.ts +1 -0
  193. package/dist/utils/connector-log/mm-connector-logger-example.js +88 -0
  194. package/dist/utils/connector-log/mm-connector-logger-example.js.map +1 -0
  195. package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
  196. package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
  197. package/dist/utils/connector-log/mm-connector-logger.js +151 -0
  198. package/dist/utils/connector-log/mm-connector-logger.js.map +1 -0
  199. package/dist/utils/data-transformation.js +38 -0
  200. package/dist/utils/data-transformation.js.map +1 -0
  201. package/dist/utils/env.d.ts +8 -0
  202. package/dist/utils/env.d.ts.map +1 -0
  203. package/dist/utils/env.js +58 -0
  204. package/dist/utils/env.js.map +1 -0
  205. package/dist/utils/erp-timezone-utils.d.ts +20 -0
  206. package/dist/utils/erp-timezone-utils.d.ts.map +1 -0
  207. package/dist/utils/erp-timezone-utils.js +75 -0
  208. package/dist/utils/erp-timezone-utils.js.map +1 -0
  209. package/dist/utils/erp-type-from-entity.d.ts +1 -1
  210. package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
  211. package/dist/utils/erp-type-from-entity.js +6 -0
  212. package/dist/utils/erp-type-from-entity.js.map +1 -0
  213. package/dist/utils/error-utils.js +21 -0
  214. package/dist/utils/error-utils.js.map +1 -0
  215. package/dist/utils/http-client.js +189 -0
  216. package/dist/utils/http-client.js.map +1 -0
  217. package/dist/utils/index.d.ts +34 -38
  218. package/dist/utils/index.d.ts.map +1 -1
  219. package/dist/utils/index.js +66 -0
  220. package/dist/utils/index.js.map +1 -0
  221. package/dist/utils/local-data-store/database-lock.js +68 -0
  222. package/dist/utils/local-data-store/database-lock.js.map +1 -0
  223. package/dist/utils/local-data-store/jobs-shared-data.d.ts +2 -0
  224. package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
  225. package/dist/utils/local-data-store/jobs-shared-data.js +118 -0
  226. package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -0
  227. package/dist/utils/mm-labor-ticket-helpers.d.ts +4 -5
  228. package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
  229. package/dist/utils/mm-labor-ticket-helpers.js +28 -0
  230. package/dist/utils/mm-labor-ticket-helpers.js.map +1 -0
  231. package/dist/utils/removeExtraneousFields.d.ts +1 -1
  232. package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
  233. package/dist/utils/removeExtraneousFields.js +16 -0
  234. package/dist/utils/removeExtraneousFields.js.map +1 -0
  235. package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
  236. package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
  237. package/dist/utils/removeIdFieldFromPayload.js +16 -0
  238. package/dist/utils/removeIdFieldFromPayload.js.map +1 -0
  239. package/dist/utils/resource-group.d.ts +1 -1
  240. package/dist/utils/resource-group.d.ts.map +1 -1
  241. package/dist/utils/resource-group.js +59 -0
  242. package/dist/utils/resource-group.js.map +1 -0
  243. package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
  244. package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
  245. package/dist/utils/standard-process-drivers/error-processor.js +262 -0
  246. package/dist/utils/standard-process-drivers/error-processor.js.map +1 -0
  247. package/dist/utils/standard-process-drivers/index.d.ts +3 -3
  248. package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
  249. package/dist/utils/standard-process-drivers/index.js +4 -0
  250. package/dist/utils/standard-process-drivers/index.js.map +1 -0
  251. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +16 -1
  252. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  253. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +299 -0
  254. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -0
  255. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +11 -5
  256. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  257. package/dist/utils/standard-process-drivers/mm-entity-processor.js +174 -0
  258. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +1 -0
  259. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +12 -6
  260. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  261. package/dist/utils/standard-process-drivers/standard-process-drivers.js +333 -0
  262. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -0
  263. package/dist/utils/time-utils.d.ts.map +1 -1
  264. package/dist/utils/time-utils.js +103 -0
  265. package/dist/utils/time-utils.js.map +1 -0
  266. package/dist/utils/timezone.js +105 -0
  267. package/dist/utils/timezone.js.map +1 -0
  268. package/dist/utils/trimObjectValues.js +11 -0
  269. package/dist/utils/trimObjectValues.js.map +1 -0
  270. package/dist/utils/uniqueRows.js +35 -0
  271. package/dist/utils/uniqueRows.js.map +1 -0
  272. package/package.json +8 -10
  273. package/src/index.ts +42 -45
  274. package/src/knexfile.ts +1 -0
  275. package/src/services/caching-service/batch-cache-manager.ts +2 -2
  276. package/src/services/caching-service/hashed-cache-manager.ts +5 -5
  277. package/src/services/caching-service/index.ts +1 -1
  278. package/src/services/caching-service/record-tracking-manager.ts +2 -2
  279. package/src/services/data-sync-service/configuration-manager.ts +52 -39
  280. package/src/services/data-sync-service/data-sync-service.ts +10 -19
  281. package/src/services/data-sync-service/index.ts +3 -3
  282. package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +5 -4
  283. package/src/services/data-sync-service/jobs/from-erp.ts +12 -6
  284. package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +4 -3
  285. package/src/services/data-sync-service/jobs/run-migrations.ts +4 -3
  286. package/src/services/data-sync-service/jobs/to-erp.ts +5 -14
  287. package/src/services/erp-api-services/errors.ts +3 -3
  288. package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
  289. package/src/services/erp-api-services/index.ts +8 -8
  290. package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
  291. package/src/services/erp-api-services/types.ts +2 -2
  292. package/src/services/mm-api-service/index.ts +6 -14
  293. package/src/services/mm-api-service/mm-api-service.ts +13 -30
  294. package/src/services/mm-api-service/token-mgr.ts +4 -4
  295. package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
  296. package/src/services/mm-api-service/types/receive-types.ts +0 -1
  297. package/src/services/psql-erp-service/index.ts +3 -3
  298. package/src/services/psql-erp-service/psql-service.ts +4 -4
  299. package/src/services/reporting-service/index.ts +1 -1
  300. package/src/services/reporting-service/logger.ts +116 -81
  301. package/src/services/sql-server-erp-service/index.ts +3 -3
  302. package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
  303. package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
  304. package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
  305. package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
  306. package/src/services/sqlite-service/index.ts +1 -1
  307. package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
  308. package/src/types/erp-connector.ts +9 -2
  309. package/src/types/flattened-work-order.ts +108 -0
  310. package/src/types/index.ts +10 -2
  311. package/src/utils/application-initializer.ts +5 -5
  312. package/src/utils/connector-factory.ts +2 -2
  313. package/src/utils/connector-log/log-deduper.ts +2 -2
  314. package/src/utils/connector-log/mm-connector-logger.ts +3 -3
  315. package/src/utils/env.ts +75 -0
  316. package/src/utils/erp-timezone-utils.ts +99 -0
  317. package/src/utils/erp-type-from-entity.ts +1 -1
  318. package/src/utils/http-client.ts +5 -4
  319. package/src/utils/index.ts +38 -39
  320. package/src/utils/local-data-store/database-lock.ts +1 -1
  321. package/src/utils/local-data-store/jobs-shared-data.ts +2 -0
  322. package/src/utils/mm-labor-ticket-helpers.ts +12 -9
  323. package/src/utils/removeExtraneousFields.ts +1 -1
  324. package/src/utils/removeIdFieldFromPayload.ts +1 -1
  325. package/src/utils/resource-group.ts +2 -2
  326. package/src/utils/standard-process-drivers/error-processor.ts +5 -5
  327. package/src/utils/standard-process-drivers/index.ts +3 -3
  328. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +225 -69
  329. package/src/utils/standard-process-drivers/mm-entity-processor.ts +14 -8
  330. package/src/utils/standard-process-drivers/standard-process-drivers.ts +39 -25
  331. package/src/utils/time-utils.ts +14 -3
  332. package/src/utils/timezone.ts +2 -2
  333. package/dist/config-CvA-mFWF.js +0 -418
  334. package/dist/config-CvA-mFWF.js.map +0 -1
  335. package/dist/connector-factory-BPm2GVVF.js +0 -30
  336. package/dist/connector-factory-BPm2GVVF.js.map +0 -1
  337. package/dist/hashed-cache-manager-B15NN8hK.js +0 -322
  338. package/dist/hashed-cache-manager-B15NN8hK.js.map +0 -1
  339. package/dist/index-D8qO1NyK.js +0 -192
  340. package/dist/index-D8qO1NyK.js.map +0 -1
  341. package/dist/knexfile-Bng2Ru9c.js +0 -20
  342. package/dist/knexfile-Bng2Ru9c.js.map +0 -1
  343. package/dist/logger-BWw0_z9q.js +0 -17557
  344. package/dist/logger-BWw0_z9q.js.map +0 -1
  345. package/dist/mm-erp-sdk.js +0 -4978
  346. package/dist/mm-erp-sdk.js.map +0 -1
  347. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +0 -30
  348. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +0 -1
  349. package/dist/services/mm-api-service/company-info.d.ts +0 -13
  350. package/dist/services/mm-api-service/company-info.d.ts.map +0 -1
  351. package/dist/services/nats-service/nats-service.d.ts +0 -114
  352. package/dist/services/nats-service/nats-service.d.ts.map +0 -1
  353. package/dist/services/nats-service/test-nats-subscriber.d.ts +0 -6
  354. package/dist/services/nats-service/test-nats-subscriber.d.ts.map +0 -1
  355. package/dist/utils/error-formatter.d.ts +0 -19
  356. package/dist/utils/error-formatter.d.ts.map +0 -1
  357. package/src/services/data-sync-service/nats-labor-ticket-listener.ts +0 -341
  358. package/src/services/mm-api-service/company-info.ts +0 -87
  359. package/src/services/nats-service/nats-service.ts +0 -351
  360. package/src/services/nats-service/test-nats-subscriber.ts +0 -96
  361. package/src/utils/error-formatter.ts +0 -205
@@ -1,6 +1,7 @@
1
1
  import "dotenv/config";
2
- import { configureLogger } from "../reporting-service/logger";
3
- import { SQLServerConfiguration } from "../sql-server-erp-service/configuration";
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";
4
5
 
5
6
  export class CoreConfiguration {
6
7
  private static instance: CoreConfiguration;
@@ -29,58 +30,66 @@ export class CoreConfiguration {
29
30
  public readonly cacheExpirationCheckInterval: string;
30
31
 
31
32
  private constructor() {
32
- this.logLevel = process.env.LOG_LEVEL || "info";
33
- this.erpSystem = process.env.ERP_SYSTEM || "template";
34
- this.nodeEnv = process.env.NODE_ENV || "development";
33
+ this.logLevel = getEnvString("LOG_LEVEL", "info");
34
+ this.erpSystem = getEnvString("ERP_SYSTEM", "template");
35
+ this.nodeEnv = getEnvString("NODE_ENV", "development");
35
36
 
36
37
  //#region MM API (aka "Mapping") Service
37
38
  /**
38
39
  * MM ERP Service REST API URL (typically https://erp-api.svc.machinemetrics.com)
39
40
  */
40
- this.mmERPSvcApiBaseUrl = process.env.MM_MAPPING_SERVICE_URL || "";
41
+ this.mmERPSvcApiBaseUrl = getEnvString("MM_MAPPING_SERVICE_URL", "");
41
42
 
42
43
  /**
43
44
  * MM REST API URL (typically https://api.machinemetrics.com)
44
45
  */
45
46
  console.log("=== CONFIG DEBUG ===");
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 || "";
47
+ const mmAuthSvcUrl = getEnvString("MM_MAPPING_AUTH_SERVICE_URL", "");
48
+ console.log("MM_MAPPING_AUTH_SERVICE_URL env var:", mmAuthSvcUrl);
49
+ this.mmApiBaseUrl = mmAuthSvcUrl;
48
50
  console.log("mmApiBaseUrl set to:", this.mmApiBaseUrl);
49
51
  console.log("=== END CONFIG DEBUG ===");
50
52
 
51
53
  /**
52
54
  * Company Auth Token
53
55
  */
54
- this.mmApiAuthToken = process.env.MM_MAPPING_SERVICE_TOKEN || "";
56
+ this.mmApiAuthToken = getEnvString("MM_MAPPING_SERVICE_TOKEN", "");
55
57
 
56
58
  /**
57
59
  * Number of retry attempts for MM API calls
58
60
  */
59
- this.mmApiRetryAttempts = parseInt(process.env.RETRY_ATTEMPTS || "0");
61
+ this.mmApiRetryAttempts = getEnvNumber("RETRY_ATTEMPTS", 0);
60
62
  //#endregion MM API (aka "Mapping") Service
61
63
 
62
64
  /**
63
65
  * Default pagination limit for ERP API
64
66
  */
65
- this.erpApiPagingLimit = parseInt(process.env.ERP_PAGINATION_LIMIT || "0");
67
+ this.erpApiPagingLimit = getEnvNumber("ERP_PAGINATION_LIMIT", 0);
66
68
  //#endregion ERP API Service
67
69
 
68
70
  /**
69
71
  * For how to define the intervals, see Bree's documentation: https://github.com/breejs/bree
70
72
  */
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";
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
+ );
78
87
 
79
88
  /**
80
89
  * Cache TTL (in seconds)
81
90
  */
82
91
  const cacheTTLDef = 7 * 24 * 60 * 60; // 7 days
83
- this.cacheTTL = parseInt(process.env.CACHE_TTL || cacheTTLDef.toString());
92
+ this.cacheTTL = getEnvNumber("CACHE_TTL", cacheTTLDef);
84
93
 
85
94
  // Configure the logger with our settings
86
95
  configureLogger(this.logLevel, this.nodeEnv);
@@ -132,20 +141,24 @@ export class CoreConfiguration {
132
141
  */
133
142
  export const getSQLServerConfiguration = (): SQLServerConfiguration => {
134
143
  return {
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",
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),
149
162
  };
150
163
  };
151
164
 
@@ -171,11 +184,11 @@ export class ErpApiConnectionParams {
171
184
  */
172
185
  export const getErpApiConnectionParams = (): ErpApiConnectionParams => {
173
186
  return new ErpApiConnectionParams(
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")
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)
180
193
  );
181
194
  };
@@ -2,23 +2,19 @@ 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";
6
- import logger from "../reporting-service/logger";
7
- import { createConnectorFromPath } from "../../utils/connector-factory";
8
- import { NatsLaborTicketListener } from "./nats-labor-ticket-listener";
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;
9
13
 
10
14
  export const runDataSyncService = async (connectorPath: string) => {
11
15
  const config = CoreConfiguration.inst();
12
16
 
13
17
  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
- }
22
18
  // Find the SDK's node_modules directory and jobs path using ES module import
23
19
  const currentFileUrl = import.meta.url;
24
20
  const currentFilePath = fileURLToPath(currentFileUrl);
@@ -27,12 +23,7 @@ export const runDataSyncService = async (connectorPath: string) => {
27
23
  // Current: /path/to/sdk/dist/mm-erp-sdk.js.js
28
24
  // Target: /path/to/sdk/dist/services/data-sync-service/jobs
29
25
  const sdkDistPath = path.dirname(currentFilePath);
30
- const jobsPath = path.join(
31
- sdkDistPath,
32
- "services",
33
- "data-sync-service",
34
- "jobs"
35
- );
26
+ const jobsPath = path.join(sdkDistPath, "jobs");
36
27
 
37
28
  const bree = new Bree({
38
29
  root: jobsPath,
@@ -88,7 +79,7 @@ export const runDataSyncService = async (connectorPath: string) => {
88
79
  }));
89
80
  logger.info("JOBS CONFIGURATION:", { jobs: jobsConfig });
90
81
 
91
- const graceful = new Graceful({ brees: [bree] });
82
+ const graceful = new GracefulClass({ brees: [bree] });
92
83
  graceful.listen();
93
84
 
94
85
  (async () => {
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Core data sync service functionality
3
3
  */
4
- export { runDataSyncService } from "./data-sync-service";
4
+ export { runDataSyncService } from "./data-sync-service.js";
5
5
 
6
6
  /**
7
7
  * Configuration management for data sync
8
8
  */
9
- export { getSQLServerConfiguration } from "./configuration-manager";
9
+ export { getSQLServerConfiguration } from "./configuration-manager.js";
10
10
 
11
- export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager";
11
+ export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager.js";
@@ -1,10 +1,11 @@
1
1
  import "dotenv/config";
2
- import { HashedCacheManager } from "../../caching-service/hashed-cache-manager";
3
- import { SQLiteCoordinator } from "../../sqlite-service";
4
- import logger from "../../../services/reporting-service/logger";
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";
5
6
 
6
7
  // Configure the logger with the correct log level
7
- logger.level = process.env.LOG_LEVEL || "info";
8
+ logger.level = getEnvString("LOG_LEVEL", "info");
8
9
 
9
10
  const main = async () => {
10
11
  const cacheManager = new HashedCacheManager();
@@ -1,11 +1,12 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../../services/reporting-service/logger";
4
- import { SQLiteCoordinator } from "../../sqlite-service";
5
- import { createConnectorFromPath } from "../../../utils/connector-factory";
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";
6
7
 
7
8
  // Configure the logger with the correct log level
8
- logger.level = process.env.LOG_LEVEL || "info";
9
+ logger.level = getEnvString("LOG_LEVEL", "info");
9
10
 
10
11
  const main = async () => {
11
12
  try {
@@ -29,9 +30,14 @@ const main = async () => {
29
30
  await connector.syncFromERPCompleted();
30
31
  logger.info("==========Completed from-erp job cycle==========");
31
32
  } catch (error) {
32
- // Logger now handles circular references and error objects safely
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
+ };
33
39
  logger.error('Worker for job "from-erp" had an error', {
34
- error,
40
+ error: errorDetails,
35
41
  });
36
42
 
37
43
  throw error; // Rethrow so Bree can handle it properly
@@ -1,10 +1,11 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../../services/reporting-service/logger";
4
- import { createConnectorFromPath } from "../../../utils/connector-factory";
3
+ import logger from "../../../services/reporting-service/logger.js";
4
+ import { getEnvString } from "../../../utils/env.js";
5
+ import { createConnectorFromPath } from "../../../utils/connector-factory.js";
5
6
 
6
7
  // Configure the logger with the correct log level
7
- logger.level = process.env.LOG_LEVEL || "info";
8
+ logger.level = getEnvString("LOG_LEVEL", "info");
8
9
 
9
10
  const main = async () => {
10
11
  try {
@@ -1,9 +1,10 @@
1
1
  import knex, { Knex } from "knex";
2
- import logger from "../../reporting-service/logger";
3
- import config from "../../../knexfile";
2
+ import logger from "../../reporting-service/logger.js";
3
+ import config from "../../../knexfile.js";
4
+ import { getEnvString } from "../../../utils/env.js";
4
5
 
5
6
  // Configure the logger with the correct log level
6
- logger.level = process.env.LOG_LEVEL || "info";
7
+ logger.level = getEnvString("LOG_LEVEL", "info");
7
8
 
8
9
  // MLW TODO Consider the location of knexfile
9
10
  const db: Knex = knex(config.local);
@@ -1,11 +1,11 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../reporting-service/logger";
4
- import { SQLiteCoordinator } from "../../sqlite-service";
5
- import { createConnectorFromPath } from "../../../utils/connector-factory";
3
+ import logger from "../../reporting-service/logger.js";
4
+ import { createConnectorFromPath } from "../../../utils/connector-factory.js";
5
+ import { getEnvString } from "../../../utils/env.js";
6
6
 
7
7
  // Configure the logger with the correct log level
8
- logger.level = process.env.LOG_LEVEL || "info";
8
+ logger.level = getEnvString("LOG_LEVEL", "info");
9
9
 
10
10
  const main = async () => {
11
11
  try {
@@ -22,16 +22,7 @@ const main = async () => {
22
22
  // Create a new connector instance for this job
23
23
  const connector = await createConnectorFromPath(connectorPath);
24
24
 
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
-
25
+ await connector.syncToERP();
35
26
  await connector.syncToERPCompleted();
36
27
 
37
28
  logger.info("==========Completed to-erp job cycle==========");
@@ -1,7 +1,7 @@
1
1
  import { AxiosError } from "axios";
2
- import logger from "../reporting-service/logger";
3
- import { GraphQLServerError } from "./graphql/types";
4
- import { HTTPError } from "../../utils/http-client";
2
+ import logger from "../reporting-service/logger.js";
3
+ import { GraphQLServerError } from "./graphql/types.js";
4
+ import { HTTPError } from "../../utils/http-client.js";
5
5
 
6
6
  /**
7
7
  * Represents GraphQL specific errors (validation, missing fields, etc.)
@@ -2,11 +2,11 @@ import {
2
2
  HTTPClient,
3
3
  HTTPClientFactory,
4
4
  HTTPResponse,
5
- } from "../../../utils/http-client";
6
- import { GraphQLResponse } from "./types";
7
- import { ErrorHandler } from "../errors";
8
- import { APIResponse } from "../types";
9
- import { ERPApiConfig } from "../types";
5
+ } from "../../../utils/http-client.js";
6
+ import { GraphQLResponse } from "./types.js";
7
+ import { ErrorHandler } from "../errors.js";
8
+ import { APIResponse } from "../types.js";
9
+ import { ERPApiConfig } from "../types.js";
10
10
 
11
11
  const DEFAULT_RETRY_ATTEMPTS = 0; // One try only, no retries
12
12
 
@@ -4,19 +4,19 @@
4
4
  */
5
5
 
6
6
  // REST API Service
7
- export { RestAPIService } from "./rest/rest-api-service";
8
- export type { QueryParams } from "./rest/get-query-params";
7
+ export { RestAPIService } from "./rest/rest-api-service.js";
8
+ export type { QueryParams } from "./rest/get-query-params.js";
9
9
 
10
10
  // GraphQL Service
11
- export { GraphQLService } from "./graphql/graphql-service";
12
- export type { GraphQLServerError } from './graphql/types';
11
+ export { GraphQLService } from "./graphql/graphql-service.js";
12
+ export type { GraphQLServerError } from './graphql/types.js';
13
13
 
14
14
  // OAuth Client
15
- export { OAuthClient } from './oauth-client';
16
- export type { OAuthConfig } from './oauth-client';
15
+ export { OAuthClient } from './oauth-client.js';
16
+ export type { OAuthConfig } from './oauth-client.js';
17
17
 
18
18
  // API Response
19
- export type { APIResponse } from './types';
19
+ export type { APIResponse } from './types.js';
20
20
 
21
21
  // Error classes
22
- export { ErrorHandler, GraphQLError } from './errors';
22
+ export { ErrorHandler, GraphQLError } from './errors.js';
@@ -1,11 +1,11 @@
1
- import { HTTPClient, HTTPClientFactory } from "../../../utils/http-client";
1
+ import { HTTPClient, HTTPClientFactory } from "../../../utils/http-client.js";
2
2
  import {
3
3
  QueryParams,
4
4
  buildLogicalCondition,
5
5
  Pagination,
6
- } from "./get-query-params";
7
- import { ErrorHandler } from "../errors";
8
- import { APIResponse, ERPApiConfig } from "../types";
6
+ } from "./get-query-params.js";
7
+ import { ErrorHandler } from "../errors.js";
8
+ import { APIResponse, ERPApiConfig } from "../types.js";
9
9
 
10
10
  const DEFAULT_RETRY_ATTEMPTS = 0; // One try only, no retries
11
11
  const DEFAULT_PAGINATION_LIMIT = 100; // Reasonable default for most APIs
@@ -1,5 +1,5 @@
1
- import { Pagination } from "./rest/get-query-params";
2
- import { GraphQLServerError } from "./graphql/types";
1
+ import { Pagination } from "./rest/get-query-params.js";
2
+ import { GraphQLServerError } from "./graphql/types.js";
3
3
 
4
4
  /**
5
5
  * Configuration for making API requests to an ERP system.
@@ -1,9 +1,9 @@
1
- import { MMApiClient } from "./mm-api-service";
1
+ import { MMApiClient } from "./mm-api-service.js";
2
2
  import type {
3
3
  MMReceiveLaborTicket,
4
4
  MMReceiveLaborTicketReason,
5
5
  MMReceiveLaborTicketWorkOrderOperation,
6
- } from "./types/receive-types";
6
+ } from "./types/receive-types.js";
7
7
  import {
8
8
  MMSendPerson,
9
9
  MMSendResource,
@@ -14,8 +14,8 @@ import {
14
14
  MMSendReason,
15
15
  MMSendLaborTicket,
16
16
  MMSendWorkOrderBatch,
17
- } from "./types/send-types";
18
- import type { IToRESTApiObject } from "./types/send-types";
17
+ } from "./types/send-types.js";
18
+ import type { IToRESTApiObject } from "./types/send-types.js";
19
19
  import type {
20
20
  MMApiBaseResponse,
21
21
  MM200NonLaborTicketResponse,
@@ -26,9 +26,7 @@ import type {
26
26
  MM500LaborTicketException,
27
27
  MMGraphQLResourceResponse,
28
28
  MMMachineGroupsResponse,
29
- } from "./types/mm-response-interfaces";
30
- import { getCompanyInfo } from "./company-info";
31
- import type { CompanyInfo } from "./company-info";
29
+ } from "./types/mm-response-interfaces.js";
32
30
 
33
31
  /**
34
32
  * A class to manage interactions with the MM API
@@ -54,7 +52,7 @@ export type {
54
52
  /**
55
53
  * Types related of labor tickets received from the MM API
56
54
  */
57
- export { MMReceiveLaborTicket } from "./types/receive-types";
55
+ export { MMReceiveLaborTicket } from "./types/receive-types.js";
58
56
  export type {
59
57
  MMReceiveLaborTicketReason,
60
58
  MMReceiveLaborTicketWorkOrderOperation,
@@ -83,9 +81,3 @@ export {
83
81
  * Batch interfaces for sending multiple related entities
84
82
  */
85
83
  export type { MMSendWorkOrderBatch };
86
-
87
- /**
88
- * Company information utilities
89
- */
90
- export { getCompanyInfo };
91
- export type { CompanyInfo };
@@ -1,22 +1,22 @@
1
- import logger from "../reporting-service/logger";
2
- import { ERPObjType } from "../../types/erp-types";
3
- import { MMReceiveLaborTicket } from "./types/receive-types";
4
- import { MMTokenManager } from "./token-mgr";
5
- import * as MM_SEND_TYPES from "./types/send-types";
1
+ import logger from "../reporting-service/logger.js";
2
+ import { ERPObjType } from "../../types/erp-types.js";
3
+ import { MMReceiveLaborTicket } from "./types/receive-types.js";
4
+ import { MMTokenManager } from "./token-mgr.js";
5
+ import * as MM_SEND_TYPES from "./types/send-types.js";
6
6
  import {
7
7
  HTTPClient,
8
8
  HTTPMethod,
9
9
  HTTPRequestConfig,
10
10
  HTTPClientFactory,
11
- } from "../../utils/http-client";
12
- import { Checkpoint } from "./types/checkpoint";
13
- import { CoreConfiguration } from "../data-sync-service/configuration-manager";
14
- import { ErrorHandler } from "../erp-api-services/errors";
11
+ } from "../../utils/http-client.js";
12
+ import { Checkpoint } from "./types/checkpoint.js";
13
+ import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
14
+ import { ErrorHandler } from "../erp-api-services/errors.js";
15
15
  import {
16
16
  MMApiBaseResponse,
17
17
  MMGraphQLResourceResponse,
18
18
  MMMachineGroupsResponse,
19
- } from "./types/mm-response-interfaces";
19
+ } from "./types/mm-response-interfaces.js";
20
20
 
21
21
  const MAPPING = "MAPPING";
22
22
  const CHECKPOINTS = "CHECKPOINTS";
@@ -80,12 +80,9 @@ export class MMApiClient {
80
80
  return typeof err === "object" && err !== null && "status" in err;
81
81
  };
82
82
 
83
- // Check if this looks like an auth error - retry on auth status codes or JWT expiration errors
83
+ // Check if this looks like an auth error - only retry on explicit auth status codes
84
84
  const isAuthError =
85
- hasStatus(error) && (error.status === 401 || error.status === 403) ||
86
- (hasStatus(error) && error.status === 500 &&
87
- typeof (error as any).data?.error === 'string' &&
88
- (error as any).data.error.includes('JWT'));
85
+ hasStatus(error) && (error.status === 401 || error.status === 403);
89
86
 
90
87
  if (isAuthError && !options.token) {
91
88
  // Only retry if we used cached token
@@ -509,20 +506,6 @@ export class MMApiClient {
509
506
  return updates.data.map((ticket) => new MMReceiveLaborTicket(ticket));
510
507
  }
511
508
 
512
- /**
513
- * Fetch a single labor ticket by reference from the MM API
514
- * @param laborTicketRef The labor ticket reference to fetch
515
- * @returns Promise with the labor ticket data
516
- */
517
- async fetchLaborTicketByRef(
518
- laborTicketRef: string
519
- ): Promise<MMReceiveLaborTicket> {
520
- const response = (await this.getData(
521
- `${this.resourceURLs[ERPObjType.LABOR_TICKETS]}/${laborTicketRef}`
522
- )) as { data: MMReceiveLaborTicket };
523
- return new MMReceiveLaborTicket(response.data);
524
- }
525
-
526
509
  /**
527
510
  * Fetch a checkpoint for a specific system, table, and checkpoint type
528
511
  * @param checkpoint The checkpoint to fetch
@@ -568,7 +551,7 @@ export class MMApiClient {
568
551
  logger.info("saveCheckpoint:", { saveCheckpoint });
569
552
  } else {
570
553
  logger.info("Existing checkpoint found:", {
571
- timestamp: checkpointResponse.timestamp,
554
+ checkpointTimestamp: checkpointResponse.timestamp,
572
555
  });
573
556
  }
574
557
  }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getCachedMMToken,
3
3
  setCachedMMToken,
4
- } from "../../utils/local-data-store/jobs-shared-data";
5
- import { HTTPClient, HTTPClientFactory } from "../../utils/http-client";
6
- import { CoreConfiguration } from "../data-sync-service/configuration-manager";
7
- import { logger } from "../reporting-service";
4
+ } from "../../utils/local-data-store/jobs-shared-data.js";
5
+ import { HTTPClient, HTTPClientFactory } from "../../utils/http-client.js";
6
+ import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
7
+ import { logger } from "../reporting-service/index.js";
8
8
 
9
9
  /**
10
10
  * Manages the MM API token with caching and expiration checking
@@ -1,5 +1,5 @@
1
- import { ERPObjType } from "../../../types/erp-types";
2
- import { IToRESTApiObject } from "..";
1
+ import { ERPObjType } from "../../../types/erp-types.js";
2
+ import { IToRESTApiObject } from "../index.js";
3
3
  import {
4
4
  MMSendPerson,
5
5
  MMSendResource,
@@ -9,7 +9,7 @@ import {
9
9
  MMSendWorkOrderOperation,
10
10
  MMSendLaborTicket,
11
11
  MMSendReason,
12
- } from "..";
12
+ } from "../index.js";
13
13
 
14
14
  /**
15
15
  * Utility class for transforming entities to/from non-typed and typed objects
@@ -42,7 +42,6 @@ export class MMReceiveLaborTicket {
42
42
  personId!: string; // The person who did the work
43
43
  reasons?: MMReceiveLaborTicketReason[];
44
44
  resourceId!: string; // The physical resource that did the work
45
- resource?: { name: string }; // The resource name (available from export/updates endpoint)
46
45
  sequenceNumber!: number; // Which sequence this operation is for in the order, associates back to a part_operation with the part_number from the work_order, and sequence_number from the op
47
46
  split!: string; // Batch number if order split for staggered delivery. If not available in the ERP, default to an empty string
48
47
  state!: string; // The current state of the labor ticket (e.g., "CLOSED/OPEN")
@@ -1,4 +1,4 @@
1
- import { PsqlService } from "./psql-service";
1
+ import { PsqlService } from "./psql-service.js";
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";
11
+ export type { PsqlConfiguration } from "./configuration.js";
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";
22
+ } from "./psql-helpers.js";
@@ -1,7 +1,7 @@
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";
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";
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";
4
+ export { default as logger } from "./logger.js";