@machinemetrics/mm-erp-sdk 0.1.8-beta.8 → 0.1.8-beta.9

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 (45) hide show
  1. package/README.md +8 -2
  2. package/dist/{config-qat9zgOl.js → config-cB7h4yvc.js} +2 -2
  3. package/dist/{config-qat9zgOl.js.map → config-cB7h4yvc.js.map} +1 -1
  4. package/dist/{connector-factory-C2czCs9v.js → connector-factory-CKm74_WZ.js} +2 -2
  5. package/dist/{connector-factory-C2czCs9v.js.map → connector-factory-CKm74_WZ.js.map} +1 -1
  6. package/dist/{hashed-cache-manager-CzyFSt2B.js → hashed-cache-manager-B1hPBNnF.js} +4 -4
  7. package/dist/{hashed-cache-manager-CzyFSt2B.js.map → hashed-cache-manager-B1hPBNnF.js.map} +1 -1
  8. package/dist/{index-B9wo8pld.js → index-DCgheVjV.js} +2 -2
  9. package/dist/{index-B9wo8pld.js.map → index-DCgheVjV.js.map} +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/{logger-Db8CkwR6.js → logger-CBDNtsMq.js} +62 -11
  13. package/dist/{logger-Db8CkwR6.js.map → logger-CBDNtsMq.js.map} +1 -1
  14. package/dist/mm-erp-sdk.js +17 -6
  15. package/dist/mm-erp-sdk.js.map +1 -1
  16. package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +4 -4
  17. package/dist/services/data-sync-service/jobs/from-erp.js +4 -4
  18. package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +3 -3
  19. package/dist/services/data-sync-service/jobs/run-migrations.js +1 -1
  20. package/dist/services/data-sync-service/jobs/to-erp.js +3 -3
  21. package/dist/services/mm-api-service/mm-api-service.d.ts +4 -4
  22. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  23. package/dist/services/mm-api-service/types/checkpoint.d.ts +2 -1
  24. package/dist/services/mm-api-service/types/checkpoint.d.ts.map +1 -1
  25. package/dist/services/reporting-service/logger.d.ts.map +1 -1
  26. package/dist/types/erp-connector.d.ts +2 -4
  27. package/dist/types/erp-connector.d.ts.map +1 -1
  28. package/dist/types/erp-types.d.ts +9 -0
  29. package/dist/types/erp-types.d.ts.map +1 -1
  30. package/dist/types/index.d.ts +1 -1
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +3 -2
  33. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  34. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +3 -3
  35. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/index.ts +1 -1
  38. package/src/services/mm-api-service/mm-api-service.ts +4 -4
  39. package/src/services/mm-api-service/types/checkpoint.ts +3 -1
  40. package/src/services/reporting-service/logger.ts +73 -11
  41. package/src/types/erp-connector.ts +2 -5
  42. package/src/types/erp-types.ts +11 -0
  43. package/src/types/index.ts +1 -0
  44. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +3 -2
  45. package/src/utils/standard-process-drivers/standard-process-drivers.ts +3 -3
@@ -1,7 +1,7 @@
1
- import "../../../config-qat9zgOl.js";
2
- import { H as HashedCacheManager } from "../../../hashed-cache-manager-CzyFSt2B.js";
3
- import { S as SQLiteCoordinator } from "../../../index-B9wo8pld.js";
4
- import { l as logger } from "../../../logger-Db8CkwR6.js";
1
+ import "../../../config-cB7h4yvc.js";
2
+ import { H as HashedCacheManager } from "../../../hashed-cache-manager-B1hPBNnF.js";
3
+ import { S as SQLiteCoordinator } from "../../../index-DCgheVjV.js";
4
+ import { l as logger } from "../../../logger-CBDNtsMq.js";
5
5
  logger.level = process.env.LOG_LEVEL || "info";
6
6
  const main = async () => {
7
7
  const cacheManager = new HashedCacheManager();
@@ -1,7 +1,7 @@
1
- import "../../../config-qat9zgOl.js";
2
- import { l as logger } from "../../../logger-Db8CkwR6.js";
3
- import { S as SQLiteCoordinator } from "../../../index-B9wo8pld.js";
4
- import { c as createConnectorFromPath } from "../../../connector-factory-C2czCs9v.js";
1
+ import "../../../config-cB7h4yvc.js";
2
+ import { l as logger } from "../../../logger-CBDNtsMq.js";
3
+ import { S as SQLiteCoordinator } from "../../../index-DCgheVjV.js";
4
+ import { c as createConnectorFromPath } from "../../../connector-factory-CKm74_WZ.js";
5
5
  logger.level = process.env.LOG_LEVEL || "info";
6
6
  const main = async () => {
7
7
  try {
@@ -1,6 +1,6 @@
1
- import "../../../config-qat9zgOl.js";
2
- import { l as logger } from "../../../logger-Db8CkwR6.js";
3
- import { c as createConnectorFromPath } from "../../../connector-factory-C2czCs9v.js";
1
+ import "../../../config-cB7h4yvc.js";
2
+ import { l as logger } from "../../../logger-CBDNtsMq.js";
3
+ import { c as createConnectorFromPath } from "../../../connector-factory-CKm74_WZ.js";
4
4
  logger.level = process.env.LOG_LEVEL || "info";
5
5
  const main = async () => {
6
6
  try {
@@ -1,5 +1,5 @@
1
1
  import knex from "knex";
2
- import { l as logger } from "../../../logger-Db8CkwR6.js";
2
+ import { l as logger } from "../../../logger-CBDNtsMq.js";
3
3
  import { c as config } from "../../../knexfile-1qKKIORB.js";
4
4
  logger.level = process.env.LOG_LEVEL || "info";
5
5
  const db = knex(config.local);
@@ -1,6 +1,6 @@
1
- import "../../../config-qat9zgOl.js";
2
- import { l as logger } from "../../../logger-Db8CkwR6.js";
3
- import { c as createConnectorFromPath } from "../../../connector-factory-C2czCs9v.js";
1
+ import "../../../config-cB7h4yvc.js";
2
+ import { l as logger } from "../../../logger-CBDNtsMq.js";
3
+ import { c as createConnectorFromPath } from "../../../connector-factory-CKm74_WZ.js";
4
4
  logger.level = process.env.LOG_LEVEL || "info";
5
5
  const main = async () => {
6
6
  try {
@@ -1,4 +1,4 @@
1
- import { ERPObjType } from "../../types/erp-types";
1
+ import { ERPObjType, ERPType } from "../../types/erp-types";
2
2
  import { MMReceiveLaborTicket } from "./types/receive-types";
3
3
  import { MMTokenManager } from "./token-mgr";
4
4
  import * as MM_SEND_TYPES from "./types/send-types";
@@ -197,8 +197,8 @@ export declare class MMApiClient {
197
197
  * @param failedTicketRefs The failed labor ticket references
198
198
  * @returns The response from the MM API
199
199
  */
200
- addFailedLaborTicketRefs(system: string, failedTicketRefs: string[]): Promise<MMApiBaseResponse>;
201
- fetchFailedLaborTickets(system: string): Promise<MMReceiveLaborTicket[]>;
200
+ addFailedLaborTicketRefs(system: ERPType, failedTicketRefs: string[]): Promise<MMApiBaseResponse>;
201
+ fetchFailedLaborTickets(system: ERPType): Promise<MMReceiveLaborTicket[]>;
202
202
  /**
203
203
  * Send connector logs to the MM API
204
204
  * @param logEntry Single log entry to send
@@ -219,7 +219,7 @@ export declare class MMApiClient {
219
219
  level: string;
220
220
  message: string;
221
221
  }[]): Promise<MMApiBaseResponse>;
222
- deleteFailedLaborTicketIds(system: string, laborTicketRefs: string[]): Promise<MMApiBaseResponse>;
222
+ deleteFailedLaborTicketIds(system: ERPType, laborTicketRefs: string[]): Promise<MMApiBaseResponse>;
223
223
  /**
224
224
  * Fetch machine groups from the MM API
225
225
  * @returns Promise with the machine groups data
@@ -1 +1 @@
1
- {"version":3,"file":"mm-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/mm-api-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mm-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/mm-api-service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import { ERPType } from "../../../types/erp-types";
1
2
  /**
2
3
  * Represents a checkpoint for a specific system, table, and checkpoint type
3
4
  */
4
5
  export type Checkpoint = {
5
- system: string;
6
+ system: ERPType;
6
7
  table: string;
7
8
  checkpointType: "import" | "export";
8
9
  checkpointValue?: {
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/checkpoint.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/reporting-service/logger.ts"],"names":[],"mappings":"AA+DA,QAAA,MAAM,MAAM,0BAaV,CAAC;AAGH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,SAgChE,CAAC;AAKF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/reporting-service/logger.ts"],"names":[],"mappings":"AA+DA,QAAA,MAAM,MAAM,0BAaV,CAAC;AA0DH,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,SAuChE,CAAC;AAKF,eAAe,MAAM,CAAC"}
@@ -1,14 +1,12 @@
1
1
  import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
2
+ import { ERPType } from "./erp-types";
2
3
  /**
3
4
  * Interface for ERP connectors.
4
5
  *
5
6
  * Required for any connector.
6
7
  */
7
8
  export interface IERPConnector {
8
- /**
9
- * The type of ERP system this connector is for.
10
- */
11
- readonly type: string;
9
+ readonly type: ERPType;
12
10
  /**
13
11
  * Sync data from the ERP system to MM.
14
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
@@ -1,3 +1,12 @@
1
+ export declare enum ERPType {
2
+ INVALID = "INVALID",
3
+ D365 = "D365",
4
+ JOB_BOSS = "JOB_BOSS",
5
+ PROFITKEY = "PROFITKEY",
6
+ PROSHOP = "PROSHOP",
7
+ SYTELINE = "SYTELINE",
8
+ TEMPLATE = "TEMPLATE"
9
+ }
1
10
  export declare enum ERPObjType {
2
11
  RESOURCES = 0,
3
12
  PARTS = 1,
@@ -1 +1 @@
1
- {"version":3,"file":"erp-types.d.ts","sourceRoot":"","sources":["../../src/types/erp-types.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,SAAS,IAAA;IACT,KAAK,IAAA;IACL,cAAc,IAAA;IACd,WAAW,IAAA;IACX,qBAAqB,IAAA;IACrB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,aAAa,IAAA;CAEd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"erp-types.d.ts","sourceRoot":"","sources":["../../src/types/erp-types.ts"],"names":[],"mappings":"AACA,oBAAY,OAAO;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,oBAAY,UAAU;IACpB,SAAS,IAAA;IACT,KAAK,IAAA;IACL,cAAc,IAAA;IACd,WAAW,IAAA;IACX,qBAAqB,IAAA;IACrB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,aAAa,IAAA;CAEd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -3,5 +3,5 @@
3
3
  * This file re-exports all type definitions that are part of the public API.
4
4
  */
5
5
  export type { IERPConnector } from "./erp-connector";
6
- export type { ERPObjType, ERPPagination, ERPResponse, ERPObject, } from "./erp-types";
6
+ export type { ERPType, ERPObjType, ERPPagination, ERPResponse, ERPObject, } from "./erp-types";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EACV,OAAO,EACP,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ERPType } from "../../types/erp-types";
1
2
  import { IERPLaborTicketHandler } from "../../types/erp-connector";
2
3
  /**
3
4
  * Handles synchronization of labor tickets between MachineMetrics and ERP systems
@@ -6,11 +7,11 @@ export declare class LaborTicketERPSynchronizer {
6
7
  /**
7
8
  * Synchronizes updated labor tickets from MachineMetrics to an ERP system
8
9
  */
9
- static syncToERP(connectorType: string, connector: IERPLaborTicketHandler): Promise<void>;
10
+ static syncToERP(connectorType: ERPType, connector: IERPLaborTicketHandler): Promise<void>;
10
11
  /**
11
12
  * Retries labor tickets that have failed to be created or updated in the ERP during the sync
12
13
  */
13
- static retryFailed(connectorType: string, connector: IERPLaborTicketHandler): Promise<void>;
14
+ static retryFailed(connectorType: ERPType, connector: IERPLaborTicketHandler): Promise<void>;
14
15
  private static writeLaborTicketIdToMM;
15
16
  private static processLaborTicket;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"labor-ticket-erp-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAOnE;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;WACU,SAAS,CACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA4GhB;;OAEG;WACU,WAAW,CACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;mBA+DK,sBAAsB;mBAetB,kBAAkB;CAkDxC"}
1
+ {"version":3,"file":"labor-ticket-erp-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAOnE;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;WACU,SAAS,CACpB,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA4GhB;;OAEG;WACU,WAAW,CACtB,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;mBA+DK,sBAAsB;mBAetB,kBAAkB;CAkDxC"}
@@ -1,4 +1,4 @@
1
- import { ERPObjType } from "../../types/erp-types";
1
+ import { ERPType, ERPObjType } from "../../types/erp-types";
2
2
  import { IERPLaborTicketHandler } from "../../types/erp-connector";
3
3
  import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager";
4
4
  import { IToRESTApiObject, MMSendWorkOrderBatch } from "../../services/mm-api-service";
@@ -49,7 +49,7 @@ export declare class StandardProcessDrivers {
49
49
  * updates the labor ticket id in MM on newly created labor tickets,
50
50
  * and saves the checkpoint
51
51
  */
52
- static syncLaborTicketsToERP(connectorType: string, connector: IERPLaborTicketHandler): Promise<void>;
52
+ static syncLaborTicketsToERP(connectorType: ERPType, connector: IERPLaborTicketHandler): Promise<void>;
53
53
  /**
54
54
  * Retries labor tickets that have failed to be created or updated in the ERP during the sync:
55
55
  *
@@ -57,7 +57,7 @@ export declare class StandardProcessDrivers {
57
57
  * If the labor ticket is successfully created or updated, it is added to the list of successful labor ticket ids,
58
58
  * which are then deleted from the list of failed labor ticket ids.
59
59
  */
60
- static retryFailedLaborTickets(connectorType: string, connector: IERPLaborTicketHandler): Promise<void>;
60
+ static retryFailedLaborTickets(connectorType: ERPType, connector: IERPLaborTicketHandler): Promise<void>;
61
61
  /**
62
62
  * Writes a batch of records to MM for a specific entity type by:
63
63
  * 1. Deduplicating against cached records (localDedupeCount)
@@ -1 +1 @@
1
- {"version":3,"file":"standard-process-drivers.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/standard-process-drivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACvF,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EAKrB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IACzC,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IACzC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,WAAW,EAAE,KAAK,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;KACtC,CAAC,CAAC;gBAES,OAAO,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;SACtC,CAAC,CAAC;KACJ;CAUF;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;WACU,qBAAqB,CAChC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;OAMG;WACU,uBAAuB,CAClC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwEG;WACU,iBAAiB,CAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAAE,EAC7B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC,uBAAuB,CAAC;IAQnC;;;;;;;;;;;;;;;OAeG;WACU,uBAAuB,CAClC,cAAc,EAAE,oBAAoB,EACpC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC;QACT,KAAK,EAAE,uBAAuB,CAAC;QAC/B,cAAc,EAAE,uBAAuB,CAAC;QACxC,UAAU,EAAE,uBAAuB,CAAC;QACpC,mBAAmB,EAAE,uBAAuB,CAAC;KAC9C,CAAC;IAuCF;;;;;;;;;;;;;;OAcG;WACU,+BAA+B,CAC1C,aAAa,EAAE,GAAG,EAAE,EACpB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC;QACT,KAAK,EAAE,uBAAuB,CAAC;QAC/B,cAAc,EAAE,uBAAuB,CAAC;QACxC,UAAU,EAAE,uBAAuB,CAAC;QACpC,mBAAmB,EAAE,uBAAuB,CAAC;KAC9C,CAAC;CAkMH"}
1
+ {"version":3,"file":"standard-process-drivers.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/standard-process-drivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACvF,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EAKrB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IACzC,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IACzC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,WAAW,EAAE,KAAK,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;KACtC,CAAC,CAAC;gBAES,OAAO,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;SACtC,CAAC,CAAC;KACJ;CAUF;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;WACU,qBAAqB,CAChC,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;OAMG;WACU,uBAAuB,CAClC,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwEG;WACU,iBAAiB,CAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAAE,EAC7B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC,uBAAuB,CAAC;IAQnC;;;;;;;;;;;;;;;OAeG;WACU,uBAAuB,CAClC,cAAc,EAAE,oBAAoB,EACpC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC;QACT,KAAK,EAAE,uBAAuB,CAAC;QAC/B,cAAc,EAAE,uBAAuB,CAAC;QACxC,UAAU,EAAE,uBAAuB,CAAC;QACpC,mBAAmB,EAAE,uBAAuB,CAAC;KAC9C,CAAC;IAuCF;;;;;;;;;;;;;;OAcG;WACU,+BAA+B,CAC1C,aAAa,EAAE,GAAG,EAAE,EACpB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAC1C,OAAO,CAAC;QACT,KAAK,EAAE,uBAAuB,CAAC;QAC/B,cAAc,EAAE,uBAAuB,CAAC;QACxC,UAAU,EAAE,uBAAuB,CAAC;QACpC,mBAAmB,EAAE,uBAAuB,CAAC;KAC9C,CAAC;CAkMH"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@machinemetrics/mm-erp-sdk",
3
3
  "description": "A library for syncing data between MachineMetrics and ERP systems",
4
- "version": "0.1.8-beta.8",
4
+ "version": "0.1.8-beta.9",
5
5
  "license": "MIT",
6
6
  "author": "machinemetrics",
7
7
  "main": "dist/mm-erp-sdk.js",
package/src/index.ts CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  // Core interfaces and types
7
7
  export type { IERPConnector } from "./types/erp-connector";
8
- export { ERPObjType } from "./types/erp-types";
8
+ export { ERPType, ERPObjType } from "./types/erp-types";
9
9
  export type { ERPPagination, ERPResponse, ERPObject } from "./types/erp-types";
10
10
 
11
11
  // Configuration interfaces
@@ -1,5 +1,5 @@
1
1
  import logger from "../reporting-service/logger";
2
- import { ERPObjType } from "../../types/erp-types";
2
+ import { ERPObjType, ERPType } from "../../types/erp-types";
3
3
  import { MMReceiveLaborTicket } from "./types/receive-types";
4
4
  import { MMTokenManager } from "./token-mgr";
5
5
  import * as MM_SEND_TYPES from "./types/send-types";
@@ -624,7 +624,7 @@ export class MMApiClient {
624
624
  * @returns The response from the MM API
625
625
  */
626
626
  async addFailedLaborTicketRefs(
627
- system: string,
627
+ system: ERPType,
628
628
  failedTicketRefs: string[]
629
629
  ): Promise<MMApiBaseResponse> {
630
630
  return await this.postData(
@@ -635,7 +635,7 @@ export class MMApiClient {
635
635
  }
636
636
 
637
637
  async fetchFailedLaborTickets(
638
- system: string
638
+ system: ERPType
639
639
  ): Promise<MMReceiveLaborTicket[]> {
640
640
  const failedTickets = (await this.getData(
641
641
  `${this.resourceURLs[ERPObjType.LABOR_TICKETS]}/failed`,
@@ -675,7 +675,7 @@ export class MMApiClient {
675
675
  }
676
676
 
677
677
  async deleteFailedLaborTicketIds(
678
- system: string,
678
+ system: ERPType,
679
679
  laborTicketRefs: string[]
680
680
  ): Promise<MMApiBaseResponse> {
681
681
  return await this.postData(
@@ -1,8 +1,10 @@
1
+ import { ERPType } from "../../../types/erp-types";
2
+
1
3
  /**
2
4
  * Represents a checkpoint for a specific system, table, and checkpoint type
3
5
  */
4
6
  export type Checkpoint = {
5
- system: string;
7
+ system: ERPType;
6
8
  table: string;
7
9
  checkpointType: "import" | "export";
8
10
  checkpointValue?: {
@@ -76,22 +76,84 @@ const logger = createLogger({
76
76
  ],
77
77
  });
78
78
 
79
+ // Helper function to create a file transport with shared configuration
80
+ const createFileTransport = (): DailyRotateFile => {
81
+ return new DailyRotateFile({
82
+ filename: path.join(logDirectory, "%DATE%.log"),
83
+ datePattern: "YYYY-MM-DD",
84
+ zippedArchive: true,
85
+ maxSize: "20m",
86
+ maxFiles: "14d",
87
+ format: logFormat,
88
+ });
89
+ };
90
+
91
+ // Rotate mitigation helper: attaches rotate handler to transport and recursively attaches to replacements
92
+ function attachRotateMitigation(
93
+ transport: DailyRotateFile,
94
+ opts: { logLevel: string; nodeEnv: string }
95
+ ) {
96
+ const { logLevel, nodeEnv } = opts;
97
+ let isRefreshing = false;
98
+ transport.on("rotate", (_old: string, _new: string) => {
99
+ if (isRefreshing) return;
100
+ isRefreshing = true;
101
+ let removalTimer: NodeJS.Timeout | null = null;
102
+
103
+ // Create replacement first to avoid any logging gap
104
+ const next = createFileTransport();
105
+ // When the new file is created, remove the old transport
106
+ next.on("new", () => {
107
+ if (removalTimer) {
108
+ clearTimeout(removalTimer);
109
+ removalTimer = null;
110
+ }
111
+ try {
112
+ logger.remove(transport);
113
+ } catch {}
114
+ isRefreshing = false;
115
+ });
116
+ attachRotateMitigation(next, opts);
117
+ logger.add(next);
118
+
119
+ // Fallback: if the "new" event doesn't fire, remove the old transport after a grace period
120
+ const REMOVAL_GRACE_MS = 30000;
121
+ removalTimer = setTimeout(() => {
122
+ try {
123
+ logger.remove(transport);
124
+ } catch {}
125
+ isRefreshing = false;
126
+ removalTimer = null;
127
+ }, REMOVAL_GRACE_MS);
128
+
129
+ // Keep console and other transports intact; do not silence or clear
130
+ logger.level = logLevel;
131
+ });
132
+ }
133
+
79
134
  // Function to reconfigure the logger once CoreConfiguration is available
80
135
  export const configureLogger = (logLevel: string, nodeEnv: string) => {
81
- // Remove existing transports
136
+ // Remove existing transports (safely): close any DailyRotateFile streams first
137
+ try {
138
+ const existingFileTransports = (logger.transports || []).filter(
139
+ (t: any) => t instanceof DailyRotateFile
140
+ );
141
+ for (const t of existingFileTransports) {
142
+ const s = (t as any).logStream;
143
+ if (s && typeof s.end === "function") {
144
+ try {
145
+ s.end();
146
+ } catch {}
147
+ }
148
+ }
149
+ } catch {}
150
+
82
151
  logger.clear();
83
152
 
84
153
  // Add file transport
85
- logger.add(
86
- new DailyRotateFile({
87
- filename: path.join(logDirectory, "%DATE%.log"),
88
- datePattern: "YYYY-MM-DD",
89
- zippedArchive: true,
90
- maxSize: "20m",
91
- maxFiles: "14d",
92
- format: logFormat,
93
- })
94
- );
154
+ const fileTransport = createFileTransport();
155
+ attachRotateMitigation(fileTransport, { logLevel, nodeEnv });
156
+ logger.add(fileTransport);
95
157
 
96
158
  // Add console transport in non-production environments
97
159
  if (nodeEnv !== "production") {
@@ -1,4 +1,5 @@
1
1
  import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
2
+ import { ERPType } from "./erp-types";
2
3
 
3
4
  /**
4
5
  * Interface for ERP connectors.
@@ -6,11 +7,7 @@ import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-t
6
7
  * Required for any connector.
7
8
  */
8
9
  export interface IERPConnector {
9
-
10
- /**
11
- * The type of ERP system this connector is for.
12
- */
13
- readonly type: string;
10
+ readonly type: ERPType;
14
11
 
15
12
  /**
16
13
  * Sync data from the ERP system to MM.
@@ -1,3 +1,14 @@
1
+ // TO DO: This will change once the SDK is refactored into its own repo
2
+ export enum ERPType {
3
+ INVALID = "INVALID",
4
+ D365 = "D365",
5
+ JOB_BOSS = "JOB_BOSS",
6
+ PROFITKEY = "PROFITKEY",
7
+ PROSHOP = "PROSHOP",
8
+ SYTELINE = "SYTELINE",
9
+ TEMPLATE = "TEMPLATE",
10
+ }
11
+
1
12
  export enum ERPObjType {
2
13
  RESOURCES,
3
14
  PARTS,
@@ -5,6 +5,7 @@
5
5
 
6
6
  export type { IERPConnector } from "./erp-connector";
7
7
  export type {
8
+ ERPType,
8
9
  ERPObjType,
9
10
  ERPPagination,
10
11
  ERPResponse,
@@ -1,3 +1,4 @@
1
+ import { ERPType } from "../../types/erp-types";
1
2
  import { IERPLaborTicketHandler } from "../../types/erp-connector";
2
3
  import { MMApiClient } from "../../services/mm-api-service/mm-api-service";
3
4
  import { MMReceiveLaborTicket } from "../../services/mm-api-service/types/receive-types";
@@ -13,7 +14,7 @@ export class LaborTicketERPSynchronizer {
13
14
  * Synchronizes updated labor tickets from MachineMetrics to an ERP system
14
15
  */
15
16
  static async syncToERP(
16
- connectorType: string,
17
+ connectorType: ERPType,
17
18
  connector: IERPLaborTicketHandler
18
19
  ): Promise<void> {
19
20
  try {
@@ -127,7 +128,7 @@ export class LaborTicketERPSynchronizer {
127
128
  * Retries labor tickets that have failed to be created or updated in the ERP during the sync
128
129
  */
129
130
  static async retryFailed(
130
- connectorType: string,
131
+ connectorType: ERPType,
131
132
  connector: IERPLaborTicketHandler
132
133
  ): Promise<void> {
133
134
  try {
@@ -1,4 +1,4 @@
1
- import { ERPObjType } from "../../types/erp-types";
1
+ import { ERPType, ERPObjType } from "../../types/erp-types";
2
2
  import { IERPLaborTicketHandler } from "../../types/erp-connector";
3
3
  import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager";
4
4
  import {
@@ -72,7 +72,7 @@ export class StandardProcessDrivers {
72
72
  * and saves the checkpoint
73
73
  */
74
74
  static async syncLaborTicketsToERP(
75
- connectorType: string,
75
+ connectorType: ERPType,
76
76
  connector: IERPLaborTicketHandler
77
77
  ): Promise<void> {
78
78
  return LaborTicketERPSynchronizer.syncToERP(connectorType, connector);
@@ -86,7 +86,7 @@ export class StandardProcessDrivers {
86
86
  * which are then deleted from the list of failed labor ticket ids.
87
87
  */
88
88
  static async retryFailedLaborTickets(
89
- connectorType: string,
89
+ connectorType: ERPType,
90
90
  connector: IERPLaborTicketHandler
91
91
  ): Promise<void> {
92
92
  return LaborTicketERPSynchronizer.retryFailed(connectorType, connector);