{"_id":"@squawk/weather","_rev":"26-e1b87aad49fb1c8553970efcd1b7f044","name":"@squawk/weather","dist-tags":{"latest":"0.6.0"},"versions":{"0.2.0":{"name":"@squawk/weather","version":"0.2.0","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.2.0","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"0703495377af983d26655d185b360fd91f5f5b54","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.2.0.tgz","fileCount":53,"integrity":"sha512-4Vuozwdz5TLChgI7kpE75j/HNQNUK/wn3AERZAECQ6ZIngVuMYOI4ME1IK/m+xPcRr5VyaQ8sALz/0nurXLpIg==","signatures":[{"sig":"MEYCIQDTV9voQviohPrOWE45PBablPucRGi9fzU3zhuBDrp0VgIhAIgeTqLqJoDKHlSBIcua4joJ44ycRsDti/1uZ7V7e0gi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273198},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"174d83fec05c829844bc9dd82738ef2945c586df","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.2.0_1776017262827_0.8155941098656374","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@squawk/weather","version":"0.2.1","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.2.1","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"746384894896bd9ca2cbab06ae55815f58a51f10","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.2.1.tgz","fileCount":53,"integrity":"sha512-WyDTkyO4GFLc4fx4EHdQK8IzEhY+kApCXaeuRMu6bfM+yTrwjnuUMzjp7LcZVAblHcO8ivJ1yzcRSWQoyTc3ag==","signatures":[{"sig":"MEUCIHUMhAp92gxRs3tPzzismCa7Q42iJcy80SfdYLs4KysLAiEArx/ULsM/F91OD917KUlBCm2JHKi2QY70dVjfNGIxhS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273711},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d5fb541f6cab6a09f0dc4f8750f445b2114342f1","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.2.1_1776043028238_0.7216396129413869","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@squawk/weather","version":"0.2.2","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.2.2","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"efb8b2140bc9ca55901eff3677e485e36a2b77a2","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.2.2.tgz","fileCount":53,"integrity":"sha512-LBRgOPPaXnY4NGkgFh++GGSF/UiBq63GReubfHXqNAzn+Vo5O5Ze/B/okPEOAGNp8IrKF3+aSxSc3cFzIApMWw==","signatures":[{"sig":"MEUCIQDm8+LW53kx0TY3cjWTbiv9ATcSrN0kIHElNdaTKu/C8AIgET/MhhCSMf5zzw06bktG25wQtwX+5C3fuN6UtD73Xbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273509},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b6393d6c29f7bd89e67e97964008040d274b969b","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.2.2_1776045898735_0.503468582615896","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@squawk/weather","version":"0.2.3","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.2.3","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"f68fc85dc34dc13a79a6162a6697ab5b0303b824","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.2.3.tgz","fileCount":53,"integrity":"sha512-lTf2VyXqv6xUL7h2CDCljmv3j5ipuCNkP5cutOWA0vWQudWQ7qu8wM/e8RC7zV11wljiH3S/tL8y0xPpHNOpqg==","signatures":[{"sig":"MEUCIH0P3TV6+Vw9Lpfcwgf8ZwHWocdCFW60DyNrKdBCLv8fAiEA2t733RFNus/LFP/8OsIFf3tAiYLvNMass6wpESuZFCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273509},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0c1b7dab34e0e226785644459e76fc1ea05e872b","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.2.3_1776205027628_0.13497425987641853","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@squawk/weather","version":"0.3.0","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.3.0","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"f8244d3f1fbfaae539c929ca090a9877e6deeb77","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.3.0.tgz","fileCount":74,"integrity":"sha512-CNZOsugKrrYDX8XWC7+XZwXb3mqSGknP1H7dnw6L4PK6efkq8yCB+OzqiPi4gK/0Nep8Qn8tOZmfIbvwZDX4jQ==","signatures":[{"sig":"MEUCIHmEBYH2tYnsba2G3TsK1qaqEcHzah6I+U8xV+32T5q8AiEAjzS9oSmlBbvNzG8RY10LpiMextv6pT+9+/Q1pK6Fw3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311414},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"2e18704776d3f718161504e052d0085120a00c19","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.3.0_1776393400081_0.09464521653948399","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@squawk/weather","version":"0.3.1","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.3.1","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"fe6727f937caf261815498da6d02ebae9d7af2bd","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.3.1.tgz","fileCount":74,"integrity":"sha512-XsTegLj48pHIYcwHghbBuO6et3elopnuJcA9z1xthtZsy5EYKs54/ChPyioLdvL2Op9t1wj12EwD17TAXhYjiQ==","signatures":[{"sig":"MEYCIQC/OhgLQvn9k0j6+dfPRUMXfLrd+b/AZgU0i3WyrsB0hQIhAKInlLCX2nLvJPT6CXz4Dpl7JygFOTP4Sg0r5Khb9+Jx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314328},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"19aa46eed8c793ad5040b25cb78ab3e5c8363df1","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.3.1_1776396977056_0.1543446457380071","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@squawk/weather","version":"0.3.2","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.3.2","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"17eb1e008c6652bbd7ac64f6287573c2de364298","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.3.2.tgz","fileCount":74,"integrity":"sha512-NTa4nLf7nOJACTZnDKkekdk8TqZe0szXKNg6zWPHkMWJuGHBujY0xp24ItAddKX8MlhK+NoNrswndyzJoEjwcQ==","signatures":[{"sig":"MEUCIBSo/fvYgCSm+rD7exz3JYFSayOiYD20RILVYqiq89uOAiEA9UY7g4tclGq1J5jk8ajtRWse4K8cl7MjBKn8Po05iHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314505},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"9c75779dc891e89e8f6e7a1cee99baaedc90a445","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.3.2_1776562157745_0.19291684132840747","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@squawk/weather","version":"0.3.3","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.3.3","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"9f53ade60a1de913cd8a0c4c5997887f83866aa1","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.3.3.tgz","fileCount":74,"integrity":"sha512-vfqa0T363C5aWQkMdzjkQKaQmwSNHJ2lhLI670RG6Uv/Fa1UMN8wR2HUuUgOLDvDJeNoNC0KunTjR0HvmAKp1g==","signatures":[{"sig":"MEUCIQDTma4cxFsZWba2s7KrurfV7xVFElwyl3TVYt6zZDqshwIgcWtsiIM9xY3a56FgAkMVok95jVTYzdFGSUDyGeyL02c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"237480093e670d373e72db9ee313d3644b6b4524","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.3.3_1776582808303_0.11015594491429614","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@squawk/weather","version":"0.3.4","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.3.4","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"d0c91825e8b9fc924dc1effdf3cab83f3a4257e8","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.3.4.tgz","fileCount":74,"integrity":"sha512-PUerAqnczq0QTnaa1LhoASbKnMggs6mxPN9JlJ76hAPZv11vtE7lSlJ5Aet1LU7qVB1tlV7hbC5DzYDZgvf1Hg==","signatures":[{"sig":"MEUCIQDsmVbaYuObPwa91t3dMK2fwyuxDJgW60/uCQiH4YslhwIgXTvqpeHFNDLexpqnH9u1s6uO4Rx49mr1vUxnf1DyZEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"0c02e267b050ba7bf10619e1d4648ca37fd20b8d","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.3.4_1776633622342_0.6485918424768509","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@squawk/weather","version":"0.4.0","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.4.0","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"f0a0d627d7bab7d8994cb7d82be0be08a15cf949","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.4.0.tgz","fileCount":74,"integrity":"sha512-QQ2E8mSUUrelpHANYdt2lk1ipTxDBvP8YDP8ML/nhjILxzTMy2gsWhwBURqtbmYzk8+CGYqZuV6E+P6/Iie7mg==","signatures":[{"sig":"MEUCIHqHyc6iXgQBp717YLrpOrLn7zDvXXdBqNPJcOG7+FTYAiEAnKp5eWqt3nF6OXTVF3MtWYOj0HVKx+hszThbErC+av0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"426d6e6dcafe1abc0c81bb117ced62b7dd66f178","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.4.0_1776742995735_0.2997788089891209","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@squawk/weather","version":"0.4.1","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.4.1","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"4018b8ade4cb043d23e7c861751eb81fc1574fbc","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.4.1.tgz","fileCount":74,"integrity":"sha512-5oQYl7gNsc9WWEeJGJapJuGv+Kf1Ey3B3m4H7FEgYzyi/G5NQCv9usKv3t4A0gbR0xLUQv4ugGnAyVs9FatK9g==","signatures":[{"sig":"MEUCIQCPeVGYYHf9ZHoqw8Be+SNZWzDw3WT+uh1cS35+4N7hbwIgPZlzXs8X6QvxifZRewZIk9h7jYyGBEeaQRiFY2uQfRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"47dc0e45a260ca79527047935dc2073ea0fff5c6","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.4.1_1776986819527_0.865599419846744","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@squawk/weather","version":"0.5.0","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.0","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"505cb6a0ea862cc44e549048c20e86634bfe7d0a","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.0.tgz","fileCount":83,"integrity":"sha512-UMNJn1O5J0joMIC2UYawj0utu8GdVu3HDb2CaqdoGoVsJF6m6U4TgRCY0PYqj0mJ0bdxX4tAWnfrmErreXdU5w==","signatures":[{"sig":"MEUCIFNaD1blYbAk/t5/OQsK4tI5uUbpE2rV/Obs521kjGcmAiEAhPIhWE/9ju4QStC90tcpU8f48BjTx/fOrF1+XqcDlHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344821},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"588cd839159884e88d17aec5c64936c33c839105","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.0_1777066404982_0.5541769282884181","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@squawk/weather","version":"0.5.1","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.1","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"c7f2096fdcf426a22bd7363ac8b03d4441e19db6","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.1.tgz","fileCount":83,"integrity":"sha512-hiPS8kTmMFKbzb7nBEqUEkCgVFfS8Flkj4EKOSNywl3DBcmHJy/DNzNU82VtXEBz+AYv6Xt+cU2PjkvbM/158g==","signatures":[{"sig":"MEQCIFZPlaM6hPbzIR1fHbUiN/qskAcaHdmdJ6Ijtsu7nCb3AiBYbZaWsLGXqCmCk1NYcQn5GDNzS+CjUw9adH5X+gfh3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344821},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"cf18b826d905ffd851ab2c80ada1423fab825a94","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.1_1777079724194_0.9020209221554332","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@squawk/weather","version":"0.5.2","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.2","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"a43252b1a549be745071fa373936962681ff090d","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.2.tgz","fileCount":83,"integrity":"sha512-6aMuFBKCUbKVMNAofXyeyiUkd1dsA1dhOKXRp2K1ji9hNQnZyTG10S4IYPVNJs1yNLcAlXQ74nyX0cOjGvcCKw==","signatures":[{"sig":"MEYCIQC2kBZs/ebOnS9p8s3awHfo9Rp0/vgGkZHlEahs/FsZEQIhAOt+LAQuYJ7FT3VC0t7KojqPGO5xE7Lky5kbfNl7quML","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344826},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"ccaa413d7043100fc67081bb5ab46a7256e7f8be","scripts":{"lint":"tsc --noEmit && eslint src","test":"node --test 'dist/**/*.spec.js'","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/libs/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.2_1777323518368_0.15491866822014955","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@squawk/weather","version":"0.5.3","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.3","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"510f3c6d7315664e19f5f4fcdabdd7b50559554c","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.3.tgz","fileCount":83,"integrity":"sha512-Gnu+EtkyCWovxANQw8h3UlIC2UbNmI217Jr/sinM7LRSaJK9AWY+Qou/YOUyP4MD2uCeVdAEo9skyVoroQZOrQ==","signatures":[{"sig":"MEYCIQCjaGyee4eTx2n6IGgrhh6K+faucG3Nn3DA7FKaOq7+kQIhAJwgmPwaqnv8yVWegyobKVst/m7B+4asHBkWUqyn+k/k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345097},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"6ab6d3de8133ae9fdf17dd95687538a78eee2919","scripts":{"lint":"tsc --noEmit && eslint src","test":"vitest run","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/libs/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.3_1777771611675_0.5147330279405666","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@squawk/weather","version":"0.5.4","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.4","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"53c2019913ca4983e5822987d817a35033a789b4","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.4.tgz","fileCount":83,"integrity":"sha512-AGCrAuAfBOdUFHSWYjcpS9okvYZxBPIoBEwVG061M4LHf4kmqqmGGJqRGzm036RBjnlD3UOF01+LNuF/p0YYiQ==","signatures":[{"sig":"MEUCIQCpAhA5B9wtLRTliu8XvK7NrYY55a/yPWF33BPnhMh8fwIgcZzj97L5pJN+YXbgOMSJH0zNTl4tCy0zRe9+MPvsF50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@squawk%2fweather@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345103},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"a60d00be86de161b30f2c5ae2d1cd296ae40f563","scripts":{"lint":"tsc --noEmit && eslint src","test":"vitest run","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/libs/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.4_1777845358639_0.6138230990441349","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@squawk/weather","version":"0.5.5","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.5","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"744df909c74117c9f769d5e99a067070a33fd750","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.5.tgz","fileCount":83,"integrity":"sha512-Ep02F0lIdVJER64YH94wDDCwP6uvoW9yZrSshPORwXmIlgl3dutpFR4Cv5B/qtLfEMzAYQt/d9JAxKAsKDiqvw==","signatures":[{"sig":"MEQCIEFzaDU858dVjXzbZr8uVBRLR0PUcVO5JC6e5ZrPQObcAiAwrlcMKsYenLjC6o1zlcZ7tNiA0tlCO7tn+sCIOkKzpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@squawk%2fweather@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345103},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"dc5b5968b3dbc59207705ecd142aa325cb9185b7","scripts":{"lint":"tsc --noEmit && eslint src","test":"vitest run","build":"tsc","lint:pack":"publint && attw --pack . --profile esm-only","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"neilcochran","email":"dev.neil.cochran@pm.me"},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/libs/weather"},"_npmVersion":"10.9.7","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.2","dependencies":{"@squawk/types":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.0"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.5_1778100163494_0.16303221028209847","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"@squawk/weather","version":"0.5.11","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"author":{"name":"Neil Cochran"},"license":"MIT","_id":"@squawk/weather@0.5.11","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"homepage":"https://github.com/neilcochran/squawk","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"dist":{"shasum":"169ac81f0d45e15013630687de3240c4bfc11734","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.5.11.tgz","fileCount":83,"integrity":"sha512-IyP0pcatUFFYUZiKBtiF/bjDJNrj0oHSNcRMlFG384EuIL1rsZUaRyHzgQ/OUUHQyjiANdFosndNWv+IQ1vrhA==","signatures":[{"sig":"MEUCIF+I/s3iA5mqEi+dJQOoKHSpRYSVt89gcxrBixl2I8YqAiEA8fagXIyW0FfvuvdzKN78wgcWZBR3FTIsPTyfHcAaMIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@squawk%2fweather@0.5.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345209},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"gitHead":"1979042537e1986a65803f7f141f3b42276c2658","scripts":{"lint":"tsc --noEmit && eslint src","test":"vitest run","build":"tsc","api:check":"api-extractor run --verbose","lint:pack":"publint && attw --pack . --profile esm-only","api:report":"api-extractor run --local --verbose","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:febadbc8-14f4-40dd-a7a7-bfec152e1d1f"}},"repository":{"url":"git+https://github.com/neilcochran/squawk.git","type":"git","directory":"packages/libs/weather"},"_npmVersion":"11.5.2","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","directories":{},"typedocMain":"src/index.ts","_nodeVersion":"22.22.3","dependencies":{"@squawk/types":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.3"},"_npmOperationalInternal":{"tmp":"tmp/weather_0.5.11_1781459223500_0.4754250062827696","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@squawk/weather","version":"0.6.0","type":"module","description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","author":{"name":"Neil Cochran"},"license":"MIT","homepage":"https://github.com/neilcochran/squawk","repository":{"type":"git","url":"git+https://github.com/neilcochran/squawk.git","directory":"packages/libs/weather"},"engines":{"node":">=22"},"typedocMain":"src/index.ts","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./browser":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fetch":{"types":"./dist/fetch/index.d.ts","import":"./dist/fetch/index.js"}},"scripts":{"build":"tsc","test":"vitest run","test:coverage":"vitest run --coverage","lint":"tsc --noEmit && eslint src","lint:pack":"publint && attw --pack . --profile esm-only","api:check":"api-extractor run --verbose","api:report":"api-extractor run --local --verbose"},"dependencies":{"@squawk/types":"^0.8.0"},"devDependencies":{"@types/node":"^25.9.3"},"keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"publishConfig":{"access":"public"},"_id":"@squawk/weather@0.6.0","gitHead":"1ab6ddefa7a9e1334e6fc6f3d45f36c418a409f8","bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"_nodeVersion":"22.22.3","_npmVersion":"11.5.2","dist":{"integrity":"sha512-uG6NrvY7bduB5yb0nSFGyMf09qFepfSpsuv5wymTBfmVvTgYifVC7KcLCGl0CuDjk9zDJrGoqzTWWMGcPzaqkA==","shasum":"4e968abf8a5ba38cc5302865a17f96c9e64e6c0e","tarball":"https://registry.npmjs.org/@squawk/weather/-/weather-0.6.0.tgz","fileCount":83,"unpackedSize":347213,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@squawk%2fweather@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDP40vvPyrDcJRAix7UgwiNHRjpxg6uinoF8BX3mXg0GgIhAP/qoIznhhfqkIkmygXWgq8kDEIWbOAiHvQ2XQ4JLKfC"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:febadbc8-14f4-40dd-a7a7-bfec152e1d1f"}},"directories":{},"maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/weather_0.6.0_1782104078476_0.17715435379874855"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-12T18:07:42.754Z","modified":"2026-06-22T04:54:38.892Z","0.2.0":"2026-04-12T18:07:42.969Z","0.2.1":"2026-04-13T01:17:08.405Z","0.2.2":"2026-04-13T02:04:58.882Z","0.2.3":"2026-04-14T22:17:07.796Z","0.3.0":"2026-04-17T02:36:40.215Z","0.3.1":"2026-04-17T03:36:17.191Z","0.3.2":"2026-04-19T01:29:17.900Z","0.3.3":"2026-04-19T07:13:28.466Z","0.3.4":"2026-04-19T21:20:22.468Z","0.4.0":"2026-04-21T03:43:15.871Z","0.4.1":"2026-04-23T23:26:59.682Z","0.5.0":"2026-04-24T21:33:25.169Z","0.5.1":"2026-04-25T01:15:24.339Z","0.5.2":"2026-04-27T20:58:38.519Z","0.5.3":"2026-05-03T01:26:51.826Z","0.5.4":"2026-05-03T21:55:58.783Z","0.5.5":"2026-05-06T20:42:43.640Z","0.5.6":"2026-05-11T22:17:05.709Z","0.5.7":"2026-05-11T22:48:47.708Z","0.5.8":"2026-05-11T22:55:28.053Z","0.5.9":"2026-05-11T22:57:02.061Z","0.5.10":"2026-05-11T23:51:55.267Z","0.5.11":"2026-06-14T17:47:03.647Z","0.6.0":"2026-06-22T04:54:38.623Z"},"bugs":{"url":"https://github.com/neilcochran/squawk/issues"},"author":{"name":"Neil Cochran"},"license":"MIT","homepage":"https://github.com/neilcochran/squawk","keywords":["aviation","typescript","metar","taf","sigmet","airmet","pirep","weather","parser"],"repository":{"type":"git","url":"git+https://github.com/neilcochran/squawk.git","directory":"packages/libs/weather"},"description":"Parse raw aviation weather strings (METAR, SPECI, TAF, SIGMET, AIRMET, PIREP) into structured objects","maintainers":[{"name":"neilcochran","email":"dev.neil.cochran@pm.me"}],"readme":"<h1><img src=\"../../../assets/squawk-logo.svg\" alt=\"squawk logo\" width=\"48\" height=\"48\" style=\"vertical-align: middle\">&nbsp; @squawk/weather</h1>\n\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](../../../LICENSE.md) [![npm](https://img.shields.io/npm/v/@squawk/weather)](https://www.npmjs.com/package/@squawk/weather) ![TypeScript](https://img.shields.io/badge/TypeScript-blue?logo=typescript&logoColor=white)\n\nPure parsing library for aviation weather strings. Parses raw METAR, SPECI, TAF,\nSIGMET, AIRMET, PIREP, and FD (winds and temperatures aloft) text into fully\ntyped, structured objects. The core `@squawk/weather` export contains no network\ncalls - consumers provide raw weather strings however they obtain them (ADDS\nAPI, AVWX, local feed, file dump) and the package returns structured results.\n\nAn opt-in fetch layer is available at `@squawk/weather/fetch` for consumers\nwho want to pull live data directly from the Aviation Weather Center (AWC)\ntext API. It uses the platform global `fetch` (Node 22+ or any modern\nbrowser); pulling it in is a choice so the core parsing import graph stays\nnetwork-free. See [Browser / SPA usage](#browser--spa-usage) for the CORS\ncaveat that applies when calling AWC from a browser.\n\nPart of the [@squawk](https://www.npmjs.com/org/squawk) aviation library suite. See all packages on npm.\n\n## Usage\n\n### METAR / SPECI\n\n```typescript\nimport { parseMetar } from '@squawk/weather';\n\nconst metar = parseMetar(\n  'METAR KJFK 041853Z 21010KT 10SM FEW250 18/06 A3012 RMK AO2 SLP203 T01830061',\n);\n\nconsole.log(metar.stationId); // \"KJFK\"\nconsole.log(metar.observationTime); // { day: 4, hour: 18, minute: 53 }\nconsole.log(metar.wind?.speedKt); // 10\nconsole.log(metar.visibility?.visibilitySm); // 10\nconsole.log(metar.flightCategory); // \"VFR\"\nconsole.log(metar.remarks?.seaLevelPressureMb); // 1020.3\n```\n\n### TAF\n\n```typescript\nimport { parseTaf } from '@squawk/weather';\n\nconst taf = parseTaf(\n  'TAF KJFK 041730Z 0418/0524 21012KT P6SM FEW250 FM042200 24015G25KT P6SM SCT040 BKN080',\n);\n\nconsole.log(taf.stationId); // \"KJFK\"\nconsole.log(taf.issuedAt); // { day: 4, hour: 17, minute: 30 }\nconsole.log(taf.validFrom); // { day: 4, hour: 18, minute: 0 }\nconsole.log(taf.forecast[0].wind?.speedKt); // 12\nconsole.log(taf.forecast[1].changeType); // \"FM\"\nconsole.log(taf.forecast[1].start); // { day: 4, hour: 22, minute: 0 }\n```\n\n### SIGMET\n\nUse `parseSigmetBulletin` as the primary entry point - it handles both single\nSIGMETs and multi-SIGMET bulletins (common in AWC convective SIGMET feeds),\nalways returning an array.\n\n```typescript\nimport { parseSigmetBulletin } from '@squawk/weather';\n\n// Works with single SIGMETs or full bulletins from any source\nconst sigmets = parseSigmetBulletin(rawSigmetText);\n\nfor (const sigmet of sigmets) {\n  if (sigmet.format === 'NONCONVECTIVE') {\n    console.log(sigmet.seriesName); // \"NOVEMBER\"\n    console.log(sigmet.hazards[0].hazardType); // \"TURBULENCE\"\n    console.log(sigmet.hazards[0].altitudeRange); // { baseFt: 35000, topFt: 41000 }\n  } else if (sigmet.format === 'CONVECTIVE') {\n    console.log(sigmet.region); // \"C\"\n    console.log(sigmet.thunderstormType); // \"AREA\"\n    console.log(sigmet.tops); // { altitudeFt: 45000, isAbove: true }\n  } else {\n    console.log(sigmet.firCode); // \"PAZA\"\n    console.log(sigmet.phenomena); // \"SEV TURB\"\n  }\n}\n```\n\nIf you know you have a single SIGMET record, `parseSigmet` returns a single\nobject instead of an array:\n\n```typescript\nimport { parseSigmet } from '@squawk/weather';\n\nconst sigmet = parseSigmet(singleSigmetRecord);\nconsole.log(sigmet.format); // \"CONVECTIVE\" | \"NONCONVECTIVE\" | \"INTERNATIONAL\"\n```\n\n### Winds aloft (FD)\n\n```typescript\nimport { parseWindsAloft, getLevelAtFt } from '@squawk/weather';\n\nconst forecast = parseWindsAloft(rawFdBulletin);\n\nconsole.log(forecast.basedOn); // { day: 24, hour: 12, minute: 0 }\nconsole.log(forecast.altitudesFt); // [3000, 6000, 9000, 12000, 18000, 24000, 30000, 34000, 39000]\n\nconst bdl = forecast.stations.find((s) => s.stationId === 'BDL');\nconst at9k = bdl && getLevelAtFt(bdl, 9000);\nconsole.log(at9k?.directionDeg); // 330\nconsole.log(at9k?.speedKt); // 40\nconsole.log(at9k?.temperatureC); // -4\n\n// Light-and-variable winds (raw \"9900\") set a flag rather than a zero speed:\nconst lv = forecast.stations[1]?.levels[0];\nconsole.log(lv?.isLightAndVariable); // true\nconsole.log(lv?.speedKt); // undefined\n```\n\n## API\n\n### `parseMetar(raw)`\n\nParses a raw METAR or SPECI string into a structured `Metar` object. SPECI\nobservations use the same parser and are distinguished by the `type` field.\n\n### `parseTaf(raw)`\n\nParses a raw TAF string into a structured `Taf` object. Handles both US (FAA)\nand ICAO formats including FM, TEMPO, BECMG, and PROB change groups, wind shear\n(WS), turbulence (5-group), icing (6-group), CAVOK, NSW, and cancelled (CNL)\nforecasts. Multi-line TAFs are normalized automatically.\n\n### `parseSigmetBulletin(raw)`\n\nRecommended entry point for SIGMET parsing. Handles both single SIGMET records\nand multi-SIGMET bulletins (e.g. AWC convective bulletins containing multiple\nindividually numbered SIGMETs with a shared outlook). Returns a `Sigmet[]`\narray. For single records, returns a one-element array.\n\n### `parseSigmet(raw)`\n\nParses a single SIGMET record into a structured `Sigmet` discriminated union.\nUse this when you know the input contains exactly one SIGMET. Auto-detects the\nformat from content and returns one of three variants:\n\n- `ConvectiveSigmet` - domestic CONUS thunderstorm advisories (area/line/isolated TS, outlook sections, severe weather hazards)\n- `NonConvectiveSigmet` - domestic CONUS turbulence, icing, volcanic ash, dust/sandstorm (supports multi-hazard and cancellations)\n- `InternationalSigmet` - ICAO format for Alaska, oceanic FIRs, and international airspace (tropical cyclone, volcanic ash, cancellations)\n\nAccepts both raw WMO-wrapped messages and body-only messages.\n\n### `parseAirmet(raw)`\n\nParses an AIRMET bulletin string into a structured `Airmet` object. Handles\nSierra (IFR, mountain obscuration), Tango (turbulence, strong surface winds,\nLLWS), and Zulu (icing, freezing levels) series. Accepts both WMO-wrapped\nand body-only bulletins.\n\n### `parsePirep(raw)`\n\nParses a raw PIREP (Pilot Report) string into a structured `Pirep` object.\nHandles both routine (UA) and urgent (UUA) reports with all standard\nslash-delimited fields: location (/OV) with station, radial/distance, route,\nand lat/lon variants; time (/TM); flight level (/FL); aircraft type (/TP);\nsky condition (/SK) with standard and compact notation; weather/visibility (/WX);\ntemperature (/TA); wind (/WV, magnetic); turbulence (/TB) with intensity ranges,\ntypes, frequencies, and BLO/ABV modifiers; icing (/IC) with intensity ranges and\ntypes; and free-text remarks (/RM).\n\n```typescript\nimport { parsePirep } from '@squawk/weather';\n\nconst pirep = parsePirep(\n  'UA /OV OKC063015/TM 1522/FL085/TP C172/SK BKN065-TOP090/TB LGT/IC LGT RIME/RM SMOOTH',\n);\n\nconsole.log(pirep.type); // \"UA\"\nconsole.log(pirep.altitudeFtMsl); // 8500\nconsole.log(pirep.aircraftType); // \"C172\"\nconsole.log(pirep.turbulence?.[0]?.intensity); // \"LGT\"\nconsole.log(pirep.icing?.[0]?.type); // \"RIME\"\n```\n\n### `parseWindsAloft(raw)`\n\nParses a raw FD (Forecast Winds and Temperatures Aloft) bulletin - sometimes\nreferred to by its older name \"FB\" - into a structured `WindsAloftForecast`\nobject. Handles the AWC wire-format preamble (`(Extracted from ...)` or a\nplain WMO header line), the fixed-width altitude table, light-and-variable\nwinds (raw code `9900`), high-speed wind encoding (direction codes 51-86\ndenoting speeds >= 100 kt), and implicit-negative temperatures above the\n`TEMPS NEG ABV` threshold.\n\n### `getLevelAtFt(station, altitudeFt)`\n\nHelper that returns the `WindsAloftLevel` entry for a given altitude on a\nstation row. Returns `undefined` when the altitude is not a column in the\nbulletin; no interpolation is performed.\n\n### `deriveFlightCategory(visibilityStatuteMiles, isLessThan, sky, isCavok)`\n\nDerives the flight category (VFR, MVFR, IFR, LIFR) from visibility and ceiling\nconditions.\n\n## Fetch integration\n\nImport from the `@squawk/weather/fetch` subpath to get fetch+parse helpers\nthat hit the AWC text API. Each function issues a single HTTP request and\nreturns parsed results alongside any per-record parse errors and the full\nraw body.\n\n```typescript\nimport {\n  fetchMetar,\n  fetchTaf,\n  fetchPirep,\n  fetchSigmets,\n  fetchInternationalSigmets,\n  fetchWindsAloft,\n} from '@squawk/weather/fetch';\n\nconst { metars } = await fetchMetar(['KJFK', 'KLAX']);\nconst { tafs } = await fetchTaf('KJFK');\nconst { pireps } = await fetchPirep('KDEN');\nconst { sigmets } = await fetchSigmets();\nconst { sigmets: international } = await fetchInternationalSigmets();\nconst { forecast } = await fetchWindsAloft({\n  region: 'northeast',\n  altitudeBand: 'low',\n  forecastHours: 6,\n});\n```\n\n`fetchMetar` and `fetchTaf` accept a single 4-letter ICAO identifier or an\narray of them (comma-joined into one request). `fetchPirep` takes a single\n4-letter ICAO identifier as the search center; the AWC endpoint rejects\nshorter forms (e.g. `DEN`) with a 400. `fetchSigmets` and\n`fetchInternationalSigmets` return the full current SIGMET set for their\nrespective regions and take no ID argument:\n\n- `fetchSigmets` - domestic (CONUS) SIGMETs via `/api/data/airsigmet`.\n- `fetchInternationalSigmets` - international / ICAO-format SIGMETs via\n  `/api/data/isigmet`. Does not include SIGMETs issued by the US in\n  domestic format.\n- `fetchWindsAloft` - winds-aloft forecast (FD) bulletin via\n  `/api/data/windtemp`. Returns a single parsed `WindsAloftForecast`\n  (not an array); parser errors are thrown rather than captured as\n  per-record failures, because the endpoint returns a single bulletin.\n\nAWC does not currently expose a raw-text AIRMET endpoint; `parseAirmet` is\nstill available for callers who have AIRMET text from another source.\n\n### Endpoint-specific options\n\n`fetchPirep` accepts additional AWC filter parameters:\n\n```typescript\nawait fetchPirep('KDEN', {\n  distance: 100, // nautical miles from the center station\n  age: 6, // hours back\n  level: 200, // altitude in hundreds of feet (+/-3000 ft)\n  inten: 'mod', // minimum intensity: 'lgt' | 'mod' | 'sev'\n});\n```\n\n`fetchSigmets` accepts a hazard filter:\n\n```typescript\nawait fetchSigmets({ hazard: 'turb' }); // 'conv' | 'turb' | 'ice' | 'ifr'\n```\n\n`fetchWindsAloft` accepts region, altitude band, and forecast horizon:\n\n```typescript\nawait fetchWindsAloft({\n  region: 'northeast',\n  altitudeBand: 'low', // 'low' covers 3k-39k ft; 'high' covers FL450+\n  forecastHours: 6, // 6 | 12 | 24\n});\n```\n\nRegion values are `contiguousUs`, `northeast`, `southeast`, `northCentral`,\n`southCentral`, `rockyMountain`, `pacificCoast`, `alaska`, `hawaii`, and\n`westernPacific`. All three parameters are optional - when omitted, the AWC\nAPI applies its own defaults.\n\n### Options\n\nEvery fetch function accepts an optional options object:\n\n```typescript\nawait fetchMetar('KJFK', {\n  signal: controller.signal, // AbortController signal for cancellation\n  baseUrl: 'https://mirror.test/api', // override the AWC base URL\n});\n```\n\n### Error handling\n\n- **HTTP non-2xx**: throws `AwcFetchError` with `status`, `statusText`, `body`, and `url`.\n- **Network / abort errors**: rethrown as-is.\n- **Parse errors on an individual record**: captured in the `parseErrors`\n  array in the result, not thrown. Other records in the same response still\n  parse successfully.\n\n```typescript\nimport { fetchMetar, AwcFetchError } from '@squawk/weather/fetch';\n\ntry {\n  const { metars, parseErrors } = await fetchMetar('KJFK');\n  for (const { raw, error } of parseErrors) {\n    console.warn('Failed to parse:', raw, error);\n  }\n} catch (err) {\n  if (err instanceof AwcFetchError) {\n    console.error(`AWC ${err.status}: ${err.body}`);\n  } else {\n    throw err;\n  }\n}\n```\n\n## Browser / SPA usage\n\nThe core parsers have no Node-specific imports and ship an explicit `/browser`\nsubpath for SPAs and edge runtimes:\n\n```typescript\nimport { parseMetar, parseTaf } from '@squawk/weather/browser';\n```\n\nThe `/browser` entry is identical to the main entry; the separate subpath\nexists so browser support is an explicit, `publint`-verified part of the public\nAPI surface. A `node:`-dependent import added to the main entry later would\nfail that check rather than silently break browser consumers.\n\nThe `/fetch` layer also runs in the browser, since it uses the global `fetch`,\nbut the AWC API does not send CORS headers. A direct cross-origin request to\n`aviationweather.gov` from page JavaScript is therefore blocked by the user\nagent. To use the `fetch*` helpers in a browser, point `baseUrl` at a\nsame-origin proxy you control - a reverse proxy or an edge function that\nforwards to AWC and returns the upstream body:\n\n```typescript\nimport { fetchMetar } from '@squawk/weather/fetch';\n\n// Your own origin serves '/awc' and proxies it through to aviationweather.gov.\nconst baseUrl = new URL('/awc', window.location.origin).toString();\nconst { metars } = await fetchMetar('KJFK', { baseUrl });\n```\n\n`baseUrl` must be an absolute URL. The package does not ship a proxy; standing\none up is a deployment concern left to the consumer.\n\n## Types\n\nThis package exports all weather-related type definitions directly. Import types from `@squawk/weather` rather than `@squawk/types`:\n\n```typescript\nimport type {\n  Metar,\n  Taf,\n  Sigmet,\n  Airmet,\n  Pirep,\n  WindsAloftForecast,\n  WindsAloftStationForecast,\n  WindsAloftLevel,\n  FlightCategory,\n} from '@squawk/weather';\n```\n","readmeFilename":"README.md"}