{"_id":"@demox-site/sdk","_rev":"2-7884f89d5ec3752243fec13d92ecc752","name":"@demox-site/sdk","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@demox-site/sdk","version":"0.1.0","license":"MIT","_id":"@demox-site/sdk@0.1.0","maintainers":[{"name":"phosa","email":"phosa@qq.com"}],"dist":{"shasum":"a5e725f1401c047f2d88e0c97f49900750c21c94","tarball":"https://registry.npmjs.org/@demox-site/sdk/-/sdk-0.1.0.tgz","fileCount":91,"integrity":"sha512-16veX8NXo8aJM8tsckPaGZbUVv29NfnLumX2YsdIqTCESdrNdy1Dc8SmKkVF+dVgwxE5m8YFFC4sW4o2orxeyg==","signatures":[{"sig":"MEUCIGVU5IAfCfShKcckUizQ9HjL5NdWQGvLcd3fo06GDgZxAiEAi3Er+JGTB5ZhT11xTX46xF58chYqWh32e9gWHnjCR2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":229980},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js"},"./browser":{"types":"./dist/browser/index.d.ts","import":"./dist/browser/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","verify":"npm run guard:duplicates && npm test && npm run build && npm run smoke:pack","prepack":"npm run guard:duplicates && npm test && npm run build","smoke:pack":"node scripts/pack-smoke.mjs","guard:duplicates":"node scripts/duplicate-guard.mjs"},"_npmUser":{"name":"phosa","email":"phosa@qq.com"},"_npmVersion":"11.12.1","description":"Shared Demox OAuth, API and deployment SDK","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"jszip":"^3.10.1","marked":"15.0.12","adm-zip":"0.6.0","mammoth":"^1.12.0","unified":"^11.0.5","pdfjs-dist":"4.8.69","rehype-parse":"^9.0.1","@napi-rs/canvas":"0.1.100","rehype-sanitize":"^6.0.0","rehype-stringify":"^10.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"3.2.6","typescript":"^5.5.3","@types/node":"^20.19.0","@types/adm-zip":"^0.5.7"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1786500029081_0.7792783425063536","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@demox-site/sdk","version":"0.1.1","description":"Shared Demox OAuth, API and deployment SDK","type":"module","main":"./dist/core/index.js","types":"./dist/core/index.d.ts","exports":{".":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.js"},"./browser":{"types":"./dist/browser/index.d.ts","import":"./dist/browser/index.js"}},"scripts":{"build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc","test":"vitest run","guard:duplicates":"node scripts/duplicate-guard.mjs","smoke:pack":"node scripts/pack-smoke.mjs","verify":"npm run guard:duplicates && npm test && npm run build && npm run smoke:pack","prepack":"npm run guard:duplicates && npm test && npm run build"},"engines":{"node":">=18.0.0"},"dependencies":{"@napi-rs/canvas":"0.1.100","adm-zip":"0.6.0","jszip":"^3.10.1","mammoth":"^1.12.0","marked":"15.0.12","pdfjs-dist":"4.8.69","rehype-parse":"^9.0.1","rehype-sanitize":"^6.0.0","rehype-stringify":"^10.0.1","unified":"^11.0.5"},"sideEffects":false,"devDependencies":{"@types/adm-zip":"^0.5.7","@types/node":"^20.19.0","typescript":"^5.5.3","vitest":"3.2.6"},"license":"MIT","publishConfig":{"access":"public"},"_id":"@demox-site/sdk@0.1.1","_nodeVersion":"22.22.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-k01NDue1hxto+6wnhKIGxEXjV/n8HaSu49/wSK+pLu27YhKNm6PYd4h9QE1PPJQgSOc35FpwpvEfhGeMp8hi8Q==","shasum":"c84eab74875bb425b6c9a6345d458d9ba76c5656","tarball":"https://registry.npmjs.org/@demox-site/sdk/-/sdk-0.1.1.tgz","fileCount":95,"unpackedSize":269566,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCTPJ4Nbs4lvf+tSg5nVJykyBxd6wjcgQ9o96/Na0v2uAIgQzD2jejWf/h6TnAuzjZsi3t//8YJ0O6WOG356fbSFcw="}]},"_npmUser":{"name":"phosa","email":"phosa@qq.com"},"directories":{},"maintainers":[{"name":"phosa","email":"phosa@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.1.1_1788403071435_0.8746071138765916"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T02:00:28.844Z","modified":"2026-09-03T02:37:51.799Z","0.1.0":"2026-08-12T02:00:29.313Z","0.1.1":"2026-09-03T02:37:51.578Z"},"license":"MIT","description":"Shared Demox OAuth, API and deployment SDK","maintainers":[{"name":"phosa","email":"phosa@qq.com"}],"readme":"# @demox-site/sdk\n\nThe single shared implementation for Demox OAuth contracts, API response/DTO normalization, chunked deployment uploads, safe site artifacts, Node authentication, and browser adapters.\n\n```ts\nimport { DEMOX_OAUTH, createDocumentArtifact, normalizeWebsiteDto } from \"@demox-site/sdk\";\nimport { DemoxClient, NodeOAuthClient, buildPdfSiteZip, loadNodeConfig } from \"@demox-site/sdk/node\";\nimport { buildSiteZipFile, parseOAuthRequestLocation, uploadBlobInChunks } from \"@demox-site/sdk/browser\";\n```\n\nThe root export is runtime-neutral and imports no Node or browser-specific module. It owns the only Markdown/GFM parser contract, HAST sanitizer policy, heading/TOC rules, document templates, PDF gallery HTML, artifact manifest validation, and ZIP encoder. `./node` and `./browser` only adapt filesystem versus `File` I/O and their native PDF canvas.\n\nEquivalent normalized document input produces byte-identical `index.html` in Node and browsers. PDF JPEG bytes may differ by canvas platform, but page names, gallery HTML, original-PDF download, archive entries, scale, quality, and resource limits share one contract.\n\n`loadNodeConfig()` is the single environment-precedence implementation shared by CLI and MCP. Consumers inject their own logger and browser opener; the SDK does not write to stdout.\n","readmeFilename":"README.md"}