{"_id":"@akaoio/air","_rev":"6-abf406051c64fca3efc56a3b9a6158cb","name":"@akaoio/air","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@akaoio/air","version":"1.0.0","license":"MIT","_id":"@akaoio/air@1.0.0","maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"bin":{"air-install":"script/install.js"},"dist":{"shasum":"dcbdb66e8753dc11a829d0d53eb8cf7330efbae1","tarball":"https://registry.npmjs.org/@akaoio/air/-/air-1.0.0.tgz","fileCount":32,"integrity":"sha512-YSg461K2xXAvchcPyZ7O6S9F57mb+OcCzfRBqgbYGEwf/MZy2T/F0kxmlwy7YipAIWCYP314TQqnwNZrLI1vPg==","signatures":[{"sig":"MEUCIQCGPFEUo6EtWFYxa23DrFFNEcQnc/Oqcplf1PYUeDMZLAIgIly2iQd6WtxsZnjRF6qAYgTWk9CO+0f9azdwT6gJIT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277860},"main":"index.js","type":"module","gitHead":"c8361a9bce6cec67f476d96465c9b95a5a8752a1","scripts":{"ui":"node ui.js","ddns":"node script/ddns.js","test":"node test/runner.js","setup":"node script/install.js","start":"node main.js","config":"node script/config.js","format":"npx prettier --write .","postinstall":"node script/install.js --check"},"_npmUser":{"name":"akaoio","email":"dev@akao.io"},"_npmVersion":"9.2.0","description":"Distributed graph database","directories":{},"_nodeVersion":"18.19.0","dependencies":{"node-fetch":"^3.3.2","@akaoio/gun":"^0.2020.1240"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/air_1.0.0_1755605131909_0.545478540910689","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@akaoio/air","version":"1.0.1","license":"MIT","_id":"@akaoio/air@1.0.1","maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"bin":{"air-install":"script/install.js"},"dist":{"shasum":"704e27a19fd2f09faba1c88e2db34b685260db79","tarball":"https://registry.npmjs.org/@akaoio/air/-/air-1.0.1.tgz","fileCount":34,"integrity":"sha512-N7rYi8c88FXQ/2t+J5/vpSKL55dy9NkD2zNr9Qkvix64hVgW1yQZLaVb6kRyylYDL/RBPUv7AgD/ajXduhLUsQ==","signatures":[{"sig":"MEQCIGsn08CV/52ZDbmwTN+e06vgDvPyWt4H3HZTmq9WmtJUAiBEqXh7tzuaPJe35KFpqjIq/eA9sZzT7+P1hwYivf8uUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288291},"main":"index.js","type":"module","gitHead":"67a850770f9a4cb309e922d1083808347bad502b","scripts":{"ui":"node ui.js","ddns":"node script/ddns.js","logs":"node script/logs.js","test":"node test/runner.js","setup":"node script/install.js","start":"node main.js","config":"node script/config.js","format":"npx prettier --write .","status":"node script/status.js","postinstall":"node script/install.js --check"},"_npmUser":{"name":"akaoio","email":"dev@akao.io"},"_npmVersion":"9.2.0","description":"Distributed graph database","directories":{},"_nodeVersion":"18.19.0","dependencies":{"node-fetch":"^3.3.2","@akaoio/gun":"^0.2020.1240"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/air_1.0.1_1755605797815_0.6544977827309721","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@akaoio/air","version":"2.0.0","license":"MIT","_id":"@akaoio/air@2.0.0","maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"bin":{"air-install":"script/install.cjs"},"dist":{"shasum":"8d7f7b99ec8ac59933d03a47029b9a5a47e9bd98","tarball":"https://registry.npmjs.org/@akaoio/air/-/air-2.0.0.tgz","fileCount":9,"integrity":"sha512-t5JNaw52Rfond5/RMdefcLY6g3MQEGygBPAHrEWPPEzU1nc7IwIiWqQRP3Xp2Dzk6CQJlf3y6FYDzJX0QOIOTA==","signatures":[{"sig":"MEQCIGLFMJPah7tZSNf1XORjUcAIXFyK/L0uuoB9QrflKGt/AiAEQlgte/usGmoQO8UdaaR+5WrkLK5KyTVG1vs650JMEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207767},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"bun":">=1.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5dce03bd33bc5bde67acae2e8ac599c25092d7ae","scripts":{"dev":"bun --hot src/main.ts","ddns":"bun script/compiled/ddns.js || node script/compiled/ddns.js","logs":"bun script/compiled/logs.js || node script/compiled/logs.js","test":"vitest run test/COMPLETE.test.ts --reporter=verbose","build":"tsup src/index.ts --format cjs,esm --dts --clean","start":"bun run src/main.ts || tsx src/main.ts","config":"bun script/compiled/config.js || node script/compiled/config.js","format":"bunx prettier --write . || npx prettier --write .","status":"bun script/compiled/status.js || node script/compiled/status.js","update":"node script/update.cjs","pretest":"[ -f dist/paths.js ] || cp src/paths.js dist/paths.js","build:bun":"bun build src/index.ts --outdir dist --target bun","start:bun":"bun run src/main.ts","typecheck":"tsc --noEmit","uninstall":"node script/uninstall.cjs","build:node":"tsc -p tsconfig.build.json","build:prod":"tsup src/index.ts --format cjs,esm --dts --clean && cp src/paths.js dist/paths.js","start:node":"tsx src/main.ts","test:quick":"tsx test/universal.test.ts","test:watch":"vitest watch test/COMPLETE.test.ts","air:install":"node script/install.cjs","build:watch":"tsup src/index.ts --format cjs,esm --dts --watch","build:legacy":"tsx build.ts","test:coverage":"vitest run test/COMPLETE.test.ts --coverage","air:install:notui":"node script/install.cjs --non-interactive"},"_npmUser":{"name":"akaoio","email":"dev@akao.io"},"_npmVersion":"9.2.0","description":"Distributed graph database - TypeScript/Bun edition","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ink":"^6.2.2","react":"^19.1.1","node-fetch":"^3.3.2","@akaoio/gun":"^0.2020.1240","ink-spinner":"^5.0.0","ink-big-text":"^2.0.0","ink-gradient":"^3.0.0","ink-text-input":"^6.0.0","ink-select-input":"^6.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.4","jest":"^30.0.5","tsup":"^8.5.0","vitest":"^1.6.1","ts-jest":"^29.4.1","prettier":"^3.0.0","bun-types":"^1.2.20","@types/bun":"^1.2.20","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^20.19.11","@vitest/coverage-v8":"^1.6.1"},"_npmOperationalInternal":{"tmp":"tmp/air_2.0.0_1755976768620_0.09225944347666548","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@akaoio/air","version":"2.0.1","license":"MIT","_id":"@akaoio/air@2.0.1","maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"dist":{"shasum":"bd33664edbeed17403e9c0799bac82bfd0928478","tarball":"https://registry.npmjs.org/@akaoio/air/-/air-2.0.1.tgz","fileCount":34,"integrity":"sha512-7S9UrHmy1GqL6MB41rEWngX35Bo8xJOSh+ZnqZZczRD7xO2FMx8zD4c7AoczezZTpnVikLma2P/i7h16fcalDA==","signatures":[{"sig":"MEQCIAbKDa2ja70ZRP5e6EsdVDzZapzMuuzyq7xx3p8zZ0ytAiAG4C3dEA4tGVL1FnSkyom3lTqy+gj/TMLaqkb3JyAINw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76623},"main":"index.js","type":"module","gitHead":"cf6322ffe7667725a070d52626fbb3f98e673ec1","scripts":{"start":"node main.js","format":"npx prettier --write ."},"_npmUser":{"name":"akaoio","email":"dev@akao.io"},"_npmVersion":"9.2.0","description":"Distributed graph database","directories":{},"_nodeVersion":"18.19.0","dependencies":{"gun":"github:akaoio/gun","node-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/air_2.0.1_1756232677550_0.9518768500753085","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@akaoio/air","version":"2.0.2","license":"MIT","_id":"@akaoio/air@2.0.2","maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"dist":{"shasum":"6ede158d794f33ed64700c693f9b821337be943b","tarball":"https://registry.npmjs.org/@akaoio/air/-/air-2.0.2.tgz","fileCount":34,"integrity":"sha512-TAfdaRPtYE4RZieNdsrzYrQLwU7nLWp4eWHY3xvjQwnS99bT2vfOoVWybjcKGQc5SHnsSdTg2SP5dGjZN3ZyWw==","signatures":[{"sig":"MEUCIEbHUjX6VUUI/dgbZRhmPjFaG37/3EWBm/SOsfd6UrplAiEA9sZH7adX04vHqZQnErJ0w9gFCHaeQXeclUU+SZ29ft4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76650},"main":"index.js","type":"module","gitHead":"38112f4dae67fbb78bb15dfb2307a0fb70bf3a20","scripts":{"start":"node main.js","format":"npx prettier --write ."},"_npmUser":{"name":"akaoio","email":"dev@akao.io"},"_npmVersion":"9.2.0","description":"Distributed graph database","directories":{},"_nodeVersion":"18.19.0","dependencies":{"node-fetch":"^3.0.0","@akaoio/gun":"^0.2020.1240"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/air_2.0.2_1756233223412_0.5081386183948147","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@akaoio/air","type":"module","version":"2.1.0","description":"Distributed graph database","main":"index.js","license":"MIT","dependencies":{"@akaoio/gun":"^0.2020.1240","node-fetch":"^3.0.0"},"scripts":{"start":"node main.js","format":"npx prettier --write ."},"devDependencies":{"prettier":"^2.4.1"},"gitHead":"ef62054fc8597db59f3eea9ccfd5ed44cb8ffb31","_id":"@akaoio/air@2.1.0","_nodeVersion":"18.19.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-h88jR1KZUMp5undBSsi8Lr8Nkcs5faxUxMPHcRy58XDBf1LUOuoLoGRB69g9XYU42Ike6LBxcftutLIFiEEAvA==","shasum":"af2f55c5a75d5a8fb3fe46e72977269aac375f99","tarball":"https://registry.npmjs.org/@akaoio/air/-/air-2.1.0.tgz","fileCount":34,"unpackedSize":74714,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCXd3CBeffz6ERDG9YIfl17iMMzjHMT7EAIJMGT6xU5iQIgKCGIfwX/OeqZXSa4aSeoOsuFD0U/oNEvPykj5Tb/jVc="}]},"_npmUser":{"name":"akaoio","email":"dev@akao.io"},"directories":{},"maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/air_2.1.0_1756234243584_0.5974509930209895"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-19T12:05:31.748Z","modified":"2025-08-26T18:50:43.957Z","1.0.0":"2025-08-19T12:05:32.126Z","1.0.1":"2025-08-19T12:16:37.978Z","2.0.0":"2025-08-23T19:19:28.824Z","2.0.1":"2025-08-26T18:24:37.739Z","2.0.2":"2025-08-26T18:33:43.578Z","2.1.0":"2025-08-26T18:50:43.777Z"},"license":"MIT","description":"Distributed graph database","maintainers":[{"name":"akaoio","email":"dev@akao.io"}],"readme":"# @akaoio/air\n\n> Distributed P2P database with IP synchronization\n\nTool to help you run GUN instances with ease\n\nAir is in development and the \"main\" branch is the development branch.\n\n## Features\n\n\n- 🚀 **Automatic Startup**: Automatically runs on system startup for seamless operation\n\n- 🔒 **SSL Certificate Management**: Automatically installs and renews Let's Encrypt SSL certificates\n\n- 🔄 **GitHub Auto-Update**: Automatically pulls updates from GitHub repository\n\n- 🌐 **Air Hub Integration**: Automatically joins the Air hub network for distributed connectivity\n\n- 💓 **Heartbeat Status**: Automatically updates heartbeat status to user space\n\n- 🔗 **Access Layer Integration**: IP synchronization handled by the Access layer\n\n\n## Installation\n\n### Standalone Super Peer\n\nYou can install Air as a standalone GUN peer. Just clone this repo.\n\n```bash\nsudo ./install.sh\n```\n\n### NodeJS module\n\nYou can also use Air in your NodeJS projects.\n\n```javascript\nimport { db } from \"air\"\nconst main = async () => {\n    await db.start() // Start the db instance\n    const { GUN, gun, sea, user } = db\n}\nmain()\n\n```\n\n## Requirements\n\nYou might need one of the following things:\n\n\n- **domain**: Domain name configured to point to your server\n\n- **port_forwarding**: NAT/port forwarding setup for Let's Encrypt\n\n- **access_integration**: IP synchronization handled by Access layer (no GoDaddy configuration needed)\n\n\n## Tested Platforms\n\n\n- Raspberry OS on Raspberry Pi 4\n\n- Ubuntu 19.10 on Acer Nitro 5\n\n\n## Documentation\n\n- **GUN**: https://github.com/amark/gun\n- **Air**: Documentation coming soon\n\n## License\n\nMIT © AKAO Team\n\n---\n\n*Built with Air v0.1.0*\n*Documentation generated with @akaoio/composer*","readmeFilename":"README.md"}