{"_id":"@anisrh/core-bootstrap","_rev":"3-df100981b256e627e46930b58214c31d","name":"@anisrh/core-bootstrap","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@anisrh/core-bootstrap","version":"1.0.0","keywords":["device-verification","security","bootstrap","mac-address","developer-auth"],"author":"","license":"ISC","_id":"@anisrh/core-bootstrap@1.0.0","maintainers":[{"name":"anisrh","email":"anis.rh.97@gmail.com"}],"bin":{"core-bootstrap":"cli.js"},"dist":{"shasum":"1e377cb427c831b0ae5161349a0d1c8c755f273c","tarball":"https://registry.npmjs.org/@anisrh/core-bootstrap/-/core-bootstrap-1.0.0.tgz","fileCount":6,"integrity":"sha512-M72+KzB7UtNJz5Jvy/w0rTfhx9siMauzBan9hohtUJwn4oiJdHXmRdnjY5q5bV/JQrZ1HDTAOyUxKo6cx++xpQ==","signatures":[{"sig":"MEYCIQDLMO/5+1RUPk896zEqbsz7QMwSpjuaVvz+HUoPo7iMhwIhAKI+ud/1pKSDmwDj5qPKOyq01IvhMRhzEEKeRHbaCYJV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14407},"main":"index.js","engines":{"node":">=12.0.0"},"scripts":{"test":"node cli.js --help"},"_npmUser":{"name":"anisrh","email":"anis.rh.97@gmail.com"},"_npmVersion":"11.6.2","description":"Device verification and bootstrap for authorized developers","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core-bootstrap_1.0.0_1765860972542_0.8589947390328734","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@anisrh/core-bootstrap","version":"1.0.1","keywords":["device-verification","security","bootstrap","mac-address","developer-auth"],"author":"","license":"ISC","_id":"@anisrh/core-bootstrap@1.0.1","maintainers":[{"name":"anisrh","email":"anis.rh.97@gmail.com"}],"bin":{"core-bootstrap":"cli.js"},"dist":{"shasum":"ffb8f836dd56194371a5e08c9818ea3e50deb2f5","tarball":"https://registry.npmjs.org/@anisrh/core-bootstrap/-/core-bootstrap-1.0.1.tgz","fileCount":7,"integrity":"sha512-t9acI6kNuhORptqGwNFvkYwBqFJveNhUbP87NxvFYly4vWSWT1eX7nAuIeyWVMYR5NTBigYTvQZ7JGXlrFASRA==","signatures":[{"sig":"MEUCIGhvTJAeU4fEbTBqrvCMTjTwhmBOfcDYhbyn//WS11gtAiEAg7dFxDOfqy+SPFQAfIVZaDVUtTBZIY0LEUCLpiYRGWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23433},"main":"index.js","engines":{"node":">=12.0.0"},"scripts":{"test":"node cli.js --help"},"_npmUser":{"name":"anisrh","email":"anis.rh.97@gmail.com"},"_npmVersion":"11.6.2","description":"Device verification and bootstrap for authorized developers","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core-bootstrap_1.0.1_1765862597509_0.24020508199398738","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@anisrh/core-bootstrap","version":"1.1.0","description":"Device verification and bootstrap for authorized developers","main":"index.js","bin":{"core-bootstrap":"cli.js"},"scripts":{"test":"node cli.js --help"},"keywords":["device-verification","security","bootstrap","mac-address","developer-auth"],"author":"","license":"ISC","engines":{"node":">=12.0.0"},"gitHead":"0ec3b7b0cae035fb5247dc28a1327248b771e72b","_id":"@anisrh/core-bootstrap@1.1.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-H3By+LPwT/Ol9h8gCtNng/zwETNhMxcAwPb+IcBUhHIELVhZjnb6WnID8xGBPv3qE5QQ1SaPlb0wGFa26MuQqg==","shasum":"8ef4d4d96318265b668c69d6847f6b846d2dfc6b","tarball":"https://registry.npmjs.org/@anisrh/core-bootstrap/-/core-bootstrap-1.1.0.tgz","fileCount":8,"unpackedSize":31230,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHIu46P95H4s8iG9o37pa6agx2eb1gspC6MVMzkrNESPAiEA4SYRJo+vDRSComloKN4Yd/6sYrWKJOzUevP7y24JwdA="}]},"_npmUser":{"name":"anisrh","email":"anis.rh.97@gmail.com"},"directories":{},"maintainers":[{"name":"anisrh","email":"anis.rh.97@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core-bootstrap_1.1.0_1765864562445_0.6941380853622752"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-16T04:56:12.346Z","modified":"2025-12-16T05:56:02.777Z","1.0.0":"2025-12-16T04:56:12.674Z","1.0.1":"2025-12-16T05:23:17.654Z","1.1.0":"2025-12-16T05:56:02.591Z"},"license":"ISC","keywords":["device-verification","security","bootstrap","mac-address","developer-auth"],"description":"Device verification and bootstrap for authorized developers","maintainers":[{"name":"anisrh","email":"anis.rh.97@gmail.com"}],"readme":"# Core Bootstrap\n\nDevice verification package for authorized developers.\n\n## How It Works\n\n1. Reads your developer ID from `developer-allowlist.json`\n2. Gets your device MAC address\n3. Sends both to verification API\n4. Returns whether you're authorized to work on the project\n\n## Installation\n\n```bash\nnpm install @anisrh/core-bootstrap\n```\n\n## Setup for Developers\n\n### Step 1: Get Your MAC Address\n\nFirst, get your device MAC address:\n\n```bash\nnpx @anisrh/device-fingerprint\n```\n\nSend this MAC address to your team lead.\n\n### Step 2: Receive Allowlist File\n\nYour team lead will give you a `developer-allowlist.json` file containing your developer ID.\n\n### Step 3: Store the Allowlist File\n\nCreate the directory and save the file:\n\n**Windows:**\n```bash\nmkdir %USERPROFILE%\\.dev-allowlist\n```\n\n**Mac/Linux:**\n```bash\nmkdir -p ~/.dev-allowlist\n```\n\nThen save `developer-allowlist.json` in this folder.\n\n### Step 4: Set API URL\n\nSet the verification API URL as an environment variable:\n\n**Windows (PowerShell):**\n```powershell\n$env:DEV_VERIFY_API_URL=\"https://your-api.com/verify-device\"\n```\n\n**Mac/Linux:**\n```bash\nexport DEV_VERIFY_API_URL=\"https://your-api.com/verify-device\"\n```\n\nOr add it to your project's `.env` file.\n\n### Step 5: Run Verification\n\n```bash\nnpx @anisrh/core-bootstrap\n```\n\n## Usage in Your Project\n\nAdd to your project's startup script:\n\n```javascript\nconst { bootstrap } = require('@anisrh/core-bootstrap');\n\nasync function startApp() {\n  const result = await bootstrap({\n    allowlistPath: require('path').join(require('os').homedir(), '.dev-allowlist', 'developer-allowlist.json'),\n    apiUrl: process.env.DEV_VERIFY_API_URL\n  });\n\n  if (!result.allowed) {\n    console.error('Device not authorized!');\n    process.exit(1);\n  }\n\n  // Continue with your app...\n}\n\nstartApp();\n```\n\n## CLI Options\n\n```bash\n# Use default paths\ncore-bootstrap\n\n# Custom allowlist path\ncore-bootstrap --allowlist /path/to/developer-allowlist.json\n\n# Custom API URL\ncore-bootstrap --api https://your-api.com/verify\n\n# Show help\ncore-bootstrap --help\n```\n\n## API Response Format\n\nYour verification API should accept POST requests with:\n\n```json\n{\n  \"developerId\": \"dev-12345\",\n  \"deviceFingerprint\": \"AA:BB:CC:DD:EE:FF\"\n}\n```\n\nAnd respond with:\n\n```json\n{\n  \"allowed\": true,\n  \"message\": \"Device authorized\"\n}\n```\n\nOr:\n\n```json\n{\n  \"allowed\": false,\n  \"message\": \"Device not authorized\"\n}\n```\n","readmeFilename":"README.md"}