muaddib-scanner 1.0.8 → 1.0.10

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 (37) hide show
  1. package/.muaddib-cache/iocs.json +355 -0
  2. package/README.fr.md +310 -0
  3. package/README.md +118 -93
  4. package/bin/muaddib.js +33 -26
  5. package/data/iocs.json +28 -0
  6. package/package.json +3 -3
  7. package/rapport.html +159 -0
  8. package/src/index.js +73 -15
  9. package/src/ioc/scraper.js +91 -50
  10. package/src/rules/index.js +40 -1
  11. package/src/scanner/typosquat.js +52 -118
  12. package/.github/workflows/scan.yml +0 -33
  13. package/docs/threat-model.md +0 -116
  14. package/test/samples/malicious.js +0 -20
  15. package/tests/run-tests.js +0 -389
  16. package/tests/samples/ast/malicious.js +0 -20
  17. package/tests/samples/clean/safe.js +0 -14
  18. package/tests/samples/dataflow/exfiltration.js +0 -20
  19. package/tests/samples/edge/empty/empty.js +0 -0
  20. package/tests/samples/edge/invalid-syntax/broken.js +0 -5
  21. package/tests/samples/edge/large-file/large.js +0 -6
  22. package/tests/samples/edge/non-js/readme.txt +0 -3
  23. package/tests/samples/markers/shai-hulud.js +0 -10
  24. package/tests/samples/obfuscation/obfuscated.js +0 -1
  25. package/tests/samples/package/package.json +0 -9
  26. package/tests/samples/shell/malicious.sh +0 -13
  27. package/tests/samples/typosquat/package.json +0 -11
  28. package/vscode-extension/.vscode/launch.json +0 -13
  29. package/vscode-extension/.vscodeignore +0 -0
  30. package/vscode-extension/LICENSE +0 -21
  31. package/vscode-extension/README.md +0 -0
  32. package/vscode-extension/extension.js +0 -271
  33. package/vscode-extension/icon.png +0 -0
  34. package/vscode-extension/muaddib-vscode-1.0.0.vsix +0 -0
  35. package/vscode-extension/package.json +0 -64
  36. package/vscode-extension/vscode-extension/README.md +0 -44
  37. package/vscode-extension/vscode-extension/package.json +0 -64
package/README.md CHANGED
@@ -5,57 +5,63 @@
5
5
  <h1 align="center">MUAD'DIB</h1>
6
6
 
7
7
  <p align="center">
8
- <strong>Supply-chain threat detection & response for npm</strong>
8
+ <strong>Supply-chain threat detection and response for npm</strong>
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
12
  <img src="https://img.shields.io/npm/v/muaddib-scanner" alt="npm version">
13
- <img src="https://img.shields.io/npm/dt/muaddib-scanner" alt="npm downloads">
14
13
  <img src="https://img.shields.io/badge/license-MIT-green" alt="License">
15
14
  <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node">
15
+ <img src="https://img.shields.io/badge/IOCs-180%2B-red" alt="IOCs">
16
16
  </p>
17
17
 
18
18
  <p align="center">
19
19
  <a href="#installation">Installation</a> |
20
- <a href="#utilisation">Utilisation</a> |
20
+ <a href="#usage">Usage</a> |
21
21
  <a href="#features">Features</a> |
22
22
  <a href="#vs-code">VS Code</a> |
23
- <a href="#discord">Discord</a>
23
+ <a href="#ci-cd">CI/CD</a>
24
+ </p>
25
+
26
+ <p align="center">
27
+ <a href="README.fr.md">Version francaise</a>
24
28
  </p>
25
29
 
26
30
  ---
27
31
 
28
- ## Pourquoi MUAD'DIB ?
32
+ ## Why MUAD'DIB?
29
33
 
30
- Les attaques supply chain npm explosent. Shai-Hulud a compromis 25K+ repos en 2025. Les outils existants detectent, mais n'aident pas a repondre.
34
+ npm supply-chain attacks are exploding. Shai-Hulud compromised 25K+ repos in 2025. Existing tools detect threats but don't help you respond.
31
35
 
32
- MUAD'DIB detecte ET guide la reponse.
36
+ MUAD'DIB detects AND guides your response.
33
37
 
34
- | Feature | MUAD'DIB | Socket | Snyk |
35
- |---------|----------|--------|------|
36
- | Detection IOCs | Oui | Oui | Oui |
37
- | Analyse AST | Oui | Oui | Non |
38
- | Analyse Dataflow | Oui | Non | Non |
39
- | Detection Typosquatting | Oui | Oui | Non |
40
- | Playbooks reponse | Oui | Non | Non |
41
- | Score de risque | Oui | Oui | Oui |
42
- | SARIF / GitHub Security | Oui | Oui | Oui |
43
- | MITRE ATT&CK mapping | Oui | Non | Non |
44
- | Webhook Discord/Slack | Oui | Non | Non |
45
- | Extension VS Code | Oui | Oui | Oui |
46
- | Mode daemon | Oui | Non | Non |
47
- | 100% Open Source | Oui | Non | Non |
38
+ | Feature | MUAD'DIB | Socket | Snyk | Opengrep |
39
+ |---------|----------|--------|------|----------|
40
+ | IOC Detection | Yes | Yes | Yes | No |
41
+ | AST Analysis | Yes | Yes | No | Yes |
42
+ | Dataflow Analysis | Yes | No | No | No |
43
+ | Typosquatting Detection | Yes | Yes | No | No |
44
+ | Response Playbooks | Yes | No | No | No |
45
+ | Risk Score | Yes | Yes | Yes | No |
46
+ | SARIF / GitHub Security | Yes | Yes | Yes | Yes |
47
+ | MITRE ATT&CK Mapping | Yes | No | No | No |
48
+ | Discord/Slack Webhooks | Yes | No | No | No |
49
+ | VS Code Extension | Yes | Yes | Yes | No |
50
+ | Daemon Mode | Yes | No | No | No |
51
+ | 100% Open Source | Yes | No | No | Yes |
48
52
 
49
53
  ---
50
54
 
51
55
  ## Installation
52
56
 
53
- ### npm (recommande)
57
+ ### npm (recommended)
58
+
54
59
  ```bash
55
60
  npm install -g muaddib-scanner
56
61
  ```
57
62
 
58
- ### Depuis les sources
63
+ ### From source
64
+
59
65
  ```bash
60
66
  git clone https://github.com/DNSZLSK/muad-dib.git
61
67
  cd muad-dib
@@ -64,111 +70,130 @@ npm install
64
70
 
65
71
  ---
66
72
 
67
- ## Utilisation
73
+ ## Usage
74
+
75
+ ### Basic scan
68
76
 
69
- ### Scan basique
70
77
  ```bash
71
78
  muaddib scan .
72
- muaddib scan /chemin/vers/projet
79
+ muaddib scan /path/to/project
73
80
  ```
74
81
 
75
- ### Score de risque
82
+ ### Risk score
83
+
84
+ Each scan displays a 0-100 risk score:
76
85
 
77
- Chaque scan affiche un score de risque 0-100 :
78
86
  ```
79
87
  [SCORE] 58/100 [███████████░░░░░░░░░] HIGH
80
88
  ```
81
89
 
82
- ### Mode explain (details complets)
90
+ ### Explain mode (full details)
91
+
83
92
  ```bash
84
93
  muaddib scan . --explain
85
94
  ```
86
95
 
87
- Affiche pour chaque detection :
96
+ Shows for each detection:
88
97
  - Rule ID
89
98
  - MITRE ATT&CK technique
90
99
  - References (articles, CVEs)
91
- - Playbook de reponse
100
+ - Response playbook
92
101
 
93
102
  ### Export
103
+
94
104
  ```bash
95
105
  muaddib scan . --json > results.json # JSON
96
- muaddib scan . --html rapport.html # HTML
106
+ muaddib scan . --html report.html # HTML
97
107
  muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
98
108
  ```
99
109
 
100
- ### Seuil de severite
110
+ ### Severity threshold
111
+
101
112
  ```bash
102
- muaddib scan . --fail-on critical # Fail seulement sur CRITICAL
103
- muaddib scan . --fail-on high # Fail sur HIGH et CRITICAL (defaut)
104
- muaddib scan . --fail-on medium # Fail sur MEDIUM, HIGH, CRITICAL
113
+ muaddib scan . --fail-on critical # Fail only on CRITICAL
114
+ muaddib scan . --fail-on high # Fail on HIGH and CRITICAL (default)
115
+ muaddib scan . --fail-on medium # Fail on MEDIUM, HIGH, CRITICAL
105
116
  ```
106
117
 
107
- ### Webhook Discord/Slack
118
+ ### Discord/Slack webhook
119
+
108
120
  ```bash
109
121
  muaddib scan . --webhook "https://discord.com/api/webhooks/..."
110
122
  ```
111
123
 
112
- Envoie une alerte avec le score et les menaces sur Discord ou Slack.
124
+ Sends an alert with score and threats to Discord or Slack.
125
+
126
+ ### Real-time monitoring
113
127
 
114
- ### Surveillance temps reel
115
128
  ```bash
116
129
  muaddib watch .
117
130
  ```
118
131
 
119
- ### Mode daemon
132
+ ### Daemon mode
133
+
120
134
  ```bash
121
135
  muaddib daemon
122
136
  muaddib daemon --webhook "https://discord.com/api/webhooks/..."
123
137
  ```
124
138
 
125
- Surveille automatiquement tous les `npm install` et scanne les nouveaux packages.
139
+ Automatically monitors all `npm install` commands and scans new packages.
140
+
141
+ ### Update IOCs
126
142
 
127
- ### Mise a jour des IOCs
128
143
  ```bash
129
144
  muaddib update
130
145
  ```
131
146
 
147
+ ### Scrape new IOCs
148
+
149
+ ```bash
150
+ muaddib scrape
151
+ ```
152
+
153
+ Fetches latest malicious packages from GitHub Advisories, OSV, and other sources.
154
+
132
155
  ---
133
156
 
134
157
  ## Features
135
158
 
136
- ### Detection typosquatting
159
+ ### Typosquatting detection
160
+
161
+ MUAD'DIB detects packages with names similar to popular packages:
137
162
 
138
- MUAD'DIB detecte les packages dont le nom ressemble a un package populaire :
139
163
  ```
140
- [HIGH] Package "lodahs" ressemble a "lodash" (swapped_chars). Possible typosquatting.
164
+ [HIGH] Package "lodahs" looks like "lodash" (swapped_chars). Possible typosquatting.
141
165
  ```
142
166
 
143
- ### Analyse dataflow
167
+ ### Dataflow analysis
168
+
169
+ Detects when code reads credentials AND sends them over the network:
144
170
 
145
- Detecte quand du code lit des credentials ET les envoie sur le reseau :
146
171
  ```
147
- [CRITICAL] Flux suspect: lecture credentials (readFileSync, GITHUB_TOKEN) + envoi reseau (fetch)
172
+ [CRITICAL] Suspicious flow: credential read (readFileSync, GITHUB_TOKEN) + network send (fetch)
148
173
  ```
149
174
 
150
- ### Attaques detectees
175
+ ### Detected attacks
151
176
 
152
- | Campagne | Packages | Status |
177
+ | Campaign | Packages | Status |
153
178
  |----------|----------|--------|
154
- | Shai-Hulud v1 | @ctrl/tinycolor, ng2-file-upload | Detecte |
155
- | Shai-Hulud v2 | @asyncapi/specs, posthog-node, kill-port | Detecte |
156
- | Shai-Hulud v3 | @vietmoney/react-big-calendar | Detecte |
157
- | event-stream (2018) | flatmap-stream, event-stream | Detecte |
158
- | eslint-scope (2018) | eslint-scope | Detecte |
159
- | Protestware | node-ipc, colors, faker | Detecte |
160
- | Typosquats | crossenv, mongose, babelcli | Detecte |
179
+ | Shai-Hulud v1 | @ctrl/tinycolor, ng2-file-upload | Detected |
180
+ | Shai-Hulud v2 | @asyncapi/specs, posthog-node, kill-port | Detected |
181
+ | Shai-Hulud v3 | @vietmoney/react-big-calendar | Detected |
182
+ | event-stream (2018) | flatmap-stream, event-stream | Detected |
183
+ | eslint-scope (2018) | eslint-scope | Detected |
184
+ | Protestware | node-ipc, colors, faker | Detected |
185
+ | Typosquats | crossenv, mongose, babelcli | Detected |
161
186
 
162
- ### Techniques detectees
187
+ ### Detected techniques
163
188
 
164
189
  | Technique | MITRE | Detection |
165
190
  |-----------|-------|-----------|
166
- | Vol credentials (.npmrc, .ssh) | T1552.001 | AST |
167
- | Exfiltration env vars | T1552.001 | AST |
168
- | Execution code distant | T1105 | Pattern |
191
+ | Credential theft (.npmrc, .ssh) | T1552.001 | AST |
192
+ | Env var exfiltration | T1552.001 | AST |
193
+ | Remote code execution | T1105 | Pattern |
169
194
  | Reverse shell | T1059.004 | Pattern |
170
195
  | Dead man's switch | T1485 | Pattern |
171
- | Code obfusque | T1027 | Heuristiques |
196
+ | Obfuscated code | T1027 | Heuristics |
172
197
  | Typosquatting | T1195.002 | Levenshtein |
173
198
  | Supply chain compromise | T1195.002 | IOC matching |
174
199
 
@@ -176,32 +201,33 @@ Detecte quand du code lit des credentials ET les envoie sur le reseau :
176
201
 
177
202
  ## VS Code
178
203
 
179
- L'extension VS Code scanne automatiquement vos projets npm.
204
+ The VS Code extension automatically scans your npm projects.
180
205
 
181
206
  ### Installation
182
207
 
183
- Le dossier `vscode-extension/` contient l'extension. Pour tester :
208
+ Search "MUAD'DIB" in VS Code Extensions, or:
184
209
 
185
- 1. Ouvrir le dossier `vscode-extension` dans VS Code
186
- 2. Appuyer sur F5
187
- 3. Dans la nouvelle fenetre, ouvrir un projet npm
210
+ ```bash
211
+ code --install-extension dnszlsk.muaddib-vscode
212
+ ```
188
213
 
189
- ### Commandes
214
+ ### Commands
190
215
 
191
- - `MUAD'DIB: Scan Project` - Scanner tout le projet
192
- - `MUAD'DIB: Scan Current File` - Scanner le fichier actuel
216
+ - `MUAD'DIB: Scan Project` - Scan entire project
217
+ - `MUAD'DIB: Scan Current File` - Scan current file
193
218
 
194
- ### Configuration
219
+ ### Settings
195
220
 
196
- - `muaddib.autoScan` - Scanner automatiquement a l'ouverture (defaut: true)
197
- - `muaddib.webhookUrl` - URL webhook Discord/Slack
198
- - `muaddib.failLevel` - Niveau d'alerte (critical/high/medium/low)
221
+ - `muaddib.autoScan` - Auto-scan on project open (default: true)
222
+ - `muaddib.webhookUrl` - Discord/Slack webhook URL
223
+ - `muaddib.failLevel` - Alert level (critical/high/medium/low)
199
224
 
200
225
  ---
201
226
 
202
- ## Integration CI/CD
227
+ ## CI/CD
203
228
 
204
229
  ### GitHub Actions
230
+
205
231
  ```yaml
206
232
  name: Security Scan
207
233
 
@@ -225,20 +251,12 @@ jobs:
225
251
  sarif_file: results.sarif
226
252
  ```
227
253
 
228
- Les alertes apparaissent dans Security > Code scanning alerts.
229
-
230
- ---
231
-
232
- ## Discord
233
-
234
- Rejoignez le serveur Discord pour :
235
- - Recevoir les alertes de scan
236
- - Partager des IOCs
237
- - Contribuer au projet
254
+ Alerts appear in Security > Code scanning alerts.
238
255
 
239
256
  ---
240
257
 
241
258
  ## Architecture
259
+
242
260
  ```
243
261
  MUAD'DIB Scanner
244
262
  |
@@ -259,11 +277,12 @@ Output (CLI, JSON, HTML, SARIF, Webhook)
259
277
 
260
278
  ---
261
279
 
262
- ## Contribuer
280
+ ## Contributing
263
281
 
264
- ### Ajouter des IOCs
282
+ ### Add IOCs
283
+
284
+ Edit YAML files in `iocs/`:
265
285
 
266
- Editez les fichiers YAML dans `iocs/` :
267
286
  ```yaml
268
287
  - id: NEW-MALWARE-001
269
288
  name: "malicious-package"
@@ -271,13 +290,14 @@ Editez les fichiers YAML dans `iocs/` :
271
290
  severity: critical
272
291
  confidence: high
273
292
  source: community
274
- description: "Description de la menace"
293
+ description: "Threat description"
275
294
  references:
276
295
  - https://example.com/article
277
296
  mitre: T1195.002
278
297
  ```
279
298
 
280
- ### Developper
299
+ ### Development
300
+
281
301
  ```bash
282
302
  git clone https://github.com/DNSZLSK/muad-dib.git
283
303
  cd muad-dib
@@ -285,16 +305,21 @@ npm install
285
305
  npm test
286
306
  ```
287
307
 
308
+ ## Community
309
+
310
+ - Discord: https://discord.gg/y8zxSmue
311
+ - Issues: https://github.com/DNSZLSK/muad-dib/issues
312
+
288
313
  ---
289
314
 
290
315
  ## Documentation
291
316
 
292
- - [Threat Model](docs/threat-model.md) - Ce que MUAD'DIB detecte et ne detecte pas
293
- - [IOCs YAML](iocs/) - Base de donnees des menaces
317
+ - [Threat Model](docs/threat-model.md) - What MUAD'DIB detects and doesn't detect
318
+ - [IOCs YAML](iocs/) - Threat database
294
319
 
295
320
  ---
296
321
 
297
- ## Licence
322
+ ## License
298
323
 
299
324
  MIT
300
325
 
package/bin/muaddib.js CHANGED
@@ -17,6 +17,7 @@ let sarifOutput = null;
17
17
  let explainMode = false;
18
18
  let failLevel = 'high';
19
19
  let webhookUrl = null;
20
+ let paranoidMode = false;
20
21
 
21
22
  for (let i = 0; i < options.length; i++) {
22
23
  if (options[i] === '--json') {
@@ -35,6 +36,8 @@ for (let i = 0; i < options.length; i++) {
35
36
  } else if (options[i] === '--webhook') {
36
37
  webhookUrl = options[i + 1];
37
38
  i++;
39
+ } else if (options[i] === '--paranoid') {
40
+ paranoidMode = true;
38
41
  } else if (!options[i].startsWith('-')) {
39
42
  target = options[i];
40
43
  }
@@ -42,24 +45,25 @@ for (let i = 0; i < options.length; i++) {
42
45
 
43
46
  if (!command) {
44
47
  console.log(`
45
- MUAD'DIB - Chasseur de vers npm
48
+ MUAD'DIB - npm Supply Chain Threat Hunter
46
49
 
47
50
  Usage:
48
- muaddib scan [path] [options] Analyse un projet
49
- muaddib watch [path] Surveille un projet en temps reel
50
- muaddib update Met a jour les IOCs
51
- muaddib help Affiche l'aide
51
+ muaddib scan [path] [options] Scan a project
52
+ muaddib watch [path] Watch a project in real-time
53
+ muaddib daemon [options] Start background daemon
54
+ muaddib update Update IOCs
55
+ muaddib scrape Scrape new IOCs from advisories
56
+ muaddib help Show help
52
57
 
53
58
  Options:
54
- --json Sortie au format JSON
55
- --html [file] Genere un rapport HTML
56
- --sarif [file] Genere un rapport SARIF (GitHub Security)
57
- --explain Affiche les details de chaque detection
58
- --fail-on [level] Niveau de severite pour exit code (critical|high|medium|low)
59
- Defaut: high (fail sur HIGH et CRITICAL)
60
- --webhook [url] Envoie une alerte Discord/Slack
61
- muaddib daemon [options] Lance le daemon de surveillance
62
- muaddib scrape Scrape les advisories pour nouveaux IOCs
59
+ --json Output as JSON
60
+ --html [file] Generate HTML report
61
+ --sarif [file] Generate SARIF report (GitHub Security)
62
+ --explain Show detailed explanations
63
+ --fail-on [level] Severity level for exit code (critical|high|medium|low)
64
+ Default: high (fail on HIGH and CRITICAL)
65
+ --webhook [url] Send Discord/Slack alert
66
+ --paranoid Enable ultra-strict rules (more false positives)
63
67
  `);
64
68
  process.exit(0);
65
69
  }
@@ -71,7 +75,8 @@ if (command === 'scan') {
71
75
  sarif: sarifOutput,
72
76
  explain: explainMode,
73
77
  failLevel: failLevel,
74
- webhook: webhookUrl
78
+ webhook: webhookUrl,
79
+ paranoid: paranoidMode
75
80
  }).then(exitCode => {
76
81
  process.exit(exitCode);
77
82
  });
@@ -81,24 +86,26 @@ if (command === 'scan') {
81
86
  updateIOCs().then(() => {
82
87
  process.exit(0);
83
88
  }).catch(err => {
84
- console.error('[ERREUR]', err.message);
89
+ console.error('[ERROR]', err.message);
85
90
  process.exit(1);
86
91
  });
87
- } else if (command === 'help') {
88
- console.log('muaddib scan [path] [--json] [--html file] [--sarif file] [--explain] [--fail-on level] [--webhook url]');
89
- console.log('muaddib watch [path] - Surveille un projet en temps reel');
90
- console.log('muaddib update - Met a jour les IOCs');
91
- } else if (command === 'daemon') {
92
- startDaemon({ webhook: webhookUrl });
93
92
  } else if (command === 'scrape') {
94
93
  runScraper().then(result => {
95
- console.log(`[OK] ${result.added} nouveaux IOCs ajoutes (total: ${result.total})`);
94
+ console.log(`[OK] ${result.added} new IOCs added (total: ${result.total})`);
96
95
  process.exit(0);
97
96
  }).catch(err => {
98
- console.error('[ERREUR]', err.message);
97
+ console.error('[ERROR]', err.message);
99
98
  process.exit(1);
100
99
  });
100
+ } else if (command === 'daemon') {
101
+ startDaemon({ webhook: webhookUrl });
102
+ } else if (command === 'help') {
103
+ console.log('muaddib scan [path] [--json] [--html file] [--sarif file] [--explain] [--fail-on level] [--webhook url] [--paranoid]');
104
+ console.log('muaddib watch [path] - Watch a project in real-time');
105
+ console.log('muaddib daemon [--webhook url] - Start background daemon');
106
+ console.log('muaddib update - Update IOCs');
107
+ console.log('muaddib scrape - Scrape new IOCs');
101
108
  } else {
102
- console.log(`Commande inconnue: ${command}`);
109
+ console.log(`Unknown command: ${command}`);
103
110
  process.exit(1);
104
- }
111
+ }
package/data/iocs.json CHANGED
@@ -2142,6 +2142,34 @@
2142
2142
  "description": "Potential typosquat of \"socket.io\"",
2143
2143
  "references": [],
2144
2144
  "mitre": "T1195.002"
2145
+ },
2146
+ {
2147
+ "id": "GHSA-gvq6-hvvp-h34h",
2148
+ "name": "@adonisjs/bodyparser",
2149
+ "version": "< 10.1.2",
2150
+ "severity": "critical",
2151
+ "confidence": "high",
2152
+ "source": "github-advisory",
2153
+ "description": "AdonisJS Path Traversal in Multipart File Handling",
2154
+ "references": [
2155
+ "https://github.com/advisories/GHSA-gvq6-hvvp-h34h"
2156
+ ],
2157
+ "mitre": "T1195.002",
2158
+ "cve": "CVE-2026-21440"
2159
+ },
2160
+ {
2161
+ "id": "GHSA-fq56-hvg6-wvm5",
2162
+ "name": "signalk-server",
2163
+ "version": "< 2.19.0",
2164
+ "severity": "critical",
2165
+ "confidence": "high",
2166
+ "source": "github-advisory",
2167
+ "description": "Signal K Server vulnerable to JWT Token Theft via WebSocket Enumeration and Unauthenticated Polling",
2168
+ "references": [
2169
+ "https://github.com/advisories/GHSA-fq56-hvg6-wvm5"
2170
+ ],
2171
+ "mitre": "T1195.002",
2172
+ "cve": "CVE-2025-68620"
2145
2173
  }
2146
2174
  ],
2147
2175
  "hashes": [
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "muaddib-scanner",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Supply-chain threat detection & response for npm",
5
5
  "main": "src/index.js",
6
6
  "bin": {
7
- "muaddib": "./bin/muaddib.js"
7
+ "muaddib": "bin/muaddib.js"
8
8
  },
9
9
  "scripts": {
10
10
  "test": "node tests/run-tests.js",
@@ -26,7 +26,7 @@
26
26
  "license": "MIT",
27
27
  "repository": {
28
28
  "type": "git",
29
- "url": "https://github.com/DNSZLSK/muad-dib.git"
29
+ "url": "git+https://github.com/DNSZLSK/muad-dib.git"
30
30
  },
31
31
  "homepage": "https://github.com/DNSZLSK/muad-dib",
32
32
  "bugs": {