-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathsimpleSqlParser.min.js
More file actions
1 lines (1 loc) · 13.5 KB
/
simpleSqlParser.min.js
File metadata and controls
1 lines (1 loc) · 13.5 KB
1
!function(n){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.simpleSqlParser=n()}}(function(){return function n(e,t,r){function i(s,o){if(!t[s]){if(!e[s]){var a="function"==typeof require&&require;if(!o&&a)return a(s,!0);if(u)return u(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var p=t[s]={exports:{}};e[s][0].call(p.exports,function(n){var t=e[s][1][n];return i(t?t:n)},p,p.exports,n,e,t,r)}return t[s].exports}for(var u="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(n,e,t){"use strict";e.exports.sql2ast=n("./src/sql2ast.js"),e.exports.ast2sql=n("./src/ast2sql.js")},{"./src/ast2sql.js":5,"./src/sql2ast.js":6}],2:[function(n,e,t){var r={};r.Parser=function(){"use strict";function n(e){return this instanceof n?void(this._=e):new n(e)}function e(n,e){return{status:!0,index:n,value:e,furthest:-1,expected:[]}}function t(n,e){return{status:!1,index:-1,value:null,furthest:n,expected:[e]}}function i(n,e){if(!e)return n;if(n.furthest>e.furthest)return n;var t=n.furthest===e.furthest?n.expected.concat(e.expected):e.expected;return{status:n.status,index:n.index,value:n.value,furthest:e.furthest,expected:t}}function u(e){if(!(e instanceof n))throw new Error("not a parser: "+e)}function s(n){return 1===n.length?n[0]:"one of "+n.join(", ")}function o(n,e){var t=e.index;if(t===n.length)return", got the end of the stream";var r=t>0?"'...":"'",i=n.length-t>12?"...'":"'";return" at character "+t+", got "+r+n.slice(t,t+12)+i}var a=n.prototype;r.formatError=function(n,e){return"expected "+s(e.expected)+o(n,e)};a.parse=function(n){var e=this.skip(d)._(n,0);return e.status?{status:!0,value:e.value}:{status:!1,index:e.furthest,expected:e.expected}};var l=r.seq=function(){var t=[].slice.call(arguments),r=t.length;return n(function(n,u){for(var s,o=new Array(r),a=0;r>a;a+=1){if(s=i(t[a]._(n,u),s),!s.status)return s;o[a]=s.value,u=s.index}return i(e(u,o),s)})},p=r.seqMap=function(){var n=[].slice.call(arguments),e=n.pop();return l.apply(null,n).map(function(n){return e.apply(null,n)})},c=(r.custom=function(r){return n(r(e,t))},r.alt=function(){var e=[].slice.call(arguments),t=e.length;return 0===t?h("zero alternates"):n(function(n,t){for(var r,u=0;u<e.length;u+=1)if(r=i(e[u]._(n,t),r),r.status)return r;return r})});a.or=function(n){return c(this,n)},a.then=function(n){if("function"==typeof n)throw new Error("chaining features of .then are no longer supported, use .chain instead");return u(n),l(this,n).map(function(n){return n[1]})},a.many=function(){var t=this;return n(function(n,r){for(var u,s=[];;){if(u=i(t._(n,r),u),!u.status)return i(e(r,s),u);r=u.index,s.push(u.value)}})},a.times=function(t,r){arguments.length<2&&(r=t);var u=this;return n(function(n,s){for(var o,a,l=[],p=0;t>p;p+=1){if(o=u._(n,s),a=i(o,a),!o.status)return a;s=o.index,l.push(o.value)}for(;r>p&&(o=u._(n,s),a=i(o,a),o.status);p+=1)s=o.index,l.push(o.value);return i(e(s,l),a)})},a.result=function(n){return this.map(function(e){return n})},a.atMost=function(n){return this.times(0,n)},a.atLeast=function(n){return p(this.times(n),this.many(),function(n,e){return n.concat(e)})},a.map=function(t){var r=this;return n(function(n,u){var s=r._(n,u);return s.status?i(e(s.index,t(s.value)),s):s})},a.skip=function(n){return l(this,n).map(function(n){return n[0]})},a.mark=function(){return p(v,this,v,function(n,e,t){return{start:n,value:e,end:t}})},a.desc=function(e){var t=this;return n(function(n,r){var i=t._(n,r);return i.status||(i.expected=[e]),i})};var f=(r.string=function(r){var i=r.length,u="'"+r+"'";return n(function(n,s){var o=n.slice(s,s+i);return o===r?e(s+i,o):t(s,u)})},r.regex=function(r,i){var u=RegExp("^(?:"+r.source+")",(""+r).slice((""+r).lastIndexOf("/")+1)),s=""+r;return null==i&&(i=0),n(function(n,r){var o=u.exec(n.slice(r));if(o){var a=o[0],l=o[i];if(null!=l)return e(r+a.length,l)}return t(r,s)})}),m=r.succeed=function(t){return n(function(n,r){return e(r,t)})},h=r.fail=function(e){return n(function(n,r){return t(r,e)})},d=(r.letter=f(/[a-z]/i).desc("a letter"),r.letters=f(/[a-z]*/i),r.digit=f(/[0-9]/).desc("a digit"),r.digits=f(/[0-9]*/),r.whitespace=f(/\s+/).desc("whitespace"),r.optWhitespace=f(/\s*/),r.any=n(function(n,r){return r>=n.length?t(r,"any character"):e(r+1,n.charAt(r))}),r.all=n(function(n,t){return e(n.length,n.slice(t))}),r.eof=n(function(n,r){return r<n.length?t(r,"EOF"):e(r,null)})),x=r.test=function(r){return n(function(n,i){var u=n.charAt(i);return i<n.length&&r(u)?e(i+1,u):t(i,"a character matching "+r)})},v=(r.oneOf=function(n){return x(function(e){return n.indexOf(e)>=0})},r.noneOf=function(n){return x(function(e){return n.indexOf(e)<0})},r.takeWhile=function(t){return n(function(n,r){for(var i=r;i<n.length&&t(n.charAt(i));)i+=1;return e(i,n.slice(r,i))})},r.lazy=function(e,t){arguments.length<2&&(t=e,e=void 0);var r=n(function(n,e){return r._=t()._,r._(n,e)});return e&&(r=r.desc(e)),r},r.index=n(function(n,t){return e(t,t)}));return a.concat=a.or,a.empty=h("empty"),a.of=n.of=r.of=m,a.ap=function(n){return p(this,n,function(n,e){return n(e)})},a.chain=function(e){var t=this;return n(function(n,r){var u=t._(n,r);if(!u.status)return u;var s=e(u.value);return i(s._(n,u.index),u)})},n}(),e.exports=r},{}],3:[function(n,e,t){e.exports=n("./build/parsimmon.commonjs"),t.version=n("./package.json").version},{"./build/parsimmon.commonjs":2,"./package.json":4}],4:[function(n,e,t){e.exports={_args:[["parsimmon@0.7.0","/Users/ra/Workspace/ra/simpleSqlParser"]],_from:"parsimmon@0.7.0",_id:"parsimmon@0.7.0",_inCache:!0,_installable:!0,_location:"/parsimmon",_npmUser:{email:"jjmadkisson@gmail.com",name:"jayferd"},_npmVersion:"1.4.14",_phantomChildren:{},_requested:{name:"parsimmon",raw:"parsimmon@0.7.0",rawSpec:"0.7.0",scope:null,spec:"0.7.0",type:"version"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/parsimmon/-/parsimmon-0.7.0.tgz",_shasum:"652fc7cbade73c5edb42a266ec556c906d82c9fb",_shrinkwrap:null,_spec:"parsimmon@0.7.0",_where:"/Users/ra/Workspace/ra/simpleSqlParser",author:{email:"jneen at jneen dot net",name:"Jeanine Adkisson"},bugs:{url:"https://github.com/jneen/parsimmon/issues"},dependencies:{pjs:"5.x"},description:"A monadic LL(infinity) parser combinator library",devDependencies:{chai:"1.5.x",mocha:"1.8.x","uglify-js":"2.x"},directories:{},dist:{shasum:"652fc7cbade73c5edb42a266ec556c906d82c9fb",tarball:"https://registry.npmjs.org/parsimmon/-/parsimmon-0.7.0.tgz"},files:["Makefile","build/parsimmon.browser.js","build/parsimmon.browser.min.js","build/parsimmon.commonjs.js","index.js","package.json","src","test"],homepage:"https://github.com/jneen/parsimmon",keywords:["parse","parser combinators","parsing"],main:"index.js",maintainers:[{name:"jayferd",email:"jjmadkisson@gmail.com"},{name:"jneen",email:"jneen@jneen.net"}],name:"parsimmon",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git://github.com/jneen/parsimmon.git"},scripts:{test:"make test"},version:"0.7.0"}},{}],5:[function(n,e,t){"use strict";e.exports=function(n){function e(n){var e="SELECT ";return e+=n.select.map(function(n){return n.expression}).join(", ")}function t(n){var e="";return n.from.length>0&&(e+="FROM ",e+=n.from.map(function(n){return n.expression}).join(", ")),e}function r(n){return n.join.map(function(n){var e="";if("inner"===n.type)e+="INNER JOIN ";else if("left"===n.type)e+="LEFT JOIN ";else{if("right"!==n.type)return"";e+="RIGHT JOIN "}return e+=n.table,null!==n.alias&&(e+=" AS "+n.alias),e+=" ON ",e+=n.condition.expression}).join(" ")}function i(n){var e="";return null!==n.where&&(e+="WHERE "+n.where.expression),e}function u(n){var e="";return n.group.length>0&&(e+="GROUP BY ",e+=n.group.map(function(n){return n.expression}).join(", ")),e}function s(n){var e="";return n.order.length>0&&(e+="ORDER BY ",e+=n.order.map(function(n){return n.expression}).join(", ")),e}function o(n){var e="";return null!==n.limit&&(e+="LIMIT ",null!==n.limit.from&&(e+=n.limit.from+", "),e+=n.limit.nb),e}function a(n){return"INSERT INTO "+n.into.expression}function l(n){var e="",t=n.values.filter(function(n){return null!==n.target});return t.length>0&&(e+="(",e+=t.map(function(n){return n.target.expression}).join(", "),e+=") "),e+="VALUES (",e+=n.values.map(function(n){return n.value}).join(", "),e+=")"}function p(n){return"UPDATE "+n.table.expression}function c(n){var e="SET ";return e+=n.values.map(function(n){return n.target.expression+" = "+n.value}).join(", ")}if("object"!=typeof n||n.status!==!0)return!1;var f=n.value,m=[];if("select"===f.type)m.push(e(f)),m.push(t(f)),m.push(r(f)),m.push(i(f)),m.push(u(f)),m.push(s(f)),m.push(o(f));else if("insert"===f.type)m.push(a(f)),m.push(l(f));else if("update"===f.type)m.push(p(f)),m.push(c(f)),m.push(i(f));else{if("delete"!==f.type)return!1;m.push("DELETE"),m.push(t(f)),m.push(i(f))}return m.filter(function(n){return""!==n}).join(" ")}},{}],6:[function(n,e,t){"use strict";function r(n,e){return"undefined"==typeof e?n.or(l.succeed([])):n.or(l.succeed(e))}function i(n){return n.join("")}function u(n){return n[0].push(n[1]),n[0]}function s(n){return p(n.skip(h).skip(m(",")).skip(h).many(),n.skip(h)).map(u)}function o(n){return n.replace(/^([`'"])(.*)\1$/,"$2")}function a(n){return p(l.index,n,l.index).map(function(n){var e={start:n[0],end:n[2]};if("object"==typeof n[1]){var t=n[1];return t.position=e,t}return e.out=n[1],e})}var l=n("parsimmon"),p=l.seq,c=l.alt,f=l.regex,m=l.string,h=l.optWhitespace,d=l.whitespace,x=l.lazy,v=c(f(/(?!(FROM|WHERE|GROUP BY|ORDER BY|LIMIT|INNER|LEFT|RIGHT|JOIN|ON|VALUES|SET)\s)[a-z*][a-z0-9_:]*/i),f(/`[^`\\]*(?:\\.[^`\\]*)*`/)),g=c(f(/"[^"\\]*(?:\\.[^"\\]*)*"/),f(/'[^'\\]*(?:\\.[^'\\]*)*'/)),E=p(c(f(/[a-zA-Z0-9_]+\(/),m("(")),r(x(function(){return D})).map(i),m(")")).map(i),j=p(v,m("."),v),y=c(m("+"),m("-"),m("*"),m("/"),m("&&"),m("&"),m("~"),m("||"),m("|"),m("^"),f(/XOR/i),m("<=>"),m("="),m("!="),m(">="),m(">>"),m(">"),m("<="),m("<<"),m("<"),f(/IS NULL/i),f(/IS NOT/i),f(/IS NOT NULL/i),f(/IS/i),f(/LIKE/i),f(/NOT LIKE/i),f(/BETWEEN/i),f(/NOT BETWEEN/i),m("%"),f(/MOD/i),f(/NOT/i),f(/OR\s/i),f(/AND/i),f(/IN/i)),b=f(/[-]?\d+\.?\d*/),O=p(m("("),h,p(c(b,g),h,r(m(",")),h,r(c(b,g))).map(i),h,m(")")).map(i),k=p(c(j.map(function(n){return{expression:n.join(""),table:o(n[0]),column:o(n[2])}}),E.map(function(n){return{expression:n,table:null,column:null}}),v.map(function(n){return{expression:n,table:null,column:o(n)}}),g.map(function(n){return{expression:n,table:null,column:null}}),b.map(function(n){return{expression:n,table:null,column:null}}),O.map(function(n){return{expression:n,table:null,column:null}})),r(p(h,y,r(p(h,x(function(){return k}).map(function(n){return n.expression})).map(i),null)).map(i),null)).map(function(n){return null!==n[1]?(n[0]=n[0].expression,{expression:n.join(""),table:null,column:null}):n[0]}),_=p(k,r(p(h,r(f(/AS\s/i)),c(v,g)).map(function(n){var e={};return e.alias=o(n[2]),e.expression=n.join(""),e}),null)).map(function(n){var e=n[0];return e.alias=null!==n[1]?n[1].alias:null,e.expression+=null!==n[1]?n[1].expression:"",e}),R=k.map(function(n){return n.expression}),I=p(c(j.map(i),v),r(p(h,r(f(/AS\s/i)),c(v,g)).map(function(n){return{alias:o(n[2]),expression:n.join("")}}),null)).map(function(n){var e={};return e.table=n[0],e.alias=null!==n[1]?n[1].alias:null,e.expression=n[0]+(null!==n[1]?n[1].expression:""),e}),N=p(r(p(f(/INNER|LEFT|RIGHT/i),d).map(function(n){return n[0].toLowerCase()}),null),f(/JOIN/i),h,a(I),h,f(/ON/i),h,a(k)).map(function(n){var e={};return e.type=n[0]||"inner",e.table=n[3].table,e.alias=n[3].alias,e.position=n[3].position,e.condition={expression:n[7].expression,position:n[7].position},e}),T=a(k).map(function(n){return{expression:n.expression,position:n.position}}),w=p(k,r(p(h,f(/ASC|DESC/i)),null)).map(function(n){return{expression:n[0].expression+(null!==n[1]?n[1].join(""):""),order:null!==n[1]?n[1][1]:"ASC",table:n[0].table,column:n[0].column}}),L=p(b,r(p(h,m(","),h,b),null)).map(function(n){return null===n[1]?{from:null,nb:parseInt(n[0],10)}:{from:parseInt(n[0],10),nb:parseInt(n[1][3],10)}}),S=c(j.map(function(n){return{expression:n.join(""),column:o(n[2])}}),v.map(function(n){return{expression:n,column:o(n)}})),A=k.map(function(n){return n.expression}),q=p(S,h,m("="),h,k).map(function(n){return{target:n[0],value:n[4].expression}}),D=p(p(R,h,m(","),h).map(i).many(),R.skip(h)).map(u),U=s(a(_)),M=s(a(I)),W=s(a(k)),z=s(a(w)),B=h.then(N).skip(h).many(),C=s(S),F=s(A),P=s(q),H=p(f(/SELECT/i).skip(h).then(r(U)),r(f(/FROM/i).skip(h).then(r(M)),[]),r(B),r(f(/WHERE/i).skip(h).then(r(T)),null),r(f(/\s?GROUP BY/i).skip(h).then(r(W))),r(f(/\s?ORDER BY/i).skip(h).then(r(z))),r(f(/\s?LIMIT/i).skip(h).then(r(L)),null)).map(function(n){return{type:"select",select:n[0],from:n[1],join:n[2],where:n[3],group:n[4],order:n[5],limit:n[6]}}),G=p(f(/INSERT INTO/i).skip(h).then(I),h,r(p(m("("),C,m(")")).map(function(n){return n[1]})),h,f(/VALUES\s?\(/i).skip(h).then(F),m(")")).map(function(n){for(var e=[],t=Math.max(n[2].length,n[4].length),r=0;t>r;++r)e[r]={target:n[2][r]||null,value:n[4][r]||null};return{type:"insert",into:n[0],values:e}}),J=p(f(/UPDATE/i).skip(h).then(I),h,f(/SET/i).skip(h).then(P),h,r(f(/WHERE/i).skip(h).then(r(T)),null)).map(function(n){return{type:"update",table:n[0],values:n[2],where:n[4]}}),Y=p(f(/DELETE FROM/i).skip(h).then(r(M)),r(f(/WHERE/i).skip(h).then(r(T)),null)).map(function(n){return{type:"delete",from:n[0],where:n[1]}}),V=c(H,G,J,Y);e.exports=function(n){var e=V.parse(n);return e.status===!1&&(e.error=l.formatError(n,e)),e}},{parsimmon:3}]},{},[1])(1)});