@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
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { getCachedMMToken, setCachedMMToken, } from "../../utils/local-data-store/jobs-shared-data.js";
|
|
2
|
+
import { HTTPClientFactory } from "../../utils/http-client.js";
|
|
3
|
+
import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
|
|
4
|
+
import { logger } from "../reporting-service/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Manages the MM API token with caching and expiration checking
|
|
7
|
+
* Tokens are cached across jobs and job instances in local-data-store/jobs-shared-data.ts
|
|
8
|
+
* @jest-environment node
|
|
9
|
+
*/
|
|
10
|
+
export class MMTokenManager {
|
|
11
|
+
token;
|
|
12
|
+
tokenExpiration;
|
|
13
|
+
baseUrl;
|
|
14
|
+
api;
|
|
15
|
+
constructor() {
|
|
16
|
+
const cached = getCachedMMToken();
|
|
17
|
+
this.token = cached?.token || "";
|
|
18
|
+
this.tokenExpiration = cached?.expiration
|
|
19
|
+
? new Date(cached.expiration)
|
|
20
|
+
: null;
|
|
21
|
+
const config = CoreConfiguration.inst();
|
|
22
|
+
console.log("=== MMTOKEN MANAGER DEBUG ===");
|
|
23
|
+
console.log("config.mmApiBaseUrl:", config.mmApiBaseUrl);
|
|
24
|
+
console.log("config object keys:", Object.keys(config));
|
|
25
|
+
this.baseUrl = config.mmApiBaseUrl;
|
|
26
|
+
console.log("this.baseUrl set to:", this.baseUrl);
|
|
27
|
+
console.log("=== END MMTOKEN MANAGER DEBUG ===");
|
|
28
|
+
this.api = HTTPClientFactory.getInstance({
|
|
29
|
+
baseUrl: this.baseUrl,
|
|
30
|
+
retryAttempts: config.mmApiRetryAttempts,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Checks if the current token is expired or will expire within the next minute
|
|
35
|
+
* @returns boolean indicating if token needs refresh
|
|
36
|
+
*/
|
|
37
|
+
isTokenExpired() {
|
|
38
|
+
if (!this.tokenExpiration)
|
|
39
|
+
return true;
|
|
40
|
+
// Add 1 minute buffer to ensure we refresh before actual expiration
|
|
41
|
+
const bufferTimeMS = 60_000;
|
|
42
|
+
const isExpired = this.tokenExpiration.getTime() - bufferTimeMS <= Date.now();
|
|
43
|
+
if (isExpired) {
|
|
44
|
+
logger.info("isTokenExpired: the api token from MM has expired");
|
|
45
|
+
}
|
|
46
|
+
return isExpired;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Safely extracts expiration time from JWT token
|
|
50
|
+
* @param token JWT token string
|
|
51
|
+
* @returns Date object representing token expiration, or null if cannot be determined
|
|
52
|
+
*/
|
|
53
|
+
getTokenExpiration(token) {
|
|
54
|
+
try {
|
|
55
|
+
// Split token into parts
|
|
56
|
+
const parts = token.split(".");
|
|
57
|
+
if (parts.length !== 3) {
|
|
58
|
+
console.warn("Invalid JWT format: token does not have 3 parts");
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
// Decode payload (second part)
|
|
62
|
+
const payload = Buffer.from(parts[1], "base64").toString("utf-8");
|
|
63
|
+
const decodedPayload = JSON.parse(payload);
|
|
64
|
+
// Check if exp claim exists
|
|
65
|
+
if (typeof decodedPayload.exp !== "number") {
|
|
66
|
+
console.warn("JWT does not contain expiration time (exp claim)");
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
// Convert Unix timestamp (seconds) to Date
|
|
70
|
+
return new Date(decodedPayload.exp * 1000);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.warn("Error parsing JWT token:", error);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Gets a valid token, either from cache or by requesting a new one
|
|
79
|
+
* @returns Promise resolving to a valid token string
|
|
80
|
+
*/
|
|
81
|
+
async getToken() {
|
|
82
|
+
if (this.token && !this.isTokenExpired()) {
|
|
83
|
+
return this.token;
|
|
84
|
+
}
|
|
85
|
+
const config = CoreConfiguration.inst();
|
|
86
|
+
const serviceToken = config.mmApiAuthToken;
|
|
87
|
+
const tokenResponse = await this.api.request({
|
|
88
|
+
url: "/user-token",
|
|
89
|
+
method: "GET",
|
|
90
|
+
headers: {
|
|
91
|
+
Authorization: `Bearer ${serviceToken}`,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
this.token = tokenResponse.data;
|
|
95
|
+
this.tokenExpiration = this.getTokenExpiration(this.token);
|
|
96
|
+
// Cache the new token and its expiration
|
|
97
|
+
setCachedMMToken({
|
|
98
|
+
token: this.token,
|
|
99
|
+
expiration: this.tokenExpiration?.getTime() || null,
|
|
100
|
+
});
|
|
101
|
+
logger.info("getToken: the api token from MM has been refreshed");
|
|
102
|
+
return this.token;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Invalidates the current token, forcing a fresh fetch on next getToken() call
|
|
106
|
+
*/
|
|
107
|
+
invalidateToken() {
|
|
108
|
+
this.token = "";
|
|
109
|
+
this.tokenExpiration = null;
|
|
110
|
+
setCachedMMToken({ token: "", expiration: null });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=token-mgr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-mgr.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/token-mgr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/checkpoint.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ERPObjType } from "../../../types/erp-types";
|
|
2
|
-
import { IToRESTApiObject } from "
|
|
1
|
+
import { ERPObjType } from "../../../types/erp-types.js";
|
|
2
|
+
import { IToRESTApiObject } from "../index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Utility class for transforming entities to/from non-typed and typed objects
|
|
5
5
|
* for interacting with the MachineMetrics API..
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-transformer.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/entity-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"entity-transformer.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/entity-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAY/C;;;GAGG;AACH,qBAAa,iBAAiB;IAK5B;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,gBAAgB,GACvB,MAAM;IAyBT;;;;;;OAMG;IACH,MAAM,CAAC,wBAAwB,CAC7B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACvC,gBAAgB;IAyBnB;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC,CACrC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,GAC9C,gBAAgB,EAAE;IAUrB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAUtC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAY3C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA6BpC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAMvC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAMnC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAM5C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAUhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CA0BrC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { ERPObjType } from "../../../types/erp-types.js";
|
|
2
|
+
import { MMSendPerson, MMSendResource, MMSendPart, MMSendPartOperation, MMSendWorkOrder, MMSendWorkOrderOperation, MMSendLaborTicket, MMSendReason, } from "../index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Utility class for transforming entities to/from non-typed and typed objects
|
|
5
|
+
* for interacting with the MachineMetrics API..
|
|
6
|
+
*/
|
|
7
|
+
export class EntityTransformer {
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// PUBLIC INTERFACE METHODS
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Extracts the primary key from a record based on entity type
|
|
13
|
+
* @param entityType The type of entity being processed
|
|
14
|
+
* @param record The record to extract primary key from
|
|
15
|
+
* @returns A string representation of the primary key
|
|
16
|
+
* @throws Error if primary key fields are missing or invalid
|
|
17
|
+
*/
|
|
18
|
+
static extractPrimaryKey(entityType, record) {
|
|
19
|
+
switch (entityType) {
|
|
20
|
+
case ERPObjType.PERSONS:
|
|
21
|
+
return this.extractPersonKey(record);
|
|
22
|
+
case ERPObjType.RESOURCES:
|
|
23
|
+
return this.extractResourceKey(record);
|
|
24
|
+
case ERPObjType.PARTS:
|
|
25
|
+
return this.extractPartKey(record);
|
|
26
|
+
case ERPObjType.PART_OPERATION:
|
|
27
|
+
return this.extractPartOperationKey(record);
|
|
28
|
+
case ERPObjType.WORK_ORDERS:
|
|
29
|
+
return this.extractWorkOrderKey(record);
|
|
30
|
+
case ERPObjType.WORK_ORDER_OPERATIONS:
|
|
31
|
+
return this.extractWorkOrderOperationKey(record);
|
|
32
|
+
case ERPObjType.LABOR_TICKETS:
|
|
33
|
+
return this.extractLaborTicketKey(record);
|
|
34
|
+
case ERPObjType.REASONS:
|
|
35
|
+
return this.extractReasonKey(record);
|
|
36
|
+
default:
|
|
37
|
+
throw new Error(`Unsupported entity type for primary key extraction: ${entityType}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Reconstructs a typed object from plain data based on entity type
|
|
42
|
+
* @param entityType The type of entity being processed
|
|
43
|
+
* @param plainData The plain data object containing entity fields
|
|
44
|
+
* @returns A properly typed IToRESTApiObject instance
|
|
45
|
+
* @throws Error if the entity type is not supported
|
|
46
|
+
*/
|
|
47
|
+
static reconstructFromPlainData(entityType, plainData) {
|
|
48
|
+
switch (entityType) {
|
|
49
|
+
case ERPObjType.PERSONS:
|
|
50
|
+
return this.reconstructPerson(plainData);
|
|
51
|
+
case ERPObjType.RESOURCES:
|
|
52
|
+
return this.reconstructResource(plainData);
|
|
53
|
+
case ERPObjType.PARTS:
|
|
54
|
+
return this.reconstructPart(plainData);
|
|
55
|
+
case ERPObjType.PART_OPERATION:
|
|
56
|
+
return this.reconstructPartOperation(plainData);
|
|
57
|
+
case ERPObjType.WORK_ORDERS:
|
|
58
|
+
return this.reconstructWorkOrder(plainData);
|
|
59
|
+
case ERPObjType.WORK_ORDER_OPERATIONS:
|
|
60
|
+
return this.reconstructWorkOrderOperation(plainData);
|
|
61
|
+
case ERPObjType.LABOR_TICKETS:
|
|
62
|
+
return this.reconstructLaborTicket(plainData);
|
|
63
|
+
case ERPObjType.REASONS:
|
|
64
|
+
return this.reconstructReason(plainData);
|
|
65
|
+
default:
|
|
66
|
+
throw new Error(`Unsupported entity type for reconstruction: ${entityType}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reconstructs multiple typed objects from plain data based on entity type
|
|
71
|
+
* @param entityType The type of entity being processed
|
|
72
|
+
* @param plainDataArray Array of plain data objects containing entity fields
|
|
73
|
+
* @returns Array of properly typed IToRESTApiObject instances
|
|
74
|
+
*/
|
|
75
|
+
static reconstructMultipleFromPlainData(entityType, plainDataArray) {
|
|
76
|
+
return plainDataArray.map((plainData) => this.reconstructFromPlainData(entityType, plainData));
|
|
77
|
+
}
|
|
78
|
+
// ============================================================================
|
|
79
|
+
// PRIVATE ENTITY-SPECIFIC KEY EXTRACTION METHODS
|
|
80
|
+
// ============================================================================
|
|
81
|
+
static extractPersonKey(record) {
|
|
82
|
+
const restApiObject = record.toRESTApiObject();
|
|
83
|
+
return this.validateAndExtractKey(restApiObject, ["personId"], "PERSONS", [
|
|
84
|
+
"personId",
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
static extractResourceKey(record) {
|
|
88
|
+
const restApiObject = record.toRESTApiObject();
|
|
89
|
+
return this.validateAndExtractKey(restApiObject, ["resourceId"], "RESOURCES", ["resourceId"]);
|
|
90
|
+
}
|
|
91
|
+
static extractPartKey(record) {
|
|
92
|
+
const restApiObject = record.toRESTApiObject();
|
|
93
|
+
return this.validateAndExtractKey(restApiObject, ["partNumber", "partRevision", "method"], "PARTS", ["partNumber"]);
|
|
94
|
+
}
|
|
95
|
+
static extractPartOperationKey(record) {
|
|
96
|
+
const restApiObject = record.toRESTApiObject();
|
|
97
|
+
return this.validateAndExtractKey(restApiObject, ["partNumber", "partRevision", "method", "sequenceNumber"], "PART_OPERATION", ["partNumber", "sequenceNumber"]);
|
|
98
|
+
}
|
|
99
|
+
static extractWorkOrderKey(record) {
|
|
100
|
+
const restApiObject = record.toRESTApiObject();
|
|
101
|
+
return this.validateAndExtractKey(restApiObject, ["workOrderId", "lot", "split", "sub"], "WORK_ORDERS", ["workOrderId"]);
|
|
102
|
+
}
|
|
103
|
+
static extractWorkOrderOperationKey(record) {
|
|
104
|
+
const restApiObject = record.toRESTApiObject();
|
|
105
|
+
return this.validateAndExtractKey(restApiObject, ["workOrderId", "lot", "split", "sub", "sequenceNumber"], "WORK_ORDER_OPERATIONS", ["workOrderId", "sequenceNumber"]);
|
|
106
|
+
}
|
|
107
|
+
static extractLaborTicketKey(record) {
|
|
108
|
+
const restApiObject = record.toRESTApiObject();
|
|
109
|
+
// Labor tickets can use laborTicketId if present, otherwise use operational context
|
|
110
|
+
if (restApiObject.laborTicketId) {
|
|
111
|
+
return this.validateAndExtractKey(restApiObject, ["laborTicketId"], "LABOR_TICKETS", ["laborTicketId"]);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return this.validateAndExtractKey(restApiObject, [
|
|
115
|
+
"workOrderId",
|
|
116
|
+
"lot",
|
|
117
|
+
"split",
|
|
118
|
+
"sub",
|
|
119
|
+
"sequenceNumber",
|
|
120
|
+
"resourceId",
|
|
121
|
+
"personId",
|
|
122
|
+
], "LABOR_TICKETS", ["workOrderId", "sequenceNumber", "resourceId", "personId"]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
static extractReasonKey(record) {
|
|
126
|
+
const restApiObject = record.toRESTApiObject();
|
|
127
|
+
return this.validateAndExtractKey(restApiObject, ["reasonId"], "REASONS", [
|
|
128
|
+
"reasonId",
|
|
129
|
+
]);
|
|
130
|
+
}
|
|
131
|
+
// ============================================================================
|
|
132
|
+
// PRIVATE ENTITY-SPECIFIC RECONSTRUCTION METHODS
|
|
133
|
+
// ============================================================================
|
|
134
|
+
static reconstructPerson(plainData) {
|
|
135
|
+
return MMSendPerson.fromPlainObject(plainData);
|
|
136
|
+
}
|
|
137
|
+
static reconstructResource(plainData) {
|
|
138
|
+
return MMSendResource.fromPlainObject(plainData);
|
|
139
|
+
}
|
|
140
|
+
static reconstructPart(plainData) {
|
|
141
|
+
return MMSendPart.fromPlainObject(plainData);
|
|
142
|
+
}
|
|
143
|
+
static reconstructPartOperation(plainData) {
|
|
144
|
+
return MMSendPartOperation.fromPlainObject(plainData);
|
|
145
|
+
}
|
|
146
|
+
static reconstructWorkOrder(plainData) {
|
|
147
|
+
return MMSendWorkOrder.fromPlainObject(plainData);
|
|
148
|
+
}
|
|
149
|
+
static reconstructWorkOrderOperation(plainData) {
|
|
150
|
+
return MMSendWorkOrderOperation.fromPlainObject(plainData);
|
|
151
|
+
}
|
|
152
|
+
static reconstructLaborTicket(plainData) {
|
|
153
|
+
return MMSendLaborTicket.fromPlainObject(plainData);
|
|
154
|
+
}
|
|
155
|
+
static reconstructReason(plainData) {
|
|
156
|
+
return MMSendReason.fromPlainObject(plainData);
|
|
157
|
+
}
|
|
158
|
+
// ============================================================================
|
|
159
|
+
// SHARED UTILITY METHODS
|
|
160
|
+
// ============================================================================
|
|
161
|
+
/**
|
|
162
|
+
* Helper method to validate and extract primary key components
|
|
163
|
+
* @param restApiObject The REST API object representation
|
|
164
|
+
* @param keyFields The fields that make up the primary key
|
|
165
|
+
* @param entityTypeName The entity type name for error messages
|
|
166
|
+
* @param requiredFields The fields that must be non-empty (others can be empty)
|
|
167
|
+
* @returns Combined primary key string
|
|
168
|
+
* @throws Error if any required field is missing or null
|
|
169
|
+
*/
|
|
170
|
+
static validateAndExtractKey(restApiObject, keyFields, entityTypeName, requiredFields) {
|
|
171
|
+
const keyValues = [];
|
|
172
|
+
for (const field of keyFields) {
|
|
173
|
+
const value = restApiObject[field];
|
|
174
|
+
// Check if this field is required
|
|
175
|
+
if (requiredFields.includes(field)) {
|
|
176
|
+
if (value === null || value === undefined || value === "") {
|
|
177
|
+
throw new Error(`Primary key field '${field}' is missing or empty for entity type ${entityTypeName}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Use the value if present, otherwise use empty string
|
|
181
|
+
keyValues.push(value || "");
|
|
182
|
+
}
|
|
183
|
+
return keyValues.join("|");
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=entity-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-transformer.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/entity-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response interfaces for MM API calls
|
|
3
|
+
*
|
|
4
|
+
* These interfaces provide type safety for the various response shapes
|
|
5
|
+
* returned by the MM API based on HTTP status codes and entity types.
|
|
6
|
+
*
|
|
7
|
+
* Usage pattern:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const result = await client.sendWorkOrdersToMM(orders);
|
|
10
|
+
* if (result.httpStatus === 200) {
|
|
11
|
+
* const success = result as MM200NonLaborTicketResponse;
|
|
12
|
+
* console.log(`Processed ${success.affectedRows} records`);
|
|
13
|
+
* } else if (result.httpStatus === 207) {
|
|
14
|
+
* const partial = result as MM207NonLaborTicketResponse;
|
|
15
|
+
* console.log(`Partial success with ${partial.data.errors.length} error batches`);
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// NOTES ON OTHER SPECIALIZED RESPONSES
|
|
22
|
+
// ============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* For other operations like saveCheckpoint, deleteLaborTickets, etc.,
|
|
25
|
+
* we return Promise<MMApiBaseResponse> until we have:
|
|
26
|
+
*
|
|
27
|
+
* 1. Clear understanding of actual response shapes
|
|
28
|
+
* 2. Real need for type safety on those responses
|
|
29
|
+
* 3. Actual usage patterns that would benefit from specific typing
|
|
30
|
+
*
|
|
31
|
+
* This avoids the anti-pattern of vague interfaces with [key: string]: unknown
|
|
32
|
+
* that provide no real type safety.
|
|
33
|
+
*/
|
|
34
|
+
//# sourceMappingURL=mm-response-interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mm-response-interfaces.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/mm-response-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAqRH,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E;;;;;;;;;;GAUG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive-types.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/receive-types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,oBAAoB;gBACnB,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK/C,IAAI,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAOhD;IAED,IAAI,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAIpD;IAGD,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAID,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAG,MAAM,CAAC;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,cAAc,EAAG,MAAM,CAAC;IACxB,GAAG,EAAG,MAAM,CAAC;IACb,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,UAAU,EAAG,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"receive-types.d.ts","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/receive-types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,oBAAoB;gBACnB,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK/C,IAAI,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAOhD;IAED,IAAI,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAIpD;IAGD,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAID,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAG,MAAM,CAAC;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,cAAc,EAAG,MAAM,CAAC;IACxB,GAAG,EAAG,MAAM,CAAC;IACb,QAAQ,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,UAAU,EAAG,MAAM,CAAC;IACpB,cAAc,EAAG,MAAM,CAAC;IACxB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,IAAI,EAAG,MAAM,CAAC;IACd,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAG,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,sCAAsC,CAAC;IAC5D,GAAG,EAAG,MAAM,CAAC;IACb,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
//#region MMReceiveLaborTicket
|
|
2
|
+
/**
|
|
3
|
+
* Represents a labor ticket as received from the MM API /erp/v1/labor-tickets/export/updates
|
|
4
|
+
*/
|
|
5
|
+
export class MMReceiveLaborTicket {
|
|
6
|
+
constructor(data) {
|
|
7
|
+
Object.assign(this, data);
|
|
8
|
+
}
|
|
9
|
+
// Returns the closed date if it is a valid date, otherwise returns null
|
|
10
|
+
get workOrderOperationClosedDate() {
|
|
11
|
+
const closedDate = this.workOrderOperation?.closedDate;
|
|
12
|
+
return typeof closedDate === "string" &&
|
|
13
|
+
closedDate !== "" &&
|
|
14
|
+
!isNaN(Date.parse(closedDate))
|
|
15
|
+
? closedDate
|
|
16
|
+
: null;
|
|
17
|
+
}
|
|
18
|
+
set workOrderOperationClosedDate(value) {
|
|
19
|
+
if (this.workOrderOperation) {
|
|
20
|
+
this.workOrderOperation.closedDate = value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Returns 1 if the work order operation is closed (has a valid closed date), 0 otherwise
|
|
24
|
+
get workOrderOpIsClosed() {
|
|
25
|
+
return this.workOrderOperationClosedDate !== null ? 1 : 0;
|
|
26
|
+
}
|
|
27
|
+
/*Descriptions from machinemetrics.atlassian.net/wiki/spaces/DEVE/pages/842661901/MM+ERP+Schema+Descriptions*/
|
|
28
|
+
badParts; // The number of parts produced that do not meet quality standards
|
|
29
|
+
clockIn; // The timestamp when the work on this ticket started
|
|
30
|
+
clockOut; // The timestamp when the work on this ticket ended
|
|
31
|
+
comment;
|
|
32
|
+
createdAt;
|
|
33
|
+
goodParts; // The number of parts produced that meet quality standards
|
|
34
|
+
laborTicketId; // The unique identifier for the labor ticket in the ERP
|
|
35
|
+
laborTicketRef; // The unique identifier for the labor ticket in MM
|
|
36
|
+
lot; // Refers to a material batch. If not available in the ERP, default to an empty string
|
|
37
|
+
personId; // The person who did the work
|
|
38
|
+
reasons;
|
|
39
|
+
resourceId; // The physical resource that did the work
|
|
40
|
+
sequenceNumber; // Which sequence this operation is for in the order, associates back to a part_operation with the part_number from the work_order, and sequence_number from the op
|
|
41
|
+
split; // Batch number if order split for staggered delivery. If not available in the ERP, default to an empty string
|
|
42
|
+
state; // The current state of the labor ticket (e.g., "CLOSED/OPEN")
|
|
43
|
+
type; // If the labor is production, setup, or indirect
|
|
44
|
+
syncedAt;
|
|
45
|
+
updatedAt;
|
|
46
|
+
workOrderId; // The order this labor ticket corresponds to
|
|
47
|
+
workOrderOperation;
|
|
48
|
+
sub; // Batch number for parts that had to be rerun. If not available in the ERP, default to an empty string
|
|
49
|
+
transactionDate;
|
|
50
|
+
}
|
|
51
|
+
//#endregion MMReceiveLaborTicket
|
|
52
|
+
//#region MMReceiveTimesheet
|
|
53
|
+
// MLW TODO
|
|
54
|
+
// #endregion MMReceiveTimesheet
|
|
55
|
+
//# sourceMappingURL=receive-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receive-types.js","sourceRoot":"","sources":["../../../../src/services/mm-api-service/types/receive-types.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAC/B,YAAY,IAAmC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,wEAAwE;IACxE,IAAI,4BAA4B;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;QACvD,OAAO,OAAO,UAAU,KAAK,QAAQ;YACnC,UAAU,KAAK,EAAE;YACjB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,IAAI,4BAA4B,CAAC,KAAoB;QACnD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,4BAA4B,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,8GAA8G;IAE9G,QAAQ,CAAU,CAAC,kEAAkE;IACrF,OAAO,CAAiB,CAAC,qDAAqD;IAC9E,QAAQ,CAAiB,CAAC,mDAAmD;IAC7E,OAAO,CAAiB;IACxB,SAAS,CAAiB;IAC1B,SAAS,CAAU,CAAC,2DAA2D;IAC/E,aAAa,CAAU,CAAC,wDAAwD;IAChF,cAAc,CAAU,CAAC,mDAAmD;IAC5E,GAAG,CAAU,CAAC,sFAAsF;IACpG,QAAQ,CAAU,CAAC,8BAA8B;IACjD,OAAO,CAAgC;IACvC,UAAU,CAAU,CAAC,0CAA0C;IAC/D,cAAc,CAAU,CAAC,mKAAmK;IAC5L,KAAK,CAAU,CAAC,8GAA8G;IAC9H,KAAK,CAAU,CAAC,8DAA8D;IAC9E,IAAI,CAAU,CAAC,iDAAiD;IAChE,QAAQ,CAAiB;IACzB,SAAS,CAAiB;IAC1B,WAAW,CAAU,CAAC,6CAA6C;IACnE,kBAAkB,CAA0C;IAC5D,GAAG,CAAU,CAAC,uGAAuG;IACrH,eAAe,CAAiB;CACjC;AA4BD,iCAAiC;AAEjC,4BAA4B;AAE5B,WAAW;AAEX,gCAAgC"}
|