jseye 1.0.4__py3-none-any.whl → 1.0.5__py3-none-any.whl

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.
jseye/__init__.py CHANGED
@@ -4,6 +4,6 @@ Author: Lakshmikanthan K (letchupkt)
4
4
  License: MIT
5
5
  """
6
6
 
7
- __version__ = "1.0.4"
7
+ __version__ = "1.0.5"
8
8
  __author__ = "Lakshmikanthan K (letchupkt)"
9
9
  __email__ = "letchupkt.dev@gmail.com"
jseye/banner.py CHANGED
@@ -68,10 +68,10 @@ def show_banner():
68
68
  console.print()
69
69
 
70
70
  def show_performance_banner():
71
- """Show performance-focused banner for v1.0.2"""
71
+ """Show performance-focused banner for v1.0.5"""
72
72
  # Performance upgrade banner
73
73
  perf_banner = Panel.fit(
74
- "[bold cyan]>> JSEye v1.0.2 - Performance Revolution[/bold cyan]\n"
74
+ "[bold cyan]>> JSEye v1.0.5 - Performance Revolution[/bold cyan]\n"
75
75
  "[green][+] Parallel Tool Execution (3-5x faster)[/green]\n"
76
76
  "[green][+] Smart JS Prioritization (60-70% time saved)[/green]\n"
77
77
  "[green][+] Tiered Analysis Engine[/green]\n"
jseye/cli.py CHANGED
@@ -19,7 +19,7 @@ console = Console()
19
19
  def create_parser():
20
20
  """Create enhanced argument parser"""
21
21
  parser = argparse.ArgumentParser(
22
- description="JSEye v1.0.2 - High-Performance JavaScript Intelligence Framework",
22
+ description="JSEye v1.0.5 - High-Performance JavaScript Intelligence Framework",
23
23
  formatter_class=argparse.RawDescriptionHelpFormatter,
24
24
  epilog="""
25
25
  Examples:
@@ -80,7 +80,7 @@ def list_modules():
80
80
  ]
81
81
 
82
82
  console.print()
83
- panel_content = "[bold cyan]JSEye v1.0.2 - Available Modules[/bold cyan]\n\n"
83
+ panel_content = "[bold cyan]JSEye v1.0.5 - Available Modules[/bold cyan]\n\n"
84
84
 
85
85
  for name, desc, symbol in modules_info:
86
86
  panel_content += f"{symbol} [bold green]{name}[/bold green] - {desc}\n"
@@ -161,7 +161,7 @@ def main():
161
161
  return 1
162
162
 
163
163
  # Initialize and run enhanced pipeline
164
- console.print("[bold cyan]Starting JSEye v1.0.2 High-Performance Pipeline...[/bold cyan]")
164
+ console.print("[bold cyan]Starting JSEye v1.0.5 High-Performance Pipeline...[/bold cyan]")
165
165
  pipeline = JSEyePipeline(args.input, args.output, args)
166
166
  results = pipeline.run()
167
167
 
@@ -32,7 +32,7 @@ class JSDownloader:
32
32
  self.max_concurrent = 10 # Max concurrent downloads
33
33
 
34
34
  self.session_headers = {
35
- 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
35
+ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.5472.124 Safari/537.36'
36
36
  }
37
37
 
38
38
  self.performance_stats = {}
@@ -308,3 +308,49 @@ class TieredAnalysisEngine:
308
308
  def get_performance_stats(self) -> Dict:
309
309
  """Get performance statistics"""
310
310
  return self.analysis_stats
311
+
312
+
313
+ def analyze_tiered_files(self, downloaded_files: Dict, skip_ast: bool = False, regex_only: bool = False) -> Dict[str, Any]:
314
+ """
315
+ Alias for run_tiered_analysis - for pipeline compatibility
316
+
317
+ Args:
318
+ downloaded_files: Dict with tier1, tier2, tier3 keys containing downloaded file info
319
+ skip_ast: Skip AST analysis
320
+ regex_only: Only perform regex analysis
321
+
322
+ Returns:
323
+ Aggregated analysis results
324
+ """
325
+ # Convert downloaded_files format to what run_tiered_analysis expects
326
+ tiered_js_files = {
327
+ 'tier1': downloaded_files.get('tier1', []),
328
+ 'tier2': downloaded_files.get('tier2', []),
329
+ 'tier3': downloaded_files.get('tier3', [])
330
+ }
331
+
332
+ # Flatten all files for the downloaded_files parameter
333
+ all_files = []
334
+ for tier_files in downloaded_files.values():
335
+ if isinstance(tier_files, list):
336
+ all_files.extend(tier_files)
337
+
338
+ # Run async analysis
339
+ try:
340
+ results = asyncio.run(self.run_tiered_analysis(tiered_js_files, all_files))
341
+ return results
342
+ except Exception as e:
343
+ log_progress(f"Tiered analysis error: {e}")
344
+ return {
345
+ 'summary': {
346
+ 'total_findings': 0,
347
+ 'endpoints_found': 0,
348
+ 'secrets_found': 0,
349
+ 'files_by_tier': {'tier1': 0, 'tier2': 0, 'tier3': 0},
350
+ 'total_analysis_time': 0
351
+ },
352
+ 'endpoints': [],
353
+ 'secrets': [],
354
+ 'sinks': [],
355
+ 'functions': []
356
+ }
jseye/pipeline.py CHANGED
@@ -304,7 +304,7 @@ class JSEyePipeline:
304
304
  def show_summary(self, results: Dict[str, Any]):
305
305
  """Show enhanced summary with performance metrics"""
306
306
  console.print("\n" + "─" * 50)
307
- console.print("[bold cyan]JSEye v1.0.2 - Performance Summary[/bold cyan]", justify="center")
307
+ console.print("[bold cyan]JSEye v1.0.5 - Performance Summary[/bold cyan]", justify="center")
308
308
  console.print("─" * 50)
309
309
 
310
310
  # Main results table
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jseye
3
- Version: 1.0.4
3
+ Version: 1.0.5
4
4
  Summary: JavaScript Intelligence & Attack Surface Discovery Tool
5
5
  Home-page: https://github.com/letchupkt/jseye
6
6
  Author: Lakshmikanthan K
@@ -1,9 +1,9 @@
1
- jseye/__init__.py,sha256=B-2FCQL9ZkOaXcTFcsW1ZqfcFt9jE8ciNlPOg4NTq8E,234
1
+ jseye/__init__.py,sha256=HGRjJJPvofMdPNmt1ujLRz6WI45uLXHQ_9STaCsSMuE,234
2
2
  jseye/__main__.py,sha256=0dqYFROkKkCSGIT7YqFQkPAmARaOfFgjNdOvtdnht8o,131
3
- jseye/banner.py,sha256=Xf7SXcsn8KJN3GbQXDankI6dAJicjI-4mL4IzewGGSI,3126
4
- jseye/cli.py,sha256=jlR0R-PXlXc_Opk2QznH4t2v8sPY9HmffawOLHplmg8,6852
3
+ jseye/banner.py,sha256=w4re6wMRe7-6mwLqVYi7_VtU9dE0KE32LNrN5hfKNfU,3126
4
+ jseye/cli.py,sha256=UNwXdRLMcKpiErB_oYkBzVcgMDgbQHjdYLpgqCO81e4,6852
5
5
  jseye/installer.py,sha256=ghKFIZXbxG3mwtN7bEaOHmsp4RYk1dx-pHe2Cz31uJ0,6354
6
- jseye/pipeline.py,sha256=EbfeboXVwEzKbF6zKjVUIfHKH91fg3QiEa2rM-XzCgw,14842
6
+ jseye/pipeline.py,sha256=571y9L5t3_vVCqfFPbUs9a8Q46TKiytZ8A3QglvR8F0,14842
7
7
  jseye/data/regex.yaml,sha256=4_gN1hXazMDfCCbDNHquHUSGvT0HJqe6dGRHlOsHGPE,39866
8
8
  jseye/data/vendor_blacklist.txt,sha256=c3VGqlPYaEv-_yLbO4CGU5bzcrhAq3yFs7NaMR58nLY,640
9
9
  jseye/modules/__init__.py,sha256=I4wIzn_TL1O3WKomMxH4Qe3ffcixUNBVXzHdheMbMyo,17
@@ -11,21 +11,21 @@ jseye/modules/analyze_ast.py,sha256=rUJ0t10IRcXLOFPyrCDHw9H4s5o2JponLDqnKkrMHQQ,
11
11
  jseye/modules/analyze_regex.py,sha256=AB4wS38j9CQpSD0ggRA40QdgpJqi7XHMhCzYG24O448,4768
12
12
  jseye/modules/correlate.py,sha256=8p909zN1pfCl0N_3SQC1zZbjtmE9C5lyitteE1C6Yfs,5463
13
13
  jseye/modules/harvest.py,sha256=z30Vvz5HM1Vas1JX3u1SVlwbB5V2t4yEZyVH0ln2hj8,7454
14
- jseye/modules/js_download.py,sha256=XJvnHPFi1vmIu71ifQauSnJKbVOTxgwQYMJycKyUrBE,13167
14
+ jseye/modules/js_download.py,sha256=KLNevDFVCMtDlI2jjfNI_tZKTmodGpZ3HSUhKB4tza8,13167
15
15
  jseye/modules/js_filter.py,sha256=dF4n-LhyhkJoxKunhI4Kg89y1214-YwsQoUlK4IELT8,9097
16
16
  jseye/modules/linkfinder.py,sha256=DFFwQ1Oe9aCVPSwCOcp0R6Aop-Ew-DljfCjKNIAT0Tw,14782
17
17
  jseye/modules/secrets.py,sha256=QzgBi1-8KqQrj-ucjLKT9ygElcH0pb7wtBT2X_ilWT0,2905
18
18
  jseye/modules/sinks.py,sha256=bUPPt5Gr5Re3tPOanFtNO6smd4JyEyNaO1FDLvnyl8Q,4847
19
- jseye/modules/tiered_analysis.py,sha256=S6pL1-KvHyogS2zXa98TNwXIfIsJxc8Uq66cifc031M,12188
19
+ jseye/modules/tiered_analysis.py,sha256=aiA7gQY6plCiJ3ZaHXhSXx47gGjXdpMJK5fbbOAvNuU,13966
20
20
  jseye/utils/__init__.py,sha256=pQV0ISaU6cjI51Ll7tbPEQomLqZOwiOxWUR1E8q8gYw,15
21
21
  jseye/utils/cache.py,sha256=s5gK47c95FbrgruN3huvPA041n9GkKwL5QDY4JA2QJo,9202
22
22
  jseye/utils/fs.py,sha256=o5FUMfyfZHtAXGgHIJUiH7s7W9WHE8FsQvVynEmG9Aw,2217
23
23
  jseye/utils/hashing.py,sha256=wECCOBg-bLppPeXrp7R_r6aWpBFJG8TgwS4ZDF7banA,1215
24
24
  jseye/utils/logger.py,sha256=qaPfajt7RKScP3WPOh2iGW424bfGi4VPVdrLYuC2U94,1366
25
25
  jseye/utils/shell.py,sha256=q6JL6ah0L3MQWkwoiw_1e_bJCPYGb5Z446ILlUUG9zY,2426
26
- jseye-1.0.4.dist-info/licenses/LICENSE,sha256=Xw3z8nKZs1jZIKr-jGusZDMXBTeFTtBMWLv2GopX_Hk,1104
27
- jseye-1.0.4.dist-info/METADATA,sha256=h0_o9SxajHR6eIa1adLF9F0RSyvLSMU_FCmP74LIYt8,8366
28
- jseye-1.0.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
29
- jseye-1.0.4.dist-info/entry_points.txt,sha256=Vg-CzydEIeb1aye8cQ1UDClxerbYGhDm3RAEK1D2_6w,41
30
- jseye-1.0.4.dist-info/top_level.txt,sha256=J1EiPvgKHXJywwixTFYUNqcfV9tcyanTul2VkFDbLxI,6
31
- jseye-1.0.4.dist-info/RECORD,,
26
+ jseye-1.0.5.dist-info/licenses/LICENSE,sha256=Xw3z8nKZs1jZIKr-jGusZDMXBTeFTtBMWLv2GopX_Hk,1104
27
+ jseye-1.0.5.dist-info/METADATA,sha256=3RHmmeHscj5TCiQD42Jlw2AETZxk_hW58UbAnX30RQg,8366
28
+ jseye-1.0.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
29
+ jseye-1.0.5.dist-info/entry_points.txt,sha256=Vg-CzydEIeb1aye8cQ1UDClxerbYGhDm3RAEK1D2_6w,41
30
+ jseye-1.0.5.dist-info/top_level.txt,sha256=J1EiPvgKHXJywwixTFYUNqcfV9tcyanTul2VkFDbLxI,6
31
+ jseye-1.0.5.dist-info/RECORD,,
File without changes