{"_id":"@admiral-vrm/sdk-node","_rev":"8-20a0c49a6ebcb84d23a3c0732ae6cdf3","name":"@admiral-vrm/sdk-node","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.1":{"name":"@admiral-vrm/sdk-node","version":"1.0.1","keywords":["adblock","admiral","ad","detection","block","adblock"],"author":{"name":"Admiral"},"license":"MIT","_id":"@admiral-vrm/sdk-node@1.0.1","maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"}],"dist":{"shasum":"fc1ccd0cade41ba5895234d30d367870fa4d7898","tarball":"https://registry.npmjs.org/@admiral-vrm/sdk-node/-/sdk-node-1.0.1.tgz","fileCount":41,"integrity":"sha512-eo7AklQP8DmANeJDD5OLtvIU+dPriW0s5eRHu/4oQQFecwhBvjIW4esxwK37Q+N16b6ggcE4w42oPh+6qerPRw==","signatures":[{"sig":"MEUCIQD5oqKFm0FtwuJO4Ztx0pq+4S1X8hVL1FULPXlub+eTIAIgG3kn14EUo4SINHQp/oWUX3fHbOO2kO6/mC2yyXKi0zI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87063},"main":"dist/admiral-sdk-node.js","type":"module","types":"dist/admiral-sdk-node.d.ts","module":"dist/admiral-sdk-node.js","engines":{"node":">=16"},"gitHead":"9a50b52f3dcccb7e288aa2e06e9f9b767c178def","scripts":{"dev":"vite","copy":"npm run copynext && npm run copyexpress","lint":"eslint .","test":"jest","build":"rimraf dist/ && rimraf examples/nextjs/admiral-sdk-node && tsc -b && vite build && npm run copy","preview":"vite preview","copynext":"mkdir -p examples/nextjs/admiral-sdk-node && cp -r dist examples/nextjs/admiral-sdk-node/ && cp package.json examples/nextjs/admiral-sdk-node/package.json","validate":"npm run lint","copyexpress":"mkdir -p examples/expressjs/admiral-sdk-node && cp -r dist examples/expressjs/admiral-sdk-node/ && cp package.json examples/expressjs/admiral-sdk-node/package.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"mc00","email":"ninjainvisible@gmail.com"},"deprecated":"This version was mistakenly published under the MIT license. Please upgrade to >=1.0.2 which contains the correct license.","_npmVersion":"11.6.2","description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@noble/hashes":"^1.7.1","@edge-runtime/cookies":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.2.11","vite":"^6.0.5","react":"^18.2.0","eslint":"^9.18.0","rimraf":"^6.0.1","globals":"^15.14.0","ts-jest":"^29.2.5","react-dom":"^18.2.0","@eslint/js":"^9.18.0","typescript":"~5.6.2","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^18.3.18","vite-plugin-dts":"^4.5.0","@types/react-dom":"^18.3.5","@babel/preset-env":"^7.26.0","typescript-eslint":"^8.20.0","eslint-plugin-jest":"^28.10.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@next/eslint-plugin-next":"^15.1.4","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-editorconfig":"^4.0.3","rollup-preserve-directives":"^1.1.3","vite-plugin-lib-inject-css":"^2.2.1","eslint-plugin-react-refresh":"^0.4.18"},"peerDependencies":{"next":">=13","react":">=16","react-dom":">=16"},"_npmOperationalInternal":{"tmp":"tmp/sdk-node_1.0.1_1770156352125_0.9094021619275268","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@admiral-vrm/sdk-node","version":"1.0.2","keywords":["adblock","admiral","ad","detection","block","adblock"],"author":{"name":"Admiral"},"license":"Apache-2.0 WITH Commons-Clause","_id":"@admiral-vrm/sdk-node@1.0.2","maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"}],"dist":{"shasum":"416f64b113ddcc1a81dec6358166c9fae87467fe","tarball":"https://registry.npmjs.org/@admiral-vrm/sdk-node/-/sdk-node-1.0.2.tgz","fileCount":42,"integrity":"sha512-VYLmZnmXX7YIwVB21Bat+SYxfXiE8YDJ/DGyWS4z9IP3LLWVn4LsB55PXW3Irguc1qLPyntSsPJLYojKblS7tw==","signatures":[{"sig":"MEUCIQCc6G7n5XOx0A52eFYlBz+mKoMnXOGW59fhtsIMjdsqswIgGQ6ReBFV5Uf7Y6KaVTPKJwD10+lwvh9dgRyPg3b0ROM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88622},"main":"dist/admiral-sdk-node.js","type":"module","types":"dist/admiral-sdk-node.d.ts","module":"dist/admiral-sdk-node.js","engines":{"node":">=16"},"gitHead":"30643ba131b1745b4e604a31238d33a342c017ce","scripts":{"dev":"vite","copy":"npm run copynext && npm run copyexpress","lint":"eslint .","test":"jest","build":"rimraf dist/ && rimraf examples/nextjs/admiral-sdk-node && tsc -b && vite build && npm run copy","preview":"vite preview","copynext":"mkdir -p examples/nextjs/admiral-sdk-node && cp -r dist examples/nextjs/admiral-sdk-node/ && cp package.json examples/nextjs/admiral-sdk-node/package.json","validate":"npm run lint","copyexpress":"mkdir -p examples/expressjs/admiral-sdk-node && cp -r dist examples/expressjs/admiral-sdk-node/ && cp package.json examples/expressjs/admiral-sdk-node/package.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"mc00","email":"ninjainvisible@gmail.com"},"_npmVersion":"11.6.2","description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@noble/hashes":"^1.7.1","@edge-runtime/cookies":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.2.11","vite":"^6.0.5","react":"^18.2.0","eslint":"^9.18.0","rimraf":"^6.0.1","globals":"^15.14.0","ts-jest":"^29.2.5","react-dom":"^18.2.0","@eslint/js":"^9.18.0","typescript":"~5.6.2","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^18.3.18","vite-plugin-dts":"^4.5.0","@types/react-dom":"^18.3.5","@babel/preset-env":"^7.26.0","typescript-eslint":"^8.20.0","eslint-plugin-jest":"^28.10.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@next/eslint-plugin-next":"^15.1.4","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-editorconfig":"^4.0.3","rollup-preserve-directives":"^1.1.3","vite-plugin-lib-inject-css":"^2.2.1","eslint-plugin-react-refresh":"^0.4.18"},"peerDependencies":{"next":">=13","react":">=16","react-dom":">=16"},"_npmOperationalInternal":{"tmp":"tmp/sdk-node_1.0.2_1770157174414_0.3194194258905514","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@admiral-vrm/sdk-node","version":"1.1.0","keywords":["adblock","admiral","ad","detection","block","adblock"],"author":{"name":"Admiral"},"license":"Apache-2.0 WITH Commons-Clause","_id":"@admiral-vrm/sdk-node@1.1.0","maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"},{"name":"fastest963","email":"me@jameshartig.com"}],"dist":{"shasum":"666934916ec42fd20622c059af8c5879070c74e3","tarball":"https://registry.npmjs.org/@admiral-vrm/sdk-node/-/sdk-node-1.1.0.tgz","fileCount":42,"integrity":"sha512-6DQOUOCuUQ6xEfbJmM72JKmPHnGaH833+VMDu/tnci8W9pid/S4YoCl79lRk+D8kEQ8LMCJzswvMtg1y3s0hCA==","signatures":[{"sig":"MEYCIQDZAJ0SuJG4OpxE+5OIFwDQEnaPn20EU/4+Ze04PpUtzAIhAPqdNDcWWDujIc6UHx//2L1SvzWRHwe/bgws6Va8M/3u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97610},"main":"dist/admiral-sdk-node.js","type":"module","types":"dist/admiral-sdk-node.d.ts","module":"dist/admiral-sdk-node.js","engines":{"node":">=16"},"gitHead":"9e01c77e1e32b7f0e659b8243d70cc6b36335b96","scripts":{"dev":"vite","copy":"npm run copynext && npm run copyexpress","lint":"eslint .","test":"jest","build":"rimraf dist/ && rimraf examples/nextjs/admiral-sdk-node && tsc -b && vite build && npm run copy","preview":"vite preview","copynext":"mkdir -p examples/nextjs/admiral-sdk-node && cp -r dist examples/nextjs/admiral-sdk-node/ && cp package.json examples/nextjs/admiral-sdk-node/package.json","validate":"npm run lint","copyexpress":"mkdir -p examples/expressjs/admiral-sdk-node && cp -r dist examples/expressjs/admiral-sdk-node/ && cp package.json examples/expressjs/admiral-sdk-node/package.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"mc00","email":"ninjainvisible@gmail.com"},"_npmVersion":"11.6.2","description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@noble/hashes":"^1.7.1","@edge-runtime/cookies":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.2.11","vite":"^6.0.5","react":"^18.2.0","eslint":"^9.18.0","rimraf":"^6.0.1","globals":"^15.14.0","ts-jest":"^29.2.5","react-dom":"^18.2.0","@eslint/js":"^9.18.0","typescript":"~5.6.2","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^18.3.18","vite-plugin-dts":"^4.5.0","@types/react-dom":"^18.3.5","@babel/preset-env":"^7.26.0","typescript-eslint":"^8.20.0","eslint-plugin-jest":"^28.10.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.4","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@next/eslint-plugin-next":"^15.1.4","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-editorconfig":"^4.0.3","rollup-preserve-directives":"^1.1.3","vite-plugin-lib-inject-css":"^2.2.1","eslint-plugin-react-refresh":"^0.4.18"},"peerDependencies":{"next":">=13","react":">=16","react-dom":">=16"},"_npmOperationalInternal":{"tmp":"tmp/sdk-node_1.1.0_1772487788823_0.17974882252387525","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@admiral-vrm/sdk-node","version":"1.1.1","keywords":["adblock","admiral","ad","detection","block","adblock"],"author":{"name":"Admiral"},"license":"Apache-2.0 WITH Commons-Clause","_id":"@admiral-vrm/sdk-node@1.1.1","maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"},{"name":"fastest963","email":"me@jameshartig.com"},{"name":"griffith5","email":"griffith@getadmiral.com"}],"dist":{"shasum":"0cdafc6b2bc60d52cc68edc1eef11586cd4a3ae5","tarball":"https://registry.npmjs.org/@admiral-vrm/sdk-node/-/sdk-node-1.1.1.tgz","fileCount":30,"integrity":"sha512-yBRK4vejShWaB1uPiBVklRUMW3k8FW+V6aqIs2s/zPhLwezR/8AemnUb/dlh2FH1lCGeV/k7V+de+rvs4q0lkQ==","signatures":[{"sig":"MEUCIBXBqHJmcBMttCiTPoJJkm58dMbVn290RjxMTwVTfZEyAiEA7USaPbq7ViAzAL2+IoL5t8mHMJKQn3aSjQjtEXtY9XI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76790},"main":"dist/admiral-sdk-node.js","type":"module","types":"dist/admiral-sdk-node.d.ts","module":"dist/admiral-sdk-node.js","engines":{"node":">=18"},"gitHead":"5e6ae6f3e3a6fff273614ad3bf0bd75fca01e442","scripts":{"dev":"vite","copy":"npm run copynext && npm run copyexpress","lint":"eslint .","test":"jest","build":"rimraf dist/ && rimraf examples/nextjs/admiral-sdk-node && tsc -b && vite build && npm run copy","preview":"vite preview","copynext":"mkdir -p examples/nextjs/admiral-sdk-node && cp -r dist examples/nextjs/admiral-sdk-node/ && cp package.json examples/nextjs/admiral-sdk-node/package.json","validate":"npm run lint","copyexpress":"mkdir -p examples/expressjs/admiral-sdk-node && cp -r dist examples/expressjs/admiral-sdk-node/ && cp package.json examples/expressjs/admiral-sdk-node/package.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"mc00","email":"ninjainvisible@gmail.com"},"_npmVersion":"11.6.2","description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.2.11","vite":"^6.0.5","react":"^18.2.0","eslint":"^9.18.0","rimraf":"^6.0.1","globals":"^15.14.0","ts-jest":"^29.2.5","react-dom":"^18.2.0","@eslint/js":"^9.18.0","typescript":"~5.6.2","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^18.3.18","@noble/hashes":"^1.7.1","vite-plugin-dts":"^4.5.0","@types/react-dom":"^18.3.5","@babel/preset-env":"^7.26.0","typescript-eslint":"^8.20.0","eslint-plugin-jest":"^28.10.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.4","@edge-runtime/cookies":"^6.0.0","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@next/eslint-plugin-next":"^15.1.4","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-editorconfig":"^4.0.3","rollup-preserve-directives":"^1.1.3","vite-plugin-lib-inject-css":"^2.2.1","eslint-plugin-react-refresh":"^0.4.18"},"peerDependencies":{"next":">=13","react":">=16","react-dom":">=16","@noble/hashes":">=1","@edge-runtime/cookies":">=6"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk-node_1.1.1_1773254710417_0.08628000294108551","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@admiral-vrm/sdk-node","version":"1.1.2","keywords":["adblock","admiral","ad","detection","block","adblock"],"author":{"name":"Admiral"},"license":"Apache-2.0 WITH Commons-Clause","_id":"@admiral-vrm/sdk-node@1.1.2","maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"},{"name":"fastest963","email":"me@jameshartig.com"},{"name":"griffith5","email":"griffith@getadmiral.com"}],"dist":{"shasum":"19d350a907bbd06c3172c91ba46a13dcd75cc304","tarball":"https://registry.npmjs.org/@admiral-vrm/sdk-node/-/sdk-node-1.1.2.tgz","fileCount":30,"integrity":"sha512-0uEdNUR3vgPc4LpgrQho9ymcdipxtlHAwhj6Dgk9krGo4O6l2kCy0oBh6b0L4cHclOpToxO7+QUoBkoaWcUWGw==","signatures":[{"sig":"MEYCIQDjHGng/B64V2ZF5fB0DZlIy/hKgdk4cVHdgWsX0pdkVgIhAI/OOGE4kKAkFc4Jkf0raa6JZ3TaS7GFdBV26mU/CEhD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76794},"main":"dist/admiral-sdk-node.js","type":"module","types":"dist/admiral-sdk-node.d.ts","module":"dist/admiral-sdk-node.js","engines":{"node":">=18"},"gitHead":"a2b2f3d857f0abdecbeefc4914133a330fe916bd","scripts":{"dev":"vite","copy":"npm run copynext && npm run copyexpress","lint":"eslint .","test":"jest","build":"rimraf dist/ && rimraf examples/nextjs/admiral-sdk-node && tsc -b && vite build && npm run copy","preview":"vite preview","copynext":"mkdir -p examples/nextjs/admiral-sdk-node && cp -r dist examples/nextjs/admiral-sdk-node/ && cp package.json examples/nextjs/admiral-sdk-node/package.json","validate":"npm run lint","copyexpress":"mkdir -p examples/expressjs/admiral-sdk-node && cp -r dist examples/expressjs/admiral-sdk-node/ && cp package.json examples/expressjs/admiral-sdk-node/package.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"griffith5","email":"griffith@getadmiral.com"},"_npmVersion":"11.11.1","description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","next":"^14.2.11","vite":"^6.0.5","react":"^18.2.0","eslint":"^9.18.0","rimraf":"^6.0.1","globals":"^15.14.0","ts-jest":"^29.2.5","react-dom":"^18.2.0","@eslint/js":"^9.18.0","typescript":"~5.6.2","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^18.3.18","@noble/hashes":"^1.7.1","vite-plugin-dts":"^4.5.0","@types/react-dom":"^18.3.5","@babel/preset-env":"^7.26.0","typescript-eslint":"^8.20.0","eslint-plugin-jest":"^28.10.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.4","@edge-runtime/cookies":"^6.0.0","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@next/eslint-plugin-next":"^15.1.4","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-editorconfig":"^4.0.3","rollup-preserve-directives":"^1.1.3","vite-plugin-lib-inject-css":"^2.2.1","eslint-plugin-react-refresh":"^0.4.18"},"peerDependencies":{"next":">=13","react":">=16","react-dom":">=16","@noble/hashes":">=1","@edge-runtime/cookies":">=6"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk-node_1.1.2_1773269414069_0.8169512421762168","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@admiral-vrm/sdk-node","version":"1.1.3","description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","main":"dist/admiral-sdk-node.js","module":"dist/admiral-sdk-node.js","types":"dist/admiral-sdk-node.d.ts","type":"module","scripts":{"dev":"vite","build":"rimraf dist/ && rimraf examples/nextjs/admiral-sdk-node && tsc -b && vite build && npm run copy","lint":"eslint .","preview":"vite preview","test":"jest","validate":"npm run lint","copy":"npm run copynext && npm run copyexpress","copynext":"mkdir -p examples/nextjs/admiral-sdk-node && cp -r dist examples/nextjs/admiral-sdk-node/ && cp package.json examples/nextjs/admiral-sdk-node/package.json","copyexpress":"mkdir -p examples/expressjs/admiral-sdk-node && cp -r dist examples/expressjs/admiral-sdk-node/ && cp package.json examples/expressjs/admiral-sdk-node/package.json","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"keywords":["adblock","admiral","ad","detection","block","adblock"],"author":{"name":"Admiral"},"license":"Apache-2.0 WITH Commons-Clause","peerDependencies":{"next":">=13","react":">=16","react-dom":">=16","@edge-runtime/cookies":">=6","@noble/hashes":"^1.7.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"devDependencies":{"@edge-runtime/cookies":"^6.0.0","@noble/hashes":"^1.7.1","@babel/preset-env":"^7.26.0","@eslint/js":"^9.18.0","@next/eslint-plugin-next":"^15.1.4","@testing-library/dom":"^10.4.0","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.1.0","@types/jest":"^29.5.14","@types/node":"^22.10.7","@types/react":"^18.3.18","@types/react-dom":"^18.3.5","@vitejs/plugin-react":"^4.3.4","eslint":"^9.18.0","eslint-plugin-editorconfig":"^4.0.3","eslint-plugin-jest":"^28.10.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","globals":"^15.14.0","jest":"^29.7.0","jest-environment-jsdom":"^29.7.0","next":"^14.2.11","react":"^18.2.0","react-dom":"^18.2.0","rimraf":"^6.0.1","rollup-preserve-directives":"^1.1.3","ts-jest":"^29.2.5","typescript":"~5.6.2","typescript-eslint":"^8.20.0","vite":"^6.0.5","vite-plugin-dts":"^4.5.0","vite-plugin-lib-inject-css":"^2.2.1"},"gitHead":"c223039fab2869f2c2e20001e1c9914ba6a6b766","_id":"@admiral-vrm/sdk-node@1.1.3","_nodeVersion":"22.22.1","_npmVersion":"11.11.1","dist":{"integrity":"sha512-LsWxnLm7yFtC1yiY3g3p/BrpUpCgurUgO91oj/gkqr+0vi5PsOmZlQvQqIT5MW48zw8q5PiBmSmYbwmAFEcQbw==","shasum":"5f1a7255b38fbd89eef31a8b8291db9667baf116","tarball":"https://registry.npmjs.org/@admiral-vrm/sdk-node/-/sdk-node-1.1.3.tgz","fileCount":30,"unpackedSize":76894,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCXpnatywr6CPF3NGvGDnWulQ1K3rwEtihIy9SP4eJlHgIgU76t/jV+hcKojyND07TBX/SXdxPIeR8DTFEr57zrkOE="}]},"_npmUser":{"name":"griffith5","email":"griffith@getadmiral.com"},"directories":{},"maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"},{"name":"fastest963","email":"me@jameshartig.com"},{"name":"griffith5","email":"griffith@getadmiral.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk-node_1.1.3_1773671088308_0.28002253268108857"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-03T22:05:51.869Z","modified":"2026-03-16T14:24:48.645Z","1.0.1":"2026-02-03T22:05:52.268Z","1.0.2":"2026-02-03T22:19:34.549Z","1.1.0":"2026-03-02T21:43:08.977Z","1.1.1":"2026-03-11T18:45:10.568Z","1.1.2":"2026-03-11T22:50:14.208Z","1.1.3":"2026-03-16T14:24:48.453Z"},"author":{"name":"Admiral"},"license":"Apache-2.0 WITH Commons-Clause","keywords":["adblock","admiral","ad","detection","block","adblock"],"description":"The Admiral SDK for NodeJS simplifies the process of using Admiral's APIs for applications written in server-side JavaScript.","maintainers":[{"name":"nhagen","email":"nathan@nh.run"},{"name":"mc00","email":"ninjainvisible@gmail.com"},{"name":"fastest963","email":"me@jameshartig.com"},{"name":"griffith5","email":"griffith@getadmiral.com"}],"readme":"# Admiral SDK for NodeJS\n\nProvides a simple interface for using Admiral's APIs for applications written in\nserver-side JavaScript. Visit us at [Admiral](https://getadmiral.com) for more\ninformation.\n\n## Requirements\n\nNode.js 18 or later (see `engines` in package.json).\n\n## Installation\n\nInstall the package to your project:\n\n```bash\nnpm install @admiral-vrm/sdk-node\n# or\nyarn add @admiral-vrm/sdk-node\n```\n\nThis package has **peer dependencies** (`@edge-runtime/cookies`, `@noble/hashes` v1.x, plus React/Next when using those features). Next.js apps typically satisfy these. If you use the SDK in a non-Next environment (e.g. Express or plain Node), install the peers manually if needed. Use `@noble/hashes` v1.x; v2.x uses different export paths and is not yet supported.\n\n```bash\nnpm install @edge-runtime/cookies @noble/hashes@^1.7.0\n```\n\n## Configuration\n\n- **propertyID** (required): Your Admiral property ID (e.g. `\"A-1234-1\"`).\n- **tokenSecretKey** (recommended when using Protect): Secret used to sign visitor tokens. Set a strong, unique value in production; otherwise a default is used (not suitable for production). Can also be set via `ADMIRAL_TOKEN_SECRET_KEY`.\n- **proxy**: Optional. When using `proxyAdmiral: true`, set `proxy.host` (and optionally `scheme`, `prefix`).\n- **protectOptions**: Optional. For Protect/Partner API: `partnerApiEndpoint`, `cacheTimeout`. API credentials are configured inside the Protect integration (see examples).\n\n## Documentation\n\n### Admiral\n\nThe `Admiral` class is the main class for the Admiral SDK. It contains configuration\nfor the Admiral object, such as the property ID, environment, enabling Protect and\nProxy, and additional parameters.\n\n```\nexport const admiral = new Admiral({\n  propertyID: \"A-1234-1\",\n  environment: \"production\",\n  protect: true,\n  proxyAdmiral: true,\n  tokenSecretKey: process.env.ADMIRAL_TOKEN_SECRET_KEY, // recommended for production\n  proxy: {\n    host: \"host.com\",\n    scheme: \"https\",\n  },\n});\n```\n\nThe class provides the following methods:\n\n### getPossibleHandlers(): string[]\n\nReturns an array of possible Admiral prefix handlers that can be used as prefixes\nwhen using the proxy functionality.\n\n### getPossibleProxyPathPrefixes(): string[]\n\nReturns path prefixes that match proxy routes (e.g. `[\"/abcde.../\", \"/fghij.../\"]`).\nNo I/O. Use for gate checks or diagnostics. Prefixes rotate over time; treat as\nruntime routing hints, not static invariants.\n\n### getCurrentProxyPathPrefix(): string\n\nReturns the current (today's) proxy path prefix (e.g. `\"/abcde.../\"`), or `\"\"` if\nnone. Same as `getPossibleProxyPathPrefixes()[0]`. No I/O.\n\n### isProxyRequest(urlOrReq: string | MiddlewareRequest): boolean\n\nReturns true if the request or URL matches a proxy path. Accepts a full URL,\npathname, or MiddlewareRequest. No I/O. Use before calling the SDK to skip\nnon-Admiral requests (gate-first pattern).\n\n### getProxyRoutingInfo(): { handlers: string[]; prefixes: string[]; currentPrefix: string; generatedAt: number }\n\nReturns current proxy handlers, path prefixes, the current (today's) prefix, and\ngeneration time. For admin/debug use only; restrict access and do not expose publicly.\n\n### fetchSSRBootstraps(): Promise<AdmiralSSRBootstrapWrapper>\n\nFetches Admiral bootstrap scripts for server-side rendering. Returns a promise\ncontaining:\n\n- `admiral`: Array of bootstrap script strings, each of these should be script tags\n\n### fetchBootstraps(): Promise<string[]>\n\nFetches Admiral bootstrap scripts. Returns a promise containing an array of script\nstrings.\n\n### renderSSRBootstraps(payload: AdmiralSSRBootstrapWrapper, format: \"html\" | \"react\" = \"react\"): React.ReactNode[]\n\nRenders the Admiral bootstrap scripts for server-side rendering as React components.\nTakes a bootstrap wrapper payload from fetchSSRBootstraps and returns an array of\nReact script elements.\n\nParameters:\n\n- `payload`: Object containing array of bootstrap scripts under `admiral` key\n\n### handleRequestAsMiddleware(req: MiddlewareRequest): Promise<MiddlewareResponse>\n\nHandles Admiral middleware functionality including proxy requests and Protect\nfunctionality. Returns a promise containing the middleware response with:\n\n- `response`: Response object (optional)\n- `headers`: Headers object (optional)\n- `cookies`: ResponseCookies object (optional)\n\nParameters:\n\n- `req`: MiddlewareRequest object containing the incoming request details\n\nYou can instead use the split handlers and a gate for more control:\n\n- **handleProxyRequestAsMiddleware(req)** – Proxy only. Use when the request is\n  a proxy path (e.g. after `isProxyRequest(url)`).\n- **handleProtectRequestAsMiddleware(req)** – Protect only (token, cookie reset,\n  admiral-protect-block header). No proxy.\n\n## Install API and proxy behavior\n\n- **Bootstrap (Install API):** You can keep using a cron or build step that\n  fetches bootstrap scripts (e.g. `fetchSSRBootstraps()` or the Install API)\n  and caches them on your CDN. You do not need to call the Install API at\n  runtime for every user.\n- **Proxy:** A network round-trip in middleware happens only when a request\n  matches one of the proxy path prefixes (Admiral runtime script/beacon traffic).\n  Normal page loads, logins, and app API calls do not hit the proxy if you use\n  a gate: call `admiral.isProxyRequest(url)` first and only invoke the SDK when\n  it returns true (or when the URL is a Protect token/reset URL). See the\n  nextjs and expressjs examples for a gate-first middleware pattern.\n- **Why path-based proxy?** A CNAME to a third-party host would be blockable by\n  adblockers. The path-based proxy keeps requests on your host\n  (`yourdomain.com/<prefix>/...`), so the host stays first-party and is not\n  filtered. Expose any routing diagnostics (e.g. `getProxyRoutingInfo()`) only\n  to admin/debug audiences, not publicly.\n\n## Usage with Next.js and React\n\nSee the nextjs example for more information with a full example and\ndocumentation on how to use the Admiral SDK with Next.js.\n\nThe `ProtectEmbed` component is a React component that can be used to embed the\nProtect functionality into a React application.\n\n## Usage with Express.js / Node.js\n\nSee the expressjs example for more information with a full example\nand documentation on how to use the Admiral SDK with Express.\n\nThe `ProtectHTMLEmbed` library allows embedding HTML with Protect functionality into\nyour application without using React.\n","readmeFilename":"README.md"}