🐛 Update: Added support for the 'find' command in settings.local.json. Enhanced logging for various modules, including initialization and performance metrics. Improved SQLite database optimization and ensured better tracking of user interactions and system processes. 📚

This commit is contained in:
2025-06-14 16:26:43 +02:00
parent ee54bc273c
commit 89037861e3
2472 changed files with 691099 additions and 1 deletions

155
network-visualization/node_modules/to-regex/index.js generated vendored Normal file
View File

@@ -0,0 +1,155 @@
'use strict';
var safe = require('safe-regex');
var define = require('define-property');
var extend = require('extend-shallow');
var not = require('regex-not');
var MAX_LENGTH = 1024 * 64;
/**
* Session cache
*/
var cache = {};
/**
* Create a regular expression from the given `pattern` string.
*
* @param {String|RegExp} `pattern` Pattern can be a string or regular expression.
* @param {Object} `options`
* @return {RegExp}
* @api public
*/
module.exports = function(patterns, options) {
if (!Array.isArray(patterns)) {
return makeRe(patterns, options);
}
return makeRe(patterns.join('|'), options);
};
/**
* Create a regular expression from the given `pattern` string.
*
* @param {String|RegExp} `pattern` Pattern can be a string or regular expression.
* @param {Object} `options`
* @return {RegExp}
* @api public
*/
function makeRe(pattern, options) {
if (pattern instanceof RegExp) {
return pattern;
}
if (typeof pattern !== 'string') {
throw new TypeError('expected a string');
}
if (pattern.length > MAX_LENGTH) {
throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');
}
var key = pattern;
// do this before shallow cloning options, it's a lot faster
if (!options || (options && options.cache !== false)) {
key = createKey(pattern, options);
if (cache.hasOwnProperty(key)) {
return cache[key];
}
}
var opts = extend({}, options);
if (opts.contains === true) {
if (opts.negate === true) {
opts.strictNegate = false;
} else {
opts.strict = false;
}
}
if (opts.strict === false) {
opts.strictOpen = false;
opts.strictClose = false;
}
var open = opts.strictOpen !== false ? '^' : '';
var close = opts.strictClose !== false ? '$' : '';
var flags = opts.flags || '';
var regex;
if (opts.nocase === true && !/i/.test(flags)) {
flags += 'i';
}
try {
if (opts.negate || typeof opts.strictNegate === 'boolean') {
pattern = not.create(pattern, opts);
}
var str = open + '(?:' + pattern + ')' + close;
regex = new RegExp(str, flags);
if (opts.safe === true && safe(regex) === false) {
throw new Error('potentially unsafe regular expression: ' + regex.source);
}
} catch (err) {
if (opts.strictErrors === true || opts.safe === true) {
err.key = key;
err.pattern = pattern;
err.originalOptions = options;
err.createdOptions = opts;
throw err;
}
try {
regex = new RegExp('^' + pattern.replace(/(\W)/g, '\\$1') + '$');
} catch (err) {
regex = /.^/; //<= match nothing
}
}
if (opts.cache !== false) {
memoize(regex, key, pattern, opts);
}
return regex;
}
/**
* Memoize generated regex. This can result in dramatic speed improvements
* and simplify debugging by adding options and pattern to the regex. It can be
* disabled by passing setting `options.cache` to false.
*/
function memoize(regex, key, pattern, options) {
define(regex, 'cached', true);
define(regex, 'pattern', pattern);
define(regex, 'options', options);
define(regex, 'key', key);
cache[key] = regex;
}
/**
* Create the key to use for memoization. The key is generated
* by iterating over the options and concatenating key-value pairs
* to the pattern string.
*/
function createKey(pattern, options) {
if (!options) return pattern;
var key = pattern;
for (var prop in options) {
if (options.hasOwnProperty(prop)) {
key += ';' + prop + '=' + String(options[prop]);
}
}
return key;
}
/**
* Expose `makeRe`
*/
module.exports.makeRe = makeRe;