hindicode 1.1.0 → 1.3.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 (3) hide show
  1. package/README.md +53 -197
  2. package/index.js +239 -146
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,132 +1,15 @@
1
1
  # HindiCode - हिंदी में जावास्क्रिप्ट लिखें! 🚀
2
-
3
- ## परिचय
4
- **HindiCode** एक अनोखा NPM पैकेज है जो आपको **हिंदी में जावास्क्रिप्ट** लिखने की सुविधा देता है। यह कोड को रन-टाइम पर **हिंदी से जावास्क्रिप्ट** में परिवर्तित करता है ताकि आप **JavaScript के कीवर्ड्स हिंदी में** लिख सकें!
5
-
6
- 🔹 **दृष्टांत:**
7
- ```hindi
8
- स्थिर x = 10;
9
- अगर (x > 5) {
10
- दिखाओ("x बड़ा है!");
11
- } अन्यथा {
12
- दिखाओ("x छोटा है!");
13
- }
14
- ```
15
- ✅ **परिवर्तित जावास्क्रिप्ट कोड:**
16
- ```javascript
17
- const x = 10;
18
- if (x > 5) {
19
- console.log("x बड़ा है!");
20
- } else {
21
- console.log("x छोटा है!");
22
- }
23
- ```
2
+ > Write JavaScript in Hindi with Industrial-Grade Robustness.
24
3
 
25
4
  ---
26
5
 
27
- ## 📌 विशेषताएँ
28
- **हिंदी में कोडिंग:** जावास्क्रिप्ट के कीवर्ड्स हिंदी में!
29
- ✔ **रन-टाइम ट्रांसपाइलर:** `.hindi.js` फ़ाइल को डायरेक्ट रन करें।
30
- ✔ **स्ट्रिंग्स सुरक्षित:** कोड में लिखे हुए टेक्स्ट को अनछुए रखता है।
31
- ✔ **सिंपल सेटअप:** बस इंस्टॉल करें और उपयोग करें!
32
-
33
- ---
6
+ ## 🌍 [HI] परिचय (Introduction)
7
+ **HindiCode** एक आधुनिक NPM पैकेज है जो आपको **हिंदी में जावास्क्रिप्ट** लिखने की सुविधा देता है। यह कोड को रन-टाइम पर पार्स करता है और हिंदी के कीवर्ड्स को जावास्क्रिप्ट में बदल देता है।
34
8
 
35
- ## 🔧 इंस्टॉलेशन
36
- ```sh
37
- npm install -g hindicode
38
- ```
39
-
40
- ---
41
-
42
- ## 🚀 उपयोग कैसे करें?
43
-
44
- ### **1️⃣ हिंदी कोड लिखें**
45
- `.hindi.js` फाइल बनाएं और हिंदी में जावास्क्रिप्ट लिखें:
46
- ```hindi
47
- // test.hindi.js
48
- स्थिर संख्या = 42;
49
- दिखाओ("संख्या है:", संख्या);
50
-
51
- कार्य जोड़ो(क, ख) {
52
- लौटाओ क + ख;
53
- }
54
-
55
- दिखाओ("जोड़:", जोड़ो(5, 7));
56
- ```
57
-
58
- ### **2️⃣ सीधे चलाएँ**
59
- ```sh
60
-
61
- node test.hindi.js
62
- or
63
- node hindicode test.hindi.js
64
-
65
-
66
- ✅ आउटपुट:
67
- ```
68
- संख्या है: 42
69
- जोड़: 12
70
- ```
71
-
72
- ---
73
-
74
- ## 🔍 कैसे काम करता है?
75
- **HindiCode** रन-टाइम पर `.hindi.js` फ़ाइल को लोड करता है और उसमें लिखे गए **हिंदी कीवर्ड्स को जावास्क्रिप्ट में** बदलकर उसे रन करता है।
9
+ **HindiCode** is a modern NPM package that lets you **write JavaScript in Hindi**. It transpiles Hindi keywords into JavaScript at runtime, enabling a seamless native coding experience.
76
10
 
11
+ ### 🔹 Example (उदाहरण)
77
12
  ```javascript
78
- require.extensions[".hindi.js"] = function (module, filename) {
79
- let content = fs.readFileSync(filename, "utf8").trim();
80
- content = translateHindiJS(content);
81
- module._compile(content, filename);
82
- };
83
- ```
84
-
85
- ---
86
-
87
- ## 📖 हिंदी से जावास्क्रिप्ट कीवर्ड्स मैपिंग
88
- | **हिंदी** | **जावास्क्रिप्ट** |
89
- |-----------|------------------|
90
- | अगर | if |
91
- | अन्यथा | else |
92
- | दिखाओ | console.log |
93
- | कार्य | function |
94
- | लौटाओ | return |
95
- | चलाओ | for |
96
- | जबतक | while |
97
- | नया | let |
98
- | स्थिर | const |
99
- | परिभाषा | var |
100
- | सही | true |
101
- | गलत | false |
102
-
103
-
104
-
105
- ---
106
-
107
- ## 💖 सहयोग करें!
108
- अगर आपको **HindiCode** पसंद आया हो, तो हमारे प्रोजेक्ट को **सपोर्ट** करें!
109
- 👉 [डोनेट करें - Patreon](https://www.patreon.com/c/BABU_ISHU)
110
-
111
- ---
112
-
113
- ## 📜 लाइसेंस
114
- यह प्रोजेक्ट **MIT लाइसेंस** के अंतर्गत जारी किया गया है।
115
- आप इसे फ्री में उपयोग कर सकते हैं, लेकिन इसका सही उपयोग करें! 😊
116
-
117
- ---
118
-
119
- ## 🚀 योगदान करें
120
- अगर आपके पास कोई सुझाव या नया फ़ीचर जोड़ना चाहते हैं, तो GitHub पर PR भेजें!
121
- **Happy Coding! ❤️**
122
-
123
- # HindiCode - Write JavaScript in Hindi! 🚀
124
-
125
- ## Introduction
126
- **HindiCode** is an NPM package that allows you to **write JavaScript in Hindi**. It transpiles **Hindi keywords into JavaScript** at runtime, enabling you to code in Hindi seamlessly!
127
-
128
- 🔹 **Example:**
129
- ```hindi
130
13
  स्थिर x = 10;
131
14
  अगर (x > 5) {
132
15
  दिखाओ("x बड़ा है!");
@@ -134,108 +17,81 @@ require.extensions[".hindi.js"] = function (module, filename) {
134
17
  दिखाओ("x छोटा है!");
135
18
  }
136
19
  ```
137
- ✅ **Transpiled JavaScript:**
138
- ```javascript
139
- const x = 10;
140
- if (x > 5) {
141
- console.log("x बड़ा है!");
142
- } else {
143
- console.log("x छोटा है!");
144
- }
145
- ```
146
20
 
147
21
  ---
148
22
 
149
- ## 📌 Features
150
- **Code in Hindi:** Use Hindi keywords instead of JavaScript ones.
151
- **Runtime Transpiler:** Run `.hindi.js` files directly.
152
- **String Protection:** Keeps your string content untouched.
153
- **Simple Setup:** Install and start using immediately.
23
+ ## 🌟 Features (विशेषताएँ)
24
+ - **Industrial-Grade Protection**:
25
+ - **🛡️ Comment Protection**: Keywords inside `//` or `/* */` are never translated.
26
+ - **🛡️ String Protection**: Your text inside `" "` or `' '` stays exactly as written.
27
+ - **🛡️ Regex Protection**: Search patterns like `/अगर/g` are preserved perfectly.
28
+ - **Smart Template Literals**: Supports full `${}` interpolation with recursive translation.
29
+ - **Unicode Boundaries**: Professional word boundaries ensure `नम` doesn't break `नमस्ते`.
30
+ - **Zero Configuration**: Just register the hook and run `.hindi.js` files.
154
31
 
155
32
  ---
156
33
 
157
- ## 🔧 Installation
34
+ ## 🔧 Installation (स्थापना)
158
35
  ```sh
159
- npm install -g hindicode
36
+ npm install hindicode
160
37
  ```
161
38
 
162
39
  ---
163
40
 
164
- ## 🚀 How to Use?
165
-
166
- ### **1️⃣ Write Hindi Code**
167
- Create a `.hindi.js` file and write JavaScript using Hindi keywords:
168
- ```hindi
169
- // test.hindi.js
170
- स्थिर संख्या = 42;
171
- दिखाओ("संख्या है:", संख्या);
172
-
173
- कार्य जोड़ो(क, ख) {
174
- लौटाओ क + ख;
175
- }
41
+ ## 🚀 Usage (उपयोग)
176
42
 
177
- दिखाओ("जोड़:", जोड़ो(5, 7));
178
- ```
179
-
180
- ### **2️⃣ Run Directly**
181
- ```sh
182
- node test.hindi.js
183
- or
184
- node hindicode test.hindi.js
185
- ```
186
- ✅ **Output:**
187
- ```
188
- संख्या है: 42
189
- जोड़: 12
43
+ ### 1. Register the Transpiler
44
+ Add this to your entry point (e.g., `index.js`):
45
+ ```javascript
46
+ require('hindicode');
47
+ require('./your-file.hindi.js');
190
48
  ```
191
49
 
192
- ---
50
+ ### 2. Write in Hindi (`.hindi.js`)
51
+ ```javascript
52
+ // app.hindi.js
53
+ नया नाम = "अर्जुन";
54
+ दिखाओ(`नमस्ते ${नाम}!`);
193
55
 
194
- ## 🔍 How Does It Work?
195
- **HindiCode** hooks into Node.js and **transpiles Hindi keywords into JavaScript** at runtime before execution.
56
+ कार्य जोड़(अ, ब) {
57
+ लौटाओ + ब;
58
+ }
196
59
 
197
- ```javascript
198
- require.extensions[".hindi.js"] = function (module, filename) {
199
- let content = fs.readFileSync(filename, "utf8").trim();
200
- content = translateHindiJS(content);
201
- module._compile(content, filename);
202
- };
60
+ दिखाओ("योग:", जोड़(10, 20));
203
61
  ```
204
62
 
205
63
  ---
206
64
 
207
- ## 📖 Hindi to JavaScript Keyword Mapping
208
- | **Hindi** | **JavaScript** |
209
- |------------|--------------|
210
- | अगर | if |
211
- | अन्यथा | else |
212
- | दिखाओ | console.log |
213
- | कार्य | function |
214
- | लौटाओ | return |
215
- | चलाओ | for |
216
- | जबतक | while |
217
- | नया | let |
218
- | स्थिर | const |
219
- | परिभाषा | var |
220
- | सही | true |
221
- | गलत | false |
222
-
65
+ ## 📖 Keyword Mapping (कीवर्ड्स)
66
+ | Hindi | JavaScript | Hindi | JavaScript |
67
+ | :--- | :--- | :--- | :--- |
68
+ | अगर | if | अन्य | else |
69
+ | दिखाओ | console.log | कार्य | function |
70
+ | लौटाओ | return | चलाओ | for |
71
+ | जबतक | while | नया | let |
72
+ | स्थिर | const | सही | true |
73
+ | गलत | false | असांयकालिक | async |
74
+ | प्रतीक्षा | await | त्रुटि | Error |
223
75
 
76
+ *(Check `index.js` for the full dictionary of over 90+ terms!)*
224
77
 
225
78
  ---
226
79
 
227
- ## 💖 Support Us!
228
- If you like **HindiCode**, consider supporting the project!
229
- 👉 [Donate on Patreon](https://www.patreon.com/c/BABU_ISHU)
80
+ ## 🗺️ Roadmap (भविष्य की योजना)
81
+ - [ ] **Hindi Variables**: Support for non-keyword Hindi tokens as identifiers.
82
+ - [ ] **Hindi CLI**: A dedicated runner (`hindicode my-file.hindi.js`).
83
+ - [ ] **VS Code Extension**: Syntax highlighting and snippets for `.hindi.js`.
84
+ - [ ] **Hindi Error Messages**: Localized compiler errors.
85
+ - [ ] **Hindi-DOM**: Support for `दस्तावेज़` (document) and `खिड़की` (window).
230
86
 
231
87
  ---
232
88
 
233
- ## 📜 License
234
- This project is released under the **MIT License**.
235
- Feel free to use it responsibly! 😊
89
+ ## 💖 Contribute (योगदान)
90
+ We welcome contributions! Star the repo and join the movement to make coding accessible in every language.
91
+
92
+ 👉 **Support Us**: [Patreon](https://www.patreon.com/c/BABU_ISHU)
236
93
 
237
94
  ---
238
95
 
239
- ## 🚀 Contribute
240
- Have suggestions or want to add new features? Submit a PR on GitHub!
241
- **Happy Coding! ❤️**
96
+ ## 📜 License
97
+ Released under the **MIT License**. 😊
package/index.js CHANGED
@@ -1,146 +1,239 @@
1
- const fs = require("fs");
2
- const Module = require("module");
3
- const path = require("path");
4
- const hindiToJS = {
5
- "अगर": "if",
6
- "अन्यथा": "else",
7
- "दिखाओ": "console.log",
8
- "कार्य": "function",
9
- "लौटाओ": "return",
10
- "चलाओ": "for",
11
- "जबतक": "while",
12
- "नया": "let",
13
- "स्थिर": "const",
14
- "परिभाषा": "var",
15
- "सही": "true",
16
- "गलत": "false",
17
- "शून्य": "null",
18
- "प्रयास": "try",
19
- "पकड़ो": "catch",
20
- "अंततः": "finally",
21
- "फेंको": "throw",
22
- "वर्ग": "class",
23
- "विस्तार": "extends",
24
- "सुपर": "super",
25
- "वापसी": "yield",
26
- "प्रतीक्षा": "await",
27
- "आयात": "import",
28
- "निर्यात": "export",
29
- "डिफ़ॉल्ट": "default",
30
- "केस": "case",
31
- "ब्रेक": "break",
32
- "जारी": "continue",
33
- "स्विच": "switch",
34
- "केलिए": "for",
35
- "प्रत्येक": "forEach",
36
- "मानचित्र": "map",
37
- "फ़िल्टर": "filter",
38
- "कम करना": "reduce",
39
- "शामिल": "includes",
40
- "इंडेक्स": "indexOf",
41
- "पुश": "push",
42
- "पॉप": "pop",
43
- "शिफ्ट": "shift",
44
- "अनशिफ्ट": "unshift",
45
- "splice": "splice",
46
- "concat": "concat",
47
- "स्लाइस": "slice",
48
- "लंबाई": "length",
49
- "प्रकार": "typeof",
50
- "उदाहरण": "instanceof",
51
- "में": "in",
52
- "नयाउदाहरण": "new",
53
- "हटाना": "delete",
54
- "शून्य करना": "void",
55
- "साथ": "with",
56
- "डीबग": "debugger",
57
- "लेबल": "label",
58
- "कोशिश": "try",
59
- "ये": "this",
60
- "प्रोटो": "prototype",
61
- "कॉल": "call",
62
- "लागू": "apply",
63
- "बाध्य": "bind",
64
- "अर्जुन": "arguments",
65
- "बनाएँ": "create",
66
- "कुंजी": "key",
67
- "मूल्य": "value",
68
- "प्रविष्टि": "entry",
69
- "सेट": "set",
70
- "प्राप्त": "get",
71
- "है": "has",
72
- "साफ़": "clear",
73
- "आकार": "size",
74
- "फिर": "then",
75
- "पकड़": "catch",
76
- "अंत में": "finally",
77
- "सभी": "all",
78
- "रेस": "race",
79
- "हल": "resolve",
80
- "अस्वीकार": "reject",
81
- "से": "from",
82
- "एक": "as",
83
- "नम": "name",
84
- "भेजें": "send",
85
- "प्राप्त": "receive",
86
- "कनेक्ट": "connect",
87
- "सुनो": "listen",
88
- "सर्वर": "server",
89
- "ग्राहक": "client",
90
- "अनंत": "Infinity",
91
- "NaN": "NaN",
92
- "कोड": "code",
93
- "संदेश": "message",
94
- "असांयकालिक": "async",
95
- "त्रुटि": "Error",
96
- };
97
-
98
- function translateHindiJS(code) {
99
- const sortedKeywords = Object.keys(hindiToJS).sort((a, b) => b.length - a.length);
100
-
101
- const parts = [
102
- /(?<BLOCK>\/\*[\s\S]*?\*\/)/.source,
103
- /(?<LINE>\/\/.*)/.source,
104
- /(?<STRING_DBL>"(?:[^"\\]|\\.)*")/.source,
105
- /(?<STRING_SGL>'(?:[^'\\]|\\.)*')/.source,
106
- /(?<BACKTICK>`[\s\S]*?`)/.source,
107
- /(?<REGEX>\/(?![*\/])(?:[^\/\\\n]|\\.)*?\/[gimuy]*)/.source,
108
- `(?<KEYWORD>(?<![\\u0900-\\u097F])(?:${sortedKeywords.join("|")})(?![\\u0900-\\u097F]))`
109
- ];
110
-
111
- const masterRegex = new RegExp(parts.join("|"), "g");
112
-
113
- return code.replace(masterRegex, (...args) => {
114
- const groups = args[args.length - 1];
115
- const { BACKTICK, KEYWORD } = groups;
116
-
117
- if (KEYWORD && hindiToJS[KEYWORD]) {
118
- return hindiToJS[KEYWORD];
119
- }
120
-
121
- if (BACKTICK) {
122
- return BACKTICK.replace(/\${([\s\S]*?)}/g, (m, inner) => {
123
- return `${"$"}{${translateHindiJS(inner)}}`;
124
- });
125
- }
126
-
127
- return args[0];
128
- });
129
- }
130
-
131
- // Custom require hook for `.hindi.js` files
132
- require.extensions[".hindi.js"] = function (module, filename) {
133
- try {
134
- let content = fs.readFileSync(filename, "utf8").trim();
135
- content = translateHindiJS(content);
136
- module._compile(content, filename);
137
-
138
-
139
- // Run translated JavaScript code
140
- module._compile(content, filename);
141
- } catch (error) {
142
- console.error(" Hindi Transpiler Error:", error);
143
- }
144
- };
145
-
146
- module.exports = { translateHindiJS };
1
+ const fs = require("fs");
2
+ const Module = require("module");
3
+ const path = require("path");
4
+
5
+ const hindiToJS = {
6
+ // ── Multi-word phrases FIRST (longest → shortest to avoid partial matches) ──
7
+ "नहीं तो": "else",
8
+ "के रूप में": "as",
9
+ "का प्रकार": "typeof",
10
+ "नया बनाओ": "new",
11
+ "कम या बराबर": "<=",
12
+ "ज्यादा या बराबर": ">=",
13
+ "बराबर नहीं": "!==",
14
+
15
+ // ── Control Flow ─────────────────────────────────
16
+ "अगर": "if",
17
+ "वरना": "else",
18
+ "करो": "do",
19
+ "जबतक": "while",
20
+ "केलिए": "for",
21
+ "स्विच": "switch",
22
+ "मामला": "case",
23
+ "रोकें": "break",
24
+ "जारी": "continue",
25
+ "लौटाओ": "return",
26
+ "फेंको": "throw",
27
+
28
+ // ── Declarations ─────────────────────────────────
29
+ "नया": "let",
30
+ "स्थिर": "const",
31
+ "पुराना": "var",
32
+ "कार्य": "function",
33
+ "वर्ग": "class",
34
+
35
+ // ── Async ─────────────────────────────────────────
36
+ "असिंक": "async",
37
+ "इंतज़ार": "await",
38
+
39
+ // ── Literals ─────────────────────────────────────
40
+ "सच": "true",
41
+ "झूठ": "false",
42
+ "खाली": "null",
43
+ "अपरिभाषित": "undefined",
44
+
45
+ // ── OOP ──────────────────────────────────────────
46
+ "विस्तार": "extends",
47
+ "सुपर": "super",
48
+ "यह": "this",
49
+ "हटाओ": "delete",
50
+ "प्रोटो": "prototype",
51
+ "में": "in",
52
+ "सत्यापित": "instanceof",
53
+ "वापसी": "yield",
54
+
55
+ // ── Modules ──────────────────────────────────────
56
+ "आयात": "import",
57
+ "निर्यात": "export",
58
+ "डिफ़ॉल्ट": "default",
59
+ "से": "from",
60
+ "मांगो": "require",
61
+ "मॉड्यूल": "module",
62
+
63
+ // ── Operators ────────────────────────────────────
64
+ "और": "&&",
65
+ "या": "||",
66
+ "नहीं": "!",
67
+ "बराबर": "===",
68
+ "छोटा": "<",
69
+ "बड़ा": ">",
70
+
71
+ // ── Error Handling ────────────────────────────────
72
+ "कोशिश": "try",
73
+ "पकड़ो": "catch",
74
+ "पकड़": "catch",
75
+ "अंततः": "finally",
76
+ "त्रुटि": "Error",
77
+
78
+ // ── Console ──────────────────────────────────────
79
+ "दिखाओ": "console.log",
80
+ "गलती": "console.error",
81
+ "चेतावनी": "console.warn",
82
+ "जानकारी": "console.info",
83
+ "कंसोल": "console",
84
+
85
+ // ── Array Methods ────────────────────────────────
86
+ "पुश": "push",
87
+ "पॉप": "pop",
88
+ "शिफ्ट": "shift",
89
+ "अनशिफ्ट": "unshift",
90
+ "स्लाइस": "slice",
91
+ "जोड़ो": "concat",
92
+ "शामिल": "includes",
93
+ "ढूँढो": "find",
94
+ "मानचित्र": "map",
95
+ "फ़िल्टर": "filter",
96
+ "कमकरो": "reduce",
97
+ "हरएक": "forEach",
98
+ "लंबाई": "length",
99
+ "इंडेक्स": "indexOf",
100
+ "उलटाओ": "reverse",
101
+ "क्रमित": "sort",
102
+
103
+ // ── Object Methods ────────────────────────────────
104
+ "कुंजियाँ": "keys",
105
+ "मूल्य": "values",
106
+ "प्रविष्टियाँ": "entries",
107
+ "बनाएँ": "create",
108
+ "मिलाओ": "assign",
109
+ "जमाओ": "freeze",
110
+
111
+ // ── Map / Set ─────────────────────────────────────
112
+ "नक्शा": "Map",
113
+ "है": "has",
114
+ "प्राप्त": "get",
115
+ "रखो": "set",
116
+ "साफ़": "clear",
117
+ "आकार": "size",
118
+ "डालो": "add",
119
+
120
+ // ── Promise ───────────────────────────────────────
121
+ "फिर": "then",
122
+ "सभी": "all",
123
+ "हल": "resolve",
124
+ "अस्वीकार": "reject",
125
+ "प्रॉमिस": "Promise",
126
+
127
+ // ── Browser APIs ──────────────────────────────────
128
+ "विंडो": "window",
129
+ "दस्तावेज": "document",
130
+ "ब्राउज़र": "navigator",
131
+ "स्थान": "location",
132
+ "इतिहास": "history",
133
+ "संग्रह": "localStorage",
134
+ "सत्र_संग्रह": "sessionStorage",
135
+ "चेतावनी_डिब्बा": "alert",
136
+ "पूछो": "prompt",
137
+ "पक्का_करो": "confirm",
138
+ "लाओ": "fetch",
139
+ "समय_बाद": "setTimeout",
140
+ "बार_बार": "setInterval",
141
+ "समय_रोकें": "clearTimeout",
142
+ "बार_रोकें": "clearInterval",
143
+
144
+ // ── Node.js ───────────────────────────────────────
145
+ "प्रक्रिया": "process",
146
+ "__नाम": "__filename",
147
+ "__डायरेक्टरी": "__dirname",
148
+ "बफर": "Buffer",
149
+
150
+ // ── Built-ins ─────────────────────────────────────
151
+ "ऑब्जेक्ट": "Object",
152
+ "ऐरे": "Array",
153
+ "सेट": "Set",
154
+ "स्ट्रिंग": "String",
155
+ "टेक्स्ट": "String",
156
+ "नंबर": "Number",
157
+ "बूलियन": "Boolean",
158
+ "डेट": "Date",
159
+ "तारीख": "Date",
160
+ "गणित": "Math",
161
+ "जेसन": "JSON",
162
+ "रेगएक्स": "RegExp",
163
+ "अनंत": "Infinity",
164
+ "त्रुटि": "Error",
165
+ "प्रॉमिस": "Promise",
166
+
167
+ // ── Math Shortcuts ────────────────────────────────
168
+ "गोलाई": "Math.round",
169
+ "ऊपर": "Math.ceil",
170
+ "नीचे": "Math.floor",
171
+ "अधिकतम": "Math.max",
172
+ "न्यूनतम": "Math.min",
173
+ "यादृच्छ": "Math.random",
174
+ "वर्गमूल": "Math.sqrt",
175
+ "पाई": "Math.PI",
176
+
177
+ // ── JSON Shortcuts ────────────────────────────────
178
+ "पार्स": "JSON.parse",
179
+ "तार_बनाओ": "JSON.stringify",
180
+
181
+ // ── String Methods ────────────────────────────────
182
+ "बड़े_अक्षर": "toUpperCase",
183
+ "छोटे_अक्षर": "toLowerCase",
184
+ "काटो": "trim",
185
+ "विभाजन": "split",
186
+ "बदलो": "replace",
187
+ "खोजो": "search",
188
+ "शुरू_से": "startsWith",
189
+ "खत्म_से": "endsWith",
190
+ "दोहराओ": "repeat",
191
+ "हिस्सा": "substring",
192
+ };
193
+
194
+ function translateHindiJS(code) {
195
+ const sortedKeywords = Object.keys(hindiToJS).sort((a, b) => b.length - a.length);
196
+
197
+ const parts = [
198
+ /(?<BLOCK>\/\*[\s\S]*?\*\/)/.source,
199
+ /(?<LINE>\/\/.*)/.source,
200
+ /(?<STRING_DBL>"(?:[^"\\]|\\.)*")/.source,
201
+ /(?<STRING_SGL>'(?:[^'\\]|\\.)*')/.source,
202
+ /(?<BACKTICK>`[\s\S]*?`)/.source,
203
+ /(?<REGEX>\/(?![*\/])(?:[^\/\\\n]|\\.)*?\/[gimuy]*)/.source,
204
+ `(?<KEYWORD>(?<![\\u0900-\\u097F\\w$])(?:${sortedKeywords.join("|")})(?![\\u0900-\\u097F\\w$]))`
205
+ ];
206
+
207
+ const masterRegex = new RegExp(parts.join("|"), "g");
208
+
209
+ return code.replace(masterRegex, (...args) => {
210
+ const groups = args[args.length - 1];
211
+ const { BACKTICK, KEYWORD } = groups;
212
+
213
+ if (KEYWORD && hindiToJS[KEYWORD]) {
214
+ return hindiToJS[KEYWORD];
215
+ }
216
+
217
+ if (BACKTICK) {
218
+ return BACKTICK.replace(/\${([\s\S]*?)}/g, (m, inner) => {
219
+ return `${"$"}{${translateHindiJS(inner)}}`;
220
+ });
221
+ }
222
+
223
+ return args[0];
224
+ });
225
+ }
226
+
227
+ // Custom require hook for `.hindi.js` files
228
+ require.extensions[".hindi.js"] = function (module, filename) {
229
+ try {
230
+ let content = fs.readFileSync(filename, "utf8").trim();
231
+ content = translateHindiJS(content);
232
+ module._compile(content, filename);
233
+ } catch (error) {
234
+ console.error("❌ Hindi Transpiler Error:", error);
235
+ throw error; // Re-throw to allow runners to detect failure
236
+ }
237
+ };
238
+
239
+ module.exports = { translateHindiJS };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hindicode",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Run JavaScript with Hindi keywords",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",