@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,36 @@
|
|
|
1
|
+
import sql from "mssql";
|
|
2
|
+
import logger from "../../reporting-service/logger.js";
|
|
3
|
+
export class SQLTransactionManager {
|
|
4
|
+
connection;
|
|
5
|
+
constructor(connection) {
|
|
6
|
+
this.connection = connection;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Executes a transaction with the given operation and data, manages rollbacks
|
|
10
|
+
* @param operation The SQLTransactionOperation to execute
|
|
11
|
+
* @param data The sql input parameters to pass to the operation
|
|
12
|
+
* @param config The configuration for the transaction
|
|
13
|
+
* @returns The result of the operation; throws exceptions on failures
|
|
14
|
+
*/
|
|
15
|
+
async executeTransaction(operation, data, config = {}) {
|
|
16
|
+
const transaction = new sql.Transaction(this.connection);
|
|
17
|
+
const isolationLevel = config.isolationLevel || sql.ISOLATION_LEVEL.READ_COMMITTED;
|
|
18
|
+
try {
|
|
19
|
+
await transaction.begin(isolationLevel);
|
|
20
|
+
const result = await operation.execute(transaction, data);
|
|
21
|
+
await transaction.commit();
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
logger.error("Transaction error:", error);
|
|
26
|
+
try {
|
|
27
|
+
await transaction.rollback();
|
|
28
|
+
}
|
|
29
|
+
catch (rollbackError) {
|
|
30
|
+
logger.error("Rollback error:", rollbackError);
|
|
31
|
+
}
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=sql-transaction-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-transaction-manager.js","sourceRoot":"","sources":["../../../../src/services/sql-server-erp-service/internal/sql-transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAUvD,MAAM,OAAO,qBAAqB;IACZ;IAApB,YAAoB,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IACtD;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAwC,EACxC,IAAO,EACP,SAA+B,EAAE;QAEjC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,cAAc,GAClB,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-server-types.js","sourceRoot":"","sources":["../../../../../src/services/sql-server-erp-service/internal/types/sql-server-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MMReceiveLaborTicket } from "../mm-api-service/types/receive-types";
|
|
2
|
-
import { SqlServerService } from "./sql-server-service";
|
|
3
|
-
import { SQLInput } from "./types/sql-input-param";
|
|
1
|
+
import { MMReceiveLaborTicket } from "../mm-api-service/types/receive-types.js";
|
|
2
|
+
import { SqlServerService } from "./sql-server-service.js";
|
|
3
|
+
import { SQLInput } from "./types/sql-input-param.js";
|
|
4
4
|
export declare class SqlServerHelper {
|
|
5
5
|
/**
|
|
6
6
|
* Creates a new labor ticket in the SQL Server database
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-server-helpers.d.ts","sourceRoot":"","sources":["../../../src/services/sql-server-erp-service/sql-server-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sql-server-helpers.d.ts","sourceRoot":"","sources":["../../../src/services/sql-server-erp-service/sql-server-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,qBAAa,eAAe;IAC1B;;;;;;;;;;;OAWG;WACU,iBAAiB,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,oBAAoB,EACjC,SAAS,EAAE,QAAQ,EAAE,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,CAAC;IAwBhC;;;;;;;;;;OAUG;WACU,iBAAiB,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,oBAAoB,EACjC,SAAS,EAAE,QAAQ,EAAE,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,CAAC;IAiBhC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;CAUhD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { SQLTransactionManager } from "./internal/sql-transaction-manager.js";
|
|
2
|
+
import { SQLLaborTicketInsertOperation, SQLLaborTicketUpdateOperation, } from "./internal/sql-labor-ticket-operations.js";
|
|
3
|
+
import logger from "../reporting-service/logger.js";
|
|
4
|
+
export class SqlServerHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new labor ticket in the SQL Server database
|
|
7
|
+
* Opens but does not close the connection
|
|
8
|
+
*
|
|
9
|
+
* @param sqlServerService The SQL Server service to use for connections
|
|
10
|
+
* @param laborTicket The labor ticket to create
|
|
11
|
+
* @param sqlInputs The SQL query parameters
|
|
12
|
+
* @param insertQuery The SQL query to execute for insertion
|
|
13
|
+
*
|
|
14
|
+
* @returns The processed labor ticket, with the ERP's laborTicketId set
|
|
15
|
+
* Throws exceptions on failures, including if the query does not return a laborTicketId
|
|
16
|
+
*/
|
|
17
|
+
static async createLaborTicket(sqlServerService, laborTicket, sqlInputs, insertQuery) {
|
|
18
|
+
const connection = await sqlServerService.openConnection();
|
|
19
|
+
if (!connection) {
|
|
20
|
+
throw new Error("Unable to establish database connection to create labor ticket.");
|
|
21
|
+
}
|
|
22
|
+
const transactionManager = new SQLTransactionManager(connection);
|
|
23
|
+
const laborTicketId = await transactionManager.executeTransaction(new SQLLaborTicketInsertOperation(insertQuery), sqlInputs);
|
|
24
|
+
if (laborTicketId) {
|
|
25
|
+
laborTicket.laborTicketId = laborTicketId.toString();
|
|
26
|
+
return laborTicket;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw new Error(`The query did not return the labor ticket id for labor ticket ref: ${laborTicket.laborTicketRef}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Updates an existing labor ticket in the SQL Server database
|
|
34
|
+
* Opens but does not close the connection
|
|
35
|
+
* @param sqlServerService The SQL Server service to use for connections
|
|
36
|
+
* @param laborTicket The labor ticket to update
|
|
37
|
+
* @param sqlInputs The SQL query parameters
|
|
38
|
+
* @param updateQuery The SQL query to execute for update
|
|
39
|
+
*
|
|
40
|
+
* @returns The processed labor ticket
|
|
41
|
+
* Throws exceptions on failures
|
|
42
|
+
*/
|
|
43
|
+
static async updateLaborTicket(sqlServerService, laborTicket, sqlInputs, updateQuery) {
|
|
44
|
+
const connection = await sqlServerService.openConnection();
|
|
45
|
+
if (!connection) {
|
|
46
|
+
throw new Error("Unable to establish database connection to update labor ticket.");
|
|
47
|
+
}
|
|
48
|
+
const transactionManager = new SQLTransactionManager(connection);
|
|
49
|
+
await transactionManager.executeTransaction(new SQLLaborTicketUpdateOperation(updateQuery), sqlInputs);
|
|
50
|
+
return laborTicket;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Logs the SQL input parameters for debugging
|
|
54
|
+
*/
|
|
55
|
+
static logQueryInputs(inputs) {
|
|
56
|
+
logger.info("SQL Input Variables:");
|
|
57
|
+
logger.info("----------------------------------------");
|
|
58
|
+
logger.info("Variable Name | Value");
|
|
59
|
+
logger.info("----------------------------------------");
|
|
60
|
+
inputs.forEach((input) => {
|
|
61
|
+
logger.info(`${input.name.padEnd(20)} | ${input.value}`);
|
|
62
|
+
});
|
|
63
|
+
logger.info("----------------------------------------");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=sql-server-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-server-helpers.js","sourceRoot":"","sources":["../../../src/services/sql-server-erp-service/sql-server-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,2CAA2C,CAAC;AAGnD,OAAO,MAAM,MAAM,gCAAgC,CAAC;AAGpD,MAAM,OAAO,eAAe;IAC1B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,gBAAkC,EAClC,WAAiC,EACjC,SAAqB,EACrB,WAAmB;QAEnB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAC/D,IAAI,6BAA6B,CAAC,WAAW,CAAC,EAC9C,SAAS,CACV,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,CAAC,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YACrD,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,sEAAsE,WAAW,CAAC,cAAc,EAAE,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,gBAAkC,EAClC,WAAiC,EACjC,SAAqB,EACrB,WAAmB;QAEnB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,kBAAkB,CAAC,kBAAkB,CACzC,IAAI,6BAA6B,CAAC,WAAW,CAAC,EAC9C,SAAS,CACV,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAkB;QACtC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConnectionPool, IRecordSet } from "mssql";
|
|
2
|
-
import { ERPResponse } from "../../types/erp-types";
|
|
3
|
-
import { SQLServerConfiguration } from "./configuration";
|
|
2
|
+
import { ERPResponse } from "../../types/erp-types.js";
|
|
3
|
+
import { SQLServerConfiguration } from "./configuration.js";
|
|
4
4
|
type PagingParams = {
|
|
5
5
|
limit?: number;
|
|
6
6
|
offset?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-server-service.d.ts","sourceRoot":"","sources":["../../../src/services/sql-server-erp-service/sql-server-service.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sql-server-service.d.ts","sourceRoot":"","sources":["../../../src/services/sql-server-erp-service/sql-server-service.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,sBAAsB;IAIpC,OAAO;IAIb;;;;;;;OAOG;IACU,wBAAwB,CACnC,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAsEnC;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IA4C/C;;;;OAIG;WACW,kBAAkB,CAC9B,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAab,eAAe;CAgB9B"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import sql from "mssql";
|
|
2
|
+
import { SQLServerConfigSchema } from "./internal/sql-server-config.js";
|
|
3
|
+
import logger from "../reporting-service/logger.js";
|
|
4
|
+
export class SqlServerService {
|
|
5
|
+
connection = null;
|
|
6
|
+
config;
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.config = config;
|
|
9
|
+
}
|
|
10
|
+
async dispose() {
|
|
11
|
+
await this.closeConnection();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Execute a prepared statement and return the results
|
|
15
|
+
*
|
|
16
|
+
* @param statementToPrepare The SQL query to prepare
|
|
17
|
+
* @param params The parameters to bind to the prepared statement
|
|
18
|
+
* @param paging Optional paging parameters
|
|
19
|
+
* @returns The entities fetched from the database, along with paging information
|
|
20
|
+
*/
|
|
21
|
+
async executePreparedStatement(statementToPrepare, params, paging) {
|
|
22
|
+
const connection = await this.openConnection();
|
|
23
|
+
const preparedStatement = new sql.PreparedStatement(connection);
|
|
24
|
+
// Add all parameters as inputs
|
|
25
|
+
Object.keys(params).forEach((key) => {
|
|
26
|
+
preparedStatement.input(key, sql.VarChar);
|
|
27
|
+
});
|
|
28
|
+
// If limit is specified, try SQL paging
|
|
29
|
+
const finalQuery = paging?.limit !== undefined
|
|
30
|
+
? `${statementToPrepare} OFFSET ${paging.offset || 0} ROWS FETCH NEXT ${paging.limit} ROWS ONLY`
|
|
31
|
+
: statementToPrepare;
|
|
32
|
+
await preparedStatement.prepare(finalQuery);
|
|
33
|
+
let records;
|
|
34
|
+
try {
|
|
35
|
+
records = await preparedStatement.execute(params);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const errorInfo = error;
|
|
39
|
+
const errorMessage = "Error fetching data from ERP -> " +
|
|
40
|
+
(errorInfo.cause ? `Cause: ${errorInfo.cause}. ` : "") +
|
|
41
|
+
`Name: ${errorInfo.name}. ` +
|
|
42
|
+
`Message: ${errorInfo.message}. ` +
|
|
43
|
+
`Stack: ${errorInfo.stack}`;
|
|
44
|
+
throw new Error(errorMessage);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
await preparedStatement.unprepare();
|
|
49
|
+
}
|
|
50
|
+
catch (unprepareError) {
|
|
51
|
+
logger.error("Error during unprepare:", unprepareError);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const allRecords = SqlServerService.recordsetToRecords(records?.recordset);
|
|
55
|
+
const rowsFetched = records?.rowsAffected[0] || 0;
|
|
56
|
+
// If SQL paging failed or we need to handle offset, apply in-memory paging
|
|
57
|
+
const pagedData = paging?.offset !== undefined
|
|
58
|
+
? allRecords.slice(paging.offset, (paging.offset || 0) + (paging.limit || allRecords.length))
|
|
59
|
+
: allRecords;
|
|
60
|
+
return {
|
|
61
|
+
data: pagedData,
|
|
62
|
+
paging: {
|
|
63
|
+
count: rowsFetched,
|
|
64
|
+
limit: paging?.limit || 0,
|
|
65
|
+
offset: paging?.offset || 0,
|
|
66
|
+
nextPage: (() => {
|
|
67
|
+
const currentPageEnd = (paging?.offset || 0) + (paging?.limit || 0);
|
|
68
|
+
return paging?.limit && currentPageEnd < rowsFetched
|
|
69
|
+
? String(currentPageEnd)
|
|
70
|
+
: undefined;
|
|
71
|
+
})(),
|
|
72
|
+
previousPage: paging?.offset
|
|
73
|
+
? String(Math.max(0, (paging.offset || 0) - (paging.limit || 10)))
|
|
74
|
+
: undefined,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Opens a connection to SQL Server
|
|
80
|
+
* Caches the connection so that it can be reused.
|
|
81
|
+
* On failure to connect, throws
|
|
82
|
+
*/
|
|
83
|
+
async openConnection() {
|
|
84
|
+
// If we have a connection and it's still connected, reuse it
|
|
85
|
+
if (this.connection?.connected) {
|
|
86
|
+
logger.debug("Reusing existing SQL Server connection");
|
|
87
|
+
return this.connection;
|
|
88
|
+
}
|
|
89
|
+
// If we have a connection but it's not connected, just null it out
|
|
90
|
+
if (this.connection) {
|
|
91
|
+
logger.debug("Clearing disconnected SQL Server connection");
|
|
92
|
+
this.connection = null;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
logger.info("Opening new SQL Server connection");
|
|
96
|
+
const sqlConfig = SQLServerConfigSchema.parse({
|
|
97
|
+
user: this.config.username,
|
|
98
|
+
password: this.config.password,
|
|
99
|
+
database: this.config.database,
|
|
100
|
+
server: this.config.host,
|
|
101
|
+
port: parseInt(this.config.port),
|
|
102
|
+
connectionTimeout: parseInt(this.config.connectionTimeout),
|
|
103
|
+
requestTimeout: parseInt(this.config.requestTimeout),
|
|
104
|
+
pool: {
|
|
105
|
+
max: parseInt(this.config.poolMax),
|
|
106
|
+
min: parseInt(this.config.poolMin),
|
|
107
|
+
idleTimeoutMillis: parseInt(this.config.idleTimeoutMillis),
|
|
108
|
+
},
|
|
109
|
+
options: {
|
|
110
|
+
encrypt: this.config.encrypt,
|
|
111
|
+
trustServerCertificate: this.config.trustServer,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
this.connection = await sql.connect(sqlConfig);
|
|
115
|
+
return this.connection;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
logger.error("SqlServerService>>openConnection>> Connection failed", {
|
|
119
|
+
error,
|
|
120
|
+
});
|
|
121
|
+
throw new Error("SQL Server connection failed");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Transform a IRecordSet from a SQL query into an array of Record<string, string> instances.
|
|
126
|
+
* @param recordset IRecordSet from a SQL query
|
|
127
|
+
* @returns array of Record<string, string> instances
|
|
128
|
+
*/
|
|
129
|
+
static recordsetToRecords(recordset) {
|
|
130
|
+
const data = recordset?.map((row) => {
|
|
131
|
+
const transformedRow = {};
|
|
132
|
+
Object.keys(row).forEach((key) => {
|
|
133
|
+
transformedRow[key] = row[key]?.toString() || "";
|
|
134
|
+
});
|
|
135
|
+
return transformedRow;
|
|
136
|
+
}) || [];
|
|
137
|
+
return data;
|
|
138
|
+
}
|
|
139
|
+
async closeConnection() {
|
|
140
|
+
if (this.connection?.connected) {
|
|
141
|
+
logger.info("Closing SQL Server connection");
|
|
142
|
+
try {
|
|
143
|
+
await this.connection.close();
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
logger.error("SqlServerService::closeConnection: Error closing connection", {
|
|
147
|
+
error,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
this.connection = null;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=sql-server-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-server-service.js","sourceRoot":"","sources":["../../../src/services/sql-server-erp-service/sql-server-service.ts"],"names":[],"mappings":"AAAA,OAAO,GAAmC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,MAAM,MAAM,gCAAgC,CAAC;AASpD,MAAM,OAAO,gBAAgB;IACnB,UAAU,GAA0B,IAAI,CAAC;IACzC,MAAM,CAAyB;IAEvC,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,wBAAwB,CACnC,kBAA0B,EAC1B,MAA8B,EAC9B,MAAqB;QAErB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEhE,+BAA+B;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,UAAU,GACd,MAAM,EAAE,KAAK,KAAK,SAAS;YACzB,CAAC,CAAC,GAAG,kBAAkB,WAAW,MAAM,CAAC,MAAM,IAAI,CAAC,oBAAoB,MAAM,CAAC,KAAK,YAAY;YAChG,CAAC,CAAC,kBAAkB,CAAC;QAEzB,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAAc,CAAC;YACjC,MAAM,YAAY,GAChB,kCAAkC;gBAClC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,SAAS,SAAS,CAAC,IAAI,IAAI;gBAC3B,YAAY,SAAS,CAAC,OAAO,IAAI;gBACjC,UAAU,SAAS,CAAC,KAAK,EAAE,CAAC;YAE9B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAElD,2EAA2E;QAC3E,MAAM,SAAS,GACb,MAAM,EAAE,MAAM,KAAK,SAAS;YAC1B,CAAC,CAAC,UAAU,CAAC,KAAK,CACd,MAAM,CAAC,MAAM,EACb,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,CAC3D;YACH,CAAC,CAAC,UAAU,CAAC;QAEjB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE;gBACN,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;gBAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE;oBACd,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;oBACpE,OAAO,MAAM,EAAE,KAAK,IAAI,cAAc,GAAG,WAAW;wBAClD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;wBACxB,CAAC,CAAC,SAAS,CAAC;gBAChB,CAAC,CAAC,EAAE;gBACJ,YAAY,EAAE,MAAM,EAAE,MAAM;oBAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;oBAClE,CAAC,CAAC,SAAS;aACd;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,6DAA6D;QAC7D,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,mEAAmE;QACnE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;gBAC5C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBAC1D,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;gBACpD,IAAI,EAAE;oBACJ,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAClC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAClC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;iBAC3D;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC5B,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;iBAChD;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sDAAsD,EAAE;gBACnE,KAAK;aACN,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAC9B,SAA+C;QAE/C,MAAM,IAAI,GACR,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACrB,MAAM,cAAc,GAA2B,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEX,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,6DAA6D,EAC7D;oBACE,KAAK;iBACN,CACF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-input-param.js","sourceRoot":"","sources":["../../../../src/services/sql-server-erp-service/types/sql-input-param.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { SQLiteCoordinator } from "./sqlite-coordinator";
|
|
1
|
+
export { SQLiteCoordinator } from "./sqlite-coordinator.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/sqlite-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/sqlite-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/sqlite-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { acquireDatabaseLock, releaseDatabaseLock, getDatabaseLock, } from "../../utils/local-data-store/database-lock.js";
|
|
2
|
+
import { logger } from "../reporting-service/index.js";
|
|
3
|
+
export class SQLiteCoordinator {
|
|
4
|
+
static LOCK_TIMEOUT_MS = 30_000; // 30 seconds
|
|
5
|
+
static LOCK_RETRY_INTERVAL_MS = 1_000; // 1 second
|
|
6
|
+
/**
|
|
7
|
+
* Performs startup checks to ensure no stale locks exist
|
|
8
|
+
* Should be called when the application starts
|
|
9
|
+
*/
|
|
10
|
+
static async performStartupCheck() {
|
|
11
|
+
const currentLock = getDatabaseLock();
|
|
12
|
+
if (currentLock.isLocked) {
|
|
13
|
+
logger.warn(`Found existing lock held by ${currentLock.lockedBy}, releasing for clean startup`);
|
|
14
|
+
releaseDatabaseLock(currentLock.lockedBy);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Attempts to acquire the database lock
|
|
19
|
+
* @param processName Name of the process requesting the lock
|
|
20
|
+
* @returns true if lock was acquired, false if database is already locked
|
|
21
|
+
*/
|
|
22
|
+
static async tryAcquireLock(processName) {
|
|
23
|
+
return acquireDatabaseLock(processName);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Executes a database operation with proper locking
|
|
27
|
+
* @param processName Name of the process executing the operation
|
|
28
|
+
* @param operation The operation to execute
|
|
29
|
+
* @returns The result of the operation
|
|
30
|
+
*/
|
|
31
|
+
static async executeWithLock(processName, operation) {
|
|
32
|
+
const startTime = Date.now();
|
|
33
|
+
// Try to acquire the lock with timeout
|
|
34
|
+
while (Date.now() - startTime < this.LOCK_TIMEOUT_MS) {
|
|
35
|
+
if (await this.tryAcquireLock(processName)) {
|
|
36
|
+
try {
|
|
37
|
+
// Execute the operation
|
|
38
|
+
const result = await operation();
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
// Always release the lock
|
|
43
|
+
releaseDatabaseLock(processName);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Wait before retrying
|
|
47
|
+
await new Promise((resolve) => setTimeout(resolve, this.LOCK_RETRY_INTERVAL_MS));
|
|
48
|
+
}
|
|
49
|
+
throw new Error(`Failed to acquire database lock after ${this.LOCK_TIMEOUT_MS}ms`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Checks if the database is currently available for operations
|
|
53
|
+
* @returns true if the database is available, false if locked
|
|
54
|
+
*/
|
|
55
|
+
static isAvailable() {
|
|
56
|
+
const lock = getDatabaseLock();
|
|
57
|
+
return !lock.isLocked;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=sqlite-coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-coordinator.js","sourceRoot":"","sources":["../../../src/services/sqlite-service/sqlite-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAChB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAU,eAAe,GAAG,MAAM,CAAC,CAAC,aAAa;IACvD,MAAM,CAAU,sBAAsB,GAAG,KAAK,CAAC,CAAC,WAAW;IAEnE;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,mBAAmB;QAC9B,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QAEtC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CACT,+BAA+B,WAAW,CAAC,QAAQ,+BAA+B,CACnF,CAAC;YACF,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,WAAmB;QACrD,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,WAAmB,EACnB,SAA2B;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,uCAAuC;QACvC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrD,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,wBAAwB;oBACxB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;oBACjC,OAAO,MAAM,CAAC;gBAChB,CAAC;wBAAS,CAAC;oBACT,0BAA0B;oBAC1B,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,eAAe,IAAI,CAClE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW;QAChB,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
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
3
|
* Interface for ERP connectors.
|
|
4
4
|
*
|
|
@@ -11,6 +11,10 @@ export interface IERPConnector {
|
|
|
11
11
|
readonly type: string;
|
|
12
12
|
/**
|
|
13
13
|
* Sync data from the ERP system to MM.
|
|
14
|
+
* Timezone expectations:
|
|
15
|
+
* - When sending ERP data to MachineMetrics (e.g., via StandardProcessDrivers or MMEntityProcessor),
|
|
16
|
+
* connectors MUST convert all datetime fields to ISO-8601 UTC strings (trailing `Z` or explicit offset)
|
|
17
|
+
* before invoking SDK helpers. The SDK validates/forwards these values but does not apply timezone shifts.
|
|
14
18
|
*/
|
|
15
19
|
syncFromERP(): Promise<void>;
|
|
16
20
|
syncFromERPCompleted(): Promise<void>;
|
|
@@ -25,12 +29,15 @@ export interface IERPConnector {
|
|
|
25
29
|
retryFailedLaborTickets(): Promise<void>;
|
|
26
30
|
retryFailedLaborTicketsCompleted(): Promise<void>;
|
|
27
31
|
/**
|
|
28
|
-
* Start the connector. Typically a connector should delegate control to the data-sync-service.
|
|
32
|
+
* Start the connector. Typically a connector should delegate control to the data-sync-service via runDataSyncService().
|
|
29
33
|
*/
|
|
30
34
|
startUp(): Promise<void>;
|
|
31
35
|
}
|
|
32
36
|
/**
|
|
33
37
|
* Interface for standard process methods that call ERP connectors back to create or update labor tickets.
|
|
38
|
+
*
|
|
39
|
+
* Timestamp fields on `MMReceiveLaborTicket` objects have already been converted by the SDKfrom MM's
|
|
40
|
+
* UTC API responses into the ERP's local timezone, based on the company's timezone setting.
|
|
34
41
|
*/
|
|
35
42
|
export interface IERPLaborTicketHandler {
|
|
36
43
|
createLaborTicketInERP(laborTicket: MMReceiveLaborTicket): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAEzF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erp-connector.js","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var ERPObjType;
|
|
2
|
+
(function (ERPObjType) {
|
|
3
|
+
ERPObjType[ERPObjType["RESOURCES"] = 0] = "RESOURCES";
|
|
4
|
+
ERPObjType[ERPObjType["PARTS"] = 1] = "PARTS";
|
|
5
|
+
ERPObjType[ERPObjType["PART_OPERATION"] = 2] = "PART_OPERATION";
|
|
6
|
+
ERPObjType[ERPObjType["WORK_ORDERS"] = 3] = "WORK_ORDERS";
|
|
7
|
+
ERPObjType[ERPObjType["WORK_ORDER_OPERATIONS"] = 4] = "WORK_ORDER_OPERATIONS";
|
|
8
|
+
ERPObjType[ERPObjType["PERSONS"] = 5] = "PERSONS";
|
|
9
|
+
ERPObjType[ERPObjType["REASONS"] = 6] = "REASONS";
|
|
10
|
+
ERPObjType[ERPObjType["LABOR_TICKETS"] = 7] = "LABOR_TICKETS";
|
|
11
|
+
// TO DO: TIMESHEETS support
|
|
12
|
+
})(ERPObjType || (ERPObjType = {}));
|
|
13
|
+
//# sourceMappingURL=erp-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erp-types.js","sourceRoot":"","sources":["../../src/types/erp-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAUX;AAVD,WAAY,UAAU;IACpB,qDAAS,CAAA;IACT,6CAAK,CAAA;IACL,+DAAc,CAAA;IACd,yDAAW,CAAA;IACX,6EAAqB,CAAA;IACrB,iDAAO,CAAA;IACP,iDAAO,CAAA;IACP,6DAAa,CAAA;IACb,4BAA4B;AAC9B,CAAC,EAVW,UAAU,KAAV,UAAU,QAUrB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical representation of a flattened work order row that contains the
|
|
3
|
+
* information needed to build MM work order entities plus their operations.
|
|
4
|
+
*
|
|
5
|
+
* All properties are optional to maintain backwards compatibility with
|
|
6
|
+
* existing connectors.
|
|
7
|
+
*/
|
|
8
|
+
export interface FlattenedWorkOrderPartFields {
|
|
9
|
+
/** ERP part number (required for Parts when present). */
|
|
10
|
+
partNumber?: string | number;
|
|
11
|
+
/** ERP part revision or version string. */
|
|
12
|
+
partRevision?: string | number;
|
|
13
|
+
/** Routing/method identifier (defaults to "Standard" when omitted). */
|
|
14
|
+
method?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FlattenedWorkOrderPartOperationFields {
|
|
17
|
+
/** Sequence number of the operation on the routing. */
|
|
18
|
+
sequenceNumber?: string | number;
|
|
19
|
+
/** Resource or machine identifier responsible for the operation. */
|
|
20
|
+
resourceId?: string | number;
|
|
21
|
+
/** Operation cycle time expressed in milliseconds. */
|
|
22
|
+
cycleTimeMs?: number;
|
|
23
|
+
/** Operation setup time expressed in milliseconds. */
|
|
24
|
+
setupTimeMs?: number;
|
|
25
|
+
/** Human-readable description of the operation. */
|
|
26
|
+
operationDescription?: string;
|
|
27
|
+
/** Quantity of parts operated on per cycle. */
|
|
28
|
+
quantityPerPart?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface FlattenedWorkOrderFields extends FlattenedWorkOrderPartFields {
|
|
31
|
+
/** Unique identifier for the work order in the ERP. */
|
|
32
|
+
workOrderId?: string | number;
|
|
33
|
+
/** Lot number (if the ERP distinguishes lots). */
|
|
34
|
+
lot?: string | number;
|
|
35
|
+
/** Split identifier (if the ERP splits orders). */
|
|
36
|
+
split?: string | number;
|
|
37
|
+
/** Sub identifier (for multi-level orders). */
|
|
38
|
+
sub?: string | number;
|
|
39
|
+
/** Work order status (e.g., Open, Closed, Released). */
|
|
40
|
+
status?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Due date expressed as an ISO-8601 UTC string (trailing `Z` or explicit offset).
|
|
43
|
+
* The SDK validates but does not shift timezones.
|
|
44
|
+
*/
|
|
45
|
+
dueDate?: string;
|
|
46
|
+
/** Free-form description of the work order. */
|
|
47
|
+
description?: string;
|
|
48
|
+
/** Scheduled start datetime in ISO-8601 UTC form. */
|
|
49
|
+
scheduledStartDate?: string;
|
|
50
|
+
/** Scheduled end datetime in ISO-8601 UTC form. */
|
|
51
|
+
scheduledEndDate?: string;
|
|
52
|
+
/** Closed datetime in ISO-8601 UTC form. */
|
|
53
|
+
closedDate?: string;
|
|
54
|
+
/** Quantity required by the work order. */
|
|
55
|
+
quantityRequired?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface FlattenedWorkOrderOperationFields {
|
|
58
|
+
/** Work order identifier (repeated for each operation). */
|
|
59
|
+
workOrderId?: string | number;
|
|
60
|
+
/** Lot identifier for the operation row. */
|
|
61
|
+
lot?: string | number;
|
|
62
|
+
/** Split identifier for the operation row. */
|
|
63
|
+
split?: string | number;
|
|
64
|
+
/** Sub identifier for the operation row. */
|
|
65
|
+
sub?: string | number;
|
|
66
|
+
/** Sequence number for the specific operation. */
|
|
67
|
+
sequenceNumber?: string | number;
|
|
68
|
+
/** Resource or machine identifier for the operation. */
|
|
69
|
+
resourceId?: string | number;
|
|
70
|
+
/** Quantity started on the operation. */
|
|
71
|
+
startQuantity?: number;
|
|
72
|
+
/** Quantity finished on the operation. */
|
|
73
|
+
finishQuantity?: number;
|
|
74
|
+
/** Expected reject percentage (0-1). */
|
|
75
|
+
expectedRejectRate?: number;
|
|
76
|
+
/** Scheduled start datetime (ISO-8601 UTC). */
|
|
77
|
+
opScheduledStartDate?: string;
|
|
78
|
+
/** Scheduled finish datetime (ISO-8601 UTC). */
|
|
79
|
+
opScheduledFinishDate?: string;
|
|
80
|
+
/** Closed datetime for the operation (ISO-8601 UTC). */
|
|
81
|
+
opClosedDate?: string;
|
|
82
|
+
/** Production burden rate per hour. */
|
|
83
|
+
productionburdenRateHourly?: number | string;
|
|
84
|
+
/** Setup burden rate per hour. */
|
|
85
|
+
setupburdenRatehourly?: number | string;
|
|
86
|
+
/** Operation type (Production, Setup, etc.). */
|
|
87
|
+
operationType?: string;
|
|
88
|
+
/** Quantity per part for the operation. */
|
|
89
|
+
quantityPerPart?: number;
|
|
90
|
+
/** Operation status (defaults to work-order status when omitted). */
|
|
91
|
+
opStatus?: string;
|
|
92
|
+
}
|
|
93
|
+
export type FlattenedWorkOrderRowBase = FlattenedWorkOrderPartFields & FlattenedWorkOrderPartOperationFields & FlattenedWorkOrderFields & FlattenedWorkOrderOperationFields;
|
|
94
|
+
/**
|
|
95
|
+
* Canonical flattened row that callers pass into
|
|
96
|
+
* `StandardProcessDrivers.syncWorkOrderBatchFromFlattened`.
|
|
97
|
+
*/
|
|
98
|
+
export type FlattenedWorkOrderRow = FlattenedWorkOrderRowBase;
|
|
99
|
+
//# sourceMappingURL=flattened-work-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattened-work-order.d.ts","sourceRoot":"","sources":["../../src/types/flattened-work-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattened-work-order.js","sourceRoot":"","sources":["../../src/types/flattened-work-order.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Type definitions for the MachineMetrics ERP Connector SDK.
|
|
3
3
|
* This file re-exports all type definitions that are part of the public API.
|
|
4
4
|
*/
|
|
5
|
-
export type { IERPConnector } from "./erp-connector";
|
|
6
|
-
export type { ERPObjType, ERPPagination, ERPResponse, ERPObject, } from "./erp-types";
|
|
5
|
+
export type { IERPConnector } from "./erp-connector.js";
|
|
6
|
+
export type { ERPObjType, ERPPagination, ERPResponse, ERPObject, } from "./erp-types.js";
|
|
7
|
+
export type { FlattenedWorkOrderRow, FlattenedWorkOrderRowBase, FlattenedWorkOrderPartFields, FlattenedWorkOrderPartOperationFields, FlattenedWorkOrderFields, FlattenedWorkOrderOperationFields, } from "./flattened-work-order.js";
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,qCAAqC,EACrC,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|