@machinemetrics/mm-erp-sdk 0.2.0-beta.3 → 0.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/index.d.ts +43 -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 +104 -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.js +40 -39
- 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 +43 -36
- package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +36 -35
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
- package/dist/services/data-sync-service/jobs/run-migrations.js +22 -21
- package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
- package/dist/services/data-sync-service/jobs/to-erp.js +57 -48
- package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
- package/dist/services/data-sync-service/nats-labor-ticket-listener.js +290 -0
- package/dist/services/data-sync-service/nats-labor-ticket-listener.js.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/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/company-info.js +60 -0
- package/dist/services/mm-api-service/company-info.js.map +1 -0
- package/dist/services/mm-api-service/index.d.ts +8 -8
- package/dist/services/mm-api-service/index.d.ts.map +1 -1
- package/dist/services/mm-api-service/index.js +20 -0
- package/dist/services/mm-api-service/index.js.map +1 -0
- package/dist/services/mm-api-service/mm-api-service.d.ts +7 -7
- package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
- package/dist/services/mm-api-service/mm-api-service.js +531 -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.js +56 -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/nats-service/nats-service.js +244 -0
- package/dist/services/nats-service/nats-service.js.map +1 -0
- package/dist/services/nats-service/test-nats-subscriber.js +79 -0
- package/dist/services/nats-service/test-nats-subscriber.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 +246 -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 +1 -1
- 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/index.d.ts +2 -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/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-formatter.js +184 -0
- package/dist/utils/error-formatter.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 +187 -0
- package/dist/utils/http-client.js.map +1 -0
- package/dist/utils/index.d.ts +35 -35
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +69 -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.js +116 -0
- package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -0
- package/dist/utils/mm-labor-ticket-helpers.d.ts +1 -1
- package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
- package/dist/utils/mm-labor-ticket-helpers.js +23 -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 +1 -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 +165 -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 +4 -4
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/mm-entity-processor.js +168 -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 +4 -4
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/standard-process-drivers.js +324 -0
- package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -0
- package/dist/utils/time-utils.js +96 -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 +5 -6
- package/src/index.ts +43 -43
- 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 +2 -2
- package/src/services/data-sync-service/data-sync-service.ts +12 -11
- package/src/services/data-sync-service/index.ts +3 -3
- package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +3 -3
- package/src/services/data-sync-service/jobs/from-erp.ts +6 -6
- package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +2 -2
- package/src/services/data-sync-service/jobs/run-migrations.ts +2 -2
- package/src/services/data-sync-service/jobs/to-erp.ts +3 -3
- package/src/services/data-sync-service/nats-labor-ticket-listener.ts +8 -8
- 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 +3 -3
- package/src/services/mm-api-service/index.ts +8 -8
- package/src/services/mm-api-service/mm-api-service.ts +10 -10
- 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/nats-service/nats-service.ts +1 -1
- package/src/services/nats-service/test-nats-subscriber.ts +1 -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 +109 -42
- 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 +1 -1
- package/src/types/index.ts +2 -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/erp-type-from-entity.ts +1 -1
- package/src/utils/http-client.ts +1 -1
- package/src/utils/index.ts +35 -35
- package/src/utils/local-data-store/database-lock.ts +1 -1
- package/src/utils/mm-labor-ticket-helpers.ts +2 -2
- 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 +6 -6
- package/src/utils/standard-process-drivers/mm-entity-processor.ts +7 -7
- package/src/utils/standard-process-drivers/standard-process-drivers.ts +6 -6
- package/src/utils/time-utils.ts +3 -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
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error formatter utility for standardizing error messages across connectors
|
|
3
|
+
* Extracts human-readable messages from various error types (axios, custom errors, etc.)
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extract meaningful error message from various error types
|
|
7
|
+
*/
|
|
8
|
+
export function formatError(error) {
|
|
9
|
+
if (!error) {
|
|
10
|
+
return {
|
|
11
|
+
message: 'Unknown error occurred',
|
|
12
|
+
code: 'UNKNOWN_ERROR',
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// Handle axios errors FIRST (before checking for FormattedError)
|
|
16
|
+
// because axios errors also have message and code properties
|
|
17
|
+
if (error.isAxiosError || error.name === 'AxiosError') {
|
|
18
|
+
return formatAxiosError(error);
|
|
19
|
+
}
|
|
20
|
+
// If it's already a FormattedError, return as-is
|
|
21
|
+
// Check for httpStatus or metadata to distinguish from axios errors
|
|
22
|
+
if (error.message && error.code && typeof error.message === 'string' && typeof error.code === 'string' && !error.config) {
|
|
23
|
+
return error;
|
|
24
|
+
}
|
|
25
|
+
// Handle standard Error objects
|
|
26
|
+
if (error instanceof Error) {
|
|
27
|
+
return {
|
|
28
|
+
message: error.message || 'An error occurred',
|
|
29
|
+
code: 'ERROR',
|
|
30
|
+
metadata: {
|
|
31
|
+
name: error.name,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// Handle string errors
|
|
36
|
+
if (typeof error === 'string') {
|
|
37
|
+
return {
|
|
38
|
+
message: error,
|
|
39
|
+
code: 'ERROR',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Last resort: try to extract any useful info
|
|
43
|
+
const message = error.message || error.toString?.() || 'Unknown error occurred';
|
|
44
|
+
return {
|
|
45
|
+
message: typeof message === 'string' ? message : JSON.stringify(message),
|
|
46
|
+
code: error.code || 'UNKNOWN_ERROR',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Format axios-specific errors with detailed context
|
|
51
|
+
*/
|
|
52
|
+
function formatAxiosError(error) {
|
|
53
|
+
const httpStatus = error.response?.status;
|
|
54
|
+
const method = error.config?.method?.toUpperCase();
|
|
55
|
+
const url = error.config?.url;
|
|
56
|
+
// First check if connector already extracted the message
|
|
57
|
+
let message = error._extractedMessage;
|
|
58
|
+
// If not, try to extract from response data
|
|
59
|
+
if (!message) {
|
|
60
|
+
const extractedMessage = extractErrorMessage(error.response?.data);
|
|
61
|
+
message = extractedMessage || error.response?.statusText || error.message || 'Request failed';
|
|
62
|
+
}
|
|
63
|
+
// Determine error code based on status
|
|
64
|
+
const code = categorizeHttpError(httpStatus);
|
|
65
|
+
const metadata = {
|
|
66
|
+
method,
|
|
67
|
+
url,
|
|
68
|
+
};
|
|
69
|
+
// Add additional context for specific error types
|
|
70
|
+
if (httpStatus === 401 || httpStatus === 403) {
|
|
71
|
+
metadata.hint = 'Check authentication credentials';
|
|
72
|
+
}
|
|
73
|
+
else if (httpStatus === 404) {
|
|
74
|
+
metadata.hint = 'Resource not found - check endpoint URL';
|
|
75
|
+
}
|
|
76
|
+
else if (httpStatus && httpStatus >= 500) {
|
|
77
|
+
metadata.hint = 'ERP system may be temporarily unavailable';
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
message,
|
|
81
|
+
code,
|
|
82
|
+
httpStatus,
|
|
83
|
+
metadata,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extract meaningful error message from response data
|
|
88
|
+
* Handles various ERP-specific response formats
|
|
89
|
+
*/
|
|
90
|
+
function extractErrorMessage(data) {
|
|
91
|
+
if (!data)
|
|
92
|
+
return null;
|
|
93
|
+
// Common error message fields across different ERPs
|
|
94
|
+
const possibleFields = [
|
|
95
|
+
'ErrorMessage', // Epicor
|
|
96
|
+
'error.message', // Common REST format
|
|
97
|
+
'error', // Simple format
|
|
98
|
+
'Message', // .NET style
|
|
99
|
+
'message', // JavaScript style
|
|
100
|
+
'errorMessage', // Camel case
|
|
101
|
+
'error_message', // Snake case
|
|
102
|
+
'errors[0].message', // Array of errors
|
|
103
|
+
'title', // Problem details format
|
|
104
|
+
'detail', // Problem details format
|
|
105
|
+
];
|
|
106
|
+
for (const field of possibleFields) {
|
|
107
|
+
const value = getNestedValue(data, field);
|
|
108
|
+
if (value && typeof value === 'string') {
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// If data is a string, return it
|
|
113
|
+
if (typeof data === 'string') {
|
|
114
|
+
// Try to parse as JSON first
|
|
115
|
+
try {
|
|
116
|
+
const parsed = JSON.parse(data);
|
|
117
|
+
return extractErrorMessage(parsed);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return data;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get nested value from object using dot notation
|
|
127
|
+
*/
|
|
128
|
+
function getNestedValue(obj, path) {
|
|
129
|
+
const parts = path.split('.');
|
|
130
|
+
let current = obj;
|
|
131
|
+
for (const part of parts) {
|
|
132
|
+
// Handle array notation like 'errors[0]'
|
|
133
|
+
const arrayMatch = part.match(/(\w+)\[(\d+)\]/);
|
|
134
|
+
if (arrayMatch) {
|
|
135
|
+
const [, key, index] = arrayMatch;
|
|
136
|
+
current = current?.[key]?.[parseInt(index, 10)];
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
current = current?.[part];
|
|
140
|
+
}
|
|
141
|
+
if (current === undefined || current === null) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return current;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Categorize HTTP errors into standard codes
|
|
149
|
+
*/
|
|
150
|
+
function categorizeHttpError(status) {
|
|
151
|
+
if (!status)
|
|
152
|
+
return 'NETWORK_ERROR';
|
|
153
|
+
if (status === 400)
|
|
154
|
+
return 'VALIDATION_ERROR';
|
|
155
|
+
if (status === 401)
|
|
156
|
+
return 'AUTHENTICATION_ERROR';
|
|
157
|
+
if (status === 403)
|
|
158
|
+
return 'AUTHORIZATION_ERROR';
|
|
159
|
+
if (status === 404)
|
|
160
|
+
return 'NOT_FOUND';
|
|
161
|
+
if (status === 409)
|
|
162
|
+
return 'CONFLICT';
|
|
163
|
+
if (status === 422)
|
|
164
|
+
return 'VALIDATION_ERROR';
|
|
165
|
+
if (status === 429)
|
|
166
|
+
return 'RATE_LIMIT';
|
|
167
|
+
if (status >= 500)
|
|
168
|
+
return 'ERP_SERVER_ERROR';
|
|
169
|
+
if (status >= 400)
|
|
170
|
+
return 'CLIENT_ERROR';
|
|
171
|
+
return 'HTTP_ERROR';
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Format error for logging (shorter, cleaner version)
|
|
175
|
+
*/
|
|
176
|
+
export function formatErrorForLogging(error) {
|
|
177
|
+
const formatted = formatError(error);
|
|
178
|
+
let message = `[${formatted.code}] ${formatted.message}`;
|
|
179
|
+
if (formatted.httpStatus) {
|
|
180
|
+
message = `[${formatted.httpStatus}] ${message}`;
|
|
181
|
+
}
|
|
182
|
+
return message;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=error-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,187 @@
|
|
|
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
|
+
const timeout = parseInt(process.env.MM_API_TIMEOUT || "30000");
|
|
38
|
+
this.client = axios.create({
|
|
39
|
+
baseURL: baseUrl,
|
|
40
|
+
timeout: timeout,
|
|
41
|
+
headers: {
|
|
42
|
+
"Content-Type": "application/json",
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
this.retryAttempts = retryAttempts;
|
|
46
|
+
}
|
|
47
|
+
sleep(ms) {
|
|
48
|
+
return new Promise((resolve) => {
|
|
49
|
+
if (this.isDestroyed) {
|
|
50
|
+
resolve();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const timeout = setTimeout(() => {
|
|
54
|
+
this.pendingTimeouts.delete(timeout);
|
|
55
|
+
this.pendingSleepResolvers.delete(resolve);
|
|
56
|
+
resolve();
|
|
57
|
+
}, ms);
|
|
58
|
+
this.pendingTimeouts.add(timeout);
|
|
59
|
+
this.pendingSleepResolvers.add(resolve);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async request(config) {
|
|
63
|
+
if (this.isDestroyed || !this.client) {
|
|
64
|
+
throw new HTTPError("HTTP client has been destroyed", 500);
|
|
65
|
+
}
|
|
66
|
+
const controller = new AbortController();
|
|
67
|
+
this.inFlightControllers.add(controller);
|
|
68
|
+
const axiosConfig = {
|
|
69
|
+
method: config.method,
|
|
70
|
+
url: config.url,
|
|
71
|
+
headers: config.headers,
|
|
72
|
+
data: config.data,
|
|
73
|
+
params: config.params,
|
|
74
|
+
signal: controller.signal,
|
|
75
|
+
};
|
|
76
|
+
logger.info("HTTP request starting", {
|
|
77
|
+
url: config.url,
|
|
78
|
+
method: config.method,
|
|
79
|
+
baseURL: this.client.defaults.baseURL,
|
|
80
|
+
retryAttempts: this.retryAttempts
|
|
81
|
+
});
|
|
82
|
+
// Extra console.log for debugging
|
|
83
|
+
console.log("=== FULL URL DEBUG ===");
|
|
84
|
+
console.log("baseURL:", this.client.defaults.baseURL);
|
|
85
|
+
console.log("relative url:", config.url);
|
|
86
|
+
console.log("full constructed URL:", (this.client.defaults.baseURL || "") + config.url);
|
|
87
|
+
console.log("method:", config.method);
|
|
88
|
+
let lastError;
|
|
89
|
+
try {
|
|
90
|
+
for (let attempt = 0; attempt <= this.retryAttempts; attempt++) {
|
|
91
|
+
try {
|
|
92
|
+
logger.info(`HTTP request attempt ${attempt + 1}/${this.retryAttempts + 1}`);
|
|
93
|
+
const response = await this.client.request(axiosConfig);
|
|
94
|
+
logger.info("HTTP request succeeded", { status: response.status });
|
|
95
|
+
return {
|
|
96
|
+
data: response.data,
|
|
97
|
+
status: response.status,
|
|
98
|
+
headers: response.headers,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
lastError = error;
|
|
103
|
+
const isAxiosErr = error instanceof AxiosError;
|
|
104
|
+
const code = isAxiosErr ? error.code : undefined;
|
|
105
|
+
const status = isAxiosErr ? error.response?.status : undefined;
|
|
106
|
+
const errorConstructor = error instanceof Error ? error.constructor.name : undefined;
|
|
107
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
108
|
+
logger.info(`HTTP request attempt ${attempt + 1} failed`, {
|
|
109
|
+
errorType: typeof error,
|
|
110
|
+
errorConstructor,
|
|
111
|
+
isAxiosError: isAxiosErr,
|
|
112
|
+
message,
|
|
113
|
+
code,
|
|
114
|
+
status,
|
|
115
|
+
});
|
|
116
|
+
// Don't retry on 4xx errors (client errors)
|
|
117
|
+
if (error instanceof AxiosError &&
|
|
118
|
+
error.response?.status &&
|
|
119
|
+
error.response.status >= 400 &&
|
|
120
|
+
error.response.status < 500) {
|
|
121
|
+
logger.info("Not retrying due to 4xx client error");
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
// Don't retry canceled/aborted requests
|
|
125
|
+
if (error instanceof AxiosError && error.code === "ERR_CANCELED") {
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
// If this was the last attempt, don't wait
|
|
129
|
+
if (attempt < this.retryAttempts) {
|
|
130
|
+
const waitTime = Math.pow(2, attempt) * 1000;
|
|
131
|
+
logger.info(`Waiting ${waitTime}ms before retry`);
|
|
132
|
+
await this.sleep(waitTime);
|
|
133
|
+
if (this.isDestroyed) {
|
|
134
|
+
throw new HTTPError("HTTP client has been destroyed", 500);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
this.inFlightControllers.delete(controller);
|
|
142
|
+
}
|
|
143
|
+
logger.info("HTTP request failed after all retries, throwing error");
|
|
144
|
+
throw this.handleError(lastError, config);
|
|
145
|
+
}
|
|
146
|
+
handleError(error, requestConfig) {
|
|
147
|
+
if (error instanceof AxiosError) {
|
|
148
|
+
// Build a more descriptive error message that includes the URL and method
|
|
149
|
+
const baseUrl = this.client?.defaults.baseURL || "";
|
|
150
|
+
const fullUrl = requestConfig
|
|
151
|
+
? `${baseUrl}${requestConfig.url}`
|
|
152
|
+
: "Unknown URL";
|
|
153
|
+
const method = requestConfig?.method || "Unknown method";
|
|
154
|
+
const errorMessage = `${error.message} (${method} ${fullUrl})`;
|
|
155
|
+
return new HTTPError(errorMessage, error.response?.status || 500, error.code, error.response?.data);
|
|
156
|
+
}
|
|
157
|
+
return new HTTPError(error instanceof Error ? error.message : "Unknown error occurred", 500);
|
|
158
|
+
}
|
|
159
|
+
async destroy() {
|
|
160
|
+
if (this.isDestroyed)
|
|
161
|
+
return;
|
|
162
|
+
this.isDestroyed = true;
|
|
163
|
+
// Abort any in-flight requests
|
|
164
|
+
for (const c of this.inFlightControllers) {
|
|
165
|
+
try {
|
|
166
|
+
c.abort();
|
|
167
|
+
}
|
|
168
|
+
catch { /* ignore: abort may throw in some environments */ }
|
|
169
|
+
}
|
|
170
|
+
this.inFlightControllers.clear();
|
|
171
|
+
// Cancel any pending retry waits
|
|
172
|
+
for (const t of this.pendingTimeouts) {
|
|
173
|
+
clearTimeout(t);
|
|
174
|
+
}
|
|
175
|
+
this.pendingTimeouts.clear();
|
|
176
|
+
for (const resolve of this.pendingSleepResolvers) {
|
|
177
|
+
try {
|
|
178
|
+
resolve();
|
|
179
|
+
}
|
|
180
|
+
catch { /* ignore: resolver threw; cleanup proceeds */ }
|
|
181
|
+
}
|
|
182
|
+
this.pendingSleepResolvers.clear();
|
|
183
|
+
// Drop axios instance reference
|
|
184
|
+
this.client = null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,72 +1,72 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility functions for data manipulation
|
|
3
3
|
*/
|
|
4
|
-
export { getUniqueRows } from "./uniqueRows";
|
|
5
|
-
export { removeExtraneousFields } from "./removeExtraneousFields";
|
|
6
|
-
export { getPayloadWithoutIDField } from "./removeIdFieldFromPayload";
|
|
7
|
-
export { trimObjectValues } from "./trimObjectValues";
|
|
8
|
-
export { cleanupNumbers } from "./cleanup-numbers";
|
|
9
|
-
export { addNewFieldFromExternalSource, addNewFieldFromLookupField, } from "./data-transformation";
|
|
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
10
|
/**
|
|
11
11
|
* Timezone and time-related utilities
|
|
12
12
|
*/
|
|
13
|
-
export { getTimezoneOffsetAndPersist } from "./time-utils";
|
|
14
|
-
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone";
|
|
15
|
-
export { applyTimezoneOffsetsToFields } from "./time-utils";
|
|
16
|
-
export * from "./time-utils";
|
|
13
|
+
export { getTimezoneOffsetAndPersist } from "./time-utils.js";
|
|
14
|
+
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone.js";
|
|
15
|
+
export { applyTimezoneOffsetsToFields } from "./time-utils.js";
|
|
16
|
+
export * from "./time-utils.js";
|
|
17
17
|
/**
|
|
18
18
|
* Caching and record tracking utilities
|
|
19
19
|
*/
|
|
20
|
-
export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager";
|
|
21
|
-
export type { RecordTrackingObject } from "../services/caching-service/record-tracking-manager";
|
|
22
|
-
export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager";
|
|
23
|
-
export { BatchCacheManager } from "../services/caching-service/batch-cache-manager";
|
|
20
|
+
export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager.js";
|
|
21
|
+
export type { RecordTrackingObject } 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
24
|
/**
|
|
25
25
|
* Process and data transformation utilities
|
|
26
26
|
*/
|
|
27
|
-
export { StandardProcessDrivers } from "./standard-process-drivers/";
|
|
28
|
-
export type { WriteEntitiesToMMResult } from "./standard-process-drivers/";
|
|
29
|
-
export { MMBatchValidationError } from "./standard-process-drivers/";
|
|
30
|
-
export { getCachedTimezoneOffset, getCachedTimezoneName, } from "./local-data-store/jobs-shared-data";
|
|
31
|
-
export { getInitialLoadComplete, setInitialLoadComplete, } from "./local-data-store/jobs-shared-data";
|
|
27
|
+
export { StandardProcessDrivers } from "./standard-process-drivers/index.js";
|
|
28
|
+
export type { WriteEntitiesToMMResult } from "./standard-process-drivers/index.js";
|
|
29
|
+
export { MMBatchValidationError } from "./standard-process-drivers/index.js";
|
|
30
|
+
export { getCachedTimezoneOffset, getCachedTimezoneName, } from "./local-data-store/jobs-shared-data.js";
|
|
31
|
+
export { getInitialLoadComplete, setInitialLoadComplete, } from "./local-data-store/jobs-shared-data.js";
|
|
32
32
|
/**
|
|
33
33
|
* ERP API utilities
|
|
34
34
|
*/
|
|
35
|
-
export * from "../services/erp-api-services/rest/rest-api-service";
|
|
36
|
-
export * from "../services/erp-api-services/rest/get-query-params";
|
|
37
|
-
export { getERPAPITypeFromEntity } from "./erp-type-from-entity";
|
|
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
38
|
/**
|
|
39
39
|
* HTTP Client utilities
|
|
40
40
|
*/
|
|
41
|
-
export { HTTPClientFactory } from "./http-client";
|
|
42
|
-
export { HTTPError } from "./http-client";
|
|
43
|
-
export type { HTTPClient, HTTPRequestConfig, HTTPResponse } from "./http-client";
|
|
41
|
+
export { HTTPClientFactory } from "./http-client.js";
|
|
42
|
+
export { HTTPError } from "./http-client.js";
|
|
43
|
+
export type { HTTPClient, HTTPRequestConfig, HTTPResponse } from "./http-client.js";
|
|
44
44
|
/**
|
|
45
45
|
* MM Labor Ticket utilities
|
|
46
46
|
*/
|
|
47
|
-
export * from "./mm-labor-ticket-helpers";
|
|
48
|
-
export { getErrorType } from './error-utils';
|
|
47
|
+
export * from "./mm-labor-ticket-helpers.js";
|
|
48
|
+
export { getErrorType } from './error-utils.js';
|
|
49
49
|
/**
|
|
50
50
|
* Error formatting utilities
|
|
51
51
|
*/
|
|
52
|
-
export { formatError, formatErrorForLogging } from './error-formatter';
|
|
53
|
-
export type { FormattedError } from './error-formatter';
|
|
52
|
+
export { formatError, formatErrorForLogging } from './error-formatter.js';
|
|
53
|
+
export type { FormattedError } from './error-formatter.js';
|
|
54
54
|
/**
|
|
55
55
|
* MM Connector Logger utilities
|
|
56
56
|
*/
|
|
57
|
-
export { MMConnectorLogger, LogEntry, type LogResponse, type LogLevelString } from './connector-log/mm-connector-logger';
|
|
58
|
-
export { FileLogDeduper } from './connector-log/log-deduper';
|
|
57
|
+
export { MMConnectorLogger, LogEntry, type LogResponse, type LogLevelString } from './connector-log/mm-connector-logger.js';
|
|
58
|
+
export { FileLogDeduper } from './connector-log/log-deduper.js';
|
|
59
59
|
/**
|
|
60
60
|
* Application initializer
|
|
61
61
|
*/
|
|
62
|
-
export * from "./application-initializer";
|
|
62
|
+
export * from "./application-initializer.js";
|
|
63
63
|
/**
|
|
64
64
|
* GraphQL utilities
|
|
65
65
|
*/
|
|
66
|
-
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service";
|
|
67
|
-
export { OAuthClient } from "../services/erp-api-services/oauth-client";
|
|
66
|
+
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service.js";
|
|
67
|
+
export { OAuthClient } from "../services/erp-api-services/oauth-client.js";
|
|
68
68
|
/**
|
|
69
69
|
* Connector factory utilities
|
|
70
70
|
*/
|
|
71
|
-
export { createConnectorFromPath } from "./connector-factory";
|
|
71
|
+
export { createConnectorFromPath } from "./connector-factory.js";
|
|
72
72
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","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,cAAc,iBAAiB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,YAAY,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AACnG,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;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAGhD,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;AAC7C,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpF;;GAEG;AACH,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
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 * from "./time-utils.js";
|
|
17
|
+
/**
|
|
18
|
+
* Caching and record tracking utilities
|
|
19
|
+
*/
|
|
20
|
+
export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager.js";
|
|
21
|
+
export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager.js";
|
|
22
|
+
export { BatchCacheManager } from "../services/caching-service/batch-cache-manager.js";
|
|
23
|
+
/**
|
|
24
|
+
* Process and data transformation utilities
|
|
25
|
+
*/
|
|
26
|
+
export { StandardProcessDrivers } from "./standard-process-drivers/index.js";
|
|
27
|
+
export { MMBatchValidationError } from "./standard-process-drivers/index.js";
|
|
28
|
+
export { getCachedTimezoneOffset, getCachedTimezoneName, } from "./local-data-store/jobs-shared-data.js";
|
|
29
|
+
// Local data store
|
|
30
|
+
export { getInitialLoadComplete, setInitialLoadComplete, } from "./local-data-store/jobs-shared-data.js";
|
|
31
|
+
/**
|
|
32
|
+
* ERP API utilities
|
|
33
|
+
*/
|
|
34
|
+
export * from "../services/erp-api-services/rest/rest-api-service.js";
|
|
35
|
+
export * from "../services/erp-api-services/rest/get-query-params.js";
|
|
36
|
+
export { getERPAPITypeFromEntity } from "./erp-type-from-entity.js";
|
|
37
|
+
/**
|
|
38
|
+
* HTTP Client utilities
|
|
39
|
+
*/
|
|
40
|
+
export { HTTPClientFactory } from "./http-client.js";
|
|
41
|
+
export { HTTPError } from "./http-client.js";
|
|
42
|
+
/**
|
|
43
|
+
* MM Labor Ticket utilities
|
|
44
|
+
*/
|
|
45
|
+
export * from "./mm-labor-ticket-helpers.js";
|
|
46
|
+
export { getErrorType } from './error-utils.js';
|
|
47
|
+
/**
|
|
48
|
+
* Error formatting utilities
|
|
49
|
+
*/
|
|
50
|
+
export { formatError, formatErrorForLogging } from './error-formatter.js';
|
|
51
|
+
/**
|
|
52
|
+
* MM Connector Logger utilities
|
|
53
|
+
*/
|
|
54
|
+
export { MMConnectorLogger, LogEntry } from './connector-log/mm-connector-logger.js';
|
|
55
|
+
export { FileLogDeduper } from './connector-log/log-deduper.js';
|
|
56
|
+
/**
|
|
57
|
+
* Application initializer
|
|
58
|
+
*/
|
|
59
|
+
export * from "./application-initializer.js";
|
|
60
|
+
/**
|
|
61
|
+
* GraphQL utilities
|
|
62
|
+
*/
|
|
63
|
+
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service.js";
|
|
64
|
+
export { OAuthClient } from "../services/erp-api-services/oauth-client.js";
|
|
65
|
+
/**
|
|
66
|
+
* Connector factory utilities
|
|
67
|
+
*/
|
|
68
|
+
export { createConnectorFromPath } from "./connector-factory.js";
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,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,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG1E;;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"}
|