@machinemetrics/mm-erp-sdk 0.1.9-beta.2 → 0.1.9-beta.3

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 (314) hide show
  1. package/dist/index.d.ts +42 -42
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +48 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/knexfile.js +18 -0
  6. package/dist/knexfile.js.map +1 -0
  7. package/dist/migrations/20241015162631_create_cache_table.d.ts +4 -0
  8. package/dist/migrations/20241015162631_create_cache_table.d.ts.map +1 -0
  9. package/dist/migrations/20241015162631_create_cache_table.js +11 -15
  10. package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
  11. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +4 -0
  12. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +1 -0
  13. package/dist/migrations/20241015162632_create_sdk_cache_table.js +11 -15
  14. package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
  15. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +4 -0
  16. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +1 -0
  17. package/dist/migrations/20250103162631_create_record_tracking_table.js +14 -15
  18. package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
  19. package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
  20. package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
  21. package/dist/services/caching-service/batch-cache-manager.js +84 -0
  22. package/dist/services/caching-service/batch-cache-manager.js.map +1 -0
  23. package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
  24. package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
  25. package/dist/services/caching-service/hashed-cache-manager.js +223 -0
  26. package/dist/services/caching-service/hashed-cache-manager.js.map +1 -0
  27. package/dist/services/caching-service/index.d.ts +1 -1
  28. package/dist/services/caching-service/index.d.ts.map +1 -1
  29. package/dist/services/caching-service/index.js +2 -0
  30. package/dist/services/caching-service/index.js.map +1 -0
  31. package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
  32. package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
  33. package/dist/services/caching-service/record-tracking-manager.js +28 -0
  34. package/dist/services/caching-service/record-tracking-manager.js.map +1 -0
  35. package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
  36. package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
  37. package/dist/services/data-sync-service/configuration-manager.js +163 -0
  38. package/dist/services/data-sync-service/configuration-manager.js.map +1 -0
  39. package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
  40. package/dist/services/data-sync-service/data-sync-service.js +95 -0
  41. package/dist/services/data-sync-service/data-sync-service.js.map +1 -0
  42. package/dist/services/data-sync-service/index.d.ts +3 -3
  43. package/dist/services/data-sync-service/index.d.ts.map +1 -1
  44. package/dist/services/data-sync-service/index.js +10 -0
  45. package/dist/services/data-sync-service/index.js.map +1 -0
  46. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +40 -39
  47. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
  48. package/dist/services/data-sync-service/jobs/from-erp.js +48 -43
  49. package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
  50. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +36 -35
  51. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
  52. package/dist/services/data-sync-service/jobs/run-migrations.js +22 -21
  53. package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
  54. package/dist/services/data-sync-service/jobs/to-erp.js +48 -42
  55. package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
  56. package/dist/services/erp-api-services/errors.d.ts +1 -1
  57. package/dist/services/erp-api-services/errors.d.ts.map +1 -1
  58. package/dist/services/erp-api-services/errors.js +83 -0
  59. package/dist/services/erp-api-services/errors.js.map +1 -0
  60. package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
  61. package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
  62. package/dist/services/erp-api-services/graphql/graphql-service.js +102 -0
  63. package/dist/services/erp-api-services/graphql/graphql-service.js.map +1 -0
  64. package/dist/services/erp-api-services/graphql/types.js +6 -0
  65. package/dist/services/erp-api-services/graphql/types.js.map +1 -0
  66. package/dist/services/erp-api-services/index.d.ts +8 -8
  67. package/dist/services/erp-api-services/index.d.ts.map +1 -1
  68. package/dist/services/erp-api-services/index.js +13 -0
  69. package/dist/services/erp-api-services/index.js.map +1 -0
  70. package/dist/services/erp-api-services/oauth-client.js +41 -0
  71. package/dist/services/erp-api-services/oauth-client.js.map +1 -0
  72. package/dist/services/erp-api-services/rest/get-query-params.js +23 -0
  73. package/dist/services/erp-api-services/rest/get-query-params.js.map +1 -0
  74. package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
  75. package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
  76. package/dist/services/erp-api-services/rest/rest-api-service.js +163 -0
  77. package/dist/services/erp-api-services/rest/rest-api-service.js.map +1 -0
  78. package/dist/services/erp-api-services/types.d.ts +2 -2
  79. package/dist/services/erp-api-services/types.d.ts.map +1 -1
  80. package/dist/services/erp-api-services/types.js +2 -0
  81. package/dist/services/erp-api-services/types.js.map +1 -0
  82. package/dist/services/mm-api-service/index.d.ts +6 -6
  83. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  84. package/dist/services/mm-api-service/index.js +15 -0
  85. package/dist/services/mm-api-service/index.js.map +1 -0
  86. package/dist/services/mm-api-service/mm-api-service.d.ts +7 -7
  87. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  88. package/dist/services/mm-api-service/mm-api-service.js +519 -0
  89. package/dist/services/mm-api-service/mm-api-service.js.map +1 -0
  90. package/dist/services/mm-api-service/token-mgr.js +113 -0
  91. package/dist/services/mm-api-service/token-mgr.js.map +1 -0
  92. package/dist/services/mm-api-service/types/checkpoint.js +2 -0
  93. package/dist/services/mm-api-service/types/checkpoint.js.map +1 -0
  94. package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
  95. package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
  96. package/dist/services/mm-api-service/types/entity-transformer.js +186 -0
  97. package/dist/services/mm-api-service/types/entity-transformer.js.map +1 -0
  98. package/dist/services/mm-api-service/types/mm-response-interfaces.js +34 -0
  99. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -0
  100. package/dist/services/mm-api-service/types/receive-types.js +55 -0
  101. package/dist/services/mm-api-service/types/receive-types.js.map +1 -0
  102. package/dist/services/mm-api-service/types/send-types.js +337 -0
  103. package/dist/services/mm-api-service/types/send-types.js.map +1 -0
  104. package/dist/services/psql-erp-service/configuration.js +2 -0
  105. package/dist/services/psql-erp-service/configuration.js.map +1 -0
  106. package/dist/services/psql-erp-service/index.d.ts +3 -3
  107. package/dist/services/psql-erp-service/index.d.ts.map +1 -1
  108. package/dist/services/psql-erp-service/index.js +10 -0
  109. package/dist/services/psql-erp-service/index.js.map +1 -0
  110. package/dist/services/psql-erp-service/internal/types/psql-types.js +5 -0
  111. package/dist/services/psql-erp-service/internal/types/psql-types.js.map +1 -0
  112. package/dist/services/psql-erp-service/psql-helpers.js +99 -0
  113. package/dist/services/psql-erp-service/psql-helpers.js.map +1 -0
  114. package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
  115. package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
  116. package/dist/services/psql-erp-service/psql-service.js +187 -0
  117. package/dist/services/psql-erp-service/psql-service.js.map +1 -0
  118. package/dist/services/reporting-service/index.d.ts +1 -1
  119. package/dist/services/reporting-service/index.d.ts.map +1 -1
  120. package/dist/services/reporting-service/index.js +5 -0
  121. package/dist/services/reporting-service/index.js.map +1 -0
  122. package/dist/services/reporting-service/logger.js +217 -0
  123. package/dist/services/reporting-service/logger.js.map +1 -0
  124. package/dist/services/sql-server-erp-service/configuration.js +2 -0
  125. package/dist/services/sql-server-erp-service/configuration.js.map +1 -0
  126. package/dist/services/sql-server-erp-service/index.d.ts +3 -3
  127. package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
  128. package/dist/services/sql-server-erp-service/index.js +11 -0
  129. package/dist/services/sql-server-erp-service/index.js.map +1 -0
  130. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
  131. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
  132. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +50 -0
  133. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +1 -0
  134. package/dist/services/sql-server-erp-service/internal/sql-server-config.js +40 -0
  135. package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +1 -0
  136. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +36 -0
  137. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +1 -0
  138. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +2 -0
  139. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +1 -0
  140. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
  141. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
  142. package/dist/services/sql-server-erp-service/sql-server-helpers.js +66 -0
  143. package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +1 -0
  144. package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
  145. package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
  146. package/dist/services/sql-server-erp-service/sql-server-service.js +154 -0
  147. package/dist/services/sql-server-erp-service/sql-server-service.js.map +1 -0
  148. package/dist/services/sql-server-erp-service/types/sql-input-param.js +2 -0
  149. package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +1 -0
  150. package/dist/services/sqlite-service/index.d.ts +1 -1
  151. package/dist/services/sqlite-service/index.d.ts.map +1 -1
  152. package/dist/services/sqlite-service/index.js +2 -0
  153. package/dist/services/sqlite-service/index.js.map +1 -0
  154. package/dist/services/sqlite-service/sqlite-coordinator.js +60 -0
  155. package/dist/services/sqlite-service/sqlite-coordinator.js.map +1 -0
  156. package/dist/types/erp-connector.d.ts +1 -1
  157. package/dist/types/erp-connector.d.ts.map +1 -1
  158. package/dist/types/erp-connector.js +2 -0
  159. package/dist/types/erp-connector.js.map +1 -0
  160. package/dist/types/erp-types.js +13 -0
  161. package/dist/types/erp-types.js.map +1 -0
  162. package/dist/types/index.d.ts +2 -2
  163. package/dist/types/index.d.ts.map +1 -1
  164. package/dist/types/index.js +6 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/utils/application-initializer.js +55 -0
  167. package/dist/utils/application-initializer.js.map +1 -0
  168. package/dist/utils/cleanup-numbers.js +6 -0
  169. package/dist/utils/cleanup-numbers.js.map +1 -0
  170. package/dist/utils/connector-factory.d.ts +1 -1
  171. package/dist/utils/connector-factory.d.ts.map +1 -1
  172. package/dist/utils/connector-factory.js +34 -0
  173. package/dist/utils/connector-factory.js.map +1 -0
  174. package/dist/utils/connector-log/log-deduper.d.ts +1 -1
  175. package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
  176. package/dist/utils/connector-log/log-deduper.js +240 -0
  177. package/dist/utils/connector-log/log-deduper.js.map +1 -0
  178. package/dist/utils/connector-log/mm-connector-logger-example.d.ts +1 -0
  179. package/dist/utils/connector-log/mm-connector-logger-example.js +88 -0
  180. package/dist/utils/connector-log/mm-connector-logger-example.js.map +1 -0
  181. package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
  182. package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
  183. package/dist/utils/connector-log/mm-connector-logger.js +151 -0
  184. package/dist/utils/connector-log/mm-connector-logger.js.map +1 -0
  185. package/dist/utils/data-transformation.js +38 -0
  186. package/dist/utils/data-transformation.js.map +1 -0
  187. package/dist/utils/erp-type-from-entity.d.ts +1 -1
  188. package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
  189. package/dist/utils/erp-type-from-entity.js +6 -0
  190. package/dist/utils/erp-type-from-entity.js.map +1 -0
  191. package/dist/utils/error-utils.js +21 -0
  192. package/dist/utils/error-utils.js.map +1 -0
  193. package/dist/utils/http-client.js +186 -0
  194. package/dist/utils/http-client.js.map +1 -0
  195. package/dist/utils/index.d.ts +33 -33
  196. package/dist/utils/index.d.ts.map +1 -1
  197. package/dist/utils/index.js +65 -0
  198. package/dist/utils/index.js.map +1 -0
  199. package/dist/utils/local-data-store/database-lock.js +68 -0
  200. package/dist/utils/local-data-store/database-lock.js.map +1 -0
  201. package/dist/utils/local-data-store/jobs-shared-data.js +116 -0
  202. package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -0
  203. package/dist/utils/mm-labor-ticket-helpers.d.ts +1 -1
  204. package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
  205. package/dist/utils/mm-labor-ticket-helpers.js +23 -0
  206. package/dist/utils/mm-labor-ticket-helpers.js.map +1 -0
  207. package/dist/utils/removeExtraneousFields.d.ts +1 -1
  208. package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
  209. package/dist/utils/removeExtraneousFields.js +16 -0
  210. package/dist/utils/removeExtraneousFields.js.map +1 -0
  211. package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
  212. package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
  213. package/dist/utils/removeIdFieldFromPayload.js +16 -0
  214. package/dist/utils/removeIdFieldFromPayload.js.map +1 -0
  215. package/dist/utils/resource-group.d.ts +1 -1
  216. package/dist/utils/resource-group.d.ts.map +1 -1
  217. package/dist/utils/resource-group.js +59 -0
  218. package/dist/utils/resource-group.js.map +1 -0
  219. package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
  220. package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
  221. package/dist/utils/standard-process-drivers/error-processor.js +262 -0
  222. package/dist/utils/standard-process-drivers/error-processor.js.map +1 -0
  223. package/dist/utils/standard-process-drivers/index.d.ts +3 -3
  224. package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
  225. package/dist/utils/standard-process-drivers/index.js +4 -0
  226. package/dist/utils/standard-process-drivers/index.js.map +1 -0
  227. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +1 -1
  228. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  229. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +164 -0
  230. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -0
  231. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +4 -4
  232. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  233. package/dist/utils/standard-process-drivers/mm-entity-processor.js +168 -0
  234. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +1 -0
  235. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +4 -4
  236. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  237. package/dist/utils/standard-process-drivers/standard-process-drivers.js +324 -0
  238. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -0
  239. package/dist/utils/time-utils.js +96 -0
  240. package/dist/utils/time-utils.js.map +1 -0
  241. package/dist/utils/timezone.js +105 -0
  242. package/dist/utils/timezone.js.map +1 -0
  243. package/dist/utils/trimObjectValues.js +11 -0
  244. package/dist/utils/trimObjectValues.js.map +1 -0
  245. package/dist/utils/uniqueRows.js +35 -0
  246. package/dist/utils/uniqueRows.js.map +1 -0
  247. package/package.json +5 -6
  248. package/src/index.ts +42 -42
  249. package/src/services/caching-service/batch-cache-manager.ts +2 -2
  250. package/src/services/caching-service/hashed-cache-manager.ts +5 -5
  251. package/src/services/caching-service/index.ts +1 -1
  252. package/src/services/caching-service/record-tracking-manager.ts +2 -2
  253. package/src/services/data-sync-service/configuration-manager.ts +2 -2
  254. package/src/services/data-sync-service/data-sync-service.ts +9 -3
  255. package/src/services/data-sync-service/index.ts +3 -3
  256. package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +3 -3
  257. package/src/services/data-sync-service/jobs/from-erp.ts +3 -3
  258. package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +2 -2
  259. package/src/services/data-sync-service/jobs/run-migrations.ts +2 -2
  260. package/src/services/data-sync-service/jobs/to-erp.ts +2 -2
  261. package/src/services/erp-api-services/errors.ts +3 -3
  262. package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
  263. package/src/services/erp-api-services/index.ts +8 -8
  264. package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
  265. package/src/services/erp-api-services/types.ts +2 -2
  266. package/src/services/mm-api-service/index.ts +6 -6
  267. package/src/services/mm-api-service/mm-api-service.ts +10 -10
  268. package/src/services/mm-api-service/token-mgr.ts +4 -4
  269. package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
  270. package/src/services/psql-erp-service/index.ts +3 -3
  271. package/src/services/psql-erp-service/psql-service.ts +4 -4
  272. package/src/services/reporting-service/index.ts +1 -1
  273. package/src/services/sql-server-erp-service/index.ts +3 -3
  274. package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
  275. package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
  276. package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
  277. package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
  278. package/src/services/sqlite-service/index.ts +1 -1
  279. package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
  280. package/src/types/erp-connector.ts +1 -1
  281. package/src/types/index.ts +2 -2
  282. package/src/utils/application-initializer.ts +5 -5
  283. package/src/utils/connector-factory.ts +2 -2
  284. package/src/utils/connector-log/log-deduper.ts +2 -2
  285. package/src/utils/connector-log/mm-connector-logger.ts +3 -3
  286. package/src/utils/erp-type-from-entity.ts +1 -1
  287. package/src/utils/http-client.ts +1 -1
  288. package/src/utils/index.ts +33 -33
  289. package/src/utils/local-data-store/database-lock.ts +1 -1
  290. package/src/utils/mm-labor-ticket-helpers.ts +2 -2
  291. package/src/utils/removeExtraneousFields.ts +1 -1
  292. package/src/utils/removeIdFieldFromPayload.ts +1 -1
  293. package/src/utils/resource-group.ts +2 -2
  294. package/src/utils/standard-process-drivers/error-processor.ts +5 -5
  295. package/src/utils/standard-process-drivers/index.ts +3 -3
  296. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +6 -6
  297. package/src/utils/standard-process-drivers/mm-entity-processor.ts +7 -7
  298. package/src/utils/standard-process-drivers/standard-process-drivers.ts +6 -6
  299. package/src/utils/time-utils.ts +3 -3
  300. package/src/utils/timezone.ts +2 -2
  301. package/dist/config-Bax6Ofp5.js +0 -418
  302. package/dist/config-Bax6Ofp5.js.map +0 -1
  303. package/dist/connector-factory-BaMIlES8.js +0 -30
  304. package/dist/connector-factory-BaMIlES8.js.map +0 -1
  305. package/dist/hashed-cache-manager-C1u9jQgY.js +0 -322
  306. package/dist/hashed-cache-manager-C1u9jQgY.js.map +0 -1
  307. package/dist/index-BkVlW0ZW.js +0 -192
  308. package/dist/index-BkVlW0ZW.js.map +0 -1
  309. package/dist/knexfile-Bng2Ru9c.js +0 -20
  310. package/dist/knexfile-Bng2Ru9c.js.map +0 -1
  311. package/dist/logger-DW5fyhVS.js +0 -17593
  312. package/dist/logger-DW5fyhVS.js.map +0 -1
  313. package/dist/mm-erp-sdk.js +0 -4266
  314. package/dist/mm-erp-sdk.js.map +0 -1
@@ -0,0 +1,262 @@
1
+ import { ERPObjType } from "../../types/erp-types.js";
2
+ import { EntityTransformer } from "../../services/mm-api-service/types/entity-transformer.js";
3
+ import logger from "../../services/reporting-service/logger.js";
4
+ /**
5
+ * Handles error processing and record management utilities for MM API operations
6
+ */
7
+ export class ErrorProcessor {
8
+ /**
9
+ * Creates a set of primary keys for all failed records from batch errors
10
+ * @param entityType The type of entity being processed
11
+ * @param batchErrors Array of batch errors containing failed entities
12
+ * @returns Set of primary keys for failed records
13
+ */
14
+ static createFailedRecordKeySet(entityType, batchErrors) {
15
+ const failedKeySet = new Set();
16
+ batchErrors.forEach((batchError) => {
17
+ batchError.affectedEntities.forEach((affectedEntity) => {
18
+ try {
19
+ const primaryKey = EntityTransformer.extractPrimaryKey(entityType, affectedEntity);
20
+ failedKeySet.add(primaryKey);
21
+ }
22
+ catch (error) {
23
+ logger.warn(`Failed to extract primary key from error entity: ${error}`);
24
+ // Continue processing other records even if one fails
25
+ }
26
+ });
27
+ });
28
+ return failedKeySet;
29
+ }
30
+ /**
31
+ * Filters out failed records, returning only successful ones
32
+ * @param entityType The type of entity being processed
33
+ * @param allRecords All records (typed objects) that were sent to the API
34
+ * @param failedKeySet Set of primary keys for records that failed
35
+ * @returns Array of records that succeeded
36
+ */
37
+ static filterSuccessfulRecords(entityType, allRecords, failedKeySet) {
38
+ const successfulRecords = [];
39
+ allRecords.forEach((record) => {
40
+ try {
41
+ const primaryKey = EntityTransformer.extractPrimaryKey(entityType, record);
42
+ if (!failedKeySet.has(primaryKey)) {
43
+ successfulRecords.push(record);
44
+ }
45
+ }
46
+ catch (error) {
47
+ logger.warn(`Failed to extract primary key from record during filtering: ${error}`);
48
+ // If we can't extract the key, we can't determine if it failed, so skip it
49
+ }
50
+ });
51
+ return successfulRecords;
52
+ }
53
+ /**
54
+ * Orchestrates the caching of successful records on partial failure
55
+ * @param entityType The type of entity being processed
56
+ * @param toProcess All records that were sent to the API (all are now guaranteed to be typed objects)
57
+ * @param batchErrors Array of batch errors containing failed entities
58
+ * @param batchCacheManager The cache manager instance
59
+ */
60
+ static async cacheSuccessfulRecordsOnPartialFailure(entityType, toProcess, batchErrors, batchCacheManager) {
61
+ // Create a set of failed record keys for efficient lookup
62
+ const failedKeySet = this.createFailedRecordKeySet(entityType, batchErrors);
63
+ // Filter to get only successful records
64
+ const successfulRecords = this.filterSuccessfulRecords(entityType, toProcess, failedKeySet);
65
+ logger.info(`Caching ${successfulRecords.length} successful records out of ${toProcess.length} total records`);
66
+ // All records are now guaranteed to be typed objects, so we can cache them directly
67
+ if (successfulRecords.length > 0) {
68
+ await batchCacheManager.storeBatch(entityType, successfulRecords);
69
+ }
70
+ }
71
+ /**
72
+ * Extracts error count and batch errors from MM API response for partial failures (HTTP 207)
73
+ * This supports all entities, including the slightly different format for labor tickets.
74
+ * In case of labor tickets, the updateErrors and insertErrors arrays are combined into affectedEntities.
75
+ * @param mmApiResponse The full MM API response object
76
+ * @param entityType The type of entity being processed (determines response structure)
77
+ * @returns Object containing errorCount and batchErrors
78
+ * See MM207NonLaborTicketResponse and MM207LaborTicketResponse for response structure details
79
+ */
80
+ static extractErrorDetails(mmApiResponse, entityType) {
81
+ // Type the data property with the expected structure for HTTP 207 responses
82
+ const data = mmApiResponse.data;
83
+ let allErrors = [];
84
+ if (entityType === ERPObjType.LABOR_TICKETS) {
85
+ // Labor tickets: combine updateErrors and insertErrors
86
+ const updateErrors = data?.updateErrors || [];
87
+ const insertErrors = data?.insertErrors || [];
88
+ // Defensive validation with actionable warnings
89
+ if (!data?.updateErrors && !data?.insertErrors) {
90
+ logger.warn("Labor tickets partial success response missing both updateErrors and insertErrors arrays");
91
+ }
92
+ allErrors = [...updateErrors, ...insertErrors];
93
+ }
94
+ else {
95
+ // Regular entities: use errors array
96
+ const errors = data?.errors || [];
97
+ // Defensive validation
98
+ if (!data?.errors) {
99
+ logger.warn(`${entityType} partial success response missing errors array`);
100
+ }
101
+ allErrors = errors;
102
+ }
103
+ const batchErrors = allErrors
104
+ .filter((error) => {
105
+ return error.batchData && error.batchData.length > 0;
106
+ })
107
+ .map((error) => {
108
+ // Reconstruct typed objects from plain data
109
+ const typedErrorEntities = (error.batchData || []).map((entity) => {
110
+ if (typeof entity === "object" &&
111
+ entity !== null &&
112
+ "toRESTApiObject" in entity &&
113
+ typeof entity.toRESTApiObject === "function") {
114
+ // It's already a typed object, return as-is
115
+ return entity;
116
+ }
117
+ else {
118
+ // It's plain data, reconstruct as typed object
119
+ return EntityTransformer.reconstructFromPlainData(entityType, entity);
120
+ }
121
+ });
122
+ return {
123
+ message: error.message,
124
+ affectedEntities: typedErrorEntities,
125
+ };
126
+ });
127
+ const errorCount = batchErrors.reduce((total, batchError) => {
128
+ return total + batchError.affectedEntities.length;
129
+ }, 0);
130
+ return {
131
+ errorCount,
132
+ batchErrors,
133
+ };
134
+ }
135
+ /**
136
+ * Extracts error details from a 500 HTTP exception when it contains structured error data
137
+ * @param exception The caught exception from MM API call
138
+ * @param entityType The type of entity being processed
139
+ * @returns Object containing errorCount and batchErrors, or null if not a structured 500 error
140
+ * See MM500NonLaborTicketException and MM500LaborTicketException for exception structure details
141
+ */
142
+ static extractErrorDetailsFrom500Exception(exception, entityType) {
143
+ try {
144
+ // Cast exception to expected structure for easier access
145
+ const ex = exception;
146
+ const data = ex?.data;
147
+ // Add diagnostic logging to understand the 500 error structure
148
+ logger.info("writeEntitiesToMM: Analyzing 500 exception structure for diagnostic purposes", {
149
+ status: ex?.status,
150
+ code: ex?.code,
151
+ hasResponseData: !!data,
152
+ responseDataKeys: data ? Object.keys(data) : [],
153
+ errorMessage: data?.error,
154
+ hasMessageObject: !!data?.message,
155
+ messageObjectKeys: data?.message
156
+ ? Object.keys(data.message)
157
+ : [],
158
+ entityType,
159
+ exceptionType: typeof exception,
160
+ exceptionKeys: ex ? Object.keys(ex) : [],
161
+ });
162
+ // Check if this is a structured 500 error
163
+ if (ex?.status !== 500 ||
164
+ typeof data?.error !== "string" ||
165
+ !data.error.startsWith("Failed to import")) {
166
+ logger.info("writeEntitiesToMM: Not a structured 500 error - will re-throw exception as-is", {
167
+ status: ex?.status,
168
+ errorMessage: data?.error,
169
+ expectedStatus: 500,
170
+ expectedMessagePrefix: "Failed to import",
171
+ });
172
+ return null;
173
+ }
174
+ logger.info("writeEntitiesToMM: Detected structured 500 error - extracting error details");
175
+ const messageObject = data?.message;
176
+ if (!messageObject) {
177
+ logger.warn("writeEntitiesToMM: Structured 500 error missing message object");
178
+ return null;
179
+ }
180
+ let allErrors = [];
181
+ if (entityType === ERPObjType.LABOR_TICKETS) {
182
+ // Labor tickets: combine updateErrors and insertErrors
183
+ const updateErrors = Array.isArray(messageObject?.updateErrors)
184
+ ? messageObject.updateErrors
185
+ : [];
186
+ const insertErrors = Array.isArray(messageObject?.insertErrors)
187
+ ? messageObject.insertErrors
188
+ : [];
189
+ logger.info("writeEntitiesToMM: Processing labor tickets 500 error", {
190
+ updateErrorsCount: updateErrors.length,
191
+ insertErrorsCount: insertErrors.length,
192
+ });
193
+ if (updateErrors.length === 0 && insertErrors.length === 0) {
194
+ logger.warn("writeEntitiesToMM: Labor tickets 500 error missing both updateErrors and insertErrors arrays");
195
+ }
196
+ allErrors = [...updateErrors, ...insertErrors];
197
+ }
198
+ else {
199
+ // Regular entities: use errors array
200
+ const errors = Array.isArray(messageObject?.errors)
201
+ ? messageObject.errors
202
+ : [];
203
+ logger.info("writeEntitiesToMM: Processing regular entity 500 error", {
204
+ errorsCount: errors.length,
205
+ });
206
+ if (errors.length === 0) {
207
+ logger.warn(`writeEntitiesToMM: ${entityType} 500 error missing errors array`);
208
+ }
209
+ allErrors = errors;
210
+ }
211
+ const batchErrors = allErrors
212
+ .filter((error) => {
213
+ const err = error;
214
+ return Array.isArray(err?.batchData) && err.batchData.length > 0;
215
+ })
216
+ .map((error) => {
217
+ const err = error;
218
+ const batchData = err?.batchData;
219
+ // Reconstruct typed objects from plain data
220
+ const typedErrorEntities = (batchData || []).map((entity) => {
221
+ if (typeof entity === "object" &&
222
+ entity !== null &&
223
+ "toRESTApiObject" in entity &&
224
+ typeof entity.toRESTApiObject === "function") {
225
+ // It's already a typed object, return as-is
226
+ return entity;
227
+ }
228
+ else {
229
+ // It's plain data, reconstruct as typed object
230
+ return EntityTransformer.reconstructFromPlainData(entityType, entity);
231
+ }
232
+ });
233
+ return {
234
+ message: typeof err?.message === "string" ? err.message : "Unknown error",
235
+ affectedEntities: typedErrorEntities,
236
+ };
237
+ });
238
+ const errorCount = batchErrors.reduce((total, batchError) => {
239
+ return total + batchError.affectedEntities.length;
240
+ }, 0);
241
+ logger.info("writeEntitiesToMM: Extracted 500 error details", {
242
+ batchErrorsCount: batchErrors.length,
243
+ totalErrorCount: errorCount,
244
+ entityType,
245
+ });
246
+ return {
247
+ errorCount,
248
+ batchErrors,
249
+ };
250
+ }
251
+ catch (error) {
252
+ // If we can't even parse the structure safely, log what we can and return null
253
+ logger.error("writeEntitiesToMM: Failed to parse 500 exception structure safely", {
254
+ error: error instanceof Error ? error.message : String(error),
255
+ exceptionType: typeof exception,
256
+ entityType,
257
+ });
258
+ return null;
259
+ }
260
+ }
261
+ }
262
+ //# sourceMappingURL=error-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-processor.js","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/error-processor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { StandardProcessDrivers } from "./standard-process-drivers";
2
- export type { WriteEntitiesToMMResult } from "./standard-process-drivers";
3
- export { MMBatchValidationError } from "./standard-process-drivers";
1
+ export { StandardProcessDrivers } from "./standard-process-drivers.js";
2
+ export type { WriteEntitiesToMMResult } from "./standard-process-drivers.js";
3
+ export { MMBatchValidationError } from "./standard-process-drivers.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Public exports for standard-process-drivers
2
+ export { StandardProcessDrivers } from "./standard-process-drivers.js";
3
+ export { MMBatchValidationError } from "./standard-process-drivers.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IERPLaborTicketHandler } from "../../types/erp-connector";
1
+ import { IERPLaborTicketHandler } from "../../types/erp-connector.js";
2
2
  /**
3
3
  * Handles synchronization of labor tickets between MachineMetrics and ERP systems
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"labor-ticket-erp-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAOnE;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;WACU,SAAS,CACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA4GhB;;OAEG;WACU,WAAW,CACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;mBA+DK,sBAAsB;mBAetB,kBAAkB;CAkDxC"}
1
+ {"version":3,"file":"labor-ticket-erp-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAOtE;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;WACU,SAAS,CACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA4GhB;;OAEG;WACU,WAAW,CACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;mBA+DK,sBAAsB;mBAetB,kBAAkB;CAkDxC"}
@@ -0,0 +1,164 @@
1
+ import { MMApiClient } from "../../services/mm-api-service/mm-api-service.js";
2
+ import { convertLaborTicketToLocalTimezone } from "../mm-labor-ticket-helpers.js";
3
+ import { getCachedTimezoneOffset } from "../local-data-store/jobs-shared-data.js";
4
+ import logger from "../../services/reporting-service/logger.js";
5
+ /**
6
+ * Handles synchronization of labor tickets between MachineMetrics and ERP systems
7
+ */
8
+ export class LaborTicketERPSynchronizer {
9
+ /**
10
+ * Synchronizes updated labor tickets from MachineMetrics to an ERP system
11
+ */
12
+ static async syncToERP(connectorType, connector) {
13
+ try {
14
+ const mmApiClient = new MMApiClient();
15
+ const failedLaborTicketRefs = [];
16
+ await mmApiClient.initializeCheckpoint({
17
+ system: connectorType,
18
+ table: "labor_tickets",
19
+ checkpointType: "export",
20
+ checkpointValue: {
21
+ timestamp: new Date().toISOString(),
22
+ },
23
+ });
24
+ const fallbackTimestamp = new Date().toISOString();
25
+ const laborTicketsUpdates = await mmApiClient.fetchLaborTicketUpdates({
26
+ system: connectorType,
27
+ checkpointType: "export",
28
+ });
29
+ if (laborTicketsUpdates.length === 0) {
30
+ logger.info("syncLaborTicketsToERP:No updated labor tickets found");
31
+ return;
32
+ }
33
+ logger.info(`ToERP: Found ${laborTicketsUpdates.length} Labor Ticket Ids and Refs to process`, {
34
+ laborTickets: laborTicketsUpdates.map((ticket) => ({
35
+ ref: ticket.laborTicketRef,
36
+ id: ticket.laborTicketId,
37
+ })),
38
+ });
39
+ // Find the most recent updatedAt timestamp from labor tickets. This will be used to update
40
+ // the checkpoint to ensure there is no gap of time for the next sync.
41
+ const mostRecentUpdate = laborTicketsUpdates.reduce((latest, ticket) => {
42
+ if (!latest || !ticket.updatedAt)
43
+ return latest;
44
+ return new Date(ticket.updatedAt) > new Date(latest)
45
+ ? ticket.updatedAt
46
+ : latest;
47
+ }, null);
48
+ await Promise.all(laborTicketsUpdates.map(async (laborTicket) => {
49
+ if (!laborTicket.laborTicketRef) {
50
+ logger.error("syncLaborTicketsToERP: laborTicketRef is not set for laborTicket pulled from MM:", { laborTicket });
51
+ return undefined;
52
+ }
53
+ try {
54
+ return await this.processLaborTicket(connector, mmApiClient, laborTicket);
55
+ }
56
+ catch (error) {
57
+ failedLaborTicketRefs.push(laborTicket.laborTicketRef);
58
+ logger.error(`syncLaborTicketsToERP: Error processing laborTicketRef ${laborTicket.laborTicketRef}:`, { error });
59
+ return undefined;
60
+ }
61
+ }));
62
+ logger.info(`syncLaborTicketsToERP: ${failedLaborTicketRefs.length} failed labor ticket ids`);
63
+ if (failedLaborTicketRefs.length > 0) {
64
+ logger.info(`syncLaborTicketsToERP: Reporting ${failedLaborTicketRefs.length} labor ticket failures:`, {
65
+ failedLaborTicketRefs,
66
+ });
67
+ const addFailedResult = await mmApiClient.addFailedLaborTicketRefs(connectorType, failedLaborTicketRefs);
68
+ logger.info("syncLaborTicketsToERP: addFailedResult:", {
69
+ addFailedResult,
70
+ });
71
+ }
72
+ mmApiClient.saveCheckpoint({
73
+ system: connectorType,
74
+ table: "labor_tickets",
75
+ checkpointType: "export",
76
+ checkpointValue: {
77
+ timestamp: mostRecentUpdate || fallbackTimestamp,
78
+ },
79
+ });
80
+ }
81
+ catch (error) {
82
+ logger.error("syncLaborTicketsToERP: Error:", error);
83
+ }
84
+ }
85
+ /**
86
+ * Retries labor tickets that have failed to be created or updated in the ERP during the sync
87
+ */
88
+ static async retryFailed(connectorType, connector) {
89
+ try {
90
+ const mmApiClient = new MMApiClient();
91
+ const successLaborTicketIds = [];
92
+ const laborTickets = await mmApiClient.fetchFailedLaborTickets(connectorType);
93
+ if (laborTickets.length === 0) {
94
+ logger.info("retryFailedLaborTickets: No failed labor tickets found");
95
+ return;
96
+ }
97
+ logger.info("retryFailedLaborTickets: Failed Labor Tickets count:" +
98
+ laborTickets.length);
99
+ await Promise.all(laborTickets.map(async (laborTicket) => {
100
+ if (!laborTicket.laborTicketRef) {
101
+ logger.error("retryFailedLaborTickets: laborTicketRef is not set for laborTicket pulled from MM:", { laborTicket });
102
+ return undefined;
103
+ }
104
+ try {
105
+ const laborTicketResult = await this.processLaborTicket(connector, mmApiClient, laborTicket);
106
+ successLaborTicketIds.push(laborTicket.laborTicketRef);
107
+ return laborTicketResult;
108
+ }
109
+ catch (error) {
110
+ logger.error("retryFailedLaborTickets: Error processing laborTicketRef:", { laborTicketRef: laborTicket.laborTicketRef, error });
111
+ return undefined;
112
+ }
113
+ }));
114
+ if (successLaborTicketIds.length > 0) {
115
+ logger.info("Deleting failed labor ticket ids:", {
116
+ successLaborTicketIds,
117
+ });
118
+ const deleteFailedResult = await mmApiClient.deleteFailedLaborTicketIds(connectorType, successLaborTicketIds);
119
+ logger.info("deleteFailedResult:", { deleteFailedResult });
120
+ }
121
+ }
122
+ catch (error) {
123
+ logger.error("retryFailedLaborTickets: Error:", error);
124
+ }
125
+ }
126
+ // ============================================================================
127
+ // PRIVATE HELPER METHODS
128
+ // ============================================================================
129
+ static async writeLaborTicketIdToMM(mmApiClient, laborTicket, laborTicketResult) {
130
+ const updateRefAPIResponse = await mmApiClient.updateLaborTicketIdByRef(laborTicket.laborTicketRef, laborTicketResult.laborTicketId);
131
+ logger.info(`Updated laborTicketId ${laborTicketResult.laborTicketId} for laborTicketRef ${laborTicket.laborTicketRef} in MM:`, { updateRefAPIResponse });
132
+ }
133
+ static async processLaborTicket(connector, mmApiClient, laborTicket) {
134
+ let laborTicketResult;
135
+ laborTicketResult = convertLaborTicketToLocalTimezone(laborTicket, getCachedTimezoneOffset());
136
+ logger.info(`processing laborTicket, id=${laborTicket.laborTicketId}, ref=${laborTicket.laborTicketRef}`);
137
+ logger.debug({ laborTicket });
138
+ // MLW TODO: Should we always swap out the resource ID for the machine group ID if it is found?
139
+ // Or use a flag? What about the default resource ID as used by syteline? A Rutherford consultation is in order.
140
+ /**
141
+ * Swapping out the resource ID for the group id corresponding to the
142
+ * resource ID in the ERP would be done like so:
143
+ * const machineGroupId = await mmApiClient.getResourceERPGroupId(laborTicket.resourceId);
144
+ * if(machineGroupId) {
145
+ * laborTicket.resourceId = machineGroupId;
146
+ * }
147
+ */
148
+ if (!laborTicket.laborTicketId) {
149
+ const { laborTicket: laborTicketResult, erpUid } = await connector.createLaborTicketInERP(laborTicket);
150
+ laborTicketResult.laborTicketId = erpUid;
151
+ await this.writeLaborTicketIdToMM(mmApiClient, laborTicket, laborTicketResult);
152
+ }
153
+ else {
154
+ laborTicketResult = await connector.updateLaborTicketInERP(laborTicket);
155
+ }
156
+ logger.info("ToERP: laborTicket update result:", {
157
+ laborTicketResult: laborTicketResult || "Failed to create/update labor ticket",
158
+ laborTicketRef: laborTicket.laborTicketRef,
159
+ operation: laborTicket.laborTicketId ? "update" : "create",
160
+ });
161
+ return laborTicketResult;
162
+ }
163
+ }
164
+ //# sourceMappingURL=labor-ticket-erp-synchronizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labor-ticket-erp-synchronizer.js","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { ERPObjType } from "../../types/erp-types";
2
- import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager";
3
- import { IToRESTApiObject } from "../../services/mm-api-service";
4
- import { WriteEntitiesToMMResult } from "./standard-process-drivers";
1
+ import { ERPObjType } from "../../types/erp-types.js";
2
+ import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager.js";
3
+ import { IToRESTApiObject } from "../../services/mm-api-service/index.js";
4
+ import { WriteEntitiesToMMResult } from "./standard-process-drivers.js";
5
5
  /**
6
6
  * Handles processing of entities to the MachineMetrics API
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mm-entity-processor.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/mm-entity-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACvF,OAAO,EACL,gBAAgB,EAcjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,uBAAuB,EAExB,MAAM,4BAA4B,CAAC;AAGpC;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;WACU,aAAa,CACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAAE,EAC7B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC,uBAAuB,CAAC;IAiCnC;;;;;OAKG;mBACkB,iBAAiB;IA+BtC;;OAEG;mBACkB,UAAU;IAsC/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgC/B;;;;;;;OAOG;mBACkB,eAAe;CAuErC"}
1
+ {"version":3,"file":"mm-entity-processor.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/mm-entity-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EACL,gBAAgB,EAcjB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EACL,uBAAuB,EAExB,MAAM,+BAA+B,CAAC;AAGvC;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;WACU,aAAa,CACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAAE,EAC7B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC,uBAAuB,CAAC;IAiCnC;;;;;OAKG;mBACkB,iBAAiB;IA+BtC;;OAEG;mBACkB,UAAU;IAsC/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgC/B;;;;;;;OAOG;mBACkB,eAAe;CAuErC"}