Environmental Conditions feature: - C++ EnvironmentTimeline: time-series current/wind data, JSON serialization - WASM bindings: loadEnvironment(), World integration - TypeScript types: CurrentSeries, WindSeries, EnvironmentPayload - Zustand environmentStore with React panel (EnvironmentConditionPanel) - Mock WASM current drift physics: nautical→body-frame velocity applied in step() Bug fixes: - Vessel instanceId: unique auto-increment ID per scenario instance prevents duplicate vesselId crash when adding two vessels of same type - vesselPanelStore: separate vesselTypeId field so config fetch uses correct type ID (not instanceId) after the instanceId/vesselId split - VesselMarker stable eventHandlers: useMemo + useRef pattern prevents react-leaflet from re-registering Leaflet listeners every 50ms tick, fixing panel clicks during active simulation Tests: - Playwright regression suite (e2e/regression.spec.ts): 8 tests covering panel open during simulation, multi-click consistency, two VLCC no error, dual marker render, individual panel open, remove-one behavior, current drift, no-drift baseline Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
563 B
JSON
29 lines
563 B
JSON
{
|
|
"name": "@ymir/types",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"import": "./dist/index.js",
|
|
"types": "./dist/index.d.ts"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"dev": "tsc --watch",
|
|
"clean": "rm -rf dist",
|
|
"test": "vitest run --coverage"
|
|
},
|
|
"dependencies": {
|
|
"@sinclair/typebox": "^0.34.0"
|
|
},
|
|
"devDependencies": {
|
|
"typescript": "^5.8.0",
|
|
"vitest": "^4.1.9",
|
|
"@vitest/coverage-v8": "^4.1.9"
|
|
}
|
|
}
|