@machinemetrics/mm-erp-sdk 0.1.9-beta.5 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/index.d.ts +42 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +19 -0
- package/dist/knexfile.js.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.d.ts +4 -0
- package/dist/migrations/20241015162631_create_cache_table.d.ts.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.js +11 -15
- package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +4 -0
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +1 -0
- package/dist/migrations/20241015162632_create_sdk_cache_table.js +11 -15
- package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +4 -0
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +1 -0
- package/dist/migrations/20250103162631_create_record_tracking_table.js +14 -15
- package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
- package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
- package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
- package/dist/services/caching-service/batch-cache-manager.js +84 -0
- package/dist/services/caching-service/batch-cache-manager.js.map +1 -0
- package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
- package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
- package/dist/services/caching-service/hashed-cache-manager.js +223 -0
- package/dist/services/caching-service/hashed-cache-manager.js.map +1 -0
- package/dist/services/caching-service/index.d.ts +1 -1
- package/dist/services/caching-service/index.d.ts.map +1 -1
- package/dist/services/caching-service/index.js +2 -0
- package/dist/services/caching-service/index.js.map +1 -0
- package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
- package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
- package/dist/services/caching-service/record-tracking-manager.js +28 -0
- package/dist/services/caching-service/record-tracking-manager.js.map +1 -0
- package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
- package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
- package/dist/services/data-sync-service/configuration-manager.js +163 -0
- package/dist/services/data-sync-service/configuration-manager.js.map +1 -0
- package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
- package/dist/services/data-sync-service/data-sync-service.js +95 -0
- package/dist/services/data-sync-service/data-sync-service.js.map +1 -0
- package/dist/services/data-sync-service/index.d.ts +3 -3
- package/dist/services/data-sync-service/index.d.ts.map +1 -1
- package/dist/services/data-sync-service/index.js +10 -0
- package/dist/services/data-sync-service/index.js.map +1 -0
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.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 +48 -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.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/to-erp.js +48 -45
- package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
- package/dist/services/erp-api-services/errors.d.ts +1 -1
- package/dist/services/erp-api-services/errors.d.ts.map +1 -1
- package/dist/services/erp-api-services/errors.js +83 -0
- package/dist/services/erp-api-services/errors.js.map +1 -0
- package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
- package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
- package/dist/services/erp-api-services/graphql/graphql-service.js +102 -0
- package/dist/services/erp-api-services/graphql/graphql-service.js.map +1 -0
- package/dist/services/erp-api-services/graphql/types.js +6 -0
- package/dist/services/erp-api-services/graphql/types.js.map +1 -0
- package/dist/services/erp-api-services/index.d.ts +8 -8
- package/dist/services/erp-api-services/index.d.ts.map +1 -1
- package/dist/services/erp-api-services/index.js +13 -0
- package/dist/services/erp-api-services/index.js.map +1 -0
- package/dist/services/erp-api-services/oauth-client.js +41 -0
- package/dist/services/erp-api-services/oauth-client.js.map +1 -0
- package/dist/services/erp-api-services/rest/get-query-params.js +23 -0
- package/dist/services/erp-api-services/rest/get-query-params.js.map +1 -0
- package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
- package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
- package/dist/services/erp-api-services/rest/rest-api-service.js +163 -0
- package/dist/services/erp-api-services/rest/rest-api-service.js.map +1 -0
- package/dist/services/erp-api-services/types.d.ts +2 -2
- package/dist/services/erp-api-services/types.d.ts.map +1 -1
- package/dist/services/erp-api-services/types.js +2 -0
- package/dist/services/erp-api-services/types.js.map +1 -0
- package/dist/services/mm-api-service/index.d.ts +6 -13
- package/dist/services/mm-api-service/index.d.ts.map +1 -1
- package/dist/services/mm-api-service/index.js +15 -0
- package/dist/services/mm-api-service/index.js.map +1 -0
- package/dist/services/mm-api-service/mm-api-service.d.ts +7 -13
- package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
- package/dist/services/mm-api-service/mm-api-service.js +519 -0
- package/dist/services/mm-api-service/mm-api-service.js.map +1 -0
- package/dist/services/mm-api-service/token-mgr.js +113 -0
- package/dist/services/mm-api-service/token-mgr.js.map +1 -0
- package/dist/services/mm-api-service/types/checkpoint.js +2 -0
- package/dist/services/mm-api-service/types/checkpoint.js.map +1 -0
- package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
- package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
- package/dist/services/mm-api-service/types/entity-transformer.js +186 -0
- package/dist/services/mm-api-service/types/entity-transformer.js.map +1 -0
- package/dist/services/mm-api-service/types/mm-response-interfaces.js +34 -0
- package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -0
- package/dist/services/mm-api-service/types/receive-types.js +55 -0
- package/dist/services/mm-api-service/types/receive-types.js.map +1 -0
- package/dist/services/mm-api-service/types/send-types.js +337 -0
- package/dist/services/mm-api-service/types/send-types.js.map +1 -0
- package/dist/services/psql-erp-service/configuration.js +2 -0
- package/dist/services/psql-erp-service/configuration.js.map +1 -0
- package/dist/services/psql-erp-service/index.d.ts +3 -3
- package/dist/services/psql-erp-service/index.d.ts.map +1 -1
- package/dist/services/psql-erp-service/index.js +10 -0
- package/dist/services/psql-erp-service/index.js.map +1 -0
- package/dist/services/psql-erp-service/internal/types/psql-types.js +5 -0
- package/dist/services/psql-erp-service/internal/types/psql-types.js.map +1 -0
- package/dist/services/psql-erp-service/psql-helpers.js +99 -0
- package/dist/services/psql-erp-service/psql-helpers.js.map +1 -0
- package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
- package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
- package/dist/services/psql-erp-service/psql-service.js +187 -0
- package/dist/services/psql-erp-service/psql-service.js.map +1 -0
- package/dist/services/reporting-service/index.d.ts +1 -1
- package/dist/services/reporting-service/index.d.ts.map +1 -1
- package/dist/services/reporting-service/index.js +5 -0
- package/dist/services/reporting-service/index.js.map +1 -0
- package/dist/services/reporting-service/logger.d.ts.map +1 -1
- package/dist/services/reporting-service/logger.js +217 -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-utils.js +21 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/http-client.js +186 -0
- package/dist/utils/http-client.js.map +1 -0
- package/dist/utils/index.d.ts +33 -38
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +65 -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 +164 -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 +6 -10
- package/src/index.ts +42 -45
- package/src/knexfile.ts +1 -0
- package/src/services/caching-service/batch-cache-manager.ts +2 -2
- package/src/services/caching-service/hashed-cache-manager.ts +5 -5
- package/src/services/caching-service/index.ts +1 -1
- package/src/services/caching-service/record-tracking-manager.ts +2 -2
- package/src/services/data-sync-service/configuration-manager.ts +2 -2
- package/src/services/data-sync-service/data-sync-service.ts +10 -19
- package/src/services/data-sync-service/index.ts +3 -3
- package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +3 -3
- package/src/services/data-sync-service/jobs/from-erp.ts +10 -5
- 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 -7
- package/src/services/erp-api-services/errors.ts +3 -3
- package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
- package/src/services/erp-api-services/index.ts +8 -8
- package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
- package/src/services/erp-api-services/types.ts +2 -2
- package/src/services/mm-api-service/index.ts +6 -14
- package/src/services/mm-api-service/mm-api-service.ts +12 -29
- 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/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 +111 -81
- package/src/services/sql-server-erp-service/index.ts +3 -3
- package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
- package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
- package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
- package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
- package/src/services/sqlite-service/index.ts +1 -1
- package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
- package/src/types/erp-connector.ts +1 -1
- package/src/types/index.ts +2 -2
- package/src/utils/application-initializer.ts +5 -5
- package/src/utils/connector-factory.ts +3 -16
- 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 +33 -39
- 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-Dg6bzS-I.js +0 -42
- package/dist/connector-factory-Dg6bzS-I.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 -4975
- package/dist/mm-erp-sdk.js.map +0 -1
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +0 -30
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +0 -1
- package/dist/services/mm-api-service/company-info.d.ts +0 -13
- package/dist/services/mm-api-service/company-info.d.ts.map +0 -1
- package/dist/services/nats-service/nats-service.d.ts +0 -114
- package/dist/services/nats-service/nats-service.d.ts.map +0 -1
- package/dist/services/nats-service/test-nats-subscriber.d.ts +0 -6
- package/dist/services/nats-service/test-nats-subscriber.d.ts.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -19
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/src/services/data-sync-service/nats-labor-ticket-listener.ts +0 -341
- package/src/services/mm-api-service/company-info.ts +0 -87
- package/src/services/nats-service/nats-service.ts +0 -351
- package/src/services/nats-service/test-nats-subscriber.ts +0 -96
- package/src/utils/error-formatter.ts +0 -205
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-utils.js","sourceRoot":"","sources":["../../src/utils/time-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { CoreConfiguration } from "../services/data-sync-service/configuration-manager.js";
|
|
2
|
+
import { HTTPClientFactory } from "./http-client.js";
|
|
3
|
+
/**
|
|
4
|
+
* Gets the timezone offset in hours and timezone name for the company's timezone
|
|
5
|
+
* @returns Promise<{ offset: number; timezone: string }> The timezone offset in hours and timezone name
|
|
6
|
+
* @throws Error if unable to fetch timezone information
|
|
7
|
+
*/
|
|
8
|
+
export const getTimezoneOffset = async () => {
|
|
9
|
+
try {
|
|
10
|
+
// Get the timezone from configuration
|
|
11
|
+
const config = CoreConfiguration.inst();
|
|
12
|
+
const apiUrl = config.mmApiBaseUrl;
|
|
13
|
+
const authToken = config.mmApiAuthToken;
|
|
14
|
+
if (!apiUrl || !authToken) {
|
|
15
|
+
throw new Error("Missing required configuration for timezone fetch");
|
|
16
|
+
}
|
|
17
|
+
// Create HTTP client
|
|
18
|
+
const client = HTTPClientFactory.getInstance({
|
|
19
|
+
baseUrl: apiUrl,
|
|
20
|
+
retryAttempts: config.mmApiRetryAttempts,
|
|
21
|
+
});
|
|
22
|
+
// Fetch user/company information from the API
|
|
23
|
+
const response = await client.request({
|
|
24
|
+
url: "/accounts/current",
|
|
25
|
+
method: "GET",
|
|
26
|
+
headers: {
|
|
27
|
+
Authorization: `Bearer ${authToken}`,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
const userInfo = response.data;
|
|
31
|
+
if (!userInfo?.company?.timezone) {
|
|
32
|
+
throw new Error("Unable to retrieve company timezone from API");
|
|
33
|
+
}
|
|
34
|
+
const timezone = userInfo.company.timezone;
|
|
35
|
+
// Calculate the timezone offset
|
|
36
|
+
const date = new Date();
|
|
37
|
+
const utcDate = new Date(date.toLocaleString("en-US", { timeZone: "UTC" }));
|
|
38
|
+
const tzDate = new Date(date.toLocaleString("en-US", { timeZone: timezone }));
|
|
39
|
+
// Return offset in hours and timezone name
|
|
40
|
+
const offset = (tzDate.getTime() - utcDate.getTime()) / 3600000;
|
|
41
|
+
return { offset, timezone };
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
throw new Error(`Failed to get timezone offset: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Converts a UTC/Zulu time to local time based on the provided timezone offset
|
|
49
|
+
* @param zuluTime The UTC/Zulu time to convert
|
|
50
|
+
* @param timezoneOffset The timezone offset in hours
|
|
51
|
+
* @returns The converted local time, or undefined if input is null/undefined
|
|
52
|
+
*/
|
|
53
|
+
export const convertToLocalTime = (zuluTime, timezoneOffset) => {
|
|
54
|
+
if (!zuluTime)
|
|
55
|
+
return undefined;
|
|
56
|
+
const date = new Date(zuluTime);
|
|
57
|
+
return new Date(date.getTime() + timezoneOffset * 60 * 60 * 1000);
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Formats a date with the timezone offset in ISO format with offset
|
|
61
|
+
* @param date The date string in format YYYY-MM-DD HH:mm:ss or YYYY-MM-DDTHH:mm:ss
|
|
62
|
+
* @param timezoneOffset The timezone offset in hours
|
|
63
|
+
* @returns The formatted date string in format: YYYY-MM-DDTHH:mm:ss+/-HH:MM
|
|
64
|
+
*/
|
|
65
|
+
export const formatDateWithTZOffset = (date, timezoneOffset) => {
|
|
66
|
+
if (!date)
|
|
67
|
+
return undefined;
|
|
68
|
+
// Replace space with T if present
|
|
69
|
+
const isoDate = date.replace(" ", "T");
|
|
70
|
+
// Calculate offset components
|
|
71
|
+
const sign = timezoneOffset >= 0 ? "+" : "-";
|
|
72
|
+
const absOffset = Math.abs(timezoneOffset);
|
|
73
|
+
const hours = Math.floor(absOffset).toString().padStart(2, "0");
|
|
74
|
+
const minutes = Math.floor((absOffset % 1) * 60)
|
|
75
|
+
.toString()
|
|
76
|
+
.padStart(2, "0");
|
|
77
|
+
// Append the timezone offset
|
|
78
|
+
return `${isoDate}${sign}${hours}:${minutes}`;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Formats a Date object as an ISO string with the specified timezone offset
|
|
82
|
+
* @param date The Date object to format (should be a Date that has been shifted by convertToLocalTime)
|
|
83
|
+
* @param timezoneOffset The timezone offset in hours
|
|
84
|
+
* @returns ISO string with offset in format: YYYY-MM-DDTHH:mm:ss.SSS±HH:MM
|
|
85
|
+
*/
|
|
86
|
+
export const toISOWithOffset = (date, timezoneOffset) => {
|
|
87
|
+
const sign = timezoneOffset >= 0 ? "+" : "-";
|
|
88
|
+
const abs = Math.abs(timezoneOffset);
|
|
89
|
+
const hours = Math.floor(abs);
|
|
90
|
+
const minutes = Math.round((abs - hours) * 60);
|
|
91
|
+
const pad2 = (n) => n.toString().padStart(2, "0");
|
|
92
|
+
const pad3 = (n) => n.toString().padStart(3, "0");
|
|
93
|
+
// Use UTC getters since convertToLocalTime shifts the Date's internal timestamp
|
|
94
|
+
// The UTC components of the shifted Date represent the local wall time
|
|
95
|
+
const yyyy = date.getUTCFullYear();
|
|
96
|
+
const MM = pad2(date.getUTCMonth() + 1);
|
|
97
|
+
const dd = pad2(date.getUTCDate());
|
|
98
|
+
const HH = pad2(date.getUTCHours());
|
|
99
|
+
const mm = pad2(date.getUTCMinutes());
|
|
100
|
+
const ss = pad2(date.getUTCSeconds());
|
|
101
|
+
const SSS = pad3(date.getUTCMilliseconds());
|
|
102
|
+
const off = `${sign}${pad2(hours)}:${pad2(minutes)}`;
|
|
103
|
+
return `${yyyy}-${MM}-${dd}T${HH}:${mm}:${ss}.${SSS}${off}`;
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=timezone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.js","sourceRoot":"","sources":["../../src/utils/timezone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,IAAmD,EAAE;IACzF,IAAI,CAAC;QACH,sCAAsC;QACtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;QAExC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC;YAC3C,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,MAAM,CAAC,kBAAkB;SACzC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAoC;YACvE,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,SAAS,EAAE;aACrC;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAE3C,gCAAgC;QAChC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CACrD,CAAC;QAEF,2CAA2C;QAC3C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7F,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,QAA0C,EAC1C,cAAsB,EACJ,EAAE;IACpB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAA+B,EAC/B,cAAsB,EACF,EAAE;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC,8BAA8B;IAC9B,MAAM,IAAI,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SAC7C,QAAQ,EAAE;SACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEpB,6BAA6B;IAC7B,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;AAChD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,cAAsB,EAAU,EAAE;IAC5E,MAAM,IAAI,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE1D,gFAAgF;IAChF,uEAAuE;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAErD,OAAO,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;AAC9D,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trims all string values in an object while preserving the object's structure
|
|
3
|
+
*/
|
|
4
|
+
export const trimObjectValues = (obj) => {
|
|
5
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
6
|
+
const value = obj[key];
|
|
7
|
+
acc[key] = (typeof value === "string" ? value.trim() : value);
|
|
8
|
+
return acc;
|
|
9
|
+
}, {});
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=trimObjectValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trimObjectValues.js","sourceRoot":"","sources":["../../src/utils/trimObjectValues.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAmB,GAAM,EAAK,EAAE;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAc,CAAC,CAAC;QAClC,GAAG,CAAC,GAAc,CAAC,GAAG,CACpB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CACnC,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAO,CAAC,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts unique rows from data based on specified fields and sorts by up to two fields
|
|
3
|
+
* @param data Array of data objects
|
|
4
|
+
* @param fields Array of field names to use as a unique keys
|
|
5
|
+
* @param sortFields Optional array of field names to sort by (up to two fields)
|
|
6
|
+
* @returns Array of unique objects based on the specified fields, or an empty array if data is empty
|
|
7
|
+
*/
|
|
8
|
+
export function getUniqueRows(data, fields, sortFields) {
|
|
9
|
+
const createCompositeKey = (item) => {
|
|
10
|
+
return fields.map((field) => String(item[field])).join("|");
|
|
11
|
+
};
|
|
12
|
+
const uniqueKeys = new Set();
|
|
13
|
+
const uniqueRows = [];
|
|
14
|
+
data.forEach((item) => {
|
|
15
|
+
const key = createCompositeKey(item);
|
|
16
|
+
if (!uniqueKeys.has(key)) {
|
|
17
|
+
uniqueKeys.add(key);
|
|
18
|
+
uniqueRows.push(item);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
if (sortFields && sortFields.length > 0) {
|
|
22
|
+
uniqueRows.sort((a, b) => {
|
|
23
|
+
for (let i = 0; i < sortFields.length; i++) {
|
|
24
|
+
const field = sortFields[i];
|
|
25
|
+
if (a[field] < b[field])
|
|
26
|
+
return -1;
|
|
27
|
+
if (a[field] > b[field])
|
|
28
|
+
return 1;
|
|
29
|
+
}
|
|
30
|
+
return 0;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return uniqueRows || [];
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=uniqueRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniqueRows.js","sourceRoot":"","sources":["../../src/utils/uniqueRows.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAS,EACT,MAAmB,EACnB,UAAwB;IAExB,MAAM,kBAAkB,GAAG,CAAC,IAAO,EAAU,EAAE;QAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,UAAU,GAAQ,EAAE,CAAC;IAE3B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@machinemetrics/mm-erp-sdk",
|
|
3
3
|
"description": "A library for syncing data between MachineMetrics and ERP systems",
|
|
4
|
-
"version": "0.1.9
|
|
4
|
+
"version": "0.1.9",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "machinemetrics",
|
|
7
|
-
"main": "dist/
|
|
7
|
+
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
9
|
"source": "src/index.ts",
|
|
10
10
|
"type": "module",
|
|
@@ -12,10 +12,9 @@
|
|
|
12
12
|
"node": ">=20"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
|
-
"build": "
|
|
16
|
-
"start": "
|
|
17
|
-
"type-check": "tsc --noEmit"
|
|
18
|
-
"test:nats": "tsx src/services/nats-service/test-nats-subscriber.ts"
|
|
15
|
+
"build": "tsc --project tsconfig.build.json",
|
|
16
|
+
"start": "tsc --project tsconfig.build.json --watch",
|
|
17
|
+
"type-check": "tsc --noEmit"
|
|
19
18
|
},
|
|
20
19
|
"dependencies": {
|
|
21
20
|
"@azure/msal-node": "^2.12.0",
|
|
@@ -29,7 +28,6 @@
|
|
|
29
28
|
"knex": "^3.1.0",
|
|
30
29
|
"lodash": "^4.17.21",
|
|
31
30
|
"mssql": "^11.0.1",
|
|
32
|
-
"nats": "^2.29.3",
|
|
33
31
|
"winston": "^3.14.0",
|
|
34
32
|
"winston-daily-rotate-file": "^5.0.0",
|
|
35
33
|
"xxhashjs": "^0.2.2",
|
|
@@ -45,9 +43,7 @@
|
|
|
45
43
|
"@types/node": "^20.0.0",
|
|
46
44
|
"@types/xxhashjs": "^0.2.4",
|
|
47
45
|
"prettier": "^3.6.2",
|
|
48
|
-
"
|
|
49
|
-
"typescript": "^5.8.3",
|
|
50
|
-
"vite": "^5.3.4"
|
|
46
|
+
"typescript": "^5.8.3"
|
|
51
47
|
},
|
|
52
48
|
"files": [
|
|
53
49
|
"dist",
|
package/src/index.ts
CHANGED
|
@@ -4,24 +4,24 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
// Core interfaces and types
|
|
7
|
-
export type { IERPConnector } from "./types/erp-connector";
|
|
8
|
-
export { ERPObjType } from "./types/erp-types";
|
|
9
|
-
export type { ERPPagination, ERPResponse, ERPObject } from "./types/erp-types";
|
|
7
|
+
export type { IERPConnector } from "./types/erp-connector.js";
|
|
8
|
+
export { ERPObjType } from "./types/erp-types.js";
|
|
9
|
+
export type { ERPPagination, ERPResponse, ERPObject } from "./types/erp-types.js";
|
|
10
10
|
|
|
11
11
|
// Configuration interfaces
|
|
12
|
-
export { ErpApiConnectionParams } from "./services/data-sync-service/configuration-manager";
|
|
13
|
-
export { getErpApiConnectionParams } from "./services/data-sync-service/configuration-manager";
|
|
14
|
-
export { buildLogicalCondition } from "./services/erp-api-services/rest/get-query-params";
|
|
15
|
-
export type { ERPApiConfig } from "./services/erp-api-services/types";
|
|
12
|
+
export { ErpApiConnectionParams } from "./services/data-sync-service/configuration-manager.js";
|
|
13
|
+
export { getErpApiConnectionParams } from "./services/data-sync-service/configuration-manager.js";
|
|
14
|
+
export { buildLogicalCondition } from "./services/erp-api-services/rest/get-query-params.js";
|
|
15
|
+
export type { ERPApiConfig } from "./services/erp-api-services/types.js";
|
|
16
16
|
|
|
17
17
|
// MM API client and types
|
|
18
|
-
export { MMApiClient } from "./services/mm-api-service";
|
|
19
|
-
export { MMReceiveLaborTicket } from "./services/mm-api-service";
|
|
18
|
+
export { MMApiClient } from "./services/mm-api-service/index.js";
|
|
19
|
+
export { MMReceiveLaborTicket } from "./services/mm-api-service/index.js";
|
|
20
20
|
export type {
|
|
21
21
|
MMReceiveLaborTicketReason,
|
|
22
22
|
MMReceiveLaborTicketWorkOrderOperation,
|
|
23
23
|
IToRESTApiObject,
|
|
24
|
-
} from "./services/mm-api-service";
|
|
24
|
+
} from "./services/mm-api-service/index.js";
|
|
25
25
|
|
|
26
26
|
export {
|
|
27
27
|
MMSendPerson,
|
|
@@ -32,9 +32,9 @@ export {
|
|
|
32
32
|
MMSendWorkOrderOperation,
|
|
33
33
|
MMSendReason,
|
|
34
34
|
MMSendLaborTicket,
|
|
35
|
-
} from "./services/mm-api-service";
|
|
35
|
+
} from "./services/mm-api-service/index.js";
|
|
36
36
|
|
|
37
|
-
export type { MMSendWorkOrderBatch } from "./services/mm-api-service";
|
|
37
|
+
export type { MMSendWorkOrderBatch } from "./services/mm-api-service/index.js";
|
|
38
38
|
|
|
39
39
|
// Utility functions that are safe for client use
|
|
40
40
|
export {
|
|
@@ -49,72 +49,69 @@ export {
|
|
|
49
49
|
applyTimezoneOffsetsToFields,
|
|
50
50
|
convertToLocalTime,
|
|
51
51
|
getErrorType,
|
|
52
|
-
|
|
53
|
-
formatErrorForLogging,
|
|
54
|
-
} from "./utils";
|
|
55
|
-
export type { FormattedError } from "./utils";
|
|
52
|
+
} from "./utils/index.js";
|
|
56
53
|
|
|
57
54
|
// Local data store
|
|
58
|
-
export { getInitialLoadComplete, setInitialLoadComplete } from "./utils";
|
|
55
|
+
export { getInitialLoadComplete, setInitialLoadComplete } from "./utils/index.js";
|
|
59
56
|
|
|
60
57
|
// HTTP client factory and types for custom API integrations
|
|
61
|
-
export { HTTPClientFactory } from "./utils/http-client";
|
|
62
|
-
export { HTTPError } from "./utils/http-client";
|
|
58
|
+
export { HTTPClientFactory } from "./utils/http-client.js";
|
|
59
|
+
export { HTTPError } from "./utils/http-client.js";
|
|
63
60
|
export type {
|
|
64
61
|
HTTPResponse,
|
|
65
62
|
HTTPClient,
|
|
66
63
|
HTTPRequestConfig,
|
|
67
|
-
} from "./utils/http-client";
|
|
64
|
+
} from "./utils/http-client.js";
|
|
68
65
|
|
|
69
66
|
// Application initialization utilities
|
|
70
|
-
export { ApplicationInitializer } from "./utils/application-initializer";
|
|
67
|
+
export { ApplicationInitializer } from "./utils/application-initializer.js";
|
|
71
68
|
|
|
72
69
|
// Data sync service
|
|
73
|
-
export { runDataSyncService } from "./services/data-sync-service";
|
|
70
|
+
export { runDataSyncService } from "./services/data-sync-service/index.js";
|
|
74
71
|
|
|
75
72
|
// Logging service
|
|
76
|
-
export { logger } from "./services/reporting-service";
|
|
73
|
+
export { logger } from "./services/reporting-service/index.js";
|
|
77
74
|
|
|
78
75
|
// Labor ticket handler interface
|
|
79
|
-
export type { IERPLaborTicketHandler } from "./types/erp-connector";
|
|
76
|
+
export type { IERPLaborTicketHandler } from "./types/erp-connector.js";
|
|
80
77
|
|
|
81
78
|
// Process drivers and utilities
|
|
82
79
|
export {
|
|
83
80
|
StandardProcessDrivers,
|
|
84
81
|
getCachedTimezoneOffset,
|
|
85
82
|
getCachedTimezoneName,
|
|
86
|
-
} from "./utils";
|
|
87
|
-
export type { WriteEntitiesToMMResult } from "./utils";
|
|
88
|
-
export { MMBatchValidationError } from "./utils";
|
|
83
|
+
} from "./utils/index.js";
|
|
84
|
+
export type { WriteEntitiesToMMResult } from "./utils/index.js";
|
|
85
|
+
export { MMBatchValidationError } from "./utils/index.js";
|
|
89
86
|
|
|
90
87
|
// API services
|
|
91
|
-
export type { APIResponse } from "./services/erp-api-services/types";
|
|
92
|
-
export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service";
|
|
93
|
-
export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors";
|
|
88
|
+
export type { APIResponse } from "./services/erp-api-services/types.js";
|
|
89
|
+
export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service.js";
|
|
90
|
+
export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors.js";
|
|
94
91
|
export type {
|
|
95
92
|
QueryParams,
|
|
96
93
|
PaginatedAPIResponse,
|
|
97
|
-
} from "./services/erp-api-services/rest/get-query-params";
|
|
98
|
-
export { OAuthClient } from "./services/erp-api-services/oauth-client";
|
|
99
|
-
export type { OAuthConfig } from "./services/erp-api-services/oauth-client";
|
|
100
|
-
export { GraphQLService } from "./services/erp-api-services/graphql/graphql-service";
|
|
101
|
-
export type { GraphQLServerError } from "./services/erp-api-services/graphql/types";
|
|
94
|
+
} from "./services/erp-api-services/rest/get-query-params.js";
|
|
95
|
+
export { OAuthClient } from "./services/erp-api-services/oauth-client.js";
|
|
96
|
+
export type { OAuthConfig } from "./services/erp-api-services/oauth-client.js";
|
|
97
|
+
export { GraphQLService } from "./services/erp-api-services/graphql/graphql-service.js";
|
|
98
|
+
export type { GraphQLServerError } from "./services/erp-api-services/graphql/types.js";
|
|
102
99
|
|
|
103
100
|
// Caching services
|
|
104
|
-
export { BatchCacheManager } from "./services/caching-service/batch-cache-manager";
|
|
101
|
+
export { BatchCacheManager } from "./services/caching-service/batch-cache-manager.js";
|
|
105
102
|
|
|
106
103
|
// Configuration services
|
|
107
104
|
export {
|
|
108
105
|
CoreConfiguration,
|
|
109
106
|
getSQLServerConfiguration,
|
|
110
|
-
} from "./services/data-sync-service/configuration-manager";
|
|
107
|
+
} from "./services/data-sync-service/configuration-manager.js";
|
|
111
108
|
|
|
112
109
|
// SQL Server services
|
|
113
110
|
export {
|
|
114
111
|
SqlServerService,
|
|
115
112
|
SqlServerHelper,
|
|
116
|
-
} from "./services/sql-server-erp-service";
|
|
117
|
-
export type { SQLInput } from "./services/sql-server-erp-service";
|
|
113
|
+
} from "./services/sql-server-erp-service/index.js";
|
|
114
|
+
export type { SQLInput } from "./services/sql-server-erp-service/index.js";
|
|
118
115
|
|
|
119
116
|
// PSQL (Pervasive) services
|
|
120
117
|
export {
|
|
@@ -124,15 +121,15 @@ export {
|
|
|
124
121
|
combinePsqlDateTime,
|
|
125
122
|
isPsqlDateEmpty,
|
|
126
123
|
cleanPsqlCharField,
|
|
127
|
-
} from "./services/psql-erp-service";
|
|
128
|
-
export type { PsqlConfiguration } from "./services/psql-erp-service";
|
|
124
|
+
} from "./services/psql-erp-service/index.js";
|
|
125
|
+
export type { PsqlConfiguration } from "./services/psql-erp-service/index.js";
|
|
129
126
|
|
|
130
127
|
// Record tracking services
|
|
131
|
-
export { RecordTrackingManager } from "./services/caching-service/record-tracking-manager";
|
|
132
|
-
export type { RecordTrackingObject } from "./services/caching-service/record-tracking-manager";
|
|
128
|
+
export { RecordTrackingManager } from "./services/caching-service/record-tracking-manager.js";
|
|
129
|
+
export type { RecordTrackingObject } from "./services/caching-service/record-tracking-manager.js";
|
|
133
130
|
|
|
134
131
|
// Knex services
|
|
135
|
-
export { default as knexDatabaseConfig } from "./knexfile";
|
|
132
|
+
export { default as knexDatabaseConfig } from "./knexfile.js";
|
|
136
133
|
|
|
137
134
|
// MM Connector Logging
|
|
138
135
|
export {
|
|
@@ -141,4 +138,4 @@ export {
|
|
|
141
138
|
LogEntry,
|
|
142
139
|
type LogLevelString,
|
|
143
140
|
type LogResponse,
|
|
144
|
-
} from "./utils";
|
|
141
|
+
} from "./utils/index.js";
|
package/src/knexfile.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HashedCacheManager } from "./hashed-cache-manager";
|
|
2
|
-
import { ERPObjType } from "../../types/erp-types";
|
|
1
|
+
import { HashedCacheManager } from "./hashed-cache-manager.js";
|
|
2
|
+
import { ERPObjType } from "../../types/erp-types.js";
|
|
3
3
|
|
|
4
4
|
export type BatchResult<T> = {
|
|
5
5
|
duplicates: T[];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import knex, { Knex } from "knex";
|
|
2
|
-
import config from "../../knexfile";
|
|
2
|
+
import config from "../../knexfile.js";
|
|
3
3
|
import stringify from "json-stable-stringify";
|
|
4
4
|
import XXH from "xxhashjs";
|
|
5
|
-
import { ERPObjType } from "../../types/erp-types";
|
|
6
|
-
import { CacheMetrics } from "./index";
|
|
7
|
-
import { CoreConfiguration } from "../data-sync-service/configuration-manager";
|
|
8
|
-
import { logger } from "../reporting-service";
|
|
5
|
+
import { ERPObjType } from "../../types/erp-types.js";
|
|
6
|
+
import { CacheMetrics } from "./index.js";
|
|
7
|
+
import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
|
|
8
|
+
import { logger } from "../reporting-service/index.js";
|
|
9
9
|
|
|
10
10
|
type HashedCacheManagerOptions = {
|
|
11
11
|
ttl?: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import knex, { Knex } from "knex";
|
|
2
|
-
import config from "../../knexfile";
|
|
3
|
-
import { ERPObjType } from "../../types/erp-types";
|
|
2
|
+
import config from "../../knexfile.js";
|
|
3
|
+
import { ERPObjType } from "../../types/erp-types.js";
|
|
4
4
|
|
|
5
5
|
const DEFAULT_RECORD_TRACKING_TABLE_NAME = "record_tracking";
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
|
-
import { configureLogger } from "../reporting-service/logger";
|
|
3
|
-
import { SQLServerConfiguration } from "../sql-server-erp-service/configuration";
|
|
2
|
+
import { configureLogger } from "../reporting-service/logger.js";
|
|
3
|
+
import { SQLServerConfiguration } from "../sql-server-erp-service/configuration.js";
|
|
4
4
|
|
|
5
5
|
export class CoreConfiguration {
|
|
6
6
|
private static instance: CoreConfiguration;
|
|
@@ -2,23 +2,19 @@ import Bree, { Job } from "bree";
|
|
|
2
2
|
import Graceful from "@ladjs/graceful";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
|
-
import { CoreConfiguration } from "./configuration-manager";
|
|
6
|
-
import logger from "../reporting-service/logger";
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import { CoreConfiguration } from "./configuration-manager.js";
|
|
6
|
+
import logger from "../reporting-service/logger.js";
|
|
7
|
+
|
|
8
|
+
type GracefulConstructor = new (config: { brees: Bree[] }) => {
|
|
9
|
+
listen: () => void;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const GracefulClass = Graceful as unknown as GracefulConstructor;
|
|
9
13
|
|
|
10
14
|
export const runDataSyncService = async (connectorPath: string) => {
|
|
11
15
|
const config = CoreConfiguration.inst();
|
|
12
16
|
|
|
13
17
|
try {
|
|
14
|
-
// Create connector instance
|
|
15
|
-
const connector = await createConnectorFromPath(connectorPath);
|
|
16
|
-
|
|
17
|
-
// Start NATS listener if enabled
|
|
18
|
-
if (process.env.NATS_ENABLED === "true") {
|
|
19
|
-
const natsListener = new NatsLaborTicketListener(connector);
|
|
20
|
-
await natsListener.start();
|
|
21
|
-
}
|
|
22
18
|
// Find the SDK's node_modules directory and jobs path using ES module import
|
|
23
19
|
const currentFileUrl = import.meta.url;
|
|
24
20
|
const currentFilePath = fileURLToPath(currentFileUrl);
|
|
@@ -27,12 +23,7 @@ export const runDataSyncService = async (connectorPath: string) => {
|
|
|
27
23
|
// Current: /path/to/sdk/dist/mm-erp-sdk.js.js
|
|
28
24
|
// Target: /path/to/sdk/dist/services/data-sync-service/jobs
|
|
29
25
|
const sdkDistPath = path.dirname(currentFilePath);
|
|
30
|
-
const jobsPath = path.join(
|
|
31
|
-
sdkDistPath,
|
|
32
|
-
"services",
|
|
33
|
-
"data-sync-service",
|
|
34
|
-
"jobs"
|
|
35
|
-
);
|
|
26
|
+
const jobsPath = path.join(sdkDistPath, "jobs");
|
|
36
27
|
|
|
37
28
|
const bree = new Bree({
|
|
38
29
|
root: jobsPath,
|
|
@@ -88,7 +79,7 @@ export const runDataSyncService = async (connectorPath: string) => {
|
|
|
88
79
|
}));
|
|
89
80
|
logger.info("JOBS CONFIGURATION:", { jobs: jobsConfig });
|
|
90
81
|
|
|
91
|
-
const graceful = new
|
|
82
|
+
const graceful = new GracefulClass({ brees: [bree] });
|
|
92
83
|
graceful.listen();
|
|
93
84
|
|
|
94
85
|
(async () => {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core data sync service functionality
|
|
3
3
|
*/
|
|
4
|
-
export { runDataSyncService } from "./data-sync-service";
|
|
4
|
+
export { runDataSyncService } from "./data-sync-service.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Configuration management for data sync
|
|
8
8
|
*/
|
|
9
|
-
export { getSQLServerConfiguration } from "./configuration-manager";
|
|
9
|
+
export { getSQLServerConfiguration } from "./configuration-manager.js";
|
|
10
10
|
|
|
11
|
-
export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager";
|
|
11
|
+
export { ErpApiConnectionParams, getErpApiConnectionParams } from "./configuration-manager.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
|
-
import { HashedCacheManager } from "../../caching-service/hashed-cache-manager";
|
|
3
|
-
import { SQLiteCoordinator } from "../../sqlite-service";
|
|
4
|
-
import logger from "../../../services/reporting-service/logger";
|
|
2
|
+
import { HashedCacheManager } from "../../caching-service/hashed-cache-manager.js";
|
|
3
|
+
import { SQLiteCoordinator } from "../../sqlite-service/index.js";
|
|
4
|
+
import logger from "../../../services/reporting-service/logger.js";
|
|
5
5
|
|
|
6
6
|
// Configure the logger with the correct log level
|
|
7
7
|
logger.level = process.env.LOG_LEVEL || "info";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
|
|
3
|
-
import logger from "../../../services/reporting-service/logger";
|
|
4
|
-
import { SQLiteCoordinator } from "../../sqlite-service";
|
|
5
|
-
import { createConnectorFromPath } from "../../../utils/connector-factory";
|
|
3
|
+
import logger from "../../../services/reporting-service/logger.js";
|
|
4
|
+
import { SQLiteCoordinator } from "../../sqlite-service/index.js";
|
|
5
|
+
import { createConnectorFromPath } from "../../../utils/connector-factory.js";
|
|
6
6
|
|
|
7
7
|
// Configure the logger with the correct log level
|
|
8
8
|
logger.level = process.env.LOG_LEVEL || "info";
|
|
@@ -29,9 +29,14 @@ const main = async () => {
|
|
|
29
29
|
await connector.syncFromERPCompleted();
|
|
30
30
|
logger.info("==========Completed from-erp job cycle==========");
|
|
31
31
|
} catch (error) {
|
|
32
|
-
|
|
32
|
+
const errorDetails = {
|
|
33
|
+
message: error instanceof Error ? error.message : String(error),
|
|
34
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
35
|
+
name: error instanceof Error ? error.name : undefined,
|
|
36
|
+
...(error && typeof error === "object" ? error : {}), // Include all enumerable properties if it's an object
|
|
37
|
+
};
|
|
33
38
|
logger.error('Worker for job "from-erp" had an error', {
|
|
34
|
-
error,
|
|
39
|
+
error: errorDetails,
|
|
35
40
|
});
|
|
36
41
|
|
|
37
42
|
throw error; // Rethrow so Bree can handle it properly
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
|
|
3
|
-
import logger from "../../../services/reporting-service/logger";
|
|
4
|
-
import { createConnectorFromPath } from "../../../utils/connector-factory";
|
|
3
|
+
import logger from "../../../services/reporting-service/logger.js";
|
|
4
|
+
import { createConnectorFromPath } from "../../../utils/connector-factory.js";
|
|
5
5
|
|
|
6
6
|
// Configure the logger with the correct log level
|
|
7
7
|
logger.level = process.env.LOG_LEVEL || "info";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import knex, { Knex } from "knex";
|
|
2
|
-
import logger from "../../reporting-service/logger";
|
|
3
|
-
import config from "../../../knexfile";
|
|
2
|
+
import logger from "../../reporting-service/logger.js";
|
|
3
|
+
import config from "../../../knexfile.js";
|
|
4
4
|
|
|
5
5
|
// Configure the logger with the correct log level
|
|
6
6
|
logger.level = process.env.LOG_LEVEL || "info";
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
|
|
3
|
-
import logger from "../../reporting-service/logger";
|
|
4
|
-
import {
|
|
5
|
-
import { createConnectorFromPath } from "../../../utils/connector-factory";
|
|
3
|
+
import logger from "../../reporting-service/logger.js";
|
|
4
|
+
import { createConnectorFromPath } from "../../../utils/connector-factory.js";
|
|
6
5
|
|
|
7
6
|
// Configure the logger with the correct log level
|
|
8
7
|
logger.level = process.env.LOG_LEVEL || "info";
|
|
@@ -22,10 +21,7 @@ const main = async () => {
|
|
|
22
21
|
// Create a new connector instance for this job
|
|
23
22
|
const connector = await createConnectorFromPath(connectorPath);
|
|
24
23
|
|
|
25
|
-
await
|
|
26
|
-
await connector.syncToERP();
|
|
27
|
-
});
|
|
28
|
-
|
|
24
|
+
await connector.syncToERP();
|
|
29
25
|
await connector.syncToERPCompleted();
|
|
30
26
|
|
|
31
27
|
logger.info("==========Completed to-erp job cycle==========");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AxiosError } from "axios";
|
|
2
|
-
import logger from "../reporting-service/logger";
|
|
3
|
-
import { GraphQLServerError } from "./graphql/types";
|
|
4
|
-
import { HTTPError } from "../../utils/http-client";
|
|
2
|
+
import logger from "../reporting-service/logger.js";
|
|
3
|
+
import { GraphQLServerError } from "./graphql/types.js";
|
|
4
|
+
import { HTTPError } from "../../utils/http-client.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Represents GraphQL specific errors (validation, missing fields, etc.)
|