@juspay/neurolink 9.1.1 → 9.2.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/CHANGELOG.md +6 -0
- package/README.md +54 -7
- package/dist/agent/directTools.d.ts +3 -3
- package/dist/cli/commands/config.d.ts +6 -6
- package/dist/image-gen/ImageGenService.d.ts +143 -0
- package/dist/image-gen/ImageGenService.js +345 -0
- package/dist/image-gen/imageGenTools.d.ts +126 -0
- package/dist/image-gen/imageGenTools.js +304 -0
- package/dist/image-gen/index.d.ts +46 -0
- package/dist/image-gen/index.js +48 -0
- package/dist/image-gen/types.d.ts +237 -0
- package/dist/image-gen/types.js +24 -0
- package/dist/lib/agent/directTools.d.ts +3 -3
- package/dist/lib/image-gen/ImageGenService.d.ts +143 -0
- package/dist/lib/image-gen/ImageGenService.js +346 -0
- package/dist/lib/image-gen/imageGenTools.d.ts +126 -0
- package/dist/lib/image-gen/imageGenTools.js +305 -0
- package/dist/lib/image-gen/index.d.ts +46 -0
- package/dist/lib/image-gen/index.js +49 -0
- package/dist/lib/image-gen/types.d.ts +237 -0
- package/dist/lib/image-gen/types.js +25 -0
- package/dist/lib/processors/base/BaseFileProcessor.d.ts +273 -0
- package/dist/lib/processors/base/BaseFileProcessor.js +614 -0
- package/dist/lib/processors/base/index.d.ts +14 -0
- package/dist/lib/processors/base/index.js +20 -0
- package/dist/lib/processors/base/types.d.ts +593 -0
- package/dist/lib/processors/base/types.js +77 -0
- package/dist/lib/processors/cli/fileProcessorCli.d.ts +163 -0
- package/dist/lib/processors/cli/fileProcessorCli.js +389 -0
- package/dist/lib/processors/cli/index.d.ts +37 -0
- package/dist/lib/processors/cli/index.js +50 -0
- package/dist/lib/processors/code/ConfigProcessor.d.ts +171 -0
- package/dist/lib/processors/code/ConfigProcessor.js +401 -0
- package/dist/lib/processors/code/SourceCodeProcessor.d.ts +174 -0
- package/dist/lib/processors/code/SourceCodeProcessor.js +305 -0
- package/dist/lib/processors/code/index.d.ts +44 -0
- package/dist/lib/processors/code/index.js +61 -0
- package/dist/lib/processors/config/fileTypes.d.ts +283 -0
- package/dist/lib/processors/config/fileTypes.js +521 -0
- package/dist/lib/processors/config/index.d.ts +32 -0
- package/dist/lib/processors/config/index.js +93 -0
- package/dist/lib/processors/config/languageMap.d.ts +66 -0
- package/dist/lib/processors/config/languageMap.js +411 -0
- package/dist/lib/processors/config/mimeTypes.d.ts +376 -0
- package/dist/lib/processors/config/mimeTypes.js +339 -0
- package/dist/lib/processors/config/sizeLimits.d.ts +194 -0
- package/dist/lib/processors/config/sizeLimits.js +247 -0
- package/dist/lib/processors/data/JsonProcessor.d.ts +122 -0
- package/dist/lib/processors/data/JsonProcessor.js +204 -0
- package/dist/lib/processors/data/XmlProcessor.d.ts +160 -0
- package/dist/lib/processors/data/XmlProcessor.js +284 -0
- package/dist/lib/processors/data/YamlProcessor.d.ts +163 -0
- package/dist/lib/processors/data/YamlProcessor.js +295 -0
- package/dist/lib/processors/data/index.d.ts +49 -0
- package/dist/lib/processors/data/index.js +77 -0
- package/dist/lib/processors/document/ExcelProcessor.d.ts +238 -0
- package/dist/lib/processors/document/ExcelProcessor.js +520 -0
- package/dist/lib/processors/document/OpenDocumentProcessor.d.ts +69 -0
- package/dist/lib/processors/document/OpenDocumentProcessor.js +211 -0
- package/dist/lib/processors/document/RtfProcessor.d.ts +152 -0
- package/dist/lib/processors/document/RtfProcessor.js +362 -0
- package/dist/lib/processors/document/WordProcessor.d.ts +168 -0
- package/dist/lib/processors/document/WordProcessor.js +354 -0
- package/dist/lib/processors/document/index.d.ts +54 -0
- package/dist/lib/processors/document/index.js +91 -0
- package/dist/lib/processors/errors/FileErrorCode.d.ts +98 -0
- package/dist/lib/processors/errors/FileErrorCode.js +256 -0
- package/dist/lib/processors/errors/errorHelpers.d.ts +151 -0
- package/dist/lib/processors/errors/errorHelpers.js +379 -0
- package/dist/lib/processors/errors/errorSerializer.d.ts +139 -0
- package/dist/lib/processors/errors/errorSerializer.js +508 -0
- package/dist/lib/processors/errors/index.d.ts +46 -0
- package/dist/lib/processors/errors/index.js +50 -0
- package/dist/lib/processors/index.d.ts +76 -0
- package/dist/lib/processors/index.js +113 -0
- package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +244 -0
- package/dist/lib/processors/integration/FileProcessorIntegration.js +273 -0
- package/dist/lib/processors/integration/index.d.ts +42 -0
- package/dist/lib/processors/integration/index.js +45 -0
- package/dist/lib/processors/markup/HtmlProcessor.d.ts +169 -0
- package/dist/lib/processors/markup/HtmlProcessor.js +250 -0
- package/dist/lib/processors/markup/MarkdownProcessor.d.ts +165 -0
- package/dist/lib/processors/markup/MarkdownProcessor.js +245 -0
- package/dist/lib/processors/markup/SvgProcessor.d.ts +156 -0
- package/dist/lib/processors/markup/SvgProcessor.js +241 -0
- package/dist/lib/processors/markup/TextProcessor.d.ts +135 -0
- package/dist/lib/processors/markup/TextProcessor.js +189 -0
- package/dist/lib/processors/markup/index.d.ts +66 -0
- package/dist/lib/processors/markup/index.js +103 -0
- package/dist/lib/processors/registry/ProcessorRegistry.d.ts +334 -0
- package/dist/lib/processors/registry/ProcessorRegistry.js +609 -0
- package/dist/lib/processors/registry/index.d.ts +12 -0
- package/dist/lib/processors/registry/index.js +17 -0
- package/dist/lib/processors/registry/types.d.ts +53 -0
- package/dist/lib/processors/registry/types.js +11 -0
- package/dist/lib/providers/sagemaker/language-model.d.ts +2 -2
- package/dist/lib/server/utils/validation.d.ts +6 -6
- package/dist/lib/types/fileTypes.d.ts +1 -1
- package/dist/lib/types/index.d.ts +25 -24
- package/dist/lib/types/index.js +21 -20
- package/dist/lib/types/modelTypes.d.ts +18 -18
- package/dist/lib/types/pptTypes.d.ts +14 -2
- package/dist/lib/types/pptTypes.js +16 -0
- package/dist/lib/utils/async/delay.d.ts +40 -0
- package/dist/lib/utils/async/delay.js +43 -0
- package/dist/lib/utils/async/index.d.ts +23 -0
- package/dist/lib/utils/async/index.js +24 -0
- package/dist/lib/utils/async/retry.d.ts +141 -0
- package/dist/lib/utils/async/retry.js +172 -0
- package/dist/lib/utils/async/withTimeout.d.ts +73 -0
- package/dist/lib/utils/async/withTimeout.js +97 -0
- package/dist/lib/utils/fileDetector.d.ts +7 -1
- package/dist/lib/utils/fileDetector.js +91 -18
- package/dist/lib/utils/json/extract.d.ts +103 -0
- package/dist/lib/utils/json/extract.js +249 -0
- package/dist/lib/utils/json/index.d.ts +36 -0
- package/dist/lib/utils/json/index.js +37 -0
- package/dist/lib/utils/json/safeParse.d.ts +137 -0
- package/dist/lib/utils/json/safeParse.js +191 -0
- package/dist/lib/utils/messageBuilder.d.ts +2 -2
- package/dist/lib/utils/messageBuilder.js +15 -7
- package/dist/lib/utils/sanitizers/filename.d.ts +137 -0
- package/dist/lib/utils/sanitizers/filename.js +366 -0
- package/dist/lib/utils/sanitizers/html.d.ts +170 -0
- package/dist/lib/utils/sanitizers/html.js +326 -0
- package/dist/lib/utils/sanitizers/index.d.ts +26 -0
- package/dist/lib/utils/sanitizers/index.js +30 -0
- package/dist/lib/utils/sanitizers/svg.d.ts +81 -0
- package/dist/lib/utils/sanitizers/svg.js +483 -0
- package/dist/processors/base/BaseFileProcessor.d.ts +273 -0
- package/dist/processors/base/BaseFileProcessor.js +613 -0
- package/dist/processors/base/index.d.ts +14 -0
- package/dist/processors/base/index.js +19 -0
- package/dist/processors/base/types.d.ts +593 -0
- package/dist/processors/base/types.js +76 -0
- package/dist/processors/cli/fileProcessorCli.d.ts +163 -0
- package/dist/processors/cli/fileProcessorCli.js +388 -0
- package/dist/processors/cli/index.d.ts +37 -0
- package/dist/processors/cli/index.js +49 -0
- package/dist/processors/code/ConfigProcessor.d.ts +171 -0
- package/dist/processors/code/ConfigProcessor.js +400 -0
- package/dist/processors/code/SourceCodeProcessor.d.ts +174 -0
- package/dist/processors/code/SourceCodeProcessor.js +304 -0
- package/dist/processors/code/index.d.ts +44 -0
- package/dist/processors/code/index.js +60 -0
- package/dist/processors/config/fileTypes.d.ts +283 -0
- package/dist/processors/config/fileTypes.js +520 -0
- package/dist/processors/config/index.d.ts +32 -0
- package/dist/processors/config/index.js +92 -0
- package/dist/processors/config/languageMap.d.ts +66 -0
- package/dist/processors/config/languageMap.js +410 -0
- package/dist/processors/config/mimeTypes.d.ts +376 -0
- package/dist/processors/config/mimeTypes.js +338 -0
- package/dist/processors/config/sizeLimits.d.ts +194 -0
- package/dist/processors/config/sizeLimits.js +246 -0
- package/dist/processors/data/JsonProcessor.d.ts +122 -0
- package/dist/processors/data/JsonProcessor.js +203 -0
- package/dist/processors/data/XmlProcessor.d.ts +160 -0
- package/dist/processors/data/XmlProcessor.js +283 -0
- package/dist/processors/data/YamlProcessor.d.ts +163 -0
- package/dist/processors/data/YamlProcessor.js +294 -0
- package/dist/processors/data/index.d.ts +49 -0
- package/dist/processors/data/index.js +76 -0
- package/dist/processors/document/ExcelProcessor.d.ts +238 -0
- package/dist/processors/document/ExcelProcessor.js +519 -0
- package/dist/processors/document/OpenDocumentProcessor.d.ts +69 -0
- package/dist/processors/document/OpenDocumentProcessor.js +210 -0
- package/dist/processors/document/RtfProcessor.d.ts +152 -0
- package/dist/processors/document/RtfProcessor.js +361 -0
- package/dist/processors/document/WordProcessor.d.ts +168 -0
- package/dist/processors/document/WordProcessor.js +353 -0
- package/dist/processors/document/index.d.ts +54 -0
- package/dist/processors/document/index.js +90 -0
- package/dist/processors/errors/FileErrorCode.d.ts +98 -0
- package/dist/processors/errors/FileErrorCode.js +255 -0
- package/dist/processors/errors/errorHelpers.d.ts +151 -0
- package/dist/processors/errors/errorHelpers.js +378 -0
- package/dist/processors/errors/errorSerializer.d.ts +139 -0
- package/dist/processors/errors/errorSerializer.js +507 -0
- package/dist/processors/errors/index.d.ts +46 -0
- package/dist/processors/errors/index.js +49 -0
- package/dist/processors/index.d.ts +76 -0
- package/dist/processors/index.js +112 -0
- package/dist/processors/integration/FileProcessorIntegration.d.ts +244 -0
- package/dist/processors/integration/FileProcessorIntegration.js +272 -0
- package/dist/processors/integration/index.d.ts +42 -0
- package/dist/processors/integration/index.js +44 -0
- package/dist/processors/markup/HtmlProcessor.d.ts +169 -0
- package/dist/processors/markup/HtmlProcessor.js +249 -0
- package/dist/processors/markup/MarkdownProcessor.d.ts +165 -0
- package/dist/processors/markup/MarkdownProcessor.js +244 -0
- package/dist/processors/markup/SvgProcessor.d.ts +156 -0
- package/dist/processors/markup/SvgProcessor.js +240 -0
- package/dist/processors/markup/TextProcessor.d.ts +135 -0
- package/dist/processors/markup/TextProcessor.js +188 -0
- package/dist/processors/markup/index.d.ts +66 -0
- package/dist/processors/markup/index.js +102 -0
- package/dist/processors/registry/ProcessorRegistry.d.ts +334 -0
- package/dist/processors/registry/ProcessorRegistry.js +608 -0
- package/dist/processors/registry/index.d.ts +12 -0
- package/dist/processors/registry/index.js +16 -0
- package/dist/processors/registry/types.d.ts +53 -0
- package/dist/processors/registry/types.js +10 -0
- package/dist/server/utils/validation.d.ts +6 -6
- package/dist/types/fileTypes.d.ts +1 -1
- package/dist/types/index.d.ts +25 -24
- package/dist/types/index.js +21 -20
- package/dist/types/modelTypes.d.ts +10 -10
- package/dist/types/pptTypes.d.ts +14 -2
- package/dist/types/pptTypes.js +16 -0
- package/dist/utils/async/delay.d.ts +40 -0
- package/dist/utils/async/delay.js +42 -0
- package/dist/utils/async/index.d.ts +23 -0
- package/dist/utils/async/index.js +23 -0
- package/dist/utils/async/retry.d.ts +141 -0
- package/dist/utils/async/retry.js +171 -0
- package/dist/utils/async/withTimeout.d.ts +73 -0
- package/dist/utils/async/withTimeout.js +96 -0
- package/dist/utils/fileDetector.d.ts +7 -1
- package/dist/utils/fileDetector.js +91 -18
- package/dist/utils/json/extract.d.ts +103 -0
- package/dist/utils/json/extract.js +248 -0
- package/dist/utils/json/index.d.ts +36 -0
- package/dist/utils/json/index.js +36 -0
- package/dist/utils/json/safeParse.d.ts +137 -0
- package/dist/utils/json/safeParse.js +190 -0
- package/dist/utils/messageBuilder.d.ts +2 -2
- package/dist/utils/messageBuilder.js +15 -7
- package/dist/utils/sanitizers/filename.d.ts +137 -0
- package/dist/utils/sanitizers/filename.js +365 -0
- package/dist/utils/sanitizers/html.d.ts +170 -0
- package/dist/utils/sanitizers/html.js +325 -0
- package/dist/utils/sanitizers/index.d.ts +26 -0
- package/dist/utils/sanitizers/index.js +29 -0
- package/dist/utils/sanitizers/svg.d.ts +81 -0
- package/dist/utils/sanitizers/svg.js +482 -0
- package/package.json +2 -2
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Detection Map
|
|
3
|
+
* Maps file extensions and filenames to programming language names
|
|
4
|
+
*
|
|
5
|
+
* @module processors/config/languageMap
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Maps file extensions to their programming language names
|
|
9
|
+
* Used for syntax highlighting, code analysis, and display purposes
|
|
10
|
+
*/
|
|
11
|
+
export declare const LANGUAGE_MAP: Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Maps exact filenames (without extension) to their language/type
|
|
14
|
+
* Used for special files like Dockerfile, Makefile, etc.
|
|
15
|
+
*/
|
|
16
|
+
export declare const EXACT_FILENAME_MAP: Record<string, string>;
|
|
17
|
+
/**
|
|
18
|
+
* Detects the programming language from a filename
|
|
19
|
+
*
|
|
20
|
+
* @param filename - The filename to detect language from
|
|
21
|
+
* @returns The detected language name or 'Unknown'
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* detectLanguageFromFilename('app.ts') // Returns 'TypeScript'
|
|
26
|
+
* detectLanguageFromFilename('Dockerfile') // Returns 'Dockerfile'
|
|
27
|
+
* detectLanguageFromFilename('unknown.xyz') // Returns 'Unknown'
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectLanguageFromFilename(filename: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Gets the lowercase language identifier for syntax highlighting
|
|
33
|
+
*
|
|
34
|
+
* @param filename - The filename to get language identifier from
|
|
35
|
+
* @returns The lowercase language identifier suitable for syntax highlighting
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* getLanguageIdentifier('app.ts') // Returns 'typescript'
|
|
40
|
+
* getLanguageIdentifier('Dockerfile') // Returns 'dockerfile'
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function getLanguageIdentifier(filename: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Checks if a file is a source code file based on its extension
|
|
46
|
+
*
|
|
47
|
+
* @param filename - The filename to check
|
|
48
|
+
* @returns True if the file is a source code file
|
|
49
|
+
*/
|
|
50
|
+
export declare function isSourceCodeFile(filename: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Gets all supported file extensions
|
|
53
|
+
*
|
|
54
|
+
* @returns Array of all supported file extensions
|
|
55
|
+
*/
|
|
56
|
+
export declare function getSupportedExtensions(): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Gets all supported exact filenames
|
|
59
|
+
*
|
|
60
|
+
* @returns Array of all supported exact filenames
|
|
61
|
+
*/
|
|
62
|
+
export declare function getSupportedFilenames(): string[];
|
|
63
|
+
/** Type for the LANGUAGE_MAP object */
|
|
64
|
+
export type LanguageMap = typeof LANGUAGE_MAP;
|
|
65
|
+
/** Type for the EXACT_FILENAME_MAP object */
|
|
66
|
+
export type ExactFilenameMap = typeof EXACT_FILENAME_MAP;
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Detection Map
|
|
3
|
+
* Maps file extensions and filenames to programming language names
|
|
4
|
+
*
|
|
5
|
+
* @module processors/config/languageMap
|
|
6
|
+
*/
|
|
7
|
+
import { basename as pathBasename } from "node:path";
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// EXTENSION TO LANGUAGE MAP
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Maps file extensions to their programming language names
|
|
13
|
+
* Used for syntax highlighting, code analysis, and display purposes
|
|
14
|
+
*/
|
|
15
|
+
export const LANGUAGE_MAP = {
|
|
16
|
+
// JavaScript/TypeScript
|
|
17
|
+
".js": "JavaScript",
|
|
18
|
+
".jsx": "JavaScript (JSX)",
|
|
19
|
+
".mjs": "JavaScript (ESM)",
|
|
20
|
+
".cjs": "JavaScript (CommonJS)",
|
|
21
|
+
".ts": "TypeScript",
|
|
22
|
+
".tsx": "TypeScript (TSX)",
|
|
23
|
+
// Python
|
|
24
|
+
".py": "Python",
|
|
25
|
+
".pyw": "Python",
|
|
26
|
+
".pyi": "Python (Stub)",
|
|
27
|
+
// Java/Kotlin
|
|
28
|
+
".java": "Java",
|
|
29
|
+
".kt": "Kotlin",
|
|
30
|
+
".kts": "Kotlin (Script)",
|
|
31
|
+
// Go
|
|
32
|
+
".go": "Go",
|
|
33
|
+
// Rust
|
|
34
|
+
".rs": "Rust",
|
|
35
|
+
// C/C++
|
|
36
|
+
".c": "C",
|
|
37
|
+
".h": "C Header",
|
|
38
|
+
".cpp": "C++",
|
|
39
|
+
".hpp": "C++ Header",
|
|
40
|
+
".cc": "C++",
|
|
41
|
+
".cxx": "C++",
|
|
42
|
+
".hxx": "C++ Header",
|
|
43
|
+
// C#
|
|
44
|
+
".cs": "C#",
|
|
45
|
+
// Ruby
|
|
46
|
+
".rb": "Ruby",
|
|
47
|
+
".rake": "Ruby (Rake)",
|
|
48
|
+
// PHP
|
|
49
|
+
".php": "PHP",
|
|
50
|
+
".phtml": "PHP (HTML)",
|
|
51
|
+
".php3": "PHP",
|
|
52
|
+
".php4": "PHP",
|
|
53
|
+
".php5": "PHP",
|
|
54
|
+
".phps": "PHP",
|
|
55
|
+
// Shell
|
|
56
|
+
".sh": "Shell",
|
|
57
|
+
".bash": "Bash",
|
|
58
|
+
".zsh": "Zsh",
|
|
59
|
+
".fish": "Fish",
|
|
60
|
+
".ksh": "Ksh",
|
|
61
|
+
// SQL
|
|
62
|
+
".sql": "SQL",
|
|
63
|
+
// Swift
|
|
64
|
+
".swift": "Swift",
|
|
65
|
+
// Dart
|
|
66
|
+
".dart": "Dart",
|
|
67
|
+
// Objective-C
|
|
68
|
+
".m": "Objective-C",
|
|
69
|
+
".mm": "Objective-C++",
|
|
70
|
+
// Scala
|
|
71
|
+
".scala": "Scala",
|
|
72
|
+
".sc": "Scala (Script)",
|
|
73
|
+
// Haskell
|
|
74
|
+
".hs": "Haskell",
|
|
75
|
+
".lhs": "Literate Haskell",
|
|
76
|
+
// Lua
|
|
77
|
+
".lua": "Lua",
|
|
78
|
+
// R
|
|
79
|
+
".r": "R",
|
|
80
|
+
".R": "R",
|
|
81
|
+
".rmd": "R Markdown",
|
|
82
|
+
".Rmd": "R Markdown",
|
|
83
|
+
// Perl
|
|
84
|
+
".pl": "Perl",
|
|
85
|
+
".pm": "Perl (Module)",
|
|
86
|
+
".pod": "Perl (Documentation)",
|
|
87
|
+
".t": "Perl (Test)",
|
|
88
|
+
// Elixir/Erlang
|
|
89
|
+
".ex": "Elixir",
|
|
90
|
+
".exs": "Elixir (Script)",
|
|
91
|
+
".erl": "Erlang",
|
|
92
|
+
".hrl": "Erlang (Header)",
|
|
93
|
+
// Clojure
|
|
94
|
+
".clj": "Clojure",
|
|
95
|
+
".cljs": "ClojureScript",
|
|
96
|
+
".cljc": "Clojure (Common)",
|
|
97
|
+
".edn": "Clojure (EDN)",
|
|
98
|
+
// F#
|
|
99
|
+
".fs": "F#",
|
|
100
|
+
".fsx": "F# (Script)",
|
|
101
|
+
".fsi": "F# (Signature)",
|
|
102
|
+
// OCaml
|
|
103
|
+
".ml": "OCaml",
|
|
104
|
+
".mli": "OCaml (Interface)",
|
|
105
|
+
// Lisp/Scheme
|
|
106
|
+
".lisp": "Lisp",
|
|
107
|
+
".lsp": "Lisp",
|
|
108
|
+
".cl": "Common Lisp",
|
|
109
|
+
".scm": "Scheme",
|
|
110
|
+
".ss": "Scheme",
|
|
111
|
+
// Groovy
|
|
112
|
+
".groovy": "Groovy",
|
|
113
|
+
".gvy": "Groovy",
|
|
114
|
+
".gy": "Groovy",
|
|
115
|
+
".gsh": "Groovy (Script)",
|
|
116
|
+
// PowerShell
|
|
117
|
+
".ps1": "PowerShell",
|
|
118
|
+
".psm1": "PowerShell (Module)",
|
|
119
|
+
".psd1": "PowerShell (Data)",
|
|
120
|
+
// Nim
|
|
121
|
+
".nim": "Nim",
|
|
122
|
+
".nims": "Nim (Script)",
|
|
123
|
+
// Zig
|
|
124
|
+
".zig": "Zig",
|
|
125
|
+
// V
|
|
126
|
+
".v": "V",
|
|
127
|
+
// Julia
|
|
128
|
+
".jl": "Julia",
|
|
129
|
+
// Crystal
|
|
130
|
+
".cr": "Crystal",
|
|
131
|
+
// D
|
|
132
|
+
".d": "D",
|
|
133
|
+
// Assembly
|
|
134
|
+
".asm": "Assembly",
|
|
135
|
+
".s": "Assembly",
|
|
136
|
+
".S": "Assembly",
|
|
137
|
+
// Fortran
|
|
138
|
+
".f": "Fortran",
|
|
139
|
+
".f90": "Fortran 90",
|
|
140
|
+
".f95": "Fortran 95",
|
|
141
|
+
".f03": "Fortran 2003",
|
|
142
|
+
".for": "Fortran",
|
|
143
|
+
// COBOL
|
|
144
|
+
".cob": "COBOL",
|
|
145
|
+
".cbl": "COBOL",
|
|
146
|
+
".cobol": "COBOL",
|
|
147
|
+
// Pascal
|
|
148
|
+
".pas": "Pascal",
|
|
149
|
+
".pp": "Pascal",
|
|
150
|
+
".p": "Pascal",
|
|
151
|
+
// Ada
|
|
152
|
+
".ada": "Ada",
|
|
153
|
+
".adb": "Ada (Body)",
|
|
154
|
+
".ads": "Ada (Spec)",
|
|
155
|
+
// Web frameworks/templates
|
|
156
|
+
".vue": "Vue",
|
|
157
|
+
".svelte": "Svelte",
|
|
158
|
+
".hbs": "Handlebars",
|
|
159
|
+
".handlebars": "Handlebars",
|
|
160
|
+
".ejs": "EJS",
|
|
161
|
+
".pug": "Pug",
|
|
162
|
+
".jade": "Jade",
|
|
163
|
+
// Stylesheets
|
|
164
|
+
".css": "CSS",
|
|
165
|
+
".scss": "SCSS",
|
|
166
|
+
".sass": "Sass",
|
|
167
|
+
".less": "Less",
|
|
168
|
+
".styl": "Stylus",
|
|
169
|
+
".stylus": "Stylus",
|
|
170
|
+
// Markup/Data
|
|
171
|
+
".html": "HTML",
|
|
172
|
+
".htm": "HTML",
|
|
173
|
+
".xhtml": "XHTML",
|
|
174
|
+
".xml": "XML",
|
|
175
|
+
".json": "JSON",
|
|
176
|
+
".yaml": "YAML",
|
|
177
|
+
".yml": "YAML",
|
|
178
|
+
".toml": "TOML",
|
|
179
|
+
".md": "Markdown",
|
|
180
|
+
".markdown": "Markdown",
|
|
181
|
+
".rst": "reStructuredText",
|
|
182
|
+
".tex": "LaTeX",
|
|
183
|
+
".latex": "LaTeX",
|
|
184
|
+
// Build/Config
|
|
185
|
+
".dockerfile": "Dockerfile",
|
|
186
|
+
".mk": "Makefile",
|
|
187
|
+
".cmake": "CMake",
|
|
188
|
+
".gradle": "Gradle",
|
|
189
|
+
".sbt": "SBT",
|
|
190
|
+
// Config files
|
|
191
|
+
".env": "Environment",
|
|
192
|
+
".ini": "INI",
|
|
193
|
+
".cfg": "Configuration",
|
|
194
|
+
".conf": "Configuration",
|
|
195
|
+
".config": "Configuration",
|
|
196
|
+
".properties": "Properties",
|
|
197
|
+
// Logs
|
|
198
|
+
".log": "Log",
|
|
199
|
+
// Plain text
|
|
200
|
+
".txt": "Plain Text",
|
|
201
|
+
};
|
|
202
|
+
// =============================================================================
|
|
203
|
+
// EXACT FILENAME MAP
|
|
204
|
+
// =============================================================================
|
|
205
|
+
/**
|
|
206
|
+
* Maps exact filenames (without extension) to their language/type
|
|
207
|
+
* Used for special files like Dockerfile, Makefile, etc.
|
|
208
|
+
*/
|
|
209
|
+
export const EXACT_FILENAME_MAP = {
|
|
210
|
+
// Docker
|
|
211
|
+
Dockerfile: "Dockerfile",
|
|
212
|
+
"Dockerfile.dev": "Dockerfile",
|
|
213
|
+
"Dockerfile.prod": "Dockerfile",
|
|
214
|
+
"docker-compose.yml": "Docker Compose",
|
|
215
|
+
"docker-compose.yaml": "Docker Compose",
|
|
216
|
+
// Build tools
|
|
217
|
+
Makefile: "Makefile",
|
|
218
|
+
makefile: "Makefile",
|
|
219
|
+
GNUmakefile: "Makefile",
|
|
220
|
+
CMakeLists: "CMake",
|
|
221
|
+
Rakefile: "Ruby",
|
|
222
|
+
Gemfile: "Ruby",
|
|
223
|
+
"Gemfile.lock": "Ruby",
|
|
224
|
+
Podfile: "Ruby",
|
|
225
|
+
"Podfile.lock": "Ruby",
|
|
226
|
+
Fastfile: "Ruby",
|
|
227
|
+
Appfile: "Ruby",
|
|
228
|
+
Matchfile: "Ruby",
|
|
229
|
+
Guardfile: "Ruby",
|
|
230
|
+
Vagrantfile: "Ruby",
|
|
231
|
+
Berksfile: "Ruby",
|
|
232
|
+
Thorfile: "Ruby",
|
|
233
|
+
Puppetfile: "Ruby",
|
|
234
|
+
Brewfile: "Ruby",
|
|
235
|
+
Buildfile: "Ruby",
|
|
236
|
+
// Node.js
|
|
237
|
+
"package.json": "JSON (npm)",
|
|
238
|
+
"package-lock.json": "JSON (npm)",
|
|
239
|
+
"yarn.lock": "YAML (Yarn)",
|
|
240
|
+
"pnpm-lock.yaml": "YAML (pnpm)",
|
|
241
|
+
"tsconfig.json": "JSON (TypeScript)",
|
|
242
|
+
"jsconfig.json": "JSON (JavaScript)",
|
|
243
|
+
".npmrc": "npm Config",
|
|
244
|
+
".yarnrc": "Yarn Config",
|
|
245
|
+
".nvmrc": "nvm Config",
|
|
246
|
+
// Python
|
|
247
|
+
Pipfile: "TOML (Pipenv)",
|
|
248
|
+
"Pipfile.lock": "JSON (Pipenv)",
|
|
249
|
+
"pyproject.toml": "TOML (Python)",
|
|
250
|
+
"setup.py": "Python",
|
|
251
|
+
"setup.cfg": "INI (Python)",
|
|
252
|
+
"requirements.txt": "Plain Text (pip)",
|
|
253
|
+
"constraints.txt": "Plain Text (pip)",
|
|
254
|
+
"tox.ini": "INI (tox)",
|
|
255
|
+
".python-version": "Plain Text",
|
|
256
|
+
// CI/CD
|
|
257
|
+
Jenkinsfile: "Groovy",
|
|
258
|
+
".travis.yml": "YAML (Travis CI)",
|
|
259
|
+
".gitlab-ci.yml": "YAML (GitLab CI)",
|
|
260
|
+
"azure-pipelines.yml": "YAML (Azure)",
|
|
261
|
+
"bitbucket-pipelines.yml": "YAML (Bitbucket)",
|
|
262
|
+
"circle.yml": "YAML (CircleCI)",
|
|
263
|
+
"appveyor.yml": "YAML (AppVeyor)",
|
|
264
|
+
// Git
|
|
265
|
+
".gitignore": "Git Ignore",
|
|
266
|
+
".gitattributes": "Git Attributes",
|
|
267
|
+
".gitmodules": "Git Modules",
|
|
268
|
+
".gitkeep": "Git Keep",
|
|
269
|
+
// Editors/IDE
|
|
270
|
+
".editorconfig": "EditorConfig",
|
|
271
|
+
".prettierrc": "JSON (Prettier)",
|
|
272
|
+
".prettierignore": "Prettier Ignore",
|
|
273
|
+
".eslintrc": "JSON (ESLint)",
|
|
274
|
+
".eslintignore": "ESLint Ignore",
|
|
275
|
+
".stylelintrc": "JSON (Stylelint)",
|
|
276
|
+
".babelrc": "JSON (Babel)",
|
|
277
|
+
".browserslistrc": "Browserslist",
|
|
278
|
+
// Misc
|
|
279
|
+
LICENSE: "License",
|
|
280
|
+
"LICENSE.md": "License",
|
|
281
|
+
"LICENSE.txt": "License",
|
|
282
|
+
CHANGELOG: "Changelog",
|
|
283
|
+
"CHANGELOG.md": "Changelog",
|
|
284
|
+
README: "Readme",
|
|
285
|
+
"README.md": "Readme",
|
|
286
|
+
AUTHORS: "Authors",
|
|
287
|
+
CONTRIBUTORS: "Contributors",
|
|
288
|
+
CODEOWNERS: "GitHub CODEOWNERS",
|
|
289
|
+
".env": "Environment",
|
|
290
|
+
".env.local": "Environment",
|
|
291
|
+
".env.development": "Environment",
|
|
292
|
+
".env.production": "Environment",
|
|
293
|
+
".env.test": "Environment",
|
|
294
|
+
".env.example": "Environment",
|
|
295
|
+
Procfile: "Procfile (Heroku)",
|
|
296
|
+
};
|
|
297
|
+
// =============================================================================
|
|
298
|
+
// UTILITY FUNCTIONS
|
|
299
|
+
// =============================================================================
|
|
300
|
+
/**
|
|
301
|
+
* Detects the programming language from a filename
|
|
302
|
+
*
|
|
303
|
+
* @param filename - The filename to detect language from
|
|
304
|
+
* @returns The detected language name or 'Unknown'
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```typescript
|
|
308
|
+
* detectLanguageFromFilename('app.ts') // Returns 'TypeScript'
|
|
309
|
+
* detectLanguageFromFilename('Dockerfile') // Returns 'Dockerfile'
|
|
310
|
+
* detectLanguageFromFilename('unknown.xyz') // Returns 'Unknown'
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
export function detectLanguageFromFilename(filename) {
|
|
314
|
+
if (!filename) {
|
|
315
|
+
return "Unknown";
|
|
316
|
+
}
|
|
317
|
+
// Check exact filename matches first (Dockerfile, Makefile, etc.)
|
|
318
|
+
const exactMatch = EXACT_FILENAME_MAP[filename];
|
|
319
|
+
if (exactMatch) {
|
|
320
|
+
return exactMatch;
|
|
321
|
+
}
|
|
322
|
+
// Also check the basename for exact matches (in case full path is passed)
|
|
323
|
+
const basename = pathBasename(filename);
|
|
324
|
+
const basenameMatch = EXACT_FILENAME_MAP[basename];
|
|
325
|
+
if (basenameMatch) {
|
|
326
|
+
return basenameMatch;
|
|
327
|
+
}
|
|
328
|
+
// Get the file extension
|
|
329
|
+
const lastDotIndex = basename.lastIndexOf(".");
|
|
330
|
+
if (lastDotIndex === -1) {
|
|
331
|
+
return "Unknown";
|
|
332
|
+
}
|
|
333
|
+
const extension = basename.slice(lastDotIndex).toLowerCase();
|
|
334
|
+
// Check extension in language map
|
|
335
|
+
const languageMatch = LANGUAGE_MAP[extension];
|
|
336
|
+
if (languageMatch) {
|
|
337
|
+
return languageMatch;
|
|
338
|
+
}
|
|
339
|
+
// Handle case-sensitive extensions (like .R)
|
|
340
|
+
const originalExtension = basename.slice(lastDotIndex);
|
|
341
|
+
const caseSensitiveMatch = LANGUAGE_MAP[originalExtension];
|
|
342
|
+
if (caseSensitiveMatch) {
|
|
343
|
+
return caseSensitiveMatch;
|
|
344
|
+
}
|
|
345
|
+
return "Unknown";
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Gets the lowercase language identifier for syntax highlighting
|
|
349
|
+
*
|
|
350
|
+
* @param filename - The filename to get language identifier from
|
|
351
|
+
* @returns The lowercase language identifier suitable for syntax highlighting
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* ```typescript
|
|
355
|
+
* getLanguageIdentifier('app.ts') // Returns 'typescript'
|
|
356
|
+
* getLanguageIdentifier('Dockerfile') // Returns 'dockerfile'
|
|
357
|
+
* ```
|
|
358
|
+
*/
|
|
359
|
+
export function getLanguageIdentifier(filename) {
|
|
360
|
+
const language = detectLanguageFromFilename(filename);
|
|
361
|
+
// Convert display name to identifier
|
|
362
|
+
return language
|
|
363
|
+
.toLowerCase()
|
|
364
|
+
.replace(/\s*\([^)]*\)\s*/g, "") // Remove parenthetical content
|
|
365
|
+
.replace(/\s+/g, "-") // Replace spaces with hyphens
|
|
366
|
+
.trim();
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Checks if a file is a source code file based on its extension
|
|
370
|
+
*
|
|
371
|
+
* @param filename - The filename to check
|
|
372
|
+
* @returns True if the file is a source code file
|
|
373
|
+
*/
|
|
374
|
+
export function isSourceCodeFile(filename) {
|
|
375
|
+
const language = detectLanguageFromFilename(filename);
|
|
376
|
+
const nonCodeLanguages = [
|
|
377
|
+
"Unknown",
|
|
378
|
+
"Plain Text",
|
|
379
|
+
"Log",
|
|
380
|
+
"Environment",
|
|
381
|
+
"Configuration",
|
|
382
|
+
"Properties",
|
|
383
|
+
"License",
|
|
384
|
+
"Changelog",
|
|
385
|
+
"Readme",
|
|
386
|
+
"Authors",
|
|
387
|
+
"Contributors",
|
|
388
|
+
"Git Ignore",
|
|
389
|
+
"Git Attributes",
|
|
390
|
+
"Git Modules",
|
|
391
|
+
"Git Keep",
|
|
392
|
+
];
|
|
393
|
+
return !nonCodeLanguages.includes(language);
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Gets all supported file extensions
|
|
397
|
+
*
|
|
398
|
+
* @returns Array of all supported file extensions
|
|
399
|
+
*/
|
|
400
|
+
export function getSupportedExtensions() {
|
|
401
|
+
return Object.keys(LANGUAGE_MAP);
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Gets all supported exact filenames
|
|
405
|
+
*
|
|
406
|
+
* @returns Array of all supported exact filenames
|
|
407
|
+
*/
|
|
408
|
+
export function getSupportedFilenames() {
|
|
409
|
+
return Object.keys(EXACT_FILENAME_MAP);
|
|
410
|
+
}
|