compromising-position 1.0.0
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 +250 -0
- package/bin/compromising-position +29 -0
- package/dist/checks/hibp-email.d.ts +7 -0
- package/dist/checks/hibp-email.d.ts.map +1 -0
- package/dist/checks/hibp-email.js +99 -0
- package/dist/checks/hibp-email.js.map +1 -0
- package/dist/checks/hibp-password.d.ts +13 -0
- package/dist/checks/hibp-password.d.ts.map +1 -0
- package/dist/checks/hibp-password.js +119 -0
- package/dist/checks/hibp-password.js.map +1 -0
- package/dist/checks/local-check.d.ts +9 -0
- package/dist/checks/local-check.d.ts.map +1 -0
- package/dist/checks/local-check.js +36 -0
- package/dist/checks/local-check.js.map +1 -0
- package/dist/checks/plugin.d.ts +29 -0
- package/dist/checks/plugin.d.ts.map +1 -0
- package/dist/checks/plugin.js +2 -0
- package/dist/checks/plugin.js.map +1 -0
- package/dist/checks/plugins/common-secrets-plugin.d.ts +3 -0
- package/dist/checks/plugins/common-secrets-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/common-secrets-plugin.js +130 -0
- package/dist/checks/plugins/common-secrets-plugin.js.map +1 -0
- package/dist/checks/plugins/dehashed-plugin.d.ts +3 -0
- package/dist/checks/plugins/dehashed-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/dehashed-plugin.js +86 -0
- package/dist/checks/plugins/dehashed-plugin.js.map +1 -0
- package/dist/checks/plugins/emailrep-plugin.d.ts +3 -0
- package/dist/checks/plugins/emailrep-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/emailrep-plugin.js +95 -0
- package/dist/checks/plugins/emailrep-plugin.js.map +1 -0
- package/dist/checks/plugins/gitguardian-hsl-plugin.d.ts +3 -0
- package/dist/checks/plugins/gitguardian-hsl-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/gitguardian-hsl-plugin.js +75 -0
- package/dist/checks/plugins/gitguardian-hsl-plugin.js.map +1 -0
- package/dist/checks/plugins/hibp-email-plugin.d.ts +3 -0
- package/dist/checks/plugins/hibp-email-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/hibp-email-plugin.js +73 -0
- package/dist/checks/plugins/hibp-email-plugin.js.map +1 -0
- package/dist/checks/plugins/hibp-password-plugin.d.ts +3 -0
- package/dist/checks/plugins/hibp-password-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/hibp-password-plugin.js +39 -0
- package/dist/checks/plugins/hibp-password-plugin.js.map +1 -0
- package/dist/checks/plugins/intelx-plugin.d.ts +3 -0
- package/dist/checks/plugins/intelx-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/intelx-plugin.js +113 -0
- package/dist/checks/plugins/intelx-plugin.js.map +1 -0
- package/dist/checks/plugins/leakcheck-plugin.d.ts +3 -0
- package/dist/checks/plugins/leakcheck-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/leakcheck-plugin.js +82 -0
- package/dist/checks/plugins/leakcheck-plugin.js.map +1 -0
- package/dist/checks/plugins/local-analysis-plugin.d.ts +3 -0
- package/dist/checks/plugins/local-analysis-plugin.d.ts.map +1 -0
- package/dist/checks/plugins/local-analysis-plugin.js +36 -0
- package/dist/checks/plugins/local-analysis-plugin.js.map +1 -0
- package/dist/checks/registry.d.ts +24 -0
- package/dist/checks/registry.d.ts.map +1 -0
- package/dist/checks/registry.js +53 -0
- package/dist/checks/registry.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +56 -0
- package/dist/config/config.js.map +1 -0
- package/dist/core/entropy.d.ts +23 -0
- package/dist/core/entropy.d.ts.map +1 -0
- package/dist/core/entropy.js +180 -0
- package/dist/core/entropy.js.map +1 -0
- package/dist/core/fingerprint.d.ts +7 -0
- package/dist/core/fingerprint.d.ts.map +1 -0
- package/dist/core/fingerprint.js +10 -0
- package/dist/core/fingerprint.js.map +1 -0
- package/dist/core/key-identifier.d.ts +9 -0
- package/dist/core/key-identifier.d.ts.map +1 -0
- package/dist/core/key-identifier.js +310 -0
- package/dist/core/key-identifier.js.map +1 -0
- package/dist/core/sanitize.d.ts +7 -0
- package/dist/core/sanitize.d.ts.map +1 -0
- package/dist/core/sanitize.js +15 -0
- package/dist/core/sanitize.js.map +1 -0
- package/dist/core/secure-buffer.d.ts +61 -0
- package/dist/core/secure-buffer.d.ts.map +1 -0
- package/dist/core/secure-buffer.js +122 -0
- package/dist/core/secure-buffer.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +472 -0
- package/dist/index.js.map +1 -0
- package/dist/input/batch-parser.d.ts +21 -0
- package/dist/input/batch-parser.d.ts.map +1 -0
- package/dist/input/batch-parser.js +65 -0
- package/dist/input/batch-parser.js.map +1 -0
- package/dist/input/secure-prompt.d.ts +11 -0
- package/dist/input/secure-prompt.d.ts.map +1 -0
- package/dist/input/secure-prompt.js +105 -0
- package/dist/input/secure-prompt.js.map +1 -0
- package/dist/output/audit-log.d.ts +11 -0
- package/dist/output/audit-log.d.ts.map +1 -0
- package/dist/output/audit-log.js +50 -0
- package/dist/output/audit-log.js.map +1 -0
- package/dist/output/csv.d.ts +6 -0
- package/dist/output/csv.d.ts.map +1 -0
- package/dist/output/csv.js +28 -0
- package/dist/output/csv.js.map +1 -0
- package/dist/output/formatter.d.ts +12 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +154 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/sarif.d.ts +6 -0
- package/dist/output/sarif.d.ts.map +1 -0
- package/dist/output/sarif.js +52 -0
- package/dist/output/sarif.js.map +1 -0
- package/dist/types/index.d.ts +141 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +45 -0
- package/dist/types/index.js.map +1 -0
- package/dist/verification/anthropic-verifier.d.ts +3 -0
- package/dist/verification/anthropic-verifier.d.ts.map +1 -0
- package/dist/verification/anthropic-verifier.js +56 -0
- package/dist/verification/anthropic-verifier.js.map +1 -0
- package/dist/verification/aws-verifier.d.ts +14 -0
- package/dist/verification/aws-verifier.d.ts.map +1 -0
- package/dist/verification/aws-verifier.js +30 -0
- package/dist/verification/aws-verifier.js.map +1 -0
- package/dist/verification/github-verifier.d.ts +4 -0
- package/dist/verification/github-verifier.d.ts.map +1 -0
- package/dist/verification/github-verifier.js +62 -0
- package/dist/verification/github-verifier.js.map +1 -0
- package/dist/verification/openai-verifier.d.ts +4 -0
- package/dist/verification/openai-verifier.d.ts.map +1 -0
- package/dist/verification/openai-verifier.js +59 -0
- package/dist/verification/openai-verifier.js.map +1 -0
- package/dist/verification/slack-verifier.d.ts +4 -0
- package/dist/verification/slack-verifier.d.ts.map +1 -0
- package/dist/verification/slack-verifier.js +67 -0
- package/dist/verification/slack-verifier.js.map +1 -0
- package/dist/verification/verifier-registry.d.ts +13 -0
- package/dist/verification/verifier-registry.d.ts.map +1 -0
- package/dist/verification/verifier-registry.js +19 -0
- package/dist/verification/verifier-registry.js.map +1 -0
- package/dist/verification/verifier.d.ts +24 -0
- package/dist/verification/verifier.d.ts.map +1 -0
- package/dist/verification/verifier.js +2 -0
- package/dist/verification/verifier.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropy.js","sourceRoot":"","sources":["../../src/core/entropy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SecureBuffer } from "./secure-buffer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Generate a truncated SHA-256 fingerprint for audit logging.
|
|
4
|
+
* Returns first 16 hex chars — enough for identification, not enough to reverse.
|
|
5
|
+
*/
|
|
6
|
+
export declare function fingerprint(secret: SecureBuffer): string;
|
|
7
|
+
//# sourceMappingURL=fingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/core/fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Number of hex characters to keep from SHA-256 for audit fingerprint. */
|
|
2
|
+
const FINGERPRINT_LENGTH = 16;
|
|
3
|
+
/**
|
|
4
|
+
* Generate a truncated SHA-256 fingerprint for audit logging.
|
|
5
|
+
* Returns first 16 hex chars — enough for identification, not enough to reverse.
|
|
6
|
+
*/
|
|
7
|
+
export function fingerprint(secret) {
|
|
8
|
+
return secret.sha256Hex().slice(0, FINGERPRINT_LENGTH);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../src/core/fingerprint.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SecureBuffer } from "./secure-buffer.js";
|
|
2
|
+
import { type KeyIdentification } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Identify the provider and confidence for a given key.
|
|
5
|
+
* Accepts SecureBuffer — regex matching is done via testPattern()
|
|
6
|
+
* to keep the temporary string scoped inside SecureBuffer.
|
|
7
|
+
*/
|
|
8
|
+
export declare function identifyKey(secret: SecureBuffer): KeyIdentification;
|
|
9
|
+
//# sourceMappingURL=key-identifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-identifier.d.ts","sourceRoot":"","sources":["../../src/core/key-identifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAoSxE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CAoBnE"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { KeyProvider } from "../types/index.js";
|
|
2
|
+
const KEY_PATTERNS = [
|
|
3
|
+
// OpenAI project keys
|
|
4
|
+
{
|
|
5
|
+
provider: KeyProvider.OpenAI,
|
|
6
|
+
regex: /^sk-proj-[A-Za-z0-9_-]{80,180}$/,
|
|
7
|
+
confidence: "high",
|
|
8
|
+
description: "OpenAI project API key",
|
|
9
|
+
},
|
|
10
|
+
// OpenAI service account keys
|
|
11
|
+
{
|
|
12
|
+
provider: KeyProvider.OpenAIService,
|
|
13
|
+
regex: /^sk-svcacct-[A-Za-z0-9_-]{80,180}$/,
|
|
14
|
+
confidence: "high",
|
|
15
|
+
description: "OpenAI service account key",
|
|
16
|
+
},
|
|
17
|
+
// OpenAI legacy keys
|
|
18
|
+
{
|
|
19
|
+
provider: KeyProvider.OpenAI,
|
|
20
|
+
regex: /^sk-[A-Za-z0-9]{32,64}$/,
|
|
21
|
+
confidence: "medium",
|
|
22
|
+
description: "OpenAI API key (legacy format)",
|
|
23
|
+
},
|
|
24
|
+
// Anthropic
|
|
25
|
+
{
|
|
26
|
+
provider: KeyProvider.Anthropic,
|
|
27
|
+
regex: /^sk-ant-api03-[A-Za-z0-9_-]{90,110}$/,
|
|
28
|
+
confidence: "high",
|
|
29
|
+
description: "Anthropic API key",
|
|
30
|
+
},
|
|
31
|
+
// AWS Access Key ID
|
|
32
|
+
{
|
|
33
|
+
provider: KeyProvider.AWS,
|
|
34
|
+
regex: /^AKIA[0-9A-Z]{16}$/,
|
|
35
|
+
confidence: "high",
|
|
36
|
+
description: "AWS Access Key ID",
|
|
37
|
+
},
|
|
38
|
+
// GitHub Personal Access Token (classic)
|
|
39
|
+
{
|
|
40
|
+
provider: KeyProvider.GitHubPAT,
|
|
41
|
+
regex: /^ghp_[a-zA-Z0-9]{36}$/,
|
|
42
|
+
confidence: "high",
|
|
43
|
+
description: "GitHub Personal Access Token (classic)",
|
|
44
|
+
},
|
|
45
|
+
// GitHub Fine-Grained PAT
|
|
46
|
+
{
|
|
47
|
+
provider: KeyProvider.GitHubFineGrained,
|
|
48
|
+
regex: /^github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59}$/,
|
|
49
|
+
confidence: "high",
|
|
50
|
+
description: "GitHub Fine-Grained Personal Access Token",
|
|
51
|
+
},
|
|
52
|
+
// Stripe live secret key
|
|
53
|
+
{
|
|
54
|
+
provider: KeyProvider.StripeLive,
|
|
55
|
+
regex: /^sk_live_[0-9a-zA-Z]{24,34}$/,
|
|
56
|
+
confidence: "high",
|
|
57
|
+
description: "Stripe live secret key",
|
|
58
|
+
},
|
|
59
|
+
// Stripe test secret key
|
|
60
|
+
{
|
|
61
|
+
provider: KeyProvider.StripeTest,
|
|
62
|
+
regex: /^sk_test_[0-9a-zA-Z]{24,34}$/,
|
|
63
|
+
confidence: "high",
|
|
64
|
+
description: "Stripe test secret key",
|
|
65
|
+
},
|
|
66
|
+
// Google API key
|
|
67
|
+
{
|
|
68
|
+
provider: KeyProvider.GoogleAPI,
|
|
69
|
+
regex: /^AIza[0-9A-Za-z\-_]{35}$/,
|
|
70
|
+
confidence: "high",
|
|
71
|
+
description: "Google API key",
|
|
72
|
+
},
|
|
73
|
+
// Slack Bot Token
|
|
74
|
+
{
|
|
75
|
+
provider: KeyProvider.SlackBot,
|
|
76
|
+
regex: /^xoxb-[0-9]+-[0-9]+-[a-zA-Z0-9]+$/,
|
|
77
|
+
confidence: "high",
|
|
78
|
+
description: "Slack Bot token",
|
|
79
|
+
},
|
|
80
|
+
// Slack User Token
|
|
81
|
+
{
|
|
82
|
+
provider: KeyProvider.SlackUser,
|
|
83
|
+
regex: /^xoxp-[0-9]+-[0-9]+-[0-9]+-[a-f0-9]+$/,
|
|
84
|
+
confidence: "high",
|
|
85
|
+
description: "Slack User token",
|
|
86
|
+
},
|
|
87
|
+
// SendGrid
|
|
88
|
+
{
|
|
89
|
+
provider: KeyProvider.SendGrid,
|
|
90
|
+
regex: /^SG\.[A-Za-z0-9_-]{22}\.[A-Za-z0-9_-]{43}$/,
|
|
91
|
+
confidence: "high",
|
|
92
|
+
description: "SendGrid API key",
|
|
93
|
+
},
|
|
94
|
+
// Twilio
|
|
95
|
+
{
|
|
96
|
+
provider: KeyProvider.Twilio,
|
|
97
|
+
regex: /^SK[0-9a-fA-F]{32}$/,
|
|
98
|
+
confidence: "high",
|
|
99
|
+
description: "Twilio API key",
|
|
100
|
+
},
|
|
101
|
+
// Mailgun
|
|
102
|
+
{
|
|
103
|
+
provider: KeyProvider.Mailgun,
|
|
104
|
+
regex: /^key-[0-9a-f]{32}$/,
|
|
105
|
+
confidence: "high",
|
|
106
|
+
description: "Mailgun API key",
|
|
107
|
+
},
|
|
108
|
+
// Discord Bot Token
|
|
109
|
+
{
|
|
110
|
+
provider: KeyProvider.DiscordBot,
|
|
111
|
+
regex: /^[A-Za-z0-9_-]{24}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}$/,
|
|
112
|
+
confidence: "medium",
|
|
113
|
+
description: "Discord Bot token",
|
|
114
|
+
},
|
|
115
|
+
// Telegram Bot Token
|
|
116
|
+
{
|
|
117
|
+
provider: KeyProvider.TelegramBot,
|
|
118
|
+
regex: /^[0-9]{8,10}:[A-Za-z0-9_-]{35}$/,
|
|
119
|
+
confidence: "high",
|
|
120
|
+
description: "Telegram Bot token",
|
|
121
|
+
},
|
|
122
|
+
// GitLab Personal Access Token
|
|
123
|
+
{
|
|
124
|
+
provider: KeyProvider.GitLabPAT,
|
|
125
|
+
regex: /^glpat-[A-Za-z0-9_-]{20,}$/,
|
|
126
|
+
confidence: "high",
|
|
127
|
+
description: "GitLab Personal Access Token",
|
|
128
|
+
},
|
|
129
|
+
// GitLab Pipeline Trigger Token
|
|
130
|
+
{
|
|
131
|
+
provider: KeyProvider.GitLabPipeline,
|
|
132
|
+
regex: /^glptt-[A-Za-z0-9_-]{20,}$/,
|
|
133
|
+
confidence: "high",
|
|
134
|
+
description: "GitLab Pipeline Trigger Token",
|
|
135
|
+
},
|
|
136
|
+
// npm token
|
|
137
|
+
{
|
|
138
|
+
provider: KeyProvider.NpmToken,
|
|
139
|
+
regex: /^npm_[A-Za-z0-9]{36,}$/,
|
|
140
|
+
confidence: "high",
|
|
141
|
+
description: "npm access token",
|
|
142
|
+
},
|
|
143
|
+
// PyPI token
|
|
144
|
+
{
|
|
145
|
+
provider: KeyProvider.PyPIToken,
|
|
146
|
+
regex: /^pypi-AgEIcHlwaS5vcmc[A-Za-z0-9_-]{50,}$/,
|
|
147
|
+
confidence: "high",
|
|
148
|
+
description: "PyPI API token",
|
|
149
|
+
},
|
|
150
|
+
// Shopify Private App Token
|
|
151
|
+
{
|
|
152
|
+
provider: KeyProvider.ShopifyPrivate,
|
|
153
|
+
regex: /^shppa_[a-fA-F0-9]{32,}$/,
|
|
154
|
+
confidence: "high",
|
|
155
|
+
description: "Shopify Private App token",
|
|
156
|
+
},
|
|
157
|
+
// Shopify Access Token
|
|
158
|
+
{
|
|
159
|
+
provider: KeyProvider.ShopifyAccess,
|
|
160
|
+
regex: /^shpat_[a-fA-F0-9]{32,}$/,
|
|
161
|
+
confidence: "high",
|
|
162
|
+
description: "Shopify Access token",
|
|
163
|
+
},
|
|
164
|
+
// DigitalOcean Personal Access Token
|
|
165
|
+
{
|
|
166
|
+
provider: KeyProvider.DigitalOceanPAT,
|
|
167
|
+
regex: /^dop_v1_[a-f0-9]{64}$/,
|
|
168
|
+
confidence: "high",
|
|
169
|
+
description: "DigitalOcean Personal Access Token",
|
|
170
|
+
},
|
|
171
|
+
// DigitalOcean OAuth Token
|
|
172
|
+
{
|
|
173
|
+
provider: KeyProvider.DigitalOceanOAuth,
|
|
174
|
+
regex: /^doo_v1_[a-f0-9]{64}$/,
|
|
175
|
+
confidence: "high",
|
|
176
|
+
description: "DigitalOcean OAuth token",
|
|
177
|
+
},
|
|
178
|
+
// Supabase
|
|
179
|
+
{
|
|
180
|
+
provider: KeyProvider.Supabase,
|
|
181
|
+
regex: /^sbp_[a-f0-9]{40,}$/,
|
|
182
|
+
confidence: "high",
|
|
183
|
+
description: "Supabase service key",
|
|
184
|
+
},
|
|
185
|
+
// HashiCorp Vault
|
|
186
|
+
{
|
|
187
|
+
provider: KeyProvider.HashiCorpVault,
|
|
188
|
+
regex: /^hvs\.[A-Za-z0-9_-]{24,}$/,
|
|
189
|
+
confidence: "high",
|
|
190
|
+
description: "HashiCorp Vault token",
|
|
191
|
+
},
|
|
192
|
+
// Terraform Cloud
|
|
193
|
+
{
|
|
194
|
+
provider: KeyProvider.TerraformCloud,
|
|
195
|
+
regex: /^atlasv1-[A-Za-z0-9_-]{60,}$/,
|
|
196
|
+
confidence: "high",
|
|
197
|
+
description: "Terraform Cloud API token",
|
|
198
|
+
},
|
|
199
|
+
// PlanetScale
|
|
200
|
+
{
|
|
201
|
+
provider: KeyProvider.PlanetScale,
|
|
202
|
+
regex: /^pscale_tkn_[A-Za-z0-9_-]{30,}$/,
|
|
203
|
+
confidence: "high",
|
|
204
|
+
description: "PlanetScale database token",
|
|
205
|
+
},
|
|
206
|
+
// Postman
|
|
207
|
+
{
|
|
208
|
+
provider: KeyProvider.Postman,
|
|
209
|
+
regex: /^PMAK-[A-Za-z0-9]{24,}-[A-Za-z0-9]{34,}$/,
|
|
210
|
+
confidence: "high",
|
|
211
|
+
description: "Postman API key",
|
|
212
|
+
},
|
|
213
|
+
// Grafana Service Account
|
|
214
|
+
{
|
|
215
|
+
provider: KeyProvider.GrafanaService,
|
|
216
|
+
regex: /^glsa_[A-Za-z0-9_]{32,}_[a-f0-9]{8}$/,
|
|
217
|
+
confidence: "high",
|
|
218
|
+
description: "Grafana Service Account token",
|
|
219
|
+
},
|
|
220
|
+
// Linear
|
|
221
|
+
{
|
|
222
|
+
provider: KeyProvider.Linear,
|
|
223
|
+
regex: /^lin_api_[A-Za-z0-9]{40,}$/,
|
|
224
|
+
confidence: "high",
|
|
225
|
+
description: "Linear API key",
|
|
226
|
+
},
|
|
227
|
+
// Netlify
|
|
228
|
+
{
|
|
229
|
+
provider: KeyProvider.Netlify,
|
|
230
|
+
regex: /^nfp_[A-Za-z0-9]{40,}$/,
|
|
231
|
+
confidence: "high",
|
|
232
|
+
description: "Netlify personal access token",
|
|
233
|
+
},
|
|
234
|
+
// Doppler Service Token
|
|
235
|
+
{
|
|
236
|
+
provider: KeyProvider.DopplerServiceToken,
|
|
237
|
+
regex: /^dp\.st\.[A-Za-z0-9_-]{40,}$/,
|
|
238
|
+
confidence: "high",
|
|
239
|
+
description: "Doppler service token",
|
|
240
|
+
},
|
|
241
|
+
// Doppler Service Account
|
|
242
|
+
{
|
|
243
|
+
provider: KeyProvider.DopplerServiceAccount,
|
|
244
|
+
regex: /^dp\.sa\.[A-Za-z0-9_-]{40,}$/,
|
|
245
|
+
confidence: "high",
|
|
246
|
+
description: "Doppler service account token",
|
|
247
|
+
},
|
|
248
|
+
// Buildkite
|
|
249
|
+
{
|
|
250
|
+
provider: KeyProvider.Buildkite,
|
|
251
|
+
regex: /^bkua_[A-Za-z0-9]{40,}$/,
|
|
252
|
+
confidence: "high",
|
|
253
|
+
description: "Buildkite Agent token",
|
|
254
|
+
},
|
|
255
|
+
// Atlassian API Token
|
|
256
|
+
{
|
|
257
|
+
provider: KeyProvider.Atlassian,
|
|
258
|
+
regex: /^ATATT3xFfGF0[A-Za-z0-9_-]{50,}$/,
|
|
259
|
+
confidence: "high",
|
|
260
|
+
description: "Atlassian API token",
|
|
261
|
+
},
|
|
262
|
+
// Figma
|
|
263
|
+
{
|
|
264
|
+
provider: KeyProvider.Figma,
|
|
265
|
+
regex: /^figd_[A-Za-z0-9_-]{22,}$/,
|
|
266
|
+
confidence: "high",
|
|
267
|
+
description: "Figma personal access token",
|
|
268
|
+
},
|
|
269
|
+
// CircleCI
|
|
270
|
+
{
|
|
271
|
+
provider: KeyProvider.CircleCI,
|
|
272
|
+
regex: /^CIRCLE[A-Za-z0-9_-]{32,}$/,
|
|
273
|
+
confidence: "medium",
|
|
274
|
+
description: "CircleCI API token",
|
|
275
|
+
},
|
|
276
|
+
// Notion
|
|
277
|
+
{
|
|
278
|
+
provider: KeyProvider.Notion,
|
|
279
|
+
regex: /^secret_[A-Za-z0-9]{43}$/,
|
|
280
|
+
confidence: "medium",
|
|
281
|
+
description: "Notion integration token",
|
|
282
|
+
},
|
|
283
|
+
];
|
|
284
|
+
/**
|
|
285
|
+
* Identify the provider and confidence for a given key.
|
|
286
|
+
* Accepts SecureBuffer — regex matching is done via testPattern()
|
|
287
|
+
* to keep the temporary string scoped inside SecureBuffer.
|
|
288
|
+
*/
|
|
289
|
+
export function identifyKey(secret) {
|
|
290
|
+
// Use withString to trim once, then test trimmed value against patterns.
|
|
291
|
+
// The string is scoped to the callback and not returned.
|
|
292
|
+
return secret.withString((raw) => {
|
|
293
|
+
const trimmed = raw.trim();
|
|
294
|
+
for (const pattern of KEY_PATTERNS) {
|
|
295
|
+
if (pattern.regex.test(trimmed)) {
|
|
296
|
+
return {
|
|
297
|
+
provider: pattern.provider,
|
|
298
|
+
confidence: pattern.confidence,
|
|
299
|
+
description: pattern.description,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return {
|
|
304
|
+
provider: KeyProvider.Unknown,
|
|
305
|
+
confidence: "low",
|
|
306
|
+
description: "Unknown key format",
|
|
307
|
+
};
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=key-identifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-identifier.js","sourceRoot":"","sources":["../../src/core/key-identifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitize a string for safe terminal output.
|
|
3
|
+
* Strips ANSI escape sequences and non-printable control characters
|
|
4
|
+
* to prevent terminal escape injection attacks.
|
|
5
|
+
*/
|
|
6
|
+
export declare function sanitizeForTerminal(s: string): string;
|
|
7
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/core/sanitize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQrD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitize a string for safe terminal output.
|
|
3
|
+
* Strips ANSI escape sequences and non-printable control characters
|
|
4
|
+
* to prevent terminal escape injection attacks.
|
|
5
|
+
*/
|
|
6
|
+
export function sanitizeForTerminal(s) {
|
|
7
|
+
return s
|
|
8
|
+
// Remove ANSI escape sequences (CSI, OSC, etc.)
|
|
9
|
+
.replace(/\x1b\[[0-9;]*[A-Za-z]/g, "")
|
|
10
|
+
.replace(/\x1b\][^\x07]*\x07/g, "")
|
|
11
|
+
.replace(/\x1b[^[\]]/g, "")
|
|
12
|
+
// Remove non-printable control characters (keep newline \n and tab \t)
|
|
13
|
+
.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]/g, "");
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/core/sanitize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAS;IAC3C,OAAO,CAAC;QACN,gDAAgD;SAC/C,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;SACrC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QAC3B,uEAAuE;SACtE,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Buffer wrapper that auto-zeroes memory on disposal.
|
|
3
|
+
* Secrets should always be held in SecureBuffer, never plain strings.
|
|
4
|
+
*
|
|
5
|
+
* SECURITY NOTE: Prefer fromBuffer() over fromString(). JavaScript strings
|
|
6
|
+
* are immutable and cannot be zeroed from memory — they persist on the V8
|
|
7
|
+
* heap until garbage collected. fromString() is provided for convenience
|
|
8
|
+
* but the caller's original string will remain in memory.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SecureBuffer {
|
|
11
|
+
#private;
|
|
12
|
+
private constructor();
|
|
13
|
+
static fromBuffer(buf: Buffer): SecureBuffer;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Prefer fromBuffer() — JS strings are immutable and cannot
|
|
16
|
+
* be zeroed from memory. The original `str` will persist until GC.
|
|
17
|
+
*/
|
|
18
|
+
static fromString(str: string): SecureBuffer;
|
|
19
|
+
get length(): number;
|
|
20
|
+
get isDisposed(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the raw buffer. The caller MUST NOT store the reference
|
|
23
|
+
* beyond immediate use, and MUST NOT mutate it.
|
|
24
|
+
*/
|
|
25
|
+
unsafeGetBuffer(): Buffer;
|
|
26
|
+
/**
|
|
27
|
+
* Returns the content as a UTF-8 string.
|
|
28
|
+
*
|
|
29
|
+
* SECURITY WARNING: The returned string is immutable and cannot be
|
|
30
|
+
* zeroed from memory. Minimize use and scope of the return value.
|
|
31
|
+
*/
|
|
32
|
+
unsafeGetString(): string;
|
|
33
|
+
/** Returns full SHA-1 as an uppercase hex string. */
|
|
34
|
+
sha1Hex(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Returns SHA-1 as a raw Buffer (20 bytes). Caller is responsible
|
|
37
|
+
* for zeroing this buffer when done.
|
|
38
|
+
*/
|
|
39
|
+
sha1Buffer(): Buffer;
|
|
40
|
+
sha256Hex(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Test whether the buffer content matches a regex pattern.
|
|
43
|
+
* Internally creates a temporary string, but the scope is minimized
|
|
44
|
+
* to this method call. This avoids exposing the string to callers.
|
|
45
|
+
*/
|
|
46
|
+
testPattern(pattern: RegExp): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Apply a function to the buffer's string representation.
|
|
49
|
+
* The temporary string is scoped to the callback, minimizing exposure.
|
|
50
|
+
* Returns the callback's result without exposing the string to callers.
|
|
51
|
+
*/
|
|
52
|
+
withString<T>(fn: (s: string) => T): T;
|
|
53
|
+
/** Zero out the buffer memory. */
|
|
54
|
+
dispose(): void;
|
|
55
|
+
/** Support `using` keyword (TC39 Explicit Resource Management). */
|
|
56
|
+
[Symbol.dispose](): void;
|
|
57
|
+
/** Never accidentally leak the secret. */
|
|
58
|
+
toString(): string;
|
|
59
|
+
toJSON(): string;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=secure-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../../src/core/secure-buffer.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,qBAAa,YAAY;;IAIvB,OAAO;IAIP,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAO5C;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAK5C,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;IACH,eAAe,IAAI,MAAM;IAKzB;;;;;OAKG;IACH,eAAe,IAAI,MAAM;IAKzB,qDAAqD;IACrD,OAAO,IAAI,MAAM;IAKjB;;;OAGG;IACH,UAAU,IAAI,MAAM;IAKpB,SAAS,IAAI,MAAM;IAQnB;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKrC;;;;OAIG;IACH,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC;IAKtC,kCAAkC;IAClC,OAAO,IAAI,IAAI;IAOf,mEAAmE;IACnE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,0CAA0C;IAC1C,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;CAcjB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Buffer wrapper that auto-zeroes memory on disposal.
|
|
4
|
+
* Secrets should always be held in SecureBuffer, never plain strings.
|
|
5
|
+
*
|
|
6
|
+
* SECURITY NOTE: Prefer fromBuffer() over fromString(). JavaScript strings
|
|
7
|
+
* are immutable and cannot be zeroed from memory — they persist on the V8
|
|
8
|
+
* heap until garbage collected. fromString() is provided for convenience
|
|
9
|
+
* but the caller's original string will remain in memory.
|
|
10
|
+
*/
|
|
11
|
+
export class SecureBuffer {
|
|
12
|
+
#buffer;
|
|
13
|
+
#disposed = false;
|
|
14
|
+
constructor(buffer) {
|
|
15
|
+
this.#buffer = buffer;
|
|
16
|
+
}
|
|
17
|
+
static fromBuffer(buf) {
|
|
18
|
+
// Copy so caller can't mutate our internal buffer
|
|
19
|
+
const copy = Buffer.alloc(buf.length);
|
|
20
|
+
buf.copy(copy);
|
|
21
|
+
return new SecureBuffer(copy);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Prefer fromBuffer() — JS strings are immutable and cannot
|
|
25
|
+
* be zeroed from memory. The original `str` will persist until GC.
|
|
26
|
+
*/
|
|
27
|
+
static fromString(str) {
|
|
28
|
+
const buf = Buffer.from(str, "utf-8");
|
|
29
|
+
return new SecureBuffer(buf);
|
|
30
|
+
}
|
|
31
|
+
get length() {
|
|
32
|
+
this.#ensureNotDisposed();
|
|
33
|
+
return this.#buffer.length;
|
|
34
|
+
}
|
|
35
|
+
get isDisposed() {
|
|
36
|
+
return this.#disposed;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns the raw buffer. The caller MUST NOT store the reference
|
|
40
|
+
* beyond immediate use, and MUST NOT mutate it.
|
|
41
|
+
*/
|
|
42
|
+
unsafeGetBuffer() {
|
|
43
|
+
this.#ensureNotDisposed();
|
|
44
|
+
return this.#buffer;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns the content as a UTF-8 string.
|
|
48
|
+
*
|
|
49
|
+
* SECURITY WARNING: The returned string is immutable and cannot be
|
|
50
|
+
* zeroed from memory. Minimize use and scope of the return value.
|
|
51
|
+
*/
|
|
52
|
+
unsafeGetString() {
|
|
53
|
+
this.#ensureNotDisposed();
|
|
54
|
+
return this.#buffer.toString("utf-8");
|
|
55
|
+
}
|
|
56
|
+
/** Returns full SHA-1 as an uppercase hex string. */
|
|
57
|
+
sha1Hex() {
|
|
58
|
+
this.#ensureNotDisposed();
|
|
59
|
+
return createHash("sha1").update(this.#buffer).digest("hex").toUpperCase();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Returns SHA-1 as a raw Buffer (20 bytes). Caller is responsible
|
|
63
|
+
* for zeroing this buffer when done.
|
|
64
|
+
*/
|
|
65
|
+
sha1Buffer() {
|
|
66
|
+
this.#ensureNotDisposed();
|
|
67
|
+
return createHash("sha1").update(this.#buffer).digest();
|
|
68
|
+
}
|
|
69
|
+
sha256Hex() {
|
|
70
|
+
this.#ensureNotDisposed();
|
|
71
|
+
return createHash("sha256")
|
|
72
|
+
.update(this.#buffer)
|
|
73
|
+
.digest("hex")
|
|
74
|
+
.toLowerCase();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Test whether the buffer content matches a regex pattern.
|
|
78
|
+
* Internally creates a temporary string, but the scope is minimized
|
|
79
|
+
* to this method call. This avoids exposing the string to callers.
|
|
80
|
+
*/
|
|
81
|
+
testPattern(pattern) {
|
|
82
|
+
this.#ensureNotDisposed();
|
|
83
|
+
return pattern.test(this.#buffer.toString("utf-8"));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Apply a function to the buffer's string representation.
|
|
87
|
+
* The temporary string is scoped to the callback, minimizing exposure.
|
|
88
|
+
* Returns the callback's result without exposing the string to callers.
|
|
89
|
+
*/
|
|
90
|
+
withString(fn) {
|
|
91
|
+
this.#ensureNotDisposed();
|
|
92
|
+
return fn(this.#buffer.toString("utf-8"));
|
|
93
|
+
}
|
|
94
|
+
/** Zero out the buffer memory. */
|
|
95
|
+
dispose() {
|
|
96
|
+
if (!this.#disposed) {
|
|
97
|
+
this.#buffer.fill(0);
|
|
98
|
+
this.#disposed = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** Support `using` keyword (TC39 Explicit Resource Management). */
|
|
102
|
+
[Symbol.dispose]() {
|
|
103
|
+
this.dispose();
|
|
104
|
+
}
|
|
105
|
+
/** Never accidentally leak the secret. */
|
|
106
|
+
toString() {
|
|
107
|
+
return "[SecureBuffer: REDACTED]";
|
|
108
|
+
}
|
|
109
|
+
toJSON() {
|
|
110
|
+
return "[SecureBuffer: REDACTED]";
|
|
111
|
+
}
|
|
112
|
+
/** Node.js inspect — also redacted. */
|
|
113
|
+
[Symbol.for("nodejs.util.inspect.custom")]() {
|
|
114
|
+
return "[SecureBuffer: REDACTED]";
|
|
115
|
+
}
|
|
116
|
+
#ensureNotDisposed() {
|
|
117
|
+
if (this.#disposed) {
|
|
118
|
+
throw new Error("SecureBuffer has been disposed");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=secure-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../../src/core/secure-buffer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAqCrD,QAAA,MAAM,QAAQ,eAAsB,CAAC;AA8frC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|