From cb1e121f94c85d98d53f0cb67fc59d270f5d7d6e Mon Sep 17 00:00:00 2001 From: hassansin Date: Sun, 15 Jul 2018 05:31:19 +0600 Subject: [PATCH] Updated CHANGELOG & generated minimized script --- CHANGELOG.md | 5 +++++ parse-address.min.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcde2fc..d7ccfe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log All notable changes to this project will be documented in this file. +## [1.0.0] - 2018-07-15 + +### Changed +- Implement Geo::StreetAddress::US's normalizer + ## [0.0.9] - 2017-12-17 ### Changed diff --git a/parse-address.min.js b/parse-address.min.js index 22aa91a..2e4b0e3 100644 --- a/parse-address.min.js +++ b/parse-address.min.js @@ -1 +1 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.parseAddress=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o\\d{5})[- ]?(?\\d{4})?",corner:"(?:\\band\\b|\\bat\\b|&|\\@)"};Addr_Match.number="(?\\d+-?\\d*)(?=\\D)";Addr_Match.street=" \n (?: \n (?:(?"+Addr_Match.direct+")\\W+ \n (?"+Addr_Match.type+")\\b \n ) \n | \n (?:(?"+Addr_Match.direct+")\\W+)? \n (?: \n (?[^,]*\\d) \n (?:[^\\w,]*(?"+Addr_Match.direct+")\\b) \n | \n (?[^,]+) \n (?:[^\\w,]+(?"+Addr_Match.type+")\\b) \n (?:[^\\w,]+(?"+Addr_Match.direct+")\\b)? \n | \n (?[^,]+?) \n (?:[^\\w,]+(?"+Addr_Match.type+")\\b)? \n (?:[^\\w,]+(?"+Addr_Match.direct+")\\b)? \n ) \n )";Addr_Match.sec_unit_type_numbered=" \n (?su?i?te \n |p\\W*[om]\\W*b(?:ox)? \n |(?:ap|dep)(?:ar)?t(?:me?nt)? \n |ro*m \n |flo*r? \n |uni?t \n |bu?i?ldi?n?g \n |ha?nga?r \n |lo?t \n |pier \n |slip \n |spa?ce? \n |stop \n |tra?i?le?r \n |box)(?![a-z] \n ) \n ";Addr_Match.sec_unit_type_unnumbered=" \n (?ba?se?me?n?t \n |fro?nt \n |lo?bby \n |lowe?r \n |off?i?ce? \n |pe?n?t?ho?u?s?e? \n |rear \n |side \n |uppe?r \n )\\b";Addr_Match.sec_unit=" \n (?: #fix3 \n (?: #fix1 \n (?: \n (?:"+Addr_Match.sec_unit_type_numbered+"\\W*) \n |(?\\#)\\W* \n ) \n (?[\\w-]+) \n ) \n | \n "+Addr_Match.sec_unit_type_unnumbered+" \n )";Addr_Match.city_and_state=" \n (?: \n (?[^\\d,]+?)\\W+ \n (?"+Addr_Match.state+") \n ) \n ";Addr_Match.place=" \n (?:"+Addr_Match.city_and_state+"\\W*)? \n (?:"+Addr_Match.zip+")? \n ";Addr_Match.address=XRegExp(" \n ^ \n [^\\w\\#]* \n ("+Addr_Match.number+")\\W* \n (?:"+Addr_Match.fraction+"\\W*)? \n "+Addr_Match.street+"\\W+ \n (?:"+Addr_Match.sec_unit+")?\\W* #fix2 \n "+Addr_Match.place+" \n \\W*$","ix");var sep="(?:\\W+|$)";Addr_Match.informal_address=XRegExp(" \n ^ \n \\s* \n (?:"+Addr_Match.sec_unit+sep+")? \n (?:"+Addr_Match.number+")?\\W* \n (?:"+Addr_Match.fraction+"\\W*)? \n "+Addr_Match.street+sep+" \n (?:"+Addr_Match.sec_unit.replace(/_\d/g,"$&1")+sep+")? \n (?:"+Addr_Match.place+")? \n ","ix");Addr_Match.intersection=XRegExp(" \n ^\\W* \n "+Addr_Match.street.replace(/_\d/g,"1$&")+"\\W*? \n \\s+"+Addr_Match.corner+"\\s+ \n "+Addr_Match.street.replace(/_\d/g,"2$&")+"\\W+ \n "+Addr_Match.place+"\\W*$","ix")}parser.normalize_address=function(parts){lazyInit();if(!parts)return null;var parsed={};Object.keys(parts).forEach(function(k){if(["input","index"].indexOf(k)!==-1||isFinite(k))return;var key=isFinite(k.split("_").pop())?k.split("_").slice(0,-1).join("_"):k;if(parts[k])parsed[key]=parts[k].trim().replace(/[^\w\s\-\#\&]/,"")});if(parsed.city){parsed.city=XRegExp.replace(parsed.city,XRegExp("^(?"+Addr_Match.dircode+")\\s+(?=\\S)","ix"),function(match){return capitalize(Direction_Code[match.dircode.toUpperCase()])+" "})}return parsed};parser.parseAddress=function(address){lazyInit();var parts=XRegExp.exec(address,Addr_Match.address);return parser.normalize_address(parts)};parser.parseInformalAddress=function(address){lazyInit();var parts=XRegExp.exec(address,Addr_Match.informal_address);return parser.normalize_address(parts)};parser.parseLocation=function(address){lazyInit();if(XRegExp(Addr_Match.corner,"xi").test(address)){return parser.parseIntersection(address)}return parser.parseAddress(address)||parser.parseInformalAddress(address)};parser.parseIntersection=function(address){lazyInit();var parts=XRegExp.exec(address,Addr_Match.intersection);parts=parser.normalize_address(parts);if(parts){parts.type2=parts.type2||"";parts.type1=parts.type1||"";if(parts.type2&&!parts.type1||parts.type1===parts.type2){var type=parts.type2;type=XRegExp.replace(type,/s\W*$/,"");if(XRegExp("^"+Addr_Match.type+"$","ix").test(type)){parts.type1=parts.type2=type}}}return parts};if(typeof define!=="undefined"&&define.amd){define([],function(){return parser})}else if(typeof exports!=="undefined"){exports.parseIntersection=parser.parseIntersection;exports.parseLocation=parser.parseLocation;exports.parseInformalAddress=parser.parseInformalAddress;exports.parseAddress=parser.parseAddress}else{root.addressParser=root.addressParser||parser}})()},{"xregexp/src/xregexp.js":2}],2:[function(require,module,exports){"use strict";var REGEX_DATA="xregexp";var features={astral:false,natives:false};var nativ={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split};var fixed={};var regexCache={};var patternCache={};var tokens=[];var defaultScope="default";var classScope="class";var nativeTokens={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/};var replacementToken=/\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g;var correctExecNpcg=nativ.exec.call(/()??/,"")[1]===undefined;var hasFlagsProp=/x/.flags!==undefined;var toString={}.toString;function hasNativeFlag(flag){var isSupported=true;try{new RegExp("",flag)}catch(exception){isSupported=false}return isSupported}var hasNativeU=hasNativeFlag("u");var hasNativeY=hasNativeFlag("y");var registeredFlags={g:true,i:true,m:true,u:hasNativeU,y:hasNativeY};function augment(regex,captureNames,xSource,xFlags,isInternalOnly){var p;regex[REGEX_DATA]={captureNames:captureNames};if(isInternalOnly){return regex}if(regex.__proto__){regex.__proto__=XRegExp.prototype}else{for(p in XRegExp.prototype){regex[p]=XRegExp.prototype[p]}}regex[REGEX_DATA].source=xSource;regex[REGEX_DATA].flags=xFlags?xFlags.split("").sort().join(""):xFlags;return regex}function clipDuplicates(str){return nativ.replace.call(str,/([\s\S])(?=[\s\S]*\1)/g,"")}function copyRegex(regex,options){if(!XRegExp.isRegExp(regex)){throw new TypeError("Type RegExp expected")}var xData=regex[REGEX_DATA]||{};var flags=getNativeFlags(regex);var flagsToAdd="";var flagsToRemove="";var xregexpSource=null;var xregexpFlags=null;options=options||{};if(options.removeG){flagsToRemove+="g"}if(options.removeY){flagsToRemove+="y"}if(flagsToRemove){flags=nativ.replace.call(flags,new RegExp("["+flagsToRemove+"]+","g"),"")}if(options.addG){flagsToAdd+="g"}if(options.addY){flagsToAdd+="y"}if(flagsToAdd){flags=clipDuplicates(flags+flagsToAdd)}if(!options.isInternalOnly){if(xData.source!==undefined){xregexpSource=xData.source}if(xData.flags!=null){xregexpFlags=flagsToAdd?clipDuplicates(xData.flags+flagsToAdd):xData.flags}}regex=augment(new RegExp(options.source||regex.source,flags),hasNamedCapture(regex)?xData.captureNames.slice(0):null,xregexpSource,xregexpFlags,options.isInternalOnly);return regex}function dec(hex){return parseInt(hex,16)}function getContextualTokenSeparator(match,scope,flags){if(match.input.charAt(match.index-1)==="("||match.input.charAt(match.index+match[0].length)===")"||isPatternNext(match.input,match.index+match[0].length,flags,"[?*+]|{\\d+(?:,\\d*)?}")){return""}return"(?:)"}function getNativeFlags(regex){return hasFlagsProp?regex.flags:nativ.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(regex))[1]}function hasNamedCapture(regex){return!!(regex[REGEX_DATA]&®ex[REGEX_DATA].captureNames)}function hex(dec){return parseInt(dec,10).toString(16)}function indexOf(array,value){var len=array.length;var i;for(i=0;i-1?["\\s",lineCommentPattern,inlineCommentPattern]:[inlineCommentPattern];return nativ.test.call(new RegExp("^(?:"+patternsToIgnore.join("|")+")*(?:"+needlePattern+")"),pattern.slice(pos))}function isType(value,type){return toString.call(value)==="[object "+type+"]"}function pad4(str){while(str.length<4){str="0"+str}return str}function prepareFlags(pattern,flags){var i;if(clipDuplicates(flags)!==flags){throw new SyntaxError("Invalid duplicate regex flag "+flags)}pattern=nativ.replace.call(pattern,/^\(\?([\w$]+)\)/,function($0,$1){if(nativ.test.call(/[gy]/,$1)){throw new SyntaxError("Cannot use flag g or y in mode modifier "+$0)}flags=clipDuplicates(flags+$1);return""});for(i=0;i"}}else if(backref){return"\\"+(+backref+numPriorCaptures)}return match}if(!(isType(patterns,"Array")&&patterns.length)){throw new TypeError("Must provide a nonempty array of patterns to merge")}var parts=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;var output=[];var pattern;for(var i=0;i1&&indexOf(match,"")>-1){r2=copyRegex(this,{removeG:true,isInternalOnly:true});nativ.replace.call(String(str).slice(match.index),r2,function(){var len=arguments.length;var i;for(i=1;imatch.index){this.lastIndex=match.index}}if(!this.global){this.lastIndex=origLastIndex}return match};fixed.test=function(str){return!!fixed.exec.call(this,str)};fixed.match=function(regex){var result;if(!XRegExp.isRegExp(regex)){regex=new RegExp(regex)}else if(regex.global){result=nativ.match.apply(this,arguments);regex.lastIndex=0;return result}return fixed.exec.call(regex,toObject(this))};fixed.replace=function(search,replacement){var isRegex=XRegExp.isRegExp(search);var origLastIndex;var captureNames;var result;if(isRegex){if(search[REGEX_DATA]){captureNames=search[REGEX_DATA].captureNames}origLastIndex=search.lastIndex}else{search+=""}if(isType(replacement,"Function")){result=nativ.replace.call(String(this),search,function(){var args=arguments;var i;if(captureNames){args[0]=new String(args[0]);for(i=0;iargs.length-3){throw new SyntaxError("Backreference to undefined group "+$0)}return args[$2]||""}throw new SyntaxError("Invalid token "+$0)})})}if(isRegex){if(search.global){search.lastIndex=0}else{search.lastIndex=origLastIndex}}return result};fixed.split=function(separator,limit){if(!XRegExp.isRegExp(separator)){return nativ.split.apply(this,arguments)}var str=String(this);var output=[];var origLastIndex=separator.lastIndex;var lastLastIndex=0;var lastLength;limit=(limit===undefined?-1:limit)>>>0;XRegExp.forEach(str,separator,function(match){if(match.index+match[0].length>lastLastIndex){output.push(str.slice(lastLastIndex,match.index));if(match.length>1&&match.indexlimit?output.slice(0,limit):output};XRegExp.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,function(match,scope){if(match[1]==="B"&&scope===defaultScope){return match[0]}throw new SyntaxError("Invalid escape "+match[0])},{scope:"all",leadChar:"\\"});XRegExp.addToken(/\\u{([\dA-Fa-f]+)}/,function(match,scope,flags){var code=dec(match[1]);if(code>1114111){throw new SyntaxError("Invalid Unicode code point "+match[0])}if(code<=65535){return"\\u"+pad4(hex(code))}if(hasNativeU&&flags.indexOf("u")>-1){return match[0]}throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u")},{scope:"all",leadChar:"\\"});XRegExp.addToken(/\[(\^?)\]/,function(match){return match[1]?"[\\s\\S]":"\\b\\B"},{leadChar:"["});XRegExp.addToken(/\(\?#[^)]*\)/,getContextualTokenSeparator,{leadChar:"("});XRegExp.addToken(/\s+|#[^\n]*\n?/,getContextualTokenSeparator,{flag:"x"});XRegExp.addToken(/\./,function(){return"[\\s\\S]"},{flag:"s",leadChar:"."});XRegExp.addToken(/\\k<([\w$]+)>/,function(match){var index=isNaN(match[1])?indexOf(this.captureNames,match[1])+1:+match[1];var endIndex=match.index+match[0].length;if(!index||index>this.captureNames.length){throw new SyntaxError("Backreference to undefined group "+match[0])}return"\\"+index+(endIndex===match.input.length||isNaN(match.input.charAt(endIndex))?"":"(?:)")},{leadChar:"\\"});XRegExp.addToken(/\\(\d+)/,function(match,scope){if(!(scope===defaultScope&&/^[1-9]/.test(match[1])&&+match[1]<=this.captureNames.length)&&match[1]!=="0"){throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+match[0])}return match[0]},{scope:"all",leadChar:"\\"});XRegExp.addToken(/\(\?P?<([\w$]+)>/,function(match){if(!isNaN(match[1])){throw new SyntaxError("Cannot use integer as capture name "+match[0])}if(match[1]==="length"||match[1]==="__proto__"){throw new SyntaxError("Cannot use reserved word as capture name "+match[0])}if(indexOf(this.captureNames,match[1])>-1){throw new SyntaxError("Cannot use same name for multiple groups "+match[0])}this.captureNames.push(match[1]);this.hasNamedCapture=true;return"("},{leadChar:"("});XRegExp.addToken(/\((?!\?)/,function(match,scope,flags){if(flags.indexOf("n")>-1){return"(?:"}this.captureNames.push(null);return"("},{optionalFlags:"n",leadChar:"("});module.exports=XRegExp},{}]},{},[1])(1)}); +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.parseAddress=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i\\d{5})[- ]?(?\\d{4})?",corner:"(?:\\band\\b|\\bat\\b|&|\\@)"};Addr_Match.number="(?\\d+-?\\d*)(?=\\D)";Addr_Match.street=" \n (?: \n (?:(?"+Addr_Match.direct+")\\W+ \n (?"+Addr_Match.type+")\\b \n ) \n | \n (?:(?"+Addr_Match.direct+")\\W+)? \n (?: \n (?[^,]*\\d) \n (?:[^\\w,]*(?"+Addr_Match.direct+")\\b) \n | \n (?[^,]+) \n (?:[^\\w,]+(?"+Addr_Match.type+")\\b) \n (?:[^\\w,]+(?"+Addr_Match.direct+")\\b)? \n | \n (?[^,]+?) \n (?:[^\\w,]+(?"+Addr_Match.type+")\\b)? \n (?:[^\\w,]+(?"+Addr_Match.direct+")\\b)? \n ) \n )";Addr_Match.sec_unit_type_numbered=" \n (?su?i?te \n |p\\W*[om]\\W*b(?:ox)? \n |(?:ap|dep)(?:ar)?t(?:me?nt)? \n |ro*m \n |flo*r? \n |uni?t \n |bu?i?ldi?n?g \n |ha?nga?r \n |lo?t \n |pier \n |slip \n |spa?ce? \n |stop \n |tra?i?le?r \n |box)(?![a-z] \n ) \n ";Addr_Match.sec_unit_type_unnumbered=" \n (?ba?se?me?n?t \n |fro?nt \n |lo?bby \n |lowe?r \n |off?i?ce? \n |pe?n?t?ho?u?s?e? \n |rear \n |side \n |uppe?r \n )\\b";Addr_Match.sec_unit=" \n (?: #fix3 \n (?: #fix1 \n (?: \n (?:"+Addr_Match.sec_unit_type_numbered+"\\W*) \n |(?\\#)\\W* \n ) \n (?[\\w-]+) \n ) \n | \n "+Addr_Match.sec_unit_type_unnumbered+" \n )";Addr_Match.city_and_state=" \n (?: \n (?[^\\d,]+?)\\W+ \n (?"+Addr_Match.state+") \n ) \n ";Addr_Match.place=" \n (?:"+Addr_Match.city_and_state+"\\W*)? \n (?:"+Addr_Match.zip+")? \n ";Addr_Match.address=XRegExp(" \n ^ \n [^\\w\\#]* \n ("+Addr_Match.number+")\\W* \n (?:"+Addr_Match.fraction+"\\W*)? \n "+Addr_Match.street+"\\W+ \n (?:"+Addr_Match.sec_unit+")?\\W* #fix2 \n "+Addr_Match.place+" \n \\W*$","ix");var sep="(?:\\W+|$)";Addr_Match.informal_address=XRegExp(" \n ^ \n \\s* \n (?:"+Addr_Match.sec_unit+sep+")? \n (?:"+Addr_Match.number+")?\\W* \n (?:"+Addr_Match.fraction+"\\W*)? \n "+Addr_Match.street+sep+" \n (?:"+Addr_Match.sec_unit.replace(/_\d/g,"$&1")+sep+")? \n (?:"+Addr_Match.place+")? \n ","ix");Addr_Match.intersection=XRegExp(" \n ^\\W* \n "+Addr_Match.street.replace(/_\d/g,"1$&")+"\\W*? \n \\s+"+Addr_Match.corner+"\\s+ \n "+Addr_Match.street.replace(/_\d/g,"2$&")+"\\W+ \n "+Addr_Match.place+"\\W*$","ix")}parser.normalize_address=function(parts){lazyInit();if(!parts)return null;var parsed={};Object.keys(parts).forEach(function(k){if(["input","index"].indexOf(k)!==-1||isFinite(k))return;var key=isFinite(k.split("_").pop())?k.split("_").slice(0,-1).join("_"):k;if(parts[k])parsed[key]=parts[k].trim().replace(/^\s+|\s+$|[^\w\s\-#&]/g,"")});each(Normalize_Map,function(map,key){if(parsed[key]&&map[parsed[key].toLowerCase()]){parsed[key]=map[parsed[key].toLowerCase()]}});["type","type1","type2"].forEach(function(key){if(key in parsed)parsed[key]=parsed[key].charAt(0).toUpperCase()+parsed[key].slice(1).toLowerCase()});if(parsed.city){parsed.city=XRegExp.replace(parsed.city,XRegExp("^(?"+Addr_Match.dircode+")\\s+(?=\\S)","ix"),function(match){return capitalize(Direction_Code[match.dircode.toUpperCase()])+" "})}return parsed};parser.parseAddress=function(address){lazyInit();var parts=XRegExp.exec(address,Addr_Match.address);return parser.normalize_address(parts)};parser.parseInformalAddress=function(address){lazyInit();var parts=XRegExp.exec(address,Addr_Match.informal_address);return parser.normalize_address(parts)};parser.parseLocation=function(address){lazyInit();if(XRegExp(Addr_Match.corner,"xi").test(address)){return parser.parseIntersection(address)}return parser.parseAddress(address)||parser.parseInformalAddress(address)};parser.parseIntersection=function(address){lazyInit();var parts=XRegExp.exec(address,Addr_Match.intersection);parts=parser.normalize_address(parts);if(parts){parts.type2=parts.type2||"";parts.type1=parts.type1||"";if(parts.type2&&!parts.type1||parts.type1===parts.type2){var type=parts.type2;type=XRegExp.replace(type,/s\W*$/,"");if(XRegExp("^"+Addr_Match.type+"$","ix").test(type)){parts.type1=parts.type2=type}}}return parts};if(typeof define!=="undefined"&&define.amd){define([],function(){return parser})}else if(typeof exports!=="undefined"){exports.parseIntersection=parser.parseIntersection;exports.parseLocation=parser.parseLocation;exports.parseInformalAddress=parser.parseInformalAddress;exports.parseAddress=parser.parseAddress}else{root.addressParser=root.addressParser||parser}})()},{"xregexp/src/xregexp.js":2}],2:[function(require,module,exports){"use strict";var REGEX_DATA="xregexp";var features={astral:false,natives:false};var nativ={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split};var fixed={};var regexCache={};var patternCache={};var tokens=[];var defaultScope="default";var classScope="class";var nativeTokens={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/};var replacementToken=/\$(?:{([\w$]+)}|(\d\d?|[\s\S]))/g;var correctExecNpcg=nativ.exec.call(/()??/,"")[1]===undefined;var hasFlagsProp=/x/.flags!==undefined;var toString={}.toString;function hasNativeFlag(flag){var isSupported=true;try{new RegExp("",flag)}catch(exception){isSupported=false}return isSupported}var hasNativeU=hasNativeFlag("u");var hasNativeY=hasNativeFlag("y");var registeredFlags={g:true,i:true,m:true,u:hasNativeU,y:hasNativeY};function augment(regex,captureNames,xSource,xFlags,isInternalOnly){var p;regex[REGEX_DATA]={captureNames:captureNames};if(isInternalOnly){return regex}if(regex.__proto__){regex.__proto__=XRegExp.prototype}else{for(p in XRegExp.prototype){regex[p]=XRegExp.prototype[p]}}regex[REGEX_DATA].source=xSource;regex[REGEX_DATA].flags=xFlags?xFlags.split("").sort().join(""):xFlags;return regex}function clipDuplicates(str){return nativ.replace.call(str,/([\s\S])(?=[\s\S]*\1)/g,"")}function copyRegex(regex,options){if(!XRegExp.isRegExp(regex)){throw new TypeError("Type RegExp expected")}var xData=regex[REGEX_DATA]||{};var flags=getNativeFlags(regex);var flagsToAdd="";var flagsToRemove="";var xregexpSource=null;var xregexpFlags=null;options=options||{};if(options.removeG){flagsToRemove+="g"}if(options.removeY){flagsToRemove+="y"}if(flagsToRemove){flags=nativ.replace.call(flags,new RegExp("["+flagsToRemove+"]+","g"),"")}if(options.addG){flagsToAdd+="g"}if(options.addY){flagsToAdd+="y"}if(flagsToAdd){flags=clipDuplicates(flags+flagsToAdd)}if(!options.isInternalOnly){if(xData.source!==undefined){xregexpSource=xData.source}if(xData.flags!=null){xregexpFlags=flagsToAdd?clipDuplicates(xData.flags+flagsToAdd):xData.flags}}regex=augment(new RegExp(options.source||regex.source,flags),hasNamedCapture(regex)?xData.captureNames.slice(0):null,xregexpSource,xregexpFlags,options.isInternalOnly);return regex}function dec(hex){return parseInt(hex,16)}function getContextualTokenSeparator(match,scope,flags){if(match.input.charAt(match.index-1)==="("||match.input.charAt(match.index+match[0].length)===")"||isPatternNext(match.input,match.index+match[0].length,flags,"[?*+]|{\\d+(?:,\\d*)?}")){return""}return"(?:)"}function getNativeFlags(regex){return hasFlagsProp?regex.flags:nativ.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(regex))[1]}function hasNamedCapture(regex){return!!(regex[REGEX_DATA]&®ex[REGEX_DATA].captureNames)}function hex(dec){return parseInt(dec,10).toString(16)}function indexOf(array,value){var len=array.length;var i;for(i=0;i-1?["\\s",lineCommentPattern,inlineCommentPattern]:[inlineCommentPattern];return nativ.test.call(new RegExp("^(?:"+patternsToIgnore.join("|")+")*(?:"+needlePattern+")"),pattern.slice(pos))}function isType(value,type){return toString.call(value)==="[object "+type+"]"}function pad4(str){while(str.length<4){str="0"+str}return str}function prepareFlags(pattern,flags){var i;if(clipDuplicates(flags)!==flags){throw new SyntaxError("Invalid duplicate regex flag "+flags)}pattern=nativ.replace.call(pattern,/^\(\?([\w$]+)\)/,function($0,$1){if(nativ.test.call(/[gy]/,$1)){throw new SyntaxError("Cannot use flag g or y in mode modifier "+$0)}flags=clipDuplicates(flags+$1);return""});for(i=0;i"}}else if(backref){return"\\"+(+backref+numPriorCaptures)}return match}if(!(isType(patterns,"Array")&&patterns.length)){throw new TypeError("Must provide a nonempty array of patterns to merge")}var parts=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;var output=[];var pattern;for(var i=0;i1&&indexOf(match,"")>-1){r2=copyRegex(this,{removeG:true,isInternalOnly:true});nativ.replace.call(String(str).slice(match.index),r2,function(){var len=arguments.length;var i;for(i=1;imatch.index){this.lastIndex=match.index}}if(!this.global){this.lastIndex=origLastIndex}return match};fixed.test=function(str){return!!fixed.exec.call(this,str)};fixed.match=function(regex){var result;if(!XRegExp.isRegExp(regex)){regex=new RegExp(regex)}else if(regex.global){result=nativ.match.apply(this,arguments);regex.lastIndex=0;return result}return fixed.exec.call(regex,toObject(this))};fixed.replace=function(search,replacement){var isRegex=XRegExp.isRegExp(search);var origLastIndex;var captureNames;var result;if(isRegex){if(search[REGEX_DATA]){captureNames=search[REGEX_DATA].captureNames}origLastIndex=search.lastIndex}else{search+=""}if(isType(replacement,"Function")){result=nativ.replace.call(String(this),search,function(){var args=arguments;var i;if(captureNames){args[0]=new String(args[0]);for(i=0;iargs.length-3){throw new SyntaxError("Backreference to undefined group "+$0)}return args[$2]||""}throw new SyntaxError("Invalid token "+$0)})})}if(isRegex){if(search.global){search.lastIndex=0}else{search.lastIndex=origLastIndex}}return result};fixed.split=function(separator,limit){if(!XRegExp.isRegExp(separator)){return nativ.split.apply(this,arguments)}var str=String(this);var output=[];var origLastIndex=separator.lastIndex;var lastLastIndex=0;var lastLength;limit=(limit===undefined?-1:limit)>>>0;XRegExp.forEach(str,separator,function(match){if(match.index+match[0].length>lastLastIndex){output.push(str.slice(lastLastIndex,match.index));if(match.length>1&&match.indexlimit?output.slice(0,limit):output};XRegExp.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,function(match,scope){if(match[1]==="B"&&scope===defaultScope){return match[0]}throw new SyntaxError("Invalid escape "+match[0])},{scope:"all",leadChar:"\\"});XRegExp.addToken(/\\u{([\dA-Fa-f]+)}/,function(match,scope,flags){var code=dec(match[1]);if(code>1114111){throw new SyntaxError("Invalid Unicode code point "+match[0])}if(code<=65535){return"\\u"+pad4(hex(code))}if(hasNativeU&&flags.indexOf("u")>-1){return match[0]}throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u")},{scope:"all",leadChar:"\\"});XRegExp.addToken(/\[(\^?)\]/,function(match){return match[1]?"[\\s\\S]":"\\b\\B"},{leadChar:"["});XRegExp.addToken(/\(\?#[^)]*\)/,getContextualTokenSeparator,{leadChar:"("});XRegExp.addToken(/\s+|#[^\n]*\n?/,getContextualTokenSeparator,{flag:"x"});XRegExp.addToken(/\./,function(){return"[\\s\\S]"},{flag:"s",leadChar:"."});XRegExp.addToken(/\\k<([\w$]+)>/,function(match){var index=isNaN(match[1])?indexOf(this.captureNames,match[1])+1:+match[1];var endIndex=match.index+match[0].length;if(!index||index>this.captureNames.length){throw new SyntaxError("Backreference to undefined group "+match[0])}return"\\"+index+(endIndex===match.input.length||isNaN(match.input.charAt(endIndex))?"":"(?:)")},{leadChar:"\\"});XRegExp.addToken(/\\(\d+)/,function(match,scope){if(!(scope===defaultScope&&/^[1-9]/.test(match[1])&&+match[1]<=this.captureNames.length)&&match[1]!=="0"){throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+match[0])}return match[0]},{scope:"all",leadChar:"\\"});XRegExp.addToken(/\(\?P?<([\w$]+)>/,function(match){if(!isNaN(match[1])){throw new SyntaxError("Cannot use integer as capture name "+match[0])}if(match[1]==="length"||match[1]==="__proto__"){throw new SyntaxError("Cannot use reserved word as capture name "+match[0])}if(indexOf(this.captureNames,match[1])>-1){throw new SyntaxError("Cannot use same name for multiple groups "+match[0])}this.captureNames.push(match[1]);this.hasNamedCapture=true;return"("},{leadChar:"("});XRegExp.addToken(/\((?!\?)/,function(match,scope,flags){if(flags.indexOf("n")>-1){return"(?:"}this.captureNames.push(null);return"("},{optionalFlags:"n",leadChar:"("});module.exports=XRegExp},{}]},{},[1])(1)});