@_mustachio/ai-review-agent 0.1.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.
@@ -0,0 +1 @@
1
+ (()=>{var e={296:e=>{var r=Object.prototype.toString;var n=typeof Buffer!=="undefined"&&typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},599:(e,r,n)=>{e=n.nmd(e);var t=n(927).SourceMapConsumer;var o=n(928);var i;try{i=n(896);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(296);function dynamicRequire(e,r){return e.require(r)}var u=false;var s=false;var l=false;var c="auto";var p={};var f={};var g=/^data:application\/json[^,]+base64,/;var d=[];var h=[];function isInBrowser(){if(c==="browser")return true;if(c==="node")return false;return typeof window!=="undefined"&&typeof XMLHttpRequest==="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}function hasGlobalProcessEventEmitter(){return typeof process==="object"&&process!==null&&typeof process.on==="function"}function globalProcessVersion(){if(typeof process==="object"&&process!==null){return process.version}else{return""}}function globalProcessStderr(){if(typeof process==="object"&&process!==null){return process.stderr}}function globalProcessExit(e){if(typeof process==="object"&&process!==null&&typeof process.exit==="function"){return process.exit(e)}}function handlerExec(e){return function(r){for(var n=0;n<e.length;n++){var t=e[n](r);if(t){return t}}return null}}var m=handlerExec(d);d.push((function(e){e=e.trim();if(/^file:/.test(e)){e=e.replace(/file:\/\/\/(\w:)?/,(function(e,r){return r?"":"/"}))}if(e in p){return p[e]}var r="";try{if(!i){var n=new XMLHttpRequest;n.open("GET",e,false);n.send(null);if(n.readyState===4&&n.status===200){r=n.responseText}}else if(i.existsSync(e)){r=i.readFileSync(e,"utf8")}}catch(e){}return p[e]=r}));function supportRelativeURL(e,r){if(!e)return r;var n=o.dirname(e);var t=/^\w+:\/\/[^\/]*/.exec(n);var i=t?t[0]:"";var a=n.slice(i.length);if(i&&/^\/\w\:/.test(a)){i+="/";return i+o.resolve(n.slice(i.length),r).replace(/\\/g,"/")}return i+o.resolve(n.slice(i.length),r)}function retrieveSourceMapURL(e){var r;if(isInBrowser()){try{var n=new XMLHttpRequest;n.open("GET",e,false);n.send(null);r=n.readyState===4?n.responseText:null;var t=n.getResponseHeader("SourceMap")||n.getResponseHeader("X-SourceMap");if(t){return t}}catch(e){}}r=m(e);var o=/(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/gm;var i,a;while(a=o.exec(r))i=a;if(!i)return null;return i[1]}var v=handlerExec(h);h.push((function(e){var r=retrieveSourceMapURL(e);if(!r)return null;var n;if(g.test(r)){var t=r.slice(r.indexOf(",")+1);n=a(t,"base64").toString();r=e}else{r=supportRelativeURL(e,r);n=m(r)}if(!n){return null}return{url:r,map:n}}));function mapSourcePosition(e){var r=f[e.source];if(!r){var n=v(e.source);if(n){r=f[e.source]={url:n.url,map:new t(n.map)};if(r.map.sourcesContent){r.map.sources.forEach((function(e,n){var t=r.map.sourcesContent[n];if(t){var o=supportRelativeURL(r.url,e);p[o]=t}}))}}else{r=f[e.source]={url:null,map:null}}}if(r&&r.map&&typeof r.map.originalPositionFor==="function"){var o=r.map.originalPositionFor(e);if(o.source!==null){o.source=supportRelativeURL(r.url,o.source);return o}}return e}function mapEvalOrigin(e){var r=/^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(e);if(r){var n=mapSourcePosition({source:r[2],line:+r[3],column:r[4]-1});return"eval at "+r[1]+" ("+n.source+":"+n.line+":"+(n.column+1)+")"}r=/^eval at ([^(]+) \((.+)\)$/.exec(e);if(r){return"eval at "+r[1]+" ("+mapEvalOrigin(r[2])+")"}return e}function CallSiteToString(){var e;var r="";if(this.isNative()){r="native"}else{e=this.getScriptNameOrSourceURL();if(!e&&this.isEval()){r=this.getEvalOrigin();r+=", "}if(e){r+=e}else{r+="<anonymous>"}var n=this.getLineNumber();if(n!=null){r+=":"+n;var t=this.getColumnNumber();if(t){r+=":"+t}}}var o="";var i=this.getFunctionName();var a=true;var u=this.isConstructor();var s=!(this.isToplevel()||u);if(s){var l=this.getTypeName();if(l==="[object Object]"){l="null"}var c=this.getMethodName();if(i){if(l&&i.indexOf(l)!=0){o+=l+"."}o+=i;if(c&&i.indexOf("."+c)!=i.length-c.length-1){o+=" [as "+c+"]"}}else{o+=l+"."+(c||"<anonymous>")}}else if(u){o+="new "+(i||"<anonymous>")}else if(i){o+=i}else{o+=r;a=false}if(a){o+=" ("+r+")"}return o}function cloneCallSite(e){var r={};Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(n){r[n]=/^(?:is|get)/.test(n)?function(){return e[n].call(e)}:e[n]}));r.toString=CallSiteToString;return r}function wrapCallSite(e,r){if(r===undefined){r={nextPosition:null,curPosition:null}}if(e.isNative()){r.curPosition=null;return e}var n=e.getFileName()||e.getScriptNameOrSourceURL();if(n){var t=e.getLineNumber();var o=e.getColumnNumber()-1;var i=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;var a=i.test(globalProcessVersion())?0:62;if(t===1&&o>a&&!isInBrowser()&&!e.isEval()){o-=a}var u=mapSourcePosition({source:n,line:t,column:o});r.curPosition=u;e=cloneCallSite(e);var s=e.getFunctionName;e.getFunctionName=function(){if(r.nextPosition==null){return s()}return r.nextPosition.name||s()};e.getFileName=function(){return u.source};e.getLineNumber=function(){return u.line};e.getColumnNumber=function(){return u.column+1};e.getScriptNameOrSourceURL=function(){return u.source};return e}var l=e.isEval()&&e.getEvalOrigin();if(l){l=mapEvalOrigin(l);e=cloneCallSite(e);e.getEvalOrigin=function(){return l};return e}return e}function prepareStackTrace(e,r){if(l){p={};f={}}var n=e.name||"Error";var t=e.message||"";var o=n+": "+t;var i={nextPosition:null,curPosition:null};var a=[];for(var u=r.length-1;u>=0;u--){a.push("\n at "+wrapCallSite(r[u],i));i.nextPosition=i.curPosition}i.curPosition=i.nextPosition=null;return o+a.reverse().join("")}function getErrorSource(e){var r=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);if(r){var n=r[1];var t=+r[2];var o=+r[3];var a=p[n];if(!a&&i&&i.existsSync(n)){try{a=i.readFileSync(n,"utf8")}catch(e){a=""}}if(a){var u=a.split(/(?:\r\n|\r|\n)/)[t-1];if(u){return n+":"+t+"\n"+u+"\n"+new Array(o).join(" ")+"^"}}}return null}function printErrorAndExit(e){var r=getErrorSource(e);var n=globalProcessStderr();if(n&&n._handle&&n._handle.setBlocking){n._handle.setBlocking(true)}if(r){console.error();console.error(r)}console.error(e.stack);globalProcessExit(1)}function shimEmitUncaughtException(){var e=process.emit;process.emit=function(r){if(r==="uncaughtException"){var n=arguments[1]&&arguments[1].stack;var t=this.listeners(r).length>0;if(n&&!t){return printErrorAndExit(arguments[1])}}return e.apply(this,arguments)}}var S=d.slice(0);var _=h.slice(0);r.wrapCallSite=wrapCallSite;r.getErrorSource=getErrorSource;r.mapSourcePosition=mapSourcePosition;r.retrieveSourceMap=v;r.install=function(r){r=r||{};if(r.environment){c=r.environment;if(["node","browser","auto"].indexOf(c)===-1){throw new Error("environment "+c+" was unknown. Available options are {auto, browser, node}")}}if(r.retrieveFile){if(r.overrideRetrieveFile){d.length=0}d.unshift(r.retrieveFile)}if(r.retrieveSourceMap){if(r.overrideRetrieveSourceMap){h.length=0}h.unshift(r.retrieveSourceMap)}if(r.hookRequire&&!isInBrowser()){var n=dynamicRequire(e,"module");var t=n.prototype._compile;if(!t.__sourceMapSupport){n.prototype._compile=function(e,r){p[r]=e;f[r]=undefined;return t.call(this,e,r)};n.prototype._compile.__sourceMapSupport=true}}if(!l){l="emptyCacheBetweenOperations"in r?r.emptyCacheBetweenOperations:false}if(!u){u=true;Error.prepareStackTrace=prepareStackTrace}if(!s){var o="handleUncaughtExceptions"in r?r.handleUncaughtExceptions:true;try{var i=dynamicRequire(e,"worker_threads");if(i.isMainThread===false){o=false}}catch(e){}if(o&&hasGlobalProcessEventEmitter()){s=true;shimEmitUncaughtException()}}};r.resetRetrieveHandlers=function(){d.length=0;h.length=0;d=S.slice(0);h=_.slice(0);v=handlerExec(h);m=handlerExec(d)}},517:(e,r,n)=>{var t=n(297);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t<o;t++){n.add(e[t],r)}return n};ArraySet.prototype.size=function ArraySet_size(){return i?this._set.size:Object.getOwnPropertyNames(this._set).length};ArraySet.prototype.add=function ArraySet_add(e,r){var n=i?e:t.toSetString(e);var a=i?this.has(e):o.call(this._set,n);var u=this._array.length;if(!a||r){this._array.push(e)}if(!a){if(i){this._set.set(e,u)}else{this._set[n]=u}}};ArraySet.prototype.has=function ArraySet_has(e){if(i){return this._set.has(e)}else{var r=t.toSetString(e);return o.call(this._set,r)}};ArraySet.prototype.indexOf=function ArraySet_indexOf(e){if(i){var r=this._set.get(e);if(r>=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e<this._array.length){return this._array[e]}throw new Error("No element indexed by "+e)};ArraySet.prototype.toArray=function ArraySet_toArray(){return this._array.slice()};r.C=ArraySet},818:(e,r,n)=>{var t=n(158);var o=5;var i=1<<o;var a=i-1;var u=i;function toVLQSigned(e){return e<0?(-e<<1)+1:(e<<1)+0}function fromVLQSigned(e){var r=(e&1)===1;var n=e>>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<<l);l+=o}while(c);n.value=fromVLQSigned(s);n.rest=r}},158:(e,r)=>{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e<n.length){return n[e]}throw new TypeError("Must be between 0 and 63: "+e)};r.decode=function(e){var r=65;var n=90;var t=97;var o=122;var i=48;var a=57;var u=43;var s=47;var l=26;var c=52;if(r<=e&&e<=n){return e-r}if(t<=e&&e<=o){return e-t+l}if(i<=e&&e<=a){return e-i+c}if(e==u){return 62}if(e==s){return 63}return-1}},197:(e,r)=>{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n<o.length?n:-1}else{return u}}else{if(u-e>1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},24:(e,r,n)=>{var t=n(297);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.P=MappingList},299:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n<t){var o=randomIntInRange(n,t);var i=n-1;swap(e,o,t);var a=e[t];for(var u=n;u<t;u++){if(r(e[u],a)<=0){i+=1;swap(e,i,u)}}swap(e,i+1,u);var s=i+1;doQuickSort(e,r,n,s-1);doQuickSort(e,r,s+1,t)}}r.g=function(e,r){doQuickSort(e,r,0,e.length-1)}},684:(e,r,n)=>{var t;var o=n(297);var i=n(197);var a=n(517).C;var u=n(818);var s=n(299).g;function SourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}return n.sections!=null?new IndexedSourceMapConsumer(n,r):new BasicSourceMapConsumer(n,r)}SourceMapConsumer.fromSourceMap=function(e,r){return BasicSourceMapConsumer.fromSourceMap(e,r)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{configurable:true,enumerable:true,get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{configurable:true,enumerable:true,get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(e,r){var n=e.charAt(r);return n===";"||n===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,r,n){var t=r||null;var i=n||SourceMapConsumer.GENERATED_ORDER;var a;switch(i){case SourceMapConsumer.GENERATED_ORDER:a=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:a=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;a.map((function(e){var r=e.source===null?null:this._sources.at(e.source);r=o.computeSourceURL(u,r,this._sourceMapURL);return{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}}),this).forEach(e,t)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var r=o.getArg(e,"line");var n={source:o.getArg(e,"source"),originalLine:r,originalColumn:o.getArg(e,"column",0)};n.source=this._findSourceIndex(n.source);if(n.source<0){return[]}var t=[];var a=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(a>=0){var u=this._originalMappings[a];if(e.column===undefined){var s=u.originalLine;while(u&&u.originalLine===s){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}else{var l=u.originalColumn;while(u&&u.originalLine===r&&u.originalColumn==l){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}}return t};r.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sources");var u=o.getArg(n,"names",[]);var s=o.getArg(n,"sourceRoot",null);var l=o.getArg(n,"sourcesContent",null);var c=o.getArg(n,"mappings");var p=o.getArg(n,"file",null);if(t!=this._version){throw new Error("Unsupported version: "+t)}if(s){s=o.normalize(s)}i=i.map(String).map(o.normalize).map((function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}));this._names=a.fromArray(u.map(String),true);this._sources=a.fromArray(i,true);this._absoluteSources=this._sources.toArray().map((function(e){return o.computeSourceURL(s,e,r)}));this.sourceRoot=s;this.sourcesContent=l;this._mappings=c;this._sourceMapURL=r;this.file=p}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.prototype._findSourceIndex=function(e){var r=e;if(this.sourceRoot!=null){r=o.relative(this.sourceRoot,r)}if(this._sources.has(r)){return this._sources.indexOf(r)}var n;for(n=0;n<this._absoluteSources.length;++n){if(this._absoluteSources[n]==e){return n}}return-1};BasicSourceMapConsumer.fromSourceMap=function SourceMapConsumer_fromSourceMap(e,r){var n=Object.create(BasicSourceMapConsumer.prototype);var t=n._names=a.fromArray(e._names.toArray(),true);var i=n._sources=a.fromArray(e._sources.toArray(),true);n.sourceRoot=e._sourceRoot;n.sourcesContent=e._generateSourcesContent(n._sources.toArray(),n.sourceRoot);n.file=e._file;n._sourceMapURL=r;n._absoluteSources=n._sources.toArray().map((function(e){return o.computeSourceURL(n.sourceRoot,e,r)}));var u=e._mappings.toArray().slice();var l=n.__generatedMappings=[];var c=n.__originalMappings=[];for(var p=0,f=u.length;p<f;p++){var g=u[p];var d=new Mapping;d.generatedLine=g.generatedLine;d.generatedColumn=g.generatedColumn;if(g.source){d.source=i.indexOf(g.source);d.originalLine=g.originalLine;d.originalColumn=g.originalColumn;if(g.name){d.name=t.indexOf(g.name)}c.push(d)}l.push(d)}s(n.__originalMappings,o.compareByOriginalPositions);return n};BasicSourceMapConsumer.prototype._version=3;Object.defineProperty(BasicSourceMapConsumer.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function Mapping(){this.generatedLine=0;this.generatedColumn=0;this.source=null;this.originalLine=null;this.originalColumn=null;this.name=null}BasicSourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){var n=1;var t=0;var i=0;var a=0;var l=0;var c=0;var p=e.length;var f=0;var g={};var d={};var h=[];var m=[];var v,S,_,C,y;while(f<p){if(e.charAt(f)===";"){n++;f++;t=0}else if(e.charAt(f)===","){f++}else{v=new Mapping;v.generatedLine=n;for(C=f;C<p;C++){if(this._charIsMappingSeparator(e,C)){break}}S=e.slice(f,C);_=g[S];if(_){f+=S.length}else{_=[];while(f<C){u.decode(e,f,d);y=d.value;f=d.rest;_.push(y)}if(_.length===2){throw new Error("Found a source, but no line and column")}if(_.length===3){throw new Error("Found a source and line, but no column")}g[S]=_}v.generatedColumn=t+_[0];t=v.generatedColumn;if(_.length>1){v.source=l+_[1];l+=_[1];v.originalLine=i+_[2];i=v.originalLine;v.originalLine+=1;v.originalColumn=a+_[3];a=v.originalColumn;if(_.length>4){v.name=c+_[4];c+=_[4]}}m.push(v);if(typeof v.originalLine==="number"){h.push(v)}}}s(m,o.compareByGeneratedPositionsDeflated);this.__generatedMappings=m;s(h,o.compareByOriginalPositions);this.__originalMappings=h};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,r,n,t,o,a){if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[t]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[t])}return i.search(e,r,o,a)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e<this._generatedMappings.length;++e){var r=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(r.generatedLine===n.generatedLine){r.lastGeneratedColumn=n.generatedColumn-1;continue}}r.lastGeneratedColumn=Infinity}};BasicSourceMapConsumer.prototype.originalPositionFor=function SourceMapConsumer_originalPositionFor(e){var r={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")};var n=this._findMapping(r,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(n>=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=o.getArg(t,"source",null);if(i!==null){i=this._sources.at(i);i=o.computeSourceURL(this.sourceRoot,i,this._sourceMapURL)}var a=o.getArg(t,"name",null);if(a!==null){a=this._names.at(a)}return{source:i,line:o.getArg(t,"originalLine",null),column:o.getArg(t,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return e==null}))};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e,r){if(!this.sourcesContent){return null}var n=this._findSourceIndex(e);if(n>=0){return this.sourcesContent[n]}var t=e;if(this.sourceRoot!=null){t=o.relative(this.sourceRoot,t)}var i;if(this.sourceRoot!=null&&(i=o.urlParse(this.sourceRoot))){var a=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(a)){return this.sourcesContent[this._sources.indexOf(a)]}if((!i.path||i.path=="/")&&this._sources.has("/"+t)){return this.sourcesContent[this._sources.indexOf("/"+t)]}}if(r){return null}else{throw new Error('"'+t+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var r=o.getArg(e,"source");r=this._findSourceIndex(r);if(r<0){return{line:null,column:null,lastColumn:null}}var n={source:r,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};var t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source){return{line:o.getArg(i,"generatedLine",null),column:o.getArg(i,"generatedColumn",null),lastColumn:o.getArg(i,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};t=BasicSourceMapConsumer;function IndexedSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sections");if(t!=this._version){throw new Error("Unsupported version: "+t)}this._sources=new a;this._names=new a;var u={line:-1,column:0};this._sections=i.map((function(e){if(e.url){throw new Error("Support for url field in sections not implemented.")}var n=o.getArg(e,"offset");var t=o.getArg(n,"line");var i=o.getArg(n,"column");if(t<u.line||t===u.line&&i<u.column){throw new Error("Section offsets must be ordered and non-overlapping.")}u=n;return{generatedOffset:{generatedLine:t+1,generatedColumn:i+1},consumer:new SourceMapConsumer(o.getArg(e,"map"),r)}}))}IndexedSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);IndexedSourceMapConsumer.prototype.constructor=SourceMapConsumer;IndexedSourceMapConsumer.prototype._version=3;Object.defineProperty(IndexedSourceMapConsumer.prototype,"sources",{get:function(){var e=[];for(var r=0;r<this._sections.length;r++){for(var n=0;n<this._sections[r].consumer.sources.length;n++){e.push(this._sections[r].consumer.sources[n])}}return e}});IndexedSourceMapConsumer.prototype.originalPositionFor=function IndexedSourceMapConsumer_originalPositionFor(e){var r={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")};var n=i.search(r,this._sections,(function(e,r){var n=e.generatedLine-r.generatedOffset.generatedLine;if(n){return n}return e.generatedColumn-r.generatedOffset.generatedColumn}));var t=this._sections[n];if(!t){return{source:null,line:null,column:null,name:null}}return t.consumer.originalPositionFor({line:r.generatedLine-(t.generatedOffset.generatedLine-1),column:r.generatedColumn-(t.generatedOffset.generatedLine===r.generatedLine?t.generatedOffset.generatedColumn-1:0),bias:e.bias})};IndexedSourceMapConsumer.prototype.hasContentsOfAllSources=function IndexedSourceMapConsumer_hasContentsOfAllSources(){return this._sections.every((function(e){return e.consumer.hasContentsOfAllSources()}))};IndexedSourceMapConsumer.prototype.sourceContentFor=function IndexedSourceMapConsumer_sourceContentFor(e,r){for(var n=0;n<this._sections.length;n++){var t=this._sections[n];var o=t.consumer.sourceContentFor(e,true);if(o){return o}}if(r){return null}else{throw new Error('"'+e+'" is not in the SourceMap.')}};IndexedSourceMapConsumer.prototype.generatedPositionFor=function IndexedSourceMapConsumer_generatedPositionFor(e){for(var r=0;r<this._sections.length;r++){var n=this._sections[r];if(n.consumer._findSourceIndex(o.getArg(e,"source"))===-1){continue}var t=n.consumer.generatedPositionFor(e);if(t){var i={line:t.line+(n.generatedOffset.generatedLine-1),column:t.column+(n.generatedOffset.generatedLine===t.line?n.generatedOffset.generatedColumn-1:0)};return i}}return{line:null,column:null}};IndexedSourceMapConsumer.prototype._parseMappings=function IndexedSourceMapConsumer_parseMappings(e,r){this.__generatedMappings=[];this.__originalMappings=[];for(var n=0;n<this._sections.length;n++){var t=this._sections[n];var i=t.consumer._generatedMappings;for(var a=0;a<i.length;a++){var u=i[a];var l=t.consumer._sources.at(u.source);l=o.computeSourceURL(t.consumer.sourceRoot,l,this._sourceMapURL);this._sources.add(l);l=this._sources.indexOf(l);var c=null;if(u.name){c=t.consumer._names.at(u.name);this._names.add(c);c=this._names.indexOf(c)}var p={source:l,generatedLine:u.generatedLine+(t.generatedOffset.generatedLine-1),generatedColumn:u.generatedColumn+(t.generatedOffset.generatedLine===u.generatedLine?t.generatedOffset.generatedColumn-1:0),originalLine:u.originalLine,originalColumn:u.originalColumn,name:c};this.__generatedMappings.push(p);if(typeof p.originalLine==="number"){this.__originalMappings.push(p)}}}s(this.__generatedMappings,o.compareByGeneratedPositionsDeflated);s(this.__originalMappings,o.compareByOriginalPositions)};t=IndexedSourceMapConsumer},163:(e,r,n)=>{var t=n(818);var o=n(297);var i=n(517).C;var a=n(24).P;function SourceMapGenerator(e){if(!e){e={}}this._file=o.getArg(e,"file",null);this._sourceRoot=o.getArg(e,"sourceRoot",null);this._skipValidation=o.getArg(e,"skipValidation",false);this._sources=new i;this._names=new i;this._mappings=new a;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var r=e.sourceRoot;var n=new SourceMapGenerator({file:e.file,sourceRoot:r});e.eachMapping((function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){t.source=e.source;if(r!=null){t.source=o.relative(r,t.source)}t.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){t.name=e.name}}n.addMapping(t)}));e.sources.forEach((function(t){var i=t;if(r!==null){i=o.relative(r,t)}if(!n._sources.has(i)){n._sources.add(i)}var a=e.sourceContentFor(t);if(a!=null){n.setSourceContent(t,a)}}));return n};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var r=o.getArg(e,"generated");var n=o.getArg(e,"original",null);var t=o.getArg(e,"source",null);var i=o.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(r,n,t,i)}if(t!=null){t=String(t);if(!this._sources.has(t)){this._sources.add(t)}}if(i!=null){i=String(i);if(!this._names.has(i)){this._names.add(i)}}this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,r){var n=e;if(this._sourceRoot!=null){n=o.relative(this._sourceRoot,n)}if(r!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[o.toSetString(n)]=r}else if(this._sourcesContents){delete this._sourcesContents[o.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,r,n){var t=r;if(r==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}t=e.file}var a=this._sourceRoot;if(a!=null){t=o.relative(a,t)}var u=new i;var s=new i;this._mappings.unsortedForEach((function(r){if(r.source===t&&r.originalLine!=null){var i=e.originalPositionFor({line:r.originalLine,column:r.originalColumn});if(i.source!=null){r.source=i.source;if(n!=null){r.source=o.join(n,r.source)}if(a!=null){r.source=o.relative(a,r.source)}r.originalLine=i.line;r.originalColumn=i.column;if(i.name!=null){r.name=i.name}}}var l=r.source;if(l!=null&&!u.has(l)){u.add(l)}var c=r.name;if(c!=null&&!s.has(c)){s.add(c)}}),this);this._sources=u;this._names=s;e.sources.forEach((function(r){var t=e.sourceContentFor(r);if(t!=null){if(n!=null){r=o.join(n,r)}if(a!=null){r=o.relative(a,r)}this.setSourceContent(r,t)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,r,n,t){if(r&&typeof r.line!=="number"&&typeof r.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t){return}else if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var e=0;var r=1;var n=0;var i=0;var a=0;var u=0;var s="";var l;var c;var p;var f;var g=this._mappings.toArray();for(var d=0,h=g.length;d<h;d++){c=g[d];l="";if(c.generatedLine!==r){e=0;while(c.generatedLine!==r){l+=";";r++}}else{if(d>0){if(!o.compareByGeneratedPositionsInflated(c,g[d-1])){continue}l+=","}}l+=t.encode(c.generatedColumn-e);e=c.generatedColumn;if(c.source!=null){f=this._sources.indexOf(c.source);l+=t.encode(f-u);u=f;l+=t.encode(c.originalLine-1-i);i=c.originalLine-1;l+=t.encode(c.originalColumn-n);n=c.originalColumn;if(c.name!=null){p=this._names.indexOf(c.name);l+=t.encode(p-a);a=p}}s+=l}return s};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,r){return e.map((function(e){if(!this._sourcesContents){return null}if(r!=null){e=o.relative(r,e)}var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};r.x=SourceMapGenerator},565:(e,r,n)=>{var t;var o=n(163).x;var i=n(297);var a=/(\r?\n)/;var u=10;var s="$$$isSourceNode$$$";function SourceNode(e,r,n,t,o){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=r==null?null:r;this.source=n==null?null:n;this.name=o==null?null:o;this[s]=true;if(t!=null)this.add(t)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,r,n){var t=new SourceNode;var o=e.split(a);var u=0;var shiftNextLine=function(){var e=getNextLine();var r=getNextLine()||"";return e+r;function getNextLine(){return u<o.length?o[u++]:undefined}};var s=1,l=0;var c=null;r.eachMapping((function(e){if(c!==null){if(s<e.generatedLine){addMappingWithCode(c,shiftNextLine());s++;l=0}else{var r=o[u]||"";var n=r.substr(0,e.generatedColumn-l);o[u]=r.substr(e.generatedColumn-l);l=e.generatedColumn;addMappingWithCode(c,n);c=e;return}}while(s<e.generatedLine){t.add(shiftNextLine());s++}if(l<e.generatedColumn){var r=o[u]||"";t.add(r.substr(0,e.generatedColumn));o[u]=r.substr(e.generatedColumn);l=e.generatedColumn}c=e}),this);if(u<o.length){if(c){addMappingWithCode(c,shiftNextLine())}t.add(o.splice(u).join(""))}r.sources.forEach((function(e){var o=r.sourceContentFor(e);if(o!=null){if(n!=null){e=i.join(n,e)}t.setSourceContent(e,o)}}));return t;function addMappingWithCode(e,r){if(e===null||e.source===undefined){t.add(r)}else{var o=n?i.join(n,e.source):e.source;t.add(new SourceNode(e.originalLine,e.originalColumn,o,r,e.name))}}};SourceNode.prototype.add=function SourceNode_add(e){if(Array.isArray(e)){e.forEach((function(e){this.add(e)}),this)}else if(e[s]||typeof e==="string"){if(e){this.children.push(e)}}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.prepend=function SourceNode_prepend(e){if(Array.isArray(e)){for(var r=e.length-1;r>=0;r--){this.prepend(e[r])}}else if(e[s]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.walk=function SourceNode_walk(e){var r;for(var n=0,t=this.children.length;n<t;n++){r=this.children[n];if(r[s]){r.walk(e)}else{if(r!==""){e(r,{source:this.source,line:this.line,column:this.column,name:this.name})}}}};SourceNode.prototype.join=function SourceNode_join(e){var r;var n;var t=this.children.length;if(t>0){r=[];for(n=0;n<t-1;n++){r.push(this.children[n]);r.push(e)}r.push(this.children[n]);this.children=r}return this};SourceNode.prototype.replaceRight=function SourceNode_replaceRight(e,r){var n=this.children[this.children.length-1];if(n[s]){n.replaceRight(e,r)}else if(typeof n==="string"){this.children[this.children.length-1]=n.replace(e,r)}else{this.children.push("".replace(e,r))}return this};SourceNode.prototype.setSourceContent=function SourceNode_setSourceContent(e,r){this.sourceContents[i.toSetString(e)]=r};SourceNode.prototype.walkSourceContents=function SourceNode_walkSourceContents(e){for(var r=0,n=this.children.length;r<n;r++){if(this.children[r][s]){this.children[r].walkSourceContents(e)}}var t=Object.keys(this.sourceContents);for(var r=0,n=t.length;r<n;r++){e(i.fromSetString(t[r]),this.sourceContents[t[r]])}};SourceNode.prototype.toString=function SourceNode_toString(){var e="";this.walk((function(r){e+=r}));return e};SourceNode.prototype.toStringWithSourceMap=function SourceNode_toStringWithSourceMap(e){var r={code:"",line:1,column:0};var n=new o(e);var t=false;var i=null;var a=null;var s=null;var l=null;this.walk((function(e,o){r.code+=e;if(o.source!==null&&o.line!==null&&o.column!==null){if(i!==o.source||a!==o.line||s!==o.column||l!==o.name){n.addMapping({source:o.source,original:{line:o.line,column:o.column},generated:{line:r.line,column:r.column},name:o.name})}i=o.source;a=o.line;s=o.column;l=o.name;t=true}else if(t){n.addMapping({generated:{line:r.line,column:r.column}});i=null;t=false}for(var c=0,p=e.length;c<p;c++){if(e.charCodeAt(c)===u){r.line++;r.column=0;if(c+1===p){i=null;t=false}else if(t){n.addMapping({source:o.source,original:{line:o.line,column:o.column},generated:{line:r.line,column:r.column},name:o.name})}}else{r.column++}}}));this.walkSourceContents((function(e,r){n.setSourceContent(e,r)}));return{code:r.code,map:n}};t=SourceNode},297:(e,r)=>{function getArg(e,r,n){if(r in e){return e[r]}else if(arguments.length===3){return n}else{throw new Error('"'+r+'" is a required argument.')}}r.getArg=getArg;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var t=/^data:.+\,.+$/;function urlParse(e){var r=e.match(n);if(!r){return null}return{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}}r.urlParse=urlParse;function urlGenerate(e){var r="";if(e.scheme){r+=e.scheme+":"}r+="//";if(e.auth){r+=e.auth+"@"}if(e.host){r+=e.host}if(e.port){r+=":"+e.port}if(e.path){r+=e.path}return r}r.urlGenerate=urlGenerate;function normalize(e){var n=e;var t=urlParse(e);if(t){if(!t.path){return e}n=t.path}var o=r.isAbsolute(n);var i=n.split(/\/+/);for(var a,u=0,s=i.length-1;s>=0;s--){a=i[s];if(a==="."){i.splice(s,1)}else if(a===".."){u++}else if(u>0){if(a===""){i.splice(s+1,u);u=0}else{i.splice(s,2);u--}}}n=i.join("/");if(n===""){n=o?"/":"."}if(t){t.path=n;return urlGenerate(t)}return n}r.normalize=normalize;function join(e,r){if(e===""){e="."}if(r===""){r="."}var n=urlParse(r);var o=urlParse(e);if(o){e=o.path||"/"}if(n&&!n.scheme){if(o){n.scheme=o.scheme}return urlGenerate(n)}if(n||r.match(t)){return r}if(o&&!o.host&&!o.path){o.host=r;return urlGenerate(o)}var i=r.charAt(0)==="/"?r:normalize(e.replace(/\/+$/,"")+"/"+r);if(o){o.path=i;return urlGenerate(o)}return i}r.join=join;r.isAbsolute=function(e){return e.charAt(0)==="/"||n.test(e)};function relative(e,r){if(e===""){e="."}e=e.replace(/\/$/,"");var n=0;while(r.indexOf(e+"/")!==0){var t=e.lastIndexOf("/");if(t<0){return r}e=e.slice(0,t);if(e.match(/^([^\/]+:\/)?\/*$/)){return r}++n}return Array(n+1).join("../")+r.substr(e.length+1)}r.relative=relative;var o=function(){var e=Object.create(null);return!("__proto__"in e)}();function identity(e){return e}function toSetString(e){if(isProtoString(e)){return"$"+e}return e}r.toSetString=o?identity:toSetString;function fromSetString(e){if(isProtoString(e)){return e.slice(1)}return e}r.fromSetString=o?identity:fromSetString;function isProtoString(e){if(!e){return false}var r=e.length;if(r<9){return false}if(e.charCodeAt(r-1)!==95||e.charCodeAt(r-2)!==95||e.charCodeAt(r-3)!==111||e.charCodeAt(r-4)!==116||e.charCodeAt(r-5)!==111||e.charCodeAt(r-6)!==114||e.charCodeAt(r-7)!==112||e.charCodeAt(r-8)!==95||e.charCodeAt(r-9)!==95){return false}for(var n=r-10;n>=0;n--){if(e.charCodeAt(n)!==36){return false}}return true}function compareByOriginalPositions(e,r,n){var t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0||n){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0){return t}t=e.generatedLine-r.generatedLine;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(e,r,n){var t=e.generatedLine-r.generatedLine;if(t!==0){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0||n){return t}t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(e,r){if(e===r){return 0}if(e===null){return 1}if(r===null){return-1}if(e>r){return 1}return-1}function compareByGeneratedPositionsInflated(e,r){var n=e.generatedLine-r.generatedLine;if(n!==0){return n}n=e.generatedColumn-r.generatedColumn;if(n!==0){return n}n=strcmp(e.source,r.source);if(n!==0){return n}n=e.originalLine-r.originalLine;if(n!==0){return n}n=e.originalColumn-r.originalColumn;if(n!==0){return n}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}r.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(e,r,n){r=r||"";if(e){if(e[e.length-1]!=="/"&&r[0]!=="/"){e+="/"}r=e+r}if(n){var t=urlParse(n);if(!t){throw new Error("sourceMapURL could not be parsed")}if(t.path){var o=t.path.lastIndexOf("/");if(o>=0){t.path=t.path.substring(0,o+1)}}r=join(urlGenerate(t),r)}return normalize(r)}r.computeSourceURL=computeSourceURL},927:(e,r,n)=>{n(163).x;r.SourceMapConsumer=n(684).SourceMapConsumer;n(565)},896:e=>{"use strict";e.exports=require("fs")},928:e=>{"use strict";e.exports=require("path")}};var r={};function __webpack_require__(n){var t=r[n];if(t!==undefined){return t.exports}var o=r[n]={id:n,loaded:false,exports:{}};var i=true;try{e[n](o,o.exports,__webpack_require__);i=false}finally{if(i)delete r[n]}o.loaded=true;return o.exports}(()=>{__webpack_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __webpack_require__!=="undefined")__webpack_require__.ab=__dirname+"/";var n={};__webpack_require__(599).install();module.exports=n})();
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@_mustachio/ai-review-agent",
3
+ "version": "0.1.0",
4
+ "description": "AI-powered PR code review agent — CLI and CI integration for GitHub and Bitbucket",
5
+ "main": "src/core/engine.js",
6
+ "bin": {
7
+ "ai-review-agent": "bin/cli.js"
8
+ },
9
+ "scripts": {
10
+ "build": "ncc build src/index.js -o dist --source-map --license licenses.txt",
11
+ "dev": "node bin/cli.js"
12
+ },
13
+ "keywords": [
14
+ "ai",
15
+ "code-review",
16
+ "pull-request",
17
+ "github-actions",
18
+ "bitbucket",
19
+ "cli",
20
+ "opencode"
21
+ ],
22
+ "author": "_mustachio",
23
+ "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/the-human-mustachio/ai-review-agent"
27
+ },
28
+ "files": [
29
+ "bin/",
30
+ "src/",
31
+ "prompts/",
32
+ "action.yml",
33
+ "dist/"
34
+ ],
35
+ "dependencies": {
36
+ "@actions/core": "^1.11.1",
37
+ "@actions/github": "^6.0.0",
38
+ "@octokit/rest": "^21.1.1"
39
+ },
40
+ "devDependencies": {
41
+ "@vercel/ncc": "^0.38.3"
42
+ }
43
+ }
@@ -0,0 +1,41 @@
1
+ You are an expert code reviewer. All context is provided below — do NOT use any tools, do NOT read any files, do NOT explore the codebase.
2
+
3
+ Respond with ONLY valid JSON (no markdown, no code blocks, no extra text).
4
+
5
+ Schema:
6
+ {
7
+ "approve": boolean,
8
+ "summary": "1-2 sentence overview",
9
+ "issues": [
10
+ {
11
+ "severity": "blocking" | "warning" | "info",
12
+ "message": "concise description under 120 chars",
13
+ "file": "path/to/file.ts",
14
+ "line": 42,
15
+ "endLine": 45
16
+ }
17
+ ],
18
+ "recommendation": "brief next steps"
19
+ }
20
+
21
+ Rules:
22
+ - approve=true only if NO blocking issues
23
+ - blocking = bugs, security issues, breaking changes
24
+ - warning = code quality, missing tests, improvements
25
+ - info = minor suggestions, style nits
26
+ - "file" must be an exact path from the diff header (e.g. the "b/" path)
27
+ - "line" must be a line number from the diff's @@ hunk headers (the "+" side)
28
+ - "endLine" is optional, only include if the issue spans multiple lines
29
+ - Maximum 10 issues total
30
+ - Some files (lockfiles, build artifacts, the review action itself) are intentionally excluded. Do NOT flag missing files unless the diff has broken imports.
31
+
32
+ {{RULES}}
33
+
34
+ PR Title: {{PR_TITLE}}
35
+ Author: {{PR_AUTHOR}}
36
+ Description: {{PR_BODY}}
37
+
38
+ {{CONTEXT}}
39
+
40
+ Diff:
41
+ {{DIFF}}
@@ -0,0 +1,422 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const { execSync } = require('child_process');
4
+ const { loadPrompt, renderPrompt } = require('./prompt');
5
+ const { runReview } = require('./review');
6
+
7
+ const CONTEXT_LINES_AROUND_HUNK = 20;
8
+ const BINARY_EXTENSIONS = new Set([
9
+ '.png', '.jpg', '.jpeg', '.gif', '.ico', '.svg', '.webp', '.bmp',
10
+ '.woff', '.woff2', '.ttf', '.eot', '.otf',
11
+ '.zip', '.gz', '.tar', '.rar', '.7z',
12
+ '.pdf', '.doc', '.docx', '.xls', '.xlsx',
13
+ '.exe', '.dll', '.so', '.dylib', '.o',
14
+ '.mp3', '.mp4', '.wav', '.avi', '.mov',
15
+ '.pyc', '.class', '.wasm',
16
+ ]);
17
+
18
+ const DEFAULT_EXCLUDES = [
19
+ 'packages/ai-review-action/**',
20
+ 'package-lock.json',
21
+ 'yarn.lock',
22
+ 'pnpm-lock.yaml',
23
+ '**/dist/**',
24
+ '**/*.min.js',
25
+ '**/*.min.css',
26
+ '**/*.map',
27
+ '**/*.snap',
28
+ ];
29
+
30
+ const DEFAULT_OPENCODE_VERSION = '0.2.21';
31
+
32
+ /**
33
+ * Run the full review pipeline. Platform-agnostic.
34
+ *
35
+ * @param {object} opts
36
+ * @param {string} opts.baseBranch - Base branch to diff against
37
+ * @param {string} opts.prTitle
38
+ * @param {string} opts.prAuthor
39
+ * @param {string} opts.prBody
40
+ * @param {number|string} opts.prNumber
41
+ * @param {string} [opts.promptPath] - Custom prompt template path
42
+ * @param {string} [opts.rulesPath] - Path to rules file or directory
43
+ * @param {string} [opts.excludePatterns] - Comma-separated exclude globs
44
+ * @param {number} [opts.maxDiffSize=100000]
45
+ * @param {string} [opts.opencodeVersion]
46
+ * @param {string} [opts.opencodeConfig] - Path to OpenCode config
47
+ * @param {string} [opts.apiKey] - API key to set in env
48
+ * @param {function} [opts.log] - Logging function
49
+ * @returns {Promise<object>} Review result: { approve, summary, issues, recommendation }
50
+ */
51
+ async function runFullReview(opts) {
52
+ const {
53
+ baseBranch,
54
+ prTitle,
55
+ prAuthor,
56
+ prBody = '',
57
+ prNumber,
58
+ promptPath,
59
+ rulesPath,
60
+ excludePatterns = '',
61
+ maxDiffSize = 100000,
62
+ opencodeVersion = DEFAULT_OPENCODE_VERSION,
63
+ opencodeConfig,
64
+ apiKey,
65
+ log = console.log,
66
+ } = opts;
67
+
68
+ // Set env vars
69
+ if (apiKey) process.env.ANTHROPIC_API_KEY = apiKey;
70
+ if (opencodeConfig) process.env.OPENCODE_CONFIG = opencodeConfig;
71
+
72
+ // Load rules
73
+ const rules = rulesPath ? loadRules(rulesPath, log) : '';
74
+ if (rules) log(`Loaded review rules (${rules.length} chars).`);
75
+
76
+ // Get changed files
77
+ log('Fetching changed files...');
78
+ const nameOnly = exec(`git diff --name-only origin/${baseBranch}...HEAD`);
79
+ const allFiles = nameOnly.split('\n').filter(Boolean);
80
+ const { included, excluded } = filterFiles(allFiles, excludePatterns);
81
+
82
+ if (included.length === 0) {
83
+ log('No reviewable files changed. Skipping review.');
84
+ return { approve: true, summary: 'No reviewable files changed.', issues: [], recommendation: '' };
85
+ }
86
+
87
+ if (excluded.length > 0) log(`Excluded ${excluded.length} file(s).`);
88
+
89
+ // Get diff
90
+ log(`Reviewing ${included.length} file(s)...`);
91
+ const fullDiff = exec(`git diff origin/${baseBranch}...HEAD -- ${included.map(f => `"${f}"`).join(' ')}`);
92
+
93
+ if (!fullDiff.trim()) {
94
+ log('No diff found. Skipping review.');
95
+ return { approve: true, summary: 'No diff found.', issues: [], recommendation: '' };
96
+ }
97
+
98
+ // Context + chunks
99
+ const fileDiffs = splitDiffByFile(fullDiff);
100
+ const context = gatherHunkContext(fileDiffs);
101
+ const chunks = buildChunks(fileDiffs, maxDiffSize);
102
+ log(`Split into ${chunks.length} chunk(s) for review.`);
103
+
104
+ // Install OpenCode
105
+ log(`Installing OpenCode v${opencodeVersion}...`);
106
+ exec(`npm install -g opencode-ai@${opencodeVersion}`);
107
+
108
+ // Sanitize
109
+ const safePrTitle = sanitize(prTitle);
110
+ const safePrAuthor = sanitize(prAuthor);
111
+ const safePrBody = sanitize(prBody);
112
+
113
+ // Review chunks in parallel
114
+ const template = loadPrompt(promptPath);
115
+
116
+ const chunkResults = await Promise.all(chunks.map((chunk, i) => {
117
+ const chunkLabel = chunks.length > 1 ? ` (chunk ${i + 1}/${chunks.length})` : '';
118
+ log(`Running AI review${chunkLabel}...`);
119
+
120
+ const contextSection = context.length > 0
121
+ ? `File context (surrounding code for reference):\n${context.filter(c => chunk.files.includes(c.file)).map(c => `--- ${c.file} ---\n${c.content}`).join('\n\n')}`
122
+ : '';
123
+
124
+ const rulesSection = rules
125
+ ? `Review rules and standards (apply these when evaluating the code):\n${rules}`
126
+ : '';
127
+
128
+ const prompt = renderPrompt(template, {
129
+ PR_TITLE: safePrTitle,
130
+ PR_AUTHOR: safePrAuthor,
131
+ PR_BODY: safePrBody,
132
+ RULES: rulesSection,
133
+ CONTEXT: contextSection,
134
+ DIFF: chunk.diff,
135
+ });
136
+
137
+ return runReview(prompt, `${prNumber}-${i}`, { log });
138
+ }));
139
+
140
+ // Merge
141
+ let shouldApprove = true;
142
+ const allIssues = [];
143
+ const allSummaries = [];
144
+ const allRecommendations = [];
145
+
146
+ for (const review of chunkResults) {
147
+ if (review.issues) allIssues.push(...review.issues);
148
+ if (review.summary) allSummaries.push(review.summary);
149
+ if (review.recommendation) allRecommendations.push(review.recommendation);
150
+ if (!review.approve) shouldApprove = false;
151
+ }
152
+
153
+ return {
154
+ approve: shouldApprove,
155
+ summary: allSummaries.join(' '),
156
+ issues: deduplicateIssues(allIssues),
157
+ recommendation: allRecommendations.join(' '),
158
+ };
159
+ }
160
+
161
+ // ─── Helpers ────────────────────────────────────────────────────────────────
162
+
163
+ function exec(cmd) {
164
+ return execSync(cmd, { encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024 });
165
+ }
166
+
167
+ function sanitize(text) {
168
+ if (!text) return '';
169
+ const cleaned = text.replace(/---END_USER_INPUT---/gi, '');
170
+ return `---BEGIN_USER_INPUT---\n${cleaned}\n---END_USER_INPUT---`;
171
+ }
172
+
173
+ function deduplicateIssues(issues) {
174
+ const seen = new Set();
175
+ const unique = [];
176
+ for (const issue of issues) {
177
+ const key = issue.file && issue.line
178
+ ? `${issue.file}:${issue.line}:${issue.severity}`
179
+ : `${issue.message}`;
180
+ if (!seen.has(key)) {
181
+ seen.add(key);
182
+ unique.push(issue);
183
+ }
184
+ }
185
+ return unique;
186
+ }
187
+
188
+ function shouldFailForThreshold(review, threshold) {
189
+ const issues = review.issues || [];
190
+ const severities = ['info', 'warning', 'blocking'];
191
+ const thresholdIndex = severities.indexOf(threshold);
192
+ if (thresholdIndex === -1) return null;
193
+ const failingSeverities = severities.slice(thresholdIndex);
194
+ const failingIssues = issues.filter((i) => failingSeverities.includes(i.severity));
195
+ if (failingIssues.length > 0) {
196
+ return `Review found ${failingIssues.length} issue(s) at or above '${threshold}' severity.`;
197
+ }
198
+ return null;
199
+ }
200
+
201
+ function countBySeverity(issues, severity) {
202
+ return (issues || []).filter((i) => i.severity === severity).length;
203
+ }
204
+
205
+ // ─── Hunk-Aware Context ─────────────────────────────────────────────────────
206
+
207
+ function gatherHunkContext(fileDiffs) {
208
+ const context = [];
209
+ for (const { file, diff } of fileDiffs) {
210
+ if (isBinaryFile(file)) continue;
211
+ if (!fs.existsSync(file)) continue;
212
+
213
+ let lines;
214
+ try {
215
+ const content = fs.readFileSync(file, 'utf-8');
216
+ if (content.includes('\0')) continue;
217
+ lines = content.split('\n');
218
+ } catch { continue; }
219
+
220
+ const hunkRanges = [];
221
+ const hunkRegex = /^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/gm;
222
+ let match;
223
+ while ((match = hunkRegex.exec(diff)) !== null) {
224
+ const start = parseInt(match[1], 10);
225
+ const len = match[2] !== undefined ? parseInt(match[2], 10) : 1;
226
+ hunkRanges.push({ start, end: start + len - 1 });
227
+ }
228
+ if (hunkRanges.length === 0) continue;
229
+
230
+ const padded = hunkRanges.map(r => ({
231
+ start: Math.max(1, r.start - CONTEXT_LINES_AROUND_HUNK),
232
+ end: Math.min(lines.length, r.end + CONTEXT_LINES_AROUND_HUNK),
233
+ }));
234
+ const merged = mergeRanges(padded);
235
+ const snippets = merged.map(r => {
236
+ const snippet = lines.slice(r.start - 1, r.end);
237
+ return `Lines ${r.start}-${r.end}:\n${snippet.join('\n')}`;
238
+ });
239
+ context.push({ file, content: snippets.join('\n\n') });
240
+ }
241
+ return context;
242
+ }
243
+
244
+ function mergeRanges(ranges) {
245
+ if (ranges.length === 0) return [];
246
+ const sorted = [...ranges].sort((a, b) => a.start - b.start);
247
+ const merged = [sorted[0]];
248
+ for (let i = 1; i < sorted.length; i++) {
249
+ const last = merged[merged.length - 1];
250
+ if (sorted[i].start <= last.end + 1) {
251
+ last.end = Math.max(last.end, sorted[i].end);
252
+ } else {
253
+ merged.push(sorted[i]);
254
+ }
255
+ }
256
+ return merged;
257
+ }
258
+
259
+ function isBinaryFile(filePath) {
260
+ const ext = path.extname(filePath).toLowerCase();
261
+ return BINARY_EXTENSIONS.has(ext);
262
+ }
263
+
264
+ // ─── Diff & Filtering ───────────────────────────────────────────────────────
265
+
266
+ function splitDiffByFile(fullDiff) {
267
+ const parts = fullDiff.split(/(?=^diff --git )/m).filter(Boolean);
268
+ return parts.map((diff) => {
269
+ const match = diff.match(/^diff --git a\/(.+?) b\/(.+)/);
270
+ const file = match ? match[2] : 'unknown';
271
+ return { file, diff };
272
+ });
273
+ }
274
+
275
+ function buildChunks(fileDiffs, maxSize) {
276
+ const chunks = [];
277
+ let current = { files: [], diffs: [], size: 0 };
278
+ for (const { file, diff } of fileDiffs) {
279
+ if (current.size + diff.length > maxSize && current.diffs.length > 0) {
280
+ chunks.push({ files: current.files, diff: current.diffs.join('\n') });
281
+ current = { files: [], diffs: [], size: 0 };
282
+ }
283
+ current.files.push(file);
284
+ current.diffs.push(diff);
285
+ current.size += diff.length;
286
+ }
287
+ if (current.diffs.length > 0) {
288
+ chunks.push({ files: current.files, diff: current.diffs.join('\n') });
289
+ }
290
+ return chunks;
291
+ }
292
+
293
+ function filterFiles(files, extraPatterns) {
294
+ const patterns = [...DEFAULT_EXCLUDES];
295
+ if (extraPatterns) {
296
+ patterns.push(...extraPatterns.split(',').map((p) => p.trim()).filter(Boolean));
297
+ }
298
+ const included = [];
299
+ const excluded = [];
300
+ for (const file of files) {
301
+ if (matchesAny(file, patterns)) {
302
+ excluded.push(file);
303
+ } else {
304
+ included.push(file);
305
+ }
306
+ }
307
+ return { included, excluded };
308
+ }
309
+
310
+ function matchesAny(file, patterns) {
311
+ for (const pattern of patterns) {
312
+ if (pattern.startsWith('**/')) {
313
+ const suffix = pattern.slice(3);
314
+ if (suffix.startsWith('*.')) {
315
+ if (file.endsWith(suffix.slice(1))) return true;
316
+ } else if (suffix.endsWith('/**')) {
317
+ const dir = suffix.slice(0, -3);
318
+ if (file.includes(`/${dir}/`) || file.startsWith(`${dir}/`)) return true;
319
+ } else {
320
+ if (file.includes(suffix) || file.endsWith(suffix)) return true;
321
+ }
322
+ } else if (pattern.endsWith('/**')) {
323
+ const prefix = pattern.slice(0, -3);
324
+ if (file.startsWith(prefix + '/') || file === prefix) return true;
325
+ } else if (pattern.startsWith('*.')) {
326
+ if (file.endsWith(pattern.slice(1))) return true;
327
+ } else {
328
+ if (file === pattern || file.endsWith('/' + pattern)) return true;
329
+ }
330
+ }
331
+ return false;
332
+ }
333
+
334
+ // ─── Rules Loading ──────────────────────────────────────────────────────────
335
+
336
+ function loadRules(rulesPath, log = console.log) {
337
+ if (!fs.existsSync(rulesPath)) {
338
+ log(`Warning: Rules path not found: ${rulesPath}`);
339
+ return '';
340
+ }
341
+ const stat = fs.statSync(rulesPath);
342
+ if (stat.isFile()) return fs.readFileSync(rulesPath, 'utf-8');
343
+ if (stat.isDirectory()) {
344
+ const files = fs.readdirSync(rulesPath).filter((f) => !f.startsWith('.')).sort();
345
+ const parts = [];
346
+ for (const file of files) {
347
+ const filePath = path.join(rulesPath, file);
348
+ if (fs.statSync(filePath).isFile()) {
349
+ parts.push(`### ${file}\n\n${fs.readFileSync(filePath, 'utf-8')}`);
350
+ }
351
+ }
352
+ return parts.join('\n\n');
353
+ }
354
+ return '';
355
+ }
356
+
357
+ // ─── Markdown Formatting ────────────────────────────────────────────────────
358
+
359
+ const SEVERITY_ICONS = { blocking: '🚫', warning: '⚠️', info: '💡' };
360
+
361
+ function formatComment(review) {
362
+ const verdict = review.approve ? '✅ **Approved**' : '❌ **Changes Requested**';
363
+ let body = `## AI Code Review — ${verdict}\n\n${review.summary}`;
364
+
365
+ const nonInlineIssues = (review.issues || []).filter((i) => !i.file || !i.line);
366
+ if (nonInlineIssues.length > 0) {
367
+ body += '\n\n### General Issues\n\n| Severity | Details |\n|----------|---------|';
368
+ for (const issue of nonInlineIssues) {
369
+ const icon = SEVERITY_ICONS[issue.severity] || '•';
370
+ body += `\n| ${icon} **${issue.severity}** | ${issue.message} |`;
371
+ }
372
+ }
373
+
374
+ if (review.recommendation) {
375
+ body += `\n\n### Recommendation\n\n${review.recommendation}`;
376
+ }
377
+
378
+ body += '\n\n---\n*Generated by AI Code Review*';
379
+ return body;
380
+ }
381
+
382
+ function formatInlineIssuesAsList(issues) {
383
+ const inlineIssues = (issues || []).filter((i) => i.file && i.line);
384
+ if (inlineIssues.length === 0) return '';
385
+ let list = '\n\n### Inline Issues\n\n';
386
+ for (const issue of inlineIssues) {
387
+ const icon = SEVERITY_ICONS[issue.severity] || '•';
388
+ const lineRef = issue.endLine ? `L${issue.line}-L${issue.endLine}` : `L${issue.line}`;
389
+ list += `- ${icon} **${issue.severity}** \`${issue.file}:${lineRef}\`: ${issue.message}\n`;
390
+ }
391
+ return list;
392
+ }
393
+
394
+ function buildInlineComments(issues) {
395
+ const comments = [];
396
+ for (const issue of (issues || [])) {
397
+ if (issue.file && issue.line) {
398
+ const icon = SEVERITY_ICONS[issue.severity] || '•';
399
+ const comment = {
400
+ path: issue.file,
401
+ line: issue.line,
402
+ body: `${icon} **${issue.severity}**: ${issue.message}`,
403
+ };
404
+ if (issue.endLine && issue.endLine > issue.line) {
405
+ comment.start_line = issue.line;
406
+ comment.line = issue.endLine;
407
+ }
408
+ comments.push(comment);
409
+ }
410
+ }
411
+ return comments;
412
+ }
413
+
414
+ module.exports = {
415
+ runFullReview,
416
+ shouldFailForThreshold,
417
+ countBySeverity,
418
+ formatComment,
419
+ formatInlineIssuesAsList,
420
+ buildInlineComments,
421
+ SEVERITY_ICONS,
422
+ };
@@ -0,0 +1,22 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ const DEFAULT_PROMPT_PATH = path.join(__dirname, '..', '..', 'prompts', 'default.txt');
5
+
6
+ function loadPrompt(customPath) {
7
+ const promptPath = customPath || DEFAULT_PROMPT_PATH;
8
+ if (!fs.existsSync(promptPath)) {
9
+ throw new Error(`Prompt template not found: ${promptPath}`);
10
+ }
11
+ return fs.readFileSync(promptPath, 'utf-8');
12
+ }
13
+
14
+ function renderPrompt(template, variables) {
15
+ let result = template;
16
+ for (const [key, value] of Object.entries(variables)) {
17
+ result = result.replaceAll(`{{${key}}}`, value || '');
18
+ }
19
+ return result;
20
+ }
21
+
22
+ module.exports = { loadPrompt, renderPrompt };