project-shield 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +21 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/license/commands.d.ts +1 -5
- package/dist/license/commands.d.ts.map +1 -1
- package/dist/license/commands.js +65 -38
- package/dist/license/commands.js.map +1 -1
- package/dist/license/types.d.ts +1 -0
- package/dist/license/types.d.ts.map +1 -1
- package/dist/license/validator.d.ts +7 -4
- package/dist/license/validator.d.ts.map +1 -1
- package/dist/license/validator.js +37 -10
- package/dist/license/validator.js.map +1 -1
- package/package.json +12 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ShovelMaker91
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -7,6 +7,16 @@ Detects leaked API keys, PII, insecure MCP configs, and prompt injection — in
|
|
|
7
7
|
[](https://www.npmjs.com/package/project-shield)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
|
|
10
|
+
### Key Features
|
|
11
|
+
|
|
12
|
+
- **7 detection engines** in one CLI — secrets, PII, MCP config, prompt injection, scoring, fix-it, evidence
|
|
13
|
+
- **Multi-layer detection** — 3-layer secrets (regex + entropy + context), 2-layer PII (regex + checksum), 2-layer injection (keyword + structural)
|
|
14
|
+
- **Security grade scoring** (A-F) with automatic badge lock on critical findings
|
|
15
|
+
- **Fix-it guides** — actionable remediation with code examples, not just warnings
|
|
16
|
+
- **Evidence Pack** — compliance-ready PDF + JSON reports with integrity seals (SHA-256 + UUID)
|
|
17
|
+
- **MCP-native** — purpose-built for AI agent configs (Claude, Cursor, Windsurf)
|
|
18
|
+
- **Lightweight** — 4 dependencies, runs offline, CI/CD ready
|
|
19
|
+
|
|
10
20
|
```bash
|
|
11
21
|
npx project-shield scan ./my-project
|
|
12
22
|
```
|
|
@@ -14,7 +24,7 @@ npx project-shield scan ./my-project
|
|
|
14
24
|
```
|
|
15
25
|
Tier: Free (0/5 scans)
|
|
16
26
|
|
|
17
|
-
Project Shield v1.
|
|
27
|
+
Project Shield v1.1.6
|
|
18
28
|
Ruleset: v1.0.0 (SHA-256: f408a4fd...)
|
|
19
29
|
Scanning: 47 files (3 excluded)
|
|
20
30
|
|
|
@@ -362,6 +372,16 @@ MIT
|
|
|
362
372
|
|
|
363
373
|
API 키 유출, 개인정보, MCP 설정 보안 취약점, 프롬프트 인젝션을 한 번에 탐지합니다.
|
|
364
374
|
|
|
375
|
+
### 주요 특징
|
|
376
|
+
|
|
377
|
+
- **7개 탐지 엔진** 올인원 — 시크릿, PII, MCP 설정, 프롬프트 인젝션, 스코어링, Fix-it, Evidence
|
|
378
|
+
- **다중 레이어 탐지** — 시크릿 3중 (정규식 + 엔트로피 + 컨텍스트), PII 2중 (정규식 + 체크섬), 인젝션 2중 (키워드 + 구조)
|
|
379
|
+
- **보안 등급 스코어** (A-F) — Critical 발견 시 자동 뱃지 잠금
|
|
380
|
+
- **Fix-it 가이드** — 경고만 하지 않고, 코드 예제와 함께 수정 방법 제시
|
|
381
|
+
- **Evidence Pack** — 컴플라이언스용 PDF + JSON 리포트, 무결성 봉인 (SHA-256 + UUID)
|
|
382
|
+
- **MCP 네이티브** — AI 에이전트 설정 전용 (Claude, Cursor, Windsurf)
|
|
383
|
+
- **경량** — 의존성 4개, 오프라인 실행 가능, CI/CD 즉시 연동
|
|
384
|
+
|
|
365
385
|
```bash
|
|
366
386
|
npx project-shield scan ./my-project
|
|
367
387
|
```
|
package/dist/index.js
CHANGED
|
@@ -200,7 +200,7 @@ program
|
|
|
200
200
|
program
|
|
201
201
|
.command('activate')
|
|
202
202
|
.description('Activate a Pro license key')
|
|
203
|
-
.argument('<key>', 'License key (
|
|
203
|
+
.argument('<key>', 'License key from Polar.sh (PSH_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)')
|
|
204
204
|
.action(async (key) => {
|
|
205
205
|
await (0, commands_js_1.activateCommand)(key);
|
|
206
206
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*/
|
|
4
|
-
export declare function getMachineId(): string;
|
|
5
|
-
/**
|
|
6
|
-
* Activate a license key.
|
|
2
|
+
* Activate a license key via Polar.sh.
|
|
7
3
|
*/
|
|
8
4
|
export declare function activateCommand(key: string): Promise<void>;
|
|
9
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/license/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/license/commands.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEhE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBvD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BnD"}
|
package/dist/license/commands.js
CHANGED
|
@@ -33,17 +33,14 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getMachineId = getMachineId;
|
|
37
36
|
exports.activateCommand = activateCommand;
|
|
38
37
|
exports.deactivateCommand = deactivateCommand;
|
|
39
38
|
exports.statusCommand = statusCommand;
|
|
40
|
-
const crypto = __importStar(require("node:crypto"));
|
|
41
39
|
const os = __importStar(require("node:os"));
|
|
42
40
|
const validator_js_1 = require("./validator.js");
|
|
43
41
|
const storage_js_1 = require("./storage.js");
|
|
44
42
|
const usage_js_1 = require("./usage.js");
|
|
45
43
|
const http_js_1 = require("./http.js");
|
|
46
|
-
const API_BASE = 'https://project-shield-license-api.vnddns999.workers.dev/api/v1';
|
|
47
44
|
const colors = {
|
|
48
45
|
red: (s) => `\x1b[31m${s}\x1b[0m`,
|
|
49
46
|
green: (s) => `\x1b[32m${s}\x1b[0m`,
|
|
@@ -53,52 +50,74 @@ const colors = {
|
|
|
53
50
|
dim: (s) => `\x1b[2m${s}\x1b[0m`,
|
|
54
51
|
};
|
|
55
52
|
/**
|
|
56
|
-
*
|
|
57
|
-
*/
|
|
58
|
-
function getMachineId() {
|
|
59
|
-
const raw = `${os.hostname()}${os.userInfo().username}${process.platform}`;
|
|
60
|
-
return crypto.createHash('sha256').update(raw).digest('hex').substring(0, 16);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Activate a license key.
|
|
53
|
+
* Activate a license key via Polar.sh.
|
|
64
54
|
*/
|
|
65
55
|
async function activateCommand(key) {
|
|
66
56
|
// 1. Key format validation
|
|
67
57
|
if (!(0, validator_js_1.isValidKeyFormat)(key)) {
|
|
68
58
|
console.error(colors.red('Invalid license key format.'));
|
|
69
|
-
console.error(colors.dim('Expected:
|
|
59
|
+
console.error(colors.dim('Expected: PSH_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'));
|
|
60
|
+
console.error(colors.dim('Find your key at: https://polar.sh/purchases'));
|
|
70
61
|
return;
|
|
71
62
|
}
|
|
72
|
-
// 2.
|
|
73
|
-
const
|
|
63
|
+
// 2. Activate device on Polar.sh
|
|
64
|
+
const label = `${os.hostname()}-${os.userInfo().username}`;
|
|
74
65
|
try {
|
|
75
|
-
const
|
|
66
|
+
const activateResponse = await (0, http_js_1.postJSON)(`${validator_js_1.POLAR_API}/activate`, {
|
|
67
|
+
key,
|
|
68
|
+
organization_id: validator_js_1.POLAR_ORG_ID,
|
|
69
|
+
label,
|
|
70
|
+
meta: { platform: process.platform, hostname: os.hostname() },
|
|
71
|
+
});
|
|
72
|
+
if (!activateResponse.id) {
|
|
73
|
+
// Polar returns error detail
|
|
74
|
+
const detail = activateResponse.detail;
|
|
75
|
+
console.error(colors.red(`Activation failed: ${detail ?? 'Unknown error'}`));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const activationId = activateResponse.id;
|
|
79
|
+
// 3. Validate to get full license info
|
|
80
|
+
const validateResponse = await (0, http_js_1.postJSON)(`${validator_js_1.POLAR_API}/validate`, {
|
|
76
81
|
key,
|
|
77
|
-
|
|
82
|
+
organization_id: validator_js_1.POLAR_ORG_ID,
|
|
83
|
+
activation_id: activationId,
|
|
78
84
|
});
|
|
79
|
-
if (
|
|
80
|
-
//
|
|
85
|
+
if (validateResponse.status === 'granted') {
|
|
86
|
+
// 4. Save license file
|
|
81
87
|
const now = new Date();
|
|
82
88
|
const validUntil = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
|
|
83
89
|
(0, storage_js_1.writeLicenseFile)({
|
|
84
90
|
cache: {
|
|
85
|
-
license:
|
|
91
|
+
license: {
|
|
92
|
+
key,
|
|
93
|
+
tier: 'pro',
|
|
94
|
+
email: '',
|
|
95
|
+
activatedAt: now.toISOString(),
|
|
96
|
+
expiresAt: validateResponse.expires_at || '',
|
|
97
|
+
maxScansPerMonth: 50,
|
|
98
|
+
activationId,
|
|
99
|
+
},
|
|
86
100
|
validatedAt: now.toISOString(),
|
|
87
101
|
validUntil: validUntil.toISOString(),
|
|
88
102
|
},
|
|
89
103
|
});
|
|
90
104
|
console.log(colors.green('License activated successfully!'));
|
|
91
|
-
console.log(` Tier: ${colors.bold(
|
|
92
|
-
console.log(`
|
|
93
|
-
|
|
94
|
-
|
|
105
|
+
console.log(` Tier: ${colors.bold('PRO')}`);
|
|
106
|
+
console.log(` Scans/month: 50`);
|
|
107
|
+
if (validateResponse.expires_at) {
|
|
108
|
+
console.log(` Expires: ${validateResponse.expires_at}`);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(` Expires: ${colors.green('Never (lifetime)')}`);
|
|
112
|
+
}
|
|
113
|
+
console.log(` Device: ${label}`);
|
|
95
114
|
}
|
|
96
115
|
else {
|
|
97
|
-
console.error(colors.red(`Activation failed: ${
|
|
116
|
+
console.error(colors.red(`Activation failed: License status is "${validateResponse.status}"`));
|
|
98
117
|
}
|
|
99
118
|
}
|
|
100
119
|
catch (err) {
|
|
101
|
-
console.error(colors.red('Could not reach license server.'));
|
|
120
|
+
console.error(colors.red('Could not reach Polar.sh license server.'));
|
|
102
121
|
console.error(colors.dim(err instanceof Error ? err.message : String(err)));
|
|
103
122
|
}
|
|
104
123
|
}
|
|
@@ -111,15 +130,18 @@ async function deactivateCommand() {
|
|
|
111
130
|
console.log(colors.yellow('No active license found.'));
|
|
112
131
|
return;
|
|
113
132
|
}
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
133
|
+
const activationId = file.cache.license.activationId;
|
|
134
|
+
if (activationId) {
|
|
135
|
+
try {
|
|
136
|
+
await (0, http_js_1.postJSON)(`${validator_js_1.POLAR_API}/deactivate`, {
|
|
137
|
+
key: file.cache.license.key,
|
|
138
|
+
organization_id: validator_js_1.POLAR_ORG_ID,
|
|
139
|
+
activation_id: activationId,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// Server unreachable — still remove local license
|
|
144
|
+
}
|
|
123
145
|
}
|
|
124
146
|
(0, storage_js_1.deleteLicenseFile)();
|
|
125
147
|
console.log(colors.green('License deactivated. Reverted to Free tier.'));
|
|
@@ -140,14 +162,19 @@ async function statusCommand() {
|
|
|
140
162
|
console.log(` Source: ${tier.source === 'license' ? 'License key' : 'Default (no key)'}`);
|
|
141
163
|
if (file) {
|
|
142
164
|
const cache = file.cache;
|
|
143
|
-
console.log(` Key: ${cache.license.key.substring(0,
|
|
144
|
-
|
|
145
|
-
|
|
165
|
+
console.log(` Key: ${cache.license.key.substring(0, 12)}...`);
|
|
166
|
+
if (cache.license.expiresAt) {
|
|
167
|
+
console.log(` Expires: ${cache.license.expiresAt}`);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
console.log(` Expires: ${colors.green('Never (lifetime)')}`);
|
|
171
|
+
}
|
|
146
172
|
console.log(` Cache: Valid until ${cache.validUntil}`);
|
|
147
173
|
}
|
|
148
174
|
else {
|
|
149
175
|
console.log('');
|
|
150
|
-
console.log(colors.dim('
|
|
176
|
+
console.log(colors.dim(' Buy Pro: https://shield.codemeant.dev/#pricing'));
|
|
177
|
+
console.log(colors.dim(' Activate: project-shield activate PSH_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'));
|
|
151
178
|
}
|
|
152
179
|
console.log('');
|
|
153
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/license/commands.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/license/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/license/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/license/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/license/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { LicenseCache, TierStatus, ValidateResponse } from './types.js';
|
|
2
|
+
declare const POLAR_API = "https://api.polar.sh/v1/customer-portal/license-keys";
|
|
3
|
+
declare const POLAR_ORG_ID = "123dc1e7-3826-45ad-aa60-9617a785d187";
|
|
2
4
|
/**
|
|
3
|
-
* Validate key format:
|
|
5
|
+
* Validate key format: PSH_<UUID4> (Polar.sh format)
|
|
4
6
|
*/
|
|
5
7
|
export declare function isValidKeyFormat(key: string): boolean;
|
|
6
8
|
/**
|
|
7
|
-
* Validate license with
|
|
9
|
+
* Validate license with Polar.sh (public endpoint, no auth required).
|
|
8
10
|
*/
|
|
9
|
-
export declare function validateWithServer(key: string): Promise<ValidateResponse>;
|
|
11
|
+
export declare function validateWithServer(key: string, activationId?: string): Promise<ValidateResponse>;
|
|
10
12
|
/**
|
|
11
13
|
* Check if cache is within the 7-day validity window.
|
|
12
14
|
*/
|
|
@@ -19,10 +21,11 @@ export declare function isInGracePeriod(cache: LicenseCache): boolean;
|
|
|
19
21
|
* Main license validation flow:
|
|
20
22
|
* 1. No license.json → free (default)
|
|
21
23
|
* 2. Cache valid (7 days) → return cached tier
|
|
22
|
-
* 3. Cache expired → try
|
|
24
|
+
* 3. Cache expired → try Polar.sh re-validation
|
|
23
25
|
* 4. Server success → update cache, return tier
|
|
24
26
|
* 5. Server fail + grace period → cached tier + warning
|
|
25
27
|
* 6. Grace expired → downgrade to free
|
|
26
28
|
*/
|
|
27
29
|
export declare function validateLicense(): Promise<TierStatus>;
|
|
30
|
+
export { POLAR_API, POLAR_ORG_ID };
|
|
28
31
|
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/license/validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/license/validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG7E,QAAA,MAAM,SAAS,yDAAyD,CAAC;AACzE,QAAA,MAAM,YAAY,yCAAyC,CAAC;AAQ5D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2BtG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAIzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAK5D;AAkBD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CA6C3D;AAED,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POLAR_ORG_ID = exports.POLAR_API = void 0;
|
|
3
4
|
exports.isValidKeyFormat = isValidKeyFormat;
|
|
4
5
|
exports.validateWithServer = validateWithServer;
|
|
5
6
|
exports.isCacheValid = isCacheValid;
|
|
@@ -8,22 +9,48 @@ exports.validateLicense = validateLicense;
|
|
|
8
9
|
const storage_js_1 = require("./storage.js");
|
|
9
10
|
const usage_js_1 = require("./usage.js");
|
|
10
11
|
const http_js_1 = require("./http.js");
|
|
11
|
-
|
|
12
|
-
const
|
|
12
|
+
// ─── Polar.sh Configuration ───────────────────────────────────
|
|
13
|
+
const POLAR_API = 'https://api.polar.sh/v1/customer-portal/license-keys';
|
|
14
|
+
exports.POLAR_API = POLAR_API;
|
|
15
|
+
const POLAR_ORG_ID = '123dc1e7-3826-45ad-aa60-9617a785d187';
|
|
16
|
+
exports.POLAR_ORG_ID = POLAR_ORG_ID;
|
|
17
|
+
// Polar key format: PSH_<UUID4> e.g. PSH_a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
|
18
|
+
const KEY_PATTERN = /^PSH_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
13
19
|
const CACHE_DAYS = 7;
|
|
14
20
|
const GRACE_DAYS = 3;
|
|
15
21
|
/**
|
|
16
|
-
* Validate key format:
|
|
22
|
+
* Validate key format: PSH_<UUID4> (Polar.sh format)
|
|
17
23
|
*/
|
|
18
24
|
function isValidKeyFormat(key) {
|
|
19
25
|
return KEY_PATTERN.test(key);
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
|
-
* Validate license with
|
|
28
|
+
* Validate license with Polar.sh (public endpoint, no auth required).
|
|
23
29
|
*/
|
|
24
|
-
async function validateWithServer(key) {
|
|
25
|
-
const
|
|
26
|
-
|
|
30
|
+
async function validateWithServer(key, activationId) {
|
|
31
|
+
const body = {
|
|
32
|
+
key,
|
|
33
|
+
organization_id: POLAR_ORG_ID,
|
|
34
|
+
};
|
|
35
|
+
if (activationId) {
|
|
36
|
+
body.activation_id = activationId;
|
|
37
|
+
}
|
|
38
|
+
const response = await (0, http_js_1.postJSON)(`${POLAR_API}/validate`, body);
|
|
39
|
+
if (response.status === 'granted') {
|
|
40
|
+
return {
|
|
41
|
+
valid: true,
|
|
42
|
+
license: {
|
|
43
|
+
key,
|
|
44
|
+
tier: 'pro',
|
|
45
|
+
email: '',
|
|
46
|
+
activatedAt: response.last_validated_at || new Date().toISOString(),
|
|
47
|
+
expiresAt: response.expires_at || '',
|
|
48
|
+
maxScansPerMonth: 50,
|
|
49
|
+
activationId,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return { valid: false, error: `License status: ${response.status ?? 'unknown'}` };
|
|
27
54
|
}
|
|
28
55
|
/**
|
|
29
56
|
* Check if cache is within the 7-day validity window.
|
|
@@ -57,7 +84,7 @@ function makeTierStatus(tier, maxScans, source) {
|
|
|
57
84
|
* Main license validation flow:
|
|
58
85
|
* 1. No license.json → free (default)
|
|
59
86
|
* 2. Cache valid (7 days) → return cached tier
|
|
60
|
-
* 3. Cache expired → try
|
|
87
|
+
* 3. Cache expired → try Polar.sh re-validation
|
|
61
88
|
* 4. Server success → update cache, return tier
|
|
62
89
|
* 5. Server fail + grace period → cached tier + warning
|
|
63
90
|
* 6. Grace expired → downgrade to free
|
|
@@ -74,9 +101,9 @@ async function validateLicense() {
|
|
|
74
101
|
const max = cache.license.tier === 'pro' ? 50 : 5;
|
|
75
102
|
return makeTierStatus(cache.license.tier, max, 'license');
|
|
76
103
|
}
|
|
77
|
-
// 3. Cache expired → try
|
|
104
|
+
// 3. Cache expired → try Polar.sh
|
|
78
105
|
try {
|
|
79
|
-
const response = await validateWithServer(cache.license.key);
|
|
106
|
+
const response = await validateWithServer(cache.license.key, cache.license.activationId);
|
|
80
107
|
if (response.valid && response.license) {
|
|
81
108
|
// 4. Server success → update cache
|
|
82
109
|
const now = new Date();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/license/validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/license/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "project-shield",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Security scanner for AI coders and MCP users — detects API keys, secrets, and PII",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/",
|
|
20
|
-
"rules/"
|
|
20
|
+
"rules/",
|
|
21
|
+
"LICENSE"
|
|
21
22
|
],
|
|
22
23
|
"keywords": [
|
|
23
24
|
"security",
|
|
@@ -31,8 +32,16 @@
|
|
|
31
32
|
"claude",
|
|
32
33
|
"llm"
|
|
33
34
|
],
|
|
34
|
-
"author": "",
|
|
35
|
+
"author": "ShovelMaker91",
|
|
35
36
|
"license": "MIT",
|
|
37
|
+
"homepage": "https://github.com/Whitening-Sinabro/project-shield#readme",
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/Whitening-Sinabro/project-shield.git"
|
|
41
|
+
},
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/Whitening-Sinabro/project-shield/issues"
|
|
44
|
+
},
|
|
36
45
|
"type": "commonjs",
|
|
37
46
|
"dependencies": {
|
|
38
47
|
"chalk": "^5.6.2",
|