@jetta/axle-load-calculator 0.3.4 → 0.3.6
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 +13 -1
- package/build-cjs/core/contracts/ChassiReference.d.ts +7 -0
- package/build-cjs/core/contracts/ChassiReference.d.ts.map +1 -0
- package/build-cjs/core/contracts/ChassiReference.js +8 -0
- package/build-cjs/core/contracts/MsFaixasContract.d.ts +13 -0
- package/build-cjs/core/contracts/MsFaixasContract.d.ts.map +1 -0
- package/build-cjs/core/contracts/MsFaixasContract.js +93 -0
- package/build-cjs/core/contracts/RotationEnum.d.ts +11 -0
- package/build-cjs/core/contracts/RotationEnum.d.ts.map +1 -0
- package/build-cjs/core/contracts/RotationEnum.js +12 -0
- package/build-cjs/core/contracts/SuspensionType.d.ts +5 -0
- package/build-cjs/core/contracts/SuspensionType.d.ts.map +1 -0
- package/build-cjs/core/contracts/SuspensionType.js +7 -0
- package/build-cjs/core/contracts/TransportRecord.d.ts +5 -0
- package/build-cjs/core/contracts/TransportRecord.d.ts.map +1 -0
- package/build-cjs/core/contracts/TransportRecord.js +2 -0
- package/build-cjs/core/contracts/VehicleType.d.ts +12 -0
- package/build-cjs/core/contracts/VehicleType.d.ts.map +1 -0
- package/build-cjs/core/contracts/VehicleType.js +13 -0
- package/build-cjs/core/contracts/VehicleVersion.d.ts +8 -0
- package/build-cjs/core/contracts/VehicleVersion.d.ts.map +1 -0
- package/build-cjs/core/contracts/VehicleVersion.js +10 -0
- package/build-cjs/core/contracts/WireFlags.d.ts +27 -0
- package/build-cjs/core/contracts/WireFlags.d.ts.map +1 -0
- package/build-cjs/core/contracts/WireFlags.js +29 -0
- package/build-cjs/core/math/FloatTools.d.ts +7 -0
- package/build-cjs/core/math/FloatTools.d.ts.map +1 -0
- package/build-cjs/core/math/FloatTools.js +17 -0
- package/build-cjs/core/math/GaussianElimination.d.ts +8 -0
- package/build-cjs/core/math/GaussianElimination.d.ts.map +1 -0
- package/build-cjs/core/math/GaussianElimination.js +88 -0
- package/build-cjs/core/orchestration/AxleWeightPhysics.d.ts +7 -0
- package/build-cjs/core/orchestration/AxleWeightPhysics.d.ts.map +1 -0
- package/build-cjs/core/orchestration/AxleWeightPhysics.js +30 -0
- package/build-cjs/core/orchestration/CollisionChecker.d.ts +8 -0
- package/build-cjs/core/orchestration/CollisionChecker.d.ts.map +1 -0
- package/build-cjs/core/orchestration/CollisionChecker.js +63 -0
- package/build-cjs/core/orchestration/ConnectorPayloadBuilder.d.ts +11 -0
- package/build-cjs/core/orchestration/ConnectorPayloadBuilder.d.ts.map +1 -0
- package/build-cjs/core/orchestration/ConnectorPayloadBuilder.js +84 -0
- package/build-cjs/core/orchestration/ItemOverlapError.d.ts +7 -0
- package/build-cjs/core/orchestration/ItemOverlapError.d.ts.map +1 -0
- package/build-cjs/core/orchestration/ItemOverlapError.js +13 -0
- package/build-cjs/core/orchestration/JavaMassCenter.d.ts +10 -0
- package/build-cjs/core/orchestration/JavaMassCenter.d.ts.map +1 -0
- package/build-cjs/core/orchestration/JavaMassCenter.js +135 -0
- package/build-cjs/core/orchestration/OutputBuilder.d.ts +7 -0
- package/build-cjs/core/orchestration/OutputBuilder.d.ts.map +1 -0
- package/build-cjs/core/orchestration/OutputBuilder.js +10 -0
- package/build-cjs/core/orchestration/RequestSchema.d.ts +57 -0
- package/build-cjs/core/orchestration/RequestSchema.d.ts.map +1 -0
- package/build-cjs/core/orchestration/RequestSchema.js +21 -0
- package/build-cjs/core/orchestration/WeightByAxisResponse.d.ts +11 -0
- package/build-cjs/core/orchestration/WeightByAxisResponse.d.ts.map +1 -0
- package/build-cjs/core/orchestration/WeightByAxisResponse.js +2 -0
- package/build-cjs/core/orchestration/WeightByAxisTask.d.ts +18 -0
- package/build-cjs/core/orchestration/WeightByAxisTask.d.ts.map +1 -0
- package/build-cjs/core/orchestration/WeightByAxisTask.js +110 -0
- package/build-cjs/core/physics/items/AllocatedItem.d.ts +22 -0
- package/build-cjs/core/physics/items/AllocatedItem.d.ts.map +1 -0
- package/build-cjs/core/physics/items/AllocatedItem.js +33 -0
- package/build-cjs/core/physics/items/AllocatedItemManager.d.ts +31 -0
- package/build-cjs/core/physics/items/AllocatedItemManager.d.ts.map +1 -0
- package/build-cjs/core/physics/items/AllocatedItemManager.js +42 -0
- package/build-cjs/core/physics/items/BindChassiSolver.d.ts +12 -0
- package/build-cjs/core/physics/items/BindChassiSolver.d.ts.map +1 -0
- package/build-cjs/core/physics/items/BindChassiSolver.js +13 -0
- package/build-cjs/core/physics/items/CenterOfMass.d.ts +14 -0
- package/build-cjs/core/physics/items/CenterOfMass.d.ts.map +1 -0
- package/build-cjs/core/physics/items/CenterOfMass.js +28 -0
- package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.d.ts +19 -0
- package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.d.ts.map +1 -0
- package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.js +32 -0
- package/build-cjs/core/physics/items/ItemTemplates.d.ts +32 -0
- package/build-cjs/core/physics/items/ItemTemplates.d.ts.map +1 -0
- package/build-cjs/core/physics/items/ItemTemplates.js +58 -0
- package/build-cjs/core/physics/items/MultiContainerAllocatedItems.d.ts +37 -0
- package/build-cjs/core/physics/items/MultiContainerAllocatedItems.d.ts.map +1 -0
- package/build-cjs/core/physics/items/MultiContainerAllocatedItems.js +95 -0
- package/build-cjs/core/physics/items/RotationTransforms.d.ts +8 -0
- package/build-cjs/core/physics/items/RotationTransforms.d.ts.map +1 -0
- package/build-cjs/core/physics/items/RotationTransforms.js +24 -0
- package/build-cjs/core/physics/items/UnknownItemIdError.d.ts +10 -0
- package/build-cjs/core/physics/items/UnknownItemIdError.d.ts.map +1 -0
- package/build-cjs/core/physics/items/UnknownItemIdError.js +16 -0
- package/build-cjs/core/physics/models/AxleWeightModel.d.ts +32 -0
- package/build-cjs/core/physics/models/AxleWeightModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/AxleWeightModel.js +77 -0
- package/build-cjs/core/physics/models/BiTruckModel.d.ts +21 -0
- package/build-cjs/core/physics/models/BiTruckModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/BiTruckModel.js +64 -0
- package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts +21 -0
- package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.js +73 -0
- package/build-cjs/core/physics/models/BitremModel.d.ts +33 -0
- package/build-cjs/core/physics/models/BitremModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/BitremModel.js +128 -0
- package/build-cjs/core/physics/models/ChassiForces.d.ts +30 -0
- package/build-cjs/core/physics/models/ChassiForces.d.ts.map +1 -0
- package/build-cjs/core/physics/models/ChassiForces.js +43 -0
- package/build-cjs/core/physics/models/OldTareModel.d.ts +17 -0
- package/build-cjs/core/physics/models/OldTareModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareModel.js +45 -0
- package/build-cjs/core/physics/models/OldTareScale.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareScale.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareScale.js +11 -0
- package/build-cjs/core/physics/models/OldTareSemireboque.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareSemireboque.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareSemireboque.js +40 -0
- package/build-cjs/core/physics/models/OldTareTruck.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareTruck.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareTruck.js +15 -0
- package/build-cjs/core/physics/models/OldTareVanderleia.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareVanderleia.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareVanderleia.js +34 -0
- package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.d.ts +19 -0
- package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.js +43 -0
- package/build-cjs/core/physics/models/QuadSemiTrailerModel.d.ts +21 -0
- package/build-cjs/core/physics/models/QuadSemiTrailerModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/QuadSemiTrailerModel.js +74 -0
- package/build-cjs/core/physics/models/RodotremModel.d.ts +33 -0
- package/build-cjs/core/physics/models/RodotremModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/RodotremModel.js +106 -0
- package/build-cjs/core/physics/models/SemiDelegate.d.ts +9 -0
- package/build-cjs/core/physics/models/SemiDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SemiDelegate.js +2 -0
- package/build-cjs/core/physics/models/SemiReboqueBase.d.ts +34 -0
- package/build-cjs/core/physics/models/SemiReboqueBase.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SemiReboqueBase.js +89 -0
- package/build-cjs/core/physics/models/SemiReboqueModel.d.ts +41 -0
- package/build-cjs/core/physics/models/SemiReboqueModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SemiReboqueModel.js +89 -0
- package/build-cjs/core/physics/models/SimpleTruckBase.d.ts +29 -0
- package/build-cjs/core/physics/models/SimpleTruckBase.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SimpleTruckBase.js +61 -0
- package/build-cjs/core/physics/models/SimpleTruckModel.d.ts +41 -0
- package/build-cjs/core/physics/models/SimpleTruckModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SimpleTruckModel.js +81 -0
- package/build-cjs/core/physics/models/SingleContainerTare.d.ts +18 -0
- package/build-cjs/core/physics/models/SingleContainerTare.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SingleContainerTare.js +49 -0
- package/build-cjs/core/physics/models/TareModel.d.ts +12 -0
- package/build-cjs/core/physics/models/TareModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/TareModel.js +40 -0
- package/build-cjs/core/physics/models/TruckDelegate.d.ts +9 -0
- package/build-cjs/core/physics/models/TruckDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/TruckDelegate.js +2 -0
- package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.d.ts +10 -0
- package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.d.ts.map +1 -0
- package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.js +16 -0
- package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.d.ts +10 -0
- package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.d.ts.map +1 -0
- package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.js +16 -0
- package/build-cjs/core/physics/models/VanderleiaModel.d.ts +33 -0
- package/build-cjs/core/physics/models/VanderleiaModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/VanderleiaModel.js +106 -0
- package/build-cjs/core/physics/models/VehicleModel.d.ts +11 -0
- package/build-cjs/core/physics/models/VehicleModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/VehicleModel.js +2 -0
- package/build-cjs/core/physics/models/deflection/BeamDeflection.d.ts +28 -0
- package/build-cjs/core/physics/models/deflection/BeamDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/BeamDeflection.js +82 -0
- package/build-cjs/core/physics/models/deflection/BitremDeflection.d.ts +22 -0
- package/build-cjs/core/physics/models/deflection/BitremDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/BitremDeflection.js +58 -0
- package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.d.ts +9 -0
- package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.js +27 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegate.d.ts +8 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegate.js +2 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.d.ts +36 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.js +57 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModel.d.ts +19 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModel.js +27 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts +9 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.js +15 -0
- package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.d.ts +35 -0
- package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.js +58 -0
- package/build-cjs/core/physics/models/deflection/DeflectionTools.d.ts +6 -0
- package/build-cjs/core/physics/models/deflection/DeflectionTools.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionTools.js +13 -0
- package/build-cjs/core/physics/models/deflection/DelegateFactory.d.ts +12 -0
- package/build-cjs/core/physics/models/deflection/DelegateFactory.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DelegateFactory.js +2 -0
- package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.d.ts +25 -0
- package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.js +55 -0
- package/build-cjs/core/physics/models/deflection/RodotremDeflection.d.ts +22 -0
- package/build-cjs/core/physics/models/deflection/RodotremDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/RodotremDeflection.js +51 -0
- package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.d.ts +21 -0
- package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.js +35 -0
- package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.d.ts +20 -0
- package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.js +32 -0
- package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.d.ts +21 -0
- package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.js +45 -0
- package/build-cjs/core/physics/services/AxleWeightOutputBuilder.d.ts +27 -0
- package/build-cjs/core/physics/services/AxleWeightOutputBuilder.d.ts.map +1 -0
- package/build-cjs/core/physics/services/AxleWeightOutputBuilder.js +47 -0
- package/build-cjs/core/physics/services/AxleWeightService.d.ts +20 -0
- package/build-cjs/core/physics/services/AxleWeightService.d.ts.map +1 -0
- package/build-cjs/core/physics/services/AxleWeightService.js +95 -0
- package/build-cjs/core/physics/services/CmAxleWeightService.d.ts +12 -0
- package/build-cjs/core/physics/services/CmAxleWeightService.d.ts.map +1 -0
- package/build-cjs/core/physics/services/CmAxleWeightService.js +37 -0
- package/build-cjs/core/physics/services/ContainerCornerForces.d.ts +33 -0
- package/build-cjs/core/physics/services/ContainerCornerForces.d.ts.map +1 -0
- package/build-cjs/core/physics/services/ContainerCornerForces.js +88 -0
- package/build-cjs/core/physics/transports/AxleManager.d.ts +22 -0
- package/build-cjs/core/physics/transports/AxleManager.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/AxleManager.js +38 -0
- package/build-cjs/core/physics/transports/AxleRecord.d.ts +21 -0
- package/build-cjs/core/physics/transports/AxleRecord.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/AxleRecord.js +61 -0
- package/build-cjs/core/physics/transports/Chassi.d.ts +52 -0
- package/build-cjs/core/physics/transports/Chassi.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/Chassi.js +109 -0
- package/build-cjs/core/physics/transports/ContainerRecord.d.ts +25 -0
- package/build-cjs/core/physics/transports/ContainerRecord.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/ContainerRecord.js +53 -0
- package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.d.ts +10 -0
- package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.js +16 -0
- package/build-cjs/core/physics/transports/GroupedContainers.d.ts +34 -0
- package/build-cjs/core/physics/transports/GroupedContainers.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/GroupedContainers.js +73 -0
- package/build-cjs/core/physics/transports/GrouperNotFoundError.d.ts +10 -0
- package/build-cjs/core/physics/transports/GrouperNotFoundError.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/GrouperNotFoundError.js +16 -0
- package/build-cjs/core/physics/transports/MergedContainers.d.ts +26 -0
- package/build-cjs/core/physics/transports/MergedContainers.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/MergedContainers.js +50 -0
- package/build-cjs/core/physics/transports/MissingContainerError.d.ts +10 -0
- package/build-cjs/core/physics/transports/MissingContainerError.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/MissingContainerError.js +16 -0
- package/build-cjs/core/physics/transports/Transport.d.ts +33 -0
- package/build-cjs/core/physics/transports/Transport.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/Transport.js +115 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts +21 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.js +44 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.d.ts +28 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.js +59 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.d.ts +15 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.js +35 -0
- package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.d.ts +10 -0
- package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.js +2 -0
- package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts +17 -0
- package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.js +35 -0
- package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts +20 -0
- package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.js +52 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplit.d.ts +8 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplit.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplit.js +2 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.d.ts +12 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.js +2 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.d.ts +26 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.js +88 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.d.ts +13 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.js +36 -0
- package/build-cjs/index.d.ts +25 -0
- package/build-cjs/index.d.ts.map +1 -0
- package/build-cjs/index.js +35 -0
- package/build-cjs/package.json +3 -0
- package/package.json +27 -4
- package/CHANGELOG.md +0 -71
- package/tsconfig.eslint.json +0 -15
- package/tsconfig.json +0 -19
package/README.md
CHANGED
|
@@ -39,6 +39,14 @@ try {
|
|
|
39
39
|
}
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
CommonJS consumers resolve the same API through the `require` condition:
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
const { calculate_weight_on_axles_physics } = require('@jetta/axle-load-calculator')
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Load the package through one syntax only. `import` and `require` resolve to separate builds, so the exported error classes are distinct constructors across them and `instanceof` fails when both are mixed in the same process.
|
|
49
|
+
|
|
42
50
|
**Contract:**
|
|
43
51
|
|
|
44
52
|
- Input: object `{ envs, config? }` with required `containers` on each env (cloned before processing)
|
|
@@ -74,6 +82,7 @@ Also exported from `@jetta/axle-load-calculator` for `instanceof` checks when us
|
|
|
74
82
|
|
|
75
83
|
- [zod](https://github.com/colinhacks/zod) — request validation at the public boundary
|
|
76
84
|
- [`@jetta/number-compare`](https://www.npmjs.com/package/@jetta/number-compare) — float-safe interval tests in cargo collision
|
|
85
|
+
- [publint](https://publint.dev/) (dev) — npm package manifest validation
|
|
77
86
|
|
|
78
87
|
## Scripts
|
|
79
88
|
|
|
@@ -81,7 +90,10 @@ Also exported from `@jetta/axle-load-calculator` for `instanceof` checks when us
|
|
|
81
90
|
|---------|-------------|
|
|
82
91
|
| `npm test` | Mocha tests (physics + Java integration fixtures) |
|
|
83
92
|
| `npm run lint` | ESLint (`src`, `test/src`) |
|
|
84
|
-
| `npm run
|
|
93
|
+
| `npm run lint:package` | Validate npm publish manifest with publint (run after `build`) |
|
|
94
|
+
| `npm run build` | `tsc` → `build/` (ESM) and `build-cjs/` (CommonJS) |
|
|
95
|
+
| `npm run test:esm` | Smoke check that `import` resolves the package by name |
|
|
96
|
+
| `npm run test:cjs` | Smoke check that `require` resolves the package by name |
|
|
85
97
|
|
|
86
98
|
## Layout
|
|
87
99
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChassiReference.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/ChassiReference.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AllocatedItemManager } from '../physics/items/AllocatedItemManager.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses ms-faixas `{ envs: [...] }` payloads for axleweight services.
|
|
4
|
+
*/
|
|
5
|
+
export declare class MsFaixasContract {
|
|
6
|
+
transport_data: Record<string, unknown>;
|
|
7
|
+
allocated_items_by_sequence_id: Record<number, AllocatedItemManager>;
|
|
8
|
+
/**
|
|
9
|
+
* @param ms_faixas_input - Request with envs array.
|
|
10
|
+
*/
|
|
11
|
+
constructor(ms_faixas_input: Record<string, unknown>);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=MsFaixasContract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MsFaixasContract.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/MsFaixasContract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAO/E;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IAEpE;;OAEG;gBACS,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOvD"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MsFaixasContract = void 0;
|
|
4
|
+
const AllocatedItem_js_1 = require("../physics/items/AllocatedItem.js");
|
|
5
|
+
const AllocatedItemManager_js_1 = require("../physics/items/AllocatedItemManager.js");
|
|
6
|
+
const ItemTemplates_js_1 = require("../physics/items/ItemTemplates.js");
|
|
7
|
+
const TRANSPORT_LIST_FLAG = 'envs';
|
|
8
|
+
const CONTAINERS_FLAG = 'containers';
|
|
9
|
+
const ITEM_LIST_FLAG = 'items';
|
|
10
|
+
/**
|
|
11
|
+
* Parses ms-faixas `{ envs: [...] }` payloads for axleweight services.
|
|
12
|
+
*/
|
|
13
|
+
class MsFaixasContract {
|
|
14
|
+
transport_data;
|
|
15
|
+
allocated_items_by_sequence_id;
|
|
16
|
+
/**
|
|
17
|
+
* @param ms_faixas_input - Request with envs array.
|
|
18
|
+
*/
|
|
19
|
+
constructor(ms_faixas_input) {
|
|
20
|
+
const envs = ms_faixas_input[TRANSPORT_LIST_FLAG];
|
|
21
|
+
this.transport_data = { ...envs[0] };
|
|
22
|
+
this.allocated_items_by_sequence_id = build_allocated_items(this.transport_data);
|
|
23
|
+
strip_items_from_transport(this.transport_data);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.MsFaixasContract = MsFaixasContract;
|
|
27
|
+
/**
|
|
28
|
+
* @param transport_data - Env vehicle data.
|
|
29
|
+
* @returns Allocated items keyed by sequence index.
|
|
30
|
+
*/
|
|
31
|
+
function build_allocated_items(transport_data) {
|
|
32
|
+
const templates = build_item_templates(transport_data);
|
|
33
|
+
const result = {};
|
|
34
|
+
const containers = transport_data[CONTAINERS_FLAG];
|
|
35
|
+
for (let index = 0; index < containers.length; index++) {
|
|
36
|
+
const container = containers[index];
|
|
37
|
+
const sequence = Number(container.sequencia ?? index + 1);
|
|
38
|
+
result[sequence] = build_container_items(templates, container);
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @param transport_data - Env vehicle.
|
|
44
|
+
* @returns Item templates from all container items.
|
|
45
|
+
*/
|
|
46
|
+
function build_item_templates(transport_data) {
|
|
47
|
+
const templates = new ItemTemplates_js_1.ItemTemplates();
|
|
48
|
+
const containers = transport_data[CONTAINERS_FLAG];
|
|
49
|
+
for (const container of containers) {
|
|
50
|
+
const items = container[ITEM_LIST_FLAG];
|
|
51
|
+
if (!items) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
for (const item of items) {
|
|
55
|
+
templates.add_template_from_item_data(item);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return templates;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @param templates - Shared templates.
|
|
62
|
+
* @param container - Container JSON.
|
|
63
|
+
* @returns Allocated item manager for container.
|
|
64
|
+
*/
|
|
65
|
+
function build_container_items(templates, container) {
|
|
66
|
+
const manager = new AllocatedItemManager_js_1.AllocatedItemManager(templates);
|
|
67
|
+
const items = container[ITEM_LIST_FLAG];
|
|
68
|
+
if (!items) {
|
|
69
|
+
return manager;
|
|
70
|
+
}
|
|
71
|
+
const allocated = [];
|
|
72
|
+
for (const item_data of items) {
|
|
73
|
+
const item_id = String(item_data.id ?? item_data._id);
|
|
74
|
+
const template_index = templates.index_of(item_id);
|
|
75
|
+
const item = new AllocatedItem_js_1.AllocatedItem(templates, template_index);
|
|
76
|
+
item.xi = Number(item_data.x ?? 0);
|
|
77
|
+
item.yi = Number(item_data.y ?? 0);
|
|
78
|
+
// Ms-faixas stores longitudinal position in `y` (jettainterface maps y→chassis z).
|
|
79
|
+
item.zi = Number(item_data.y ?? item_data.z ?? 0);
|
|
80
|
+
allocated.push(item);
|
|
81
|
+
}
|
|
82
|
+
manager.add_allocated_items(allocated);
|
|
83
|
+
return manager;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @param transport_data - Env vehicle to strip item lists from.
|
|
87
|
+
*/
|
|
88
|
+
function strip_items_from_transport(transport_data) {
|
|
89
|
+
const containers = transport_data[CONTAINERS_FLAG];
|
|
90
|
+
for (const container of containers) {
|
|
91
|
+
delete container[ITEM_LIST_FLAG];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Cargo rotation positions (carrierinterface RotationEnum). */
|
|
2
|
+
export declare const ROTATION: Readonly<{
|
|
3
|
+
POS1: 1;
|
|
4
|
+
POS2: 2;
|
|
5
|
+
POS3: 3;
|
|
6
|
+
POS4: 4;
|
|
7
|
+
POS5: 5;
|
|
8
|
+
POS6: 6;
|
|
9
|
+
}>;
|
|
10
|
+
export type RotationCode = typeof ROTATION[keyof typeof ROTATION];
|
|
11
|
+
//# sourceMappingURL=RotationEnum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RotationEnum.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/RotationEnum.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,eAAO,MAAM,QAAQ;;;;;;;EAOnB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ROTATION = void 0;
|
|
4
|
+
/** Cargo rotation positions (carrierinterface RotationEnum). */
|
|
5
|
+
exports.ROTATION = Object.freeze({
|
|
6
|
+
POS1: 1,
|
|
7
|
+
POS2: 2,
|
|
8
|
+
POS3: 3,
|
|
9
|
+
POS4: 4,
|
|
10
|
+
POS5: 5,
|
|
11
|
+
POS6: 6
|
|
12
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuspensionType.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/SuspensionType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;EAG1B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportRecord.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/TransportRecord.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const VEHICLE_TYPE: Readonly<{
|
|
2
|
+
CONTAINER: 0;
|
|
3
|
+
SEMIREBOQUE: 1;
|
|
4
|
+
BITREM: 2;
|
|
5
|
+
RODOTREM: 3;
|
|
6
|
+
VANDERLEIA: 5;
|
|
7
|
+
REBAIXADO: 6;
|
|
8
|
+
CAMINHAO: 7;
|
|
9
|
+
VUC: 8;
|
|
10
|
+
}>;
|
|
11
|
+
export type VehicleTypeCode = typeof VEHICLE_TYPE[keyof typeof VEHICLE_TYPE];
|
|
12
|
+
//# sourceMappingURL=VehicleType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VehicleType.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/VehicleType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;EASvB,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VEHICLE_TYPE = void 0;
|
|
4
|
+
exports.VEHICLE_TYPE = Object.freeze({
|
|
5
|
+
CONTAINER: 0,
|
|
6
|
+
SEMIREBOQUE: 1,
|
|
7
|
+
BITREM: 2,
|
|
8
|
+
RODOTREM: 3,
|
|
9
|
+
VANDERLEIA: 5,
|
|
10
|
+
REBAIXADO: 6,
|
|
11
|
+
CAMINHAO: 7,
|
|
12
|
+
VUC: 8
|
|
13
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VehicleVersion.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/VehicleVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VEHICLE_VERSION = void 0;
|
|
4
|
+
exports.VEHICLE_VERSION = Object.freeze({
|
|
5
|
+
DEFAULT: 0,
|
|
6
|
+
CAMINHAO_BITRUCK: 4,
|
|
7
|
+
SEMIREBOQUE_QUAD: 5,
|
|
8
|
+
SEMIREBOQUE_BITRUCK: 6,
|
|
9
|
+
SEMIREBOQUE_QUAD_ALT: 7
|
|
10
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const WIRE_FLAGS: Readonly<{
|
|
2
|
+
TRANSPORT_ID: "_id";
|
|
3
|
+
CONTAINERS: "containers";
|
|
4
|
+
AXLE_LIST: "eixos";
|
|
5
|
+
MAIN_PIN_DISTANCE: "distPinoRei";
|
|
6
|
+
CONTAINER_DISTANCE_AHEAD: "containerDistanceAhead";
|
|
7
|
+
FIRST_AXLE_DISTANCE: "primeiroEixo";
|
|
8
|
+
VEHICLE_TYPE: "tipoVeiculo";
|
|
9
|
+
VEHICLE_VERSION: "tipoVersao";
|
|
10
|
+
SUSPENSION_TYPE: "tipoSuspensao";
|
|
11
|
+
SUPPORTED_WEIGHT: "pesoDeCarga";
|
|
12
|
+
AMOUNT: "qtd";
|
|
13
|
+
LENGTH: "comprimento";
|
|
14
|
+
WIDTH: "largura";
|
|
15
|
+
HEIGHT: "altura";
|
|
16
|
+
SEQUENCE: "sequencia";
|
|
17
|
+
GROUPER: "grouper";
|
|
18
|
+
DISTANCE_FROM_ORIGIN: "distanciaOrigem";
|
|
19
|
+
MAX_SUPPORTED_WEIGHT: "pesoMaxSuportado";
|
|
20
|
+
SEQUENCE_CONTAINER: "sequenciaContainer";
|
|
21
|
+
DNIT_WEIGHT: "pesoDnit";
|
|
22
|
+
TARE: "tara";
|
|
23
|
+
CM_SERVICE_CENTER_OF_MASS: "center_of_mass";
|
|
24
|
+
CM_SERVICE_Z: "z_position";
|
|
25
|
+
CM_SERVICE_MASS: "mass";
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=WireFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WireFlags.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/WireFlags.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;EAyBrB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WIRE_FLAGS = void 0;
|
|
4
|
+
exports.WIRE_FLAGS = Object.freeze({
|
|
5
|
+
TRANSPORT_ID: '_id',
|
|
6
|
+
CONTAINERS: 'containers',
|
|
7
|
+
AXLE_LIST: 'eixos',
|
|
8
|
+
MAIN_PIN_DISTANCE: 'distPinoRei',
|
|
9
|
+
CONTAINER_DISTANCE_AHEAD: 'containerDistanceAhead',
|
|
10
|
+
FIRST_AXLE_DISTANCE: 'primeiroEixo',
|
|
11
|
+
VEHICLE_TYPE: 'tipoVeiculo',
|
|
12
|
+
VEHICLE_VERSION: 'tipoVersao',
|
|
13
|
+
SUSPENSION_TYPE: 'tipoSuspensao',
|
|
14
|
+
SUPPORTED_WEIGHT: 'pesoDeCarga',
|
|
15
|
+
AMOUNT: 'qtd',
|
|
16
|
+
LENGTH: 'comprimento',
|
|
17
|
+
WIDTH: 'largura',
|
|
18
|
+
HEIGHT: 'altura',
|
|
19
|
+
SEQUENCE: 'sequencia',
|
|
20
|
+
GROUPER: 'grouper',
|
|
21
|
+
DISTANCE_FROM_ORIGIN: 'distanciaOrigem',
|
|
22
|
+
MAX_SUPPORTED_WEIGHT: 'pesoMaxSuportado',
|
|
23
|
+
SEQUENCE_CONTAINER: 'sequenciaContainer',
|
|
24
|
+
DNIT_WEIGHT: 'pesoDnit',
|
|
25
|
+
TARE: 'tara',
|
|
26
|
+
CM_SERVICE_CENTER_OF_MASS: 'center_of_mass',
|
|
27
|
+
CM_SERVICE_Z: 'z_position',
|
|
28
|
+
CM_SERVICE_MASS: 'mass'
|
|
29
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts nested float lists to a plain number matrix (NumPy float_list_to_np_array equivalent).
|
|
3
|
+
* @param float_list - Nested numeric list.
|
|
4
|
+
* @returns Plain number matrix or vector.
|
|
5
|
+
*/
|
|
6
|
+
export declare function float_list_to_matrix(float_list: number[] | number[][]): number[] | number[][];
|
|
7
|
+
//# sourceMappingURL=FloatTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatTools.d.ts","sourceRoot":"","sources":["../../../src/core/math/FloatTools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAW7F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.float_list_to_matrix = float_list_to_matrix;
|
|
4
|
+
/**
|
|
5
|
+
* Converts nested float lists to a plain number matrix (NumPy float_list_to_np_array equivalent).
|
|
6
|
+
* @param float_list - Nested numeric list.
|
|
7
|
+
* @returns Plain number matrix or vector.
|
|
8
|
+
*/
|
|
9
|
+
function float_list_to_matrix(float_list) {
|
|
10
|
+
if (float_list.length === 0) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
if (typeof float_list[0] === 'number') {
|
|
14
|
+
return float_list;
|
|
15
|
+
}
|
|
16
|
+
return float_list.map((row) => row.map((value) => Number(value)));
|
|
17
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solves Ax = b for square matrix A using Gaussian elimination (NumPy-compatible order).
|
|
3
|
+
* @param matrix - Coefficient matrix row-major n×n.
|
|
4
|
+
* @param independent - Right-hand side vector length n.
|
|
5
|
+
* @returns Solution vector length n.
|
|
6
|
+
*/
|
|
7
|
+
export declare function solve_linear_system(matrix: number[][], independent: number[]): number[];
|
|
8
|
+
//# sourceMappingURL=GaussianElimination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GaussianElimination.d.ts","sourceRoot":"","sources":["../../../src/core/math/GaussianElimination.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CASvF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.solve_linear_system = solve_linear_system;
|
|
4
|
+
/**
|
|
5
|
+
* Solves Ax = b for square matrix A using Gaussian elimination (NumPy-compatible order).
|
|
6
|
+
* @param matrix - Coefficient matrix row-major n×n.
|
|
7
|
+
* @param independent - Right-hand side vector length n.
|
|
8
|
+
* @returns Solution vector length n.
|
|
9
|
+
*/
|
|
10
|
+
function solve_linear_system(matrix, independent) {
|
|
11
|
+
const size = independent.length;
|
|
12
|
+
const augmented = matrix.map((row, row_index) => [...row, independent[row_index]]);
|
|
13
|
+
for (let pivot_column = 0; pivot_column < size; pivot_column++) {
|
|
14
|
+
forward_eliminate(augmented, pivot_column, size);
|
|
15
|
+
}
|
|
16
|
+
return back_substitute(augmented, size);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @param augmented - Augmented matrix.
|
|
20
|
+
* @param pivot_column - Current pivot column index.
|
|
21
|
+
* @param size - System size.
|
|
22
|
+
*/
|
|
23
|
+
function forward_eliminate(augmented, pivot_column, size) {
|
|
24
|
+
const pivot_row = find_pivot_row(augmented, pivot_column, size);
|
|
25
|
+
swap_rows(augmented, pivot_row, pivot_column);
|
|
26
|
+
eliminate_below(augmented, pivot_column, size);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param augmented - Augmented matrix.
|
|
30
|
+
* @param pivot_column - Pivot column.
|
|
31
|
+
* @param size - System size.
|
|
32
|
+
* @returns Row index with largest absolute pivot.
|
|
33
|
+
*/
|
|
34
|
+
function find_pivot_row(augmented, pivot_column, size) {
|
|
35
|
+
let pivot_row = pivot_column;
|
|
36
|
+
let max_abs = Math.abs(augmented[pivot_column][pivot_column]);
|
|
37
|
+
for (let row = pivot_column + 1; row < size; row++) {
|
|
38
|
+
const candidate = Math.abs(augmented[row][pivot_column]);
|
|
39
|
+
if (candidate > max_abs) {
|
|
40
|
+
max_abs = candidate;
|
|
41
|
+
pivot_row = row;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return pivot_row;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @param augmented - Augmented matrix.
|
|
48
|
+
* @param pivot_row - Row to swap to pivot position.
|
|
49
|
+
* @param pivot_column - Pivot column index.
|
|
50
|
+
*/
|
|
51
|
+
function swap_rows(augmented, pivot_row, pivot_column) {
|
|
52
|
+
if (pivot_row === pivot_column) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const temp = augmented[pivot_column];
|
|
56
|
+
augmented[pivot_column] = augmented[pivot_row];
|
|
57
|
+
augmented[pivot_row] = temp;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @param augmented - Augmented matrix.
|
|
61
|
+
* @param pivot_column - Pivot column index.
|
|
62
|
+
* @param size - System size.
|
|
63
|
+
*/
|
|
64
|
+
function eliminate_below(augmented, pivot_column, size) {
|
|
65
|
+
const pivot_value = augmented[pivot_column][pivot_column];
|
|
66
|
+
for (let row = pivot_column + 1; row < size; row++) {
|
|
67
|
+
const factor = augmented[row][pivot_column] / pivot_value;
|
|
68
|
+
for (let column = pivot_column; column <= size; column++) {
|
|
69
|
+
augmented[row][column] -= factor * augmented[pivot_column][column];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @param augmented - Row-echelon augmented matrix.
|
|
75
|
+
* @param size - System size.
|
|
76
|
+
* @returns Solution vector.
|
|
77
|
+
*/
|
|
78
|
+
function back_substitute(augmented, size) {
|
|
79
|
+
const solution = new Array(size).fill(0);
|
|
80
|
+
for (let row = size - 1; row >= 0; row--) {
|
|
81
|
+
let sum = augmented[row][size];
|
|
82
|
+
for (let column = row + 1; column < size; column++) {
|
|
83
|
+
sum -= augmented[row][column] * solution[column];
|
|
84
|
+
}
|
|
85
|
+
solution[row] = sum / augmented[row][row];
|
|
86
|
+
}
|
|
87
|
+
return solution;
|
|
88
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates loaded weights per vehicle axle (in-process, no HTTP).
|
|
3
|
+
* @param env_vehicle - Single env from weight_by_axis payload.
|
|
4
|
+
* @returns Loaded cargo weight per axle index.
|
|
5
|
+
*/
|
|
6
|
+
export declare function calculate_loaded_weights_for_env(env_vehicle: Record<string, unknown>): number[];
|
|
7
|
+
//# sourceMappingURL=AxleWeightPhysics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxleWeightPhysics.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/AxleWeightPhysics.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,MAAM,EAAE,CAMV"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculate_loaded_weights_for_env = calculate_loaded_weights_for_env;
|
|
4
|
+
const CmAxleWeightService_js_1 = require("../physics/services/CmAxleWeightService.js");
|
|
5
|
+
const ConnectorPayloadBuilder_js_1 = require("./ConnectorPayloadBuilder.js");
|
|
6
|
+
const JavaMassCenter_js_1 = require("./JavaMassCenter.js");
|
|
7
|
+
/**
|
|
8
|
+
* Calculates loaded weights per vehicle axle (in-process, no HTTP).
|
|
9
|
+
* @param env_vehicle - Single env from weight_by_axis payload.
|
|
10
|
+
* @returns Loaded cargo weight per axle index.
|
|
11
|
+
*/
|
|
12
|
+
function calculate_loaded_weights_for_env(env_vehicle) {
|
|
13
|
+
const center_of_mass_by_grouper = (0, JavaMassCenter_js_1.mass_center_by_grouper_from_env)(env_vehicle);
|
|
14
|
+
const wire_center_of_mass = map_center_of_mass_wire(center_of_mass_by_grouper);
|
|
15
|
+
const payload = (0, ConnectorPayloadBuilder_js_1.build_connector_payload)(env_vehicle, wire_center_of_mass);
|
|
16
|
+
return new CmAxleWeightService_js_1.CmAxleWeightService().calculate(payload);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @param center_of_mass_by_grouper - CM objects keyed by grouper.
|
|
20
|
+
* @returns Plain mass/z map for wire builder.
|
|
21
|
+
*/
|
|
22
|
+
function map_center_of_mass_wire(center_of_mass_by_grouper) {
|
|
23
|
+
const wire = {};
|
|
24
|
+
for (const grouper of Object.keys(center_of_mass_by_grouper)) {
|
|
25
|
+
const id = Number(grouper);
|
|
26
|
+
const entry = center_of_mass_by_grouper[id];
|
|
27
|
+
wire[id] = { mass: entry.mass, z: entry.z };
|
|
28
|
+
}
|
|
29
|
+
return wire;
|
|
30
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rejects an env whose allocated items occupy the same volume.
|
|
3
|
+
* Face-touching boxes are allowed; comparison uses `@jetta/number-compare`.
|
|
4
|
+
* @param env - Env vehicle with containers and items.
|
|
5
|
+
* @throws {ItemOverlapError} When two items share volume on all three axes.
|
|
6
|
+
*/
|
|
7
|
+
export declare function check_cargo_collision(env: Record<string, unknown>): void;
|
|
8
|
+
//# sourceMappingURL=CollisionChecker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionChecker.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/CollisionChecker.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWxE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.check_cargo_collision = check_cargo_collision;
|
|
4
|
+
const number_compare_1 = require("@jetta/number-compare");
|
|
5
|
+
const ItemOverlapError_js_1 = require("./ItemOverlapError.js");
|
|
6
|
+
/**
|
|
7
|
+
* Rejects an env whose allocated items occupy the same volume.
|
|
8
|
+
* Face-touching boxes are allowed; comparison uses `@jetta/number-compare`.
|
|
9
|
+
* @param env - Env vehicle with containers and items.
|
|
10
|
+
* @throws {ItemOverlapError} When two items share volume on all three axes.
|
|
11
|
+
*/
|
|
12
|
+
function check_cargo_collision(env) {
|
|
13
|
+
const containers = env.containers;
|
|
14
|
+
if (!containers) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
for (const container of containers) {
|
|
18
|
+
check_container_items(container);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function check_container_items(container) {
|
|
22
|
+
const items = container.items;
|
|
23
|
+
if (!items || items.length <= 1) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
throw_if_any_pair_overlaps(items);
|
|
27
|
+
}
|
|
28
|
+
function throw_if_any_pair_overlaps(items) {
|
|
29
|
+
for (let index = 0; index < items.length - 1; index++) {
|
|
30
|
+
for (let other = index + 1; other < items.length; other++) {
|
|
31
|
+
if (items_overlap(items[index], items[other])) {
|
|
32
|
+
throw new ItemOverlapError_js_1.ItemOverlapError();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function items_overlap(left, right) {
|
|
38
|
+
const left_box = item_box(left);
|
|
39
|
+
const right_box = item_box(right);
|
|
40
|
+
return intervals_overlap(left_box.x, right_box.x)
|
|
41
|
+
&& intervals_overlap(left_box.y, right_box.y)
|
|
42
|
+
&& intervals_overlap(left_box.z, right_box.z);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Maps CM / Java item JSON onto axis intervals.
|
|
46
|
+
* Height lives on JSON `z`; length on JSON `y` + `comprimento`.
|
|
47
|
+
*/
|
|
48
|
+
function item_box(item) {
|
|
49
|
+
const origin_x = Number(item.x ?? 0);
|
|
50
|
+
const origin_y = Number(item.y ?? 0);
|
|
51
|
+
const origin_z = Number(item.z ?? 0);
|
|
52
|
+
const width = Number(item.largura ?? item.width ?? 0);
|
|
53
|
+
const height = Number(item.altura ?? item.height ?? 0);
|
|
54
|
+
const length = Number(item.comprimento ?? item.length ?? 0);
|
|
55
|
+
return {
|
|
56
|
+
x: { min: origin_x, max: origin_x + width },
|
|
57
|
+
y: { min: origin_z, max: origin_z + height },
|
|
58
|
+
z: { min: origin_y, max: origin_y + length }
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function intervals_overlap(left, right) {
|
|
62
|
+
return (0, number_compare_1.lt)(left.min, right.max) && (0, number_compare_1.lt)(right.min, left.max);
|
|
63
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds axle-weight service payload from a prepared env vehicle (Java AxleWeightConnector).
|
|
3
|
+
* @param env_vehicle - Vehicle object inside envs[].
|
|
4
|
+
* @param center_of_mass_by_grouper - CM per grouper for CM service flag.
|
|
5
|
+
* @returns Transport record for CmAxleWeightService.
|
|
6
|
+
*/
|
|
7
|
+
export declare function build_connector_payload(env_vehicle: Record<string, unknown>, center_of_mass_by_grouper: Record<number, {
|
|
8
|
+
mass: number;
|
|
9
|
+
z: number;
|
|
10
|
+
}>): Record<string, unknown>;
|
|
11
|
+
//# sourceMappingURL=ConnectorPayloadBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectorPayloadBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/ConnectorPayloadBuilder.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACvE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB"}
|