@machinemetrics/mm-erp-sdk 0.2.0-beta.2 → 0.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/index.d.ts +42 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +19 -0
- package/dist/knexfile.js.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.d.ts +4 -0
- package/dist/migrations/20241015162631_create_cache_table.d.ts.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.js +11 -15
- package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +4 -0
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +1 -0
- package/dist/migrations/20241015162632_create_sdk_cache_table.js +11 -15
- package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +4 -0
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +1 -0
- package/dist/migrations/20250103162631_create_record_tracking_table.js +14 -15
- package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
- package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
- package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
- package/dist/services/caching-service/batch-cache-manager.js +84 -0
- package/dist/services/caching-service/batch-cache-manager.js.map +1 -0
- package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
- package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
- package/dist/services/caching-service/hashed-cache-manager.js +223 -0
- package/dist/services/caching-service/hashed-cache-manager.js.map +1 -0
- package/dist/services/caching-service/index.d.ts +1 -1
- package/dist/services/caching-service/index.d.ts.map +1 -1
- package/dist/services/caching-service/index.js +2 -0
- package/dist/services/caching-service/index.js.map +1 -0
- package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
- package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
- package/dist/services/caching-service/record-tracking-manager.js +28 -0
- package/dist/services/caching-service/record-tracking-manager.js.map +1 -0
- package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
- package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
- package/dist/services/data-sync-service/configuration-manager.js +163 -0
- package/dist/services/data-sync-service/configuration-manager.js.map +1 -0
- package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
- package/dist/services/data-sync-service/data-sync-service.js +95 -0
- package/dist/services/data-sync-service/data-sync-service.js.map +1 -0
- package/dist/services/data-sync-service/index.d.ts +3 -3
- package/dist/services/data-sync-service/index.d.ts.map +1 -1
- package/dist/services/data-sync-service/index.js +10 -0
- package/dist/services/data-sync-service/index.js.map +1 -0
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +42 -40
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
- package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/from-erp.js +50 -37
- package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +38 -36
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
- package/dist/services/data-sync-service/jobs/run-migrations.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/run-migrations.js +24 -22
- package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
- package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/to-erp.js +49 -49
- package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
- package/dist/services/erp-api-services/errors.d.ts +1 -1
- package/dist/services/erp-api-services/errors.d.ts.map +1 -1
- package/dist/services/erp-api-services/errors.js +83 -0
- package/dist/services/erp-api-services/errors.js.map +1 -0
- package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
- package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
- package/dist/services/erp-api-services/graphql/graphql-service.js +102 -0
- package/dist/services/erp-api-services/graphql/graphql-service.js.map +1 -0
- package/dist/services/erp-api-services/graphql/types.js +6 -0
- package/dist/services/erp-api-services/graphql/types.js.map +1 -0
- package/dist/services/erp-api-services/index.d.ts +8 -8
- package/dist/services/erp-api-services/index.d.ts.map +1 -1
- package/dist/services/erp-api-services/index.js +13 -0
- package/dist/services/erp-api-services/index.js.map +1 -0
- package/dist/services/erp-api-services/oauth-client.js +41 -0
- package/dist/services/erp-api-services/oauth-client.js.map +1 -0
- package/dist/services/erp-api-services/rest/get-query-params.js +23 -0
- package/dist/services/erp-api-services/rest/get-query-params.js.map +1 -0
- package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
- package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
- package/dist/services/erp-api-services/rest/rest-api-service.js +163 -0
- package/dist/services/erp-api-services/rest/rest-api-service.js.map +1 -0
- package/dist/services/erp-api-services/types.d.ts +2 -2
- package/dist/services/erp-api-services/types.d.ts.map +1 -1
- package/dist/services/erp-api-services/types.js +2 -0
- package/dist/services/erp-api-services/types.js.map +1 -0
- package/dist/services/mm-api-service/index.d.ts +6 -13
- package/dist/services/mm-api-service/index.d.ts.map +1 -1
- package/dist/services/mm-api-service/index.js +15 -0
- package/dist/services/mm-api-service/index.js.map +1 -0
- package/dist/services/mm-api-service/mm-api-service.d.ts +7 -13
- package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
- package/dist/services/mm-api-service/mm-api-service.js +519 -0
- package/dist/services/mm-api-service/mm-api-service.js.map +1 -0
- package/dist/services/mm-api-service/token-mgr.js +113 -0
- package/dist/services/mm-api-service/token-mgr.js.map +1 -0
- package/dist/services/mm-api-service/types/checkpoint.js +2 -0
- package/dist/services/mm-api-service/types/checkpoint.js.map +1 -0
- package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
- package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
- package/dist/services/mm-api-service/types/entity-transformer.js +186 -0
- package/dist/services/mm-api-service/types/entity-transformer.js.map +1 -0
- package/dist/services/mm-api-service/types/mm-response-interfaces.js +34 -0
- package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -0
- package/dist/services/mm-api-service/types/receive-types.d.ts +0 -3
- package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
- package/dist/services/mm-api-service/types/receive-types.js +55 -0
- package/dist/services/mm-api-service/types/receive-types.js.map +1 -0
- package/dist/services/mm-api-service/types/send-types.js +337 -0
- package/dist/services/mm-api-service/types/send-types.js.map +1 -0
- package/dist/services/psql-erp-service/configuration.js +2 -0
- package/dist/services/psql-erp-service/configuration.js.map +1 -0
- package/dist/services/psql-erp-service/index.d.ts +3 -3
- package/dist/services/psql-erp-service/index.d.ts.map +1 -1
- package/dist/services/psql-erp-service/index.js +10 -0
- package/dist/services/psql-erp-service/index.js.map +1 -0
- package/dist/services/psql-erp-service/internal/types/psql-types.js +5 -0
- package/dist/services/psql-erp-service/internal/types/psql-types.js.map +1 -0
- package/dist/services/psql-erp-service/psql-helpers.js +99 -0
- package/dist/services/psql-erp-service/psql-helpers.js.map +1 -0
- package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
- package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
- package/dist/services/psql-erp-service/psql-service.js +187 -0
- package/dist/services/psql-erp-service/psql-service.js.map +1 -0
- package/dist/services/reporting-service/index.d.ts +1 -1
- package/dist/services/reporting-service/index.d.ts.map +1 -1
- package/dist/services/reporting-service/index.js +5 -0
- package/dist/services/reporting-service/index.js.map +1 -0
- package/dist/services/reporting-service/logger.d.ts.map +1 -1
- package/dist/services/reporting-service/logger.js +221 -0
- package/dist/services/reporting-service/logger.js.map +1 -0
- package/dist/services/sql-server-erp-service/configuration.js +2 -0
- package/dist/services/sql-server-erp-service/configuration.js.map +1 -0
- package/dist/services/sql-server-erp-service/index.d.ts +3 -3
- package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/index.js +11 -0
- package/dist/services/sql-server-erp-service/index.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +50 -0
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/sql-server-config.js +40 -0
- package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +36 -0
- package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +2 -0
- package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +1 -0
- package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
- package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/sql-server-helpers.js +66 -0
- package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +1 -0
- package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
- package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/sql-server-service.js +154 -0
- package/dist/services/sql-server-erp-service/sql-server-service.js.map +1 -0
- package/dist/services/sql-server-erp-service/types/sql-input-param.js +2 -0
- package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +1 -0
- package/dist/services/sqlite-service/index.d.ts +1 -1
- package/dist/services/sqlite-service/index.d.ts.map +1 -1
- package/dist/services/sqlite-service/index.js +2 -0
- package/dist/services/sqlite-service/index.js.map +1 -0
- package/dist/services/sqlite-service/sqlite-coordinator.js +60 -0
- package/dist/services/sqlite-service/sqlite-coordinator.js.map +1 -0
- package/dist/types/erp-connector.d.ts +9 -2
- package/dist/types/erp-connector.d.ts.map +1 -1
- package/dist/types/erp-connector.js +2 -0
- package/dist/types/erp-connector.js.map +1 -0
- package/dist/types/erp-types.js +13 -0
- package/dist/types/erp-types.js.map +1 -0
- package/dist/types/flattened-work-order.d.ts +99 -0
- package/dist/types/flattened-work-order.d.ts.map +1 -0
- package/dist/types/flattened-work-order.js +2 -0
- package/dist/types/flattened-work-order.js.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/application-initializer.js +55 -0
- package/dist/utils/application-initializer.js.map +1 -0
- package/dist/utils/cleanup-numbers.js +6 -0
- package/dist/utils/cleanup-numbers.js.map +1 -0
- package/dist/utils/connector-factory.d.ts +1 -1
- package/dist/utils/connector-factory.d.ts.map +1 -1
- package/dist/utils/connector-factory.js +34 -0
- package/dist/utils/connector-factory.js.map +1 -0
- package/dist/utils/connector-log/log-deduper.d.ts +1 -1
- package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
- package/dist/utils/connector-log/log-deduper.js +240 -0
- package/dist/utils/connector-log/log-deduper.js.map +1 -0
- package/dist/utils/connector-log/mm-connector-logger-example.d.ts +1 -0
- package/dist/utils/connector-log/mm-connector-logger-example.js +88 -0
- package/dist/utils/connector-log/mm-connector-logger-example.js.map +1 -0
- package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
- package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
- package/dist/utils/connector-log/mm-connector-logger.js +151 -0
- package/dist/utils/connector-log/mm-connector-logger.js.map +1 -0
- package/dist/utils/data-transformation.js +38 -0
- package/dist/utils/data-transformation.js.map +1 -0
- package/dist/utils/env.d.ts +8 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +58 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/erp-timezone-utils.d.ts +20 -0
- package/dist/utils/erp-timezone-utils.d.ts.map +1 -0
- package/dist/utils/erp-timezone-utils.js +75 -0
- package/dist/utils/erp-timezone-utils.js.map +1 -0
- package/dist/utils/erp-type-from-entity.d.ts +1 -1
- package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
- package/dist/utils/erp-type-from-entity.js +6 -0
- package/dist/utils/erp-type-from-entity.js.map +1 -0
- package/dist/utils/error-utils.js +21 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/http-client.js +189 -0
- package/dist/utils/http-client.js.map +1 -0
- package/dist/utils/index.d.ts +34 -38
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +66 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/local-data-store/database-lock.js +68 -0
- package/dist/utils/local-data-store/database-lock.js.map +1 -0
- package/dist/utils/local-data-store/jobs-shared-data.d.ts +2 -0
- package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
- package/dist/utils/local-data-store/jobs-shared-data.js +118 -0
- package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -0
- package/dist/utils/mm-labor-ticket-helpers.d.ts +4 -5
- package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
- package/dist/utils/mm-labor-ticket-helpers.js +28 -0
- package/dist/utils/mm-labor-ticket-helpers.js.map +1 -0
- package/dist/utils/removeExtraneousFields.d.ts +1 -1
- package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
- package/dist/utils/removeExtraneousFields.js +16 -0
- package/dist/utils/removeExtraneousFields.js.map +1 -0
- package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
- package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
- package/dist/utils/removeIdFieldFromPayload.js +16 -0
- package/dist/utils/removeIdFieldFromPayload.js.map +1 -0
- package/dist/utils/resource-group.d.ts +1 -1
- package/dist/utils/resource-group.d.ts.map +1 -1
- package/dist/utils/resource-group.js +59 -0
- package/dist/utils/resource-group.js.map +1 -0
- package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
- package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/error-processor.js +262 -0
- package/dist/utils/standard-process-drivers/error-processor.js.map +1 -0
- package/dist/utils/standard-process-drivers/index.d.ts +3 -3
- package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/index.js +4 -0
- package/dist/utils/standard-process-drivers/index.js.map +1 -0
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +16 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +299 -0
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -0
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +11 -5
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/mm-entity-processor.js +174 -0
- package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +1 -0
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +12 -6
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/standard-process-drivers.js +333 -0
- package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -0
- package/dist/utils/time-utils.d.ts.map +1 -1
- package/dist/utils/time-utils.js +103 -0
- package/dist/utils/time-utils.js.map +1 -0
- package/dist/utils/timezone.js +105 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/trimObjectValues.js +11 -0
- package/dist/utils/trimObjectValues.js.map +1 -0
- package/dist/utils/uniqueRows.js +35 -0
- package/dist/utils/uniqueRows.js.map +1 -0
- package/package.json +8 -10
- package/src/index.ts +42 -45
- package/src/knexfile.ts +1 -0
- package/src/services/caching-service/batch-cache-manager.ts +2 -2
- package/src/services/caching-service/hashed-cache-manager.ts +5 -5
- package/src/services/caching-service/index.ts +1 -1
- package/src/services/caching-service/record-tracking-manager.ts +2 -2
- package/src/services/data-sync-service/configuration-manager.ts +52 -39
- package/src/services/data-sync-service/data-sync-service.ts +10 -19
- package/src/services/data-sync-service/index.ts +3 -3
- package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +5 -4
- package/src/services/data-sync-service/jobs/from-erp.ts +12 -6
- package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +4 -3
- package/src/services/data-sync-service/jobs/run-migrations.ts +4 -3
- package/src/services/data-sync-service/jobs/to-erp.ts +5 -14
- package/src/services/erp-api-services/errors.ts +3 -3
- package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
- package/src/services/erp-api-services/index.ts +8 -8
- package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
- package/src/services/erp-api-services/types.ts +2 -2
- package/src/services/mm-api-service/index.ts +6 -14
- package/src/services/mm-api-service/mm-api-service.ts +13 -30
- package/src/services/mm-api-service/token-mgr.ts +4 -4
- package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
- package/src/services/mm-api-service/types/receive-types.ts +0 -1
- package/src/services/psql-erp-service/index.ts +3 -3
- package/src/services/psql-erp-service/psql-service.ts +4 -4
- package/src/services/reporting-service/index.ts +1 -1
- package/src/services/reporting-service/logger.ts +116 -81
- package/src/services/sql-server-erp-service/index.ts +3 -3
- package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
- package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
- package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
- package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
- package/src/services/sqlite-service/index.ts +1 -1
- package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
- package/src/types/erp-connector.ts +9 -2
- package/src/types/flattened-work-order.ts +108 -0
- package/src/types/index.ts +10 -2
- package/src/utils/application-initializer.ts +5 -5
- package/src/utils/connector-factory.ts +2 -2
- package/src/utils/connector-log/log-deduper.ts +2 -2
- package/src/utils/connector-log/mm-connector-logger.ts +3 -3
- package/src/utils/env.ts +75 -0
- package/src/utils/erp-timezone-utils.ts +99 -0
- package/src/utils/erp-type-from-entity.ts +1 -1
- package/src/utils/http-client.ts +5 -4
- package/src/utils/index.ts +38 -39
- package/src/utils/local-data-store/database-lock.ts +1 -1
- package/src/utils/local-data-store/jobs-shared-data.ts +2 -0
- package/src/utils/mm-labor-ticket-helpers.ts +12 -9
- package/src/utils/removeExtraneousFields.ts +1 -1
- package/src/utils/removeIdFieldFromPayload.ts +1 -1
- package/src/utils/resource-group.ts +2 -2
- package/src/utils/standard-process-drivers/error-processor.ts +5 -5
- package/src/utils/standard-process-drivers/index.ts +3 -3
- package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +225 -69
- package/src/utils/standard-process-drivers/mm-entity-processor.ts +14 -8
- package/src/utils/standard-process-drivers/standard-process-drivers.ts +39 -25
- package/src/utils/time-utils.ts +14 -3
- package/src/utils/timezone.ts +2 -2
- package/dist/config-CvA-mFWF.js +0 -418
- package/dist/config-CvA-mFWF.js.map +0 -1
- package/dist/connector-factory-BPm2GVVF.js +0 -30
- package/dist/connector-factory-BPm2GVVF.js.map +0 -1
- package/dist/hashed-cache-manager-B15NN8hK.js +0 -322
- package/dist/hashed-cache-manager-B15NN8hK.js.map +0 -1
- package/dist/index-D8qO1NyK.js +0 -192
- package/dist/index-D8qO1NyK.js.map +0 -1
- package/dist/knexfile-Bng2Ru9c.js +0 -20
- package/dist/knexfile-Bng2Ru9c.js.map +0 -1
- package/dist/logger-BWw0_z9q.js +0 -17557
- package/dist/logger-BWw0_z9q.js.map +0 -1
- package/dist/mm-erp-sdk.js +0 -4978
- package/dist/mm-erp-sdk.js.map +0 -1
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +0 -30
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +0 -1
- package/dist/services/mm-api-service/company-info.d.ts +0 -13
- package/dist/services/mm-api-service/company-info.d.ts.map +0 -1
- package/dist/services/nats-service/nats-service.d.ts +0 -114
- package/dist/services/nats-service/nats-service.d.ts.map +0 -1
- package/dist/services/nats-service/test-nats-subscriber.d.ts +0 -6
- package/dist/services/nats-service/test-nats-subscriber.d.ts.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -19
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/src/services/data-sync-service/nats-labor-ticket-listener.ts +0 -341
- package/src/services/mm-api-service/company-info.ts +0 -87
- package/src/services/nats-service/nats-service.ts +0 -351
- package/src/services/nats-service/test-nats-subscriber.ts +0 -96
- package/src/utils/error-formatter.ts +0 -205
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
|
-
import { configureLogger } from "../reporting-service/logger";
|
|
3
|
-
import { SQLServerConfiguration } from "../sql-server-erp-service/configuration";
|
|
2
|
+
import { configureLogger } from "../reporting-service/logger.js";
|
|
3
|
+
import { SQLServerConfiguration } from "../sql-server-erp-service/configuration.js";
|
|
4
|
+
import { getEnvBoolean, getEnvNumber, getEnvString } from "../../utils/env.js";
|
|
4
5
|
|
|
5
6
|
export class CoreConfiguration {
|
|
6
7
|
private static instance: CoreConfiguration;
|
|
@@ -29,58 +30,66 @@ export class CoreConfiguration {
|
|
|
29
30
|
public readonly cacheExpirationCheckInterval: string;
|
|
30
31
|
|
|
31
32
|
private constructor() {
|
|
32
|
-
this.logLevel =
|
|
33
|
-
this.erpSystem =
|
|
34
|
-
this.nodeEnv =
|
|
33
|
+
this.logLevel = getEnvString("LOG_LEVEL", "info");
|
|
34
|
+
this.erpSystem = getEnvString("ERP_SYSTEM", "template");
|
|
35
|
+
this.nodeEnv = getEnvString("NODE_ENV", "development");
|
|
35
36
|
|
|
36
37
|
//#region MM API (aka "Mapping") Service
|
|
37
38
|
/**
|
|
38
39
|
* MM ERP Service REST API URL (typically https://erp-api.svc.machinemetrics.com)
|
|
39
40
|
*/
|
|
40
|
-
this.mmERPSvcApiBaseUrl =
|
|
41
|
+
this.mmERPSvcApiBaseUrl = getEnvString("MM_MAPPING_SERVICE_URL", "");
|
|
41
42
|
|
|
42
43
|
/**
|
|
43
44
|
* MM REST API URL (typically https://api.machinemetrics.com)
|
|
44
45
|
*/
|
|
45
46
|
console.log("=== CONFIG DEBUG ===");
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
const mmAuthSvcUrl = getEnvString("MM_MAPPING_AUTH_SERVICE_URL", "");
|
|
48
|
+
console.log("MM_MAPPING_AUTH_SERVICE_URL env var:", mmAuthSvcUrl);
|
|
49
|
+
this.mmApiBaseUrl = mmAuthSvcUrl;
|
|
48
50
|
console.log("mmApiBaseUrl set to:", this.mmApiBaseUrl);
|
|
49
51
|
console.log("=== END CONFIG DEBUG ===");
|
|
50
52
|
|
|
51
53
|
/**
|
|
52
54
|
* Company Auth Token
|
|
53
55
|
*/
|
|
54
|
-
this.mmApiAuthToken =
|
|
56
|
+
this.mmApiAuthToken = getEnvString("MM_MAPPING_SERVICE_TOKEN", "");
|
|
55
57
|
|
|
56
58
|
/**
|
|
57
59
|
* Number of retry attempts for MM API calls
|
|
58
60
|
*/
|
|
59
|
-
this.mmApiRetryAttempts =
|
|
61
|
+
this.mmApiRetryAttempts = getEnvNumber("RETRY_ATTEMPTS", 0);
|
|
60
62
|
//#endregion MM API (aka "Mapping") Service
|
|
61
63
|
|
|
62
64
|
/**
|
|
63
65
|
* Default pagination limit for ERP API
|
|
64
66
|
*/
|
|
65
|
-
this.erpApiPagingLimit =
|
|
67
|
+
this.erpApiPagingLimit = getEnvNumber("ERP_PAGINATION_LIMIT", 0);
|
|
66
68
|
//#endregion ERP API Service
|
|
67
69
|
|
|
68
70
|
/**
|
|
69
71
|
* For how to define the intervals, see Bree's documentation: https://github.com/breejs/bree
|
|
70
72
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.
|
|
77
|
-
|
|
73
|
+
const pollInterval = getEnvString("POLL_INTERVAL", "");
|
|
74
|
+
this.fromErpInterval = getEnvString(
|
|
75
|
+
"FROM_ERP_INTERVAL",
|
|
76
|
+
pollInterval || "5 min"
|
|
77
|
+
);
|
|
78
|
+
this.toErpInterval = getEnvString("TO_ERP_INTERVAL", "5 min");
|
|
79
|
+
this.retryLaborTicketsInterval = getEnvString(
|
|
80
|
+
"RETRY_LABOR_TICKETS_INTERVAL",
|
|
81
|
+
"30 min"
|
|
82
|
+
);
|
|
83
|
+
this.cacheExpirationCheckInterval = getEnvString(
|
|
84
|
+
"CACHE_EXPIRATION_CHECK_INTERVAL",
|
|
85
|
+
"5 min"
|
|
86
|
+
);
|
|
78
87
|
|
|
79
88
|
/**
|
|
80
89
|
* Cache TTL (in seconds)
|
|
81
90
|
*/
|
|
82
91
|
const cacheTTLDef = 7 * 24 * 60 * 60; // 7 days
|
|
83
|
-
this.cacheTTL =
|
|
92
|
+
this.cacheTTL = getEnvNumber("CACHE_TTL", cacheTTLDef);
|
|
84
93
|
|
|
85
94
|
// Configure the logger with our settings
|
|
86
95
|
configureLogger(this.logLevel, this.nodeEnv);
|
|
@@ -132,20 +141,24 @@ export class CoreConfiguration {
|
|
|
132
141
|
*/
|
|
133
142
|
export const getSQLServerConfiguration = (): SQLServerConfiguration => {
|
|
134
143
|
return {
|
|
135
|
-
username:
|
|
136
|
-
password:
|
|
137
|
-
database:
|
|
138
|
-
host:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
username: getEnvString("ERP_SQLSERVER_USERNAME", ""),
|
|
145
|
+
password: getEnvString("ERP_SQLSERVER_PASSWORD", ""),
|
|
146
|
+
database: getEnvString("ERP_SQLSERVER_DATABASE", ""),
|
|
147
|
+
host: getEnvString(
|
|
148
|
+
"ERP_SQLSERVER_HOST",
|
|
149
|
+
getEnvString("ERP_SQLSERVER_SERVER", "")
|
|
150
|
+
),
|
|
151
|
+
port: getEnvString("ERP_SQLSERVER_PORT", "1433"),
|
|
152
|
+
connectionTimeout: getEnvString("ERP_SQLSERVER_CONNECTION_TIMEOUT", "30000"),
|
|
153
|
+
requestTimeout: getEnvString("ERP_SQLSERVER_REQUEST_TIMEOUT", "60000"),
|
|
154
|
+
poolMax: getEnvString("ERP_SQLSERVER_MAX", "10"),
|
|
155
|
+
poolMin: getEnvString("ERP_SQLSERVER_MIN", "0"),
|
|
156
|
+
idleTimeoutMillis: getEnvString(
|
|
157
|
+
"ERP_SQLSERVER_IDLE_TIMEOUT_MMILLIS",
|
|
158
|
+
"30000"
|
|
159
|
+
),
|
|
160
|
+
encrypt: getEnvBoolean("ERP_SQLSERVER_ENCRYPT", false),
|
|
161
|
+
trustServer: getEnvBoolean("ERP_SQLSERVER_TRUST_SERVER", false),
|
|
149
162
|
};
|
|
150
163
|
};
|
|
151
164
|
|
|
@@ -171,11 +184,11 @@ export class ErpApiConnectionParams {
|
|
|
171
184
|
*/
|
|
172
185
|
export const getErpApiConnectionParams = (): ErpApiConnectionParams => {
|
|
173
186
|
return new ErpApiConnectionParams(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
187
|
+
getEnvString("ERP_API_URL", ""),
|
|
188
|
+
getEnvString("ERP_API_CLIENT_ID", ""),
|
|
189
|
+
getEnvString("ERP_API_CLIENT_SECRET", ""),
|
|
190
|
+
getEnvString("ERP_API_ORGANIZATION_ID", ""),
|
|
191
|
+
getEnvString("ERP_AUTH_BASE_URL", ""),
|
|
192
|
+
getEnvNumber("ERP_API_RETRY_ATTEMPTS", 3)
|
|
180
193
|
);
|
|
181
194
|
};
|
|
@@ -2,23 +2,19 @@ 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";
|
|
6
|
-
import logger from "../reporting-service/logger";
|
|
7
|
-
|
|
8
|
-
|
|
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;
|
|
9
13
|
|
|
10
14
|
export const runDataSyncService = async (connectorPath: string) => {
|
|
11
15
|
const config = CoreConfiguration.inst();
|
|
12
16
|
|
|
13
17
|
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
|
-
}
|
|
22
18
|
// Find the SDK's node_modules directory and jobs path using ES module import
|
|
23
19
|
const currentFileUrl = import.meta.url;
|
|
24
20
|
const currentFilePath = fileURLToPath(currentFileUrl);
|
|
@@ -27,12 +23,7 @@ export const runDataSyncService = async (connectorPath: string) => {
|
|
|
27
23
|
// Current: /path/to/sdk/dist/mm-erp-sdk.js.js
|
|
28
24
|
// Target: /path/to/sdk/dist/services/data-sync-service/jobs
|
|
29
25
|
const sdkDistPath = path.dirname(currentFilePath);
|
|
30
|
-
const jobsPath = path.join(
|
|
31
|
-
sdkDistPath,
|
|
32
|
-
"services",
|
|
33
|
-
"data-sync-service",
|
|
34
|
-
"jobs"
|
|
35
|
-
);
|
|
26
|
+
const jobsPath = path.join(sdkDistPath, "jobs");
|
|
36
27
|
|
|
37
28
|
const bree = new Bree({
|
|
38
29
|
root: jobsPath,
|
|
@@ -88,7 +79,7 @@ export const runDataSyncService = async (connectorPath: string) => {
|
|
|
88
79
|
}));
|
|
89
80
|
logger.info("JOBS CONFIGURATION:", { jobs: jobsConfig });
|
|
90
81
|
|
|
91
|
-
const graceful = new
|
|
82
|
+
const graceful = new GracefulClass({ brees: [bree] });
|
|
92
83
|
graceful.listen();
|
|
93
84
|
|
|
94
85
|
(async () => {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core data sync service functionality
|
|
3
3
|
*/
|
|
4
|
-
export { runDataSyncService } from "./data-sync-service";
|
|
4
|
+
export { runDataSyncService } from "./data-sync-service.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Configuration management for data sync
|
|
8
8
|
*/
|
|
9
|
-
export { getSQLServerConfiguration } from "./configuration-manager";
|
|
9
|
+
export { getSQLServerConfiguration } from "./configuration-manager.js";
|
|
10
10
|
|
|
11
|
-
export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager";
|
|
11
|
+
export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager.js";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
|
-
import { HashedCacheManager } from "../../caching-service/hashed-cache-manager";
|
|
3
|
-
import { SQLiteCoordinator } from "../../sqlite-service";
|
|
4
|
-
import logger from "../../../services/reporting-service/logger";
|
|
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";
|
|
5
|
+
import { getEnvString } from "../../../utils/env.js";
|
|
5
6
|
|
|
6
7
|
// Configure the logger with the correct log level
|
|
7
|
-
logger.level =
|
|
8
|
+
logger.level = getEnvString("LOG_LEVEL", "info");
|
|
8
9
|
|
|
9
10
|
const main = async () => {
|
|
10
11
|
const cacheManager = new HashedCacheManager();
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
|
|
3
|
-
import logger from "../../../services/reporting-service/logger";
|
|
4
|
-
import { SQLiteCoordinator } from "../../sqlite-service";
|
|
5
|
-
import { createConnectorFromPath } from "../../../utils/connector-factory";
|
|
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";
|
|
6
|
+
import { getEnvString } from "../../../utils/env.js";
|
|
6
7
|
|
|
7
8
|
// Configure the logger with the correct log level
|
|
8
|
-
logger.level =
|
|
9
|
+
logger.level = getEnvString("LOG_LEVEL", "info");
|
|
9
10
|
|
|
10
11
|
const main = async () => {
|
|
11
12
|
try {
|
|
@@ -29,9 +30,14 @@ const main = async () => {
|
|
|
29
30
|
await connector.syncFromERPCompleted();
|
|
30
31
|
logger.info("==========Completed from-erp job cycle==========");
|
|
31
32
|
} catch (error) {
|
|
32
|
-
|
|
33
|
+
const errorDetails = {
|
|
34
|
+
message: error instanceof Error ? error.message : String(error),
|
|
35
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
36
|
+
name: error instanceof Error ? error.name : undefined,
|
|
37
|
+
...(error && typeof error === "object" ? error : {}), // Include all enumerable properties if it's an object
|
|
38
|
+
};
|
|
33
39
|
logger.error('Worker for job "from-erp" had an error', {
|
|
34
|
-
error,
|
|
40
|
+
error: errorDetails,
|
|
35
41
|
});
|
|
36
42
|
|
|
37
43
|
throw error; // Rethrow so Bree can handle it properly
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
|
|
3
|
-
import logger from "../../../services/reporting-service/logger";
|
|
4
|
-
import {
|
|
3
|
+
import logger from "../../../services/reporting-service/logger.js";
|
|
4
|
+
import { getEnvString } from "../../../utils/env.js";
|
|
5
|
+
import { createConnectorFromPath } from "../../../utils/connector-factory.js";
|
|
5
6
|
|
|
6
7
|
// Configure the logger with the correct log level
|
|
7
|
-
logger.level =
|
|
8
|
+
logger.level = getEnvString("LOG_LEVEL", "info");
|
|
8
9
|
|
|
9
10
|
const main = async () => {
|
|
10
11
|
try {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import knex, { Knex } from "knex";
|
|
2
|
-
import logger from "../../reporting-service/logger";
|
|
3
|
-
import config from "../../../knexfile";
|
|
2
|
+
import logger from "../../reporting-service/logger.js";
|
|
3
|
+
import config from "../../../knexfile.js";
|
|
4
|
+
import { getEnvString } from "../../../utils/env.js";
|
|
4
5
|
|
|
5
6
|
// Configure the logger with the correct log level
|
|
6
|
-
logger.level =
|
|
7
|
+
logger.level = getEnvString("LOG_LEVEL", "info");
|
|
7
8
|
|
|
8
9
|
// MLW TODO Consider the location of knexfile
|
|
9
10
|
const db: Knex = knex(config.local);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
|
|
3
|
-
import logger from "../../reporting-service/logger";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import logger from "../../reporting-service/logger.js";
|
|
4
|
+
import { createConnectorFromPath } from "../../../utils/connector-factory.js";
|
|
5
|
+
import { getEnvString } from "../../../utils/env.js";
|
|
6
6
|
|
|
7
7
|
// Configure the logger with the correct log level
|
|
8
|
-
logger.level =
|
|
8
|
+
logger.level = getEnvString("LOG_LEVEL", "info");
|
|
9
9
|
|
|
10
10
|
const main = async () => {
|
|
11
11
|
try {
|
|
@@ -22,16 +22,7 @@ const main = async () => {
|
|
|
22
22
|
// Create a new connector instance for this job
|
|
23
23
|
const connector = await createConnectorFromPath(connectorPath);
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
// Otherwise, no lock needed - just run directly
|
|
27
|
-
if (process.env.NATS_ENABLED === "true") {
|
|
28
|
-
await SQLiteCoordinator.executeWithLock("to-erp", async () => {
|
|
29
|
-
await connector.syncToERP();
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
32
|
-
await connector.syncToERP();
|
|
33
|
-
}
|
|
34
|
-
|
|
25
|
+
await connector.syncToERP();
|
|
35
26
|
await connector.syncToERPCompleted();
|
|
36
27
|
|
|
37
28
|
logger.info("==========Completed to-erp job cycle==========");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AxiosError } from "axios";
|
|
2
|
-
import logger from "../reporting-service/logger";
|
|
3
|
-
import { GraphQLServerError } from "./graphql/types";
|
|
4
|
-
import { HTTPError } from "../../utils/http-client";
|
|
2
|
+
import logger from "../reporting-service/logger.js";
|
|
3
|
+
import { GraphQLServerError } from "./graphql/types.js";
|
|
4
|
+
import { HTTPError } from "../../utils/http-client.js";
|
|
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";
|
|
6
|
-
import { GraphQLResponse } from "./types";
|
|
7
|
-
import { ErrorHandler } from "../errors";
|
|
8
|
-
import { APIResponse } from "../types";
|
|
9
|
-
import { ERPApiConfig } from "../types";
|
|
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";
|
|
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";
|
|
8
|
-
export type { QueryParams } from "./rest/get-query-params";
|
|
7
|
+
export { RestAPIService } from "./rest/rest-api-service.js";
|
|
8
|
+
export type { QueryParams } from "./rest/get-query-params.js";
|
|
9
9
|
|
|
10
10
|
// GraphQL Service
|
|
11
|
-
export { GraphQLService } from "./graphql/graphql-service";
|
|
12
|
-
export type { GraphQLServerError } from './graphql/types';
|
|
11
|
+
export { GraphQLService } from "./graphql/graphql-service.js";
|
|
12
|
+
export type { GraphQLServerError } from './graphql/types.js';
|
|
13
13
|
|
|
14
14
|
// OAuth Client
|
|
15
|
-
export { OAuthClient } from './oauth-client';
|
|
16
|
-
export type { OAuthConfig } from './oauth-client';
|
|
15
|
+
export { OAuthClient } from './oauth-client.js';
|
|
16
|
+
export type { OAuthConfig } from './oauth-client.js';
|
|
17
17
|
|
|
18
18
|
// API Response
|
|
19
|
-
export type { APIResponse } from './types';
|
|
19
|
+
export type { APIResponse } from './types.js';
|
|
20
20
|
|
|
21
21
|
// Error classes
|
|
22
|
-
export { ErrorHandler, GraphQLError } from './errors';
|
|
22
|
+
export { ErrorHandler, GraphQLError } from './errors.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { HTTPClient, HTTPClientFactory } from "../../../utils/http-client";
|
|
1
|
+
import { HTTPClient, HTTPClientFactory } from "../../../utils/http-client.js";
|
|
2
2
|
import {
|
|
3
3
|
QueryParams,
|
|
4
4
|
buildLogicalCondition,
|
|
5
5
|
Pagination,
|
|
6
|
-
} from "./get-query-params";
|
|
7
|
-
import { ErrorHandler } from "../errors";
|
|
8
|
-
import { APIResponse, ERPApiConfig } from "../types";
|
|
6
|
+
} from "./get-query-params.js";
|
|
7
|
+
import { ErrorHandler } from "../errors.js";
|
|
8
|
+
import { APIResponse, ERPApiConfig } from "../types.js";
|
|
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";
|
|
2
|
-
import { GraphQLServerError } from "./graphql/types";
|
|
1
|
+
import { Pagination } from "./rest/get-query-params.js";
|
|
2
|
+
import { GraphQLServerError } from "./graphql/types.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Configuration for making API requests to an ERP system.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { MMApiClient } from "./mm-api-service";
|
|
1
|
+
import { MMApiClient } from "./mm-api-service.js";
|
|
2
2
|
import type {
|
|
3
3
|
MMReceiveLaborTicket,
|
|
4
4
|
MMReceiveLaborTicketReason,
|
|
5
5
|
MMReceiveLaborTicketWorkOrderOperation,
|
|
6
|
-
} from "./types/receive-types";
|
|
6
|
+
} from "./types/receive-types.js";
|
|
7
7
|
import {
|
|
8
8
|
MMSendPerson,
|
|
9
9
|
MMSendResource,
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
MMSendReason,
|
|
15
15
|
MMSendLaborTicket,
|
|
16
16
|
MMSendWorkOrderBatch,
|
|
17
|
-
} from "./types/send-types";
|
|
18
|
-
import type { IToRESTApiObject } from "./types/send-types";
|
|
17
|
+
} from "./types/send-types.js";
|
|
18
|
+
import type { IToRESTApiObject } from "./types/send-types.js";
|
|
19
19
|
import type {
|
|
20
20
|
MMApiBaseResponse,
|
|
21
21
|
MM200NonLaborTicketResponse,
|
|
@@ -26,9 +26,7 @@ import type {
|
|
|
26
26
|
MM500LaborTicketException,
|
|
27
27
|
MMGraphQLResourceResponse,
|
|
28
28
|
MMMachineGroupsResponse,
|
|
29
|
-
} from "./types/mm-response-interfaces";
|
|
30
|
-
import { getCompanyInfo } from "./company-info";
|
|
31
|
-
import type { CompanyInfo } from "./company-info";
|
|
29
|
+
} from "./types/mm-response-interfaces.js";
|
|
32
30
|
|
|
33
31
|
/**
|
|
34
32
|
* A class to manage interactions with the MM API
|
|
@@ -54,7 +52,7 @@ export type {
|
|
|
54
52
|
/**
|
|
55
53
|
* Types related of labor tickets received from the MM API
|
|
56
54
|
*/
|
|
57
|
-
export { MMReceiveLaborTicket } from "./types/receive-types";
|
|
55
|
+
export { MMReceiveLaborTicket } from "./types/receive-types.js";
|
|
58
56
|
export type {
|
|
59
57
|
MMReceiveLaborTicketReason,
|
|
60
58
|
MMReceiveLaborTicketWorkOrderOperation,
|
|
@@ -83,9 +81,3 @@ export {
|
|
|
83
81
|
* Batch interfaces for sending multiple related entities
|
|
84
82
|
*/
|
|
85
83
|
export type { MMSendWorkOrderBatch };
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Company information utilities
|
|
89
|
-
*/
|
|
90
|
-
export { getCompanyInfo };
|
|
91
|
-
export type { CompanyInfo };
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import logger from "../reporting-service/logger";
|
|
2
|
-
import { ERPObjType } from "../../types/erp-types";
|
|
3
|
-
import { MMReceiveLaborTicket } from "./types/receive-types";
|
|
4
|
-
import { MMTokenManager } from "./token-mgr";
|
|
5
|
-
import * as MM_SEND_TYPES from "./types/send-types";
|
|
1
|
+
import logger from "../reporting-service/logger.js";
|
|
2
|
+
import { ERPObjType } from "../../types/erp-types.js";
|
|
3
|
+
import { MMReceiveLaborTicket } from "./types/receive-types.js";
|
|
4
|
+
import { MMTokenManager } from "./token-mgr.js";
|
|
5
|
+
import * as MM_SEND_TYPES from "./types/send-types.js";
|
|
6
6
|
import {
|
|
7
7
|
HTTPClient,
|
|
8
8
|
HTTPMethod,
|
|
9
9
|
HTTPRequestConfig,
|
|
10
10
|
HTTPClientFactory,
|
|
11
|
-
} from "../../utils/http-client";
|
|
12
|
-
import { Checkpoint } from "./types/checkpoint";
|
|
13
|
-
import { CoreConfiguration } from "../data-sync-service/configuration-manager";
|
|
14
|
-
import { ErrorHandler } from "../erp-api-services/errors";
|
|
11
|
+
} from "../../utils/http-client.js";
|
|
12
|
+
import { Checkpoint } from "./types/checkpoint.js";
|
|
13
|
+
import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
|
|
14
|
+
import { ErrorHandler } from "../erp-api-services/errors.js";
|
|
15
15
|
import {
|
|
16
16
|
MMApiBaseResponse,
|
|
17
17
|
MMGraphQLResourceResponse,
|
|
18
18
|
MMMachineGroupsResponse,
|
|
19
|
-
} from "./types/mm-response-interfaces";
|
|
19
|
+
} from "./types/mm-response-interfaces.js";
|
|
20
20
|
|
|
21
21
|
const MAPPING = "MAPPING";
|
|
22
22
|
const CHECKPOINTS = "CHECKPOINTS";
|
|
@@ -80,12 +80,9 @@ export class MMApiClient {
|
|
|
80
80
|
return typeof err === "object" && err !== null && "status" in err;
|
|
81
81
|
};
|
|
82
82
|
|
|
83
|
-
// Check if this looks like an auth error - retry on auth status codes
|
|
83
|
+
// Check if this looks like an auth error - only retry on explicit auth status codes
|
|
84
84
|
const isAuthError =
|
|
85
|
-
hasStatus(error) && (error.status === 401 || error.status === 403)
|
|
86
|
-
(hasStatus(error) && error.status === 500 &&
|
|
87
|
-
typeof (error as any).data?.error === 'string' &&
|
|
88
|
-
(error as any).data.error.includes('JWT'));
|
|
85
|
+
hasStatus(error) && (error.status === 401 || error.status === 403);
|
|
89
86
|
|
|
90
87
|
if (isAuthError && !options.token) {
|
|
91
88
|
// Only retry if we used cached token
|
|
@@ -509,20 +506,6 @@ export class MMApiClient {
|
|
|
509
506
|
return updates.data.map((ticket) => new MMReceiveLaborTicket(ticket));
|
|
510
507
|
}
|
|
511
508
|
|
|
512
|
-
/**
|
|
513
|
-
* Fetch a single labor ticket by reference from the MM API
|
|
514
|
-
* @param laborTicketRef The labor ticket reference to fetch
|
|
515
|
-
* @returns Promise with the labor ticket data
|
|
516
|
-
*/
|
|
517
|
-
async fetchLaborTicketByRef(
|
|
518
|
-
laborTicketRef: string
|
|
519
|
-
): Promise<MMReceiveLaborTicket> {
|
|
520
|
-
const response = (await this.getData(
|
|
521
|
-
`${this.resourceURLs[ERPObjType.LABOR_TICKETS]}/${laborTicketRef}`
|
|
522
|
-
)) as { data: MMReceiveLaborTicket };
|
|
523
|
-
return new MMReceiveLaborTicket(response.data);
|
|
524
|
-
}
|
|
525
|
-
|
|
526
509
|
/**
|
|
527
510
|
* Fetch a checkpoint for a specific system, table, and checkpoint type
|
|
528
511
|
* @param checkpoint The checkpoint to fetch
|
|
@@ -568,7 +551,7 @@ export class MMApiClient {
|
|
|
568
551
|
logger.info("saveCheckpoint:", { saveCheckpoint });
|
|
569
552
|
} else {
|
|
570
553
|
logger.info("Existing checkpoint found:", {
|
|
571
|
-
|
|
554
|
+
checkpointTimestamp: checkpointResponse.timestamp,
|
|
572
555
|
});
|
|
573
556
|
}
|
|
574
557
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getCachedMMToken,
|
|
3
3
|
setCachedMMToken,
|
|
4
|
-
} from "../../utils/local-data-store/jobs-shared-data";
|
|
5
|
-
import { HTTPClient, HTTPClientFactory } from "../../utils/http-client";
|
|
6
|
-
import { CoreConfiguration } from "../data-sync-service/configuration-manager";
|
|
7
|
-
import { logger } from "../reporting-service";
|
|
4
|
+
} from "../../utils/local-data-store/jobs-shared-data.js";
|
|
5
|
+
import { HTTPClient, HTTPClientFactory } from "../../utils/http-client.js";
|
|
6
|
+
import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
|
|
7
|
+
import { logger } from "../reporting-service/index.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Manages the MM API token with caching and expiration checking
|
|
@@ -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
|
import {
|
|
4
4
|
MMSendPerson,
|
|
5
5
|
MMSendResource,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
MMSendWorkOrderOperation,
|
|
10
10
|
MMSendLaborTicket,
|
|
11
11
|
MMSendReason,
|
|
12
|
-
} from "
|
|
12
|
+
} from "../index.js";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Utility class for transforming entities to/from non-typed and typed objects
|
|
@@ -42,7 +42,6 @@ export class MMReceiveLaborTicket {
|
|
|
42
42
|
personId!: string; // The person who did the work
|
|
43
43
|
reasons?: MMReceiveLaborTicketReason[];
|
|
44
44
|
resourceId!: string; // The physical resource that did the work
|
|
45
|
-
resource?: { name: string }; // The resource name (available from export/updates endpoint)
|
|
46
45
|
sequenceNumber!: number; // 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
|
|
47
46
|
split!: string; // Batch number if order split for staggered delivery. If not available in the ERP, default to an empty string
|
|
48
47
|
state!: string; // The current state of the labor ticket (e.g., "CLOSED/OPEN")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PsqlService } from "./psql-service";
|
|
1
|
+
import { PsqlService } from "./psql-service.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A class to manage interactions with PSQL (Pervasive) databases via ODBC
|
|
@@ -8,7 +8,7 @@ export { PsqlService };
|
|
|
8
8
|
/**
|
|
9
9
|
* Configuration interface for PSQL connections
|
|
10
10
|
*/
|
|
11
|
-
export type { PsqlConfiguration } from "./configuration";
|
|
11
|
+
export type { PsqlConfiguration } from "./configuration.js";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Helper functions for PSQL data formatting
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
combinePsqlDateTime,
|
|
20
20
|
isPsqlDateEmpty,
|
|
21
21
|
cleanPsqlCharField,
|
|
22
|
-
} from "./psql-helpers";
|
|
22
|
+
} from "./psql-helpers.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PsqlConfiguration } from "./configuration";
|
|
2
|
-
import { ERPResponse } from "../../types/erp-types";
|
|
3
|
-
import { OdbcErrorResponse } from "./internal/types/psql-types";
|
|
4
|
-
import logger from "../reporting-service/logger";
|
|
1
|
+
import { PsqlConfiguration } from "./configuration.js";
|
|
2
|
+
import { ERPResponse } from "../../types/erp-types.js";
|
|
3
|
+
import { OdbcErrorResponse } from "./internal/types/psql-types.js";
|
|
4
|
+
import logger from "../reporting-service/logger.js";
|
|
5
5
|
|
|
6
6
|
type PagingParams = {
|
|
7
7
|
limit?: number;
|