{"_id":"@bilmarkltd/license-sdk","name":"@bilmarkltd/license-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bilmarkltd/license-sdk","version":"1.0.0","description":"Bilmark License Manager - Offline License Validation SDK","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"keywords":["license","validation","offline","bilmark","license-manager"],"author":{"name":"Bilmark Ltd"},"license":"MIT","devDependencies":{"@types/node":"^20.0.0","typescript":"^5.0.0"},"engines":{"node":">=16.0.0"},"_id":"@bilmarkltd/license-sdk@1.0.0","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-3xHXmX2w4WGsPF7rJmF0uZ86xoVkmueYBeRQKcopMfPvel1H5eRuAvhqyXIXwQyE+BT8Nzlr3B6nNmNjGogpZQ==","shasum":"6e220012439a13f40d119830a37f654b5c684e78","tarball":"https://registry.npmjs.org/@bilmarkltd/license-sdk/-/license-sdk-1.0.0.tgz","fileCount":12,"unpackedSize":46131,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCbdRdzR9MD5gVxibiEyzyq7cNjaPtK7yIJ+FdjSMYcQQIgLMPllJZS3jtC796pTLQhXONT6L2FyVG9XomyMMkjrh4="}]},"_npmUser":{"name":"bilmark","email":"yazilim@bilmarkltd.com"},"directories":{},"maintainers":[{"name":"bilmark","email":"yazilim@bilmarkltd.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/license-sdk_1.0.0_1768315255977_0.7178647880228319"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-13T14:40:55.815Z","1.0.0":"2026-01-13T14:40:56.121Z","modified":"2026-01-13T14:40:56.442Z"},"maintainers":[{"name":"bilmark","email":"yazilim@bilmarkltd.com"}],"description":"Bilmark License Manager - Offline License Validation SDK","keywords":["license","validation","offline","bilmark","license-manager"],"author":{"name":"Bilmark Ltd"},"license":"MIT","readme":"# Bilmark License SDK\n\nBilmark License Manager için offline lisans doğrulama SDK'sı.\n\n## Kurulum\n\n```bash\nnpm install @bilmarkltd/license-sdk\n```\n\n## Hızlı Başlangıç\n\n### 1. Hardware ID Alma\n\nLisans oluştururken hardware binding kullanmak istiyorsanız, önce sunucunun hardware ID'sini alın:\n\n```typescript\nimport { getHardwareId } from '@bilmarkltd/license-sdk';\n\nconst hardwareId = await getHardwareId();\nconsole.log('Hardware ID:', hardwareId);\n// Bu ID'yi lisans oluştururken License Manager'a gönderin\n```\n\n### 2. Lisans Doğrulama\n\n```typescript\nimport { LicenseValidator } from '@bilmarkltd/license-sdk';\n\nconst validator = new LicenseValidator();\n\n// Dosyadan doğrulama\nconst result = await validator.validateFile('./license.lic');\n\nif (result.valid) {\n  console.log('Lisans geçerli!');\n  console.log('Ürün:', result.license.productName);\n  console.log('Müşteri:', result.license.customerName);\n  console.log('Kalan gün:', result.license.daysRemaining);\n} else {\n  console.error('Lisans hatası:', result.error);\n  process.exit(1);\n}\n```\n\n### 3. Limit Kontrolü\n\n```typescript\n// Kullanıcı sayısı kontrolü\nconst userCheck = validator.checkLimit(result, 'maxUsers', 45);\n\nif (!userCheck.allowed) {\n  console.error(`Kullanıcı limiti aşıldı: ${userCheck.current}/${userCheck.limit}`);\n}\n\n// Rapor sayısı kontrolü\nconst reportCheck = validator.checkLimit(result, 'maxReports', 100);\n```\n\n### 4. Modül Kontrolü\n\n```typescript\nif (validator.hasModule(result, 'finance')) {\n  // Finans modülü aktif\n  enableFinanceFeatures();\n}\n\nif (validator.hasModule(result, 'hr')) {\n  // HR modülü aktif\n  enableHRFeatures();\n}\n```\n\n## Hardware Binding\n\nLisansı belirli bir sunucuya kilitlemek için:\n\n1. Sunucuda hardware ID alın\n2. Bu ID'yi License Manager'da lisans oluştururken kullanın\n3. Validator'da hardware binding kontrolünü aktif edin:\n\n```typescript\nconst validator = new LicenseValidator({\n  checkHardwareBinding: true\n});\n```\n\n## Public Key Yapılandırması\n\nSDK'yı kullanmadan önce public key'i yapılandırmanız gerekir.\n\n### Seçenek 1: Embedded Key (Önerilen)\n\n`src/public-key.ts` dosyasındaki `EMBEDDED_PUBLIC_KEY` değerini License Manager'dan alınan public key ile değiştirin.\n\n### Seçenek 2: Runtime Key\n\n```typescript\nconst validator = new LicenseValidator({\n  publicKey: `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqh...\n-----END PUBLIC KEY-----`\n});\n```\n\n## API Referansı\n\n### LicenseValidator\n\n#### Constructor\n\n```typescript\nnew LicenseValidator(options?: ValidatorOptions)\n```\n\nOptions:\n- `publicKey?: string` - Public key (PEM format)\n- `checkHardwareBinding?: boolean` - Hardware binding kontrolü\n\n#### Metodlar\n\n- `validateFile(filePath: string): Promise<ValidationResult>` - Dosyadan doğrulama\n- `validate(content: string): Promise<ValidationResult>` - String'den doğrulama\n- `checkLimit(result, key, currentValue): LimitCheckResult` - Limit kontrolü\n- `hasModule(result, moduleCode): boolean` - Modül kontrolü\n\n### ValidationResult\n\n```typescript\ninterface ValidationResult {\n  valid: boolean;\n  error?: string;\n  license?: {\n    licenseKey: string;\n    productCode: string;\n    productName: string;\n    customerName: string;\n    expiresAt: Date | null;\n    limits: Record<string, any>;\n    modules: string[];\n    daysRemaining: number | null;\n    isExpired: boolean;\n  };\n}\n```\n\n## Güvenlik\n\n- Private key ASLA client uygulamasında bulunmamalıdır\n- Public key embed edilebilir (güvenli)\n- Lisans dosyası manipüle edilirse imza doğrulama başarısız olur\n","readmeFilename":"README.md","_rev":"1-67b608861785c0192daaeabdc64dc567"}