{"_id":"@burglekitt/gmt","_rev":"18-18b71388e06f22c1a03e9a9456062024","name":"@burglekitt/gmt","dist-tags":{"latest":"1.14.1"},"versions":{"1.0.0":{"name":"@burglekitt/gmt","version":"1.0.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.0.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"d6cbf8de0a15c8c13a4c1498520365b4a97215d0","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.0.0.tgz","fileCount":277,"integrity":"sha512-No4zsPKJkkg1x3tN3woj9/c226+VxQtquymUIgCKy7uYvT/8/qkLEVu/I0FrDF35jyonoy5VgzLmwNAq448CWw==","signatures":[{"sig":"MEYCIQDq4CMZmXJgcRpPuuE5PlMDa8KcRc3lkY5DegIa+Ti3awIhAJ3LFXRSrUrqcl4g01A5xkDUoOpCN8/xS0L2lE+UjfHZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204243},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./plain/*/*":null,"./zoned/*/*":null,"./plain/test":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/f96dc2cebdecebd92e801fa7723d71d2/burglekitt-gmt-1.0.0.tgz","_integrity":"sha512-No4zsPKJkkg1x3tN3woj9/c226+VxQtquymUIgCKy7uYvT/8/qkLEVu/I0FrDF35jyonoy5VgzLmwNAq448CWw==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.11.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.0.29"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.0.0_1775841582347_0.15450334346210148","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.1.0":{"name":"@burglekitt/gmt","version":"1.1.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.1.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"3f9b74b2e59c6ac29f01a8014169864815dd155c","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.1.0.tgz","fileCount":436,"integrity":"sha512-S7Ho8j3v1lJFrHp3gDy7EkG4gmlsyoX3wmoptbFXdlo2VcHGMALHPUjSA4SY3KngYv0+f+dFDO44yh2v5dAJyA==","signatures":[{"sig":"MEUCIQCfatIndPc2JtDblzFzML/WMhtno9kAnmfLDTwwphzqKgIgHLiKtVFUvY1nRRNEEfzs8ALnRQ6dyVPBhVVrd1x66zU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377135},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/05e289088aa257184c474f09e28c5cd2/burglekitt-gmt-1.1.0.tgz","_integrity":"sha512-S7Ho8j3v1lJFrHp3gDy7EkG4gmlsyoX3wmoptbFXdlo2VcHGMALHPUjSA4SY3KngYv0+f+dFDO44yh2v5dAJyA==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.11.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.0.29"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.1.0_1776082791559_0.8950178271418654","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.2.0":{"name":"@burglekitt/gmt","version":"1.2.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.2.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"7ba743286bd2625bbe281471af221165d1f3b2d3","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.2.0.tgz","fileCount":657,"integrity":"sha512-LDLk6oKImdtzGrEeSlK+BGSskuVoxDr+jMWuMaD5wuFz5tAvvV1jjE/0O0RBjwXwIOolSRITtqRe0X83ifoOWg==","signatures":[{"sig":"MEUCIF5ucib26p4crsB08zu9Hq9rXrKSeqNEMojyxIp7jHozAiEAuTJROYFezWzULY4y8JZWeHZP2qegvt/8vKAVW0ODypI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621200},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/1140578f6ab56e2e006c31a58ca101a2/burglekitt-gmt-1.2.0.tgz","_integrity":"sha512-LDLk6oKImdtzGrEeSlK+BGSskuVoxDr+jMWuMaD5wuFz5tAvvV1jjE/0O0RBjwXwIOolSRITtqRe0X83ifoOWg==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.11.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.0.29"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.2.0_1776428368926_0.6693589885736491","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.2.1":{"name":"@burglekitt/gmt","version":"1.2.1","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.2.1","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"f796b5e09959883cb43eb2ce993a35c597bb7754","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.2.1.tgz","fileCount":657,"integrity":"sha512-3chg2e6PkYI8PB4fWk1kYsYLfyx1NPpyAZ6dwCOBJu4+YUKluyF4TWD/W0ysPvHMMXfZ05zJccxey3SYXjUegA==","signatures":[{"sig":"MEUCIDsCuAjziRm6oRWehFKJXRq1Of49v3v7FIpmbpmT/hu/AiEA1KmKlHhtuPpqlN+Y3uiyZbsBNBiY5RqIMBG9iiJL9dU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621654},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.2.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/ca23b0fc5eef9530835cfa1ee167ebbd/burglekitt-gmt-1.2.1.tgz","_integrity":"sha512-3chg2e6PkYI8PB4fWk1kYsYLfyx1NPpyAZ6dwCOBJu4+YUKluyF4TWD/W0ysPvHMMXfZ05zJccxey3SYXjUegA==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.12.1","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.0.29"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.2.1_1778413552259_0.20485597027263913","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.3.0":{"name":"@burglekitt/gmt","version":"1.3.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.3.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"c9a0e302fd41b3cd3d161f75c42bd9a6c8223b39","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.3.0.tgz","fileCount":682,"integrity":"sha512-Aw5MgeprecAveldSI+LF+7oupqeFSulXU2tIYB/ugbd9U5PGK5KipxUj+K4X2P1f2Eg/1P6JGRZ6oJofxGnudQ==","signatures":[{"sig":"MEYCIQCtrvKn2iwKSn0T+szlvzbYS9R1r6MlmzsfzVcEe3GnFQIhAKWD8Bqxm6p7f71Ru8A5f+RCy5AjISe+w4FQrAS756Lg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":658293},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/5364c17066180f9e9c2e424a68f69858/burglekitt-gmt-1.3.0.tgz","_integrity":"sha512-Aw5MgeprecAveldSI+LF+7oupqeFSulXU2tIYB/ugbd9U5PGK5KipxUj+K4X2P1f2Eg/1P6JGRZ6oJofxGnudQ==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.12.1","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.0.29"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.3.0_1778927671973_0.6050521127847439","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.4.0":{"name":"@burglekitt/gmt","version":"1.4.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.4.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"eb329e1a1610e03bbc3d3e2973e425dbc82d69ee","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.4.0.tgz","fileCount":684,"integrity":"sha512-s3nepLgbyIGnKMr4A7JHldD+E2IQLqVcYkWF1DhRhtwkzRjCeX5PEQrjYsizqkEt/B1Y/vzIf8ReTN0NAD5/nw==","signatures":[{"sig":"MEQCIFPCJbqD6vKvDbVlEhwIDaL0Dd9bgR+2YCrNVC5iy0HKAiBIPJoe3n6Zaofh3o2AS4v4yBfyJYD5F1N4vVZHnMVIbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":662843},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/e2143d99345c236b82cd95efa079687c/burglekitt-gmt-1.4.0.tgz","_integrity":"sha512-s3nepLgbyIGnKMr4A7JHldD+E2IQLqVcYkWF1DhRhtwkzRjCeX5PEQrjYsizqkEt/B1Y/vzIf8ReTN0NAD5/nw==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.0.29"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.4.0_1786121819661_0.7366374583267556","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.5.0":{"name":"@burglekitt/gmt","version":"1.5.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.5.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"8802b6793be0509e06ed69b6383242d8f911321f","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.5.0.tgz","fileCount":684,"integrity":"sha512-SHXH6yH/Wzl5Lru6iMIF7WY253Pm+TaVqOvWTrWZQYU+0j6VfvVmYAcSGiAaIVt0MfQDkUV4q/jGBE2m8O2gwA==","signatures":[{"sig":"MEUCIQDRrGUHZt+Tagbv1ZsFd292QToPHeVBGLGcSf+KJjRNzgIgM6RBll7HgCDk74PyMC9Ms1mLrGvUCss2kRZt8eIiJZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677804},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.5.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/79c17687a18af9cc83511bb2e538b0a8/burglekitt-gmt-1.5.0.tgz","_integrity":"sha512-SHXH6yH/Wzl5Lru6iMIF7WY253Pm+TaVqOvWTrWZQYU+0j6VfvVmYAcSGiAaIVt0MfQDkUV4q/jGBE2m8O2gwA==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.5.0_1786171559457_0.6833241492935802","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.6.0":{"name":"@burglekitt/gmt","version":"1.6.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.6.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"924650a35620b367fad15caf32ce2420c0835ca8","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.6.0.tgz","fileCount":685,"integrity":"sha512-Gc2WX0Z213kALowQ3AN/kd+MTCPt22xFrCdLKjT7Anh2lZwWY0SFpg4zq4i6mGuS4DvN604+2mlsg5GwAdJXtw==","signatures":[{"sig":"MEYCIQCfTH+IbVavU53vxIg6apYqrn8SSUEtxwFh12XpJFdf2QIhAM90caMBBf8naaQEShbbw8mdQOt0b+y2OJpRG77QNw5P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694485},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.6.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/4ca9da71986ebbec17768e5892ea71e1/burglekitt-gmt-1.6.0.tgz","_integrity":"sha512-Gc2WX0Z213kALowQ3AN/kd+MTCPt22xFrCdLKjT7Anh2lZwWY0SFpg4zq4i6mGuS4DvN604+2mlsg5GwAdJXtw==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.6.0_1786203674193_0.36969931241321174","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.7.0":{"name":"@burglekitt/gmt","version":"1.7.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.7.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"c8f7e6471e79e85126694028295f03fb633ffdb8","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.7.0.tgz","fileCount":755,"integrity":"sha512-bxCZZvuaWirsVe2W9oANSscE5uNM8AkQHqYQ195o1OJvmTMtpgn/ktB+2VJHl1sOmzRiWDTZluBQ4s9Ja+xxtA==","signatures":[{"sig":"MEUCIAU+VPHni27Bg8AyXxxd7+e8Gae8Wqwv5vRcmp3IIsOaAiEApFxRx6j0ALVnHin2b6s7+d5flETfHbgg2D3mGGQq8W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":852035},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.7.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/a1e2aa969b675486d6bf9077af9f66dc/burglekitt-gmt-1.7.0.tgz","_integrity":"sha512-bxCZZvuaWirsVe2W9oANSscE5uNM8AkQHqYQ195o1OJvmTMtpgn/ktB+2VJHl1sOmzRiWDTZluBQ4s9Ja+xxtA==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.7.0_1786271601629_0.5944808773170602","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.8.0":{"name":"@burglekitt/gmt","version":"1.8.0","keywords":["temporal","timezone","date","time","datetime","polyfill","tanstack-intent"],"license":"MIT","_id":"@burglekitt/gmt@1.8.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"126ab6da4c5ca934e3eb3d6f57d3f75a98f0f400","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.8.0.tgz","fileCount":794,"integrity":"sha512-JV3SW0Hy6w3KbKSpQg6737xSSqKmY8IRbolPCDn/4qczSXDLbv2UXIPF0hqPYV2f6k4IFNE0W6VmZqKsZLnF2Q==","signatures":[{"sig":"MEUCIQCIT5S9auxUO7UrTZ7HvoPqtshPAFFyUkKqLrCJZX2UKAIgSf8nRZl+UZwaF1LJjw2lJQpKD9/TjnkIqh64USEkzeA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":910935},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.8.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"biome check .","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"biome check --write .","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/6de322d2f747dff927d6d41134ba9640/burglekitt-gmt-1.8.0.tgz","_integrity":"sha512-JV3SW0Hy6w3KbKSpQg6737xSSqKmY8IRbolPCDn/4qczSXDLbv2UXIPF0hqPYV2f6k4IFNE0W6VmZqKsZLnF2Q==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@tanstack/intent":"^0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.8.0_1786476473542_0.157725878734978","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.9.0":{"name":"@burglekitt/gmt","version":"1.9.0","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.9.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"a747b69f0beaf41c5d470b64e11646968f0d617c","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.9.0.tgz","fileCount":943,"integrity":"sha512-mYRM/nN/KMyVZrZnBJvKcJkcWsxJJvsO1+xnNaTn3InkMmvZTm6nPaJtJLe7dqRdiSuBocr/rffNiO9/P+TW1w==","signatures":[{"sig":"MEUCIHywcxJ4B/EKR1VGYh3nTMS+V0Mq4CFwlIaD0zlKVUcyAiEAw7Jxi9juG8A3iYNeS8DencaVFSo1AoWs2Sho1TS1pBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1234390},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.9.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/dd03bcaa3a85a0a2fb6445ccc0261b64/burglekitt-gmt-1.9.0.tgz","_integrity":"sha512-mYRM/nN/KMyVZrZnBJvKcJkcWsxJJvsO1+xnNaTn3InkMmvZTm6nPaJtJLe7dqRdiSuBocr/rffNiO9/P+TW1w==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.9.0_1786778270825_0.053776950167949034","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.10.0":{"name":"@burglekitt/gmt","version":"1.10.0","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.10.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"5c7766967b57768f4430f0de0ddf034637683de5","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.10.0.tgz","fileCount":971,"integrity":"sha512-q+w40ilw3FAC/4mR0c6UC3/NwHpExBafsYxnjFMC3rLSYTRy5ayfPdmbOokIHOAYhNgVNUs4F2t+CuDWvOS5Lw==","signatures":[{"sig":"MEUCIQCIgdBOkOiigHG1eIf2OEc42l8j8AwDmaYskg/Lj1/XcQIgNSjSgl5YzUDZY+WiCQ1G7gmzthBDNgLokcwnmhKMdf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1315590},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.10.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"baldurpan","email":"baldurpan@gmail.com"},"_resolved":"/private/var/folders/sd/lr2nq1n950q8r43nnfhbg77r0000gn/T/40f44992311b7db253fb0bdf3ee8221e/burglekitt-gmt-1.10.0.tgz","_integrity":"sha512-q+w40ilw3FAC/4mR0c6UC3/NwHpExBafsYxnjFMC3rLSYTRy5ayfPdmbOokIHOAYhNgVNUs4F2t+CuDWvOS5Lw==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"10.8.2","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.10.0_1787161833268_0.7750597188768884","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.11.0":{"name":"@burglekitt/gmt","version":"1.11.0","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.11.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"009fc31fc1cb9c2c6f3b88abcc3efa8ac96f30ba","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.11.0.tgz","fileCount":983,"integrity":"sha512-I5a3qqWI4Ix6O2elx4R07EAq4io435rzGY5cC35qRVkE11+Jr9T6USZed2Kt3Ut7/7WcbNjPoks0HC9Mc2jSOQ==","signatures":[{"sig":"MEQCIDcgHMxe1Hmn1fE5awTWI/0dJmX3lIW9+7xUtz+uSXX6AiBmiXmlFxE5pUoYC+yOJM4EJbHNNTb1NNPZ/3Hp3MJjQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1337277},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.11.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/4a3762fd8924866c00e3275c0d1b88a5/burglekitt-gmt-1.11.0.tgz","_integrity":"sha512-I5a3qqWI4Ix6O2elx4R07EAq4io435rzGY5cC35qRVkE11+Jr9T6USZed2Kt3Ut7/7WcbNjPoks0HC9Mc2jSOQ==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.11.0_1787231051875_0.4885791233647532","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.12.0":{"name":"@burglekitt/gmt","version":"1.12.0","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.12.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"69d2c2a14acc06eb8913175d8baafbfb93b95cb4","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.12.0.tgz","fileCount":1001,"integrity":"sha512-ibUZfADJjcdcwE32fEvwLFZui+P3zl+jicexCUp09OTCXnmFT5LEFVJa37UvBZeTWqsiYW9VJ8maG+c/fbH6IQ==","signatures":[{"sig":"MEUCIE3BpM7BbBWLD/6K4aNkZY5UXwRD7sp2En4ItK3UyU0pAiEApnwjAQdVkruEOy7vXyuI7uyTKNoJKi+1veq+y0faAbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1397887},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.12.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/7e5c1f2e87bc6698bdd368dd03457948/burglekitt-gmt-1.12.0.tgz","_integrity":"sha512-ibUZfADJjcdcwE32fEvwLFZui+P3zl+jicexCUp09OTCXnmFT5LEFVJa37UvBZeTWqsiYW9VJ8maG+c/fbH6IQ==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.12.0_1787300723000_0.9608148617975052","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.13.0":{"name":"@burglekitt/gmt","version":"1.13.0","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.13.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"0467c12b4c94746cd1ae8734e204eb85aab33f7e","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.13.0.tgz","fileCount":1212,"integrity":"sha512-Qz9gvLqc3efZPeSQOrGptL4GOLvMUY/qEW2ZAU1FqSkMKBr8BCrOWMI2wntQ/80dx3z2wVcJtOcYEOJlnB69tg==","signatures":[{"sig":"MEQCIDbRVKtCzhJ4nijdtby0Fqm9kclATK+e8HeIsbxgsihqAiBgX2V8JnvA58QUtPA9imfIvbACKyu/kWs9PH3CBRz7Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1906526},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.13.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/064e001329a739c0416c146ec359a956/burglekitt-gmt-1.13.0.tgz","_integrity":"sha512-Qz9gvLqc3efZPeSQOrGptL4GOLvMUY/qEW2ZAU1FqSkMKBr8BCrOWMI2wntQ/80dx3z2wVcJtOcYEOJlnB69tg==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.13.0_1787418833153_0.7355608633650907","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.14.0":{"name":"@burglekitt/gmt","version":"1.14.0","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.14.0","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"38c7a8d0c1af1887623fbb65a397ecd893de285a","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.14.0.tgz","fileCount":1286,"integrity":"sha512-969VlnajLCXZpNi4cHNtjn9DahwoiwNBWIAUW0axHtK5wjj3W7+xL9lu2OBQ3UVqKalQc1xs1SV7TmtIc7aa2w==","signatures":[{"sig":"MEQCIH6LGT6b395QlfBOWuFfzclBIUB3tDrDSrrA49SvDEBDAiBU6QMOtaP/Uj6eyv5+KDzREnec/HOCXMlq035snWj/nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2161935},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.14.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"baldurpan","email":"baldurpan@gmail.com"},"_resolved":"/private/var/folders/sd/lr2nq1n950q8r43nnfhbg77r0000gn/T/2911fcd62b76381e3312df3d781c6d17/burglekitt-gmt-1.14.0.tgz","_integrity":"sha512-969VlnajLCXZpNi4cHNtjn9DahwoiwNBWIAUW0axHtK5wjj3W7+xL9lu2OBQ3UVqKalQc1xs1SV7TmtIc7aa2w==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"10.8.2","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.14.0_1787680434816_0.5747938674031277","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.14.1":{"name":"@burglekitt/gmt","version":"1.14.1","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"license":"MIT","_id":"@burglekitt/gmt@1.14.1","maintainers":[{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},{"name":"baldurpan","email":"baldurpan@gmail.com"}],"contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"homepage":"https://github.com/burglekitt/gmt#readme","bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"dist":{"shasum":"63b4994d6cefe159c5b6eb4343d5c61a73001b62","tarball":"https://registry.npmjs.org/@burglekitt/gmt/-/gmt-1.14.1.tgz","fileCount":1286,"integrity":"sha512-iEDxIyjQJK+xiPm5qR9b9Vc+6swVJ5Sb22amVzk68YfdCLLCaSc32cfqipHGZutIzTED/OBs+bdj87L1/zafnw==","signatures":[{"sig":"MEUCIBstesNIfVMS6w3f0dNe406Niu0UEf9qiiM3Wz6DaScCAiEAoaBAwhJB6lSe2MXz6BlT013sPKlkmBbkdChw/0QDvbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2162384},"main":"./dist/index.js","type":"module","_from":"file:burglekitt-gmt-1.14.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utc":{"types":"./dist/utc/index.d.ts","default":"./dist/utc/index.js"},"./unix":{"types":"./dist/unix/index.d.ts","default":"./dist/unix/index.js"},"./plain":{"types":"./dist/plain/index.d.ts","default":"./dist/plain/index.js"},"./regex":{"types":"./dist/regex/index.d.ts","default":"./dist/regex/index.js"},"./utc/*":{"types":"./dist/utc/*/index.d.ts","default":"./dist/utc/*/index.js"},"./zoned":{"types":"./dist/zoned/index.d.ts","default":"./dist/zoned/index.js"},"./unix/*":{"types":"./dist/unix/*/index.d.ts","default":"./dist/unix/*/index.js"},"./plain/*":{"types":"./dist/plain/*/index.d.ts","default":"./dist/plain/*/index.js"},"./regex/*":{"types":"./dist/regex/*.d.ts","default":"./dist/regex/*.js"},"./utc/*/*":null,"./zoned/*":{"types":"./dist/zoned/*/index.d.ts","default":"./dist/zoned/*/index.js"},"./unix/*/*":null,"./plain/*/*":null,"./zoned/*/*":null},"scripts":{"lint":"oxlint","test":"vitest run","build":"rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths --resolve-full-extension .js","format":"oxfmt","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"},"_resolved":"/private/var/folders/63/d7nkfk_s5n3dq9c2mq1m70qc0000gn/T/e4d2f1323e18460a6882533c33013b35/burglekitt-gmt-1.14.1.tgz","_integrity":"sha512-iEDxIyjQJK+xiPm5qR9b9Vc+6swVJ5Sb22amVzk68YfdCLLCaSc32cfqipHGZutIzTED/OBs+bdj87L1/zafnw==","repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"_npmVersion":"11.17.0","description":"Temporal-based date and time utilities with timezone support and polyfill integration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@js-temporal/polyfill":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.62.0","oxlint":"^1.0.0","@tanstack/intent":"^0.3.6","@burglekitt/gmt-oxlint":"1.1.4"},"_npmOperationalInternal":{"tmp":"tmp/gmt_1.14.1_1787683820192_0.5178563137730403","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-04-10T17:19:42.229Z","modified":"2026-08-26T08:07:34.480Z","1.0.0":"2026-04-10T17:19:42.862Z","1.1.0":"2026-04-13T12:19:51.726Z","1.2.0":"2026-04-17T12:19:29.125Z","1.2.1":"2026-05-10T11:45:52.396Z","1.3.0":"2026-05-16T10:34:32.164Z","1.4.0":"2026-08-07T16:56:59.807Z","1.5.0":"2026-08-08T06:45:59.603Z","1.6.0":"2026-08-08T15:41:14.377Z","1.7.0":"2026-08-09T10:33:21.806Z","1.8.0":"2026-08-11T19:27:53.772Z","1.9.0":"2026-08-15T07:17:50.976Z","1.10.0":"2026-08-19T17:50:33.420Z","1.11.0":"2026-08-20T13:04:12.015Z","1.12.0":"2026-08-21T08:25:23.148Z","1.13.0":"2026-08-22T17:13:53.304Z","1.14.0":"2026-08-25T17:53:55.021Z","1.14.1":"2026-08-25T18:50:20.379Z"},"bugs":{"url":"https://github.com/burglekitt/gmt/issues"},"license":"MIT","homepage":"https://github.com/burglekitt/gmt#readme","keywords":["date","datetime","polyfill","tanstack-intent","temporal","time","timezone"],"repository":{"url":"git+https://github.com/burglekitt/gmt.git","type":"git","directory":"packages/gmt"},"description":"Temporal-based date and time utilities with timezone support and polyfill integration","contributors":[{"url":"https://github.com/baldurpan","name":"Baldur Páll Hólmgeirsson"},{"url":"https://github.com/craig-o-curtis","name":"Craig O. Curtis"}],"maintainers":[{"name":"baldurpan","email":"baldurpan@gmail.com"},{"name":"craig-o-curtis","email":"craigocurtis@gmail.com"}],"readme":"# @burglekitt/gmt\n\n> ## ⚠️ Deprecation Notice\n>\n> This package has moved. **`gmt` is now published as\n> [`@northguild/gmt`](https://www.npmjs.com/package/@northguild/gmt)** under the\n> [northguild](https://github.com/northguild) GitHub organization.\n>\n> - **New repository:** <https://github.com/northguild/gmt>\n> - **New package:** `@northguild/gmt`\n>\n> `@burglekitt/gmt` is deprecated and will receive no further updates. Please\n> migrate to `@northguild/gmt`.\n\nGive Me Temporal.\n\n`@burglekitt/gmt` is a Temporal-first date and time library with a simple rule set:\n\n- ISO 8601 strings in\n- ISO 8601 strings, numbers, booleans, or arrays out\n- no `Date`\n- plain and zoned operations kept separate\n\nIt wraps `@js-temporal/polyfill` behind a smaller, more opinionated API aimed at the cases application code actually hits: arithmetic, comparison, parsing, formatting, unix conversions, timezone conversion, and validation.\n\n**Status:** pre-alpha. Expect API movement while the surface is still being filled out.\n\n## Install\n\n```bash\nnpm install @burglekitt/gmt\n```\n\n```bash\npnpm add @burglekitt/gmt\n```\n\n## Design Philosophy\n\nGMT enforces a strict input/output contract to keep behavior predictable and auditable:\n\n- **Explicit inputs only**: Public APIs accept clearly defined shapes — ISO 8601 date/time strings, IANA timezone identifiers, or numeric Unix epoch values (explicitly seconds or milliseconds). We do not attempt to parse arbitrary or ambiguous date formats.\n- **Predictable outputs**: Helpers return normalized values (ISO strings, numbers, booleans, or arrays). Invalid input yields typed fallbacks (`\"\"`, `null`, or `false`) instead of throwing.\n- **No fuzzy parsing**: Avoid \"throw everything at the wall\" patterns found in permissive libraries. If you need permissive parsing, perform it outside of `@burglekitt/gmt` and then canonicalize to the strict shapes before calling into gmt.\n- **Developer comfort with standards**: The library's goal is to make developers comfortable and deliberate with ISO 8601, IANA timezones, UTC instants, and Unix epochs by keeping APIs small and explicit.\n\n## Core Rules\n\n| Rule                    | Current behavior                                                                   |\n| ----------------------- | ---------------------------------------------------------------------------------- |\n| String-first API        | Public helpers consume ISO strings and return normalized strings where appropriate |\n| Temporal-only internals | `Temporal` does the parsing and timezone math                                      |\n| Plain/zoned separation  | `plain/*` is timezone-free, `zoned/*` is timezone-aware                            |\n| No-throw public helpers | Invalid input returns a typed fallback instead of throwing                         |\n\nInvalid input fallbacks are consistent across the library:\n\n- string-returning helpers return `\"\"`\n- number-returning helpers return `null`\n- boolean-returning helpers return `false`\n- array-returning helpers return `[]`\n\n## Testing\n\nEvery function is exercised across **17 locales** and a full IANA timezone matrix. The CI pipeline runs the complete suite in **20 environments** — 2 Node versions (22, 24) × 10 timezones spanning every UTC offset band from Pacific/Niue (−11:00) to Pacific/Apia (+13:00):\n\n| Timezone            | UTC Offset      |\n| ------------------- | --------------- |\n| Pacific/Niue        | −11:00          |\n| America/New_York    | −05:00 / −04:00 |\n| UTC                 | ±00:00          |\n| Europe/London       | ±00:00 / +01:00 |\n| Asia/Kolkata        | +05:30          |\n| Asia/Kathmandu      | +05:45          |\n| Asia/Shanghai       | +08:00          |\n| Australia/Lord_Howe | +10:00 / +11:00 |\n| Pacific/Chatham     | +12:45 / +13:45 |\n| Pacific/Apia        | +13:00 / +14:00 |\n\nThis guarantees that DST transitions, leap seconds, half-hour offsets, and locale-specific weekend boundaries are all covered — not just the happy path.\n\n### Testing strategy\n\nGMT's test suite balances **thoroughness** against **maintenance burden** by testing behavior, not permutations.\n\n**What we test exhaustively:**\n\n- **17-locale matrix** — every locale-aware function is exercised across all 17 `MustTestLocales` (en-US, en-GB, de-DE, fr-FR, es-ES, it-IT, pt-PT, sv-SE, zh-CN, zh-TW, ja-JP, ko-KR, ar-SA, he-IL, ru-RU, tr-TR, is-IS). This covers script direction, first-day-of-week differences, and calendar metadata.\n- **Timezone battle matrix** — every zoned function is exercised across 10 IANA timezones spanning every UTC offset band from Pacific/Niue (−11:00) to Pacific/Apia (+14:00), including DST-transition and half-hour-offset zones.\n- **Zero-length and identity cases** — every interval and arithmetic function is tested with zero-length inputs, identity operations, and boundary-adjacent values.\n- **Invalid-input sentinels** — every public function is tested for the documented fallback behavior (`\"\"`, `null`, `false`, `[]`) on malformed strings, wrong types, leap seconds, and inverted intervals.\n\n**What we collapse:**\n\n- **Non-string input tables** — functions that guard with `typeof x !== \"string\"` return the same sentinel for `null`, `undefined`, `123`, `true`, `[]`, and `{}`. We test one representative non-string per argument position rather than all six types × N positions. The collapse is safe because all non-string types hit the identical early-return code path.\n- **Redundant permutations** — adjacent/disjoint/reversed interval cases that produce identical results are not duplicated across every function variant. The `plain/`, `zoned/`, `utc/`, and `unix/` families share the same mathematical behavior; each family gets the minimum set of cases needed to prove correctness.\n\n**Result:** 15,611 tests across 527 files that exercise real behavior differences without redundant permutations. The suite runs in CI as 312,220 executions (15,611 × 2 Node versions × 10 timezones).\n\n## How GMT is tested, vs. the libraries it targets\n\nGMT's roadmap (see [context/roadmap](https://github.com/burglekitt/gmt/tree/main/context/roadmap)) is explicitly scoped against react-aria's **`@internationalized/date`**, **Luxon**, **date-fns**, and **Moment.js** — the same four libraries compared below. All numbers were verified **2026-08-22** against the exact package versions/commits below — nothing is estimated. Re-verify before citing these numbers elsewhere; library surfaces and CI configs move.\n\n| Library                   | Version tested                          |\n| ------------------------- | --------------------------------------- |\n| GMT (`@burglekitt/gmt`)   | 1.12.0                                  |\n| `@internationalized/date` | 3.12.3 (`adobe/react-spectrum@5d191ab`) |\n| Luxon                     | 3.7.2 (`moment/luxon@f427515`)          |\n| date-fns                  | 4.4.0 (`date-fns/date-fns@a0a3922`)     |\n| Moment.js                 | 2.30.1 (`moment/moment@cf524af`)        |\n\n| Metric                          | GMT                                                | `@internationalized/date`      | Luxon                                | date-fns                                  | Moment.js                        |\n| ------------------------------- | -------------------------------------------------- | ------------------------------ | ------------------------------------ | ----------------------------------------- | -------------------------------- |\n| Test files                      | 527                                                | 6                              | 58 / 60<br>(2 didn't run<br>locally) | 256                                       | 191<br>(52 core +<br>139 locale) |\n| Individual test cases           | **15,611**                                         | 386                            | 1,222                                | 3,213                                     | 3,901                            |\n| Effective CI test<br>executions | **312,220**<br>(15,611 × 2 Node<br>× 10 timezones) | 386<br>(×1 Node)               | 4,888<br>(1,222 × 4 Node)            | 3,213<br>(×1 Node)                        | 11,703<br>(3,901 × 3 Node)       |\n| CI Node.js matrix               | 22, 24                                             | n/a — tests<br>React 16–canary | 20, 22, 24, 25                       | not explicit<br>(`node = \"latest\"`)       | LTS, LTS-1,<br>latest            |\n| CI timezone matrix              | **10 zones × 2**<br>**Node, full suite**           | none found                     | none found                           | dedicated workflow,<br>zone scope unclear | 6 zones,<br>partial suite only   |\n| Locale test matrix              | **17 locales**,<br>every locale fn                 | none found                     | none found                           | none found                                | none found                       |\n| Real-browser CI                 | not yet                                            | yes (Playwright)               | not found                            | yes (Playwright)                          | not found                        |\n| Maintenance                     | active                                             | active                         | active                               | active                                    | **maintenance<br>mode**          |\n\n<sub>Methodology: \"Test files\" and the CI/maintenance rows come from each project's public CI configuration and repository file listing. \"Individual test cases\" for GMT, Luxon, date-fns, and Moment.js were obtained by actually cloning the repo at the commit above, installing dependencies, running the project's own test command (`vitest run` / `jest` / `node scripts/test.js`), and reading that runner's own final summary — not grepped from source. `@internationalized/date` was run by cloning `adobe/react-spectrum` at `5d191ab`, installing dependencies, and executing `npx jest packages/@internationalized/date/tests/`, yielding 386 passing tests. Luxon (39 failures) and date-fns (46 failures) had environment-dependent local failures that don't affect the total count: Luxon's suite assumes its CI container's local time zone is `America/New_York`; date-fns's experimental native-`Temporal` code path needs a global `Temporal` Node doesn't yet provide natively. Moment.js passed cleanly (0 failed) on Node 24. Sources: [GMT](https://github.com/burglekitt/gmt/blob/main/.github/workflows/ci.yml) · [`@internationalized/date`](https://github.com/adobe/react-spectrum/blob/main/.circleci/config.yml) · [Luxon](https://github.com/moment/luxon/blob/master/.github/workflows/test.yml) · [date-fns](https://github.com/date-fns/date-fns/tree/main/.github/workflows) · [Moment.js](https://github.com/moment/moment/tree/develop/.github/workflows).</sub>\n\n### Functionality parity progress\n\nGMT's roadmap tracks parity against the same four libraries story-by-story, with each gap sourced against the specific competitor function it closes — see [context/roadmap](https://github.com/burglekitt/gmt/tree/main/context/roadmap) for the full, source-verified audit trail. This is a live snapshot, not a finished-parity claim: ✅ shipped, 🟡 in progress, ⏳ backlog and not yet scheduled.\n\n| Capability                                                                                   | Status                       | Also has it                                                              |\n| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------------------------------ |\n| Duration type<br>(ISO 8601 parse/format/arithmetic)                                          | ✅ Done                      | Luxon `Duration`                                                         |\n| Interval/range math<br>(contains, overlap, union,<br>intersection, split, set ops)           | ✅ Done                      | Luxon `Interval`,<br>date-fns `areIntervalsOverlapping`                  |\n| DST disambiguation control<br>on construction _and_ arithmetic                               | ✅ Done — **differentiator** | None of the others expose<br>this on arithmetic                          |\n| Locale-aware calendar helpers<br>(weekend, week start/end, day-of-week)                      | ✅ Done                      | `@internationalized/date`                                                |\n| Business-day arithmetic,<br>clamp/closest, time rounding                                     | ✅ Done                      | `temporal-kit`                                                           |\n| Interval rounding-out<br>(boundary count, from-duration)                                     | ✅ Done                      | Luxon                                                                    |\n| Locale calendar metadata<br>(names, `hasDST`)                                                | ✅ Done                      | Luxon `Info`                                                             |\n| Overlap-day count, relative<br>rounding, DST transitions, hours-in-day                       | ✅ Done                      | date-fns, `@internationalized/date`                                      |\n| Field setters, token-pattern<br>parsing, named machine formats,<br>calendar-style formatting | ✅ Done                      | Luxon `.set()`,<br>`toRFC2822`/`toHTTP`/`toSQL`,<br>Moment `.calendar()` |\n| Non-Gregorian calendar systems<br>(conversion + calendar-aware<br>interval/duration math)    | ✅ Done                      | `@internationalized/date`'s<br>`toCalendar`                              |\n\n<sub>Status reflects [context/roadmap/tracker.md](https://github.com/burglekitt/gmt/tree/main/context/roadmap/tracker.md) as of this writing.</sub>\n\n### Where GMT stands alone\n\nSpecific, sourced claims — not a repeat of the metrics above.\n\n| Claim                                                                                                                                         | The others                                                                                                                            |\n| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| Only GMT runs its **entire** suite in CI<br>under a real `TZ` env var across 10<br>real-world zones × 2 Node versions<br>(20 full-suite runs) | Luxon/`@internationalized/date`: no<br>CI timezone matrix. date-fns: zone<br>scope unclear. Moment.js: 6 zones,<br>partial suite only |\n| Only GMT enforces a mandatory<br>17-locale test matrix on every<br>locale-aware function                                                      | No CI-level or systematic<br>locale-matrix testing found<br>in any of the four                                                        |\n| Only GMT exposes explicit DST<br>disambiguation control on both<br>construction _and_ arithmetic                                              | Luxon's docs call this explicitly<br>undefined; `@internationalized/date`<br>only covers construction, not arithmetic                 |\n| Only GMT is Temporal-native with<br>zero `Date` usage, enforced by<br>3 dedicated lint packages                                               | Luxon, date-fns, and Moment.js all<br>still wrap or depend on `Date` internally                                                       |\n| GMT's effective CI test<br>executions exceed all four<br>competitors **combined**<br>by ~15×                                                  | 312,220 vs. 386 + 4,888 + 3,213<br>+ 11,703 = 20,190                                                                                  |\n\n## Package Layout\n\nThe package exports seven top-level namespaces:\n\n```typescript\nimport {\n  Temporal,\n  duration,\n  plain,\n  zoned,\n  unix,\n  utc,\n  regex,\n} from \"@burglekitt/gmt\";\n```\n\n- `Temporal`: re-exported from `@js-temporal/polyfill`\n- `duration`: ISO 8601 duration string parsing, validation, and arithmetic\n- `plain`: timezone-free helpers\n- `zoned`: timezone-aware helpers\n- `unix`: Unix epoch (seconds or milliseconds) helpers\n- `utc`: UTC instant helpers\n- `regex`: low-level regex building blocks\n\nYou can also import subpaths directly:\n\n```typescript\nimport { addDate, getNow, formatRelativeZoned } from \"@burglekitt/gmt\";\n```\n\n## Quick Start\n\n### Plain arithmetic and comparisons\n\n```typescript\nimport {\n  addDate,\n  addBusinessDays,\n  subtractBusinessDays,\n  areDatesEqual,\n  diffDateTime,\n  isBeforeDateTime,\n} from \"@burglekitt/gmt\";\n\naddDate(\"2026-01-01\", 90, \"day\");\n// \"2026-03-32\" is impossible, so Temporal normalizes correctly -> \"2026-04-01\"\n\naddBusinessDays(\"2024-03-15\", 1);\n// \"2024-03-18\" (skips weekend)\n\nsubtractBusinessDays(\"2024-03-18\", 1);\n// \"2024-03-15\" (skips weekend)\n\ndiffDateTime(\"2024-03-17T12:00:00\", \"2024-03-17T12:30:00\", \"minute\");\n// 30\n\nareDatesEqual(\"2026-03-17\", \"2026-03-17T09:00:00\");\n// true\n\nisBeforeDateTime(\"2026-03-17T09:00:00\", \"2026-03-17T10:00:00\");\n// true\n```\n\n`add*`/`subtract*` accept an optional `overflow` (`\"constrain\"` (default) | `\"reject\"`) to control out-of-range results (e.g. adding a month to Jan 31), and `diff*` accept optional `smallestUnit`/`roundingIncrement`/`roundingMode` to round the computed difference:\n\n```typescript\nimport { addDate, diffDate } from \"@burglekitt/gmt\";\n\naddDate(\"2024-01-31\", { months: 1 }, { overflow: \"reject\" });\n// \"\" — Feb 31 doesn't exist and overflow: \"reject\" refuses to clamp it\n\ndiffDate(\"2023-01-01\", \"2023-01-10\", \"week\", {\n  smallestUnit: \"week\",\n  roundingMode: \"halfExpand\",\n});\n// 1\n```\n\n`setDate`/`setDateTime`/`setTime`/`setZoned`/`setUnix`/`setUtc` set one or more fields on a value in a single atomic `.with()`-based call — the safe alternative to composing `add*` calls field-by-field, which resolves each field's overflow independently and can silently diverge on multi-field updates:\n\n```typescript\nimport { setDate, setZoned } from \"@burglekitt/gmt\";\n\nsetDate(\"2024-01-31\", { month: 2 });\n// \"2024-02-29\" (constrain, the default, clamps to the last valid day)\n\nsetZoned(\n  \"2024-11-03T01:45:00-05:00[America/New_York]\",\n  { minute: 0 },\n  {\n    disambiguation: \"reject\",\n  },\n);\n// \"\" — offset defaults to \"ignore\" so disambiguation actually fires on this fall-back overlap\n```\n\n`setZoned`/`setUnix`/`setUtc` also accept `disambiguation` and `offset` for DST gap/overlap control — see [DST Disambiguation](../../docs/dst-disambiguation.md).\n\n`cycleDate`/`cycleDateTime`/`cycleTime`/`cycleZoned` adjust a single field and **wrap** at that field's own min/max instead of carrying into the next larger field — the datepicker-segment-editing primitive `add*` can't express, since overflowing into the next field is exactly what `add*` is for:\n\n```typescript\nimport { addDate, cycleDate, cycleZoned } from \"@burglekitt/gmt\";\n\ncycleDate(\"2024-12-15\", \"month\", 1);\n// \"2024-01-15\" — stays in the same year\n\naddDate(\"2024-12-15\", { months: 1 });\n// \"2025-01-15\" — addDate correctly overflows into the next year instead\n\ncycleZoned(\"2024-03-10T01:30:00-06:00[America/Chicago]\", \"hour\", 1);\n// \"2024-03-10T03:30:00-05:00[America/Chicago]\" — the cycled hour lands in a spring-forward\n// gap; disambiguation (\"compatible\" by default) resolves it the same way setZoned does\n```\n\n`cycleZoned` also accepts `disambiguation` and `offset` (default `offset: \"ignore\"`) for the same DST gap/overlap control as `setZoned` — see [DST Disambiguation](../../docs/dst-disambiguation.md). `options.round` on any of the four steps to the next multiple of `amount` rather than rounding to the nearest one, matching `@internationalized/date`'s `CycleOptions.round`.\n\n`isWeekend`/`isZonedWeekend` check locale-specific weekend days (via `Intl.Locale`'s `weekInfo`) rather than assuming Saturday/Sunday:\n\n```typescript\nimport { isWeekend, isZonedWeekend } from \"@burglekitt/gmt\";\n\nisWeekend(\"2024-02-03\", \"en-US\");\n// true (Saturday, en-US weekend is Sat/Sun)\n\nisWeekend(\"2024-02-03\", \"he-IL\");\n// true (Saturday is also part of he-IL's Fri/Sat weekend)\n\nisZonedWeekend(\"2024-02-04T10:00:00+02:00[Asia/Jerusalem]\", \"he-IL\");\n// false (Sunday isn't part of he-IL's weekend)\n```\n\n`isBusinessDay` returns true for fixed ISO Monday–Friday business days (Mon=1 … Fri=5), locale-agnostic and with no holiday calendar. It's the complement to locale-aware `isWeekend` and matches the boundary that `addBusinessDays`/`subtractBusinessDays` use:\n\n```typescript\nimport { isBusinessDay } from \"@burglekitt/gmt\";\n\nisBusinessDay(\"2024-02-05\");\n// true (Monday)\n\nisBusinessDay(\"2024-02-10\");\n// false (Saturday)\n```\n\n`isRelativeDay`/`isThisUnit`/`isPast`/`isFuture` are now-relative predicates — `isRelativeDay` subsumes `isToday`/`isYesterday`/`isTomorrow`, `isThisUnit` subsumes `isThisWeek`/`isThisMonth`/`isThisYear`. They compare against `getToday()`, so they depend on the **system clock and system timeZone**; the zoned variants (`isZonedRelativeDay`, `isZonedThisUnit`, `isZonedPast`, `isZonedFuture`) resolve \"today\"/\"now\" in the value's own timeZone instead, for deterministic results regardless of the host machine's timeZone:\n\n```typescript\nimport { isRelativeDay, isThisUnit, isPast, isFuture } from \"@burglekitt/gmt\";\n\nisRelativeDay(\"2024-03-15\", 0);\n// true, if today is 2024-03-15 (\"isToday\")\n\nisThisUnit(\"2024-02-26\", \"week\", \"fr-FR\");\n// locale-aware week boundary — fr-FR weeks start Monday\n\nisPast(\"2024-03-14\");\n// true, if today is 2024-03-15 (strictly before, not on-or-before)\n\nisFuture(\"2024-03-16\");\n// true, if today is 2024-03-15 (strictly after, not on-or-before)\n```\n\n`nextWeekday`/`previousWeekday` find the next/previous occurrence of a given ISO day of week (1 = Monday … 7 = Sunday, matching `getDayOfWeek`) on or after/before a date, replacing date-fns's sixteen `next*`/`previous*` functions with two parameterized calls. `options.inclusive` (default `false`) controls what happens when the input already falls on the target day — `false` advances/retreats a full week, matching date-fns:\n\n```typescript\nimport { nextWeekday, previousWeekday } from \"@burglekitt/gmt\";\n\nnextWeekday(\"2024-03-13\", 5);\n// \"2024-03-15\" (Wednesday -> next Friday)\n\nnextWeekday(\"2024-03-15\", 5);\n// \"2024-03-22\" (already a Friday -> advances a full week by default)\n\nnextWeekday(\"2024-03-15\", 5, { inclusive: true });\n// \"2024-03-15\" (already a Friday -> returned as-is)\n\npreviousWeekday(\"2024-03-13\", 5);\n// \"2024-03-08\" (Wednesday -> previous Friday)\n```\n\n```typescript\nimport { isZonedRelativeDay, isZonedPast } from \"@burglekitt/gmt\";\n\nisZonedRelativeDay(\"2024-03-15T10:00:00-04:00[America/New_York]\", 0);\n// \"today\" resolved in America/New_York, not the host's system timeZone\n\nisZonedPast(\"2020-01-01T00:00:00Z[UTC]\");\n// true — compares the exact instant, not just the calendar day\n```\n\n`clampDate` restricts a date to a range, and `closestDateTo` finds the nearest candidate by calendar distance:\n\n```typescript\nimport { clampDate, closestDateTo } from \"@burglekitt/gmt\";\n\nclampDate(\"2024-02-01\", \"2024-03-01\", \"2024-03-31\");\n// \"2024-03-01\"\n\nclosestDateTo(\"2024-03-15\", [\"2024-03-01\", \"2024-03-20\", \"2024-03-18\"]);\n// \"2024-03-18\"\n```\n\n`getLocaleStartOfWeek`/`getLocaleEndOfWeek` (and their zoned equivalents) compute week boundaries from the locale's first day of week, instead of an ISO-Monday default:\n\n```typescript\nimport { getLocaleStartOfWeek, getLocaleEndOfWeek } from \"@burglekitt/gmt\";\n\ngetLocaleStartOfWeek(\"2024-02-29\", \"en-US\");\n// \"2024-02-25\" (Sunday, en-US weeks start Sunday)\n\ngetLocaleStartOfWeek(\"2024-02-29\", \"fr-FR\");\n// \"2024-02-26\" (Monday, fr-FR weeks start Monday)\n\ngetLocaleEndOfWeek(\"2024-02-29\", \"en-US\");\n// \"2024-03-02\" (Saturday)\n```\n\n`getLocaleDayOfWeek`/`getLocaleZonedDayOfWeek` return a locale-relative day-of-week index (0 = first day of the locale's week):\n\n```typescript\nimport { getLocaleDayOfWeek, getLocaleZonedDayOfWeek } from \"@burglekitt/gmt\";\n\ngetLocaleDayOfWeek(\"2024-02-25\", \"en-US\");\n// 0 (Sunday = first day of en-US week)\n\ngetLocaleDayOfWeek(\"2024-02-26\", \"fr-FR\");\n// 0 (Monday = first day of fr-FR week)\n\ngetLocaleDayOfWeek(\"2024-02-24\", \"he-IL\");\n// 0 (Saturday = first day of he-IL week)\n\ngetLocaleZonedDayOfWeek(\"2024-02-25T12:00:00+00:00[UTC]\", \"en-US\");\n// 0\n```\n\n`getLocaleEraNames`/`getLocaleMonthNames`/`getLocaleWeekdayNames`/`getLocaleMeridiems` return standalone, locale-aware calendar names with no date value required — the GMT equivalents of Luxon's `Info.eras`/`Info.months`/`Info.weekdays`/`Info.meridiems`:\n\n```typescript\nimport {\n  getLocaleEraNames,\n  getLocaleMonthNames,\n  getLocaleWeekdayNames,\n  getLocaleMeridiems,\n} from \"@burglekitt/gmt\";\n\ngetLocaleEraNames(\"en-US\");\n// [\"Before Christ\", \"Anno Domini\"]\n\ngetLocaleEraNames(\"ja-JP\", \"short\");\n// [\"紀元前\", \"西暦\"]\n\ngetLocaleMonthNames(\"en-US\");\n// [\"January\", \"February\", ... \"December\"]\n\ngetLocaleMonthNames(\"de-DE\", \"short\");\n// [\"Jan\", \"Feb\", \"Mär\", ... \"Dez\"]\n\ngetLocaleWeekdayNames(\"en-US\");\n// [\"Sunday\", \"Monday\", ... \"Saturday\"] (locale-first-day order)\n\ngetLocaleWeekdayNames(\"fr-FR\");\n// [\"lundi\", \"mardi\", ... \"dimanche\"]\n\ngetLocaleMeridiems(\"en-US\");\n// [\"AM\", \"PM\"]\n\ngetLocaleMeridiems(\"zh-CN\");\n// [\"上午\", \"下午\"]\n```\n\n`getLocaleWeekdayNames` returns names in the locale's first-day order, consistent with `getLocaleDayOfWeek` (index 0 is the locale's first day of the week). All four delegate to the host runtime's `Intl` data, so their output depends on the runtime's ICU build.\n\n### Parsing\n\n`parseDateWithPattern`/`parseDateTimeWithPattern`/`parseTimeWithPattern` decode a known, fixed producer format — a CSV column, a legacy API field, or a partially-typed form value — against a caller-supplied token pattern. This is for **decoding**, not display: the pattern hard-codes field order, so `formatDate`/`formatDateToParts` remain the correct choice for locale-correct output.\n\n```typescript\nimport {\n  parseDateWithPattern,\n  parseDateTimeWithPattern,\n  parseTimeWithPattern,\n} from \"@burglekitt/gmt\";\n\nparseDateWithPattern(\"03/15/2024\", \"MM/dd/yyyy\");\n// \"2024-03-15\"\n\nparseDateTimeWithPattern(\"15-Mar-2024 14:30\", \"dd-MMM-yyyy HH:mm\");\n// \"2024-03-15T14:30:00\"\n\nparseTimeWithPattern(\"02:30:45 PM\", \"hh:mm:ss a\");\n// \"14:30:45\"\n\nparseDateWithPattern(\"02/31/2024\", \"MM/dd/yyyy\");\n// \"\" — shape-valid but not a real date; Temporal validates after the regex match\n```\n\nSupported tokens include `yyyy`/`MM`/`dd`/`HH`/`mm`/`ss`/`SSS` for fixed-width fields, `M`/`d`/`H`/`h`/`m`/`s` for variable-width, `MMMM`/`MMM`/`EEEE`/`EEE`/`a`/`GGGG`/`GG` for locale-aware names, and `'single quotes'` for literal text. A `locale` parameter (default `\"en-US\"`) controls name-token matching. Invalid input, no-match, and malformed patterns all return `\"\"`.\n\n### Calendar systems\n\nGMT's `CalendarSystem` type (`\"gregorian\" | \"hebrew\" | \"islamic-civil\" | \"islamic-tabular\" | \"islamic-umalqura\" | \"japanese\" | \"buddhist\" | \"taiwan\" | \"persian\" | \"indian\" | \"ethiopic\" | \"ethiopic-amete-alem\" | \"coptic\"`, extended by later stories) and `convertDateToCalendar` express a date in a non-Gregorian calendar system, built almost entirely on Temporal's native calendar support — no bundled leap-year tables or ported arithmetic, with one deliberate exception (the Ethiopic family, covered below).\n\n```typescript\nimport { convertDateToCalendar } from \"@burglekitt/gmt\";\n\nconvertDateToCalendar(\"2024-10-03\", \"hebrew\");\n// \"5785-01-01[u-ca=hebrew]\" — Rosh Hashanah 5785\n\nconvertDateToCalendar(\"5785-01-01[u-ca=hebrew]\", \"gregorian\");\n// \"2024-10-03\" — round-trips back\n\nconvertDateToCalendar(\"2024-10-03\", \"islamic-umalqura\");\n// \"1446-03-30[u-ca=islamic-umalqura]\" — Saudi Umm al-Qura calendar\n\nconvertDateToCalendar(\"invalid\", \"hebrew\");\n// \"\"\n```\n\nThe output string shape is the key design decision here, and it deliberately **diverges from Temporal's own** `[u-ca=...]` convention. Temporal's `Temporal.PlainDate.prototype.toString()` always keeps the ISO/proleptic-Gregorian year-month-day digits and only tags the calendar (`\"2024-10-03[u-ca=hebrew]\"` — still literally October 3rd's Gregorian digits). That hides the calendar's own fields behind calendar-aware accessors, which GMT's string-only contract has no place for. GMT's annotated string instead carries the **calendar-native** year/month/day — Hebrew year 5785, not 2024 — so the calendar-system concept is visible directly in the string, not just in an object property. A plain, unannotated ISO string is always treated as (and always produced for) the `\"gregorian\"` calendar, so every existing GMT function keeps working unchanged.\n\nHebrew years can run 12 or 13 months (7 leap years per 19-year Metonic cycle insert a 13th month, Adar I, before the regular Adar); `convertDateToCalendar` resolves this the same way Temporal does internally, via ordinal month numbers (`1`-`13`) rather than fixed month names, so no month-counting logic lives in GMT itself.\n\nThree Islamic (Hijri) calendar variants are supported, and they are **not interchangeable** — each resolves the same Gregorian date to different calendar-native digits:\n\n- `\"islamic-civil\"` — a fixed 30-year leap-year cycle, Friday epoch (`1 AH = 622-07-19`).\n- `\"islamic-tabular\"` — the same style of fixed arithmetic cycle, but a Thursday epoch one day earlier (`1 AH = 622-07-18`); maps to Temporal's `\"islamic-tbla\"` calendar id internally, though GMT's own string annotation always reads `[u-ca=islamic-tabular]`.\n- `\"islamic-umalqura\"` — the Saudi civil calendar, based on Umm al-Qura University's own published tables rather than a fixed arithmetic rule. This is **not** approximated by the tabular variant's math — `convertDateToCalendar(\"2020-02-24\", \"islamic-umalqura\")` returns `\"1441-06-30[u-ca=islamic-umalqura]\"` while the same input under `\"islamic-tabular\"` returns `\"1441-07-01[u-ca=islamic-tabular]\"`, a genuine one-day divergence, not a rounding difference.\n\nFive era-based solar calendars round out the set. Unlike Hebrew and the Islamic variants, none of these needed new leap-year logic — each is either Gregorian-shaped with a different year numbering layered on top, or a distinct-but-simple solar calendar, so they were materially less work than Hebrew or Islamic:\n\n- `\"buddhist\"` — Gregorian day/month structure, a fixed `+543` year offset (`convertDateToCalendar(\"2024-10-03\", \"buddhist\")` → `\"2567-10-03[u-ca=buddhist]\"`). One continuous era, no reset.\n- `\"taiwan\"` — Gregorian day/month structure, year numbering reset at 1912 (the Republic of China's founding): `2024` → `\"0113-10-03[u-ca=taiwan]\"` (`2024 - 1911`). Dates before 1912 count backward through Temporal's inverse era instead of going negative in the way a plain offset would — `convertDateToCalendar(\"1911-12-31\", \"taiwan\")` is `\"0000-12-31[u-ca=taiwan]\"`, not `\"-0001-12-31\"`.\n- `\"persian\"` — a genuinely distinct solar calendar (not Gregorian-derived): own month lengths (6 months of 31 days, 5 of 30, a 29/30-day 12th month) and its own 33-year leap-year cycle (a year is leap when `(25 × year + 11) mod 33 < 8`), verified against `@internationalized/date`'s `PersianCalendar.ts` rather than assumed from the offset-only calendars above.\n- `\"indian\"` — the Indian National Calendar (Saka era, epoch 78 CE). Also not offset-only: its leap-year alignment follows the Gregorian rule rather than an independent cycle — the calendar's first month is 31 days in a Gregorian leap year, 30 otherwise, which is why its Saka-year boundary (`convertDateToCalendar(\"2024-03-20\", \"indian\")` → `\"1945-12-30[u-ca=indian]\"`, `convertDateToCalendar(\"2024-03-21\", \"indian\")` → `\"1946-01-01[u-ca=indian]\"`) doesn't land on a fixed day-of-year every year.\n- `\"japanese\"` — era-based: the year resets to `1` at each imperial era change (Meiji, Taishō, Shōwa, Heisei, Reiwa). This is the one calendar where GMT's annotated string carries an era-relative year instead of the calendar's plain native year, and needs its own explanation below.\n\n**Why `\"japanese\"` gets a different string shape.** Every other supported calendar's plain `year` field is exactly what belongs in GMT's annotated string — Hebrew year 5785, Taiwan year 113, and so on are each already the single number that identifies the year. Japanese is the exception: Temporal's `.year` for the `\"japanese\"` calendar stays **proleptic** across era changes (it doesn't reset — `1912-07-30`, the first day of Taishō, still reports `.year === 1912`, not `1`), because Temporal's `.year` is designed to be a stable sort key, not a display value. Using it directly would silently contradict the calendar's entire reason for existing. So `convertDateToCalendar` uses Temporal's `.eraYear` (the field that _does_ reset) paired with the era name, tagged onto the annotation as `;era=<name>`:\n\n```typescript\nconvertDateToCalendar(\"2024-10-03\", \"japanese\");\n// \"0006-10-03[u-ca=japanese;era=reiwa]\" — year 6 of the Reiwa era, not the proleptic 2024\n\nconvertDateToCalendar(\"1912-07-30\", \"japanese\");\n// \"0001-07-30[u-ca=japanese;era=taisho]\" — the first day of Taishō reads year 1\n\nconvertDateToCalendar(\"0001-07-30[u-ca=japanese;era=taisho]\", \"gregorian\");\n// \"1912-07-30\" — round-trips back through the era + eraYear pair\n```\n\n`@internationalized/date` documents pre-Meiji (before 1868-10-23) dates as unsupported for its Japanese calendar. GMT does not replicate that restriction: since `convertDateToCalendar` is built entirely on Temporal's own calendar support rather than a ported implementation, and Temporal resolves those dates correctly under a synthetic `\"japanese\"` era (with an ISO-aligned `eraYear`), rejecting them would mean writing new validation solely to reproduce another library's gap rather than an actual GMT limitation. `convertDateToCalendar(\"1800-01-01\", \"japanese\")` returns `\"1800-01-01[u-ca=japanese;era=japanese]\"` rather than `\"\"`.\n\nThree Ethiopic-family calendars round out the set, all sharing one 13-month structure (12 months of 30 days, plus a short Pagume/Nasie 13th month of 5 days, or 6 in a leap year) but differing in epoch:\n\n- `\"ethiopic\"` — the modern Ethiopian calendar, era-based like `\"japanese\"`: it resets to the Amete Mihret (\"Year of Mercy\"/Incarnation) era at its own epoch (~AD 8), so `convertDateToCalendar(\"2024-10-03\", \"ethiopic\")` returns `\"2017-01-23[u-ca=ethiopic;era=ethiopic]\"` — year 2017, not a 5-digit proleptic number. Dates before that epoch resolve under the Amete Alem (\"Year of the World\") era instead: `convertDateToCalendar(\"0001-01-01\", \"ethiopic\")` → `\"5493-05-08[u-ca=ethiopic;era=ethioaa]\"`.\n- `\"ethiopic-amete-alem\"` — the same calendar, but always counted continuously from the Amete Alem epoch (~5493 BCE), never resetting: `convertDateToCalendar(\"2024-10-03\", \"ethiopic-amete-alem\")` → `\"7517-01-23[u-ca=ethiopic-amete-alem]\"`.\n- `\"coptic\"` — the Coptic Orthodox calendar: same 13-month structure, its own epoch (the Diocletian/Martyrs era, AD 284): `convertDateToCalendar(\"2024-10-03\", \"coptic\")` → `\"1741-01-23[u-ca=coptic]\"`.\n\n**Why this family isn't built on Temporal's native `\"ethiopic\"`/`\"coptic\"` calendar ids, unlike every other calendar above.** `@js-temporal/polyfill`'s implementation of these two calendars resolves year/era by formatting the date through `Intl.DateTimeFormat` and matching the result against a hardcoded era-name table — unlike calendars with a fixed year-offset from ISO (Buddhist, Taiwan, and Ethiopic Amete Alem, which the polyfill computes with pure arithmetic and never touches `Intl` for). CLDR's era-name output for these two calendars changed between ICU versions: under ICU ≥ 78 (the version Node 22 and 24 both bundle — this is an ICU-version boundary, not a Node-major one), every read _or_ write of Temporal's `\"ethiopic\"`/`\"coptic\"` calendar ids throws a `RangeError` (`Era am (ISO year …) was not matched by any era`) — confirmed directly, not a hypothetical. `\"ethiopic-amete-alem\"` (Temporal's `\"ethioaa\"` id) is unaffected, since it has no era at all and is resolved with pure arithmetic. GMT routes around the bug rather than inheriting it: month/day are identical across all three calendars (they share one annual cycle), so `convertDateToCalendar` reads/writes them via the safe `\"ethioaa\"` calendar and computes each calendar's own displayed year (+ era, for `\"ethiopic\"`) with GMT-owned arithmetic — ported from the same `EthiopicHelper`/`CopticHelper` epoch constants `@js-temporal/polyfill` itself uses internally, just evaluated in GMT's code instead of through the ICU-dependent path. See `internal/ethiopicFamilyCalendar.ts` for the implementation.\n\n#### Calendar-aware interval and duration arithmetic\n\n`convertDateToCalendar`'s output feeds directly back into `addDate`/`subtractDate`/`diffDate`/`diffDateAsDuration` and every `Date`-suffixed `plain/interval/*` function (`intervalContainsDate`, `intervalCountDate`, `splitIntervalByUnitDate`, and the rest) — calendar-unit arithmetic (\"add 1 month\") resolves in the value's own calendar rather than being rejected or silently treated as Gregorian:\n\n```typescript\naddDate(\"5784-06-15[u-ca=hebrew]\", { months: 1 });\n// \"5784-07-15[u-ca=hebrew]\" — Adar I (a leap-only 30-day month) -> Adar\n\nintervalCountDate(\"5784-01-01[u-ca=hebrew]\", \"5785-01-01[u-ca=hebrew]\", \"month\");\n// 13 — a Hebrew leap year crosses 13 month boundaries, not 12 (ISO's answer for the same span)\n\ndiffDate(\"5784-06-15[u-ca=hebrew]\", \"5784-07-15[u-ca=hebrew]\", \"months\");\n// 1 — measured in the shared calendar when both endpoints carry the same tag\n```\n\n`utc/` and `unix/` reject a `[u-ca=...]` calendar annotation outright, and `duration/`'s `relativeTo` option accepts GMT's calendar-annotated string (not Temporal's own differently-shaped `[u-ca=...]` convention) when a calendar-aware anchor is needed:\n\n```typescript\ndurationAs(\"P1Y\", \"days\", { relativeTo: \"5784-06-15[u-ca=hebrew]\" });\n// 385 — a Hebrew leap year, not the 366 a Gregorian P1Y would total\n```\n\n`zoned/` has its own calendar-annotated grammar as of E7 (issue #152) — see \"Calendar-aware zoned datetimes\" below.\n\nInterval functions that only compare or diff absolute instants (`intervalContainsDate`, `intervalsOverlapDate`, `intervalAbutsDate`, `intervalEngulfsDate`, `isValidDateInterval`, `intervalOverlappingDaysDate`) accept endpoints tagged with *different* calendars, since ordering and day-counting don't depend on which calendar a date is expressed in. Functions that return a date *value* (`intervalUnionDate`, `intervalIntersectionDate`, `intervalDifferenceDate`, `intervalXorDate`, `intervalXorAllDate`, `mergeIntervalsDate`, `intervalDivideEquallyDate`, `intervalSplitAtDate`) require every argument to share one calendar and return their sentinel (`null`/`[]`) on a mismatch, since there's no principled way to pick which calendar the output should be expressed in. See `context/roadmap/issues/E.md`'s \"E5 outcome\" section for the full per-function audit, including the negatives (\"no change needed, verified why\") this scope boundary implies — `*DateTime`/`*Time` variants, `unix/`, and `utc/` were all confirmed unaffected rather than assumed to be.\n\n#### Calendar-aware zoned datetimes\n\nA calendar-annotated `ZonedDateTime` string adds a time, a UTC offset and an IANA zone to the\nplain grammar above:\n\n```\n<calendar-native-date>T<time><offset>[u-ca=<id>[;era=<era>]][<timeZone>]\n\n5784-06-15T14:30:00-05:00[u-ca=hebrew][America/New_York]\n0031-04-30T12:00:00+09:00[u-ca=japanese;era=heisei][Asia/Tokyo]\n7517-12-30T00:30:00-04:00[u-ca=ethiopic-amete-alem][America/Santiago]\n```\n\n`convertZonedToCalendar` produces it, and `isValidCalendarZonedDateTime` validates it:\n\n```typescript\nconvertZonedToCalendar(\"2024-10-03T14:30:45-04:00[America/New_York]\", \"hebrew\");\n// \"5785-01-01T14:30:45-04:00[u-ca=hebrew][America/New_York]\"\n\naddZoned(\"5784-06-15T14:30:00-05:00[u-ca=hebrew][America/New_York]\", { months: 1 });\n// \"5784-07-15T14:30:00-04:00[u-ca=hebrew][America/New_York]\"\n// Adar I -> Adar AND EST -> EDT, resolved in one call. No ordering of a plain/ calendar\n// operation and a zoned/ conversion produces this: do the calendar step first and DST is\n// applied to an already-resolved wall time; do the zoned step first and there is no calendar\n// left to step in.\n\naddZoned(\"0031-04-30T12:00:00+09:00[u-ca=japanese;era=heisei][Asia/Tokyo]\", { days: 1 });\n// \"0001-05-01T12:00:00+09:00[u-ca=japanese;era=reiwa][Asia/Tokyo]\" — era re-derived, never copied\n```\n\n> **The `[u-ca=...]` segment comes BEFORE `[timeZone]` — the reverse of RFC 9557.** This is\n> deliberate. GMT's digits are calendar-native (Hebrew year 5784, not ISO year 5784), so the\n> string is never valid RFC 9557 to begin with, and the `;era=` suffix is not valid RFC 9557 at\n> any ordering. Writing it in RFC order is actively dangerous:\n> `Temporal.ZonedDateTime.from(\"5784-01-01T14:30:00-05:00[America/New_York][u-ca=hebrew]\")`\n> *succeeds*, silently reading 5784 as an ISO year — a ~3760-year misparse with no error. GMT's\n> ordering makes that shape uniformly rejected instead.\n\nScope: `addZoned`, `subtractZoned`, `diffZoned`, `diffZonedAsDuration`, `convertZonedToCalendar`,\nand the `zoned/interval/*` family. Everything else in `zoned/` still rejects the annotation —\n`isValidZonedDateTime` is unchanged, so a function that has not opted in fails closed rather than\nsilently answering in the wrong calendar. `addZonedBusinessDays`/`subtractZonedBusinessDays` stay\nout by design: day-of-week is ISO-fixed in every supported calendar, so a tag would change nothing\nwhile implying it might.\n\nMixed-calendar endpoints follow the same split as `plain/`: ordering functions\n(`intervalContainsZoned`, `intervalsOverlapZoned`, `intervalAbutsZoned`, `intervalEngulfsZoned`,\n`intervalOverlappingDaysZoned`, `isValidCalendarZonedInterval`) accept them; the eight\nvalue-returning set operations require one shared calendar and return their sentinel on a\nmismatch. Measurement functions (`diffZoned`, `diffZonedAsDuration`, `intervalCountZoned`,\n`intervalLengthZoned`, `splitIntervalByUnitZoned`) measure in the endpoints' shared calendar when\nboth tags match and fall back to Gregorian otherwise — mandatory here rather than merely\nconvenient, because `Temporal.ZonedDateTime.prototype.until` throws across mismatched calendars\nfor *every* unit, including pure time units like hours.\n\n### Durations\n\n```typescript\nimport {\n  absDuration,\n  addDuration,\n  compareDurations,\n  diffDateAsDuration,\n  durationAs,\n  formatDuration,\n  getDurationSign,\n  getDurationUnit,\n  isValidDuration,\n  negateDuration,\n  normalizeDuration,\n  parseDuration,\n  subtractDuration,\n} from \"@burglekitt/gmt\";\n\nisValidDuration(\"P1DT2H30M\");\n// true\n\nparseDuration(\"P1DT2H30M\");\n// \"P1DT2H30M\"\n\nparseDuration(\"PT1.5S\", { smallestUnit: \"second\", roundingMode: \"trunc\" });\n// \"PT1S\"\n\nparseDuration(\"not a duration\");\n// \"\"\n\naddDuration(\"P1D\", \"PT2H\");\n// \"P1DT2H\"\n\nsubtractDuration(\"P1D\", \"PT2H\");\n// \"PT22H\"\n\nnormalizeDuration(\"PT90M\", { largestUnit: \"hour\" });\n// \"PT1H30M\"\n\nnormalizeDuration(\"P45D\", { largestUnit: \"month\", relativeTo: \"2024-01-01\" });\n// \"P1M14D\"\n\ngetDurationUnit(\"P1DT2H30M\", \"hours\");\n// 2 — the hours component as stored\n\ndurationAs(\"P1DT2H30M\", \"hours\");\n// 26.5 — the whole duration totalled into hours\n\ndurationAs(\"P1M\", \"days\");\n// null — a calendar unit needs a relativeTo anchor\n\ndurationAs(\"P1M\", \"days\", { relativeTo: \"2024-02-01\" });\n// 29\n\nnegateDuration(\"P1DT2H\");\n// \"-P1DT2H\"\n\nabsDuration(\"-P1DT2H\");\n// \"P1DT2H\"\n\ngetDurationSign(\"-P1DT2H\");\n// -1\n\ncompareDurations(\"PT60M\", \"PT1H\");\n// 0 — equal by length, not by spelling\n\ncompareDurations(\"P1M\", \"P30D\", { relativeTo: \"2024-01-01\" });\n// 1 — January is 31 days; relativeTo \"2024-02-01\" gives -1\n\nformatDuration(\"P1DT2H30M\", \"en-US\");\n// \"1 day, 2 hours, and 30 minutes\"\n\nformatDuration(\"P1DT2H30M\", \"en-US\", { style: \"short\" });\n// \"1 day, 2 hr, & 30 min\"\n\nformatDuration(\"P1DT0H30M\", \"en-US\");\n// \"1 day and 30 minutes\"\n\ndiffDateAsDuration(\"2024-03-10\", \"2024-04-05\", \"days\");\n// \"P26D\" — bridges diffDate to an ISO duration string instead of a single-unit number\n```\n\n`getDurationUnit` reads a component as stored, while `durationAs` converts the whole duration — `getDurationUnit(\"PT90M\", \"hours\")` is `0` but `durationAs(\"PT90M\", \"hours\")` is `1.5`. `durationAs` and `compareDurations` return `null` when a calendar unit (year/month/week) is involved without a `relativeTo` anchor, the same documented constraint `normalizeDuration` carries; `negateDuration`, `absDuration`, `getDurationSign`, and `getDurationUnit` are sign/field reads and never need one.\n\n`diffDateAsDuration`/`diffDateTimeAsDuration`/`diffZonedAsDuration`/`diffUnixAsDuration`/`diffUtcAsDuration` are sibling functions to `diffDate`/`diffDateTime`/`diffZoned`/`diffUnix`/`diffUtc`, returning an ISO 8601 duration string (sentinel `\"\"`) instead of a single-unit number (sentinel `null`). They take a single `unit` (not an array) to set the duration's `largestUnit`.\n\n### Intervals\n\nInterval and range validators are available in two API shapes — **range validators** (matching `isValidDateRange`'s `{ value1, value2, options? }` object-param shape) and **interval validators** (`(start, end)` positional args, `start <= end` always):\n\n```typescript\nimport {\n  isValidDateInterval,\n  isValidTimeInterval,\n  isValidDateTimeInterval,\n  isValidDateRange,\n  isValidTimeRange,\n  isValidDateTimeRange,\n  isValidUtcRange,\n  isValidUnixRange,\n  isValidZonedRange,\n  isValidUtcInterval,\n  isValidUnixInterval,\n  isValidZonedInterval,\n} from \"@burglekitt/gmt\";\n\n// Interval validators — positional args, start <= end\nisValidDateInterval(\"2024-01-01\", \"2024-12-31\");\n// true\n\nisValidTimeInterval(\"09:00:00\", \"17:00:00\");\n// true\n\nisValidDateTimeInterval(\"2024-01-01T10:00:00\", \"2024-12-31T23:59:59\");\n// true\n\nisValidZonedInterval(\n  \"2024-01-01T10:00:00+00:00[UTC]\",\n  \"2024-12-31T23:59:59+00:00[UTC]\",\n);\n// true\n\n// Range validators — object params, with optional allowEqual\nisValidDateRange({ value1: \"2024-01-01\", value2: \"2024-12-31\" });\n// true\n\nisValidTimeRange({ value1: \"09:00:00\", value2: \"17:00:00\" });\n// true\n\nisValidZonedRange({\n  value1: \"2024-01-01T10:00:00+00:00[UTC]\",\n  value2: \"2024-12-31T23:59:59+00:00[UTC]\",\n});\n// true\n```\n\nInterval containment checks (`intervalContains*`) test whether a point or inner interval falls within an outer interval. Each supports two modes via an optional fourth argument:\n\n- 3-arg: `intervalContains(start, end, point)` — true when `start <= point <= end`\n- 4-arg: `intervalContains(start, end, innerStart, innerEnd)` — true when the inner interval is fully contained\n\n```typescript\nimport {\n  intervalContainsDate,\n  intervalContainsTime,\n  intervalContainsDateTime,\n  intervalContainsUtc,\n  intervalContainsUnix,\n  intervalContainsZoned,\n} from \"@burglekitt/gmt\";\n\n// Point-in-interval (3-arg)\nintervalContainsDate(\"2024-01-01\", \"2024-12-31\", \"2024-06-15\");\n// true\n\nintervalContainsTime(\"09:00:00\", \"17:00:00\", \"12:00:00\");\n// true\n\nintervalContainsUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n  \"2024-06-15T12:00:00Z\",\n);\n// true\n\nintervalContainsUnix(0, 1700000000, 170000000);\n// true\n\nintervalContainsZoned(\n  \"2024-01-01T00:00:00+00:00[UTC]\",\n  \"2024-12-31T23:59:59+00:00[UTC]\",\n  \"2024-06-15T12:00:00+00:00[UTC]\",\n);\n// true\n\n// Interval-in-interval (4-arg)\nintervalContainsDate(\"2024-01-01\", \"2024-12-31\", \"2024-03-01\", \"2024-09-01\");\n// true\n\nintervalContainsTime(\"09:00:00\", \"17:00:00\", \"10:00:00\", \"16:00:00\");\n// true\n```\n\nAll interval containment checks return `false` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalsOverlap*` checks whether two intervals share any time. Returns `true` when intervals overlap, `false` when they are disjoint or only adjacent (touching at a single instant with no shared time):\n\n```typescript\nimport {\n  intervalsOverlapDate,\n  intervalsOverlapTime,\n  intervalsOverlapDateTime,\n  intervalsOverlapUtc,\n  intervalsOverlapUnix,\n  intervalsOverlapZoned,\n} from \"@burglekitt/gmt\";\n\nintervalsOverlapDate(\"2024-01-01\", \"2024-06-30\", \"2024-04-01\", \"2024-12-31\");\n// true\n\nintervalsOverlapDate(\"2024-01-01\", \"2024-06-30\", \"2024-06-30\", \"2024-12-31\");\n// false (adjacent, no shared time)\n\nintervalsOverlapUnix(0, 1700000000, 1000000, 2000000);\n// true\n\nintervalsOverlapUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-06-30T23:59:59Z\",\n  \"2024-04-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n);\n// true\n```\n\nAll overlap checks return `false` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalIntersection*` returns the overlapping span of two intervals, or `null` when they do not overlap. Adjacent intervals (sharing one instant) count as overlapping and return a single-point span:\n\n```typescript\nimport {\n  intervalIntersectionDate,\n  intervalIntersectionTime,\n  intervalIntersectionDateTime,\n  intervalIntersectionUtc,\n  intervalIntersectionUnix,\n  intervalIntersectionZoned,\n} from \"@burglekitt/gmt\";\n\nintervalIntersectionDate(\n  \"2024-01-01\",\n  \"2024-06-30\",\n  \"2024-04-01\",\n  \"2024-12-31\",\n);\n// { start: \"2024-04-01\", end: \"2024-06-30\" }\n\nintervalIntersectionDate(\n  \"2024-01-01\",\n  \"2024-06-30\",\n  \"2024-06-30\",\n  \"2024-12-31\",\n);\n// { start: \"2024-06-30\", end: \"2024-06-30\" } (adjacent, shares one instant)\n\nintervalIntersectionDate(\n  \"2024-01-01\",\n  \"2024-06-30\",\n  \"2024-07-01\",\n  \"2024-12-31\",\n);\n// null (disjoint)\n\nintervalIntersectionUnix(0, 1700000000, 1000000, 2000000);\n// { start: 1000000, end: 1700000000 }\n\nintervalIntersectionUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-06-30T23:59:59Z\",\n  \"2024-04-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n);\n// { start: \"2024-04-01T00:00:00Z\", end: \"2024-06-30T23:59:59Z\" }\n```\n\nAll intersection functions return `null` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalOverlappingDays*` returns how many distinct calendar dates two intervals share — the numeric counterpart to `intervalIntersection*`'s span. Counting is inclusive of both endpoints of the closed intersection `[max(aStart, bStart), min(aEnd, bEnd)]`, so `intervalOverlappingDaysDate(\"2024-01-01\", \"2024-01-01\", \"2024-01-01\", \"2024-01-01\")` is `1`, not `0`. There is no `Time` variant — `PlainTime` has no calendar, so a day count is undefined for it:\n\n```typescript\nimport {\n  intervalOverlappingDaysDate,\n  intervalOverlappingDaysDateTime,\n  intervalOverlappingDaysUtc,\n  intervalOverlappingDaysUnix,\n  intervalOverlappingDaysZoned,\n} from \"@burglekitt/gmt\";\n\nintervalOverlappingDaysDate(\n  \"2024-01-01\",\n  \"2024-06-30\",\n  \"2024-04-01\",\n  \"2024-12-31\",\n);\n// 91\n\nintervalOverlappingDaysDate(\n  \"2024-01-01\",\n  \"2024-06-30\",\n  \"2024-06-30\",\n  \"2024-12-31\",\n);\n// 1 (adjacent, shares one date)\n\nintervalOverlappingDaysDate(\n  \"2024-01-01\",\n  \"2024-06-30\",\n  \"2024-07-01\",\n  \"2024-12-31\",\n);\n// 0 (disjoint)\n\nintervalOverlappingDaysUnix(0, 172800000, 86400000, 259200000, {\n  timeZone: \"UTC\",\n});\n// 2\n```\n\nReturns `0` when the intervals do not overlap (a well-defined answer, not invalid input) and `null` on invalid input, including an inverted interval (`start > end`). `intervalOverlappingDaysZoned` and `intervalOverlappingDaysUnix` count days in `aStart`'s time zone (`intervalOverlappingDaysUnix` defaults to the system time zone, overridable via `{ timeZone }`) — the same rule `intervalCountZoned`/`intervalCountUnix` use — so `intervalOverlappingDaysZoned` is **not commutative** when the two intervals carry different zones: swapping the arguments can change the answer.\n\nThis deliberately diverges from date-fns's `getOverlappingDaysInIntervals`, which rounds up elapsed 24-hour periods instead of counting calendar dates — its own doc example (`Jan 10–20` vs `Jan 17–21`) returns `3` there and `4` here. To reproduce date-fns's number, compose `intervalIntersection*` with `intervalCount*`:\n\n```typescript\nconst span = intervalIntersectionDate(aStart, aEnd, bStart, bEnd);\nspan ? intervalCountDate(span.start, span.end, \"day\") : 0; // date-fns semantics\n```\n\n`intervalUnion*` returns the combined span of two overlapping or adjacent intervals, or `null` when they are disjoint with a gap. Adjacent intervals (sharing one instant) count as mergeable:\n\n```typescript\nimport {\n  intervalUnionDate,\n  intervalUnionTime,\n  intervalUnionDateTime,\n  intervalUnionUtc,\n  intervalUnionUnix,\n  intervalUnionZoned,\n} from \"@burglekitt/gmt\";\n\nintervalUnionDate(\"2024-01-01\", \"2024-06-30\", \"2024-04-01\", \"2024-12-31\");\n// { start: \"2024-01-01\", end: \"2024-12-31\" }\n\nintervalUnionDate(\"2024-01-01\", \"2024-06-30\", \"2024-06-30\", \"2024-12-31\");\n// { start: \"2024-01-01\", end: \"2024-12-31\" } (adjacent, merged)\n\nintervalUnionDate(\"2024-01-01\", \"2024-06-30\", \"2024-07-01\", \"2024-12-31\");\n// null (disjoint with a gap)\n\nintervalUnionUnix(0, 1700000000, 1000000, 2000000);\n// { start: 0, end: 1700000000 }\n\nintervalUnionUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-06-30T23:59:59Z\",\n  \"2024-04-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n);\n// { start: \"2024-01-01T00:00:00Z\", end: \"2024-12-31T23:59:59Z\" }\n```\n\nAll union functions return `null` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalDifference*` returns the portion(s) of interval A not covered by interval B, as an array of `{ start, end }` records:\n\n```typescript\nimport {\n  intervalDifferenceDate,\n  intervalDifferenceTime,\n  intervalDifferenceDateTime,\n  intervalDifferenceUtc,\n  intervalDifferenceUnix,\n  intervalDifferenceZoned,\n} from \"@burglekitt/gmt\";\n\nintervalDifferenceDate(\"2024-01-01\", \"2024-12-31\", \"2024-06-01\", \"2024-07-01\");\n// [{ start: \"2024-01-01\", end: \"2024-05-31\" }, { start: \"2024-07-02\", end: \"2024-12-31\" }]\n\nintervalDifferenceDate(\"2024-01-01\", \"2024-12-31\", \"2024-01-01\", \"2024-12-31\");\n// [] (B fully covers A)\n\nintervalDifferenceUnix(0, 1700000000, 1000000, 2000000);\n// [{ start: 0, end: 999999 }, { start: 2000001, end: 1700000000 }]\n\nintervalDifferenceUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n  \"2024-06-01T00:00:00Z\",\n  \"2024-07-01T00:00:00Z\",\n);\n// [{ start: \"2024-01-01T00:00:00Z\", end: \"2024-05-31T23:59:59Z\" }, { start: \"2024-07-02T00:00:00Z\", end: \"2024-12-31T23:59:59Z\" }]\n```\n\nAll difference functions return `[]` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalXor*` returns the symmetric difference of two intervals — the portions covered by exactly one of them, not both — as an array of `{ start, end }` records:\n\n```typescript\nimport {\n  intervalXorDate,\n  intervalXorTime,\n  intervalXorDateTime,\n  intervalXorUtc,\n  intervalXorUnix,\n  intervalXorZoned,\n} from \"@burglekitt/gmt\";\n\nintervalXorDate(\"2024-01-01\", \"2024-06-30\", \"2024-04-01\", \"2024-12-31\");\n// [{ start: \"2024-01-01\", end: \"2024-03-31\" }, { start: \"2024-07-01\", end: \"2024-12-31\" }]\n\nintervalXorDate(\"2024-01-01\", \"2024-06-30\", \"2024-06-30\", \"2024-12-31\");\n// [{ start: \"2024-01-01\", end: \"2024-06-29\" }, { start: \"2024-07-01\", end: \"2024-12-31\" }] (adjacent)\n\nintervalXorUnix(0, 1700000000, 1000000, 2000000);\n// [{ start: 0, end: 999999 }, { start: 2000001, end: 1700000000 }]\n\nintervalXorUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-06-30T23:59:59Z\",\n  \"2024-04-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n);\n// [{ start: \"2024-01-01T00:00:00Z\", end: \"2024-03-31T23:59:59Z\" }, { start: \"2024-07-01T00:00:00Z\", end: \"2024-12-31T23:59:59Z\" }]\n```\n\nAll xor functions return `[]` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalAbuts*` checks whether two intervals are exactly adjacent — one's end equals the other's start with zero gap and zero overlap:\n\n```typescript\nimport {\n  intervalAbutsDate,\n  intervalAbutsTime,\n  intervalAbutsDateTime,\n  intervalAbutsUtc,\n  intervalAbutsUnix,\n  intervalAbutsZoned,\n} from \"@burglekitt/gmt\";\n\nintervalAbutsDate(\"2024-01-01\", \"2024-06-30\", \"2024-06-30\", \"2024-12-31\");\n// true\n\nintervalAbutsDate(\"2024-01-01\", \"2024-06-29\", \"2024-06-30\", \"2024-12-31\");\n// false (one-day gap)\n\nintervalAbutsDate(\"2024-01-01\", \"2024-06-30\", \"2024-04-01\", \"2024-12-31\");\n// false (overlap)\n\nintervalAbutsUnix(0, 1000000, 1000000, 2000000);\n// true\n\nintervalAbutsUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-06-30T23:59:59Z\",\n  \"2024-06-30T23:59:59Z\",\n  \"2024-12-31T23:59:59Z\",\n);\n// true\n```\n\nAll abuts checks return `false` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`intervalEngulfs*` checks whether interval B is fully contained within interval A — every instant of B falls within A. Equivalent to the 4-argument `intervalContains*` mode:\n\n```typescript\nimport {\n  intervalEngulfsDate,\n  intervalEngulfsTime,\n  intervalEngulfsDateTime,\n  intervalEngulfsUtc,\n  intervalEngulfsUnix,\n  intervalEngulfsZoned,\n} from \"@burglekitt/gmt\";\n\nintervalEngulfsDate(\"2024-01-01\", \"2024-12-31\", \"2024-06-01\", \"2024-07-01\");\n// true\n\nintervalEngulfsDate(\"2024-01-01\", \"2024-12-31\", \"2024-01-01\", \"2024-12-31\");\n// true (equal intervals)\n\nintervalEngulfsDate(\"2024-06-01\", \"2024-07-01\", \"2024-01-01\", \"2024-12-31\");\n// false\n\nintervalEngulfsUnix(0, 1700000000, 1000000, 2000000);\n// true\n\nintervalEngulfsUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-12-31T23:59:59Z\",\n  \"2024-06-01T00:00:00Z\",\n  \"2024-07-01T00:00:00Z\",\n);\n// true\n```\n\nAll engulfs checks return `false` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-finite values for Unix).\n\n`splitIntervalByUnit*` splits an interval into sub-intervals of `amount × unit`, returning an array of `{ start, end }` records. The final sub-interval is trimmed so its `end` never exceeds the original `end`:\n\n```typescript\nimport {\n  splitIntervalByUnitDate,\n  splitIntervalByUnitTime,\n  splitIntervalByUnitDateTime,\n  splitIntervalByUnitUtc,\n  splitIntervalByUnitUnix,\n  splitIntervalByUnitZoned,\n} from \"@burglekitt/gmt\";\n\nsplitIntervalByUnitDate(\"2024-01-01\", \"2024-01-10\", \"day\", 2);\n// [{ start: \"2024-01-01\", end: \"2024-01-03\" }, { start: \"2024-01-03\", end: \"2024-01-05\" }, { start: \"2024-01-05\", end: \"2024-01-07\" }, { start: \"2024-01-07\", end: \"2024-01-09\" }, { start: \"2024-01-09\", end: \"2024-01-10\" }]\n\nsplitIntervalByUnitUtc(\n  \"2024-01-01T00:00:00Z\",\n  \"2024-01-02T00:00:00Z\",\n  \"hour\",\n  6,\n);\n// [{ start: \"2024-01-01T00:00:00Z\", end: \"2024-01-01T06:00:00Z\" }, { start: \"2024-01-01T06:00:00Z\", end: \"2024-01-01T12:00:00Z\" }, { start: \"2024-01-01T12:00:00Z\", end: \"2024-01-01T18:00:00Z\" }, { start: \"2024-01-01T18:00:00Z\", end: \"2024-01-02T00:00:00Z\" }]\n\nsplitIntervalByUnitUnix(0, 86400000, \"hour\", 6);\n// [{ start: 0, end: 21600000 }, { start: 21600000, end: 43200000 }, { start: 43200000, end: 64800000 }, { start: 64800000, end: 86400000 }]\n```\n\nAll split functions return `[]` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, non-positive amount, unsupported unit, or a unit that has no effect on the target type).\n\n`intervalCount*` returns how many calendar-unit boundaries an interval crosses — the number of units the half-open interval `[start, end)` touches. This is distinct from `diff*`, which measures exact elapsed duration: an interval from 23:59 to 00:01 is two minutes long but touches two days:\n\n```typescript\nimport {\n  intervalCountDate,\n  intervalCountTime,\n  intervalCountDateTime,\n  intervalCountUtc,\n  intervalCountUnix,\n  intervalCountZoned,\n} from \"@burglekitt/gmt\";\n\nintervalCountDateTime(\"2024-01-01T23:59:00\", \"2024-01-02T00:01:00\", \"day\");\n// 2 (two minutes long, but two days touched)\n\nintervalCountDate(\"2024-01-01\", \"2024-01-03\", \"day\");\n// 2 (the end boundary is excluded)\n\nintervalCountDate(\"2024-01-15\", \"2024-03-10\", \"month\");\n// 3\n\nintervalCountTime(\"12:30:00\", \"13:00:00\", \"hour\");\n// 1\n\nintervalCountZoned(\n  \"2024-03-10T00:00:00-05:00[America/New_York]\",\n  \"2024-03-11T00:00:00-04:00[America/New_York]\",\n  \"hour\",\n);\n// 23 (the spring-forward local day is 23 hours long)\n\nintervalCountUnix(0, 86400000, \"hour\");\n// 24\n```\n\nZero-length intervals count `1` when they sit mid-unit and `0` when they sit exactly on a unit boundary — `intervalCountDate(\"2024-01-15\", \"2024-01-15\", \"month\")` is `1`, while `intervalCountDate(\"2024-01-01\", \"2024-01-01\", \"month\")` is `0`. Weeks start on Monday (ISO 8601), singular and plural units are interchangeable (`\"day\"` and `\"days\"`), and `intervalCountUnix` uses the system timeZone for calendar boundaries (consistent with `addUnix`). All count functions return `null` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, unsupported unit, or a unit that has no effect on the target type).\n\n`intervalLength*` is `intervalCount*`'s exact-duration counterpart — it answers \"how long is this interval\" as a real, possibly fractional number, rather than \"how many boundaries does it touch\":\n\n```typescript\nimport {\n  intervalLengthDate,\n  intervalLengthTime,\n  intervalLengthDateTime,\n  intervalLengthUtc,\n  intervalLengthUnix,\n  intervalLengthZoned,\n} from \"@burglekitt/gmt\";\n\nintervalLengthDateTime(\"2024-01-01T23:59:00\", \"2024-01-02T00:01:00\", \"day\");\n// 0.001388888888888889 (the same interval intervalCount* reports as 2 day boundaries)\n\nintervalLengthDate(\"2024-01-01\", \"2024-01-16\", \"month\");\n// 0.4838709677419355 (15 of January's 31 days)\n\nintervalLengthZoned(\n  \"2024-03-10T00:00:00-05:00[America/New_York]\",\n  \"2024-03-11T00:00:00-04:00[America/New_York]\",\n  \"hour\",\n);\n// 23 (spring-forward local day is 23 real hours)\n```\n\n`intervalLength*` uses `Temporal.Duration.prototype.total`, so calendar units (month, year) resolve against the interval's own `start` rather than truncating, and zoned/unix/utc variants are DST-aware the same way `intervalCount*` is. Returns `0` for a zero-length interval, and `null` on invalid input (wrong type, malformed strings, leap seconds, inverted intervals, unsupported unit).\n\n`intervalDivideEqually*` splits an interval into `n` equal-length sub-intervals, and `intervalSplitAt*` splits an interval at arbitrary points instead of by count:\n\n```typescript\nimport {\n  intervalDivideEquallyDate,\n  intervalSplitAtDate,\n} from \"@burglekitt/gmt\";\n\nintervalDivideEquallyDate(\"2024-01-01\", \"2024-01-05\", 4);\n// [{ start: \"2024-01-01\", end: \"2024-01-02\" }, { start: \"2024-01-02\", end: \"2024-01-03\" }, { start: \"2024-01-03\", end: \"2024-01-04\" }, { start: \"2024-01-04\", end: \"2024-01-05\" }]\n\nintervalSplitAtDate(\"2024-01-01\", \"2024-01-10\", [\"2024-01-07\", \"2024-01-03\"]);\n// [{ start: \"2024-01-01\", end: \"2024-01-03\" }, { start: \"2024-01-03\", end: \"2024-01-07\" }, { start: \"2024-01-07\", end: \"2024-01-10\" }]\n```\n\n`n` must be a positive integer (`[]` otherwise); `n === 1` returns the original interval unchanged, and a zero-length interval returns `n` identical zero-length sub-intervals. Non-fractional types (`PlainDate`) round internal boundaries to the nearest whole unit; every other variant is exact, computed from total elapsed nanoseconds (`intervalDivideEquallyZoned` splits DST-crossing intervals by real elapsed time, not local clock time). `intervalSplitAt*` sorts its `points` internally — they need not be pre-sorted — and drops points outside `[start, end]` or exactly on a boundary, since those cannot introduce a new sub-interval; an empty or all-dropped `points` array returns `[{ start, end }]` unsplit.\n\n`mergeIntervals*` and `intervalXorAll*` are the list-form generalizations of `intervalUnion*` and `intervalXor*`, which are pairwise only — each takes a single array of `{ start, end }` records instead of two flat intervals:\n\n```typescript\nimport { mergeIntervalsDate, intervalXorAllDate } from \"@burglekitt/gmt\";\n\nmergeIntervalsDate([\n  { start: \"2024-01-01\", end: \"2024-01-10\" },\n  { start: \"2024-01-05\", end: \"2024-01-15\" },\n]);\n// [{ start: \"2024-01-01\", end: \"2024-01-15\" }]\n\nintervalXorAllDate([\n  { start: \"2024-01-01\", end: \"2024-01-10\" },\n  { start: \"2024-01-05\", end: \"2024-01-15\" },\n  { start: \"2024-01-08\", end: \"2024-01-20\" },\n]);\n// [{ start: \"2024-01-01\", end: \"2024-01-04\" }, { start: \"2024-01-08\", end: \"2024-01-10\" }, { start: \"2024-01-16\", end: \"2024-01-20\" }]\n```\n\n`mergeIntervals*` collapses overlapping or adjacent intervals (shared endpoint) into the minimum non-overlapping set. `intervalXorAll*` returns the set covered by an odd number of the input intervals — for exactly two intervals the result is identical to the pairwise `intervalXor*`, and two identical intervals cancel out to `[]`. All four return `[]` for an empty list or on invalid input.\n\n`intervalFromDuration*` constructs an interval from a single point plus an ISO 8601 duration, anchored at either end — Luxon's `Interval.after`/`Interval.before` as one function with an `anchor` param instead of two:\n\n```typescript\nimport {\n  intervalFromDurationDate,\n  intervalFromDurationTime,\n  intervalFromDurationDateTime,\n  intervalFromDurationUtc,\n  intervalFromDurationUnix,\n  intervalFromDurationZoned,\n} from \"@burglekitt/gmt\";\n\nintervalFromDurationDate(\"2024-01-01\", \"P1M\", \"start\");\n// { start: \"2024-01-01\", end: \"2024-02-01\" }\n\nintervalFromDurationDate(\"2024-02-01\", \"P1M\", \"end\");\n// { start: \"2024-01-01\", end: \"2024-02-01\" }\n\nintervalFromDurationZoned(\n  \"2024-03-09T02:30:00-05:00[America/New_York]\",\n  \"P1D\",\n  \"start\",\n);\n// { start: \"2024-03-09T02:30:00-05:00[America/New_York]\", end: \"2024-03-10T03:30:00-04:00[America/New_York]\" } (spring-forward day is 23 hours long)\n\nintervalFromDurationTime(\"12:00:00\", \"P1D\", \"start\");\n// null (PlainTime has no calendar — a date-unit duration needs a rela","readmeFilename":"README.md"}