@machinemetrics/mm-erp-sdk 0.2.0-beta.3 → 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 -342
  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,113 @@
1
+ import { getCachedMMToken, setCachedMMToken, } from "../../utils/local-data-store/jobs-shared-data.js";
2
+ import { HTTPClientFactory } from "../../utils/http-client.js";
3
+ import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
4
+ import { logger } from "../reporting-service/index.js";
5
+ /**
6
+ * Manages the MM API token with caching and expiration checking
7
+ * Tokens are cached across jobs and job instances in local-data-store/jobs-shared-data.ts
8
+ * @jest-environment node
9
+ */
10
+ export class MMTokenManager {
11
+ token;
12
+ tokenExpiration;
13
+ baseUrl;
14
+ api;
15
+ constructor() {
16
+ const cached = getCachedMMToken();
17
+ this.token = cached?.token || "";
18
+ this.tokenExpiration = cached?.expiration
19
+ ? new Date(cached.expiration)
20
+ : null;
21
+ const config = CoreConfiguration.inst();
22
+ console.log("=== MMTOKEN MANAGER DEBUG ===");
23
+ console.log("config.mmApiBaseUrl:", config.mmApiBaseUrl);
24
+ console.log("config object keys:", Object.keys(config));
25
+ this.baseUrl = config.mmApiBaseUrl;
26
+ console.log("this.baseUrl set to:", this.baseUrl);
27
+ console.log("=== END MMTOKEN MANAGER DEBUG ===");
28
+ this.api = HTTPClientFactory.getInstance({
29
+ baseUrl: this.baseUrl,
30
+ retryAttempts: config.mmApiRetryAttempts,
31
+ });
32
+ }
33
+ /**
34
+ * Checks if the current token is expired or will expire within the next minute
35
+ * @returns boolean indicating if token needs refresh
36
+ */
37
+ isTokenExpired() {
38
+ if (!this.tokenExpiration)
39
+ return true;
40
+ // Add 1 minute buffer to ensure we refresh before actual expiration
41
+ const bufferTimeMS = 60_000;
42
+ const isExpired = this.tokenExpiration.getTime() - bufferTimeMS <= Date.now();
43
+ if (isExpired) {
44
+ logger.info("isTokenExpired: the api token from MM has expired");
45
+ }
46
+ return isExpired;
47
+ }
48
+ /**
49
+ * Safely extracts expiration time from JWT token
50
+ * @param token JWT token string
51
+ * @returns Date object representing token expiration, or null if cannot be determined
52
+ */
53
+ getTokenExpiration(token) {
54
+ try {
55
+ // Split token into parts
56
+ const parts = token.split(".");
57
+ if (parts.length !== 3) {
58
+ console.warn("Invalid JWT format: token does not have 3 parts");
59
+ return null;
60
+ }
61
+ // Decode payload (second part)
62
+ const payload = Buffer.from(parts[1], "base64").toString("utf-8");
63
+ const decodedPayload = JSON.parse(payload);
64
+ // Check if exp claim exists
65
+ if (typeof decodedPayload.exp !== "number") {
66
+ console.warn("JWT does not contain expiration time (exp claim)");
67
+ return null;
68
+ }
69
+ // Convert Unix timestamp (seconds) to Date
70
+ return new Date(decodedPayload.exp * 1000);
71
+ }
72
+ catch (error) {
73
+ console.warn("Error parsing JWT token:", error);
74
+ return null;
75
+ }
76
+ }
77
+ /**
78
+ * Gets a valid token, either from cache or by requesting a new one
79
+ * @returns Promise resolving to a valid token string
80
+ */
81
+ async getToken() {
82
+ if (this.token && !this.isTokenExpired()) {
83
+ return this.token;
84
+ }
85
+ const config = CoreConfiguration.inst();
86
+ const serviceToken = config.mmApiAuthToken;
87
+ const tokenResponse = await this.api.request({
88
+ url: "/user-token",
89
+ method: "GET",
90
+ headers: {
91
+ Authorization: `Bearer ${serviceToken}`,
92
+ },
93
+ });
94
+ this.token = tokenResponse.data;
95
+ this.tokenExpiration = this.getTokenExpiration(this.token);
96
+ // Cache the new token and its expiration
97
+ setCachedMMToken({
98
+ token: this.token,
99
+ expiration: this.tokenExpiration?.getTime() || null,
100
+ });
101
+ logger.info("getToken: the api token from MM has been refreshed");
102
+ return this.token;
103
+ }
104
+ /**
105
+ * Invalidates the current token, forcing a fresh fetch on next getToken() call
106
+ */
107
+ invalidateToken() {
108
+ this.token = "";
109
+ this.tokenExpiration = null;
110
+ setCachedMMToken({ token: "", expiration: null });
111
+ }
112
+ }
113
+ //# sourceMappingURL=token-mgr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-mgr.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/token-mgr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/checkpoint.ts"],"names":[],"mappings":""}
@@ -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
  /**
4
4
  * Utility class for transforming entities to/from non-typed and typed objects
5
5
  * for interacting with the MachineMetrics API..
@@ -1 +1 @@
1
- {"version":3,"file":"entity-transformer.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/entity-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAYtC;;;GAGG;AACH,qBAAa,iBAAiB;IAK5B;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,gBAAgB,GACvB,MAAM;IAyBT;;;;;;OAMG;IACH,MAAM,CAAC,wBAAwB,CAC7B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACvC,gBAAgB;IAyBnB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC,CACrC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,GAC9C,gBAAgB,EAAE;IAUrB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAUtC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAY3C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA6BpC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAMvC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAMnC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAM5C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAUhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CA0BrC"}
1
+ {"version":3,"file":"entity-transformer.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/entity-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAY/C;;;GAGG;AACH,qBAAa,iBAAiB;IAK5B;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,gBAAgB,GACvB,MAAM;IAyBT;;;;;;OAMG;IACH,MAAM,CAAC,wBAAwB,CAC7B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACvC,gBAAgB;IAyBnB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC,CACrC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,GAC9C,gBAAgB,EAAE;IAUrB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAUtC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAY3C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA6BpC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAMvC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAMnC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAM5C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAUhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CA0BrC"}
@@ -0,0 +1,186 @@
1
+ import { ERPObjType } from "../../../types/erp-types.js";
2
+ import { MMSendPerson, MMSendResource, MMSendPart, MMSendPartOperation, MMSendWorkOrder, MMSendWorkOrderOperation, MMSendLaborTicket, MMSendReason, } from "../index.js";
3
+ /**
4
+ * Utility class for transforming entities to/from non-typed and typed objects
5
+ * for interacting with the MachineMetrics API..
6
+ */
7
+ export class EntityTransformer {
8
+ // ============================================================================
9
+ // PUBLIC INTERFACE METHODS
10
+ // ============================================================================
11
+ /**
12
+ * Extracts the primary key from a record based on entity type
13
+ * @param entityType The type of entity being processed
14
+ * @param record The record to extract primary key from
15
+ * @returns A string representation of the primary key
16
+ * @throws Error if primary key fields are missing or invalid
17
+ */
18
+ static extractPrimaryKey(entityType, record) {
19
+ switch (entityType) {
20
+ case ERPObjType.PERSONS:
21
+ return this.extractPersonKey(record);
22
+ case ERPObjType.RESOURCES:
23
+ return this.extractResourceKey(record);
24
+ case ERPObjType.PARTS:
25
+ return this.extractPartKey(record);
26
+ case ERPObjType.PART_OPERATION:
27
+ return this.extractPartOperationKey(record);
28
+ case ERPObjType.WORK_ORDERS:
29
+ return this.extractWorkOrderKey(record);
30
+ case ERPObjType.WORK_ORDER_OPERATIONS:
31
+ return this.extractWorkOrderOperationKey(record);
32
+ case ERPObjType.LABOR_TICKETS:
33
+ return this.extractLaborTicketKey(record);
34
+ case ERPObjType.REASONS:
35
+ return this.extractReasonKey(record);
36
+ default:
37
+ throw new Error(`Unsupported entity type for primary key extraction: ${entityType}`);
38
+ }
39
+ }
40
+ /**
41
+ * Reconstructs a typed object from plain data based on entity type
42
+ * @param entityType The type of entity being processed
43
+ * @param plainData The plain data object containing entity fields
44
+ * @returns A properly typed IToRESTApiObject instance
45
+ * @throws Error if the entity type is not supported
46
+ */
47
+ static reconstructFromPlainData(entityType, plainData) {
48
+ switch (entityType) {
49
+ case ERPObjType.PERSONS:
50
+ return this.reconstructPerson(plainData);
51
+ case ERPObjType.RESOURCES:
52
+ return this.reconstructResource(plainData);
53
+ case ERPObjType.PARTS:
54
+ return this.reconstructPart(plainData);
55
+ case ERPObjType.PART_OPERATION:
56
+ return this.reconstructPartOperation(plainData);
57
+ case ERPObjType.WORK_ORDERS:
58
+ return this.reconstructWorkOrder(plainData);
59
+ case ERPObjType.WORK_ORDER_OPERATIONS:
60
+ return this.reconstructWorkOrderOperation(plainData);
61
+ case ERPObjType.LABOR_TICKETS:
62
+ return this.reconstructLaborTicket(plainData);
63
+ case ERPObjType.REASONS:
64
+ return this.reconstructReason(plainData);
65
+ default:
66
+ throw new Error(`Unsupported entity type for reconstruction: ${entityType}`);
67
+ }
68
+ }
69
+ /**
70
+ * Reconstructs multiple typed objects from plain data based on entity type
71
+ * @param entityType The type of entity being processed
72
+ * @param plainDataArray Array of plain data objects containing entity fields
73
+ * @returns Array of properly typed IToRESTApiObject instances
74
+ */
75
+ static reconstructMultipleFromPlainData(entityType, plainDataArray) {
76
+ return plainDataArray.map((plainData) => this.reconstructFromPlainData(entityType, plainData));
77
+ }
78
+ // ============================================================================
79
+ // PRIVATE ENTITY-SPECIFIC KEY EXTRACTION METHODS
80
+ // ============================================================================
81
+ static extractPersonKey(record) {
82
+ const restApiObject = record.toRESTApiObject();
83
+ return this.validateAndExtractKey(restApiObject, ["personId"], "PERSONS", [
84
+ "personId",
85
+ ]);
86
+ }
87
+ static extractResourceKey(record) {
88
+ const restApiObject = record.toRESTApiObject();
89
+ return this.validateAndExtractKey(restApiObject, ["resourceId"], "RESOURCES", ["resourceId"]);
90
+ }
91
+ static extractPartKey(record) {
92
+ const restApiObject = record.toRESTApiObject();
93
+ return this.validateAndExtractKey(restApiObject, ["partNumber", "partRevision", "method"], "PARTS", ["partNumber"]);
94
+ }
95
+ static extractPartOperationKey(record) {
96
+ const restApiObject = record.toRESTApiObject();
97
+ return this.validateAndExtractKey(restApiObject, ["partNumber", "partRevision", "method", "sequenceNumber"], "PART_OPERATION", ["partNumber", "sequenceNumber"]);
98
+ }
99
+ static extractWorkOrderKey(record) {
100
+ const restApiObject = record.toRESTApiObject();
101
+ return this.validateAndExtractKey(restApiObject, ["workOrderId", "lot", "split", "sub"], "WORK_ORDERS", ["workOrderId"]);
102
+ }
103
+ static extractWorkOrderOperationKey(record) {
104
+ const restApiObject = record.toRESTApiObject();
105
+ return this.validateAndExtractKey(restApiObject, ["workOrderId", "lot", "split", "sub", "sequenceNumber"], "WORK_ORDER_OPERATIONS", ["workOrderId", "sequenceNumber"]);
106
+ }
107
+ static extractLaborTicketKey(record) {
108
+ const restApiObject = record.toRESTApiObject();
109
+ // Labor tickets can use laborTicketId if present, otherwise use operational context
110
+ if (restApiObject.laborTicketId) {
111
+ return this.validateAndExtractKey(restApiObject, ["laborTicketId"], "LABOR_TICKETS", ["laborTicketId"]);
112
+ }
113
+ else {
114
+ return this.validateAndExtractKey(restApiObject, [
115
+ "workOrderId",
116
+ "lot",
117
+ "split",
118
+ "sub",
119
+ "sequenceNumber",
120
+ "resourceId",
121
+ "personId",
122
+ ], "LABOR_TICKETS", ["workOrderId", "sequenceNumber", "resourceId", "personId"]);
123
+ }
124
+ }
125
+ static extractReasonKey(record) {
126
+ const restApiObject = record.toRESTApiObject();
127
+ return this.validateAndExtractKey(restApiObject, ["reasonId"], "REASONS", [
128
+ "reasonId",
129
+ ]);
130
+ }
131
+ // ============================================================================
132
+ // PRIVATE ENTITY-SPECIFIC RECONSTRUCTION METHODS
133
+ // ============================================================================
134
+ static reconstructPerson(plainData) {
135
+ return MMSendPerson.fromPlainObject(plainData);
136
+ }
137
+ static reconstructResource(plainData) {
138
+ return MMSendResource.fromPlainObject(plainData);
139
+ }
140
+ static reconstructPart(plainData) {
141
+ return MMSendPart.fromPlainObject(plainData);
142
+ }
143
+ static reconstructPartOperation(plainData) {
144
+ return MMSendPartOperation.fromPlainObject(plainData);
145
+ }
146
+ static reconstructWorkOrder(plainData) {
147
+ return MMSendWorkOrder.fromPlainObject(plainData);
148
+ }
149
+ static reconstructWorkOrderOperation(plainData) {
150
+ return MMSendWorkOrderOperation.fromPlainObject(plainData);
151
+ }
152
+ static reconstructLaborTicket(plainData) {
153
+ return MMSendLaborTicket.fromPlainObject(plainData);
154
+ }
155
+ static reconstructReason(plainData) {
156
+ return MMSendReason.fromPlainObject(plainData);
157
+ }
158
+ // ============================================================================
159
+ // SHARED UTILITY METHODS
160
+ // ============================================================================
161
+ /**
162
+ * Helper method to validate and extract primary key components
163
+ * @param restApiObject The REST API object representation
164
+ * @param keyFields The fields that make up the primary key
165
+ * @param entityTypeName The entity type name for error messages
166
+ * @param requiredFields The fields that must be non-empty (others can be empty)
167
+ * @returns Combined primary key string
168
+ * @throws Error if any required field is missing or null
169
+ */
170
+ static validateAndExtractKey(restApiObject, keyFields, entityTypeName, requiredFields) {
171
+ const keyValues = [];
172
+ for (const field of keyFields) {
173
+ const value = restApiObject[field];
174
+ // Check if this field is required
175
+ if (requiredFields.includes(field)) {
176
+ if (value === null || value === undefined || value === "") {
177
+ throw new Error(`Primary key field '${field}' is missing or empty for entity type ${entityTypeName}`);
178
+ }
179
+ }
180
+ // Use the value if present, otherwise use empty string
181
+ keyValues.push(value || "");
182
+ }
183
+ return keyValues.join("|");
184
+ }
185
+ }
186
+ //# sourceMappingURL=entity-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-transformer.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/entity-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Response interfaces for MM API calls
3
+ *
4
+ * These interfaces provide type safety for the various response shapes
5
+ * returned by the MM API based on HTTP status codes and entity types.
6
+ *
7
+ * Usage pattern:
8
+ * ```typescript
9
+ * const result = await client.sendWorkOrdersToMM(orders);
10
+ * if (result.httpStatus === 200) {
11
+ * const success = result as MM200NonLaborTicketResponse;
12
+ * console.log(`Processed ${success.affectedRows} records`);
13
+ * } else if (result.httpStatus === 207) {
14
+ * const partial = result as MM207NonLaborTicketResponse;
15
+ * console.log(`Partial success with ${partial.data.errors.length} error batches`);
16
+ * }
17
+ * ```
18
+ */
19
+ export {};
20
+ // ============================================================================
21
+ // NOTES ON OTHER SPECIALIZED RESPONSES
22
+ // ============================================================================
23
+ /**
24
+ * For other operations like saveCheckpoint, deleteLaborTickets, etc.,
25
+ * we return Promise<MMApiBaseResponse> until we have:
26
+ *
27
+ * 1. Clear understanding of actual response shapes
28
+ * 2. Real need for type safety on those responses
29
+ * 3. Actual usage patterns that would benefit from specific typing
30
+ *
31
+ * This avoids the anti-pattern of vague interfaces with [key: string]: unknown
32
+ * that provide no real type safety.
33
+ */
34
+ //# sourceMappingURL=mm-response-interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mm-response-interfaces.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/mm-response-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAqRH,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E;;;;;;;;;;GAUG"}
@@ -18,9 +18,6 @@ export declare class MMReceiveLaborTicket {
18
18
  personId: string;
19
19
  reasons?: MMReceiveLaborTicketReason[];
20
20
  resourceId: string;
21
- resource?: {
22
- name: string;
23
- };
24
21
  sequenceNumber: number;
25
22
  split: string;
26
23
  state: string;
@@ -1 +1 @@
1
- {"version":3,"file":"receive-types.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/receive-types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,oBAAoB;gBACnB,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK/C,IAAI,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAOhD;IAED,IAAI,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAIpD;IAGD,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAID,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAG,MAAM,CAAC;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,cAAc,EAAG,MAAM,CAAC;IACxB,GAAG,EAAG,MAAM,CAAC;IACb,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,UAAU,EAAG,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,cAAc,EAAG,MAAM,CAAC;IACxB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,IAAI,EAAG,MAAM,CAAC;IACd,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAG,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,sCAAsC,CAAC;IAC5D,GAAG,EAAG,MAAM,CAAC;IACb,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"receive-types.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/receive-types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,oBAAoB;gBACnB,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK/C,IAAI,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAOhD;IAED,IAAI,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAIpD;IAGD,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAID,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAG,MAAM,CAAC;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,cAAc,EAAG,MAAM,CAAC;IACxB,GAAG,EAAG,MAAM,CAAC;IACb,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,UAAU,EAAG,MAAM,CAAC;IACpB,cAAc,EAAG,MAAM,CAAC;IACxB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,IAAI,EAAG,MAAM,CAAC;IACd,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAG,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,sCAAsC,CAAC;IAC5D,GAAG,EAAG,MAAM,CAAC;IACb,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,55 @@
1
+ //#region MMReceiveLaborTicket
2
+ /**
3
+ * Represents a labor ticket as received from the MM API /erp/v1/labor-tickets/export/updates
4
+ */
5
+ export class MMReceiveLaborTicket {
6
+ constructor(data) {
7
+ Object.assign(this, data);
8
+ }
9
+ // Returns the closed date if it is a valid date, otherwise returns null
10
+ get workOrderOperationClosedDate() {
11
+ const closedDate = this.workOrderOperation?.closedDate;
12
+ return typeof closedDate === "string" &&
13
+ closedDate !== "" &&
14
+ !isNaN(Date.parse(closedDate))
15
+ ? closedDate
16
+ : null;
17
+ }
18
+ set workOrderOperationClosedDate(value) {
19
+ if (this.workOrderOperation) {
20
+ this.workOrderOperation.closedDate = value;
21
+ }
22
+ }
23
+ // Returns 1 if the work order operation is closed (has a valid closed date), 0 otherwise
24
+ get workOrderOpIsClosed() {
25
+ return this.workOrderOperationClosedDate !== null ? 1 : 0;
26
+ }
27
+ /*Descriptions from machinemetrics.atlassian.net/wiki/spaces/DEVE/pages/842661901/MM+ERP+Schema+Descriptions*/
28
+ badParts; // The number of parts produced that do not meet quality standards
29
+ clockIn; // The timestamp when the work on this ticket started
30
+ clockOut; // The timestamp when the work on this ticket ended
31
+ comment;
32
+ createdAt;
33
+ goodParts; // The number of parts produced that meet quality standards
34
+ laborTicketId; // The unique identifier for the labor ticket in the ERP
35
+ laborTicketRef; // The unique identifier for the labor ticket in MM
36
+ lot; // Refers to a material batch. If not available in the ERP, default to an empty string
37
+ personId; // The person who did the work
38
+ reasons;
39
+ resourceId; // The physical resource that did the work
40
+ sequenceNumber; // 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
41
+ split; // Batch number if order split for staggered delivery. If not available in the ERP, default to an empty string
42
+ state; // The current state of the labor ticket (e.g., "CLOSED/OPEN")
43
+ type; // If the labor is production, setup, or indirect
44
+ syncedAt;
45
+ updatedAt;
46
+ workOrderId; // The order this labor ticket corresponds to
47
+ workOrderOperation;
48
+ sub; // Batch number for parts that had to be rerun. If not available in the ERP, default to an empty string
49
+ transactionDate;
50
+ }
51
+ //#endregion MMReceiveLaborTicket
52
+ //#region MMReceiveTimesheet
53
+ // MLW TODO
54
+ // #endregion MMReceiveTimesheet
55
+ //# sourceMappingURL=receive-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receive-types.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/receive-types.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAC/B,YAAY,IAAmC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,wEAAwE;IACxE,IAAI,4BAA4B;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;QACvD,OAAO,OAAO,UAAU,KAAK,QAAQ;YACnC,UAAU,KAAK,EAAE;YACjB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,IAAI,4BAA4B,CAAC,KAAoB;QACnD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,4BAA4B,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,8GAA8G;IAE9G,QAAQ,CAAU,CAAC,kEAAkE;IACrF,OAAO,CAAiB,CAAC,qDAAqD;IAC9E,QAAQ,CAAiB,CAAC,mDAAmD;IAC7E,OAAO,CAAiB;IACxB,SAAS,CAAiB;IAC1B,SAAS,CAAU,CAAC,2DAA2D;IAC/E,aAAa,CAAU,CAAC,wDAAwD;IAChF,cAAc,CAAU,CAAC,mDAAmD;IAC5E,GAAG,CAAU,CAAC,sFAAsF;IACpG,QAAQ,CAAU,CAAC,8BAA8B;IACjD,OAAO,CAAgC;IACvC,UAAU,CAAU,CAAC,0CAA0C;IAC/D,cAAc,CAAU,CAAC,mKAAmK;IAC5L,KAAK,CAAU,CAAC,8GAA8G;IAC9H,KAAK,CAAU,CAAC,8DAA8D;IAC9E,IAAI,CAAU,CAAC,iDAAiD;IAChE,QAAQ,CAAiB;IACzB,SAAS,CAAiB;IAC1B,WAAW,CAAU,CAAC,6CAA6C;IACnE,kBAAkB,CAA0C;IAC5D,GAAG,CAAU,CAAC,uGAAuG;IACrH,eAAe,CAAiB;CACjC;AA4BD,iCAAiC;AAEjC,4BAA4B;AAE5B,WAAW;AAEX,gCAAgC"}