@machinemetrics/mm-erp-sdk 0.1.9 → 0.2.0-beta.1

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 (339) hide show
  1. package/README.md +0 -5
  2. package/dist/config-CvA-mFWF.js +418 -0
  3. package/dist/config-CvA-mFWF.js.map +1 -0
  4. package/dist/connector-factory-BPm2GVVF.js +30 -0
  5. package/dist/connector-factory-BPm2GVVF.js.map +1 -0
  6. package/dist/hashed-cache-manager-B15NN8hK.js +322 -0
  7. package/dist/hashed-cache-manager-B15NN8hK.js.map +1 -0
  8. package/dist/index-D8qO1NyK.js +192 -0
  9. package/dist/index-D8qO1NyK.js.map +1 -0
  10. package/dist/index.d.ts +43 -42
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/knexfile-Bng2Ru9c.js +20 -0
  13. package/dist/knexfile-Bng2Ru9c.js.map +1 -0
  14. package/dist/knexfile.d.ts.map +1 -1
  15. package/dist/logger-BWw0_z9q.js +17557 -0
  16. package/dist/logger-BWw0_z9q.js.map +1 -0
  17. package/dist/migrations/20241015162631_create_cache_table.js +15 -11
  18. package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
  19. package/dist/migrations/20241015162632_create_sdk_cache_table.js +15 -11
  20. package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
  21. package/dist/migrations/20250103162631_create_record_tracking_table.js +15 -14
  22. package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
  23. package/dist/mm-erp-sdk.js +4978 -0
  24. package/dist/mm-erp-sdk.js.map +1 -0
  25. package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
  26. package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
  27. package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
  28. package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
  29. package/dist/services/caching-service/index.d.ts +1 -1
  30. package/dist/services/caching-service/index.d.ts.map +1 -1
  31. package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
  32. package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
  33. package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
  34. package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
  35. package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
  36. package/dist/services/data-sync-service/index.d.ts +3 -3
  37. package/dist/services/data-sync-service/index.d.ts.map +1 -1
  38. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +39 -40
  39. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
  40. package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
  41. package/dist/services/data-sync-service/jobs/from-erp.js +36 -48
  42. package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
  43. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +35 -36
  44. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
  45. package/dist/services/data-sync-service/jobs/run-migrations.js +21 -22
  46. package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
  47. package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
  48. package/dist/services/data-sync-service/jobs/to-erp.js +45 -48
  49. package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
  50. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +30 -0
  51. package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +1 -0
  52. package/dist/services/erp-api-services/errors.d.ts +1 -1
  53. package/dist/services/erp-api-services/errors.d.ts.map +1 -1
  54. package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
  55. package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
  56. package/dist/services/erp-api-services/index.d.ts +8 -8
  57. package/dist/services/erp-api-services/index.d.ts.map +1 -1
  58. package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
  59. package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
  60. package/dist/services/erp-api-services/types.d.ts +2 -2
  61. package/dist/services/erp-api-services/types.d.ts.map +1 -1
  62. package/dist/services/mm-api-service/company-info.d.ts +13 -0
  63. package/dist/services/mm-api-service/company-info.d.ts.map +1 -0
  64. package/dist/services/mm-api-service/index.d.ts +13 -6
  65. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  66. package/dist/services/mm-api-service/mm-api-service.d.ts +13 -7
  67. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  68. package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
  69. package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
  70. package/dist/services/mm-api-service/types/receive-types.d.ts +3 -0
  71. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  72. package/dist/services/nats-service/nats-service.d.ts +114 -0
  73. package/dist/services/nats-service/nats-service.d.ts.map +1 -0
  74. package/dist/services/nats-service/test-nats-subscriber.d.ts +6 -0
  75. package/dist/services/nats-service/test-nats-subscriber.d.ts.map +1 -0
  76. package/dist/services/psql-erp-service/index.d.ts +3 -3
  77. package/dist/services/psql-erp-service/index.d.ts.map +1 -1
  78. package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
  79. package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
  80. package/dist/services/reporting-service/index.d.ts +1 -1
  81. package/dist/services/reporting-service/index.d.ts.map +1 -1
  82. package/dist/services/reporting-service/logger.d.ts.map +1 -1
  83. package/dist/services/sql-server-erp-service/index.d.ts +3 -3
  84. package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
  85. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
  86. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
  87. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
  88. package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
  89. package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
  90. package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
  91. package/dist/services/sqlite-service/index.d.ts +1 -1
  92. package/dist/services/sqlite-service/index.d.ts.map +1 -1
  93. package/dist/types/erp-connector.d.ts +1 -1
  94. package/dist/types/erp-connector.d.ts.map +1 -1
  95. package/dist/types/index.d.ts +2 -2
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/utils/connector-factory.d.ts +1 -1
  98. package/dist/utils/connector-factory.d.ts.map +1 -1
  99. package/dist/utils/connector-log/log-deduper.d.ts +1 -1
  100. package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
  101. package/dist/utils/connector-log/mm-connector-logger-example.d.ts +0 -1
  102. package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
  103. package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
  104. package/dist/utils/erp-type-from-entity.d.ts +1 -1
  105. package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
  106. package/dist/utils/error-formatter.d.ts +19 -0
  107. package/dist/utils/error-formatter.d.ts.map +1 -0
  108. package/dist/utils/index.d.ts +38 -33
  109. package/dist/utils/index.d.ts.map +1 -1
  110. package/dist/utils/mm-labor-ticket-helpers.d.ts +1 -1
  111. package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
  112. package/dist/utils/removeExtraneousFields.d.ts +1 -1
  113. package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
  114. package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
  115. package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
  116. package/dist/utils/resource-group.d.ts +1 -1
  117. package/dist/utils/resource-group.d.ts.map +1 -1
  118. package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
  119. package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
  120. package/dist/utils/standard-process-drivers/index.d.ts +3 -3
  121. package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
  122. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +1 -1
  123. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  124. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +4 -4
  125. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  126. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +4 -4
  127. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  128. package/package.json +10 -6
  129. package/src/index.ts +45 -42
  130. package/src/knexfile.ts +0 -1
  131. package/src/services/caching-service/batch-cache-manager.ts +2 -2
  132. package/src/services/caching-service/hashed-cache-manager.ts +5 -5
  133. package/src/services/caching-service/index.ts +1 -1
  134. package/src/services/caching-service/record-tracking-manager.ts +2 -2
  135. package/src/services/data-sync-service/configuration-manager.ts +2 -2
  136. package/src/services/data-sync-service/data-sync-service.ts +19 -10
  137. package/src/services/data-sync-service/index.ts +3 -3
  138. package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +3 -3
  139. package/src/services/data-sync-service/jobs/from-erp.ts +5 -10
  140. package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +2 -2
  141. package/src/services/data-sync-service/jobs/run-migrations.ts +2 -2
  142. package/src/services/data-sync-service/jobs/to-erp.ts +7 -3
  143. package/src/services/data-sync-service/nats-labor-ticket-listener.ts +341 -0
  144. package/src/services/erp-api-services/errors.ts +3 -3
  145. package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
  146. package/src/services/erp-api-services/index.ts +8 -8
  147. package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
  148. package/src/services/erp-api-services/types.ts +2 -2
  149. package/src/services/mm-api-service/company-info.ts +87 -0
  150. package/src/services/mm-api-service/index.ts +14 -6
  151. package/src/services/mm-api-service/mm-api-service.ts +29 -12
  152. package/src/services/mm-api-service/token-mgr.ts +4 -4
  153. package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
  154. package/src/services/mm-api-service/types/receive-types.ts +1 -0
  155. package/src/services/nats-service/nats-service.ts +351 -0
  156. package/src/services/nats-service/test-nats-subscriber.ts +96 -0
  157. package/src/services/psql-erp-service/index.ts +3 -3
  158. package/src/services/psql-erp-service/psql-service.ts +4 -4
  159. package/src/services/reporting-service/index.ts +1 -1
  160. package/src/services/reporting-service/logger.ts +81 -111
  161. package/src/services/sql-server-erp-service/index.ts +3 -3
  162. package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
  163. package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
  164. package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
  165. package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
  166. package/src/services/sqlite-service/index.ts +1 -1
  167. package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
  168. package/src/types/erp-connector.ts +1 -1
  169. package/src/types/index.ts +2 -2
  170. package/src/utils/application-initializer.ts +5 -5
  171. package/src/utils/connector-factory.ts +2 -2
  172. package/src/utils/connector-log/log-deduper.ts +2 -2
  173. package/src/utils/connector-log/mm-connector-logger.ts +3 -3
  174. package/src/utils/erp-type-from-entity.ts +1 -1
  175. package/src/utils/error-formatter.ts +205 -0
  176. package/src/utils/http-client.ts +3 -2
  177. package/src/utils/index.ts +39 -33
  178. package/src/utils/local-data-store/database-lock.ts +1 -1
  179. package/src/utils/mm-labor-ticket-helpers.ts +2 -2
  180. package/src/utils/removeExtraneousFields.ts +1 -1
  181. package/src/utils/removeIdFieldFromPayload.ts +1 -1
  182. package/src/utils/resource-group.ts +2 -2
  183. package/src/utils/standard-process-drivers/error-processor.ts +5 -5
  184. package/src/utils/standard-process-drivers/index.ts +3 -3
  185. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +6 -6
  186. package/src/utils/standard-process-drivers/mm-entity-processor.ts +7 -7
  187. package/src/utils/standard-process-drivers/standard-process-drivers.ts +6 -6
  188. package/src/utils/time-utils.ts +3 -3
  189. package/src/utils/timezone.ts +2 -2
  190. package/dist/index.js +0 -48
  191. package/dist/index.js.map +0 -1
  192. package/dist/knexfile.js +0 -19
  193. package/dist/knexfile.js.map +0 -1
  194. package/dist/migrations/20241015162631_create_cache_table.d.ts +0 -4
  195. package/dist/migrations/20241015162631_create_cache_table.d.ts.map +0 -1
  196. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +0 -4
  197. package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +0 -1
  198. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +0 -4
  199. package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +0 -1
  200. package/dist/services/caching-service/batch-cache-manager.js +0 -84
  201. package/dist/services/caching-service/batch-cache-manager.js.map +0 -1
  202. package/dist/services/caching-service/hashed-cache-manager.js +0 -223
  203. package/dist/services/caching-service/hashed-cache-manager.js.map +0 -1
  204. package/dist/services/caching-service/index.js +0 -2
  205. package/dist/services/caching-service/index.js.map +0 -1
  206. package/dist/services/caching-service/record-tracking-manager.js +0 -28
  207. package/dist/services/caching-service/record-tracking-manager.js.map +0 -1
  208. package/dist/services/data-sync-service/configuration-manager.js +0 -163
  209. package/dist/services/data-sync-service/configuration-manager.js.map +0 -1
  210. package/dist/services/data-sync-service/data-sync-service.js +0 -95
  211. package/dist/services/data-sync-service/data-sync-service.js.map +0 -1
  212. package/dist/services/data-sync-service/index.js +0 -10
  213. package/dist/services/data-sync-service/index.js.map +0 -1
  214. package/dist/services/erp-api-services/errors.js +0 -83
  215. package/dist/services/erp-api-services/errors.js.map +0 -1
  216. package/dist/services/erp-api-services/graphql/graphql-service.js +0 -102
  217. package/dist/services/erp-api-services/graphql/graphql-service.js.map +0 -1
  218. package/dist/services/erp-api-services/graphql/types.js +0 -6
  219. package/dist/services/erp-api-services/graphql/types.js.map +0 -1
  220. package/dist/services/erp-api-services/index.js +0 -13
  221. package/dist/services/erp-api-services/index.js.map +0 -1
  222. package/dist/services/erp-api-services/oauth-client.js +0 -41
  223. package/dist/services/erp-api-services/oauth-client.js.map +0 -1
  224. package/dist/services/erp-api-services/rest/get-query-params.js +0 -23
  225. package/dist/services/erp-api-services/rest/get-query-params.js.map +0 -1
  226. package/dist/services/erp-api-services/rest/rest-api-service.js +0 -163
  227. package/dist/services/erp-api-services/rest/rest-api-service.js.map +0 -1
  228. package/dist/services/erp-api-services/types.js +0 -2
  229. package/dist/services/erp-api-services/types.js.map +0 -1
  230. package/dist/services/mm-api-service/index.js +0 -15
  231. package/dist/services/mm-api-service/index.js.map +0 -1
  232. package/dist/services/mm-api-service/mm-api-service.js +0 -519
  233. package/dist/services/mm-api-service/mm-api-service.js.map +0 -1
  234. package/dist/services/mm-api-service/token-mgr.js +0 -113
  235. package/dist/services/mm-api-service/token-mgr.js.map +0 -1
  236. package/dist/services/mm-api-service/types/checkpoint.js +0 -2
  237. package/dist/services/mm-api-service/types/checkpoint.js.map +0 -1
  238. package/dist/services/mm-api-service/types/entity-transformer.js +0 -186
  239. package/dist/services/mm-api-service/types/entity-transformer.js.map +0 -1
  240. package/dist/services/mm-api-service/types/mm-response-interfaces.js +0 -34
  241. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +0 -1
  242. package/dist/services/mm-api-service/types/receive-types.js +0 -55
  243. package/dist/services/mm-api-service/types/receive-types.js.map +0 -1
  244. package/dist/services/mm-api-service/types/send-types.js +0 -337
  245. package/dist/services/mm-api-service/types/send-types.js.map +0 -1
  246. package/dist/services/psql-erp-service/configuration.js +0 -2
  247. package/dist/services/psql-erp-service/configuration.js.map +0 -1
  248. package/dist/services/psql-erp-service/index.js +0 -10
  249. package/dist/services/psql-erp-service/index.js.map +0 -1
  250. package/dist/services/psql-erp-service/internal/types/psql-types.js +0 -5
  251. package/dist/services/psql-erp-service/internal/types/psql-types.js.map +0 -1
  252. package/dist/services/psql-erp-service/psql-helpers.js +0 -99
  253. package/dist/services/psql-erp-service/psql-helpers.js.map +0 -1
  254. package/dist/services/psql-erp-service/psql-service.js +0 -187
  255. package/dist/services/psql-erp-service/psql-service.js.map +0 -1
  256. package/dist/services/reporting-service/index.js +0 -5
  257. package/dist/services/reporting-service/index.js.map +0 -1
  258. package/dist/services/reporting-service/logger.js +0 -217
  259. package/dist/services/reporting-service/logger.js.map +0 -1
  260. package/dist/services/sql-server-erp-service/configuration.js +0 -2
  261. package/dist/services/sql-server-erp-service/configuration.js.map +0 -1
  262. package/dist/services/sql-server-erp-service/index.js +0 -11
  263. package/dist/services/sql-server-erp-service/index.js.map +0 -1
  264. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +0 -50
  265. package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +0 -1
  266. package/dist/services/sql-server-erp-service/internal/sql-server-config.js +0 -40
  267. package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +0 -1
  268. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +0 -36
  269. package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +0 -1
  270. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +0 -2
  271. package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +0 -1
  272. package/dist/services/sql-server-erp-service/sql-server-helpers.js +0 -66
  273. package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +0 -1
  274. package/dist/services/sql-server-erp-service/sql-server-service.js +0 -154
  275. package/dist/services/sql-server-erp-service/sql-server-service.js.map +0 -1
  276. package/dist/services/sql-server-erp-service/types/sql-input-param.js +0 -2
  277. package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +0 -1
  278. package/dist/services/sqlite-service/index.js +0 -2
  279. package/dist/services/sqlite-service/index.js.map +0 -1
  280. package/dist/services/sqlite-service/sqlite-coordinator.js +0 -60
  281. package/dist/services/sqlite-service/sqlite-coordinator.js.map +0 -1
  282. package/dist/types/erp-connector.js +0 -2
  283. package/dist/types/erp-connector.js.map +0 -1
  284. package/dist/types/erp-types.js +0 -13
  285. package/dist/types/erp-types.js.map +0 -1
  286. package/dist/types/index.js +0 -6
  287. package/dist/types/index.js.map +0 -1
  288. package/dist/utils/application-initializer.js +0 -55
  289. package/dist/utils/application-initializer.js.map +0 -1
  290. package/dist/utils/cleanup-numbers.js +0 -6
  291. package/dist/utils/cleanup-numbers.js.map +0 -1
  292. package/dist/utils/connector-factory.js +0 -34
  293. package/dist/utils/connector-factory.js.map +0 -1
  294. package/dist/utils/connector-log/log-deduper.js +0 -240
  295. package/dist/utils/connector-log/log-deduper.js.map +0 -1
  296. package/dist/utils/connector-log/mm-connector-logger-example.js +0 -88
  297. package/dist/utils/connector-log/mm-connector-logger-example.js.map +0 -1
  298. package/dist/utils/connector-log/mm-connector-logger.js +0 -151
  299. package/dist/utils/connector-log/mm-connector-logger.js.map +0 -1
  300. package/dist/utils/data-transformation.js +0 -38
  301. package/dist/utils/data-transformation.js.map +0 -1
  302. package/dist/utils/erp-type-from-entity.js +0 -6
  303. package/dist/utils/erp-type-from-entity.js.map +0 -1
  304. package/dist/utils/error-utils.js +0 -21
  305. package/dist/utils/error-utils.js.map +0 -1
  306. package/dist/utils/http-client.js +0 -186
  307. package/dist/utils/http-client.js.map +0 -1
  308. package/dist/utils/index.js +0 -65
  309. package/dist/utils/index.js.map +0 -1
  310. package/dist/utils/local-data-store/database-lock.js +0 -68
  311. package/dist/utils/local-data-store/database-lock.js.map +0 -1
  312. package/dist/utils/local-data-store/jobs-shared-data.js +0 -116
  313. package/dist/utils/local-data-store/jobs-shared-data.js.map +0 -1
  314. package/dist/utils/mm-labor-ticket-helpers.js +0 -23
  315. package/dist/utils/mm-labor-ticket-helpers.js.map +0 -1
  316. package/dist/utils/removeExtraneousFields.js +0 -16
  317. package/dist/utils/removeExtraneousFields.js.map +0 -1
  318. package/dist/utils/removeIdFieldFromPayload.js +0 -16
  319. package/dist/utils/removeIdFieldFromPayload.js.map +0 -1
  320. package/dist/utils/resource-group.js +0 -59
  321. package/dist/utils/resource-group.js.map +0 -1
  322. package/dist/utils/standard-process-drivers/error-processor.js +0 -262
  323. package/dist/utils/standard-process-drivers/error-processor.js.map +0 -1
  324. package/dist/utils/standard-process-drivers/index.js +0 -4
  325. package/dist/utils/standard-process-drivers/index.js.map +0 -1
  326. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +0 -164
  327. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +0 -1
  328. package/dist/utils/standard-process-drivers/mm-entity-processor.js +0 -168
  329. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +0 -1
  330. package/dist/utils/standard-process-drivers/standard-process-drivers.js +0 -324
  331. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +0 -1
  332. package/dist/utils/time-utils.js +0 -96
  333. package/dist/utils/time-utils.js.map +0 -1
  334. package/dist/utils/timezone.js +0 -105
  335. package/dist/utils/timezone.js.map +0 -1
  336. package/dist/utils/trimObjectValues.js +0 -11
  337. package/dist/utils/trimObjectValues.js.map +0 -1
  338. package/dist/utils/uniqueRows.js +0 -35
  339. package/dist/utils/uniqueRows.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import knex, { Knex } from "knex";
2
- import config from "../../knexfile.js";
2
+ import config from "../../knexfile";
3
3
  import stringify from "json-stable-stringify";
4
4
  import XXH from "xxhashjs";
5
- import { ERPObjType } from "../../types/erp-types.js";
6
- import { CacheMetrics } from "./index.js";
7
- import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
8
- import { logger } from "../reporting-service/index.js";
5
+ import { ERPObjType } from "../../types/erp-types";
6
+ import { CacheMetrics } from "./index";
7
+ import { CoreConfiguration } from "../data-sync-service/configuration-manager";
8
+ import { logger } from "../reporting-service";
9
9
 
10
10
  type HashedCacheManagerOptions = {
11
11
  ttl?: number;
@@ -1,4 +1,4 @@
1
- import { ERPObjType, ERPObject } from "../../types/erp-types.js";
1
+ import { ERPObjType, ERPObject } from "../../types/erp-types";
2
2
 
3
3
  export interface CacheServiceConfig {
4
4
  tableName: string;
@@ -1,6 +1,6 @@
1
1
  import knex, { Knex } from "knex";
2
- import config from "../../knexfile.js";
3
- import { ERPObjType } from "../../types/erp-types.js";
2
+ import config from "../../knexfile";
3
+ import { ERPObjType } from "../../types/erp-types";
4
4
 
5
5
  const DEFAULT_RECORD_TRACKING_TABLE_NAME = "record_tracking";
6
6
 
@@ -1,6 +1,6 @@
1
1
  import "dotenv/config";
2
- import { configureLogger } from "../reporting-service/logger.js";
3
- import { SQLServerConfiguration } from "../sql-server-erp-service/configuration.js";
2
+ import { configureLogger } from "../reporting-service/logger";
3
+ import { SQLServerConfiguration } from "../sql-server-erp-service/configuration";
4
4
 
5
5
  export class CoreConfiguration {
6
6
  private static instance: CoreConfiguration;
@@ -2,19 +2,23 @@ import Bree, { Job } from "bree";
2
2
  import Graceful from "@ladjs/graceful";
3
3
  import path from "path";
4
4
  import { fileURLToPath } from "url";
5
- import { CoreConfiguration } from "./configuration-manager.js";
6
- import logger from "../reporting-service/logger.js";
7
-
8
- type GracefulConstructor = new (config: { brees: Bree[] }) => {
9
- listen: () => void;
10
- };
11
-
12
- const GracefulClass = Graceful as unknown as GracefulConstructor;
5
+ import { CoreConfiguration } from "./configuration-manager";
6
+ import logger from "../reporting-service/logger";
7
+ import { createConnectorFromPath } from "../../utils/connector-factory";
8
+ import { NatsLaborTicketListener } from "./nats-labor-ticket-listener";
13
9
 
14
10
  export const runDataSyncService = async (connectorPath: string) => {
15
11
  const config = CoreConfiguration.inst();
16
12
 
17
13
  try {
14
+ // Create connector instance
15
+ const connector = await createConnectorFromPath(connectorPath);
16
+
17
+ // Start NATS listener if enabled
18
+ if (process.env.NATS_ENABLED === "true") {
19
+ const natsListener = new NatsLaborTicketListener(connector);
20
+ await natsListener.start();
21
+ }
18
22
  // Find the SDK's node_modules directory and jobs path using ES module import
19
23
  const currentFileUrl = import.meta.url;
20
24
  const currentFilePath = fileURLToPath(currentFileUrl);
@@ -23,7 +27,12 @@ export const runDataSyncService = async (connectorPath: string) => {
23
27
  // Current: /path/to/sdk/dist/mm-erp-sdk.js.js
24
28
  // Target: /path/to/sdk/dist/services/data-sync-service/jobs
25
29
  const sdkDistPath = path.dirname(currentFilePath);
26
- const jobsPath = path.join(sdkDistPath, "jobs");
30
+ const jobsPath = path.join(
31
+ sdkDistPath,
32
+ "services",
33
+ "data-sync-service",
34
+ "jobs"
35
+ );
27
36
 
28
37
  const bree = new Bree({
29
38
  root: jobsPath,
@@ -79,7 +88,7 @@ export const runDataSyncService = async (connectorPath: string) => {
79
88
  }));
80
89
  logger.info("JOBS CONFIGURATION:", { jobs: jobsConfig });
81
90
 
82
- const graceful = new GracefulClass({ brees: [bree] });
91
+ const graceful = new Graceful({ brees: [bree] });
83
92
  graceful.listen();
84
93
 
85
94
  (async () => {
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Core data sync service functionality
3
3
  */
4
- export { runDataSyncService } from "./data-sync-service.js";
4
+ export { runDataSyncService } from "./data-sync-service";
5
5
 
6
6
  /**
7
7
  * Configuration management for data sync
8
8
  */
9
- export { getSQLServerConfiguration } from "./configuration-manager.js";
9
+ export { getSQLServerConfiguration } from "./configuration-manager";
10
10
 
11
- export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager.js";
11
+ export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager";
@@ -1,7 +1,7 @@
1
1
  import "dotenv/config";
2
- import { HashedCacheManager } from "../../caching-service/hashed-cache-manager.js";
3
- import { SQLiteCoordinator } from "../../sqlite-service/index.js";
4
- import logger from "../../../services/reporting-service/logger.js";
2
+ import { HashedCacheManager } from "../../caching-service/hashed-cache-manager";
3
+ import { SQLiteCoordinator } from "../../sqlite-service";
4
+ import logger from "../../../services/reporting-service/logger";
5
5
 
6
6
  // Configure the logger with the correct log level
7
7
  logger.level = process.env.LOG_LEVEL || "info";
@@ -1,8 +1,8 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../../services/reporting-service/logger.js";
4
- import { SQLiteCoordinator } from "../../sqlite-service/index.js";
5
- import { createConnectorFromPath } from "../../../utils/connector-factory.js";
3
+ import logger from "../../../services/reporting-service/logger";
4
+ import { SQLiteCoordinator } from "../../sqlite-service";
5
+ import { createConnectorFromPath } from "../../../utils/connector-factory";
6
6
 
7
7
  // Configure the logger with the correct log level
8
8
  logger.level = process.env.LOG_LEVEL || "info";
@@ -29,14 +29,9 @@ const main = async () => {
29
29
  await connector.syncFromERPCompleted();
30
30
  logger.info("==========Completed from-erp job cycle==========");
31
31
  } catch (error) {
32
- const errorDetails = {
33
- message: error instanceof Error ? error.message : String(error),
34
- stack: error instanceof Error ? error.stack : undefined,
35
- name: error instanceof Error ? error.name : undefined,
36
- ...(error && typeof error === "object" ? error : {}), // Include all enumerable properties if it's an object
37
- };
32
+ // Logger now handles circular references and error objects safely
38
33
  logger.error('Worker for job "from-erp" had an error', {
39
- error: errorDetails,
34
+ error,
40
35
  });
41
36
 
42
37
  throw error; // Rethrow so Bree can handle it properly
@@ -1,7 +1,7 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../../services/reporting-service/logger.js";
4
- import { createConnectorFromPath } from "../../../utils/connector-factory.js";
3
+ import logger from "../../../services/reporting-service/logger";
4
+ import { createConnectorFromPath } from "../../../utils/connector-factory";
5
5
 
6
6
  // Configure the logger with the correct log level
7
7
  logger.level = process.env.LOG_LEVEL || "info";
@@ -1,6 +1,6 @@
1
1
  import knex, { Knex } from "knex";
2
- import logger from "../../reporting-service/logger.js";
3
- import config from "../../../knexfile.js";
2
+ import logger from "../../reporting-service/logger";
3
+ import config from "../../../knexfile";
4
4
 
5
5
  // Configure the logger with the correct log level
6
6
  logger.level = process.env.LOG_LEVEL || "info";
@@ -1,7 +1,8 @@
1
1
  import "dotenv/config";
2
2
 
3
- import logger from "../../reporting-service/logger.js";
4
- import { createConnectorFromPath } from "../../../utils/connector-factory.js";
3
+ import logger from "../../reporting-service/logger";
4
+ import { SQLiteCoordinator } from "../../sqlite-service";
5
+ import { createConnectorFromPath } from "../../../utils/connector-factory";
5
6
 
6
7
  // Configure the logger with the correct log level
7
8
  logger.level = process.env.LOG_LEVEL || "info";
@@ -21,7 +22,10 @@ const main = async () => {
21
22
  // Create a new connector instance for this job
22
23
  const connector = await createConnectorFromPath(connectorPath);
23
24
 
24
- await connector.syncToERP();
25
+ await SQLiteCoordinator.executeWithLock("to-erp", async () => {
26
+ await connector.syncToERP();
27
+ });
28
+
25
29
  await connector.syncToERPCompleted();
26
30
 
27
31
  logger.info("==========Completed to-erp job cycle==========");
@@ -0,0 +1,341 @@
1
+ import logger from "../reporting-service/logger";
2
+ import { formatError } from "../../utils/error-formatter";
3
+ import { NatsService } from "../nats-service/nats-service";
4
+ import { MMReceiveLaborTicket, MMApiClient, getCompanyInfo } from "../mm-api-service";
5
+ import { SQLiteCoordinator } from "../sqlite-service";
6
+
7
+ /**
8
+ * Manages NATS-based real-time labor ticket processing
9
+ */
10
+ export class NatsLaborTicketListener {
11
+ private connector: any;
12
+ private natsService?: NatsService;
13
+
14
+ constructor(connector: any) {
15
+ this.connector = connector;
16
+ }
17
+
18
+ /**
19
+ * Start listening for labor ticket events via NATS
20
+ */
21
+ async start(): Promise<void> {
22
+ try {
23
+ // Fetch company info from MM API (includes locationRef)
24
+ const companyInfo = await getCompanyInfo();
25
+ const erpType = this.connector.type || "unknown";
26
+
27
+ logger.info("Starting NATS listener for labor tickets", {
28
+ locationRef: companyInfo.locationRef,
29
+ companyId: companyInfo.companyId,
30
+ erpType,
31
+ servers: process.env.NATS_SERVERS || "nats://localhost:4222",
32
+ });
33
+
34
+ this.natsService = new NatsService({
35
+ servers: process.env.NATS_SERVERS || "nats://localhost:4222",
36
+ name: `${erpType}-connector`,
37
+ locationRef: companyInfo.locationRef,
38
+ erpType,
39
+ enabled: true,
40
+ reconnect: true,
41
+ maxReconnectAttempts: -1,
42
+ reconnectTimeWait: 2000,
43
+ });
44
+
45
+ // Register health check handler
46
+ this.registerHealthCheckHandler(companyInfo.locationRef, erpType);
47
+
48
+ // Register labor ticket handler
49
+ this.registerLaborTicketHandler(companyInfo.locationRef, erpType);
50
+
51
+ // Connect to NATS
52
+ await this.natsService.connect();
53
+
54
+ logger.info("NATS listener started successfully", {
55
+ subject: `mm.14.${companyInfo.locationRef}.labor-ticket.*`,
56
+ });
57
+ } catch (error) {
58
+ logger.error("Failed to start NATS listener", { error });
59
+ // Don't throw - allow REST polling to continue
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Register health check handler - responds immediately to let Dashboard know connector is online
65
+ */
66
+ private registerHealthCheckHandler(locationRef: string, erpType: string): void {
67
+ if (!this.natsService) return;
68
+
69
+ this.natsService.registerHandler({
70
+ subject: `mm.14.${locationRef}.erp.health`,
71
+ description: "Health check - responds immediately to indicate connector is online",
72
+ handler: {
73
+ handle: async () => {
74
+ logger.debug("Health check received, sending pong");
75
+ return {
76
+ status: "online",
77
+ timestamp: new Date().toISOString(),
78
+ locationRef,
79
+ erpType,
80
+ };
81
+ },
82
+ },
83
+ });
84
+ }
85
+
86
+ /**
87
+ * Register labor ticket processing handler
88
+ */
89
+ private registerLaborTicketHandler(locationRef: string, erpType: string): void {
90
+ if (!this.natsService) return;
91
+
92
+ this.natsService.registerHandler({
93
+ subject: `mm.14.${locationRef}.labor-ticket.*`,
94
+ description: "Process labor tickets in real-time from NATS",
95
+ handler: {
96
+ handle: async ({ data }: any, subject: string) => {
97
+ const action = subject.split(".").pop();
98
+ const { actionPayload } = data;
99
+ const startTime = Date.now();
100
+ const { laborTicketRef } = actionPayload;
101
+
102
+ logger.info("Received labor ticket via NATS", {
103
+ action,
104
+ requestId: data.requestId,
105
+ laborTicketRef,
106
+ });
107
+
108
+ // Use the same lock as to-erp job to prevent concurrent processing
109
+ return await SQLiteCoordinator.executeWithLock("to-erp", async () => {
110
+ try {
111
+ let laborTicketData;
112
+
113
+ if (laborTicketRef) {
114
+ // Fetch the full labor ticket data using the laborTicketRef
115
+ const mmApiClient = new MMApiClient();
116
+ const laborTicket = await mmApiClient.fetchLaborTicketByRef(laborTicketRef);
117
+
118
+ logger.info("Fetched labor ticket data from MM API", {
119
+ laborTicketRef,
120
+ laborTicketId: laborTicket.laborTicketId,
121
+ });
122
+
123
+ // Merge changed fields from actionPayload to ensure we process the actual changes
124
+ laborTicketData = {
125
+ ...laborTicket,
126
+ ...actionPayload,
127
+ };
128
+ } else {
129
+ // No laborTicketRef provided, use the actionPayload directly
130
+ logger.info("No laborTicketRef provided, using actionPayload directly", {
131
+ requestId: data.requestId,
132
+ });
133
+
134
+ laborTicketData = actionPayload;
135
+ }
136
+
137
+ const mergedLaborTicket = new MMReceiveLaborTicket(laborTicketData);
138
+
139
+ // Process labor ticket: ERP operation first, then create MM entities with ERP ID
140
+ const result = await this.processLaborTicket(
141
+ mergedLaborTicket,
142
+ action || "unknown"
143
+ );
144
+
145
+ // Update checkpoint to prevent to-erp polling job from reprocessing this ticket
146
+ await this.updateCheckpoint(erpType, result);
147
+
148
+ // Return response with full labor ticket data for immediate frontend state update
149
+ return {
150
+ status: "success",
151
+ requestId: data.requestId,
152
+ action,
153
+ timestamp: new Date().toISOString(),
154
+ processingTimeMs: Date.now() - startTime,
155
+ laborTicketRef: result.laborTicketRef,
156
+ laborTicket: result.laborTicket,
157
+ };
158
+ } catch (error) {
159
+ // Check if error was already formatted in inner catch block
160
+ const formattedError = (error as any)?._formatted || formatError(error);
161
+
162
+ // Debug logging
163
+ logger.debug("Error details", {
164
+ hasFormatted: !!(error as any)?._formatted,
165
+ isAxiosError: (error as any)?.isAxiosError,
166
+ errorMessage: (error as any)?.message,
167
+ responseStatus: (error as any)?.response?.status,
168
+ responseData: (error as any)?.response?.data,
169
+ });
170
+
171
+ logger.error("Error handling labor ticket from NATS", {
172
+ error: formattedError.message,
173
+ code: formattedError.code,
174
+ requestId: data.requestId,
175
+ laborTicketRef,
176
+ });
177
+
178
+ return {
179
+ status: "error",
180
+ requestId: data.requestId,
181
+ action,
182
+ timestamp: new Date().toISOString(),
183
+ processingTimeMs: Date.now() - startTime,
184
+ error: {
185
+ message: formattedError.message,
186
+ code: formattedError.code,
187
+ httpStatus: formattedError.httpStatus,
188
+ metadata: formattedError.metadata,
189
+ laborTicketRef,
190
+ },
191
+ };
192
+ }
193
+ });
194
+ },
195
+ },
196
+ });
197
+ }
198
+
199
+ /**
200
+ * Process labor ticket in ERP and then create MM entities with ERP ID attached
201
+ */
202
+ private async processLaborTicket(
203
+ laborTicket: MMReceiveLaborTicket,
204
+ action: string
205
+ ): Promise<{ laborTicketRef: string; laborTicket: any }> {
206
+ const { MMEntityProcessor } = await import("../../utils/standard-process-drivers/mm-entity-processor");
207
+ const { ERPObjType } = await import("../../types/erp-types");
208
+ const { MMSendLaborTicket } = await import("../mm-api-service");
209
+
210
+ logger.info("Processing labor ticket: ERP first, then MM creation", {
211
+ laborTicketRef: laborTicket.laborTicketRef,
212
+ action,
213
+ hasLaborTicketId: !!laborTicket.laborTicketId,
214
+ });
215
+
216
+ try {
217
+ let erpResult;
218
+
219
+ if (action === "create" || !laborTicket.laborTicketId) {
220
+ // Create new labor ticket in ERP
221
+ erpResult = await this.connector.createLaborTicketInERP(laborTicket);
222
+ logger.info("Successfully created labor ticket in ERP", {
223
+ laborTicketRef: laborTicket.laborTicketRef,
224
+ erpUid: erpResult.erpUid,
225
+ });
226
+ } else {
227
+ // Update existing labor ticket in ERP
228
+ erpResult = { laborTicket: await this.connector.updateLaborTicketInERP(laborTicket) };
229
+ logger.info("Successfully updated labor ticket in ERP", {
230
+ laborTicketRef: laborTicket.laborTicketRef,
231
+ });
232
+ }
233
+
234
+ // Now update MM entities with ERP ID attached
235
+ const laborTicketForMM = { ...laborTicket };
236
+ if (erpResult.erpUid) {
237
+ laborTicketForMM.laborTicketId = erpResult.erpUid;
238
+
239
+ // If this was a create (no initial laborTicketId) with a laborTicketRef,
240
+ // patch the existing orphaned MM record with the new ERP ID first
241
+ if (!laborTicket.laborTicketId && laborTicketForMM.laborTicketRef) {
242
+ const mmApiClient = new MMApiClient();
243
+ await mmApiClient.updateLaborTicketIdByRef(
244
+ laborTicketForMM.laborTicketRef,
245
+ erpResult.erpUid
246
+ );
247
+
248
+ logger.info("Patched existing MM labor ticket with new ERP ID", {
249
+ laborTicketRef: laborTicketForMM.laborTicketRef,
250
+ laborTicketId: erpResult.erpUid,
251
+ });
252
+ }
253
+ }
254
+
255
+ // Set state based on clockOut before writing to MM
256
+ laborTicketForMM.state = laborTicketForMM.clockOut ? "CLOSED" : "OPEN";
257
+
258
+ // Write all fields to MM (this updates the existing record now that it has laborTicketId)
259
+ const mmLaborTicket = MMSendLaborTicket.fromPlainObject(laborTicketForMM as any);
260
+
261
+ const mmResult = await MMEntityProcessor.writeEntities(
262
+ ERPObjType.LABOR_TICKETS,
263
+ [mmLaborTicket],
264
+ null // No caching for real-time operations
265
+ );
266
+
267
+ logger.info("Successfully updated MM entities after ERP operation", {
268
+ laborTicketRef: laborTicketForMM.laborTicketRef,
269
+ laborTicketId: laborTicketForMM.laborTicketId,
270
+ entitiesCreated: mmResult.upsertedEntities,
271
+ });
272
+
273
+ return {
274
+ laborTicketRef: laborTicketForMM.laborTicketRef!,
275
+ laborTicket: laborTicketForMM,
276
+ };
277
+ } catch (error) {
278
+ // Format error to preserve meaningful message
279
+ const formattedError = formatError(error);
280
+
281
+ logger.error("Failed to process labor ticket with MM creation", {
282
+ laborTicketRef: laborTicket.laborTicketRef,
283
+ action,
284
+ error: formattedError.message,
285
+ code: formattedError.code,
286
+ });
287
+
288
+ // Create enhanced error to propagate
289
+ const enhancedError: any = error;
290
+ enhancedError._formatted = formattedError;
291
+ throw enhancedError;
292
+ }
293
+ }
294
+
295
+ /**
296
+ * Update checkpoint to prevent to-erp polling job from reprocessing this ticket
297
+ * Only updates if the new timestamp is later than the current checkpoint (prevents moving backwards)
298
+ */
299
+ private async updateCheckpoint(
300
+ erpType: string,
301
+ result: { laborTicketRef: string; laborTicket: any }
302
+ ): Promise<void> {
303
+ const mmApiClient = new MMApiClient();
304
+ const currentCheckpoint = await mmApiClient.getCheckpoint({
305
+ system: erpType,
306
+ table: "labor_tickets",
307
+ checkpointType: "export",
308
+ checkpointValue: {
309
+ timestamp: "",
310
+ },
311
+ });
312
+
313
+ const currentTimestamp = (currentCheckpoint as any)?.timestamp;
314
+ const newTimestamp = result.laborTicket.updatedAt || new Date().toISOString();
315
+
316
+ // Only update checkpoint if new timestamp is later than current (prevents moving backwards)
317
+ if (!currentTimestamp || new Date(newTimestamp) > new Date(currentTimestamp)) {
318
+ await mmApiClient.saveCheckpoint({
319
+ system: erpType,
320
+ table: "labor_tickets",
321
+ checkpointType: "export",
322
+ checkpointValue: {
323
+ timestamp: newTimestamp,
324
+ },
325
+ });
326
+
327
+ logger.debug("Updated export checkpoint after NATS processing", {
328
+ laborTicketRef: result.laborTicketRef,
329
+ previousCheckpoint: currentTimestamp,
330
+ newCheckpoint: newTimestamp,
331
+ });
332
+ } else {
333
+ logger.debug("Skipped checkpoint update (timestamp not newer)", {
334
+ laborTicketRef: result.laborTicketRef,
335
+ currentCheckpoint: currentTimestamp,
336
+ ticketTimestamp: newTimestamp,
337
+ });
338
+ }
339
+ }
340
+ }
341
+
@@ -1,7 +1,7 @@
1
1
  import { AxiosError } from "axios";
2
- import logger from "../reporting-service/logger.js";
3
- import { GraphQLServerError } from "./graphql/types.js";
4
- import { HTTPError } from "../../utils/http-client.js";
2
+ import logger from "../reporting-service/logger";
3
+ import { GraphQLServerError } from "./graphql/types";
4
+ import { HTTPError } from "../../utils/http-client";
5
5
 
6
6
  /**
7
7
  * Represents GraphQL specific errors (validation, missing fields, etc.)
@@ -2,11 +2,11 @@ import {
2
2
  HTTPClient,
3
3
  HTTPClientFactory,
4
4
  HTTPResponse,
5
- } from "../../../utils/http-client.js";
6
- import { GraphQLResponse } from "./types.js";
7
- import { ErrorHandler } from "../errors.js";
8
- import { APIResponse } from "../types.js";
9
- import { ERPApiConfig } from "../types.js";
5
+ } from "../../../utils/http-client";
6
+ import { GraphQLResponse } from "./types";
7
+ import { ErrorHandler } from "../errors";
8
+ import { APIResponse } from "../types";
9
+ import { ERPApiConfig } from "../types";
10
10
 
11
11
  const DEFAULT_RETRY_ATTEMPTS = 0; // One try only, no retries
12
12
 
@@ -4,19 +4,19 @@
4
4
  */
5
5
 
6
6
  // REST API Service
7
- export { RestAPIService } from "./rest/rest-api-service.js";
8
- export type { QueryParams } from "./rest/get-query-params.js";
7
+ export { RestAPIService } from "./rest/rest-api-service";
8
+ export type { QueryParams } from "./rest/get-query-params";
9
9
 
10
10
  // GraphQL Service
11
- export { GraphQLService } from "./graphql/graphql-service.js";
12
- export type { GraphQLServerError } from './graphql/types.js';
11
+ export { GraphQLService } from "./graphql/graphql-service";
12
+ export type { GraphQLServerError } from './graphql/types';
13
13
 
14
14
  // OAuth Client
15
- export { OAuthClient } from './oauth-client.js';
16
- export type { OAuthConfig } from './oauth-client.js';
15
+ export { OAuthClient } from './oauth-client';
16
+ export type { OAuthConfig } from './oauth-client';
17
17
 
18
18
  // API Response
19
- export type { APIResponse } from './types.js';
19
+ export type { APIResponse } from './types';
20
20
 
21
21
  // Error classes
22
- export { ErrorHandler, GraphQLError } from './errors.js';
22
+ export { ErrorHandler, GraphQLError } from './errors';
@@ -1,11 +1,11 @@
1
- import { HTTPClient, HTTPClientFactory } from "../../../utils/http-client.js";
1
+ import { HTTPClient, HTTPClientFactory } from "../../../utils/http-client";
2
2
  import {
3
3
  QueryParams,
4
4
  buildLogicalCondition,
5
5
  Pagination,
6
- } from "./get-query-params.js";
7
- import { ErrorHandler } from "../errors.js";
8
- import { APIResponse, ERPApiConfig } from "../types.js";
6
+ } from "./get-query-params";
7
+ import { ErrorHandler } from "../errors";
8
+ import { APIResponse, ERPApiConfig } from "../types";
9
9
 
10
10
  const DEFAULT_RETRY_ATTEMPTS = 0; // One try only, no retries
11
11
  const DEFAULT_PAGINATION_LIMIT = 100; // Reasonable default for most APIs
@@ -1,5 +1,5 @@
1
- import { Pagination } from "./rest/get-query-params.js";
2
- import { GraphQLServerError } from "./graphql/types.js";
1
+ import { Pagination } from "./rest/get-query-params";
2
+ import { GraphQLServerError } from "./graphql/types";
3
3
 
4
4
  /**
5
5
  * Configuration for making API requests to an ERP system.