@machinemetrics/mm-erp-sdk 0.2.0-beta.3 → 0.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/index.d.ts +42 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +19 -0
- package/dist/knexfile.js.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.d.ts +4 -0
- package/dist/migrations/20241015162631_create_cache_table.d.ts.map +1 -0
- package/dist/migrations/20241015162631_create_cache_table.js +11 -15
- package/dist/migrations/20241015162631_create_cache_table.js.map +1 -1
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts +4 -0
- package/dist/migrations/20241015162632_create_sdk_cache_table.d.ts.map +1 -0
- package/dist/migrations/20241015162632_create_sdk_cache_table.js +11 -15
- package/dist/migrations/20241015162632_create_sdk_cache_table.js.map +1 -1
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts +4 -0
- package/dist/migrations/20250103162631_create_record_tracking_table.d.ts.map +1 -0
- package/dist/migrations/20250103162631_create_record_tracking_table.js +14 -15
- package/dist/migrations/20250103162631_create_record_tracking_table.js.map +1 -1
- package/dist/services/caching-service/batch-cache-manager.d.ts +1 -1
- package/dist/services/caching-service/batch-cache-manager.d.ts.map +1 -1
- package/dist/services/caching-service/batch-cache-manager.js +84 -0
- package/dist/services/caching-service/batch-cache-manager.js.map +1 -0
- package/dist/services/caching-service/hashed-cache-manager.d.ts +2 -2
- package/dist/services/caching-service/hashed-cache-manager.d.ts.map +1 -1
- package/dist/services/caching-service/hashed-cache-manager.js +223 -0
- package/dist/services/caching-service/hashed-cache-manager.js.map +1 -0
- package/dist/services/caching-service/index.d.ts +1 -1
- package/dist/services/caching-service/index.d.ts.map +1 -1
- package/dist/services/caching-service/index.js +2 -0
- package/dist/services/caching-service/index.js.map +1 -0
- package/dist/services/caching-service/record-tracking-manager.d.ts +1 -1
- package/dist/services/caching-service/record-tracking-manager.d.ts.map +1 -1
- package/dist/services/caching-service/record-tracking-manager.js +28 -0
- package/dist/services/caching-service/record-tracking-manager.js.map +1 -0
- package/dist/services/data-sync-service/configuration-manager.d.ts +1 -1
- package/dist/services/data-sync-service/configuration-manager.d.ts.map +1 -1
- package/dist/services/data-sync-service/configuration-manager.js +163 -0
- package/dist/services/data-sync-service/configuration-manager.js.map +1 -0
- package/dist/services/data-sync-service/data-sync-service.d.ts.map +1 -1
- package/dist/services/data-sync-service/data-sync-service.js +95 -0
- package/dist/services/data-sync-service/data-sync-service.js.map +1 -0
- package/dist/services/data-sync-service/index.d.ts +3 -3
- package/dist/services/data-sync-service/index.d.ts.map +1 -1
- package/dist/services/data-sync-service/index.js +10 -0
- package/dist/services/data-sync-service/index.js.map +1 -0
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js +42 -40
- package/dist/services/data-sync-service/jobs/clean-up-expired-cache.js.map +1 -1
- package/dist/services/data-sync-service/jobs/from-erp.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/from-erp.js +50 -37
- package/dist/services/data-sync-service/jobs/from-erp.js.map +1 -1
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js +38 -36
- package/dist/services/data-sync-service/jobs/retry-failed-labor-tickets.js.map +1 -1
- package/dist/services/data-sync-service/jobs/run-migrations.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/run-migrations.js +24 -22
- package/dist/services/data-sync-service/jobs/run-migrations.js.map +1 -1
- package/dist/services/data-sync-service/jobs/to-erp.d.ts.map +1 -1
- package/dist/services/data-sync-service/jobs/to-erp.js +49 -49
- package/dist/services/data-sync-service/jobs/to-erp.js.map +1 -1
- package/dist/services/erp-api-services/errors.d.ts +1 -1
- package/dist/services/erp-api-services/errors.d.ts.map +1 -1
- package/dist/services/erp-api-services/errors.js +83 -0
- package/dist/services/erp-api-services/errors.js.map +1 -0
- package/dist/services/erp-api-services/graphql/graphql-service.d.ts +2 -2
- package/dist/services/erp-api-services/graphql/graphql-service.d.ts.map +1 -1
- package/dist/services/erp-api-services/graphql/graphql-service.js +102 -0
- package/dist/services/erp-api-services/graphql/graphql-service.js.map +1 -0
- package/dist/services/erp-api-services/graphql/types.js +6 -0
- package/dist/services/erp-api-services/graphql/types.js.map +1 -0
- package/dist/services/erp-api-services/index.d.ts +8 -8
- package/dist/services/erp-api-services/index.d.ts.map +1 -1
- package/dist/services/erp-api-services/index.js +13 -0
- package/dist/services/erp-api-services/index.js.map +1 -0
- package/dist/services/erp-api-services/oauth-client.js +41 -0
- package/dist/services/erp-api-services/oauth-client.js.map +1 -0
- package/dist/services/erp-api-services/rest/get-query-params.js +23 -0
- package/dist/services/erp-api-services/rest/get-query-params.js.map +1 -0
- package/dist/services/erp-api-services/rest/rest-api-service.d.ts +2 -2
- package/dist/services/erp-api-services/rest/rest-api-service.d.ts.map +1 -1
- package/dist/services/erp-api-services/rest/rest-api-service.js +163 -0
- package/dist/services/erp-api-services/rest/rest-api-service.js.map +1 -0
- package/dist/services/erp-api-services/types.d.ts +2 -2
- package/dist/services/erp-api-services/types.d.ts.map +1 -1
- package/dist/services/erp-api-services/types.js +2 -0
- package/dist/services/erp-api-services/types.js.map +1 -0
- package/dist/services/mm-api-service/index.d.ts +6 -13
- package/dist/services/mm-api-service/index.d.ts.map +1 -1
- package/dist/services/mm-api-service/index.js +15 -0
- package/dist/services/mm-api-service/index.js.map +1 -0
- package/dist/services/mm-api-service/mm-api-service.d.ts +7 -13
- package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
- package/dist/services/mm-api-service/mm-api-service.js +519 -0
- package/dist/services/mm-api-service/mm-api-service.js.map +1 -0
- package/dist/services/mm-api-service/token-mgr.js +113 -0
- package/dist/services/mm-api-service/token-mgr.js.map +1 -0
- package/dist/services/mm-api-service/types/checkpoint.js +2 -0
- package/dist/services/mm-api-service/types/checkpoint.js.map +1 -0
- package/dist/services/mm-api-service/types/entity-transformer.d.ts +2 -2
- package/dist/services/mm-api-service/types/entity-transformer.d.ts.map +1 -1
- package/dist/services/mm-api-service/types/entity-transformer.js +186 -0
- package/dist/services/mm-api-service/types/entity-transformer.js.map +1 -0
- package/dist/services/mm-api-service/types/mm-response-interfaces.js +34 -0
- package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -0
- package/dist/services/mm-api-service/types/receive-types.d.ts +0 -3
- package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
- package/dist/services/mm-api-service/types/receive-types.js +55 -0
- package/dist/services/mm-api-service/types/receive-types.js.map +1 -0
- package/dist/services/mm-api-service/types/send-types.js +337 -0
- package/dist/services/mm-api-service/types/send-types.js.map +1 -0
- package/dist/services/psql-erp-service/configuration.js +2 -0
- package/dist/services/psql-erp-service/configuration.js.map +1 -0
- package/dist/services/psql-erp-service/index.d.ts +3 -3
- package/dist/services/psql-erp-service/index.d.ts.map +1 -1
- package/dist/services/psql-erp-service/index.js +10 -0
- package/dist/services/psql-erp-service/index.js.map +1 -0
- package/dist/services/psql-erp-service/internal/types/psql-types.js +5 -0
- package/dist/services/psql-erp-service/internal/types/psql-types.js.map +1 -0
- package/dist/services/psql-erp-service/psql-helpers.js +99 -0
- package/dist/services/psql-erp-service/psql-helpers.js.map +1 -0
- package/dist/services/psql-erp-service/psql-service.d.ts +2 -2
- package/dist/services/psql-erp-service/psql-service.d.ts.map +1 -1
- package/dist/services/psql-erp-service/psql-service.js +187 -0
- package/dist/services/psql-erp-service/psql-service.js.map +1 -0
- package/dist/services/reporting-service/index.d.ts +1 -1
- package/dist/services/reporting-service/index.d.ts.map +1 -1
- package/dist/services/reporting-service/index.js +5 -0
- package/dist/services/reporting-service/index.js.map +1 -0
- package/dist/services/reporting-service/logger.d.ts.map +1 -1
- package/dist/services/reporting-service/logger.js +221 -0
- package/dist/services/reporting-service/logger.js.map +1 -0
- package/dist/services/sql-server-erp-service/configuration.js +2 -0
- package/dist/services/sql-server-erp-service/configuration.js.map +1 -0
- package/dist/services/sql-server-erp-service/index.d.ts +3 -3
- package/dist/services/sql-server-erp-service/index.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/index.js +11 -0
- package/dist/services/sql-server-erp-service/index.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts +2 -2
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js +50 -0
- package/dist/services/sql-server-erp-service/internal/sql-labor-ticket-operations.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/sql-server-config.js +40 -0
- package/dist/services/sql-server-erp-service/internal/sql-server-config.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js +36 -0
- package/dist/services/sql-server-erp-service/internal/sql-transaction-manager.js.map +1 -0
- package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js +2 -0
- package/dist/services/sql-server-erp-service/internal/types/sql-server-types.js.map +1 -0
- package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts +3 -3
- package/dist/services/sql-server-erp-service/sql-server-helpers.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/sql-server-helpers.js +66 -0
- package/dist/services/sql-server-erp-service/sql-server-helpers.js.map +1 -0
- package/dist/services/sql-server-erp-service/sql-server-service.d.ts +2 -2
- package/dist/services/sql-server-erp-service/sql-server-service.d.ts.map +1 -1
- package/dist/services/sql-server-erp-service/sql-server-service.js +154 -0
- package/dist/services/sql-server-erp-service/sql-server-service.js.map +1 -0
- package/dist/services/sql-server-erp-service/types/sql-input-param.js +2 -0
- package/dist/services/sql-server-erp-service/types/sql-input-param.js.map +1 -0
- package/dist/services/sqlite-service/index.d.ts +1 -1
- package/dist/services/sqlite-service/index.d.ts.map +1 -1
- package/dist/services/sqlite-service/index.js +2 -0
- package/dist/services/sqlite-service/index.js.map +1 -0
- package/dist/services/sqlite-service/sqlite-coordinator.js +60 -0
- package/dist/services/sqlite-service/sqlite-coordinator.js.map +1 -0
- package/dist/types/erp-connector.d.ts +9 -2
- package/dist/types/erp-connector.d.ts.map +1 -1
- package/dist/types/erp-connector.js +2 -0
- package/dist/types/erp-connector.js.map +1 -0
- package/dist/types/erp-types.js +13 -0
- package/dist/types/erp-types.js.map +1 -0
- package/dist/types/flattened-work-order.d.ts +99 -0
- package/dist/types/flattened-work-order.d.ts.map +1 -0
- package/dist/types/flattened-work-order.js +2 -0
- package/dist/types/flattened-work-order.js.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/application-initializer.js +55 -0
- package/dist/utils/application-initializer.js.map +1 -0
- package/dist/utils/cleanup-numbers.js +6 -0
- package/dist/utils/cleanup-numbers.js.map +1 -0
- package/dist/utils/connector-factory.d.ts +1 -1
- package/dist/utils/connector-factory.d.ts.map +1 -1
- package/dist/utils/connector-factory.js +34 -0
- package/dist/utils/connector-factory.js.map +1 -0
- package/dist/utils/connector-log/log-deduper.d.ts +1 -1
- package/dist/utils/connector-log/log-deduper.d.ts.map +1 -1
- package/dist/utils/connector-log/log-deduper.js +240 -0
- package/dist/utils/connector-log/log-deduper.js.map +1 -0
- package/dist/utils/connector-log/mm-connector-logger-example.d.ts +1 -0
- package/dist/utils/connector-log/mm-connector-logger-example.js +88 -0
- package/dist/utils/connector-log/mm-connector-logger-example.js.map +1 -0
- package/dist/utils/connector-log/mm-connector-logger.d.ts +1 -1
- package/dist/utils/connector-log/mm-connector-logger.d.ts.map +1 -1
- package/dist/utils/connector-log/mm-connector-logger.js +151 -0
- package/dist/utils/connector-log/mm-connector-logger.js.map +1 -0
- package/dist/utils/data-transformation.js +38 -0
- package/dist/utils/data-transformation.js.map +1 -0
- package/dist/utils/env.d.ts +8 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +58 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/erp-timezone-utils.d.ts +20 -0
- package/dist/utils/erp-timezone-utils.d.ts.map +1 -0
- package/dist/utils/erp-timezone-utils.js +75 -0
- package/dist/utils/erp-timezone-utils.js.map +1 -0
- package/dist/utils/erp-type-from-entity.d.ts +1 -1
- package/dist/utils/erp-type-from-entity.d.ts.map +1 -1
- package/dist/utils/erp-type-from-entity.js +6 -0
- package/dist/utils/erp-type-from-entity.js.map +1 -0
- package/dist/utils/error-utils.js +21 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/http-client.js +189 -0
- package/dist/utils/http-client.js.map +1 -0
- package/dist/utils/index.d.ts +34 -38
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +66 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/local-data-store/database-lock.js +68 -0
- package/dist/utils/local-data-store/database-lock.js.map +1 -0
- package/dist/utils/local-data-store/jobs-shared-data.d.ts +2 -0
- package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
- package/dist/utils/local-data-store/jobs-shared-data.js +118 -0
- package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -0
- package/dist/utils/mm-labor-ticket-helpers.d.ts +4 -5
- package/dist/utils/mm-labor-ticket-helpers.d.ts.map +1 -1
- package/dist/utils/mm-labor-ticket-helpers.js +28 -0
- package/dist/utils/mm-labor-ticket-helpers.js.map +1 -0
- package/dist/utils/removeExtraneousFields.d.ts +1 -1
- package/dist/utils/removeExtraneousFields.d.ts.map +1 -1
- package/dist/utils/removeExtraneousFields.js +16 -0
- package/dist/utils/removeExtraneousFields.js.map +1 -0
- package/dist/utils/removeIdFieldFromPayload.d.ts +1 -1
- package/dist/utils/removeIdFieldFromPayload.d.ts.map +1 -1
- package/dist/utils/removeIdFieldFromPayload.js +16 -0
- package/dist/utils/removeIdFieldFromPayload.js.map +1 -0
- package/dist/utils/resource-group.d.ts +1 -1
- package/dist/utils/resource-group.d.ts.map +1 -1
- package/dist/utils/resource-group.js +59 -0
- package/dist/utils/resource-group.js.map +1 -0
- package/dist/utils/standard-process-drivers/error-processor.d.ts +3 -3
- package/dist/utils/standard-process-drivers/error-processor.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/error-processor.js +262 -0
- package/dist/utils/standard-process-drivers/error-processor.js.map +1 -0
- package/dist/utils/standard-process-drivers/index.d.ts +3 -3
- package/dist/utils/standard-process-drivers/index.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/index.js +4 -0
- package/dist/utils/standard-process-drivers/index.js.map +1 -0
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +16 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +299 -0
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -0
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +11 -5
- package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/mm-entity-processor.js +174 -0
- package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +1 -0
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +12 -6
- package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/standard-process-drivers.js +333 -0
- package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -0
- package/dist/utils/time-utils.d.ts.map +1 -1
- package/dist/utils/time-utils.js +103 -0
- package/dist/utils/time-utils.js.map +1 -0
- package/dist/utils/timezone.js +105 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/trimObjectValues.js +11 -0
- package/dist/utils/trimObjectValues.js.map +1 -0
- package/dist/utils/uniqueRows.js +35 -0
- package/dist/utils/uniqueRows.js.map +1 -0
- package/package.json +8 -10
- package/src/index.ts +42 -45
- package/src/knexfile.ts +1 -0
- package/src/services/caching-service/batch-cache-manager.ts +2 -2
- package/src/services/caching-service/hashed-cache-manager.ts +5 -5
- package/src/services/caching-service/index.ts +1 -1
- package/src/services/caching-service/record-tracking-manager.ts +2 -2
- package/src/services/data-sync-service/configuration-manager.ts +52 -39
- package/src/services/data-sync-service/data-sync-service.ts +10 -19
- package/src/services/data-sync-service/index.ts +3 -3
- package/src/services/data-sync-service/jobs/clean-up-expired-cache.ts +5 -4
- package/src/services/data-sync-service/jobs/from-erp.ts +12 -6
- package/src/services/data-sync-service/jobs/retry-failed-labor-tickets.ts +4 -3
- package/src/services/data-sync-service/jobs/run-migrations.ts +4 -3
- package/src/services/data-sync-service/jobs/to-erp.ts +5 -14
- package/src/services/erp-api-services/errors.ts +3 -3
- package/src/services/erp-api-services/graphql/graphql-service.ts +5 -5
- package/src/services/erp-api-services/index.ts +8 -8
- package/src/services/erp-api-services/rest/rest-api-service.ts +4 -4
- package/src/services/erp-api-services/types.ts +2 -2
- package/src/services/mm-api-service/index.ts +6 -14
- package/src/services/mm-api-service/mm-api-service.ts +13 -30
- package/src/services/mm-api-service/token-mgr.ts +4 -4
- package/src/services/mm-api-service/types/entity-transformer.ts +3 -3
- package/src/services/mm-api-service/types/receive-types.ts +0 -1
- package/src/services/psql-erp-service/index.ts +3 -3
- package/src/services/psql-erp-service/psql-service.ts +4 -4
- package/src/services/reporting-service/index.ts +1 -1
- package/src/services/reporting-service/logger.ts +116 -81
- package/src/services/sql-server-erp-service/index.ts +3 -3
- package/src/services/sql-server-erp-service/internal/sql-labor-ticket-operations.ts +2 -2
- package/src/services/sql-server-erp-service/internal/sql-transaction-manager.ts +1 -1
- package/src/services/sql-server-erp-service/sql-server-helpers.ts +6 -6
- package/src/services/sql-server-erp-service/sql-server-service.ts +4 -4
- package/src/services/sqlite-service/index.ts +1 -1
- package/src/services/sqlite-service/sqlite-coordinator.ts +2 -2
- package/src/types/erp-connector.ts +9 -2
- package/src/types/flattened-work-order.ts +108 -0
- package/src/types/index.ts +10 -2
- package/src/utils/application-initializer.ts +5 -5
- package/src/utils/connector-factory.ts +2 -2
- package/src/utils/connector-log/log-deduper.ts +2 -2
- package/src/utils/connector-log/mm-connector-logger.ts +3 -3
- package/src/utils/env.ts +75 -0
- package/src/utils/erp-timezone-utils.ts +99 -0
- package/src/utils/erp-type-from-entity.ts +1 -1
- package/src/utils/http-client.ts +5 -4
- package/src/utils/index.ts +38 -39
- package/src/utils/local-data-store/database-lock.ts +1 -1
- package/src/utils/local-data-store/jobs-shared-data.ts +2 -0
- package/src/utils/mm-labor-ticket-helpers.ts +12 -9
- package/src/utils/removeExtraneousFields.ts +1 -1
- package/src/utils/removeIdFieldFromPayload.ts +1 -1
- package/src/utils/resource-group.ts +2 -2
- package/src/utils/standard-process-drivers/error-processor.ts +5 -5
- package/src/utils/standard-process-drivers/index.ts +3 -3
- package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +225 -69
- package/src/utils/standard-process-drivers/mm-entity-processor.ts +14 -8
- package/src/utils/standard-process-drivers/standard-process-drivers.ts +39 -25
- package/src/utils/time-utils.ts +14 -3
- package/src/utils/timezone.ts +2 -2
- package/dist/config-CvA-mFWF.js +0 -418
- package/dist/config-CvA-mFWF.js.map +0 -1
- package/dist/connector-factory-BPm2GVVF.js +0 -30
- package/dist/connector-factory-BPm2GVVF.js.map +0 -1
- package/dist/hashed-cache-manager-B15NN8hK.js +0 -322
- package/dist/hashed-cache-manager-B15NN8hK.js.map +0 -1
- package/dist/index-D8qO1NyK.js +0 -192
- package/dist/index-D8qO1NyK.js.map +0 -1
- package/dist/knexfile-Bng2Ru9c.js +0 -20
- package/dist/knexfile-Bng2Ru9c.js.map +0 -1
- package/dist/logger-BWw0_z9q.js +0 -17557
- package/dist/logger-BWw0_z9q.js.map +0 -1
- package/dist/mm-erp-sdk.js +0 -4978
- package/dist/mm-erp-sdk.js.map +0 -1
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts +0 -30
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +0 -1
- package/dist/services/mm-api-service/company-info.d.ts +0 -13
- package/dist/services/mm-api-service/company-info.d.ts.map +0 -1
- package/dist/services/nats-service/nats-service.d.ts +0 -114
- package/dist/services/nats-service/nats-service.d.ts.map +0 -1
- package/dist/services/nats-service/test-nats-subscriber.d.ts +0 -6
- package/dist/services/nats-service/test-nats-subscriber.d.ts.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -19
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/src/services/data-sync-service/nats-labor-ticket-listener.ts +0 -342
- 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
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,72 +1,68 @@
|
|
|
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
|
|
13
|
+
export { getTimezoneOffsetAndPersist } from "./time-utils.js";
|
|
14
|
+
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone.js";
|
|
15
|
+
export { applyTimezoneOffsetsToFields } from "./time-utils.js";
|
|
16
|
+
export { convertUtcDateTimeToErpLocal, convertErpLocalDateTimeToUtc, getERPTimezone, } from "./erp-timezone-utils.js";
|
|
17
|
+
export * from "./time-utils.js";
|
|
17
18
|
/**
|
|
18
19
|
* Caching and record tracking utilities
|
|
19
20
|
*/
|
|
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";
|
|
21
|
+
export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager.js";
|
|
22
|
+
export type { RecordTrackingObject } from "../services/caching-service/record-tracking-manager.js";
|
|
23
|
+
export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager.js";
|
|
24
|
+
export { BatchCacheManager } from "../services/caching-service/batch-cache-manager.js";
|
|
24
25
|
/**
|
|
25
26
|
* Process and data transformation utilities
|
|
26
27
|
*/
|
|
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";
|
|
28
|
+
export { StandardProcessDrivers } from "./standard-process-drivers/index.js";
|
|
29
|
+
export type { WriteEntitiesToMMResult } from "./standard-process-drivers/index.js";
|
|
30
|
+
export { MMBatchValidationError } from "./standard-process-drivers/index.js";
|
|
31
|
+
export { getCachedTimezoneOffset, getCachedTimezoneName, } from "./local-data-store/jobs-shared-data.js";
|
|
32
|
+
export { getInitialLoadComplete, setInitialLoadComplete, } from "./local-data-store/jobs-shared-data.js";
|
|
32
33
|
/**
|
|
33
34
|
* ERP API utilities
|
|
34
35
|
*/
|
|
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";
|
|
36
|
+
export * from "../services/erp-api-services/rest/rest-api-service.js";
|
|
37
|
+
export * from "../services/erp-api-services/rest/get-query-params.js";
|
|
38
|
+
export { getERPAPITypeFromEntity } from "./erp-type-from-entity.js";
|
|
38
39
|
/**
|
|
39
40
|
* HTTP Client utilities
|
|
40
41
|
*/
|
|
41
|
-
export { HTTPClientFactory } from "./http-client";
|
|
42
|
-
export { HTTPError } from "./http-client";
|
|
43
|
-
export type { HTTPClient, HTTPRequestConfig, HTTPResponse } from "./http-client";
|
|
42
|
+
export { HTTPClientFactory } from "./http-client.js";
|
|
43
|
+
export { HTTPError } from "./http-client.js";
|
|
44
|
+
export type { HTTPClient, HTTPRequestConfig, HTTPResponse } from "./http-client.js";
|
|
44
45
|
/**
|
|
45
46
|
* MM Labor Ticket utilities
|
|
46
47
|
*/
|
|
47
|
-
export * from "./mm-labor-ticket-helpers";
|
|
48
|
-
export { getErrorType } from './error-utils';
|
|
49
|
-
/**
|
|
50
|
-
* Error formatting utilities
|
|
51
|
-
*/
|
|
52
|
-
export { formatError, formatErrorForLogging } from './error-formatter';
|
|
53
|
-
export type { FormattedError } from './error-formatter';
|
|
48
|
+
export * from "./mm-labor-ticket-helpers.js";
|
|
49
|
+
export { getErrorType } from './error-utils.js';
|
|
54
50
|
/**
|
|
55
51
|
* MM Connector Logger utilities
|
|
56
52
|
*/
|
|
57
|
-
export { MMConnectorLogger, LogEntry, type LogResponse, type LogLevelString } from './connector-log/mm-connector-logger';
|
|
58
|
-
export { FileLogDeduper } from './connector-log/log-deduper';
|
|
53
|
+
export { MMConnectorLogger, LogEntry, type LogResponse, type LogLevelString } from './connector-log/mm-connector-logger.js';
|
|
54
|
+
export { FileLogDeduper } from './connector-log/log-deduper.js';
|
|
59
55
|
/**
|
|
60
56
|
* Application initializer
|
|
61
57
|
*/
|
|
62
|
-
export * from "./application-initializer";
|
|
58
|
+
export * from "./application-initializer.js";
|
|
63
59
|
/**
|
|
64
60
|
* GraphQL utilities
|
|
65
61
|
*/
|
|
66
|
-
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service";
|
|
67
|
-
export { OAuthClient } from "../services/erp-api-services/oauth-client";
|
|
62
|
+
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service.js";
|
|
63
|
+
export { OAuthClient } from "../services/erp-api-services/oauth-client.js";
|
|
68
64
|
/**
|
|
69
65
|
* Connector factory utilities
|
|
70
66
|
*/
|
|
71
|
-
export { createConnectorFromPath } from "./connector-factory";
|
|
67
|
+
export { createConnectorFromPath } from "./connector-factory.js";
|
|
72
68
|
//# 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,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;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,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,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for data manipulation
|
|
3
|
+
*/
|
|
4
|
+
export { getUniqueRows } from "./uniqueRows.js";
|
|
5
|
+
export { removeExtraneousFields } from "./removeExtraneousFields.js";
|
|
6
|
+
export { getPayloadWithoutIDField } from "./removeIdFieldFromPayload.js";
|
|
7
|
+
export { trimObjectValues } from "./trimObjectValues.js";
|
|
8
|
+
export { cleanupNumbers } from "./cleanup-numbers.js";
|
|
9
|
+
export { addNewFieldFromExternalSource, addNewFieldFromLookupField, } from "./data-transformation.js";
|
|
10
|
+
/**
|
|
11
|
+
* Timezone and time-related utilities
|
|
12
|
+
*/
|
|
13
|
+
export { getTimezoneOffsetAndPersist } from "./time-utils.js";
|
|
14
|
+
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone.js";
|
|
15
|
+
export { applyTimezoneOffsetsToFields } from "./time-utils.js";
|
|
16
|
+
export { convertUtcDateTimeToErpLocal, convertErpLocalDateTimeToUtc, getERPTimezone, } from "./erp-timezone-utils.js";
|
|
17
|
+
export * from "./time-utils.js";
|
|
18
|
+
/**
|
|
19
|
+
* Caching and record tracking utilities
|
|
20
|
+
*/
|
|
21
|
+
export { RecordTrackingManager } from "../services/caching-service/record-tracking-manager.js";
|
|
22
|
+
export { HashedCacheManager } from "../services/caching-service/hashed-cache-manager.js";
|
|
23
|
+
export { BatchCacheManager } from "../services/caching-service/batch-cache-manager.js";
|
|
24
|
+
/**
|
|
25
|
+
* Process and data transformation utilities
|
|
26
|
+
*/
|
|
27
|
+
export { StandardProcessDrivers } from "./standard-process-drivers/index.js";
|
|
28
|
+
export { MMBatchValidationError } from "./standard-process-drivers/index.js";
|
|
29
|
+
export { getCachedTimezoneOffset, getCachedTimezoneName, } from "./local-data-store/jobs-shared-data.js";
|
|
30
|
+
// Local data store
|
|
31
|
+
export { getInitialLoadComplete, setInitialLoadComplete, } from "./local-data-store/jobs-shared-data.js";
|
|
32
|
+
/**
|
|
33
|
+
* ERP API utilities
|
|
34
|
+
*/
|
|
35
|
+
export * from "../services/erp-api-services/rest/rest-api-service.js";
|
|
36
|
+
export * from "../services/erp-api-services/rest/get-query-params.js";
|
|
37
|
+
export { getERPAPITypeFromEntity } from "./erp-type-from-entity.js";
|
|
38
|
+
/**
|
|
39
|
+
* HTTP Client utilities
|
|
40
|
+
*/
|
|
41
|
+
export { HTTPClientFactory } from "./http-client.js";
|
|
42
|
+
export { HTTPError } from "./http-client.js";
|
|
43
|
+
/**
|
|
44
|
+
* MM Labor Ticket utilities
|
|
45
|
+
*/
|
|
46
|
+
export * from "./mm-labor-ticket-helpers.js";
|
|
47
|
+
export { getErrorType } from './error-utils.js';
|
|
48
|
+
/**
|
|
49
|
+
* MM Connector Logger utilities
|
|
50
|
+
*/
|
|
51
|
+
export { MMConnectorLogger, LogEntry } from './connector-log/mm-connector-logger.js';
|
|
52
|
+
export { FileLogDeduper } from './connector-log/log-deduper.js';
|
|
53
|
+
/**
|
|
54
|
+
* Application initializer
|
|
55
|
+
*/
|
|
56
|
+
export * from "./application-initializer.js";
|
|
57
|
+
/**
|
|
58
|
+
* GraphQL utilities
|
|
59
|
+
*/
|
|
60
|
+
export { GraphQLService } from "../services/erp-api-services/graphql/graphql-service.js";
|
|
61
|
+
export { OAuthClient } from "../services/erp-api-services/oauth-client.js";
|
|
62
|
+
/**
|
|
63
|
+
* Connector factory utilities
|
|
64
|
+
*/
|
|
65
|
+
export { createConnectorFromPath } from "./connector-factory.js";
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -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,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAEhD,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;GAEG;AACH,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAyC,MAAM,wCAAwC,CAAC;AAC5H,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;GAEG;AACH,cAAc,8BAA8B,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAE3E;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { readDatabaseLockState, writeDatabaseLockState, } from "./jobs-shared-data.js";
|
|
2
|
+
/**
|
|
3
|
+
* Gets the current database lock state
|
|
4
|
+
* @returns The current database lock state
|
|
5
|
+
*/
|
|
6
|
+
export const getDatabaseLock = () => {
|
|
7
|
+
const data = readDatabaseLockState();
|
|
8
|
+
return (data.databaseLock ?? {
|
|
9
|
+
isLocked: false,
|
|
10
|
+
lockedBy: "",
|
|
11
|
+
lockedAt: null,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Attempts to acquire the database lock
|
|
16
|
+
* @param processName Name of the process requesting the lock
|
|
17
|
+
* @returns true if lock was acquired, false if database is already locked
|
|
18
|
+
*/
|
|
19
|
+
export const acquireDatabaseLock = (processName) => {
|
|
20
|
+
const data = readDatabaseLockState();
|
|
21
|
+
const currentLock = data.databaseLock ?? {
|
|
22
|
+
isLocked: false,
|
|
23
|
+
lockedBy: "",
|
|
24
|
+
lockedAt: null,
|
|
25
|
+
};
|
|
26
|
+
if (currentLock.isLocked) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
data.databaseLock = {
|
|
30
|
+
isLocked: true,
|
|
31
|
+
lockedBy: processName,
|
|
32
|
+
lockedAt: new Date().toISOString(),
|
|
33
|
+
};
|
|
34
|
+
writeDatabaseLockState(data);
|
|
35
|
+
return true;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Releases the database lock
|
|
39
|
+
* @param processName Name of the process releasing the lock
|
|
40
|
+
* @returns true if lock was released, false if process doesn't own the lock
|
|
41
|
+
*/
|
|
42
|
+
export const releaseDatabaseLock = (processName) => {
|
|
43
|
+
const data = readDatabaseLockState();
|
|
44
|
+
const currentLock = data.databaseLock ?? {
|
|
45
|
+
isLocked: false,
|
|
46
|
+
lockedBy: "",
|
|
47
|
+
lockedAt: null,
|
|
48
|
+
};
|
|
49
|
+
if (!currentLock.isLocked || currentLock.lockedBy !== processName) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
data.databaseLock = {
|
|
53
|
+
isLocked: false,
|
|
54
|
+
lockedBy: "",
|
|
55
|
+
lockedAt: null,
|
|
56
|
+
};
|
|
57
|
+
writeDatabaseLockState(data);
|
|
58
|
+
return true;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Checks if the database is available for use
|
|
62
|
+
* @returns true if database is available, false if locked
|
|
63
|
+
*/
|
|
64
|
+
export const isDatabaseAvailable = () => {
|
|
65
|
+
const lock = getDatabaseLock();
|
|
66
|
+
return !lock.isLocked;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=database-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-lock.js","sourceRoot":"","sources":["../../../src/utils/local-data-store/database-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAQ/B;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAiB,EAAE;IAChD,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,OAAO,CACJ,IAAI,CAAC,YAA6B,IAAI;QACrC,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAW,EAAE;IAClE,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAI,IAAI,CAAC,YAA6B,IAAI;QACzD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,GAAG;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC;IACF,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAW,EAAE;IAClE,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAI,IAAI,CAAC,YAA6B,IAAI;QACzD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,GAAG;QAClB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IAC/C,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -11,6 +11,8 @@ export declare const writeDatabaseLockState: (data: Record<string, unknown>) =>
|
|
|
11
11
|
export declare const getInitialLoadComplete: () => boolean;
|
|
12
12
|
export declare const setInitialLoadComplete: (complete: boolean) => void;
|
|
13
13
|
/**
|
|
14
|
+
* @deprecated The cached numeric offset cannot account for DST changes.
|
|
15
|
+
* Prefer using the cached timezone name with Luxon helpers for conversions.
|
|
14
16
|
* Gets the company's cached current timezone offset (e.g., -5)
|
|
15
17
|
* @returns The cached timezone offset or 0 if not found
|
|
16
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs-shared-data.d.ts","sourceRoot":"","sources":["../../../src/utils/local-data-store/jobs-shared-data.ts"],"names":[],"mappings":"AA6CA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAE9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAEtE,CAAC;AAGF,eAAO,MAAM,sBAAsB,QAAO,OAGzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,OAAO,KAAG,IAI1D,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"jobs-shared-data.d.ts","sourceRoot":"","sources":["../../../src/utils/local-data-store/jobs-shared-data.ts"],"names":[],"mappings":"AA6CA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAE9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAEtE,CAAC;AAGF,eAAO,MAAM,sBAAsB,QAAO,OAGzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,OAAO,KAAG,IAI1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAO,MAG1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,IAIzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,MAAM,GAAG,IAGjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,IAIzD,CAAC;AAEF,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAO,WAAW,GAAG,IAGjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,WAAW,KAAG,IAIzD,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { mkdirSync } from "fs";
|
|
4
|
+
/**
|
|
5
|
+
* This file contains the logic for storing and retrieving data from the job state file.
|
|
6
|
+
* It is used to store data that is shared between jobs, and (more importantly) across job instances.
|
|
7
|
+
*/
|
|
8
|
+
const STORAGE_FILE = path.join("/tmp", "job-state.json");
|
|
9
|
+
// Ensure parent directory exists
|
|
10
|
+
const parentDir = path.dirname(STORAGE_FILE);
|
|
11
|
+
try {
|
|
12
|
+
mkdirSync(parentDir, { recursive: true });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error.code !== "EEXIST") {
|
|
16
|
+
throw error;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//#region Non-exported functions
|
|
20
|
+
const ensureStorageFile = () => {
|
|
21
|
+
if (!fs.existsSync(STORAGE_FILE)) {
|
|
22
|
+
fs.writeFileSync(STORAGE_FILE, JSON.stringify({}), "utf-8");
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const readStorage = () => {
|
|
26
|
+
ensureStorageFile();
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(fs.readFileSync(STORAGE_FILE, "utf-8"));
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error(`Failed to read storage from ${STORAGE_FILE}:`, error);
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const writeStorage = (data) => {
|
|
36
|
+
ensureStorageFile();
|
|
37
|
+
fs.writeFileSync(STORAGE_FILE, JSON.stringify(data, null, 2), "utf-8");
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region Database lock storage functions
|
|
41
|
+
/**
|
|
42
|
+
* Reads the database lock state from the shared storage file
|
|
43
|
+
* @returns The data stored in the file
|
|
44
|
+
*/
|
|
45
|
+
export const readDatabaseLockState = () => {
|
|
46
|
+
return readStorage();
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Writes the database lock state to the shared storage file
|
|
50
|
+
* @param data The lock state data to write
|
|
51
|
+
*/
|
|
52
|
+
export const writeDatabaseLockState = (data) => {
|
|
53
|
+
writeStorage(data);
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export const getInitialLoadComplete = () => {
|
|
57
|
+
const data = readStorage();
|
|
58
|
+
return data.initialLoadComplete ?? false;
|
|
59
|
+
};
|
|
60
|
+
export const setInitialLoadComplete = (complete) => {
|
|
61
|
+
const data = readStorage();
|
|
62
|
+
data.initialLoadComplete = complete;
|
|
63
|
+
writeStorage(data);
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated The cached numeric offset cannot account for DST changes.
|
|
67
|
+
* Prefer using the cached timezone name with Luxon helpers for conversions.
|
|
68
|
+
* Gets the company's cached current timezone offset (e.g., -5)
|
|
69
|
+
* @returns The cached timezone offset or 0 if not found
|
|
70
|
+
*/
|
|
71
|
+
export const getCachedTimezoneOffset = () => {
|
|
72
|
+
const data = readStorage();
|
|
73
|
+
return data.timezoneOffset ?? 0;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Sets the company's current timezone offset in the cache
|
|
77
|
+
* @param offset The timezone offset in hours
|
|
78
|
+
*/
|
|
79
|
+
export const setTimezoneOffsetInCache = (offset) => {
|
|
80
|
+
const data = readStorage();
|
|
81
|
+
data.timezoneOffset = offset;
|
|
82
|
+
writeStorage(data);
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Gets the cached timezone name (e.g., "America/New_York")
|
|
86
|
+
* @returns The cached timezone name or null if not found
|
|
87
|
+
*/
|
|
88
|
+
export const getCachedTimezoneName = () => {
|
|
89
|
+
const data = readStorage();
|
|
90
|
+
return data.timezoneName ?? null;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Sets the timezone name in the cache
|
|
94
|
+
* @param timezone The timezone name (e.g., "America/New_York")
|
|
95
|
+
*/
|
|
96
|
+
export const setTimezoneNameInCache = (timezone) => {
|
|
97
|
+
const data = readStorage();
|
|
98
|
+
data.timezoneName = timezone;
|
|
99
|
+
writeStorage(data);
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Gets the cached MM API token and its expiration
|
|
103
|
+
* @returns The cached token and expiration or null if not found
|
|
104
|
+
*/
|
|
105
|
+
export const getCachedMMToken = () => {
|
|
106
|
+
const data = readStorage();
|
|
107
|
+
return data.mmApiToken ?? null;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Sets the MM API token and its expiration in the cache
|
|
111
|
+
* @param tokenData The token and expiration to cache
|
|
112
|
+
*/
|
|
113
|
+
export const setCachedMMToken = (tokenData) => {
|
|
114
|
+
const data = readStorage();
|
|
115
|
+
data.mmApiToken = tokenData;
|
|
116
|
+
writeStorage(data);
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=jobs-shared-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs-shared-data.js","sourceRoot":"","sources":["../../../src/utils/local-data-store/jobs-shared-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
|
|
1
|
+
import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Converts key datetime fields from UTC (MachineMetrics API) to the ERP's local timezone.
|
|
4
|
+
* All inputs/outputs are ISO-8601 strings, and invalid inputs throw errors.
|
|
5
5
|
* @param laborTicket The MMApiReceiveLaborTicket object to convert
|
|
6
|
-
* @param timezoneOffset The timezone offset to apply
|
|
7
6
|
*/
|
|
8
|
-
export declare function convertLaborTicketToLocalTimezone(laborTicket: MMReceiveLaborTicket
|
|
7
|
+
export declare function convertLaborTicketToLocalTimezone(laborTicket: MMReceiveLaborTicket): MMReceiveLaborTicket;
|
|
9
8
|
//# sourceMappingURL=mm-labor-ticket-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mm-labor-ticket-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/mm-labor-ticket-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mm-labor-ticket-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/mm-labor-ticket-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAGzF;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,oBAAoB,GAChC,oBAAoB,CAoBtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { convertUtcDateTimeToErpLocal, getERPTimezone } from "./erp-timezone-utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Converts key datetime fields from UTC (MachineMetrics API) to the ERP's local timezone.
|
|
4
|
+
* All inputs/outputs are ISO-8601 strings, and invalid inputs throw errors.
|
|
5
|
+
* @param laborTicket The MMApiReceiveLaborTicket object to convert
|
|
6
|
+
*/
|
|
7
|
+
export function convertLaborTicketToLocalTimezone(laborTicket) {
|
|
8
|
+
const timeFields = [
|
|
9
|
+
"clockIn",
|
|
10
|
+
"clockOut",
|
|
11
|
+
"transactionDate",
|
|
12
|
+
"createdAt",
|
|
13
|
+
"updatedAt",
|
|
14
|
+
"workOrderOperationClosedDate",
|
|
15
|
+
];
|
|
16
|
+
const timezone = getERPTimezone();
|
|
17
|
+
timeFields.forEach((field) => {
|
|
18
|
+
const value = laborTicket[field];
|
|
19
|
+
if (value) {
|
|
20
|
+
laborTicket[field] = convertUtcDateTimeToErpLocal(value, timezone);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
laborTicket[field] = null;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return laborTicket;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=mm-labor-ticket-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mm-labor-ticket-helpers.js","sourceRoot":"","sources":["../../src/utils/mm-labor-ticket-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEvF;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,WAAiC;IAEjC,MAAM,UAAU,GAAG;QACjB,SAAS;QACT,UAAU;QACV,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,8BAA8B;KACtB,CAAC;IAEX,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,CAAC,KAAK,CAAC,GAAG,4BAA4B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeExtraneousFields.d.ts","sourceRoot":"","sources":["../../src/utils/removeExtraneousFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"removeExtraneousFields.d.ts","sourceRoot":"","sources":["../../src/utils/removeExtraneousFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,SAAS,EAAE,EACtB,cAAc,MAAM,EAAE,KACrB,SAAS,EAaX,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retain only the fields listed in retainFields[] in the payload
|
|
3
|
+
*/
|
|
4
|
+
export const removeExtraneousFields = (recordset, retainFields) => {
|
|
5
|
+
const data = recordset.map((row) => {
|
|
6
|
+
const transformedRow = {};
|
|
7
|
+
Object.keys(row).forEach((key) => {
|
|
8
|
+
if (retainFields.includes(key)) {
|
|
9
|
+
transformedRow[key] = row[key]?.toString() || "";
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
return transformedRow;
|
|
13
|
+
}) || [];
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=removeExtraneousFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeExtraneousFields.js","sourceRoot":"","sources":["../../src/utils/removeExtraneousFields.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,SAAsB,EACtB,YAAsB,EACT,EAAE;IACf,MAAM,IAAI,GACR,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,MAAM,cAAc,GAAc,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,IAAI,EAAE,CAAC;IAEX,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeIdFieldFromPayload.d.ts","sourceRoot":"","sources":["../../src/utils/removeIdFieldFromPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"removeIdFieldFromPayload.d.ts","sourceRoot":"","sources":["../../src/utils/removeIdFieldFromPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,WAAW,SAAS,EAAE,EACtB,SAAS,MAAM,EAAE,KAChB,SAAS,EAaX,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remove all fields listed in idField[] the from the payload
|
|
3
|
+
*/
|
|
4
|
+
export const getPayloadWithoutIDField = (recordset, idField) => {
|
|
5
|
+
const data = recordset.map((row) => {
|
|
6
|
+
const transformedRow = {};
|
|
7
|
+
Object.keys(row).forEach((key) => {
|
|
8
|
+
if (!idField.includes(key)) {
|
|
9
|
+
transformedRow[key] = row[key]?.toString() || "";
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
return transformedRow;
|
|
13
|
+
}) || [];
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=removeIdFieldFromPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeIdFieldFromPayload.js","sourceRoot":"","sources":["../../src/utils/removeIdFieldFromPayload.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,SAAsB,EACtB,OAAiB,EACJ,EAAE;IACf,MAAM,IAAI,GACR,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,MAAM,cAAc,GAAc,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,IAAI,EAAE,CAAC;IAEX,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MMApiClient } from "../services/mm-api-service";
|
|
1
|
+
import { MMApiClient } from "../services/mm-api-service/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Get the machine group ID as known to the ERP for a given resource ID. This is useful when needing to update
|
|
4
4
|
* records in the ERP for the ERP's resource ID when it represents a group of machines.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-group.d.ts","sourceRoot":"","sources":["../../src/utils/resource-group.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAGZ,MAAM,
|
|
1
|
+
{"version":3,"file":"resource-group.d.ts","sourceRoot":"","sources":["../../src/utils/resource-group.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAGZ,MAAM,qCAAqC,CAAC;AAK7C;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsE7B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import logger from "../services/reporting-service/logger.js";
|
|
2
|
+
// The GraphQLResourceTypes interface has been replaced by the centralized
|
|
3
|
+
// MM response interfaces: MMGraphQLResourceResponse and MMMachineGroupsResponse
|
|
4
|
+
/**
|
|
5
|
+
* Get the machine group ID as known to the ERP for a given resource ID. This is useful when needing to update
|
|
6
|
+
* records in the ERP for the ERP's resource ID when it represents a group of machines.
|
|
7
|
+
*
|
|
8
|
+
* @param client The MMApiClient instance to use for API calls
|
|
9
|
+
* @param resourceId The resource ID to get the machine group ID for
|
|
10
|
+
* @returns The machine group ID, or undefined if the resource ID is not found or it is not in a group or a match is not otherwise found
|
|
11
|
+
*/
|
|
12
|
+
export async function getResourceERPGroupId(client, resourceId) {
|
|
13
|
+
try {
|
|
14
|
+
// Get the ERP resources to map resource IDs to machine refs
|
|
15
|
+
const erpResources = (await client.fetchResourcesFromGraphQL());
|
|
16
|
+
if (!erpResources?.data?.machineResource) {
|
|
17
|
+
logger.error("Failed to fetch ERP resources");
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const matchingResource = erpResources.data.machineResource.find((resource) => resource.resourceId === resourceId);
|
|
21
|
+
if (!matchingResource) {
|
|
22
|
+
logger.error(`No ERP resource found for resource ID: ${resourceId}`);
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
// Get the machine groups to map machine refs to group IDs
|
|
26
|
+
const machineGroupsResponse = (await client.fetchMachineGroups());
|
|
27
|
+
const machineGroups = machineGroupsResponse.data;
|
|
28
|
+
if (!machineGroups) {
|
|
29
|
+
logger.error("Failed to fetch machine groups");
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const matchingGroups = machineGroups.filter((group) => group.machines?.some((machine) => machine.machineRef === matchingResource.machineRef));
|
|
33
|
+
// The application should not allow multiple groups to contain the same machine ref
|
|
34
|
+
if (matchingGroups.length === 0) {
|
|
35
|
+
logger.error(`No machine group found for resource ID: ${resourceId}`);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
else if (matchingGroups.length > 1) {
|
|
39
|
+
logger.warn(`Multiple groups found containing machine with resource ID: ${resourceId}. Using first match.`);
|
|
40
|
+
}
|
|
41
|
+
const machineGroupId = matchingGroups[0].id;
|
|
42
|
+
// Find the group's resource ID
|
|
43
|
+
const groupResource = erpResources.data.machineResource.find((resource) => resource.machineGroupId === machineGroupId);
|
|
44
|
+
if (!groupResource) {
|
|
45
|
+
logger.info(`No ERP resource found for machine group ID: ${machineGroupId}`);
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
if (groupResource.resourceId === null ||
|
|
49
|
+
groupResource.resourceId.trim() === "") {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return groupResource.resourceId;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
logger.error("Error getting resource group ID", { error, resourceId });
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=resource-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-group.js","sourceRoot":"","sources":["../../src/utils/resource-group.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAO7D,0EAA0E;AAC1E,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmB,EACnB,UAAkB;IAElB,IAAI,CAAC;QACH,4DAA4D;QAC5D,MAAM,YAAY,GAChB,CAAC,MAAM,MAAM,CAAC,yBAAyB,EAAE,CAA8B,CAAC;QAC1E,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAC7D,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CACjD,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,0DAA0D;QAC1D,MAAM,qBAAqB,GACzB,CAAC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAA4B,CAAC;QACjE,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACpD,KAAK,CAAC,QAAQ,EAAE,IAAI,CAClB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,gBAAgB,CAAC,UAAU,CAChE,CACF,CAAC;QAEF,mFAAmF;QACnF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;YACtE,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CACT,8DAA8D,UAAU,sBAAsB,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5C,+BAA+B;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAC1D,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,CACzD,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CACT,+CAA+C,cAAc,EAAE,CAChE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IACE,aAAa,CAAC,UAAU,KAAK,IAAI;YACjC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EACtC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,aAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ERPObjType } from "../../types/erp-types";
|
|
2
|
-
import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager";
|
|
3
|
-
import { IToRESTApiObject, MM207NonLaborTicketResponse, MM207LaborTicketResponse } from "../../services/mm-api-service";
|
|
1
|
+
import { ERPObjType } from "../../types/erp-types.js";
|
|
2
|
+
import { BatchCacheManager } from "../../services/caching-service/batch-cache-manager.js";
|
|
3
|
+
import { IToRESTApiObject, MM207NonLaborTicketResponse, MM207LaborTicketResponse } from "../../services/mm-api-service/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Handles error processing and record management utilities for MM API operations
|
|
6
6
|
*/
|