{"_id":"@dgxo/sdk-mashaguard","_rev":"7-c16718ddb713b9caec570f598989592d","name":"@dgxo/sdk-mashaguard","dist-tags":{"latest":"4.0.0"},"versions":{"3.0.0":{"name":"@dgxo/sdk-mashaguard","version":"3.0.0","keywords":["mashaguard","security","protection","sdk","dgxo"],"author":{"name":"DGXO","email":"contact@dgxoltd.com"},"license":"UNLICENSED","_id":"@dgxo/sdk-mashaguard@3.0.0","maintainers":[{"name":"dgamexo","email":"dikakurniar15@gmail.com"}],"dist":{"shasum":"f6fa2c638fed42f081ca4096fc615c171402a9c9","tarball":"https://registry.npmjs.org/@dgxo/sdk-mashaguard/-/sdk-mashaguard-3.0.0.tgz","fileCount":12,"integrity":"sha512-87CuGyzKGmcRM7p5+mQaC4vFWzaFmBBwAq4Pw4rkUrC9pZVP1ptY/j0v6wHEo0ELk1eQ+Mw97OfgysTlq+kT3g==","signatures":[{"sig":"MEUCIE8B8BuqR83Amw5XwFjyoteL7mCeuQdfySHXVMHIpK7CAiEAnNuR/MCMX0/N7XYMyFj1UOasMbDJi4LC6y4YBX6xFjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355379},"main":"src/index.js","type":"commonjs","types":"src/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js","./nextjs":"./src/adapters/nextjs-app.js","./express":"./src/adapters/express.js","./fastify":"./src/adapters/fastify.js"},"private":false,"scripts":{"test":"echo \"No tests in dist\""},"_npmUser":{"name":"dgamexo","email":"dikakurniar15@gmail.com"},"_npmVersion":"11.12.1","description":"Official Node.js SDK for MashaGuard — Runtime JavaScript Protection Platform","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"peerDependencies":{"express":">=4.0.0"},"peerDependenciesMeta":{"express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk-mashaguard_3.0.0_1777935925216_0.6103711236102682","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@dgxo/sdk-mashaguard","version":"4.0.0","description":"Official Node.js SDK for MashaGuard — Runtime JavaScript Protection Platform","main":"src/index.js","exports":{".":"./src/index.js","./express":"./src/adapters/express.js","./nextjs":"./src/adapters/nextjs-app.js","./fastify":"./src/adapters/fastify.js"},"scripts":{"test":"jest","test:coverage":"jest --coverage","build":"node build.js"},"keywords":["mashaguard","security","protection","sdk","dgxo"],"author":{"name":"DGXO","email":"contact@dgxoltd.com"},"license":"UNLICENSED","type":"commonjs","devDependencies":{"eslint":"^8.0.0","express":"^5.2.1","javascript-obfuscator":"^5.3.0","jest":"^29.0.0","supertest":"^7.2.2"},"peerDependencies":{"express":">=4.0.0"},"peerDependenciesMeta":{"express":{"optional":true}},"engines":{"node":">=14.0.0"},"types":"src/index.d.ts","private":false,"_id":"@dgxo/sdk-mashaguard@4.0.0","_nodeVersion":"26.2.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-5RqvusAUuMJ66UuMFp0SoYPTbiSeBa9F4bBxBvM9yKz8s8DCSA9aYvHySN1TskTZ6AEPzTdMYDCEazjPp2jMrA==","shasum":"11de5ed324570ff48030ccd3fd1ca2f70d2635ec","tarball":"https://registry.npmjs.org/@dgxo/sdk-mashaguard/-/sdk-mashaguard-4.0.0.tgz","fileCount":12,"unpackedSize":17049,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE2AkPSP7Z05/rTzIgmXUmL5KY6S20eopx+9I4aZfLkuAiBTjf4z5Eg16khLZNsWS1zmv644Ag6gDP1YbQ/HI/wOrg=="}]},"_npmUser":{"name":"dgamexo","email":"dikakurniar15@gmail.com"},"directories":{},"maintainers":[{"name":"dgamexo","email":"dikakurniar15@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk-mashaguard_4.0.0_1781697489039_0.9853662846230533"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T23:05:25.108Z","modified":"2026-06-17T11:58:09.361Z","1.0.0":"2026-03-14T01:12:44.887Z","1.0.1":"2026-03-14T01:15:03.505Z","2.0.0":"2026-05-02T07:41:24.719Z","3.0.0":"2026-05-04T23:05:25.405Z","4.0.0":"2026-06-17T11:58:09.197Z"},"author":{"name":"DGXO","email":"contact@dgxoltd.com"},"license":"UNLICENSED","keywords":["mashaguard","security","protection","sdk","dgxo"],"description":"Official Node.js SDK for MashaGuard — Runtime JavaScript Protection Platform","maintainers":[{"name":"dgamexo","email":"dikakurniar15@gmail.com"}],"readme":"# @dgxo/sdk-mashaguard\n\nOfficial Node.js SDK for MashaGuard — Runtime JavaScript Protection Platform.\n\n## Installation\n```bash\nnpm install @dgxo/sdk-mashaguard\n```\n\n## Environment Variables\n```env\nMASHAGUARD_API_KEY=MG-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n```\n\n---\n\n## Usage\n\n### Express\n\n```js\nconst { MashaGuard } = require('@dgxo/sdk-mashaguard');\nconst masha = new MashaGuard(process.env.MASHAGUARD_API_KEY);\n\n// 1. Expose handshake endpoint + auto-inject loader ke semua halaman HTML\napp.use(masha.protect());\napp.use(masha.injectLoader());\n```\n\nAtau kalau mau manual inject per-route:\n\n```js\napp.use(masha.protect());\n\napp.get('/', (req, res) => {\n    res.send(`\n        <html>\n          <head>\n            ${masha.getLoaderScript()}\n          </head>\n          <body>...</body>\n        </html>\n    `);\n});\n```\n\n### Next.js App Router\n\n```js\n// middleware.js\nimport { MashaGuard } from '@dgxo/sdk-mashaguard';\nconst masha = new MashaGuard(process.env.MASHAGUARD_API_KEY);\nexport default masha.protect();\nexport const config = { matcher: ['/.masha-handshake'] };\n```\n\nDi layout/page, tambahkan loader script:\n```jsx\n// app/layout.js\nimport { MashaGuard } from '@dgxo/sdk-mashaguard';\nconst masha = new MashaGuard(process.env.MASHAGUARD_API_KEY);\n\nexport default function RootLayout({ children }) {\n    return (\n        <html>\n            <head>\n                <div dangerouslySetInnerHTML={{ __html: masha.getLoaderScript() }} />\n            </head>\n            <body>{children}</body>\n        </html>\n    );\n}\n```\n\n### Next.js Pages Router\n\n```js\n// pages/api/[...masha].js\nimport { MashaGuard } from '@dgxo/sdk-mashaguard';\nconst masha = new MashaGuard(process.env.MASHAGUARD_API_KEY);\nexport default masha.handler();\n```\n\nDi `_document.js`:\n```jsx\nimport { MashaGuard } from '@dgxo/sdk-mashaguard';\nconst masha = new MashaGuard(process.env.MASHAGUARD_API_KEY);\n\nexport default function Document() {\n    return (\n        <Html>\n            <Head>\n                <div dangerouslySetInnerHTML={{ __html: masha.getLoaderScript() }} />\n            </Head>\n            <body><Main /><NextScript /></body>\n        </Html>\n    );\n}\n```\n\n### Fastify\n\n```js\nconst { MashaGuard } = require('@dgxo/sdk-mashaguard');\nconst masha = new MashaGuard(process.env.MASHAGUARD_API_KEY);\nfastify.register(masha.protect());\n```\n\n---\n\n## API Reference\n\n| Method | Keterangan |\n|---|---|\n| `protect()` | Expose endpoint `/.masha-handshake` di server |\n| `injectLoader()` | Express middleware — auto-inject loader ke semua HTML response |\n| `getLoaderScript()` | Return string HTML `<script>` untuk di-inject manual ke `<head>` |\n| `handler()` | Next.js Pages Router handler |\n| `handshake(req, res)` | Low-level handshake method |\n\n## License\n\nApache-2.0 © DGXO\n","readmeFilename":"README.md"}