@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
@@ -0,0 +1,99 @@
1
+ import { DateTime } from "luxon";
2
+ import logger from "../services/reporting-service/logger.js";
3
+ import { getCachedTimezoneName } from "./local-data-store/jobs-shared-data.js";
4
+
5
+ /**
6
+ * Retrieves the ERP timezone name that should have been cached during initialization.
7
+ * @throws Error when the timezone cache has not been populated.
8
+ */
9
+ export function getERPTimezone(): string {
10
+ const timezone = getCachedTimezoneName();
11
+ if (!timezone) {
12
+ throw new Error(
13
+ "ERP timezone is not cached. Run getTimezoneOffsetAndPersist() to populate it."
14
+ );
15
+ }
16
+ return timezone;
17
+ }
18
+
19
+ /**
20
+ * Converts a UTC ISO-8601 datetime string to the ERP's local timezone (also ISO-8601).
21
+ * @param utcDateTime ISO-8601 datetime string representing UTC time.
22
+ * @param timezone Optional timezone override; defaults to the cached ERP timezone.
23
+ * @returns ISO-8601 string in the ERP timezone.
24
+ */
25
+ export function convertUtcDateTimeToErpLocal(
26
+ utcDateTime: string,
27
+ timezone?: string
28
+ ): string {
29
+ if (!utcDateTime) {
30
+ throw new Error("convertUtcDateTimeToErpLocal requires a non-empty UTC datetime string");
31
+ }
32
+ try {
33
+ const targetZone = timezone ?? getERPTimezone();
34
+ const parsedUtc = DateTime.fromISO(utcDateTime, { zone: "utc" });
35
+ if (!parsedUtc.isValid) {
36
+ throw new Error(
37
+ `Invalid UTC datetime "${utcDateTime}": ${parsedUtc.invalidReason}`
38
+ );
39
+ }
40
+
41
+ const localized = parsedUtc.setZone(targetZone);
42
+ if (!localized.isValid) {
43
+ throw new Error(
44
+ `Unable to convert UTC datetime "${utcDateTime}" to target zone "${targetZone}": ${localized.invalidReason}`
45
+ );
46
+ }
47
+
48
+ return localized.toISO();
49
+ } catch (error) {
50
+ logger.error("convertUtcDateTimeToErpLocal: Failed to convert datetime", {
51
+ utcDateTime,
52
+ error,
53
+ });
54
+ throw new Error(
55
+ "Failed to convert UTC datetime to ERP local timezone. See logs for details."
56
+ );
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Converts an ERP-local ISO-8601 datetime string to UTC (still ISO-8601).
62
+ * @param localDateTime ISO-8601 datetime string representing ERP local time.
63
+ * @param timezone Optional timezone override; defaults to the cached ERP timezone.
64
+ * @returns ISO-8601 string in UTC.
65
+ */
66
+ export function convertErpLocalDateTimeToUtc(
67
+ localDateTime: string,
68
+ timezone?: string
69
+ ): string {
70
+ if (!localDateTime) {
71
+ throw new Error("convertErpLocalDateTimeToUtc requires a non-empty local datetime string");
72
+ }
73
+ try {
74
+ const sourceZone = timezone ?? getERPTimezone();
75
+ const parsedLocal = DateTime.fromISO(localDateTime, { zone: sourceZone });
76
+ if (!parsedLocal.isValid) {
77
+ throw new Error(
78
+ `Invalid ERP local datetime "${localDateTime}" for zone "${sourceZone}": ${parsedLocal.invalidReason}`
79
+ );
80
+ }
81
+
82
+ const utcDateTime = parsedLocal.setZone("utc");
83
+ if (!utcDateTime.isValid) {
84
+ throw new Error(
85
+ `Unable to convert ERP local datetime "${localDateTime}" to UTC: ${utcDateTime.invalidReason}`
86
+ );
87
+ }
88
+
89
+ return utcDateTime.toISO();
90
+ } catch (error) {
91
+ logger.error("convertErpLocalDateTimeToUtc: Failed to convert datetime", {
92
+ localDateTime,
93
+ error,
94
+ });
95
+ throw new Error(
96
+ "Failed to convert ERP local datetime to UTC. See logs for details."
97
+ );
98
+ }
99
+ }
@@ -1,4 +1,4 @@
1
- import { ERPObjType } from "../types/erp-types";
1
+ import { ERPObjType } from "../types/erp-types.js";
2
2
 
3
3
  export function getERPAPITypeFromEntity(
4
4
  entity: string,
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosError, AxiosInstance, AxiosRequestConfig } from "axios";
2
- import logger from "../services/reporting-service/logger";
2
+ import logger from "../services/reporting-service/logger.js";
3
3
 
4
4
  export class HTTPError extends Error {
5
5
  constructor(
@@ -64,10 +64,9 @@ class AxiosClient implements HTTPClient {
64
64
  * It can be convenient to set `baseURL` for an instance of axios to pass relative URLs to methods of that instance.
65
65
  */
66
66
  constructor(baseUrl: string, retryAttempts: number) {
67
- const timeout = parseInt(process.env.MM_API_TIMEOUT || "30000");
68
67
  this.client = axios.create({
69
68
  baseURL: baseUrl,
70
- timeout: timeout,
69
+ timeout: 30000,
71
70
  headers: {
72
71
  "Content-Type": "application/json",
73
72
  },
@@ -109,7 +108,7 @@ class AxiosClient implements HTTPClient {
109
108
  params: config.params,
110
109
  signal: controller.signal,
111
110
  };
112
-
111
+ // MLW TODO
113
112
  logger.info("HTTP request starting", {
114
113
  url: config.url,
115
114
  method: config.method,
@@ -128,8 +127,10 @@ class AxiosClient implements HTTPClient {
128
127
  try {
129
128
  for (let attempt = 0; attempt <= this.retryAttempts; attempt++) {
130
129
  try {
130
+ // MLW TODO
131
131
  logger.info(`HTTP request attempt ${attempt + 1}/${this.retryAttempts + 1}`);
132
132
  const response = await this.client.request<T>(axiosConfig);
133
+ // MLW TODO
133
134
  logger.info("HTTP request succeeded", { status: response.status });
134
135
  return {
135
136
  data: response.data,
@@ -1,93 +1,92 @@
1
1
  /**
2
2
  * Utility functions for data manipulation
3
3
  */
4
- export { getUniqueRows } from "./uniqueRows";
5
- export { removeExtraneousFields } from "./removeExtraneousFields";
6
- export { getPayloadWithoutIDField } from "./removeIdFieldFromPayload";
7
- export { trimObjectValues } from "./trimObjectValues";
8
- export { cleanupNumbers } from "./cleanup-numbers";
4
+ export { getUniqueRows } from "./uniqueRows.js";
5
+ export { removeExtraneousFields } from "./removeExtraneousFields.js";
6
+ export { getPayloadWithoutIDField } from "./removeIdFieldFromPayload.js";
7
+ export { trimObjectValues } from "./trimObjectValues.js";
8
+ export { cleanupNumbers } from "./cleanup-numbers.js";
9
9
  export {
10
10
  addNewFieldFromExternalSource,
11
11
  addNewFieldFromLookupField,
12
- } from "./data-transformation";
12
+ } from "./data-transformation.js";
13
13
 
14
14
  /**
15
15
  * Timezone and time-related utilities
16
16
  */
17
- export { getTimezoneOffsetAndPersist } from "./time-utils";
18
- export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone";
19
- export { applyTimezoneOffsetsToFields } from "./time-utils";
20
- export * from "./time-utils";
17
+ export { getTimezoneOffsetAndPersist } from "./time-utils.js";
18
+ export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone.js";
19
+ export { applyTimezoneOffsetsToFields } from "./time-utils.js";
20
+ export {
21
+ convertUtcDateTimeToErpLocal,
22
+ convertErpLocalDateTimeToUtc,
23
+ getERPTimezone,
24
+ } from "./erp-timezone-utils.js";
25
+ export * from "./time-utils.js";
21
26
 
22
27
  /**
23
28
  * Caching and record tracking utilities
24
29
  */
25
- export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager";
26
- export type { RecordTrackingObject } from "../services/caching-service/record-tracking-manager";
27
- export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager";
28
- export { BatchCacheManager } from "../services/caching-service/batch-cache-manager";
30
+ export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager.js";
31
+ export type { RecordTrackingObject } from "../services/caching-service/record-tracking-manager.js";
32
+ export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager.js";
33
+ export { BatchCacheManager } from "../services/caching-service/batch-cache-manager.js";
29
34
 
30
35
  /**
31
36
  * Process and data transformation utilities
32
37
  */
33
- export { StandardProcessDrivers } from "./standard-process-drivers/";
34
- export type { WriteEntitiesToMMResult } from "./standard-process-drivers/";
35
- export { MMBatchValidationError } from "./standard-process-drivers/";
38
+ export { StandardProcessDrivers } from "./standard-process-drivers/index.js";
39
+ export type { WriteEntitiesToMMResult } from "./standard-process-drivers/index.js";
40
+ export { MMBatchValidationError } from "./standard-process-drivers/index.js";
36
41
  export {
37
42
  getCachedTimezoneOffset,
38
43
  getCachedTimezoneName,
39
- } from "./local-data-store/jobs-shared-data";
44
+ } from "./local-data-store/jobs-shared-data.js";
40
45
 
41
46
  // Local data store
42
47
  export {
43
48
  getInitialLoadComplete,
44
49
  setInitialLoadComplete,
45
- } from "./local-data-store/jobs-shared-data";
50
+ } from "./local-data-store/jobs-shared-data.js";
46
51
 
47
52
  /**
48
53
  * ERP API utilities
49
54
  */
50
- export * from "../services/erp-api-services/rest/rest-api-service";
51
- export * from "../services/erp-api-services/rest/get-query-params";
52
- export { getERPAPITypeFromEntity } from "./erp-type-from-entity";
55
+ export * from "../services/erp-api-services/rest/rest-api-service.js";
56
+ export * from "../services/erp-api-services/rest/get-query-params.js";
57
+ export { getERPAPITypeFromEntity } from "./erp-type-from-entity.js";
53
58
 
54
59
  /**
55
60
  * HTTP Client utilities
56
61
  */
57
- export { HTTPClientFactory } from "./http-client";
58
- export { HTTPError } from "./http-client";
59
- export type { HTTPClient, HTTPRequestConfig, HTTPResponse } from "./http-client";
62
+ export { HTTPClientFactory } from "./http-client.js";
63
+ export { HTTPError } from "./http-client.js";
64
+ export type { HTTPClient, HTTPRequestConfig, HTTPResponse } from "./http-client.js";
60
65
 
61
66
  /**
62
67
  * MM Labor Ticket utilities
63
68
  */
64
- export * from "./mm-labor-ticket-helpers";
65
- export { getErrorType } from './error-utils';
66
-
67
- /**
68
- * Error formatting utilities
69
- */
70
- export { formatError, formatErrorForLogging } from './error-formatter';
71
- export type { FormattedError } from './error-formatter';
69
+ export * from "./mm-labor-ticket-helpers.js";
70
+ export { getErrorType } from './error-utils.js';
72
71
 
73
72
  /**
74
73
  * MM Connector Logger utilities
75
74
  */
76
- export { MMConnectorLogger, LogEntry, type LogResponse, type LogLevelString } from './connector-log/mm-connector-logger';
77
- export { FileLogDeduper } from './connector-log/log-deduper';
75
+ export { MMConnectorLogger, LogEntry, type LogResponse, type LogLevelString } from './connector-log/mm-connector-logger.js';
76
+ export { FileLogDeduper } from './connector-log/log-deduper.js';
78
77
 
79
78
  /**
80
79
  * Application initializer
81
80
  */
82
- export * from "./application-initializer";
81
+ export * from "./application-initializer.js";
83
82
 
84
83
  /**
85
84
  * GraphQL utilities
86
85
  */
87
- export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service";
88
- export { OAuthClient } from "../services/erp-api-services/oauth-client";
86
+ export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service.js";
87
+ export { OAuthClient } from "../services/erp-api-services/oauth-client.js";
89
88
 
90
89
  /**
91
90
  * Connector factory utilities
92
91
  */
93
- export { createConnectorFromPath } from "./connector-factory";
92
+ export { createConnectorFromPath } from "./connector-factory.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  readDatabaseLockState,
3
3
  writeDatabaseLockState,
4
- } from "./jobs-shared-data";
4
+ } from "./jobs-shared-data.js";
5
5
 
6
6
  interface DatabaseLock {
7
7
  isLocked: boolean;
@@ -72,6 +72,8 @@ export const setInitialLoadComplete = (complete: boolean): void => {
72
72
  };
73
73
 
74
74
  /**
75
+ * @deprecated The cached numeric offset cannot account for DST changes.
76
+ * Prefer using the cached timezone name with Luxon helpers for conversions.
75
77
  * Gets the company's cached current timezone offset (e.g., -5)
76
78
  * @returns The cached timezone offset or 0 if not found
77
79
  */
@@ -1,15 +1,13 @@
1
- import { convertToLocalTime, toISOWithOffset } from "./timezone";
2
- import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
1
+ import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types.js";
2
+ import { convertUtcDateTimeToErpLocal, getERPTimezone } from "./erp-timezone-utils.js";
3
3
 
4
4
  /**
5
- * Apply timezone offsets to datetime fields specifically for the MMApiReceiveLaborTicket object from the Zulu-based MM API
6
- * (presumably) before sending to the ERP
5
+ * Converts key datetime fields from UTC (MachineMetrics API) to the ERP's local timezone.
6
+ * All inputs/outputs are ISO-8601 strings, and invalid inputs throw errors.
7
7
  * @param laborTicket The MMApiReceiveLaborTicket object to convert
8
- * @param timezoneOffset The timezone offset to apply
9
8
  */
10
9
  export function convertLaborTicketToLocalTimezone(
11
- laborTicket: MMReceiveLaborTicket,
12
- timezoneOffset: number
10
+ laborTicket: MMReceiveLaborTicket
13
11
  ): MMReceiveLaborTicket {
14
12
  const timeFields = [
15
13
  "clockIn",
@@ -20,9 +18,14 @@ export function convertLaborTicketToLocalTimezone(
20
18
  "workOrderOperationClosedDate",
21
19
  ] as const;
22
20
 
21
+ const timezone = getERPTimezone();
23
22
  timeFields.forEach((field) => {
24
- const localTime = convertToLocalTime(laborTicket[field], timezoneOffset);
25
- laborTicket[field] = localTime ? toISOWithOffset(localTime, timezoneOffset) : null;
23
+ const value = laborTicket[field];
24
+ if (value) {
25
+ laborTicket[field] = convertUtcDateTimeToErpLocal(value, timezone);
26
+ } else {
27
+ laborTicket[field] = null;
28
+ }
26
29
  });
27
30
  return laborTicket;
28
31
  }
@@ -1,4 +1,4 @@
1
- import { ERPObject } from "../types/erp-types";
1
+ import { ERPObject } from "../types/erp-types.js";
2
2
 
3
3
  /**
4
4
  * Retain only the fields listed in retainFields[] in the payload
@@ -1,4 +1,4 @@
1
- import { ERPObject } from "../types/erp-types";
1
+ import { ERPObject } from "../types/erp-types.js";
2
2
 
3
3
  /**
4
4
  * Remove all fields listed in idField[] the from the payload
@@ -1,9 +1,9 @@
1
- import logger from "../services/reporting-service/logger";
1
+ import logger from "../services/reporting-service/logger.js";
2
2
  import {
3
3
  MMApiClient,
4
4
  MMGraphQLResourceResponse,
5
5
  MMMachineGroupsResponse,
6
- } from "../services/mm-api-service";
6
+ } from "../services/mm-api-service/index.js";
7
7
 
8
8
  // The GraphQLResourceTypes interface has been replaced by the centralized
9
9
  // MM response interfaces: MMGraphQLResourceResponse and MMMachineGroupsResponse
@@ -1,12 +1,12 @@
1
- import { ERPObjType } from "../../types/erp-types";
2
- import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager";
1
+ import { ERPObjType } from "../../types/erp-types.js";
2
+ import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager.js";
3
3
  import {
4
4
  IToRESTApiObject,
5
5
  MM207NonLaborTicketResponse,
6
6
  MM207LaborTicketResponse,
7
- } from "../../services/mm-api-service";
8
- import { EntityTransformer } from "../../services/mm-api-service/types/entity-transformer";
9
- import logger from "../../services/reporting-service/logger";
7
+ } from "../../services/mm-api-service/index.js";
8
+ import { EntityTransformer } from "../../services/mm-api-service/types/entity-transformer.js";
9
+ import logger from "../../services/reporting-service/logger.js";
10
10
 
11
11
  /**
12
12
  * Handles error processing and record management utilities for MM API operations
@@ -1,4 +1,4 @@
1
1
  // Public exports for standard-process-drivers
2
- export { StandardProcessDrivers } from "./standard-process-drivers";
3
- export type { WriteEntitiesToMMResult } from "./standard-process-drivers";
4
- export { MMBatchValidationError } from "./standard-process-drivers";
2
+ export { StandardProcessDrivers } from "./standard-process-drivers.js";
3
+ export type { WriteEntitiesToMMResult } from "./standard-process-drivers.js";
4
+ export { MMBatchValidationError } from "./standard-process-drivers.js";