code-secret-handler 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.
Files changed (171) hide show
  1. package/LICENSE +79 -0
  2. package/README.md +221 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +121 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/env/envWriter.d.ts +9 -0
  8. package/dist/env/envWriter.d.ts.map +1 -0
  9. package/dist/env/envWriter.js +76 -0
  10. package/dist/env/envWriter.js.map +1 -0
  11. package/dist/env/keyNamer.d.ts +13 -0
  12. package/dist/env/keyNamer.d.ts.map +1 -0
  13. package/dist/env/keyNamer.js +33 -0
  14. package/dist/env/keyNamer.js.map +1 -0
  15. package/dist/interactive/confirm.d.ts +16 -0
  16. package/dist/interactive/confirm.d.ts.map +1 -0
  17. package/dist/interactive/confirm.js +72 -0
  18. package/dist/interactive/confirm.js.map +1 -0
  19. package/dist/license/gitContext.d.ts +16 -0
  20. package/dist/license/gitContext.d.ts.map +1 -0
  21. package/dist/license/gitContext.js +117 -0
  22. package/dist/license/gitContext.js.map +1 -0
  23. package/dist/license/licenseCheck.d.ts +22 -0
  24. package/dist/license/licenseCheck.d.ts.map +1 -0
  25. package/dist/license/licenseCheck.js +119 -0
  26. package/dist/license/licenseCheck.js.map +1 -0
  27. package/dist/license/telemetry.d.ts +17 -0
  28. package/dist/license/telemetry.d.ts.map +1 -0
  29. package/dist/license/telemetry.js +87 -0
  30. package/dist/license/telemetry.js.map +1 -0
  31. package/dist/reporter/console.d.ts +3 -0
  32. package/dist/reporter/console.d.ts.map +1 -0
  33. package/dist/reporter/console.js +96 -0
  34. package/dist/reporter/console.js.map +1 -0
  35. package/dist/reporter/csv.d.ts +6 -0
  36. package/dist/reporter/csv.d.ts.map +1 -0
  37. package/dist/reporter/csv.js +56 -0
  38. package/dist/reporter/csv.js.map +1 -0
  39. package/dist/reporter/index.d.ts +13 -0
  40. package/dist/reporter/index.d.ts.map +1 -0
  41. package/dist/reporter/index.js +52 -0
  42. package/dist/reporter/index.js.map +1 -0
  43. package/dist/reporter/json.d.ts +7 -0
  44. package/dist/reporter/json.d.ts.map +1 -0
  45. package/dist/reporter/json.js +39 -0
  46. package/dist/reporter/json.js.map +1 -0
  47. package/dist/reporter/markdown.d.ts +6 -0
  48. package/dist/reporter/markdown.d.ts.map +1 -0
  49. package/dist/reporter/markdown.js +106 -0
  50. package/dist/reporter/markdown.js.map +1 -0
  51. package/dist/rewriter/index.d.ts +9 -0
  52. package/dist/rewriter/index.d.ts.map +1 -0
  53. package/dist/rewriter/index.js +95 -0
  54. package/dist/rewriter/index.js.map +1 -0
  55. package/dist/rewriter/langDetector.d.ts +7 -0
  56. package/dist/rewriter/langDetector.d.ts.map +1 -0
  57. package/dist/rewriter/langDetector.js +96 -0
  58. package/dist/rewriter/langDetector.js.map +1 -0
  59. package/dist/rewriter/templates/csharp.d.ts +8 -0
  60. package/dist/rewriter/templates/csharp.d.ts.map +1 -0
  61. package/dist/rewriter/templates/csharp.js +36 -0
  62. package/dist/rewriter/templates/csharp.js.map +1 -0
  63. package/dist/rewriter/templates/generic.d.ts +7 -0
  64. package/dist/rewriter/templates/generic.d.ts.map +1 -0
  65. package/dist/rewriter/templates/generic.js +40 -0
  66. package/dist/rewriter/templates/generic.js.map +1 -0
  67. package/dist/rewriter/templates/go.d.ts +8 -0
  68. package/dist/rewriter/templates/go.d.ts.map +1 -0
  69. package/dist/rewriter/templates/go.js +56 -0
  70. package/dist/rewriter/templates/go.js.map +1 -0
  71. package/dist/rewriter/templates/java.d.ts +7 -0
  72. package/dist/rewriter/templates/java.d.ts.map +1 -0
  73. package/dist/rewriter/templates/java.js +31 -0
  74. package/dist/rewriter/templates/java.js.map +1 -0
  75. package/dist/rewriter/templates/javascript.d.ts +10 -0
  76. package/dist/rewriter/templates/javascript.d.ts.map +1 -0
  77. package/dist/rewriter/templates/javascript.js +54 -0
  78. package/dist/rewriter/templates/javascript.js.map +1 -0
  79. package/dist/rewriter/templates/php.d.ts +8 -0
  80. package/dist/rewriter/templates/php.d.ts.map +1 -0
  81. package/dist/rewriter/templates/php.js +41 -0
  82. package/dist/rewriter/templates/php.js.map +1 -0
  83. package/dist/rewriter/templates/properties.d.ts +9 -0
  84. package/dist/rewriter/templates/properties.d.ts.map +1 -0
  85. package/dist/rewriter/templates/properties.js +39 -0
  86. package/dist/rewriter/templates/properties.js.map +1 -0
  87. package/dist/rewriter/templates/python.d.ts +8 -0
  88. package/dist/rewriter/templates/python.d.ts.map +1 -0
  89. package/dist/rewriter/templates/python.js +48 -0
  90. package/dist/rewriter/templates/python.js.map +1 -0
  91. package/dist/rewriter/templates/ruby.d.ts +8 -0
  92. package/dist/rewriter/templates/ruby.d.ts.map +1 -0
  93. package/dist/rewriter/templates/ruby.js +40 -0
  94. package/dist/rewriter/templates/ruby.js.map +1 -0
  95. package/dist/rewriter/templates/rust.d.ts +7 -0
  96. package/dist/rewriter/templates/rust.d.ts.map +1 -0
  97. package/dist/rewriter/templates/rust.js +27 -0
  98. package/dist/rewriter/templates/rust.js.map +1 -0
  99. package/dist/rewriter/templates/shell.d.ts +7 -0
  100. package/dist/rewriter/templates/shell.d.ts.map +1 -0
  101. package/dist/rewriter/templates/shell.js +42 -0
  102. package/dist/rewriter/templates/shell.js.map +1 -0
  103. package/dist/rewriter/templates/toml.d.ts +9 -0
  104. package/dist/rewriter/templates/toml.d.ts.map +1 -0
  105. package/dist/rewriter/templates/toml.js +34 -0
  106. package/dist/rewriter/templates/toml.js.map +1 -0
  107. package/dist/rewriter/templates/yaml.d.ts +8 -0
  108. package/dist/rewriter/templates/yaml.d.ts.map +1 -0
  109. package/dist/rewriter/templates/yaml.js +37 -0
  110. package/dist/rewriter/templates/yaml.js.map +1 -0
  111. package/dist/scanner/detector.d.ts +18 -0
  112. package/dist/scanner/detector.d.ts.map +1 -0
  113. package/dist/scanner/detector.js +156 -0
  114. package/dist/scanner/detector.js.map +1 -0
  115. package/dist/scanner/fileWalker.d.ts +6 -0
  116. package/dist/scanner/fileWalker.d.ts.map +1 -0
  117. package/dist/scanner/fileWalker.js +146 -0
  118. package/dist/scanner/fileWalker.js.map +1 -0
  119. package/dist/scanner/index.d.ts +8 -0
  120. package/dist/scanner/index.d.ts.map +1 -0
  121. package/dist/scanner/index.js +74 -0
  122. package/dist/scanner/index.js.map +1 -0
  123. package/dist/scanner/rules/aws.d.ts +6 -0
  124. package/dist/scanner/rules/aws.d.ts.map +1 -0
  125. package/dist/scanner/rules/aws.js +90 -0
  126. package/dist/scanner/rules/aws.js.map +1 -0
  127. package/dist/scanner/rules/azure.d.ts +6 -0
  128. package/dist/scanner/rules/azure.d.ts.map +1 -0
  129. package/dist/scanner/rules/azure.js +86 -0
  130. package/dist/scanner/rules/azure.js.map +1 -0
  131. package/dist/scanner/rules/cloud.d.ts +11 -0
  132. package/dist/scanner/rules/cloud.d.ts.map +1 -0
  133. package/dist/scanner/rules/cloud.js +1066 -0
  134. package/dist/scanner/rules/cloud.js.map +1 -0
  135. package/dist/scanner/rules/database.d.ts +6 -0
  136. package/dist/scanner/rules/database.d.ts.map +1 -0
  137. package/dist/scanner/rules/database.js +283 -0
  138. package/dist/scanner/rules/database.js.map +1 -0
  139. package/dist/scanner/rules/gcp.d.ts +6 -0
  140. package/dist/scanner/rules/gcp.d.ts.map +1 -0
  141. package/dist/scanner/rules/gcp.js +108 -0
  142. package/dist/scanner/rules/gcp.js.map +1 -0
  143. package/dist/scanner/rules/generic.d.ts +13 -0
  144. package/dist/scanner/rules/generic.d.ts.map +1 -0
  145. package/dist/scanner/rules/generic.js +305 -0
  146. package/dist/scanner/rules/generic.js.map +1 -0
  147. package/dist/scanner/rules/index.d.ts +18 -0
  148. package/dist/scanner/rules/index.d.ts.map +1 -0
  149. package/dist/scanner/rules/index.js +40 -0
  150. package/dist/scanner/rules/index.js.map +1 -0
  151. package/dist/scanner/rules/jwt.d.ts +6 -0
  152. package/dist/scanner/rules/jwt.d.ts.map +1 -0
  153. package/dist/scanner/rules/jwt.js +97 -0
  154. package/dist/scanner/rules/jwt.js.map +1 -0
  155. package/dist/scanner/rules/network.d.ts +7 -0
  156. package/dist/scanner/rules/network.d.ts.map +1 -0
  157. package/dist/scanner/rules/network.js +166 -0
  158. package/dist/scanner/rules/network.js.map +1 -0
  159. package/dist/scanner/rules/privateKey.d.ts +6 -0
  160. package/dist/scanner/rules/privateKey.d.ts.map +1 -0
  161. package/dist/scanner/rules/privateKey.js +60 -0
  162. package/dist/scanner/rules/privateKey.js.map +1 -0
  163. package/dist/scanner/rules/ssh.d.ts +6 -0
  164. package/dist/scanner/rules/ssh.d.ts.map +1 -0
  165. package/dist/scanner/rules/ssh.js +49 -0
  166. package/dist/scanner/rules/ssh.js.map +1 -0
  167. package/dist/types.d.ts +78 -0
  168. package/dist/types.d.ts.map +1 -0
  169. package/dist/types.js +3 -0
  170. package/dist/types.js.map +1 -0
  171. package/package.json +54 -0
@@ -0,0 +1,6 @@
1
+ import { Rule } from '../../types';
2
+ /**
3
+ * Microsoft Azure credential patterns.
4
+ */
5
+ export declare const azureRules: Rule[];
6
+ //# sourceMappingURL=azure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["../../../src/scanner/rules/azure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,IAAI,EAgF5B,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.azureRules = void 0;
4
+ /**
5
+ * Microsoft Azure credential patterns.
6
+ */
7
+ exports.azureRules = [
8
+ {
9
+ id: 'azure-storage-connection-string',
10
+ description: 'Azure Storage Connection String',
11
+ pattern: /(DefaultEndpointsProtocol=https?;AccountName=[^;]+;AccountKey=[A-Za-z0-9+/=]{88};[^\s'"]*)/,
12
+ valueGroup: 1,
13
+ envKeyPrefix: 'AZURE_STORAGE_CONNECTION_STRING',
14
+ severity: 'critical',
15
+ },
16
+ {
17
+ id: 'azure-storage-account-key',
18
+ description: 'Azure Storage Account Key',
19
+ pattern: /(?:azure[_-]?storage[_-]?(?:account[_-]?)?key|AccountKey|AZURE_STORAGE_KEY)\s*[:=,]\s*['"\`]([A-Za-z0-9+/\s=]{40,})['"\`]/i,
20
+ valueGroup: 1,
21
+ envKeyPrefix: 'AZURE_STORAGE_ACCOUNT_KEY',
22
+ severity: 'critical',
23
+ },
24
+ {
25
+ id: 'azure-sas-token',
26
+ description: 'Azure Shared Access Signature (SAS) Token',
27
+ pattern: /(?:sas[_-]?token|azure[_-]?sas)\s*[:=]\s*['"\`](sv=\d{4}-\d{2}-\d{2}&[^'"\`\s]+)['"\`]/i,
28
+ valueGroup: 1,
29
+ envKeyPrefix: 'AZURE_SAS_TOKEN',
30
+ severity: 'critical',
31
+ },
32
+ {
33
+ id: 'azure-client-secret',
34
+ description: 'Azure AD Application Client Secret',
35
+ // Also handles define('AZURE_CLIENT_SECRET', '...') PHP form
36
+ pattern: /(?:define\s*\(\s*['"\`]AZURE_CLIENT_SECRET['"\`]\s*,\s*|(?:azure[_-]?client[_-]?secret|AZURE_CLIENT_SECRET)\s*[:=]\s*)['"\`]([A-Za-z0-9~.\-_]{8,})['"\`]/i,
37
+ valueGroup: 1,
38
+ envKeyPrefix: 'AZURE_CLIENT_SECRET',
39
+ severity: 'critical',
40
+ },
41
+ {
42
+ id: 'azure-client-id',
43
+ description: 'Azure AD Application Client ID (UUID)',
44
+ // Also handles define('AZURE_CLIENT_ID', 'uuid') PHP form
45
+ pattern: /(?:define\s*\(\s*['"\`]AZURE_CLIENT_ID['"\`]\s*,\s*|(?:azure[_-]?client[_-]?id|AZURE_CLIENT_ID)\s*[:=]\s*)['"\`]([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})['"\`]/i,
46
+ valueGroup: 1,
47
+ envKeyPrefix: 'AZURE_CLIENT_ID',
48
+ severity: 'high',
49
+ },
50
+ {
51
+ id: 'azure-tenant-id',
52
+ description: 'Azure Tenant ID (UUID)',
53
+ // Also handles define('AZURE_TENANT_ID', 'uuid') PHP form
54
+ pattern: /(?:define\s*\(\s*['"\`]AZURE_TENANT_ID['"\`]\s*,\s*|(?:azure[_-]?tenant[_-]?id|AZURE_TENANT_ID)\s*[:=]\s*)['"\`]([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})['"\`]/i,
55
+ valueGroup: 1,
56
+ envKeyPrefix: 'AZURE_TENANT_ID',
57
+ severity: 'high',
58
+ },
59
+ {
60
+ id: 'azure-servicebus-connection-string',
61
+ description: 'Azure Service Bus Connection String',
62
+ pattern: /(Endpoint=sb:\/\/[^;]+;SharedAccessKeyName=[^;]+;SharedAccessKey=[^'"\`\s]+)/i,
63
+ valueGroup: 1,
64
+ envKeyPrefix: 'AZURE_SERVICEBUS_CONNECTION_STRING',
65
+ severity: 'critical',
66
+ },
67
+ {
68
+ id: 'azure-cosmos-key',
69
+ description: 'Azure CosmosDB Account Key',
70
+ pattern: /(?:cosmos[_-]?(?:db[_-]?)?key|azure[_-]?cosmos[_-]?key)\s*[:=]\s*['"\`]([A-Za-z0-9+/=]{88})['"\`]/i,
71
+ valueGroup: 1,
72
+ envKeyPrefix: 'AZURE_COSMOS_KEY',
73
+ severity: 'critical',
74
+ },
75
+ // ── Azure DevOps ─────────────────────────────────────────────────────────────
76
+ {
77
+ id: 'azure-devops-pat',
78
+ description: 'Azure DevOps Personal Access Token (base64-encoded, 52 chars)',
79
+ // Azure DevOps PATs are base64-encoded strings typically 52 characters long
80
+ pattern: /(?:azure[_-]?devops[_-]?(?:pat|token)|AZURE_DEVOPS_PAT|AZURE_DEVOPS_TOKEN|ADO_PAT)\s*[:=]\s*['"`]([A-Za-z0-9+/]{52}={0,2})['"`]/i,
81
+ valueGroup: 1,
82
+ envKeyPrefix: 'AZURE_DEVOPS_PAT',
83
+ severity: 'critical',
84
+ },
85
+ ];
86
+ //# sourceMappingURL=azure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.js","sourceRoot":"","sources":["../../../src/scanner/rules/azure.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,UAAU,GAAW;IAChC;QACE,EAAE,EAAE,iCAAiC;QACrC,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,4FAA4F;QACrG,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,iCAAiC;QAC/C,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,4HAA4H;QACrI,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,2BAA2B;QACzC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,yFAAyF;QAClG,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,iBAAiB;QAC/B,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,oCAAoC;QACjD,6DAA6D;QAC7D,OAAO,EAAE,2JAA2J;QACpK,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,qBAAqB;QACnC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,uCAAuC;QACpD,0DAA0D;QAC1D,OAAO,EAAE,uLAAuL;QAChM,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,iBAAiB;QAC/B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,wBAAwB;QACrC,0DAA0D;QAC1D,OAAO,EAAE,uLAAuL;QAChM,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,iBAAiB;QAC/B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,EAAE,EAAE,oCAAoC;QACxC,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,+EAA+E;QACxF,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,oCAAoC;QAClD,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,oGAAoG;QAC7G,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,kBAAkB;QAChC,QAAQ,EAAE,UAAU;KACrB;IAED,gFAAgF;IAChF;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,+DAA+D;QAC5E,4EAA4E;QAC5E,OAAO,EAAE,kIAAkI;QAC3I,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,kBAAkB;QAChC,QAAQ,EAAE,UAAU;KACrB;CAEF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Rule } from '../../types';
2
+ /**
3
+ * Third-party cloud / SaaS service credential patterns.
4
+ * Covers: GitHub, Stripe, Twilio, SendGrid, Slack, Heroku,
5
+ * Mailgun, Cloudflare, Datadog, NPM, Docker Hub,
6
+ * OpenAI, Anthropic, Telegram, Discord, Supabase,
7
+ * Vercel, DigitalOcean, Algolia, Mapbox, Pinecone,
8
+ * Vault, Airtable, HubSpot, Square, Razorpay, Plaid, etc.
9
+ */
10
+ export declare const cloudRules: Rule[];
11
+ //# sourceMappingURL=cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../src/scanner/rules/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,IAAI,EAgjC5B,CAAC"}