@machinemetrics/mm-erp-sdk 0.2.0-beta.0 → 0.2.0-beta.2
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 +0 -5
- package/dist/config-CvA-mFWF.js +418 -0
- package/dist/config-CvA-mFWF.js.map +1 -0
- package/dist/connector-factory-BPm2GVVF.js +30 -0
- package/dist/connector-factory-BPm2GVVF.js.map +1 -0
- package/dist/hashed-cache-manager-B15NN8hK.js +322 -0
- package/dist/hashed-cache-manager-B15NN8hK.js.map +1 -0
- package/dist/index-D8qO1NyK.js +192 -0
- package/dist/index-D8qO1NyK.js.map +1 -0
- package/dist/index.d.ts +43 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/knexfile-Bng2Ru9c.js +20 -0
- package/dist/knexfile-Bng2Ru9c.js.map +1 -0
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/logger-BWw0_z9q.js +17557 -0
- package/dist/logger-BWw0_z9q.js.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.js +15 -11
- package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
- package/dist/migrations/20241015162632_create_sdk_cache_table.js +15 -11
- package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
- package/dist/migrations/20250103162631_create_record_tracking_table.js +15 -14
- package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
- package/dist/mm-erp-sdk.js +4978 -0
- package/dist/mm-erp-sdk.js.map +1 -0
- 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/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/index.d.ts +1 -1
- package/dist/services/caching-service/index.d.ts.map +1 -1
- 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/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/data-sync-service.d.ts.map +1 -1
- 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/jobs/clean-up-expired-cache.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +40 -42
- 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 +37 -50
- 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 +36 -38
- 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 +22 -24
- 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/data-sync-service/nats-labor-ticket-listener.d.ts +30 -0
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +1 -0
- 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/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/index.d.ts +8 -8
- package/dist/services/erp-api-services/index.d.ts.map +1 -1
- 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/types.d.ts +2 -2
- package/dist/services/erp-api-services/types.d.ts.map +1 -1
- package/dist/services/mm-api-service/company-info.d.ts +13 -0
- package/dist/services/mm-api-service/company-info.d.ts.map +1 -0
- package/dist/services/mm-api-service/index.d.ts +13 -6
- package/dist/services/mm-api-service/index.d.ts.map +1 -1
- package/dist/services/mm-api-service/mm-api-service.d.ts +13 -7
- package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
- 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/receive-types.d.ts +3 -0
- package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
- package/dist/services/nats-service/nats-service.d.ts +114 -0
- package/dist/services/nats-service/nats-service.d.ts.map +1 -0
- package/dist/services/nats-service/test-nats-subscriber.d.ts +6 -0
- package/dist/services/nats-service/test-nats-subscriber.d.ts.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/psql-service.d.ts +2 -2
- package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
- 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/logger.d.ts.map +1 -1
- 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/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/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-service.d.ts +2 -2
- package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
- package/dist/services/sqlite-service/index.d.ts +1 -1
- package/dist/services/sqlite-service/index.d.ts.map +1 -1
- package/dist/types/erp-connector.d.ts +2 -9
- package/dist/types/erp-connector.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/connector-factory.d.ts +1 -1
- package/dist/utils/connector-factory.d.ts.map +1 -1
- 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/mm-connector-logger-example.d.ts +0 -1
- 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/erp-type-from-entity.d.ts +1 -1
- package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
- package/dist/utils/error-formatter.d.ts +19 -0
- package/dist/utils/error-formatter.d.ts.map +1 -0
- package/dist/utils/index.d.ts +38 -34
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/local-data-store/jobs-shared-data.d.ts +0 -2
- package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
- package/dist/utils/mm-labor-ticket-helpers.d.ts +5 -4
- package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
- package/dist/utils/removeExtraneousFields.d.ts +1 -1
- package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
- package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
- package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
- package/dist/utils/resource-group.d.ts +1 -1
- package/dist/utils/resource-group.d.ts.map +1 -1
- 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/index.d.ts +3 -3
- package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +1 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +5 -11
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +6 -12
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
- package/dist/utils/time-utils.d.ts.map +1 -1
- package/package.json +10 -8
- package/src/index.ts +45 -42
- package/src/knexfile.ts +0 -1
- 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 +39 -52
- package/src/services/data-sync-service/data-sync-service.ts +19 -10
- package/src/services/data-sync-service/index.ts +3 -3
- package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +4 -5
- package/src/services/data-sync-service/jobs/from-erp.ts +6 -12
- package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +3 -4
- package/src/services/data-sync-service/jobs/run-migrations.ts +3 -4
- package/src/services/data-sync-service/jobs/to-erp.ts +14 -5
- package/src/services/data-sync-service/nats-labor-ticket-listener.ts +341 -0
- 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/company-info.ts +87 -0
- package/src/services/mm-api-service/index.ts +14 -6
- package/src/services/mm-api-service/mm-api-service.ts +30 -13
- 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 +1 -0
- package/src/services/nats-service/nats-service.ts +351 -0
- package/src/services/nats-service/test-nats-subscriber.ts +96 -0
- 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 +81 -116
- 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 +2 -9
- package/src/types/index.ts +2 -10
- 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/erp-type-from-entity.ts +1 -1
- package/src/utils/error-formatter.ts +205 -0
- package/src/utils/http-client.ts +3 -2
- package/src/utils/index.ts +39 -38
- package/src/utils/local-data-store/database-lock.ts +1 -1
- package/src/utils/local-data-store/jobs-shared-data.ts +0 -2
- package/src/utils/mm-labor-ticket-helpers.ts +9 -12
- 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 +12 -16
- package/src/utils/standard-process-drivers/mm-entity-processor.ts +8 -14
- package/src/utils/standard-process-drivers/standard-process-drivers.ts +25 -39
- package/src/utils/time-utils.ts +3 -14
- package/src/utils/timezone.ts +2 -2
- package/dist/index.js +0 -48
- package/dist/index.js.map +0 -1
- package/dist/knexfile.js +0 -19
- package/dist/knexfile.js.map +0 -1
- package/dist/migrations/20241015162631_create_cache_table.d.ts +0 -4
- package/dist/migrations/20241015162631_create_cache_table.d.ts.map +0 -1
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +0 -4
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +0 -1
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +0 -4
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +0 -1
- package/dist/services/caching-service/batch-cache-manager.js +0 -84
- package/dist/services/caching-service/batch-cache-manager.js.map +0 -1
- package/dist/services/caching-service/hashed-cache-manager.js +0 -223
- package/dist/services/caching-service/hashed-cache-manager.js.map +0 -1
- package/dist/services/caching-service/index.js +0 -2
- package/dist/services/caching-service/index.js.map +0 -1
- package/dist/services/caching-service/record-tracking-manager.js +0 -28
- package/dist/services/caching-service/record-tracking-manager.js.map +0 -1
- package/dist/services/data-sync-service/configuration-manager.js +0 -163
- package/dist/services/data-sync-service/configuration-manager.js.map +0 -1
- package/dist/services/data-sync-service/data-sync-service.js +0 -95
- package/dist/services/data-sync-service/data-sync-service.js.map +0 -1
- package/dist/services/data-sync-service/index.js +0 -10
- package/dist/services/data-sync-service/index.js.map +0 -1
- package/dist/services/erp-api-services/errors.js +0 -83
- package/dist/services/erp-api-services/errors.js.map +0 -1
- package/dist/services/erp-api-services/graphql/graphql-service.js +0 -102
- package/dist/services/erp-api-services/graphql/graphql-service.js.map +0 -1
- package/dist/services/erp-api-services/graphql/types.js +0 -6
- package/dist/services/erp-api-services/graphql/types.js.map +0 -1
- package/dist/services/erp-api-services/index.js +0 -13
- package/dist/services/erp-api-services/index.js.map +0 -1
- package/dist/services/erp-api-services/oauth-client.js +0 -41
- package/dist/services/erp-api-services/oauth-client.js.map +0 -1
- package/dist/services/erp-api-services/rest/get-query-params.js +0 -23
- package/dist/services/erp-api-services/rest/get-query-params.js.map +0 -1
- package/dist/services/erp-api-services/rest/rest-api-service.js +0 -163
- package/dist/services/erp-api-services/rest/rest-api-service.js.map +0 -1
- package/dist/services/erp-api-services/types.js +0 -2
- package/dist/services/erp-api-services/types.js.map +0 -1
- package/dist/services/mm-api-service/index.js +0 -15
- package/dist/services/mm-api-service/index.js.map +0 -1
- package/dist/services/mm-api-service/mm-api-service.js +0 -519
- package/dist/services/mm-api-service/mm-api-service.js.map +0 -1
- package/dist/services/mm-api-service/token-mgr.js +0 -113
- package/dist/services/mm-api-service/token-mgr.js.map +0 -1
- package/dist/services/mm-api-service/types/checkpoint.js +0 -2
- package/dist/services/mm-api-service/types/checkpoint.js.map +0 -1
- package/dist/services/mm-api-service/types/entity-transformer.js +0 -186
- package/dist/services/mm-api-service/types/entity-transformer.js.map +0 -1
- package/dist/services/mm-api-service/types/mm-response-interfaces.js +0 -34
- package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +0 -1
- package/dist/services/mm-api-service/types/receive-types.js +0 -55
- package/dist/services/mm-api-service/types/receive-types.js.map +0 -1
- package/dist/services/mm-api-service/types/send-types.js +0 -337
- package/dist/services/mm-api-service/types/send-types.js.map +0 -1
- package/dist/services/psql-erp-service/configuration.js +0 -2
- package/dist/services/psql-erp-service/configuration.js.map +0 -1
- package/dist/services/psql-erp-service/index.js +0 -10
- package/dist/services/psql-erp-service/index.js.map +0 -1
- package/dist/services/psql-erp-service/internal/types/psql-types.js +0 -5
- package/dist/services/psql-erp-service/internal/types/psql-types.js.map +0 -1
- package/dist/services/psql-erp-service/psql-helpers.js +0 -99
- package/dist/services/psql-erp-service/psql-helpers.js.map +0 -1
- package/dist/services/psql-erp-service/psql-service.js +0 -187
- package/dist/services/psql-erp-service/psql-service.js.map +0 -1
- package/dist/services/reporting-service/index.js +0 -5
- package/dist/services/reporting-service/index.js.map +0 -1
- package/dist/services/reporting-service/logger.js +0 -221
- package/dist/services/reporting-service/logger.js.map +0 -1
- package/dist/services/sql-server-erp-service/configuration.js +0 -2
- package/dist/services/sql-server-erp-service/configuration.js.map +0 -1
- package/dist/services/sql-server-erp-service/index.js +0 -11
- package/dist/services/sql-server-erp-service/index.js.map +0 -1
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +0 -50
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +0 -1
- package/dist/services/sql-server-erp-service/internal/sql-server-config.js +0 -40
- package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +0 -1
- package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +0 -36
- package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +0 -1
- package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +0 -2
- package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +0 -1
- package/dist/services/sql-server-erp-service/sql-server-helpers.js +0 -66
- package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +0 -1
- package/dist/services/sql-server-erp-service/sql-server-service.js +0 -154
- package/dist/services/sql-server-erp-service/sql-server-service.js.map +0 -1
- package/dist/services/sql-server-erp-service/types/sql-input-param.js +0 -2
- package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +0 -1
- package/dist/services/sqlite-service/index.js +0 -2
- package/dist/services/sqlite-service/index.js.map +0 -1
- package/dist/services/sqlite-service/sqlite-coordinator.js +0 -60
- package/dist/services/sqlite-service/sqlite-coordinator.js.map +0 -1
- package/dist/types/erp-connector.js +0 -2
- package/dist/types/erp-connector.js.map +0 -1
- package/dist/types/erp-types.js +0 -13
- package/dist/types/erp-types.js.map +0 -1
- package/dist/types/flattened-work-order.d.ts +0 -99
- package/dist/types/flattened-work-order.d.ts.map +0 -1
- package/dist/types/flattened-work-order.js +0 -2
- package/dist/types/flattened-work-order.js.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/utils/application-initializer.js +0 -55
- package/dist/utils/application-initializer.js.map +0 -1
- package/dist/utils/cleanup-numbers.js +0 -6
- package/dist/utils/cleanup-numbers.js.map +0 -1
- package/dist/utils/connector-factory.js +0 -34
- package/dist/utils/connector-factory.js.map +0 -1
- package/dist/utils/connector-log/log-deduper.js +0 -240
- package/dist/utils/connector-log/log-deduper.js.map +0 -1
- package/dist/utils/connector-log/mm-connector-logger-example.js +0 -88
- package/dist/utils/connector-log/mm-connector-logger-example.js.map +0 -1
- package/dist/utils/connector-log/mm-connector-logger.js +0 -151
- package/dist/utils/connector-log/mm-connector-logger.js.map +0 -1
- package/dist/utils/data-transformation.js +0 -38
- package/dist/utils/data-transformation.js.map +0 -1
- package/dist/utils/env.d.ts +0 -8
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -58
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/erp-timezone-utils.d.ts +0 -20
- package/dist/utils/erp-timezone-utils.d.ts.map +0 -1
- package/dist/utils/erp-timezone-utils.js +0 -75
- package/dist/utils/erp-timezone-utils.js.map +0 -1
- package/dist/utils/erp-type-from-entity.js +0 -6
- package/dist/utils/erp-type-from-entity.js.map +0 -1
- package/dist/utils/error-utils.js +0 -21
- package/dist/utils/error-utils.js.map +0 -1
- package/dist/utils/http-client.js +0 -186
- package/dist/utils/http-client.js.map +0 -1
- package/dist/utils/index.js +0 -66
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/local-data-store/database-lock.js +0 -68
- package/dist/utils/local-data-store/database-lock.js.map +0 -1
- package/dist/utils/local-data-store/jobs-shared-data.js +0 -118
- package/dist/utils/local-data-store/jobs-shared-data.js.map +0 -1
- package/dist/utils/mm-labor-ticket-helpers.js +0 -28
- package/dist/utils/mm-labor-ticket-helpers.js.map +0 -1
- package/dist/utils/removeExtraneousFields.js +0 -16
- package/dist/utils/removeExtraneousFields.js.map +0 -1
- package/dist/utils/removeIdFieldFromPayload.js +0 -16
- package/dist/utils/removeIdFieldFromPayload.js.map +0 -1
- package/dist/utils/resource-group.js +0 -59
- package/dist/utils/resource-group.js.map +0 -1
- package/dist/utils/standard-process-drivers/error-processor.js +0 -262
- package/dist/utils/standard-process-drivers/error-processor.js.map +0 -1
- package/dist/utils/standard-process-drivers/index.js +0 -4
- package/dist/utils/standard-process-drivers/index.js.map +0 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +0 -173
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +0 -1
- package/dist/utils/standard-process-drivers/mm-entity-processor.js +0 -174
- package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +0 -1
- package/dist/utils/standard-process-drivers/standard-process-drivers.js +0 -333
- package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +0 -1
- package/dist/utils/time-utils.js +0 -103
- package/dist/utils/time-utils.js.map +0 -1
- package/dist/utils/timezone.js +0 -105
- package/dist/utils/timezone.js.map +0 -1
- package/dist/utils/trimObjectValues.js +0 -11
- package/dist/utils/trimObjectValues.js.map +0 -1
- package/dist/utils/uniqueRows.js +0 -35
- package/dist/utils/uniqueRows.js.map +0 -1
- package/src/types/flattened-work-order.ts +0 -108
- package/src/utils/env.ts +0 -75
- package/src/utils/erp-timezone-utils.ts +0 -99
package/dist/utils/env.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This module contains utility functions to get environment variables with default values and validation.
|
|
3
|
-
*/
|
|
4
|
-
const normalizeValue = (value) => {
|
|
5
|
-
if (value === undefined || value === null) {
|
|
6
|
-
return undefined;
|
|
7
|
-
}
|
|
8
|
-
const trimmed = value.trim();
|
|
9
|
-
if (!trimmed) {
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
const lowered = trimmed.toLowerCase();
|
|
13
|
-
if (lowered === "undefined" || lowered === "null") {
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
return trimmed;
|
|
17
|
-
};
|
|
18
|
-
const warnInvalid = (key, rawValue, reason) => {
|
|
19
|
-
const received = rawValue !== undefined ? `; received "${rawValue}"` : "";
|
|
20
|
-
console.warn(`[config] ${key} ${reason}${received}`); // eslint-disable-line no-console
|
|
21
|
-
};
|
|
22
|
-
export const getEnvString = (key, defaultValue = "") => {
|
|
23
|
-
const normalized = normalizeValue(process.env[key]);
|
|
24
|
-
return normalized ?? defaultValue;
|
|
25
|
-
};
|
|
26
|
-
export const getEnvNumber = (key, defaultValue) => {
|
|
27
|
-
const normalized = normalizeValue(process.env[key]);
|
|
28
|
-
if (normalized === undefined) {
|
|
29
|
-
return defaultValue;
|
|
30
|
-
}
|
|
31
|
-
const parsed = Number.parseInt(normalized, 10);
|
|
32
|
-
if (Number.isNaN(parsed)) {
|
|
33
|
-
warnInvalid(key, normalized, `is not a valid number for key ${key}; falling back to default ${defaultValue}`);
|
|
34
|
-
return defaultValue;
|
|
35
|
-
}
|
|
36
|
-
return parsed;
|
|
37
|
-
};
|
|
38
|
-
export const getEnvBoolean = (key, defaultValue = false) => {
|
|
39
|
-
const normalized = normalizeValue(process.env[key]);
|
|
40
|
-
if (normalized === undefined) {
|
|
41
|
-
return defaultValue;
|
|
42
|
-
}
|
|
43
|
-
const truthyValues = new Set(["true", "1", "yes", "y", "on"]);
|
|
44
|
-
const falsyValues = new Set(["false", "0", "no", "n", "off"]);
|
|
45
|
-
const lowered = normalized.toLowerCase();
|
|
46
|
-
if (truthyValues.has(lowered)) {
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
if (falsyValues.has(lowered)) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
warnInvalid(key, normalized, "is not a recognized boolean; falling back to default");
|
|
53
|
-
return defaultValue;
|
|
54
|
-
};
|
|
55
|
-
export const getOptionalEnv = (key) => {
|
|
56
|
-
return normalizeValue(process.env[key]);
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=env.js.map
|
package/dist/utils/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retrieves the ERP timezone name that should have been cached during initialization.
|
|
3
|
-
* @throws Error when the timezone cache has not been populated.
|
|
4
|
-
*/
|
|
5
|
-
export declare function getERPTimezone(): string;
|
|
6
|
-
/**
|
|
7
|
-
* Converts a UTC ISO-8601 datetime string to the ERP's local timezone (also ISO-8601).
|
|
8
|
-
* @param utcDateTime ISO-8601 datetime string representing UTC time.
|
|
9
|
-
* @param timezone Optional timezone override; defaults to the cached ERP timezone.
|
|
10
|
-
* @returns ISO-8601 string in the ERP timezone.
|
|
11
|
-
*/
|
|
12
|
-
export declare function convertUtcDateTimeToErpLocal(utcDateTime: string, timezone?: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Converts an ERP-local ISO-8601 datetime string to UTC (still ISO-8601).
|
|
15
|
-
* @param localDateTime ISO-8601 datetime string representing ERP local time.
|
|
16
|
-
* @param timezone Optional timezone override; defaults to the cached ERP timezone.
|
|
17
|
-
* @returns ISO-8601 string in UTC.
|
|
18
|
-
*/
|
|
19
|
-
export declare function convertErpLocalDateTimeToUtc(localDateTime: string, timezone?: string): string;
|
|
20
|
-
//# sourceMappingURL=erp-timezone-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erp-timezone-utils.d.ts","sourceRoot":"","sources":["../../src/utils/erp-timezone-utils.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CA8BR;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CA8BR"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { DateTime } from "luxon";
|
|
2
|
-
import logger from "../services/reporting-service/logger.js";
|
|
3
|
-
import { getCachedTimezoneName } from "./local-data-store/jobs-shared-data.js";
|
|
4
|
-
/**
|
|
5
|
-
* Retrieves the ERP timezone name that should have been cached during initialization.
|
|
6
|
-
* @throws Error when the timezone cache has not been populated.
|
|
7
|
-
*/
|
|
8
|
-
export function getERPTimezone() {
|
|
9
|
-
const timezone = getCachedTimezoneName();
|
|
10
|
-
if (!timezone) {
|
|
11
|
-
throw new Error("ERP timezone is not cached. Run getTimezoneOffsetAndPersist() to populate it.");
|
|
12
|
-
}
|
|
13
|
-
return timezone;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Converts a UTC ISO-8601 datetime string to the ERP's local timezone (also ISO-8601).
|
|
17
|
-
* @param utcDateTime ISO-8601 datetime string representing UTC time.
|
|
18
|
-
* @param timezone Optional timezone override; defaults to the cached ERP timezone.
|
|
19
|
-
* @returns ISO-8601 string in the ERP timezone.
|
|
20
|
-
*/
|
|
21
|
-
export function convertUtcDateTimeToErpLocal(utcDateTime, timezone) {
|
|
22
|
-
if (!utcDateTime) {
|
|
23
|
-
throw new Error("convertUtcDateTimeToErpLocal requires a non-empty UTC datetime string");
|
|
24
|
-
}
|
|
25
|
-
try {
|
|
26
|
-
const targetZone = timezone ?? getERPTimezone();
|
|
27
|
-
const parsedUtc = DateTime.fromISO(utcDateTime, { zone: "utc" });
|
|
28
|
-
if (!parsedUtc.isValid) {
|
|
29
|
-
throw new Error(`Invalid UTC datetime "${utcDateTime}": ${parsedUtc.invalidReason}`);
|
|
30
|
-
}
|
|
31
|
-
const localized = parsedUtc.setZone(targetZone);
|
|
32
|
-
if (!localized.isValid) {
|
|
33
|
-
throw new Error(`Unable to convert UTC datetime "${utcDateTime}" to target zone "${targetZone}": ${localized.invalidReason}`);
|
|
34
|
-
}
|
|
35
|
-
return localized.toISO();
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
logger.error("convertUtcDateTimeToErpLocal: Failed to convert datetime", {
|
|
39
|
-
utcDateTime,
|
|
40
|
-
error,
|
|
41
|
-
});
|
|
42
|
-
throw new Error("Failed to convert UTC datetime to ERP local timezone. See logs for details.");
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Converts an ERP-local ISO-8601 datetime string to UTC (still ISO-8601).
|
|
47
|
-
* @param localDateTime ISO-8601 datetime string representing ERP local time.
|
|
48
|
-
* @param timezone Optional timezone override; defaults to the cached ERP timezone.
|
|
49
|
-
* @returns ISO-8601 string in UTC.
|
|
50
|
-
*/
|
|
51
|
-
export function convertErpLocalDateTimeToUtc(localDateTime, timezone) {
|
|
52
|
-
if (!localDateTime) {
|
|
53
|
-
throw new Error("convertErpLocalDateTimeToUtc requires a non-empty local datetime string");
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
const sourceZone = timezone ?? getERPTimezone();
|
|
57
|
-
const parsedLocal = DateTime.fromISO(localDateTime, { zone: sourceZone });
|
|
58
|
-
if (!parsedLocal.isValid) {
|
|
59
|
-
throw new Error(`Invalid ERP local datetime "${localDateTime}" for zone "${sourceZone}": ${parsedLocal.invalidReason}`);
|
|
60
|
-
}
|
|
61
|
-
const utcDateTime = parsedLocal.setZone("utc");
|
|
62
|
-
if (!utcDateTime.isValid) {
|
|
63
|
-
throw new Error(`Unable to convert ERP local datetime "${localDateTime}" to UTC: ${utcDateTime.invalidReason}`);
|
|
64
|
-
}
|
|
65
|
-
return utcDateTime.toISO();
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
logger.error("convertErpLocalDateTimeToUtc: Failed to convert datetime", {
|
|
69
|
-
localDateTime,
|
|
70
|
-
error,
|
|
71
|
-
});
|
|
72
|
-
throw new Error("Failed to convert ERP local datetime to UTC. See logs for details.");
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=erp-timezone-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erp-timezone-utils.js","sourceRoot":"","sources":["../../src/utils/erp-timezone-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,WAAmB,EACnB,QAAiB;IAEjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,MAAM,SAAS,CAAC,aAAa,EAAE,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,mCAAmC,WAAW,qBAAqB,UAAU,MAAM,SAAS,CAAC,aAAa,EAAE,CAC7G,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE;YACvE,WAAW;YACX,KAAK;SACN,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,aAAqB,EACrB,QAAiB;IAEjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,+BAA+B,aAAa,eAAe,UAAU,MAAM,WAAW,CAAC,aAAa,EAAE,CACvG,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,yCAAyC,aAAa,aAAa,WAAW,CAAC,aAAa,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE;YACvE,aAAa;YACb,KAAK;SACN,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export function getERPAPITypeFromEntity(entity, entityMap) {
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3
|
-
const entry = Object.entries(entityMap).find(([_, value]) => value.entity === entity);
|
|
4
|
-
return entry ? Number(entry[0]) : undefined;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=erp-type-from-entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erp-type-from-entity.js","sourceRoot":"","sources":["../../src/utils/erp-type-from-entity.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CACrC,MAAc,EACd,SAAiD;IAEjD,6DAA6D;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1C,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CACxC,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/** A utility to get the type of an error, particularly
|
|
2
|
-
* useful for the purpose of error deduplication
|
|
3
|
-
*
|
|
4
|
-
* Note: prefers 'code' over 'name' in the expectation that this better
|
|
5
|
-
* represents the error type
|
|
6
|
-
*/
|
|
7
|
-
const isNonEmptyString = (v) => typeof v === 'string' && v.trim().length > 0;
|
|
8
|
-
export function getErrorType(error) {
|
|
9
|
-
if (error && typeof error === 'object') {
|
|
10
|
-
const o = error;
|
|
11
|
-
if (isNonEmptyString(o.code))
|
|
12
|
-
return o.code;
|
|
13
|
-
if (isNonEmptyString(o.name))
|
|
14
|
-
return o.name;
|
|
15
|
-
const ctorName = o.constructor?.name;
|
|
16
|
-
if (isNonEmptyString(ctorName) && ctorName !== 'Object')
|
|
17
|
-
return ctorName;
|
|
18
|
-
}
|
|
19
|
-
return 'Error';
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=error-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/utils/error-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAEnG,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,KAA6E,CAAC;QACxF,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC;QAC5C,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC;QACrC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import axios, { AxiosError } from "axios";
|
|
2
|
-
import logger from "../services/reporting-service/logger.js";
|
|
3
|
-
export class HTTPError extends Error {
|
|
4
|
-
status;
|
|
5
|
-
code;
|
|
6
|
-
data;
|
|
7
|
-
constructor(message, status, code, data) {
|
|
8
|
-
super(message);
|
|
9
|
-
this.status = status;
|
|
10
|
-
this.code = code;
|
|
11
|
-
this.data = data;
|
|
12
|
-
this.name = "HTTPError";
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* This is a factory class for creating HTTPClient instances, at least for now
|
|
17
|
-
* just a wrapper around AxiosClient
|
|
18
|
-
*/
|
|
19
|
-
export class HTTPClientFactory {
|
|
20
|
-
static getInstance(config) {
|
|
21
|
-
return new AxiosClient(config.baseUrl, config.retryAttempts);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
class AxiosClient {
|
|
25
|
-
client = null;
|
|
26
|
-
retryAttempts;
|
|
27
|
-
isDestroyed = false;
|
|
28
|
-
inFlightControllers = new Set();
|
|
29
|
-
pendingTimeouts = new Set();
|
|
30
|
-
pendingSleepResolvers = new Set();
|
|
31
|
-
/**
|
|
32
|
-
* Note regarding baseURL, from https://github.com/axios/axios
|
|
33
|
-
* `baseURL` will be prepended to `url` unless `url` is absolute and option `allowAbsoluteUrls` is set to true (the default).
|
|
34
|
-
* It can be convenient to set `baseURL` for an instance of axios to pass relative URLs to methods of that instance.
|
|
35
|
-
*/
|
|
36
|
-
constructor(baseUrl, retryAttempts) {
|
|
37
|
-
this.client = axios.create({
|
|
38
|
-
baseURL: baseUrl,
|
|
39
|
-
timeout: 30000,
|
|
40
|
-
headers: {
|
|
41
|
-
"Content-Type": "application/json",
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
this.retryAttempts = retryAttempts;
|
|
45
|
-
}
|
|
46
|
-
sleep(ms) {
|
|
47
|
-
return new Promise((resolve) => {
|
|
48
|
-
if (this.isDestroyed) {
|
|
49
|
-
resolve();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const timeout = setTimeout(() => {
|
|
53
|
-
this.pendingTimeouts.delete(timeout);
|
|
54
|
-
this.pendingSleepResolvers.delete(resolve);
|
|
55
|
-
resolve();
|
|
56
|
-
}, ms);
|
|
57
|
-
this.pendingTimeouts.add(timeout);
|
|
58
|
-
this.pendingSleepResolvers.add(resolve);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
async request(config) {
|
|
62
|
-
if (this.isDestroyed || !this.client) {
|
|
63
|
-
throw new HTTPError("HTTP client has been destroyed", 500);
|
|
64
|
-
}
|
|
65
|
-
const controller = new AbortController();
|
|
66
|
-
this.inFlightControllers.add(controller);
|
|
67
|
-
const axiosConfig = {
|
|
68
|
-
method: config.method,
|
|
69
|
-
url: config.url,
|
|
70
|
-
headers: config.headers,
|
|
71
|
-
data: config.data,
|
|
72
|
-
params: config.params,
|
|
73
|
-
signal: controller.signal,
|
|
74
|
-
};
|
|
75
|
-
logger.info("HTTP request starting", {
|
|
76
|
-
url: config.url,
|
|
77
|
-
method: config.method,
|
|
78
|
-
baseURL: this.client.defaults.baseURL,
|
|
79
|
-
retryAttempts: this.retryAttempts
|
|
80
|
-
});
|
|
81
|
-
// Extra console.log for debugging
|
|
82
|
-
console.log("=== FULL URL DEBUG ===");
|
|
83
|
-
console.log("baseURL:", this.client.defaults.baseURL);
|
|
84
|
-
console.log("relative url:", config.url);
|
|
85
|
-
console.log("full constructed URL:", (this.client.defaults.baseURL || "") + config.url);
|
|
86
|
-
console.log("method:", config.method);
|
|
87
|
-
let lastError;
|
|
88
|
-
try {
|
|
89
|
-
for (let attempt = 0; attempt <= this.retryAttempts; attempt++) {
|
|
90
|
-
try {
|
|
91
|
-
logger.info(`HTTP request attempt ${attempt + 1}/${this.retryAttempts + 1}`);
|
|
92
|
-
const response = await this.client.request(axiosConfig);
|
|
93
|
-
logger.info("HTTP request succeeded", { status: response.status });
|
|
94
|
-
return {
|
|
95
|
-
data: response.data,
|
|
96
|
-
status: response.status,
|
|
97
|
-
headers: response.headers,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
lastError = error;
|
|
102
|
-
const isAxiosErr = error instanceof AxiosError;
|
|
103
|
-
const code = isAxiosErr ? error.code : undefined;
|
|
104
|
-
const status = isAxiosErr ? error.response?.status : undefined;
|
|
105
|
-
const errorConstructor = error instanceof Error ? error.constructor.name : undefined;
|
|
106
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
107
|
-
logger.info(`HTTP request attempt ${attempt + 1} failed`, {
|
|
108
|
-
errorType: typeof error,
|
|
109
|
-
errorConstructor,
|
|
110
|
-
isAxiosError: isAxiosErr,
|
|
111
|
-
message,
|
|
112
|
-
code,
|
|
113
|
-
status,
|
|
114
|
-
});
|
|
115
|
-
// Don't retry on 4xx errors (client errors)
|
|
116
|
-
if (error instanceof AxiosError &&
|
|
117
|
-
error.response?.status &&
|
|
118
|
-
error.response.status >= 400 &&
|
|
119
|
-
error.response.status < 500) {
|
|
120
|
-
logger.info("Not retrying due to 4xx client error");
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
// Don't retry canceled/aborted requests
|
|
124
|
-
if (error instanceof AxiosError && error.code === "ERR_CANCELED") {
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
// If this was the last attempt, don't wait
|
|
128
|
-
if (attempt < this.retryAttempts) {
|
|
129
|
-
const waitTime = Math.pow(2, attempt) * 1000;
|
|
130
|
-
logger.info(`Waiting ${waitTime}ms before retry`);
|
|
131
|
-
await this.sleep(waitTime);
|
|
132
|
-
if (this.isDestroyed) {
|
|
133
|
-
throw new HTTPError("HTTP client has been destroyed", 500);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
finally {
|
|
140
|
-
this.inFlightControllers.delete(controller);
|
|
141
|
-
}
|
|
142
|
-
logger.info("HTTP request failed after all retries, throwing error");
|
|
143
|
-
throw this.handleError(lastError, config);
|
|
144
|
-
}
|
|
145
|
-
handleError(error, requestConfig) {
|
|
146
|
-
if (error instanceof AxiosError) {
|
|
147
|
-
// Build a more descriptive error message that includes the URL and method
|
|
148
|
-
const baseUrl = this.client?.defaults.baseURL || "";
|
|
149
|
-
const fullUrl = requestConfig
|
|
150
|
-
? `${baseUrl}${requestConfig.url}`
|
|
151
|
-
: "Unknown URL";
|
|
152
|
-
const method = requestConfig?.method || "Unknown method";
|
|
153
|
-
const errorMessage = `${error.message} (${method} ${fullUrl})`;
|
|
154
|
-
return new HTTPError(errorMessage, error.response?.status || 500, error.code, error.response?.data);
|
|
155
|
-
}
|
|
156
|
-
return new HTTPError(error instanceof Error ? error.message : "Unknown error occurred", 500);
|
|
157
|
-
}
|
|
158
|
-
async destroy() {
|
|
159
|
-
if (this.isDestroyed)
|
|
160
|
-
return;
|
|
161
|
-
this.isDestroyed = true;
|
|
162
|
-
// Abort any in-flight requests
|
|
163
|
-
for (const c of this.inFlightControllers) {
|
|
164
|
-
try {
|
|
165
|
-
c.abort();
|
|
166
|
-
}
|
|
167
|
-
catch { /* ignore: abort may throw in some environments */ }
|
|
168
|
-
}
|
|
169
|
-
this.inFlightControllers.clear();
|
|
170
|
-
// Cancel any pending retry waits
|
|
171
|
-
for (const t of this.pendingTimeouts) {
|
|
172
|
-
clearTimeout(t);
|
|
173
|
-
}
|
|
174
|
-
this.pendingTimeouts.clear();
|
|
175
|
-
for (const resolve of this.pendingSleepResolvers) {
|
|
176
|
-
try {
|
|
177
|
-
resolve();
|
|
178
|
-
}
|
|
179
|
-
catch { /* ignore: resolver threw; cleanup proceeds */ }
|
|
180
|
-
}
|
|
181
|
-
this.pendingSleepResolvers.clear();
|
|
182
|
-
// Drop axios instance reference
|
|
183
|
-
this.client = null;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=http-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility functions for data manipulation
|
|
3
|
-
*/
|
|
4
|
-
export { getUniqueRows } from "./uniqueRows.js";
|
|
5
|
-
export { removeExtraneousFields } from "./removeExtraneousFields.js";
|
|
6
|
-
export { getPayloadWithoutIDField } from "./removeIdFieldFromPayload.js";
|
|
7
|
-
export { trimObjectValues } from "./trimObjectValues.js";
|
|
8
|
-
export { cleanupNumbers } from "./cleanup-numbers.js";
|
|
9
|
-
export { addNewFieldFromExternalSource, addNewFieldFromLookupField, } from "./data-transformation.js";
|
|
10
|
-
/**
|
|
11
|
-
* Timezone and time-related utilities
|
|
12
|
-
*/
|
|
13
|
-
export { getTimezoneOffsetAndPersist } from "./time-utils.js";
|
|
14
|
-
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone.js";
|
|
15
|
-
export { applyTimezoneOffsetsToFields } from "./time-utils.js";
|
|
16
|
-
export { convertUtcDateTimeToErpLocal, convertErpLocalDateTimeToUtc, getERPTimezone, } from "./erp-timezone-utils.js";
|
|
17
|
-
export * from "./time-utils.js";
|
|
18
|
-
/**
|
|
19
|
-
* Caching and record tracking utilities
|
|
20
|
-
*/
|
|
21
|
-
export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager.js";
|
|
22
|
-
export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager.js";
|
|
23
|
-
export { BatchCacheManager } from "../services/caching-service/batch-cache-manager.js";
|
|
24
|
-
/**
|
|
25
|
-
* Process and data transformation utilities
|
|
26
|
-
*/
|
|
27
|
-
export { StandardProcessDrivers } from "./standard-process-drivers/index.js";
|
|
28
|
-
export { MMBatchValidationError } from "./standard-process-drivers/index.js";
|
|
29
|
-
export { getCachedTimezoneOffset, getCachedTimezoneName, } from "./local-data-store/jobs-shared-data.js";
|
|
30
|
-
// Local data store
|
|
31
|
-
export { getInitialLoadComplete, setInitialLoadComplete, } from "./local-data-store/jobs-shared-data.js";
|
|
32
|
-
/**
|
|
33
|
-
* ERP API utilities
|
|
34
|
-
*/
|
|
35
|
-
export * from "../services/erp-api-services/rest/rest-api-service.js";
|
|
36
|
-
export * from "../services/erp-api-services/rest/get-query-params.js";
|
|
37
|
-
export { getERPAPITypeFromEntity } from "./erp-type-from-entity.js";
|
|
38
|
-
/**
|
|
39
|
-
* HTTP Client utilities
|
|
40
|
-
*/
|
|
41
|
-
export { HTTPClientFactory } from "./http-client.js";
|
|
42
|
-
export { HTTPError } from "./http-client.js";
|
|
43
|
-
/**
|
|
44
|
-
* MM Labor Ticket utilities
|
|
45
|
-
*/
|
|
46
|
-
export * from "./mm-labor-ticket-helpers.js";
|
|
47
|
-
export { getErrorType } from './error-utils.js';
|
|
48
|
-
/**
|
|
49
|
-
* MM Connector Logger utilities
|
|
50
|
-
*/
|
|
51
|
-
export { MMConnectorLogger, LogEntry } from './connector-log/mm-connector-logger.js';
|
|
52
|
-
export { FileLogDeduper } from './connector-log/log-deduper.js';
|
|
53
|
-
/**
|
|
54
|
-
* Application initializer
|
|
55
|
-
*/
|
|
56
|
-
export * from "./application-initializer.js";
|
|
57
|
-
/**
|
|
58
|
-
* GraphQL utilities
|
|
59
|
-
*/
|
|
60
|
-
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service.js";
|
|
61
|
-
export { OAuthClient } from "../services/erp-api-services/oauth-client.js";
|
|
62
|
-
/**
|
|
63
|
-
* Connector factory utilities
|
|
64
|
-
*/
|
|
65
|
-
export { createConnectorFromPath } from "./connector-factory.js";
|
|
66
|
-
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAEhD,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;GAEG;AACH,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAyC,MAAM,wCAAwC,CAAC;AAC5H,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;GAEG;AACH,cAAc,8BAA8B,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAE3E;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { readDatabaseLockState, writeDatabaseLockState, } from "./jobs-shared-data.js";
|
|
2
|
-
/**
|
|
3
|
-
* Gets the current database lock state
|
|
4
|
-
* @returns The current database lock state
|
|
5
|
-
*/
|
|
6
|
-
export const getDatabaseLock = () => {
|
|
7
|
-
const data = readDatabaseLockState();
|
|
8
|
-
return (data.databaseLock ?? {
|
|
9
|
-
isLocked: false,
|
|
10
|
-
lockedBy: "",
|
|
11
|
-
lockedAt: null,
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Attempts to acquire the database lock
|
|
16
|
-
* @param processName Name of the process requesting the lock
|
|
17
|
-
* @returns true if lock was acquired, false if database is already locked
|
|
18
|
-
*/
|
|
19
|
-
export const acquireDatabaseLock = (processName) => {
|
|
20
|
-
const data = readDatabaseLockState();
|
|
21
|
-
const currentLock = data.databaseLock ?? {
|
|
22
|
-
isLocked: false,
|
|
23
|
-
lockedBy: "",
|
|
24
|
-
lockedAt: null,
|
|
25
|
-
};
|
|
26
|
-
if (currentLock.isLocked) {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
data.databaseLock = {
|
|
30
|
-
isLocked: true,
|
|
31
|
-
lockedBy: processName,
|
|
32
|
-
lockedAt: new Date().toISOString(),
|
|
33
|
-
};
|
|
34
|
-
writeDatabaseLockState(data);
|
|
35
|
-
return true;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Releases the database lock
|
|
39
|
-
* @param processName Name of the process releasing the lock
|
|
40
|
-
* @returns true if lock was released, false if process doesn't own the lock
|
|
41
|
-
*/
|
|
42
|
-
export const releaseDatabaseLock = (processName) => {
|
|
43
|
-
const data = readDatabaseLockState();
|
|
44
|
-
const currentLock = data.databaseLock ?? {
|
|
45
|
-
isLocked: false,
|
|
46
|
-
lockedBy: "",
|
|
47
|
-
lockedAt: null,
|
|
48
|
-
};
|
|
49
|
-
if (!currentLock.isLocked || currentLock.lockedBy !== processName) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
data.databaseLock = {
|
|
53
|
-
isLocked: false,
|
|
54
|
-
lockedBy: "",
|
|
55
|
-
lockedAt: null,
|
|
56
|
-
};
|
|
57
|
-
writeDatabaseLockState(data);
|
|
58
|
-
return true;
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Checks if the database is available for use
|
|
62
|
-
* @returns true if database is available, false if locked
|
|
63
|
-
*/
|
|
64
|
-
export const isDatabaseAvailable = () => {
|
|
65
|
-
const lock = getDatabaseLock();
|
|
66
|
-
return !lock.isLocked;
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=database-lock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-lock.js","sourceRoot":"","sources":["../../../src/utils/local-data-store/database-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAQ/B;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAiB,EAAE;IAChD,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,OAAO,CACJ,IAAI,CAAC,YAA6B,IAAI;QACrC,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAW,EAAE;IAClE,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAI,IAAI,CAAC,YAA6B,IAAI;QACzD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,GAAG;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC;IACF,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAW,EAAE;IAClE,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAI,IAAI,CAAC,YAA6B,IAAI;QACzD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,GAAG;QAClB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IAC/C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxB,CAAC,CAAC"}
|