{"_id":"@dg-xiaoqiang/license-sdk","name":"@dg-xiaoqiang/license-sdk","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.2":{"name":"@dg-xiaoqiang/license-sdk","version":"1.0.2","description":"本地软件授权验证 SDK","main":"dist/license-sdk.cjs.js","module":"dist/license-sdk.esm.js","browser":"dist/license-sdk.umd.js","types":"dist/types/index.d.ts","exports":{".":{"import":"./dist/license-sdk.esm.js","require":"./dist/license-sdk.cjs.js","browser":"./dist/license-sdk.umd.js","types":"./dist/types/index.d.ts"}},"scripts":{"build":"rollup -c","build:watch":"rollup -c -w","dev":"rollup -c -w","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run build"},"keywords":["license","verification","feishu","bitable","electron","授权码","飞书"],"author":{"name":"Your Name"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/your-username/license-sdk.git"},"bugs":{"url":"https://github.com/your-username/license-sdk/issues"},"homepage":"https://github.com/your-username/license-sdk#readme","engines":{"node":">=14.0.0"},"devDependencies":{"@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","rollup":"^4.12.0","tslib":"^2.6.2","typescript":"^5.4.2"},"dependencies":{"axios":"^1.6.8"},"_id":"@dg-xiaoqiang/license-sdk@1.0.2","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-JGR45zAhIyO3nxbRKD0MlZbaf2vHWJWfYqy4P0biOR17DELYgF9TZ2kEQtYFmguwQZA34iCxoi0pzkbzGQDJFA==","shasum":"887dd7fc40899c56368a878f0b831d91e59cc4ec","tarball":"https://registry.npmjs.org/@dg-xiaoqiang/license-sdk/-/license-sdk-1.0.2.tgz","fileCount":18,"unpackedSize":92085,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIARe1CULqRLbB/M5KYT0KzC6lC77rz+jHNwxgkENAmBjAiEAi6Qz1lYfiw4rB/PJzkOXo2G5UG+NCnWNoW5emfMyP8I="}]},"_npmUser":{"name":"dg-xiaoqiang","email":"47405758@qq.com"},"directories":{},"maintainers":[{"name":"dg-xiaoqiang","email":"47405758@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/license-sdk_1.0.2_1780309239653_0.5437310364929653"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-01T10:20:39.537Z","1.0.2":"2026-06-01T10:20:39.806Z","modified":"2026-06-01T10:20:40.017Z"},"maintainers":[{"name":"dg-xiaoqiang","email":"47405758@qq.com"}],"description":"本地软件授权验证 SDK","homepage":"https://github.com/your-username/license-sdk#readme","keywords":["license","verification","feishu","bitable","electron","授权码","飞书"],"repository":{"type":"git","url":"git+https://github.com/your-username/license-sdk.git"},"author":{"name":"Your Name"},"bugs":{"url":"https://github.com/your-username/license-sdk/issues"},"license":"MIT","readme":"# License SDK 快速开始\n\n飞书授权验证 SDK - 帮助第三方软件快速集成授权码验证功能。\n\n## 安装\n\n```bash\nnpm install license-sdk\n```\n\n或者直接引入 UMD 版本：\n\n```html\n<script src=\"license-sdk.umd.js\"></script>\n```\n\n## 快速开始\n\n### 1. 初始化 SDK\n\n```javascript\nimport { LicenseSDK } from 'license-sdk';\n\nconst license = LicenseSDK.init({\n  appToken: 'your-app-token',\n  tableId: 'your-table-id'\n});\n```\n\n### 2. 激活授权\n\n```javascript\nasync function activate(licenseCode) {\n  const result = await license.activate(licenseCode, '设备名称');\n  \n  if (result.success) {\n    console.log('激活成功');\n    console.log('授权ID:', result.data.licenseId);\n    console.log('有效期:', result.data.isPermanent ? '永久' : result.data.days + '天');\n  } else {\n    console.error('激活失败:', result.error.message);\n  }\n}\n```\n\n### 3. 验证授权\n\n```javascript\nasync function verify() {\n  const result = await license.verify();\n  \n  if (result.valid) {\n    console.log('授权有效');\n    console.log('授权信息:', result.data.licenseInfo);\n  } else {\n    console.log('授权无效:', result.error.message);\n  }\n}\n```\n\n### 4. 获取本地状态\n\n```javascript\nfunction checkStatus() {\n  const status = license.getStatus();\n  console.log('已激活:', status.isActivated);\n  if (status.isActivated) {\n    console.log('设备ID:', status.deviceId);\n  }\n}\n```\n\n## 配置选项\n\n```javascript\nconst license = LicenseSDK.init({\n  appToken: 'your-app-token',\n  tableId: 'your-table-id',\n  publicKey: fs.readFileSync('path/to/public.pem', 'utf-8'),\n  \n  verification: {\n    enableLocalVerify: true,   // 启用本地签名验证\n    enableOnlineVerify: true,  // 启用在线验证\n    cacheTimeout: 86400000     // 缓存有效期（毫秒）\n  },\n  \n  storage: {\n    enable: true,              // 启用本地存储\n    storageKey: 'my_license'  // 存储键名\n  },\n  \n  logging: {\n    enable: true,             // 启用日志\n    level: 'info'             // 日志级别\n  }\n});\n```\n\n### 关于公钥配置\n\n**公钥是必需的**，用于验证授权码签名。请从 License Generator 导出的 `.pem` 文件中获取公钥：\n\n```javascript\nconst fs = require('fs');\n\nconst license = LicenseSDK.init({\n  appToken: 'your-app-token',\n  tableId: 'your-table-id',\n  publicKey: fs.readFileSync('./public.pem', 'utf-8')\n});\n```\n\n或者动态读取：\n\n```javascript\nimport { setPublicKey } from 'license-sdk';\nimport fs from 'fs';\n\nconst publicKey = fs.readFileSync('./public.pem', 'utf-8');\nsetPublicKey(publicKey);\n```\n\n## API 文档\n\n详细 API 文档请参阅 [API.md](./API.md)。\n\n## 多维表格配置\n\n请参阅 [FIELD_GUIDE.md](./FIELD_GUIDE.md) 创建正确的数据表字段。\n\n## 错误码\n\n| 错误码 | 说明 |\n|--------|------|\n| SUCCESS | 成功 |\n| ALREADY_ACTIVATED | 设备已激活 |\n| DEVICE_LIMIT_EXCEEDED | 设备数量超限 |\n| INVALID_LICENSE_CODE | 授权码无效 |\n| SIGNATURE_VERIFY_FAILED | 签名验证失败 |\n| LICENSE_EXPIRED | 授权已过期 |\n| CONFIG_INVALID | 配置无效 |\n| APP_TOKEN_INVALID | appToken 无效 |\n| TABLE_ID_INVALID | tableId 无效 |\n| FIELDS_MISSING | 缺少必要字段 |\n\n## 支持环境\n\n- Node.js 14+\n- Electron\n- 现代浏览器（Chrome, Firefox, Safari, Edge）\n- 支持 ES Module, CommonJS, UMD 格式\n","readmeFilename":"README.md","_rev":"1-201c21e96ddeb5bd367e4d7b39caaea5"}