Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
braces-security-backport — MIT-लाइसेंस प्राप्त braces 3.0.3, समीक्षित CVE-2026-93687 गहराई बैकपोर्ट के साथ; केवल पिन किए गए उपभोग हेतु | Kitploit
उपकरण/GitHubGitHub/bernydotjar/braces-security-backport
भेद्यता विश्लेषणकोड विश्लेषणउपयोगिताएँ और फ्रेमवर्कआपूर्ति श्रृंखला सुरक्षा
GitHubbernydotjar/braces-security-backport

braces-security-backport

MIT-लाइसेंस प्राप्त braces 3.0.3, समीक्षित CVE-2026-93687 गहराई बैकपोर्ट के साथ; केवल पिन किए गए उपभोग हेतु

रिपॉजिटरी देखें
27 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

braces Donate NPM version NPM monthly downloads NPM total downloads Linux Build Status

JavaScript में कार्यान्वित, Bash-जैसा ब्रेस विस्तार। अन्य ब्रेस विस्तार लाइब्रेरीज़ की तुलना में अधिक सुरक्षित, Bash 4.3 ब्रेस विनिर्देश के पूर्ण समर्थन के साथ, गति से समझौता किए बिना।

कृपया इस परियोजना के लेखक, Jon Schlinkert को फ़ॉलो करने पर विचार करें, और अपना ❤️ दिखाने और समर्थन देने के लिए परियोजना को स्टार करने पर विचार करें।

इंस्टॉल करें

npm के साथ इंस्टॉल करें:

$ npm install --save braces

v3.0.0 जारी!!

विवरण के लिए changelog देखें।

braces का उपयोग क्यों करें?

Brace पैटर्न विशिष्ट श्रेणियों और वर्णों के अनुक्रमों को मिलाने की क्षमता जोड़कर globs को अधिक शक्तिशाली बनाते हैं।

  • सटीक - Bash 4.3 Brace Expansion विनिर्देश के लिए पूर्ण समर्थन (सभी Bash braces परीक्षणों को पास करता है)
  • तेज़ और प्रदर्शनकारी - तेज़ी से शुरू होता है, तेज़ी से चलता है और पैटर्न की जटिलता बढ़ने पर अच्छी तरह स्केल करता है।
  • संगठित कोड आधार - जब edge cases सामने आते हैं तो parser और compiler को बनाए रखना और अपडेट करना आसान होता है।
  • अच्छी तरह परीक्षित - हज़ारों test assertions, और सभी Bash, minimatch, और brace-expansion unit tests को पास करता है (जिस तिथि को यह लिखा गया था)।
  • अधिक सुरक्षित - आपको उपयोगकर्ताओं द्वारा आक्रामक या दुर्भावनापूर्ण brace पैटर्न परिभाषित करने की चिंता नहीं करनी चाहिए जो आपके एप्लिकेशन को तोड़ सकते हैं। Braces दुर्भावनापूर्ण regex को रोकने के उपाय करता है जिनका उपयोग DDoS हमलों के लिए किया जा सकता है (देखें catastrophic backtracking)।
  • सूचियों का समर्थन करता है - (उर्फ "sets") a/{b,c}/d => ['a/b/d', 'a/c/d']
  • अनुक्रमों का समर्थन करता है - (उर्फ "ranges") {01..03} => ['01', '02', '03']
  • चरणों का समर्थन करता है - (उर्फ "increments") {2..10..2} => ['2', '4', '6', '8', '10']
  • escaping का समर्थन करता है - विशेष वर्णों के मूल्यांकन को रोकने के लिए।

उपयोग

मुख्य export एक फ़ंक्शन है जो एक या अधिक brace patterns और options लेता है।

const braces = require('braces');
// braces(patterns[, options]);

console.log(braces(['{01..05}', '{a..e}']));
//=> ['(0[1-5])', '([a-e])']

console.log(braces(['{01..05}', '{a..e}'], { expand: true }));
//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e']

ब्रेस एक्सपैंशन बनाम कंपाइलेशन

डिफ़ॉल्ट रूप से, ब्रेस पैटर्न को ऐसे स्ट्रिंग्स में कंपाइल किया जाता है जो रेगुलर एक्सप्रेशंस बनाने और मैचिंग के लिए अनुकूलित होते हैं।

कंपाइल्ड

console.log(braces('a/{x,y,z}/b'));
//=> ['a/(x|y|z)/b']
console.log(braces(['a/{01..20}/b', 'a/{1..5}/b']));
//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ]

विस्तारित

expand विकल्प को true पर सेट करके, या braces.expand() का उपयोग करके ब्रेस विस्तार सक्षम करें (एक ऐरे लौटाता है जो आप Bash से अपेक्षा करेंगे, या echo {1..5}, या minimatch के समान है):

console.log(braces('a/{x,y,z}/b', { expand: true }));
//=> ['a/x/b', 'a/y/b', 'a/z/b']

console.log(braces.expand('{01..10}'));
//=> ['01','02','03','04','05','06','07','08','09','10']

सूचियाँ

सूचियों का विस्तार करें (Bash "sets" की तरह):

console.log(braces('a/{foo,bar,baz}/*.js'));
//=> ['a/(foo|bar|baz)/*.js']

console.log(braces.expand('a/{foo,bar,baz}/*.js'));
//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js']

अनुक्रम

वर्णों की श्रेणियों का विस्तार करें (Bash "अनुक्रमों" की तरह):

console.log(braces.expand('{1..3}')); // ['1', '2', '3']
console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b']
console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c']
console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c']

// supports zero-padded ranges
console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b']
console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b']

See fill-range for all available range-expansion options.

Steppped ranges

Steps, or increments, may be used with ranges:

console.log(braces.expand('{2..10..2}'));
//=> ['2', '4', '6', '8', '10']

console.log(braces('{2..10..2}'));
//=> ['(2|4|6|8|10)']

जब .optimize विधि का उपयोग किया जाता है, या options.optimize को true पर सेट किया जाता है, तो अनुक्रमों को विस्तार के लिए to-regex-range को पास किया जाता है।

नेस्टिंग

ब्रेस पैटर्न नेस्टेड हो सकते हैं। प्रत्येक विस्तारित स्ट्रिंग के परिणाम क्रमबद्ध नहीं होते हैं, और बाएँ से दाएँ क्रम संरक्षित रहता है।

"विस्तारित" ब्रेसिज़

console.log(braces.expand('a{b,c,/{x,y}}/e'));
//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e']

console.log(braces.expand('a/{x,{1..5},y}/c'));
//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c']

"अनुकूलित" ब्रेसिज़

console.log(braces('a{b,c,/{x,y}}/e'));
//=> ['a(b|c|/(x|y))/e']

console.log(braces('a/{x,{1..5},y}/c'));
//=> ['a/(x|([1-5])|y)/c']

एस्केपिंग

ब्रैसेस को एस्केप करना

यदि या तो ओपनिंग या क्लोज़िंग ब्रेस एस्केप किया गया हो तो ब्रेस पैटर्न का विस्तार या मूल्यांकन नहीं किया जाएगा:

console.log(braces.expand('a\\{d,c,b}e'));
//=> ['a{d,c,b}e']

console.log(braces.expand('a{d,c,b\\}e'));
//=> ['a{d,c,b}e']

अल्पविराम से बचना

ब्रेसिज़ के अंदर अल्पविराम से भी बचा जा सकता है:

console.log(braces.expand('a{b\\,c}d'));
//=> ['a{b,c}d']

console.log(braces.expand('a{d\\,c,b}e'));
//=> ['ad,ce', 'abe']

एकल आइटम

bash परंपराओं का पालन करते हुए, एक ब्रेस पैटर्न का विस्तार भी नहीं किया जाता जब उसमें एक ही अक्षर होता है:

console.log(braces.expand('a{b}c'));
//=> ['a{b}c']

विकल्प

options.maxLength

प्रकार: Number

डिफ़ॉल्ट: 10,000

विवरण: इनपुट स्ट्रिंग की लंबाई सीमित करें। यह तब उपयोगी होता है जब इनपुट स्ट्रिंग जनरेट की गई हो या आपका एप्लिकेशन उपयोगकर्ताओं को स्ट्रिंग पास करने की अनुमति देता हो, इत्यादि।

console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error

options.expand

प्रकार: Boolean

डिफ़ॉल्ट: undefined

विवरण: एक "विस्तारित" ब्रेस पैटर्न उत्पन्न करें (वैकल्पिक रूप से आप braces.expand() विधि का उपयोग कर सकते हैं, जो वही कार्य करती है)।

console.log(braces('a/{b,c}/d', { expand: true }));
//=> [ 'a/b/d', 'a/c/d' ]

options.nodupes

प्रकार: Boolean

डिफ़ॉल्ट: undefined

विवरण: लौटाए गए array से डुप्लिकेट हटाएँ।

options.rangeLimit

प्रकार: Number

डिफ़ॉल्ट: 1000

विवरण: उपयोगकर्ताओं द्वारा दुर्भावनापूर्ण पैटर्न पास किए जाने से रोकने के लिए, जब braces.expand() का उपयोग किया जाता है या options.expand true हो और उत्पन्न रेंज rangeLimit से अधिक हो जाए, तो एक त्रुटि फेंकी जाती है।

आप options.rangeLimit को अनुकूलित कर सकते हैं या इसे पूरी तरह से अक्षम करने के लिए Inifinity पर सेट कर सकते हैं।

उदाहरण

// pattern exceeds the "rangeLimit", so it's optimized automatically
console.log(braces.expand('{1..1000}'));
//=> ['([1-9]|[1-9][0-9]{1,2}|1000)']
टूल डाउनलोड करें