| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports.canSkipRegexpu = canSkipRegexpu;
 
- exports.generateRegexpuOptions = generateRegexpuOptions;
 
- exports.transformFlags = transformFlags;
 
- var _features = require("./features");
 
- function generateRegexpuOptions(pattern, toTransform) {
 
-   const feat = (name, ok = "transform") => {
 
-     return (0, _features.hasFeature)(toTransform, _features.FEATURES[name]) ? ok : false;
 
-   };
 
-   const featDuplicateNamedGroups = () => {
 
-     if (!feat("duplicateNamedCaptureGroups")) return false;
 
-     const regex = /\(\?<([^>]+)>/g;
 
-     const seen = new Set();
 
-     for (let match; match = regex.exec(pattern); seen.add(match[1])) {
 
-       if (seen.has(match[1])) return "transform";
 
-     }
 
-     return false;
 
-   };
 
-   return {
 
-     unicodeFlag: feat("unicodeFlag"),
 
-     unicodeSetsFlag: feat("unicodeSetsFlag") || feat("unicodeSetsFlag_syntax", "parse"),
 
-     dotAllFlag: feat("dotAllFlag"),
 
-     unicodePropertyEscapes: feat("unicodePropertyEscape"),
 
-     namedGroups: feat("namedCaptureGroups") || featDuplicateNamedGroups(),
 
-     onNamedGroup: () => {}
 
-   };
 
- }
 
- function canSkipRegexpu(node, options) {
 
-   const {
 
-     flags,
 
-     pattern
 
-   } = node;
 
-   if (flags.includes("v")) {
 
-     if (options.unicodeSetsFlag === "transform") return false;
 
-   }
 
-   if (flags.includes("u")) {
 
-     if (options.unicodeFlag === "transform") return false;
 
-     if (options.unicodePropertyEscapes === "transform" && /\\[pP]{/.test(pattern)) {
 
-       return false;
 
-     }
 
-   }
 
-   if (flags.includes("s")) {
 
-     if (options.dotAllFlag === "transform") return false;
 
-   }
 
-   if (options.namedGroups === "transform" && /\(\?<(?![=!])/.test(pattern)) {
 
-     return false;
 
-   }
 
-   return true;
 
- }
 
- function transformFlags(regexpuOptions, flags) {
 
-   if (regexpuOptions.unicodeSetsFlag === "transform") {
 
-     flags = flags.replace("v", "u");
 
-   }
 
-   if (regexpuOptions.unicodeFlag === "transform") {
 
-     flags = flags.replace("u", "");
 
-   }
 
-   if (regexpuOptions.dotAllFlag === "transform") {
 
-     flags = flags.replace("s", "");
 
-   }
 
-   return flags;
 
- }
 
- //# sourceMappingURL=util.js.map
 
 
  |