{"_id":"@senators/bifrost","_rev":"43-2b45a15f9828aee389ba10e04d58ecb6","name":"@senators/bifrost","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.9":{"name":"@senators/bifrost","version":"1.0.9","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.0.9","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"baabf6227d6fb03e8e0d14cfd8a1c52e0d18b877","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.0.9.tgz","fileCount":9,"integrity":"sha512-ARNg2ALYkS3av48/ofHHhJLjrOmrkCKGOVfZvRw/eoiHId96LWhvJQTfipjX9i88NHmNNjsKV2BzVlVOA6CNJA==","signatures":[{"sig":"MEQCID6QJYqle3Ix3JF5AzNDmoHjzQrJuDsI4mqu7abFqP4iAiBTqSZHCShDBmYJSORaRRDt8t+e6XbENURRl0NdhU5xjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100798},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"9f385a2c665ea3841f4af44827f810eca7a10d6a","private":false,"scripts":{"git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint format","format":"prettier --write package.json rolldown.config.ts .prettierrc.json .oxlintrc.json ./src","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.5.2","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"24.5.0","_hasShrinkwrap":false,"devDependencies":{"git-cz":"latest","oxlint":"latest","prettier":"next","rolldown":"nightly","@types/node":"latest","npm-run-all2":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.0.9_1755832810076_0.23534566761153863","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@senators/bifrost","version":"1.1.0","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.1.0","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"5554bfd21e2bc822987a51a445fd5a14db4e3efb","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.1.0.tgz","fileCount":9,"integrity":"sha512-eHDr7bama1zJJpopNat7nRGoAT/Jwu2kU9NmnDHof8s9kSGVWJt/p5CSahRTnRRrIxYLC4jpjhQ4OYT0fcSEag==","signatures":[{"sig":"MEUCIDCW18YEE2r1wJ/WIETMuZIG3knPXtfddDcioL+dr0QcAiEAiqKTTBE008OWv4Kb1B1+t76wBuoD2XPLOTLgVIFKGr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96121},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"921ff082f3e22db273a5ff1c2a63f5d93d618399","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.8.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.1.0_1772413191686_0.5437609875445562","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@senators/bifrost","version":"1.1.2","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.1.2","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"6f3a45ba5be3940e6b1dc661da55f9f726025a14","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.1.2.tgz","fileCount":9,"integrity":"sha512-dVwAp+NA6RkHrzhb2GPfeWgcEd28jNVCSqX62OPPbxoydQcn8iUmzFMI6TjMLa9Pd1yXsm7tiBYZVe/7yQyaUw==","signatures":[{"sig":"MEQCIGzDyzzkrvLWZD813zBMfmQZEPFzDjqi0rYMYRgFWTKfAiAfhYFhJvgcxx2swVW+U45M3hTS9U1Xoucz9yA5ln87cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96374},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"366d6af540dca60a5aaf4cf66e01ad454de4963d","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.8.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.1.2_1773174689974_0.8236166078846494","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@senators/bifrost","version":"1.1.5","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.1.5","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"1adc691c7c0dc2e8213c157c7fe480fb7a6e13b3","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.1.5.tgz","fileCount":7,"integrity":"sha512-0xFVu+eB42vXTDGIB6/u75/RdSjA6nxFTzMf1wT51gxTq2yxqR8UQdRiUC5CwH9etkuo3gP7UUVlsRKy6N4WMg==","signatures":[{"sig":"MEUCIQD3BYYQoVVC0sjeoTd6E00YNBOPtkgWOitYZanpUymqFAIgKsdtbwqOyn6DKn/4WaHtgfmO6A92+ojnhARjJKMatWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83514},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"c148b77ed9136bf1f0b75d39e8a9cb60f054648e","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.1.5_1773176614820_0.2655161434082258","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@senators/bifrost","version":"1.1.6","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.1.6","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"ae3080474c3fdcf529dc1db7f506c9e72f7b6f66","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.1.6.tgz","fileCount":7,"integrity":"sha512-/iqWcDUYHUpkp/Dmu1r4mpP45Uj8GOC6822undvChKhLbEnBHwWYcGYFsyjTp3urLX1ZwNZHCdBKVa0bx27e1A==","signatures":[{"sig":"MEQCIDYmxfHUGyLh1kYERL10C0V47eQFKMoDmG62l8bkTz9iAiBI0NbKpdR29/ITx5OU2JWtrOxPeKuZFU2i0gz2magXNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83873},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"57722acaf3bc636015ecc0d86f49ce346f7ed5a5","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.1.6_1774518759273_0.2366261984379614","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@senators/bifrost","version":"1.1.7","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.1.7","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"2b95f7c2686299af3ec266bd10a4f56e9efbe46e","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.1.7.tgz","fileCount":7,"integrity":"sha512-h47gG82QE5tq4RuzzAi+JszSpEZdhd/oDUWTnp5Z3kCUYSPsdEtzSWgz06mfvCaVAXVkzLzwdHal7FiumZdyEg==","signatures":[{"sig":"MEQCIATdH3AYRLSeor4849xEIQC0zNYV+eJQ9G5TdCPcX3cuAiAmeLi4dBm+6F+5p8PJeE47SeOPehCoEo+uVyi5G5+6BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83873},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"2dee25d2d6cc352bd2511758b1f98a29fb9f66f7","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.1.7_1774884569517_0.2974087241583714","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@senators/bifrost","version":"1.2.0","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.2.0","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"bf038e3c8e3e4a73c008805c19d2bf61754becee","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.2.0.tgz","fileCount":7,"integrity":"sha512-I073N4LSKSRJZF8gkG59LPf1vEHv/LgM4eMtWduilaXNpFAupMdh4Bl8XplLRoFG2Q0nMq/kYdaqkpArjH0Dng==","signatures":[{"sig":"MEUCIAEhAdp5owQa/bkt9MogtJhMEv06NDX+1RyvA9k2WcChAiEAnI5t/z3ZUxvXkRq66G4CvvW3RRi7KZvNsA4i0voLczM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83873},"type":"module","exports":{".":{"types":"./out/main.d.ts","default":"./out/main.js"}},"gitHead":"02a07e4fb67c72e97248161c2ad9bef6ddf0de11","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.2.0_1774886667186_0.1522598377787847","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@senators/bifrost","version":"1.2.1","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.2.1","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"2132e7c55020be44824420963826c5694877ff1a","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.2.1.tgz","fileCount":7,"integrity":"sha512-C8NNz4lps4hjkig8ce+q6O0D8gXkB0ngu859VybHpk9uKkiFB3A6w/VVlD/GQeDKTyp2nIQ6YXONCKcJ+jjy5A==","signatures":[{"sig":"MEQCIDnUI/fiU/AAuZwIeQ6ZWjBSp1YNtaiF2CdQg7wtdMsXAiBkD9J0CecozEJP73cu9wbHuY6p9AwcxcybGFJYeabVgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83991},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"97b539804c93c3abe40a17af825a74fd3e61d731","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.2.1_1777203246079_0.16057523320019862","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@senators/bifrost","version":"1.3.0","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@1.3.0","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"3879e05e230020d4c8d66178628c20dca2571829","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-1.3.0.tgz","fileCount":7,"integrity":"sha512-8bHyGqh6RgNSuxIASp1W5vN+759UDLeW7Ig0vF9keNGhdUVFoI2gcsU0AikmssqOACi+T7q6BK+qi+LsYYqeLA==","signatures":[{"sig":"MEUCIHjRlBNBYKTUbhwCTa4jQ9t4yJ+GSMZXi7r79FlFaYEXAiEAoUNHPdpBNBzpYIccf45N/5WSFsE04mOGcbJAudmmJrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85371},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"98d0f6578e39549bdc1c1ed3e7f6f14e77a8acc1","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_1.3.0_1777205713502_0.0632791284200298","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@senators/bifrost","version":"2.0.0","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.0.0","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"7199c8797fcae885dd67c51e80c503a044a768b6","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.0.0.tgz","fileCount":7,"integrity":"sha512-cObK8sq0RYe5bNLiRX4QZAGjL/7QR4a8wiisFGqYKNxr3Z5RV9yQk6GTHNBlzZLVYTyAkw73rvzsUHVgjzP0Hw==","signatures":[{"sig":"MEUCIQD8cP6mYQs+ria7doizL0TA7EH55atgaq8RdQ17aK6MyQIgOjGGgGQMA1/+tpQXJdITmqPRhx/e0WX9qdWpehpSRzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91896},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"31ba0674d7e7688af5ad7259393426a28404aec5","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.0.0_1777220749714_0.6538148626897049","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@senators/bifrost","version":"2.1.0","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.1.0","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"c9b387aa46828140eca24af520ba7b65d39e9567","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.1.0.tgz","fileCount":7,"integrity":"sha512-LEdLzxmMN3P0uUTxG3RAffuhZeQWQZiVL5t7EeLPag2DiTVHlNaSE92P5vHw9+N2C1vM76QX7Mna+D8RAHVQDg==","signatures":[{"sig":"MEUCIEHfEfEA/fk6lK4mnVuiUv9bArK+OSwYzXMBTmkr+muoAiEAp/DQgIilDoLlobNeUnSPo/XNnfMmhGrQfZy2Xjq+1X4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95141},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"b9ba475cf25de59fd913388e9162cd4caf855988","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.1.0_1777228779331_0.31782094459229304","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@senators/bifrost","version":"2.1.1","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.1.1","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"bdb223fdbd45d6c218b16eb2a5f765eea2c9b412","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.1.1.tgz","fileCount":7,"integrity":"sha512-l+MfKgj3Xn6aXNZhCD0qqT/WnK2FONtQDdplBg1WvNN97MueSEH9GYl7rJTncchnFDKb6mvH4g+CQeaLxK3vDA==","signatures":[{"sig":"MEQCIFfO5weN8Ag5hXWGe6SkFBizNeoA3MJvKEvMGGRuhVHnAiBq6IWbFQIwCzixXUD8E0RUFjucmx8SSlAZjZAvjTZtdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95918},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"d708e618b02b4ccf50033e83452004f7ee2ab444","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.1.1_1777394361721_0.02306425527778333","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@senators/bifrost","version":"2.1.2","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.1.2","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"39fe5950e2fbbe5350687f1c5869edd93f46fd2c","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.1.2.tgz","fileCount":7,"integrity":"sha512-yFWEobdoSTMyrz571BiPyBK9LPqGxesQw2K6FnnrzZa0wK6B0i9BfEtwO8Fy2dpHVWncvO1SZdSxwsQ+D7Bh7g==","signatures":[{"sig":"MEUCIAjNyqWY5zeO0J4KTPRPaAuTTa4YlKR0uj8ivV3L/pzTAiEA/lHB1RtC0Kpb/YbdpHElbYEBbg/QiES9O74vqgQqJ2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95768},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"25a40886b618331bc7d2b1bb77b344f9b11b860c","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.1.2_1777401350524_0.9688287299501865","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@senators/bifrost","version":"2.1.3","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.1.3","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"719daf0a6471e60a96531b54558d3bc783ae55d2","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.1.3.tgz","fileCount":7,"integrity":"sha512-wEWuXMRv7QGbtD8FSHJzr8NPa5noUcm1yCVXHAFDADMvrKVRllk21BSfG3qR13aFdmJstMWR9wPp7OAom2jOlg==","signatures":[{"sig":"MEQCIBJICI93tKTzJMapNxlzys3qWg6un3NiA9VbAZ0nnT13AiAV4ic/8caV85eQH2fRplaY5eD8CZESYLWMbDsaZMStMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98884},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"797c68910f97b1e9fd997e6149161edd60d0b0dd","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.1.3_1777455319681_0.08001835343065578","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@senators/bifrost","version":"2.1.4","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.1.4","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"471f8d6d728d19841e6d98d7cf318a0716362ea2","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.1.4.tgz","fileCount":7,"integrity":"sha512-/edIdv1HbhupeByqub7wsl7fIB6wKxk+1B3DfCX9M8b3t1MId+m8WChHY5ZGV11faj5hC11JElYLrg64fxe1KA==","signatures":[{"sig":"MEQCID6U9bOED37k7uXXYnbofbUSp9bTtSuXT1Nzrwdhdy6+AiAiM6Cs8F3ipc431V9SOyd7lGnNojugUIz5LzZuB3LoTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98884},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"edb86d19d1e3303b8e95e3f5f6eafd84596732c7","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.1.4_1777455521746_0.005703234451438277","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@senators/bifrost","version":"2.1.5","keywords":["@senators/bifrost","senators","bifrost","ogame"],"author":{"name":"AhMisty"},"license":"MIT","_id":"@senators/bifrost@2.1.5","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"homepage":"https://github.com/AhMisty/senators-bifrost","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"782688d816e81f31d2c969ccfd5743edf311d81e","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-2.1.5.tgz","fileCount":7,"integrity":"sha512-j/iWdllE2dAI3csbh0zF8BP73dnqjH2GAD1xHctECzI2f51ESH5igVYOmIHvdkTCS+UfCWNAP1ZGOxpDsdeSaQ==","signatures":[{"sig":"MEQCIBhhoDIOA4bIvGBn11sGW1BlWnQtZtsjtm1LlK5b3Sk9AiBY6PhxSLdEx8JsWxKyvjREB8VIPma4u1USHWkfhvxSeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98905},"type":"module","exports":{".":{"types":"./out/index.d.ts","default":"./out/index.js"}},"gitHead":"5b0c28205fec9ba1bf05267676370507729848d5","private":false,"scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","git":"run-s check git-add git-commit git-push","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","push":"run-s build && npm publish --access public","build":"run-s check build-only","check":"run-s lint fmt","git-add":"git add .","git-push":"git push","build-only":"rolldown -c rolldown.config.ts","git-commit":"git-cz"},"_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.11.0","description":"A powerful TypeScript library for interacting with OGame game servers, making your interstellar journey easier!","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"latest","git-cz":"latest","oxlint":"latest","rolldown":"latest","@types/node":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"tmp":"tmp/bifrost_2.1.5_1777657726234_0.7336398651053095","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@senators/bifrost@3.0.0","bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"dist":{"shasum":"539cc7a69f39678cd33ba1c261eebbeb9ac22639","tarball":"https://registry.npmjs.org/@senators/bifrost/-/bifrost-3.0.0.tgz","fileCount":188,"integrity":"sha512-acjxGHlikiK8zO/A+wf0CysWeHfGbFOCaGQkPWq9HeiIQqp+xULPcVlTZthy3puzmT1zrbMPhwKt8RS74Cz9Kw==","signatures":[{"sig":"MEYCIQDm1LSeOdOu2Lf6yuBWgisTmKx6d4RGCb74U1VPsPBAqAIhAJCAEGE5C73vOkTF0PAqE6mHq1nYM0BgstGw5u58/WdK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD4WKE4+cnmOPgVkVJE1v554DwiuGAgb0NyLQDmapyWqQIgNs1o7Ov7B/oFJrW50/OOnp86zXSIe8v0BJ9PNuj5AJg="}],"unpackedSize":1920396},"name":"@senators/bifrost","type":"module","author":{"name":"AhMisty"},"engines":{"node":">=26"},"exports":{".":{"types":"./out/index.d.ts","import":"./out/index.js"},"./game":{"types":"./out/game.d.ts","import":"./out/game.js"},"./admin":{"types":"./out/admin.d.ts","import":"./out/admin.js"},"./rules":{"types":"./out/rules.d.ts","import":"./out/rules.js"},"./public":{"types":"./out/public.d.ts","import":"./out/public.js"}},"gitHead":"c8f848a77294a53893783715ded581837dea6241","license":"MIT","scripts":{"fmt":"oxfmt . --write --ignore-path .gitignore","lint":"oxlint . --fix --type-aware --type-check --ignore-path .gitignore","test":"node --test --experimental-test-coverage --test-coverage-include-all --test-coverage-include=src/** --test-coverage-lines=100 --test-coverage-branches=100 --test-coverage-functions=100","build":"run-s check build:only test:package","check":"run-s lint fmt test","prepack":"run-s build","release":"npm publish --access public","build:only":"rolldown -c rolldown.config.ts","test:package":"node --test tests/package.ts"},"version":"3.0.0","_npmUser":{"name":"ahmisty","email":"AhMisty@outlook.com"},"homepage":"https://github.com/AhMisty/senators-bifrost","keywords":["@senators/bifrost","senators","bifrost","ogame"],"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"_npmVersion":"11.19.0","description":"An ESM TypeScript protocol client for the New-Star server.","directories":{},"maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"sideEffects":false,"_nodeVersion":"26.7.0","_hasShrinkwrap":false,"devDependencies":{"acorn":"latest","oxfmt":"latest","oxlint":"latest","rolldown":"latest","css-select":"latest","@types/node":"latest","htmlparser2":"latest","npm-run-all2":"latest","oxlint-tsgolint":"latest","rolldown-plugin-dts":"latest"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bifrost_3.0.0_1790998587883_0.059230280418653525"}}},"time":{"created":"2025-08-20T15:14:57.328Z","modified":"2026-10-03T03:36:28.156Z","0.1.0":"2025-08-20T15:14:57.635Z","0.1.1":"2025-08-20T15:18:42.681Z","0.1.2":"2025-08-20T15:25:07.159Z","0.1.3":"2025-08-20T15:27:44.990Z","1.0.0":"2025-08-20T15:36:21.897Z","1.0.1":"2025-08-21T01:18:57.828Z","1.0.2":"2025-08-21T01:22:28.358Z","1.0.3":"2025-08-21T01:41:08.931Z","1.0.4":"2025-08-21T02:09:23.465Z","1.0.5":"2025-08-21T03:32:48.353Z","1.0.6":"2025-08-21T08:42:21.770Z","1.0.7":"2025-08-22T01:34:52.385Z","1.0.8":"2025-08-22T02:54:17.574Z","1.0.9":"2025-08-22T03:20:10.350Z","1.1.0":"2026-03-02T00:59:51.870Z","1.1.2":"2026-03-10T20:31:30.131Z","1.1.5":"2026-03-10T21:03:35.000Z","1.1.6":"2026-03-26T09:52:39.404Z","1.1.7":"2026-03-30T15:29:29.657Z","1.2.0":"2026-03-30T16:04:27.345Z","1.2.1":"2026-04-26T11:34:06.217Z","1.3.0":"2026-04-26T12:15:13.730Z","2.0.0":"2026-04-26T16:25:49.847Z","2.1.0":"2026-04-26T18:39:39.459Z","2.1.1":"2026-04-28T16:39:21.871Z","2.1.2":"2026-04-28T18:35:50.662Z","2.1.3":"2026-04-29T09:35:19.873Z","2.1.4":"2026-04-29T09:38:41.892Z","2.1.5":"2026-05-01T17:48:46.382Z","3.0.0":"2026-10-03T03:36:27.996Z"},"bugs":{"url":"https://github.com/AhMisty/senators-bifrost/issues","email":"AhMisty@outlook.com"},"author":{"name":"AhMisty"},"license":"MIT","homepage":"https://github.com/AhMisty/senators-bifrost","keywords":["@senators/bifrost","senators","bifrost","ogame"],"repository":{"url":"git+https://github.com/AhMisty/senators-bifrost.git","type":"git"},"description":"An ESM TypeScript protocol client for the New-Star server.","maintainers":[{"name":"ahmisty","email":"AhMisty@outlook.com"}],"readme":"<div align=\"center\">\n  <h1>Bifrost</h1>\n  <img src=\"https://raw.githubusercontent.com/AhMisty/senators-bifrost/main/assets/logo.svg\" alt=\"Bifrost\" width=\"30%\" />\n\n[![npm version](https://img.shields.io/npm/v/@senators/bifrost.svg?style=flat-square)](https://www.npmjs.com/package/@senators/bifrost)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://github.com/AhMisty/senators-bifrost/blob/main/LICENSE)\n[![npm downloads](https://img.shields.io/npm/dm/@senators/bifrost.svg?style=flat-square)](https://www.npmjs.com/package/@senators/bifrost)\n\n<span style=\"color: #999\">English</span> | [中文](https://github.com/AhMisty/senators-bifrost/blob/main/docs/zh-CN/README.md)\n</div>\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/AhMisty/senators-bifrost/main/assets/editor-demo.svg\" alt=\"Animated TypeScript editor with completions for the first request\" width=\"960\" />\n</p>\n\n## ✨ Work with the protocol as it is\n\nBifrost is an ESM and TypeScript client for the HTTP protocol of the New-Star server. It exposes the pages and actions reached through `game.php`, `admin.php`, `index.php` and `json.php`, along with the player's banner image, the battle-report redirect and the browser cron-job scripts.\n\n- **Page-shaped results.** Page calls decode rendered documents and return the original HTTP response beside their data.\n- **Explicit outcomes.** Confirmed server failures raise `ServerError` with the response; ambiguous messages remain receipts and unreadable expected documents are parse errors.\n- **Direct requests and optional workflows.** Each page function represents one business request. Higher-level helpers compose multi-step flows while exposing each step's answer.\n- **Caller-owned transport.** Inject `fetch` to set deadlines, cancellation, proxies or response limits. Automatic authentication is opt-in; the library schedules no background work.\n\n## ⚡ Your first query\n\nInstall it with `npm install @senators/bifrost`; the library needs Node.js 26 or later at runtime. Supply the game installation directory as `baseUrl`, ending in `/` — a base address that does not name a directory is refused.\n\n```ts\nimport { Session, buildings } from '@senators/bifrost/game'\n\nconst session = new Session({\n  baseUrl: 'https://your-server.example/game/',\n  universe: 1,\n  username: 'pilot',\n  password: 'secret',\n})\n\nconst login = await session.login()\nif (login.data.kind !== 'login') throw new Error('Login was not confirmed')\n\nconst result = await buildings(session, { planetId: 101 })\nif (result.data.kind === 'buildings') {\n  console.log(result.data.levels.get(1), result.data.fields.free)\n} else {\n  console.log(result.data)\n}\n```\n\n| `Session` option                      | Meaning                                                                        |\n| ------------------------------------- | ------------------------------------------------------------------------------ |\n| `baseUrl`                             | Installation directory used to resolve request addresses.                      |\n| `universe`                            | Default login universe, sent to the public script as `uni`.                    |\n| `username?`, `password?`, `language?` | Defaults for `login`; credentials remain in memory.                            |\n| `autoLogin?`                          | Defaults to `false`; `true` requires constructor username and password.        |\n| `sessionToken?`                       | Existing `2Moons` cookie, if already authenticated.                            |\n| `fetch?`                              | Custom transport, called without a receiver and with manual redirect handling. |\n| `forwardedIp?`                        | Value sent to this installation in `X-Forwarded-For`.                          |\n\n`Session.login` and `publicLogin` accept username, password, language and universe overrides. TypeScript requires credentials missing from the constructor. A login is confirmed when the response sets a session cookie and redirects to this installation’s `game.php`. `publicVerify` and `publicExternalAuth` use the same cookie confirmation rule.\n\n`autoLogin` defaults to `false`. When enabled, an authenticated request without a token logs in first. An `index.php?code=3` redirect within this installation triggers login with the configured credentials and one retry of that request. Concurrent requests share an in-flight login or reuse the renewed session. Network, HTTP and business errors do not trigger login.\n\nThe constructor sends no requests. Assigning `sessionToken` does not change login credentials. Callers coordinate tokens, accounts, universes and in-flight operations. Workflows do not rebuild session state; steps using an earlier token may be rejected after login. Successful logout clears the token; `autoLogin` controls subsequent authentication.\n\n### New-Star calculations\n\nThe pure functions in [src/rules](https://github.com/AhMisty/senators-bifrost/tree/main/src/rules) execute New-Star formulas without requests or business-input validation. `calculateProducerFlow` implements the default element grid; `ProducerElementId` restricts its supported producers at compile time.\n\n| Area              | Functions                                                                           |\n| ----------------- | ----------------------------------------------------------------------------------- |\n| Price             | `calculateLevelPrice`                                                               |\n| Construction time | `calculateConstructionSeconds`                                                      |\n| Production        | `calculateProducerFlow`, `calculatePlanetProduction`, `calculateResourceProduction` |\n| Supply            | `calculateSupplyBalance`                                                            |\n| Ships             | `calculateShipSpeed`, `calculateShipConsumption`                                    |\n| Flight            | `calculateFleetDistance`, `calculateFleetDuration`, `calculateFleetFuel`            |\n| Missiles          | `calculateMissileDuration`                                                          |\n\nSupply universe configuration, base costs and aggregate account bonuses. `calculatePlanetProduction` requires current `stocks` and the configured `productionSupplyId`; `basicIncome` must match the body. `buildings` and `research` retain server quotes. `fleetStep1.ships` holds quantities, speeds and consumption, `flightPreview` holds fleet parameters, and `fleetStep2.fuel` is the destination quote.\n\nThe rule functions do not automatically read administrator settings or infer unknown account modifiers. A caller that can supply these inputs can compare target-level routes with the rule functions; one that cannot observe them must leave that comparison open.\n\n`calculatePlanetProduction` reproduces the server's production cache rebuild. Comparisons against page output require a cache rebuild, which the production settings request triggers.\n\n## 🧩 Pages, actions and options\n\nThe root entry exports the complete current-server API. Import `/game` for ordinary game pages and workflows, `/rules` for pure calculations, `/public` for login and registration pages, or `/admin` for administration. Client names describe their purpose; [src/protocol/routes.ts](https://github.com/AhMisty/senators-bifrost/blob/main/src/protocol/routes.ts) maps them to the server's `page`, `mode` and fixed query spellings. Readers such as `buildings` decode a document. Actions such as `buildingsUpgrade` send the corresponding form fields and return the server's answer.\n\nBusiness methods accept named parameters and construct only the corresponding server fields. Administrative edit fields are limited to the current server schema; public pages select language with `language`. `Session.request`, `get/post` and protocol route entry points retain generic URL and payload support; `PageOptions` belongs to these low-level requests.\n\nFinite choices use shared literal types: `FleetSpeed` is 1–10, `ProductionStep` is 0–10, and resource and producer IDs describe the supported sets. Readers decode external values into these types once. Numeric element selections use `ReadonlyMap` throughout; named options remain objects. Production and trading submissions construct only their declared fields.\n\nCallers supply finite amounts, coordinates, multipliers and database IDs valid for the operation. These open numeric values have no per-method runtime validation. Snapshot concurrency is checked once by the scheduler; response structure and the server-selected origin are checked from existing responses.\n\nMethods that read or change a selected planet require `planetId` or `origin.planetId`, encoded as `cp`. Account, public and administrative methods accept no navigation context. Directed operations use `target` or `targets`; gathering sends from `targets` to the selected planet. Body types 1, 2 and 3 mean planet, debris and moon.\n\nNew-Star retains its active planet when `cp` does not identify an owned planet. Planet-page results include the observed `planetId`; their receipts use `null` when unreported. Fixed JSON and popup results omit this field, including planet-dependent actions such as jump-gate dispatch and missile dismantling. Account methods omit navigation fields. `parsePage`, `parseContext` and `inspection` provide explicit access to current-planet and header data. Decoders reuse a Page within one read; these checks add no requests. `dispatchFleet` compares the draft and destination planet IDs against its origin before continuing.\n\n### 🏗️ Build and produce\n\n| Area              | Reading and actions                                                                                                                                                                                                         |\n| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Buildings         | `buildings`, `buildingsUpgrade`, `buildingsCancel`, `buildingsRemove`, `buildingsDowngrade`, `buildingsFinish`                                                                                                              |\n| Research          | `research`, `researchUpgrade`, `researchDowngrade`, `researchCancel`, `researchRemove`, `researchFinish`, `researchInstant`                                                                                                 |\n| Shipyard          | `shipyard`, `shipyardDefense`, `shipyardProduce`, `shipyardCancel`                                                                                                                                                          |\n| Direct purchases  | `buyBuild` / `buyBuildSend`, `buyDefense` / `buyDefenseSend`, `buyFleet` / `buyFleetSend`, `buyTech` / `buyTechSend`                                                                                                        |\n| Economy           | `resources`, `resourcesSend`, `resourcesAllPlanets`, `market`, `marketCreateLot`, `marketBuyLot`, `marketCancelLot`, `trader`, `traderTrade`, `traderSend`                                                                  |\n| Logistics         | `delivery` / `deliverySend`, `reduceFleet` / `reduceFleetGather`, `reduceResources` / `reduceResourcesGather`, `containers` / `containersOpen`                                                                              |\n| Growth catalogues | `officer`, `government`, `ancientContainerShop`, `premium`, `blueprints`, `artifact`, `development`, `details`, `minerals`, `auction`, `fair`, `band`, `race`, `ethics`, `party`, `ideologies` and their purchase functions |\n\nGrowth documents use a client-facing `kind`, such as `officer` or `government`; `controlKind` tells whether an entry raises a level, extends time, spends a quantity, waits for a cooldown or chooses one option. Prices may depend on the planet addressed by the request.\n\n`resourcesAllPlanets` sets production to step 10 when enabled and step 0 when disabled across the account's planets.\n\n### 🚀 Fleets and navigation\n\n| Area                   | Functions                                                                                                                     |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| Dispatch               | `fleetStep1`, `fleetStep1CheckTarget`, `fleetStep2`, `fleetStep3`, `fleetAjax`                                                |\n| Draft tools            | `fleetStep1SaveShortcuts`, `fleetStep1DeleteShortcuts`, `fleetStep1SavePreset`                                                |\n| Active fleets          | `fleetTable`, `fleetTableRecall`, `fleetTableOpenACS`, `fleetTableRenameACS`, `fleetTableInviteACS`, `fleetTableDeletePreset` |\n| Navigation             | `galaxy`, `phalanx`, `fleetMissile`, `findDebris`                                                                             |\n| Reports and simulation | `battleHall`, `battleReport`, `publicBattleReport`, `battleSimulator`, `battleSimulatorSend`                                  |\n\nThe three dispatch steps form one server-side draft. Step 1 issues a token, step 2 prepares its destination and step 3 consumes the token even when it refuses the mission. Use a value from step 1's `speedOptions`: 10 means 100% speed. The caller can perform the steps individually:\n\n```ts\nimport { FleetMission, fleetStep1, fleetStep2, fleetStep3 } from '@senators/bifrost'\n\nconst draft = await fleetStep1(session, { origin: { planetId: 101 }, ships: new Map([[202, 10]]) })\nif (draft.data.kind !== 'fleetStep1') throw new Error('No draft')\n\nconst prepared = await fleetStep2(session, {\n  origin: { planetId: 101 },\n  token: draft.data.token,\n  target: { galaxy: 1, system: 2, planet: 3, type: 1 },\n  speed: 10,\n})\nif (prepared.data.kind !== 'fleetStep2') throw new Error('Destination refused')\n\nconst sent = await fleetStep3(session, {\n  origin: { planetId: 101 },\n  token: prepared.data.token,\n  mission: FleetMission.Transport,\n  cargo: { metal: 1000 },\n})\nconsole.log(sent.data)\n```\n\n`galaxy` can charge deuterium for browsing another system, and `phalanx` charges for a scan. A `GET` to those pages is therefore an operation with a cost.\n\n### 🌍 Planet, account and universe\n\n| Area                   | Functions                                                                                                                 |\n| ---------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| Planet state           | `overview`, `planet`, `control`                                                                                           |\n| Planet changes         | `overviewRename`, `overviewDelete`, `planetCoord`, `planetField`, `planetDiameter`, `planetGenerateName`, `createMoonBuy` |\n| Account views          | `settings`, `achievements`, `bonusSummary`, `records`, `statistics`, `techtree`, `arsenal`, `store`                       |\n| Daily reward           | `claimDailyBonus` requests and reads the reward receipt                                                                   |\n| Search and information | `search`, `searchResult`, `searchAutocomplete`, `information`, `playerCard`, `questions`                                  |\n| Polling                | `notifications` (`json.php`), `scan` (`game.php` plain text)                                                              |\n\n`shipyard` and `shipyardDefense` expose `quotes` with costs, time per unit and maximum buildable quantities.\n\n`overview` decodes planet details, construction cards and fleet events. Read header resources from the same response with `parseContext(parsePage(result.response))`. `control` reads the empire matrix across the account's planets and moons. Each observation retains its own response time.\n\n### 🤝 Alliance, social and messages\n\n| Area                 | Functions                                                                                                                                                           |\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Alliance             | `alliance`, `allianceInfo`, `allianceMemberList`, `allianceStorage`, `allianceDeposit`, `allianceWithdrawal`, and the alliance administration functions             |\n| Alliance actions     | `createAlliance`, `submitAllianceApplication`, `depositAllianceResources`, `withdrawAllianceResources`, `distributeAllianceResources`, `transferAllianceLeadership` |\n| Messages             | `messages`, `messagesView`, `messagesWrite`, `messagesSend`, `messagesAction`, `messagesReadMarked`, `messagesDeleteMarked`, `messagesArchiveMarked`                |\n| Contacts and support | `buddyList`, `buddyListRequest`, `buddyListSend`, `buddyListAccept`, `buddyListDelete`, `ticket`, `ticketCreate`, `ticketView`, `ticketSend`, `chat`                |\n\n`messagesWrite` arms the server-side token for a recipient; `messagesSend` submits the message afterward. `messagesView` may mark a category read. The dedicated workflow helper described below handles the compose-and-send sequence.\n\n### 🛠️ Administration and public pages\n\n`adminLogin` establishes administrative access within the game session. `adminUniverse`, `adminUniverseSettings`, `adminRights`, `adminAccountEditor`, `adminSearch`, `adminSupport`, `adminCronjob`, `adminRefreshStatistics` and the other `admin*` functions cover the administrative pages. The `public*` functions read or act on the public `index.php` pages, including registration, account recovery, verification, news, rules, the ban list and the battle hall; `publicBattleReport` is the exception, decoding a published report that `game.php` renders and requires a valid game session. `publicLogin`, `publicVerify`, `publicVerifyJson` and `publicExternalAuth` send no existing cookie. `publicVerifyJson` only activates an account and returns JSON; the other three can confirm and adopt a new token. External-auth failure paths can delete a presented session.\n\n`playerBanner` returns image bytes, `combatReport` reports the redirect from `CombatReport.php`, and `requestCronjob` requests the browser cron-job script. A returned transparent GIF alone does not prove a job executed.\n\n`adminUniverseSettingsSave` applies a `patch` to a complete `form` to preserve untouched configuration. `adminQuickEditorSave` uses its `record`'s editor and ID; player records require an explicit `authorizationAttack`.\n\n`adminAccountEditorSubmit` requires explicit `vacation` for personal edits and `changeleader` for alliance edits because the server rewrites these values on every submission. Enabling vacation also requires its days, hours, minutes and seconds. `adminSendMessagesSend` broadcasts within the current universe, optionally filtered by language; `channel` selects game messages (`0`), email (`1`) or both (`2`).\n\n## 🧭 Workflows and snapshots\n\nFlows with multiple requests live in `src/workflows`; single-request readers and writers live in page modules. Calls retain their response and observation time. Actions propagate errors; snapshots retain per-item failures. The Session authentication policy above also applies to workflows.\n\n| Helper             | Requests and stopping point                                                                                                                                                       |\n| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `dispatchFleet`    | Opens a draft, prepares the destination and submits it. `stage` identifies the last request reached; inspect `dispatch.data` to determine whether the final submission succeeded. |\n| `sendMessage`      | Opens the compose form to arm the server token, then sends the message to the recipient that form's own address names. Stops at `stage: 'compose'` if no compose form arrives.    |\n| `sendBuddyRequest` | Reads the request popup, then submits the request to the player that popup's own field names. Stops at `stage: 'request'` if no popup arrives.                                    |\n| `snapshotPlanet`   | Read six core pages: overview, buildings, shipyard, resources, planet and debris search. Select extensions through `additional`.                                                  |\n| `snapshotAccount`  | Read the empire matrix, notifications and research, then each listed planet and moon. Use `additional` for account extensions and `additionalByPlanet` for planet extensions.     |\n\n```ts\nimport { sendMessage } from '@senators/bifrost'\n\nconst result = await sendMessage(session, { recipientId: 4242, text: 'Hello' })\n\nif (result.stage === 'send') console.log(result.send.data)\nelse console.log(result.compose.data)\n```\n\nOnly snapshots require `concurrency`: `1` runs sequentially, larger positive integers cap in-flight requests, and `null` removes the limit. The budget covers one snapshot. Fleet, message and buddy workflows follow protocol order without a concurrency option.\n\nSnapshots retain each outcome: `fulfilled` contains an `Observed` value, `rejected` contains an error, and `skipped` identifies a request that was not started. Ordinary failures preserve other observations. Authentication errors redirecting to the login endpoint stop queued requests while retaining in-flight results. A fulfilled receipt still requires inspecting `value.data` to determine its meaning.\n\nAccount core pages are read once. Research levels and queues belong to the account; quotes use the snapshot’s `planetId`. Use `additionalByPlanet` to request quotes for other planets. Planets are processed in order, with independent observation times. Default snapshots do not claim daily rewards or request galaxy browsing or phalanx scans.\n\nEach `additional` entry contains `name` and `read`; its callback calls an existing page reader with explicit business parameters. Planet callbacks also receive `{ planetId }`. Both scopes use the same result structure. Each entry occupies one concurrency slot.\n\n```ts\nimport { allianceApply, snapshotAccount } from '@senators/bifrost'\n\nconst snapshot = await snapshotAccount(session, {\n  concurrency: 6,\n  planetId: 101,\n\n  additional: [\n    {\n      name: 'alliance-application',\n      read: (session) => allianceApply(session, { allianceId: 13 }),\n    },\n  ],\n})\n\nconsole.log(snapshot.planets.map(({ planetId }) => planetId))\n```\n\n## 🧾 Results you can inspect\n\nPage calls return `{ data, response }`, where `data` is the decoded document or another server receipt. Page readers decode HTML; single-request actions and `readAck` can return a `page` receipt.\n\n| `kind`     | Payload           | Meaning                                                 |\n| ---------- | ----------------- | ------------------------------------------------------- |\n| `message`  | `message: string` | Message block rendered by the server.                   |\n| `redirect` | `target: URL`     | Redirect target, returned without following it.         |\n| `json`     | `value`           | JSON payload with numeric literals preserved as text.   |\n| `page`     | —                 | HTML without a message block; available from `readAck`. |\n| `text`     | `text: string`    | Plain-text response.                                    |\n| `empty`    | —                 | Empty response body.                                    |\n\nHTTP 4xx/5xx, PHP fatal-error fragments, `error: true`, authentication codes and endpoint-specific failure signals raise `ServerError(code: 'server')` with the response and available `serverCode`. Ordinary messages are not interpreted as success or failure from their wording. Unreadable responses raise `OperationError(code: 'parse')`; `integer` and `numberValue` default to `ValidationError(code: 'validation')`, also used for installation boundaries and snapshot concurrency. `readInteger`, `readDecimal`, `readAmount` and `readQuantity` use parse errors. Network errors propagate unchanged.\n\nThe following New-Star defects affect the corresponding APIs:\n\n- `researchDowngrade` charges a dismantling price but queues an upgrade. `researchInstant` calls an undefined handler. Research cancellation, removal and instant completion can leave later queue levels or times inconsistent.\n- `messagesErrorArchive` references a missing template. Single-message deletion and archiving omit ownership checks; archiving also interpolates its input into SQL. Updating an existing note omits its ownership check.\n- `detailsUpgrade` checks and deducts resources before computing the price, so levels can increase without payment.\n- The navigation shadows the deletion timestamp with a text notice, so the rendered checkbox cannot establish the stored schedule. Settings submissions require `accountDeletionEnabled`: `true` schedules deletion at submission time; `false` cancels it. `settingsAccountDeletion` supplies this choice through `enabled`.\n- Creating a universe leaves its default language empty. Shortcut names are stored and rendered without HTML escaping.\n\n- The administrator message list advances by 50 rows but selects 49; an end date without a start date is ignored.\n- Updating an existing ban uses a nonexistent database field, preventing extensions and reason changes.\n- Facebook code/state loses its handshake state when the server deletes the anonymous session during redirection. OpenID accesses the external identity address before checking its disabled state, so network errors can occur first. External-auth registration references a missing directory.\n\n- `adminCreateMoon` submits the name, but the server creation function replaces it with the default moon name.\n\nThese limitations belong to the corresponding New-Star handlers. Bifrost retains their responses; receipts alone do not confirm a business-state change.\n\n`get` and `post` return text `HttpResponse` objects. Relative addresses resolve against `baseUrl`; absolute addresses must remain within that installation. `Session.request` can send a request elsewhere only with `withCookie: false`. `Session.requestBytes` and `BinaryResponse` preserve image bytes. `parsePage`, `readReply`, `readAck`, `inspectPage` and `parseSpyReport` can read a response the caller already holds, while `combatants` reads the sides and winner of one battle-hall row from a page it has already decoded.\n\n### 🔢 Numbers and rendered precision\n\nGame quantities are plain `number` values. A server-rendered figure may already be rounded or abbreviated; decoding cannot restore precision that is absent from the response.\n\n| Reader         | Input                                                                          |\n| -------------- | ------------------------------------------------------------------------------ |\n| `displayed`    | Grouped decimal with the server's dot grouping and comma decimal separator.    |\n| `abbreviated`  | A display suffix such as `K`, `M`, `B`, `T`, `Q`, `Q+`, `S`, `S+`, `O` or `N`. |\n| `readDecimal`  | Finite decimal value.                                                          |\n| `readAmount`   | Nonnegative value, including fractions.                                        |\n| `readQuantity` | Nonnegative whole quantity; large values may be approximate.                   |\n| `readInteger`  | Safe whole number used as an id, key or index.                                 |\n\n## 🛠️ Development\n\nTests and compile-time API contracts live in `tests/`; build plugins live in `plugins/`.\n\nPublished packages include `out/` and `src/`; npm also includes `package.json`, README and LICENSE. The library sources support source maps and declaration maps. Additional guides and images are linked from GitHub.\n\nUse Node.js 26. The repository commits no lockfile, so an install resolves the `latest` devDependencies afresh; a lockfile you generate for your own checkout is ignored by git. `node --run check` runs lint, formatting and tests. `node --run build:only` generates ESM and declarations; `node --run test:package` checks that output. `node --run build` runs all three stages. Tests run directly from TypeScript and enforce full line, branch and function coverage over `src/`.\n\n## 📜 License\n\nLicensed under the [MIT License](https://github.com/AhMisty/senators-bifrost/blob/main/LICENSE).\n\n## 🤝 Contributing\n\nIssues and pull requests are welcome. Keep code, types, examples and both language guides aligned with the protocol the repository implements.\n\n---\n\n<div align=\"center\">\n  <p>Built with <a href=\"https://github.com/rolldown/rolldown\">Rolldown</a> | © 2026 AhMisty</p>\n</div>\n","readmeFilename":"README.md"}