little_sql_client 0.1.1
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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +33 -0
- data/app/assets/javascripts/sql-formatter.min.js +2 -0
- data/app/controllers/little_sql_client/client_controller.rb +32 -0
- data/app/views/little_sql_client/client/index.html.erb +107 -0
- data/config/initializers/assets.rb +1 -0
- data/config/initializers/little_sql_client.rb +4 -0
- data/config/routes.rb +9 -0
- data/lib/generators/little_sql_client/install_generator.rb +14 -0
- data/lib/little_sql_client.rb +7 -0
- data/lib/little_sql_client/config.rb +14 -0
- data/lib/little_sql_client/engine.rb +8 -0
- data/lib/little_sql_client/version.rb +3 -0
- data/lib/tasks/little_sql_client_tasks.rake +4 -0
- metadata +93 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6cb3406764dd4113106be135401eaf69d532e3d6
|
4
|
+
data.tar.gz: e0b05908cc78e8426094d68f88211405a6c53c7b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 024a7bd25fbab0febae13ab0fa737a8f00e1cd3e71ec938b6acd838757ab453928e6222f06717a7bdffd90c07f03387332583a5884fc40d677afe6865fe78925
|
7
|
+
data.tar.gz: 3793f374ecc436ada63284d96e68804ba7452b0f17cdb420ff1561be6367a6350d4289b82d82cec20ca371a6260d6d18101396c4add15d00ea16e8bb11839636
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2018 纪亚荣
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# LittleSqlClient
|
2
|
+
Short description and motivation.
|
3
|
+
|
4
|
+
## Usage
|
5
|
+
How to use my plugin.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'little_sql_client'
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
```bash
|
16
|
+
$ bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
```bash
|
21
|
+
$ gem install little_sql_client
|
22
|
+
```
|
23
|
+
|
24
|
+
## Contributing
|
25
|
+
Contribution directions go here.
|
26
|
+
|
27
|
+
## License
|
28
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'LittleSqlClient'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.md')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
require 'bundler/gem_tasks'
|
23
|
+
|
24
|
+
require 'rake/testtask'
|
25
|
+
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
27
|
+
t.libs << 'test'
|
28
|
+
t.pattern = 'test/**/*_test.rb'
|
29
|
+
t.verbose = false
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
task default: :test
|
@@ -0,0 +1,2 @@
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sqlFormatter=t():e.sqlFormatter=t()}(this,function(){return function(e){function t(n){if(E[n])return E[n].exports;var r=E[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var E={};return t.m=e,t.c=E,t.p="",t(0)}([function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(25),o=n(r),T=E(26),R=n(T),i=E(27),u=n(i);t.default={format:function(e,t){switch(t=t||{},t.language){case"db2":return new o.default(t).format(e);case"n1ql":return new R.default(t).format(e);case"sql":case void 0:return new u.default(t).format(e);default:throw Error("Unsupported SQL dialect: "+t.language)}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,E){var n=E(13),r="object"==typeof self&&self&&self.Object===Object&&self,o=n||r||Function("return this")();e.exports=o},function(e,t,E){function n(e){return null==e?void 0===e?i:R:u&&u in Object(e)?o(e):T(e)}var r=E(10),o=E(48),T=E(57),R="[object Null]",i="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=n},function(e,t,E){function n(e,t){var E=o(e,t);return r(E)?E:void 0}var r=E(39),o=E(50);e.exports=n},function(e,t){function E(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=E},function(e,t){function E(e){return null!=e&&"object"==typeof e}e.exports=E},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(74),R=n(T),i=E(9),u=n(i),N=E(22),A=n(N),I=E(23),O=n(I),a=E(24),s=n(a),S=function(){function e(t,E){(0,o.default)(this,e),this.cfg=t||{},this.indentation=new A.default(this.cfg.indent),this.inlineBlock=new O.default,this.params=new s.default(this.cfg.params),this.tokenizer=E,this.previousReservedWord={}}return e.prototype.format=function(e){var t=this.tokenizer.tokenize(e),E=this.getFormattedQueryFromTokens(t);return E.trim()},e.prototype.getFormattedQueryFromTokens=function(e){var t=this,E="";return e.forEach(function(n,r){n.type!==u.default.WHITESPACE&&(n.type===u.default.LINE_COMMENT?E=t.formatLineComment(n,E):n.type===u.default.BLOCK_COMMENT?E=t.formatBlockComment(n,E):n.type===u.default.RESERVED_TOPLEVEL?(E=t.formatToplevelReservedWord(n,E),t.previousReservedWord=n):n.type===u.default.RESERVED_NEWLINE?(E=t.formatNewlineReservedWord(n,E),t.previousReservedWord=n):n.type===u.default.RESERVED?(E=t.formatWithSpaces(n,E),t.previousReservedWord=n):E=n.type===u.default.OPEN_PAREN?t.formatOpeningParentheses(e,r,E):n.type===u.default.CLOSE_PAREN?t.formatClosingParentheses(n,E):n.type===u.default.PLACEHOLDER?t.formatPlaceholder(n,E):","===n.value?t.formatComma(n,E):":"===n.value?t.formatWithSpaceAfter(n,E):"."===n.value||";"===n.value?t.formatWithoutSpaces(n,E):t.formatWithSpaces(n,E))}),E},e.prototype.formatLineComment=function(e,t){return this.addNewline(t+e.value)},e.prototype.formatBlockComment=function(e,t){return this.addNewline(this.addNewline(t)+this.indentComment(e.value))},e.prototype.indentComment=function(e){return e.replace(/\n/g,"\n"+this.indentation.getIndent())},e.prototype.formatToplevelReservedWord=function(e,t){return this.indentation.decreaseTopLevel(),t=this.addNewline(t),this.indentation.increaseToplevel(),t+=this.equalizeWhitespace(e.value),this.addNewline(t)},e.prototype.formatNewlineReservedWord=function(e,t){return this.addNewline(t)+this.equalizeWhitespace(e.value)+" "},e.prototype.equalizeWhitespace=function(e){return e.replace(/\s+/g," ")},e.prototype.formatOpeningParentheses=function(e,t,E){var n=e[t-1];return n&&n.type!==u.default.WHITESPACE&&n.type!==u.default.OPEN_PAREN&&(E=(0,R.default)(E)),E+=e[t].value,this.inlineBlock.beginIfPossible(e,t),this.inlineBlock.isActive()||(this.indentation.increaseBlockLevel(),E=this.addNewline(E)),E},e.prototype.formatClosingParentheses=function(e,t){return this.inlineBlock.isActive()?(this.inlineBlock.end(),this.formatWithSpaceAfter(e,t)):(this.indentation.decreaseBlockLevel(),this.formatWithSpaces(e,this.addNewline(t)))},e.prototype.formatPlaceholder=function(e,t){return t+this.params.get(e)+" "},e.prototype.formatComma=function(e,t){return t=(0,R.default)(t)+e.value+" ",this.inlineBlock.isActive()?t:/^LIMIT$/i.test(this.previousReservedWord.value)?t:this.addNewline(t)},e.prototype.formatWithSpaceAfter=function(e,t){return(0,R.default)(t)+e.value+" "},e.prototype.formatWithoutSpaces=function(e,t){return(0,R.default)(t)+e.value},e.prototype.formatWithSpaces=function(e,t){return t+e.value+" "},e.prototype.addNewline=function(e){return(0,R.default)(e)+"\n"+this.indentation.getIndent()},e}();t.default=S,e.exports=t.default},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(66),R=n(T),i=E(63),u=n(i),N=E(9),A=n(N),I=function(){function e(t){(0,o.default)(this,e),this.WHITESPACE_REGEX=/^(\s+)/,this.NUMBER_REGEX=/^((-\s*)?[0-9]+(\.[0-9]+)?|0x[0-9a-fA-F]+|0b[01]+)\b/,this.OPERATOR_REGEX=/^(!=|<>|==|<=|>=|!<|!>|\|\||::|->>|->|~~\*|~~|!~~\*|!~~|~\*|!~\*|!~|.)/,this.BLOCK_COMMENT_REGEX=/^(\/\*[^]*?(?:\*\/|$))/,this.LINE_COMMENT_REGEX=this.createLineCommentRegex(t.lineCommentTypes),this.RESERVED_TOPLEVEL_REGEX=this.createReservedWordRegex(t.reservedToplevelWords),this.RESERVED_NEWLINE_REGEX=this.createReservedWordRegex(t.reservedNewlineWords),this.RESERVED_PLAIN_REGEX=this.createReservedWordRegex(t.reservedWords),this.WORD_REGEX=this.createWordRegex(t.specialWordChars),this.STRING_REGEX=this.createStringRegex(t.stringTypes),this.OPEN_PAREN_REGEX=this.createParenRegex(t.openParens),this.CLOSE_PAREN_REGEX=this.createParenRegex(t.closeParens),this.INDEXED_PLACEHOLDER_REGEX=this.createPlaceholderRegex(t.indexedPlaceholderTypes,"[0-9]*"),this.IDENT_NAMED_PLACEHOLDER_REGEX=this.createPlaceholderRegex(t.namedPlaceholderTypes,"[a-zA-Z0-9._$]+"),this.STRING_NAMED_PLACEHOLDER_REGEX=this.createPlaceholderRegex(t.namedPlaceholderTypes,this.createStringPattern(t.stringTypes))}return e.prototype.createLineCommentRegex=function(e){return RegExp("^((?:"+e.map(function(e){return(0,u.default)(e)}).join("|")+").*?(?:\n|$))")},e.prototype.createReservedWordRegex=function(e){var t=e.join("|").replace(/ /g,"\\s+");return RegExp("^("+t+")\\b","i")},e.prototype.createWordRegex=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return RegExp("^([\\w"+e.join("")+"]+)")},e.prototype.createStringRegex=function(e){return RegExp("^("+this.createStringPattern(e)+")")},e.prototype.createStringPattern=function(e){var t={"``":"((`[^`]*($|`))+)","[]":"((\\[[^\\]]*($|\\]))(\\][^\\]]*($|\\]))*)",'""':'(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)',"''":"(('[^'\\\\]*(?:\\\\.[^'\\\\]*)*('|$))+)","N''":"((N'[^N'\\\\]*(?:\\\\.[^N'\\\\]*)*('|$))+)"};return e.map(function(e){return t[e]}).join("|")},e.prototype.createParenRegex=function(e){return RegExp("^("+e.map(function(e){return(0,u.default)(e)}).join("|")+")")},e.prototype.createPlaceholderRegex=function(e,t){if((0,R.default)(e))return!1;var E=e.map(u.default).join("|");return RegExp("^((?:"+E+")(?:"+t+"))")},e.prototype.tokenize=function(e){for(var t=[],E=void 0;e.length;)E=this.getNextToken(e,E),e=e.substring(E.value.length),t.push(E);return t},e.prototype.getNextToken=function(e,t){return this.getWhitespaceToken(e)||this.getCommentToken(e)||this.getStringToken(e)||this.getOpenParenToken(e)||this.getCloseParenToken(e)||this.getPlaceholderToken(e)||this.getNumberToken(e)||this.getReservedWordToken(e,t)||this.getWordToken(e)||this.getOperatorToken(e)},e.prototype.getWhitespaceToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.WHITESPACE,regex:this.WHITESPACE_REGEX})},e.prototype.getCommentToken=function(e){return this.getLineCommentToken(e)||this.getBlockCommentToken(e)},e.prototype.getLineCommentToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.LINE_COMMENT,regex:this.LINE_COMMENT_REGEX})},e.prototype.getBlockCommentToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.BLOCK_COMMENT,regex:this.BLOCK_COMMENT_REGEX})},e.prototype.getStringToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.STRING,regex:this.STRING_REGEX})},e.prototype.getOpenParenToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.OPEN_PAREN,regex:this.OPEN_PAREN_REGEX})},e.prototype.getCloseParenToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.CLOSE_PAREN,regex:this.CLOSE_PAREN_REGEX})},e.prototype.getPlaceholderToken=function(e){return this.getIdentNamedPlaceholderToken(e)||this.getStringNamedPlaceholderToken(e)||this.getIndexedPlaceholderToken(e)},e.prototype.getIdentNamedPlaceholderToken=function(e){return this.getPlaceholderTokenWithKey({input:e,regex:this.IDENT_NAMED_PLACEHOLDER_REGEX,parseKey:function(e){return e.slice(1)}})},e.prototype.getStringNamedPlaceholderToken=function(e){var t=this;return this.getPlaceholderTokenWithKey({input:e,regex:this.STRING_NAMED_PLACEHOLDER_REGEX,parseKey:function(e){return t.getEscapedPlaceholderKey({key:e.slice(2,-1),quoteChar:e.slice(-1)})}})},e.prototype.getIndexedPlaceholderToken=function(e){return this.getPlaceholderTokenWithKey({input:e,regex:this.INDEXED_PLACEHOLDER_REGEX,parseKey:function(e){return e.slice(1)}})},e.prototype.getPlaceholderTokenWithKey=function(e){var t=e.input,E=e.regex,n=e.parseKey,r=this.getTokenOnFirstMatch({input:t,regex:E,type:A.default.PLACEHOLDER});return r&&(r.key=n(r.value)),r},e.prototype.getEscapedPlaceholderKey=function(e){var t=e.key,E=e.quoteChar;return t.replace(RegExp((0,u.default)("\\")+E,"g"),E)},e.prototype.getNumberToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.NUMBER,regex:this.NUMBER_REGEX})},e.prototype.getOperatorToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.OPERATOR,regex:this.OPERATOR_REGEX})},e.prototype.getReservedWordToken=function(e,t){if(!t||!t.value||"."!==t.value)return this.getToplevelReservedToken(e)||this.getNewlineReservedToken(e)||this.getPlainReservedToken(e)},e.prototype.getToplevelReservedToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.RESERVED_TOPLEVEL,regex:this.RESERVED_TOPLEVEL_REGEX})},e.prototype.getNewlineReservedToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.RESERVED_NEWLINE,regex:this.RESERVED_NEWLINE_REGEX})},e.prototype.getPlainReservedToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.RESERVED,regex:this.RESERVED_PLAIN_REGEX})},e.prototype.getWordToken=function(e){return this.getTokenOnFirstMatch({input:e,type:A.default.WORD,regex:this.WORD_REGEX})},e.prototype.getTokenOnFirstMatch=function(e){var t=e.input,E=e.type,n=e.regex,r=t.match(n);if(r)return{type:E,value:r[1]}},e}();t.default=I,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default={WHITESPACE:"whitespace",WORD:"word",STRING:"string",RESERVED:"reserved",RESERVED_TOPLEVEL:"reserved-toplevel",RESERVED_NEWLINE:"reserved-newline",OPERATOR:"operator",OPEN_PAREN:"open-paren",CLOSE_PAREN:"close-paren",LINE_COMMENT:"line-comment",BLOCK_COMMENT:"block-comment",NUMBER:"number",PLACEHOLDER:"placeholder"},e.exports=t.default},function(e,t,E){var n=E(2),r=n.Symbol;e.exports=r},function(e,t,E){function n(e){return null==e?"":r(e)}var r=E(12);e.exports=n},function(e,t,E){function n(e){if("string"==typeof e)return e;if(T(e))return o(e,n)+"";if(R(e))return N?N.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}var r=E(10),o=E(33),T=E(16),R=E(20),i=1/0,u=r?r.prototype:void 0,N=u?u.toString:void 0;e.exports=n},function(e,t){(function(t){var E="object"==typeof t&&t&&t.Object===Object&&t;e.exports=E}).call(t,function(){return this}())},function(e,t){function E(e){var t=e&&e.constructor,E="function"==typeof t&&t.prototype||n;return e===E}var n=Object.prototype;e.exports=E},function(e,t){function E(e){if(null!=e){try{return r.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var n=Function.prototype,r=n.toString;e.exports=E},function(e,t){var E=Array.isArray;e.exports=E},function(e,t,E){function n(e){return null!=e&&o(e.length)&&!r(e)}var r=E(18),o=E(19);e.exports=n},function(e,t,E){function n(e){if(!o(e))return!1;var t=r(e);return t==R||t==i||t==T||t==u}var r=E(3),o=E(5),T="[object AsyncFunction]",R="[object Function]",i="[object GeneratorFunction]",u="[object Proxy]";e.exports=n},function(e,t){function E(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=E},function(e,t,E){function n(e){return"symbol"==typeof e||o(e)&&r(e)==T}var r=E(3),o=E(6),T="[object Symbol]";e.exports=n},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(69),R=n(T),i=E(68),u=n(i),N="top-level",A="block-level",I=function(){function e(t){(0,o.default)(this,e),this.indent=t||" ",this.indentTypes=[]}return e.prototype.getIndent=function(){return(0,R.default)(this.indent,this.indentTypes.length)},e.prototype.increaseToplevel=function(){this.indentTypes.push(N)},e.prototype.increaseBlockLevel=function(){this.indentTypes.push(A)},e.prototype.decreaseTopLevel=function(){(0,u.default)(this.indentTypes)===N&&this.indentTypes.pop()},e.prototype.decreaseBlockLevel=function(){for(;this.indentTypes.length>0;){var e=this.indentTypes.pop();if(e!==N)break}},e}();t.default=I,e.exports=t.default},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(9),R=n(T),i=50,u=function(){function e(){(0,o.default)(this,e),this.level=0}return e.prototype.beginIfPossible=function(e,t){0===this.level&&this.isInlineBlock(e,t)?this.level=1:this.level>0?this.level++:this.level=0},e.prototype.end=function(){this.level--},e.prototype.isActive=function(){return this.level>0},e.prototype.isInlineBlock=function(e,t){for(var E=0,n=0,r=t;e.length>r;r++){var o=e[r];if(E+=o.value.length,E>i)return!1;if(o.type===R.default.OPEN_PAREN)n++;else if(o.type===R.default.CLOSE_PAREN&&(n--,0===n))return!0;if(this.isForbiddenToken(o))return!1}return!1},e.prototype.isForbiddenToken=function(e){var t=e.type,E=e.value;return t===R.default.RESERVED_TOPLEVEL||t===R.default.RESERVED_NEWLINE||t===R.default.COMMENT||t===R.default.BLOCK_COMMENT||";"===E},e}();t.default=u,e.exports=t.default},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=function(){function e(t){(0,o.default)(this,e),this.params=t,this.index=0}return e.prototype.get=function(e){var t=e.key,E=e.value;return this.params?t?this.params[t]:this.params[this.index++]:E},e}();t.default=T,e.exports=t.default},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(7),R=n(T),i=E(8),u=n(i),N=["ABS","ACTIVATE","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","ANY","ARE","ARRAY","AS","ASC","ASENSITIVE","ASSOCIATE","ASUTIME","ASYMMETRIC","AT","ATOMIC","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","AVG","BEFORE","BEGIN","BETWEEN","BIGINT","BINARY","BLOB","BOOLEAN","BOTH","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CCSID","CEIL","CEILING","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CLOB","CLONE","CLOSE","CLUSTER","COALESCE","COLLATE","COLLECT","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","CONVERT","CORR","CORRESPONDING","COUNT","COUNT_BIG","COVAR_POP","COVAR_SAMP","CREATE","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DATE","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DEREF","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DOUBLE","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELEMENT","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPTION","EXCLUDING","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXP","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FILTER","FINAL","FIRST","FLOAT","FLOOR","FOR","FOREIGN","FREE","FULL","FUNCTION","FUSION","GENERAL","GENERATED","GET","GLOBAL","GOTO","GRANT","GRAPHIC","GROUP","GROUPING","HANDLER","HASH","HASHED_VALUE","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INT","INTEGER","INTEGRITY","INTERSECTION","INTERVAL","INTO","IS","ISOBID","ISOLATION","ITERATE","JAR","JAVA","KEEP","KEY","LABEL","LANGUAGE","LARGE","LATERAL","LC_CTYPE","LEADING","LEAVE","LEFT","LIKE","LINKTYPE","LN","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LONG","LOOP","LOWER","MAINTAINED","MATCH","MATERIALIZED","MAX","MAXVALUE","MEMBER","MERGE","METHOD","MICROSECOND","MICROSECONDS","MIN","MINUTE","MINUTES","MINVALUE","MOD","MODE","MODIFIES","MODULE","MONTH","MONTHS","MULTISET","NAN","NATIONAL","NATURAL","NCHAR","NCLOB","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZE","NORMALIZED","NOT","NULL","NULLIF","NULLS","NUMERIC","NUMPARTS","OBID","OCTET_LENGTH","OF","OFFSET","OLD","OLD_TABLE","ON","ONLY","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","ORDER","OUT","OUTER","OVER","OVERLAPS","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","PIECESIZE","PLAN","POSITION","POWER","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","REAL","RECOVERY","RECURSIVE","REF","REFERENCES","REFERENCING","REFRESH","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROLLUP","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCOPE","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SIGNAL","SIMILAR","SIMPLE","SMALLINT","SNAN","SOME","SOURCE","SPECIFIC","SPECIFICTYPE","SQL","SQLEXCEPTION","SQLID","SQLSTATE","SQLWARNING","SQRT","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STDDEV_POP","STDDEV_SAMP","STOGROUP","STORES","STYLE","SUBMULTISET","SUBSTRING","SUM","SUMMARY","SYMMETRIC","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","TABLESPACE","THEN","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSACTION","TRANSLATE","TRANSLATION","TREAT","TRIGGER","TRIM","TRUE","TRUNCATE","TYPE","UESCAPE","UNDO","UNIQUE","UNKNOWN","UNNEST","UNTIL","UPPER","USAGE","USER","USING","VALIDPROC","VALUE","VARCHAR","VARIABLE","VARIANT","VARYING","VAR_POP","VAR_SAMP","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHILE","WIDTH_BUCKET","WINDOW","WITH","WITHIN","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],A=["ADD","AFTER","ALTER COLUMN","ALTER TABLE","DELETE FROM","EXCEPT","FETCH FIRST","FROM","GROUP BY","GO","HAVING","INSERT INTO","INTERSECT","LIMIT","ORDER BY","SELECT","SET CURRENT SCHEMA","SET SCHEMA","SET","UNION ALL","UPDATE","VALUES","WHERE"],I=["AND","CROSS JOIN","INNER JOIN","JOIN","LEFT JOIN","LEFT OUTER JOIN","OR","OUTER JOIN","RIGHT JOIN","RIGHT OUTER JOIN"],O=void 0,a=function(){function e(t){(0,o.default)(this,e),this.cfg=t}return e.prototype.format=function(e){return O||(O=new u.default({reservedWords:N,reservedToplevelWords:A,reservedNewlineWords:I,stringTypes:['""',"''","``","[]"],openParens:["("],closeParens:[")"],indexedPlaceholderTypes:["?"],namedPlaceholderTypes:[":"],lineCommentTypes:["--"],specialWordChars:["#","@"]})),new R.default(this.cfg,O).format(e)},e}();t.default=a,e.exports=t.default},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(7),R=n(T),i=E(8),u=n(i),N=["ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","CONNECT","CONTINUE","CORRELATE","COVER","CREATE","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FIRST","FLATTEN","FOR","FORCE","FROM","FUNCTION","GRANT","GROUP","GSI","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LAST","LEFT","LET","LETTING","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NOT","NULL","NUMBER","OBJECT","OFFSET","ON","OPTION","OR","ORDER","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROCEDURE","PUBLIC","RAW","REALM","REDUCE","RENAME","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","SATISFIES","SCHEMA","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TO","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WITH","WITHIN","WORK","XOR"],A=["DELETE FROM","EXCEPT ALL","EXCEPT","EXPLAIN DELETE FROM","EXPLAIN UPDATE","EXPLAIN UPSERT","FROM","GROUP BY","HAVING","INFER","INSERT INTO","INTERSECT ALL","INTERSECT","LET","LIMIT","MERGE","NEST","ORDER BY","PREPARE","SELECT","SET CURRENT SCHEMA","SET SCHEMA","SET","UNION ALL","UNION","UNNEST","UPDATE","UPSERT","USE KEYS","VALUES","WHERE"],I=["AND","INNER JOIN","JOIN","LEFT JOIN","LEFT OUTER JOIN","OR","OUTER JOIN","RIGHT JOIN","RIGHT OUTER JOIN","XOR"],O=void 0,a=function(){function e(t){(0,o.default)(this,e),this.cfg=t}return e.prototype.format=function(e){return O||(O=new u.default({reservedWords:N,reservedToplevelWords:A,reservedNewlineWords:I,stringTypes:['""',"''","``"],openParens:["(","[","{"],closeParens:[")","]","}"],namedPlaceholderTypes:["$"],lineCommentTypes:["#","--"]})),new R.default(this.cfg,O).format(e)},e}();t.default=a,e.exports=t.default},function(e,t,E){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=E(1),o=n(r),T=E(7),R=n(T),i=E(8),u=n(i),N=["ACCESSIBLE","ACTION","AGAINST","AGGREGATE","ALGORITHM","ALL","ALTER","ANALYSE","ANALYZE","AS","ASC","AUTOCOMMIT","AUTO_INCREMENT","BACKUP","BEGIN","BETWEEN","BINLOG","BOTH","CASCADE","CASE","CHANGE","CHANGED","CHARACTER SET","CHARSET","CHECK","CHECKSUM","COLLATE","COLLATION","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPRESSED","CONCURRENT","CONSTRAINT","CONTAINS","CONVERT","CREATE","CROSS","CURRENT_TIMESTAMP","DATABASE","DATABASES","DAY","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DEFAULT","DEFINER","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO","DROP","DUMPFILE","DUPLICATE","DYNAMIC","ELSE","ENCLOSED","END","ENGINE","ENGINES","ENGINE_TYPE","ESCAPE","ESCAPED","EVENTS","EXEC","EXECUTE","EXISTS","EXPLAIN","EXTENDED","FAST","FETCH","FIELDS","FILE","FIRST","FIXED","FLUSH","FOR","FORCE","FOREIGN","FULL","FULLTEXT","FUNCTION","GLOBAL","GRANT","GRANTS","GROUP_CONCAT","HEAP","HIGH_PRIORITY","HOSTS","HOUR","HOUR_MINUTE","HOUR_SECOND","IDENTIFIED","IF","IFNULL","IGNORE","IN","INDEX","INDEXES","INFILE","INSERT","INSERT_ID","INSERT_METHOD","INTERVAL","INTO","INVOKER","IS","ISOLATION","KEY","KEYS","KILL","LAST_INSERT_ID","LEADING","LEVEL","LIKE","LINEAR","LINES","LOAD","LOCAL","LOCK","LOCKS","LOGS","LOW_PRIORITY","MARIA","MASTER","MASTER_CONNECT_RETRY","MASTER_HOST","MASTER_LOG_FILE","MATCH","MAX_CONNECTIONS_PER_HOUR","MAX_QUERIES_PER_HOUR","MAX_ROWS","MAX_UPDATES_PER_HOUR","MAX_USER_CONNECTIONS","MEDIUM","MERGE","MINUTE","MINUTE_SECOND","MIN_ROWS","MODE","MODIFY","MONTH","MRG_MYISAM","MYISAM","NAMES","NATURAL","NOT","NOW()","NULL","OFFSET","ON DELETE","ON UPDATE","ON","ONLY","OPEN","OPTIMIZE","OPTION","OPTIONALLY","OUTFILE","PACK_KEYS","PAGE","PARTIAL","PARTITION","PARTITIONS","PASSWORD","PRIMARY","PRIVILEGES","PROCEDURE","PROCESS","PROCESSLIST","PURGE","QUICK","RAID0","RAID_CHUNKS","RAID_CHUNKSIZE","RAID_TYPE","RANGE","READ","READ_ONLY","READ_WRITE","REFERENCES","REGEXP","RELOAD","RENAME","REPAIR","REPEATABLE","REPLACE","REPLICATION","RESET","RESTORE","RESTRICT","RETURN","RETURNS","REVOKE","RLIKE","ROLLBACK","ROW","ROWS","ROW_FORMAT","SECOND","SECURITY","SEPARATOR","SERIALIZABLE","SESSION","SHARE","SHOW","SHUTDOWN","SLAVE","SONAME","SOUNDS","SQL","SQL_AUTO_IS_NULL","SQL_BIG_RESULT","SQL_BIG_SELECTS","SQL_BIG_TABLES","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQL_LOG_BIN","SQL_LOG_OFF","SQL_LOG_UPDATE","SQL_LOW_PRIORITY_UPDATES","SQL_MAX_JOIN_SIZE","SQL_NO_CACHE","SQL_QUOTE_SHOW_CREATE","SQL_SAFE_UPDATES","SQL_SELECT_LIMIT","SQL_SLAVE_SKIP_COUNTER","SQL_SMALL_RESULT","SQL_WARNINGS","START","STARTING","STATUS","STOP","STORAGE","STRAIGHT_JOIN","STRING","STRIPED","SUPER","TABLE","TABLES","TEMPORARY","TERMINATED","THEN","TO","TRAILING","TRANSACTIONAL","TRUE","TRUNCATE","TYPE","TYPES","UNCOMMITTED","UNIQUE","UNLOCK","UNSIGNED","USAGE","USE","USING","VARIABLES","VIEW","WHEN","WITH","WORK","WRITE","YEAR_MONTH"],A=["ADD","AFTER","ALTER COLUMN","ALTER TABLE","DELETE FROM","EXCEPT","FETCH FIRST","FROM","GROUP BY","GO","HAVING","INSERT INTO","INSERT","INTERSECT","LIMIT","MODIFY","ORDER BY","SELECT","SET CURRENT SCHEMA","SET SCHEMA","SET","UNION ALL","UNION","UPDATE","VALUES","WHERE"],I=["AND","CROSS APPLY","CROSS JOIN","INNER JOIN","JOIN","LEFT JOIN","LEFT OUTER JOIN","OR","OUTER APPLY","OUTER JOIN","RIGHT JOIN","RIGHT OUTER JOIN","XOR"],O=void 0,a=function(){function e(t){(0,o.default)(this,e),this.cfg=t}return e.prototype.format=function(e){return O||(O=new u.default({reservedWords:N,reservedToplevelWords:A,reservedNewlineWords:I,stringTypes:['""',"N''","''","``","[]"],openParens:["("],closeParens:[")"],indexedPlaceholderTypes:["?"],namedPlaceholderTypes:["@",":"],lineCommentTypes:["#","--"]})),new R.default(this.cfg,O).format(e)},e}();t.default=a,e.exports=t.default},function(e,t,E){var n=E(4),r=E(2),o=n(r,"DataView");e.exports=o},function(e,t,E){var n=E(4),r=E(2),o=n(r,"Map");e.exports=o},function(e,t,E){var n=E(4),r=E(2),o=n(r,"Promise");e.exports=o},function(e,t,E){var n=E(4),r=E(2),o=n(r,"Set");e.exports=o},function(e,t,E){var n=E(4),r=E(2),o=n(r,"WeakMap");e.exports=o},function(e,t){function E(e,t){for(var E=-1,n=null==e?0:e.length,r=Array(n);++E<n;)r[E]=t(e[E],E,e);return r}e.exports=E},function(e,t){function E(e){return e.split("")}e.exports=E},function(e,t){function E(e,t,E,n){for(var r=e.length,o=E+(n?1:-1);n?o--:++o<r;)if(t(e[o],o,e))return o;return-1}e.exports=E},function(e,t,E){function n(e,t,E){return t===t?T(e,t,E):r(e,o,E)}var r=E(35),o=E(38),T=E(59);e.exports=n},function(e,t,E){function n(e){return o(e)&&r(e)==T}var r=E(3),o=E(6),T="[object Arguments]";e.exports=n},function(e,t){function E(e){return e!==e}e.exports=E},function(e,t,E){function n(e){if(!T(e)||o(e))return!1;var t=r(e)?a:u;return t.test(R(e))}var r=E(18),o=E(54),T=E(5),R=E(15),i=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,N=Function.prototype,A=Object.prototype,I=N.toString,O=A.hasOwnProperty,a=RegExp("^"+I.call(O).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=n},function(e,t,E){function n(e){return T(e)&&o(e.length)&&!!y[r(e)]}var r=E(3),o=E(19),T=E(6),R="[object Arguments]",i="[object Array]",u="[object Boolean]",N="[object Date]",A="[object Error]",I="[object Function]",O="[object Map]",a="[object Number]",s="[object Object]",S="[object RegExp]",c="[object Set]",f="[object String]",L="[object WeakMap]",p="[object ArrayBuffer]",l="[object DataView]",C="[object Float32Array]",d="[object Float64Array]",P="[object Int8Array]",D="[object Int16Array]",M="[object Int32Array]",U="[object Uint8Array]",_="[object Uint8ClampedArray]",h="[object Uint16Array]",v="[object Uint32Array]",y={};y[C]=y[d]=y[P]=y[D]=y[M]=y[U]=y[_]=y[h]=y[v]=!0,y[R]=y[i]=y[p]=y[u]=y[l]=y[N]=y[A]=y[I]=y[O]=y[a]=y[s]=y[S]=y[c]=y[f]=y[L]=!1,e.exports=n},function(e,t,E){function n(e){if(!r(e))return o(e);var t=[];for(var E in Object(e))R.call(e,E)&&"constructor"!=E&&t.push(E);return t}var r=E(14),o=E(55),T=Object.prototype,R=T.hasOwnProperty;e.exports=n},function(e,t){function E(e,t){var E="";if(!e||1>t||t>n)return E;do t%2&&(E+=e),t=r(t/2),t&&(e+=e);while(t);return E}var n=9007199254740991,r=Math.floor;e.exports=E},function(e,t){function E(e,t,E){var n=-1,r=e.length;0>t&&(t=-t>r?0:r+t),E=E>r?r:E,0>E&&(E+=r),r=t>E?0:E-t>>>0,t>>>=0;for(var o=Array(r);++n<r;)o[n]=e[n+t];return o}e.exports=E},function(e,t){function E(e){return function(t){return e(t)}}e.exports=E},function(e,t,E){function n(e,t,E){var n=e.length;return E=void 0===E?n:E,t||n>E?r(e,t,E):e}var r=E(43);e.exports=n},function(e,t,E){function n(e,t){for(var E=e.length;E--&&r(t,e[E],0)>-1;);return E}var r=E(36);e.exports=n},function(e,t,E){var n=E(2),r=n["__core-js_shared__"];e.exports=r},function(e,t,E){function n(e){var t=T.call(e,i),E=e[i];try{e[i]=void 0;var n=!0}catch(e){}var r=R.call(e);return n&&(t?e[i]=E:delete e[i]),r}var r=E(10),o=Object.prototype,T=o.hasOwnProperty,R=o.toString,i=r?r.toStringTag:void 0;e.exports=n},function(e,t,E){var n=E(28),r=E(29),o=E(30),T=E(31),R=E(32),i=E(3),u=E(15),N="[object Map]",A="[object Object]",I="[object Promise]",O="[object Set]",a="[object WeakMap]",s="[object DataView]",S=u(n),c=u(r),f=u(o),L=u(T),p=u(R),l=i;(n&&l(new n(new ArrayBuffer(1)))!=s||r&&l(new r)!=N||o&&l(o.resolve())!=I||T&&l(new T)!=O||R&&l(new R)!=a)&&(l=function(e){var t=i(e),E=t==A?e.constructor:void 0,n=E?u(E):"";if(n)switch(n){case S:return s;case c:return N;case f:return I;case L:return O;case p:return a}return t}),e.exports=l},function(e,t){function E(e,t){return null==e?void 0:e[t]}e.exports=E},function(e,t){function E(e){return N.test(e)}var n="\\ud800-\\udfff",r="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",T="\\u20d0-\\u20ff",R=r+o+T,i="\\ufe0e\\ufe0f",u="\\u200d",N=RegExp("["+u+n+R+i+"]");e.exports=E},function(e,t){function E(e,t){var E=typeof e;return t=null==t?n:t,!!t&&("number"==E||"symbol"!=E&&r.test(e))&&e>-1&&e%1==0&&t>e}var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=E},function(e,t,E){function n(e,t,E){if(!R(E))return!1;var n=typeof t;return!!("number"==n?o(E)&&T(t,E.length):"string"==n&&t in E)&&r(E[t],e)}var r=E(62),o=E(17),T=E(52),R=E(5);e.exports=n},function(e,t,E){function n(e){return!!o&&o in e}var r=E(47),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=n},function(e,t,E){var n=E(58),r=n(Object.keys,Object);
|
2
|
+
e.exports=r},function(e,t,E){(function(e){var n=E(13),r="object"==typeof t&&t&&!t.nodeType&&t,o=r&&"object"==typeof e&&e&&!e.nodeType&&e,T=o&&o.exports===r,R=T&&n.process,i=function(){try{return R&&R.binding&&R.binding("util")}catch(e){}}();e.exports=i}).call(t,E(21)(e))},function(e,t){function E(e){return r.call(e)}var n=Object.prototype,r=n.toString;e.exports=E},function(e,t){function E(e,t){return function(E){return e(t(E))}}e.exports=E},function(e,t){function E(e,t,E){for(var n=E-1,r=e.length;++n<r;)if(e[n]===t)return n;return-1}e.exports=E},function(e,t,E){function n(e){return o(e)?T(e):r(e)}var r=E(34),o=E(51),T=E(61);e.exports=n},function(e,t){function E(e){return e.match(C)||[]}var n="\\ud800-\\udfff",r="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",T="\\u20d0-\\u20ff",R=r+o+T,i="\\ufe0e\\ufe0f",u="["+n+"]",N="["+R+"]",A="\\ud83c[\\udffb-\\udfff]",I="(?:"+N+"|"+A+")",O="[^"+n+"]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",S="\\u200d",c=I+"?",f="["+i+"]?",L="(?:"+S+"(?:"+[O,a,s].join("|")+")"+f+c+")*",p=f+c+L,l="(?:"+[O+N+"?",N,a,s,u].join("|")+")",C=RegExp(A+"(?="+A+")|"+l+p,"g");e.exports=E},function(e,t){function E(e,t){return e===t||e!==e&&t!==t}e.exports=E},function(e,t,E){function n(e){return e=r(e),e&&T.test(e)?e.replace(o,"\\$&"):e}var r=E(11),o=/[\\^$.*+?()[\]{}|]/g,T=RegExp(o.source);e.exports=n},function(e,t,E){var n=E(37),r=E(6),o=Object.prototype,T=o.hasOwnProperty,R=o.propertyIsEnumerable,i=n(function(){return arguments}())?n:function(e){return r(e)&&T.call(e,"callee")&&!R.call(e,"callee")};e.exports=i},function(e,t,E){(function(e){var n=E(2),r=E(70),o="object"==typeof t&&t&&!t.nodeType&&t,T=o&&"object"==typeof e&&e&&!e.nodeType&&e,R=T&&T.exports===o,i=R?n.Buffer:void 0,u=i?i.isBuffer:void 0,N=u||r;e.exports=N}).call(t,E(21)(e))},function(e,t,E){function n(e){if(null==e)return!0;if(i(e)&&(R(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||A(e)||T(e)))return!e.length;var t=o(e);if(t==I||t==O)return!e.size;if(N(e))return!r(e).length;for(var E in e)if(s.call(e,E))return!1;return!0}var r=E(41),o=E(49),T=E(64),R=E(16),i=E(17),u=E(65),N=E(14),A=E(67),I="[object Map]",O="[object Set]",a=Object.prototype,s=a.hasOwnProperty;e.exports=n},function(e,t,E){var n=E(40),r=E(44),o=E(56),T=o&&o.isTypedArray,R=T?r(T):n;e.exports=R},function(e,t){function E(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}e.exports=E},function(e,t,E){function n(e,t,E){return t=(E?o(e,t,E):void 0===t)?1:T(t),r(R(e),t)}var r=E(42),o=E(53),T=E(72),R=E(11);e.exports=n},function(e,t){function E(){return!1}e.exports=E},function(e,t,E){function n(e){if(!e)return 0===e?e:0;if(e=r(e),e===o||e===-o){var t=0>e?-1:1;return t*T}return e===e?e:0}var r=E(73),o=1/0,T=1.7976931348623157e308;e.exports=n},function(e,t,E){function n(e){var t=r(e),E=t%1;return t===t?E?t-E:t:0}var r=E(71);e.exports=n},function(e,t,E){function n(e){if("number"==typeof e)return e;if(o(e))return T;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(R,"");var E=u.test(e);return E||N.test(e)?A(e.slice(2),E?2:8):i.test(e)?T:+e}var r=E(5),o=E(20),T=NaN,R=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,N=/^0o[0-7]+$/i,A=parseInt;e.exports=n},function(e,t,E){function n(e,t,E){if(e=i(e),e&&(E||void 0===t))return e.replace(u,"");if(!e||!(t=r(t)))return e;var n=R(e),N=T(n,R(t))+1;return o(n,0,N).join("")}var r=E(12),o=E(45),T=E(46),R=E(60),i=E(11),u=/\s+$/;e.exports=n}])});
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module LittleSqlClient
|
2
|
+
class ClientController < ActionController::Base
|
3
|
+
before_action :check_ip, if: -> () {Rails.env == 'production'}
|
4
|
+
|
5
|
+
def index
|
6
|
+
search
|
7
|
+
end
|
8
|
+
|
9
|
+
def search
|
10
|
+
params[:limit_number] = 200 if params[:limit_number].blank?
|
11
|
+
params[:limit_number] = 1000 if params[:limit_number].to_i > 1000
|
12
|
+
|
13
|
+
(render :text=>"<script>alert('Illegal operate:delete,update,drop,alter,modify,create!');history.back()</script>"; return) if params[:sql_text]&¶ms[:sql_text]=~/^(update|create|alter|modify|drop|delete)/
|
14
|
+
|
15
|
+
@total_number = params[:sql_text].blank? ? 0 : ActiveRecord::Base.connection.select_all("select count(*) from (#{params[:sql_text]}) as must_has_alias").rows.first.first
|
16
|
+
@results = params[:sql_text].blank? ? nil : ActiveRecord::Base.connection.select_all("select * from (#{params[:sql_text]}) as must_has_alias limit #{params[:limit_number]}")
|
17
|
+
render template: "little_sql_client/client/index"
|
18
|
+
rescue => e
|
19
|
+
@total_number = 0
|
20
|
+
@results = nil
|
21
|
+
@error = e.message
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def check_ip
|
27
|
+
redirect_to "/" unless LittleSqlClient::Config.ip_white_list.include?(request.ip)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
<style>
|
2
|
+
table,table tr th, table tr td {
|
3
|
+
border:1px solid black;
|
4
|
+
}
|
5
|
+
|
6
|
+
.btn {
|
7
|
+
background-color: #3bb3e0;
|
8
|
+
padding: 10px;
|
9
|
+
position: relative;
|
10
|
+
font-family: 'Open Sans', sans-serif;
|
11
|
+
font-size: 12px;
|
12
|
+
text-decoration: none;
|
13
|
+
color: #fff;
|
14
|
+
border: solid 1px #186f8f;
|
15
|
+
border-radius: 5px;
|
16
|
+
}
|
17
|
+
|
18
|
+
.text-area-format {
|
19
|
+
width: 100%;
|
20
|
+
height: 300px;
|
21
|
+
font-size: 20px;
|
22
|
+
}
|
23
|
+
|
24
|
+
.container_area {
|
25
|
+
display: flex;
|
26
|
+
}
|
27
|
+
|
28
|
+
.area {
|
29
|
+
flex: 1;
|
30
|
+
|
31
|
+
}
|
32
|
+
</style>
|
33
|
+
|
34
|
+
|
35
|
+
<script
|
36
|
+
src="http://code.jquery.com/jquery-3.1.0.min.js"
|
37
|
+
integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s="
|
38
|
+
crossorigin="anonymous"></script>
|
39
|
+
<%= javascript_include_tag "sql-formatter.min.js" %>
|
40
|
+
|
41
|
+
<div>
|
42
|
+
<%= form_tag search_client_index_path do %>
|
43
|
+
<div style="width: 100%" class="container_area">
|
44
|
+
<div class="area">
|
45
|
+
<%= text_area_tag "sql_text", params[:sql_text], class: "text-area-format" %>
|
46
|
+
</div>
|
47
|
+
<div class="">
|
48
|
+
<%= submit_tag "query", class: "btn text-area-format" %>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
limit number
|
52
|
+
<%= number_field_tag "limit_number", params[:limit_number].to_i , style: "width: auto"%>
|
53
|
+
<% end %>
|
54
|
+
|
55
|
+
<% if @error.present? %>
|
56
|
+
<%= "error:: #{@error}" %>
|
57
|
+
<% end %>
|
58
|
+
|
59
|
+
<% if @results.blank? %>
|
60
|
+
No data
|
61
|
+
<% else %>
|
62
|
+
<%= "total #{@total_number}" %>
|
63
|
+
<table>
|
64
|
+
<tr>
|
65
|
+
<% @results.columns.each do |column| %>
|
66
|
+
<td>
|
67
|
+
<b>
|
68
|
+
<%= column %>
|
69
|
+
</b>
|
70
|
+
</td>
|
71
|
+
<% end %>
|
72
|
+
</tr>
|
73
|
+
<% @results.rows.each do |row| %>
|
74
|
+
<tr>
|
75
|
+
<% row.each do |record| %>
|
76
|
+
<td>
|
77
|
+
<%= record %>
|
78
|
+
</td>
|
79
|
+
<% end %>
|
80
|
+
</tr>
|
81
|
+
<% end %>
|
82
|
+
</table>
|
83
|
+
<% end %>
|
84
|
+
</div>
|
85
|
+
|
86
|
+
<script type="text/javascript" charset="utf-8">
|
87
|
+
function formatSql() {
|
88
|
+
$("#sql_text").val(sqlFormatter.format($("#sql_text").val()))
|
89
|
+
}
|
90
|
+
|
91
|
+
$(document).ready(function () {
|
92
|
+
formatSql();
|
93
|
+
|
94
|
+
$("#sql_text").keyup(function(event) {
|
95
|
+
last = event.timeStamp;
|
96
|
+
if (event.keyCode !== 32 && event.keyCode !== 13 ) {
|
97
|
+
setTimeout(function () {
|
98
|
+
if (last - event.timeStamp === 0) {
|
99
|
+
formatSql()
|
100
|
+
}
|
101
|
+
}, 500);
|
102
|
+
}
|
103
|
+
});
|
104
|
+
|
105
|
+
})
|
106
|
+
|
107
|
+
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails.application.config.assets.precompile += %w( sql-formatter.min.js )
|
data/config/routes.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
module LittleSqlClient
|
3
|
+
module Generators
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
desc "Create LittleSqlClient's base files"
|
6
|
+
source_root File.expand_path('../../../../', __FILE__)
|
7
|
+
|
8
|
+
def add_initializer
|
9
|
+
template 'config/initializers/little_sql_client.rb', 'config/initializers/little_sql_client.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: little_sql_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- 纪亚荣
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.2'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '4.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.2'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: sqlite3
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
description: 用于给项目创建一个sql控制台
|
48
|
+
email:
|
49
|
+
- 583255925@qq.com
|
50
|
+
executables: []
|
51
|
+
extensions: []
|
52
|
+
extra_rdoc_files: []
|
53
|
+
files:
|
54
|
+
- MIT-LICENSE
|
55
|
+
- README.md
|
56
|
+
- Rakefile
|
57
|
+
- app/assets/javascripts/sql-formatter.min.js
|
58
|
+
- app/controllers/little_sql_client/client_controller.rb
|
59
|
+
- app/views/little_sql_client/client/index.html.erb
|
60
|
+
- config/initializers/assets.rb
|
61
|
+
- config/initializers/little_sql_client.rb
|
62
|
+
- config/routes.rb
|
63
|
+
- lib/generators/little_sql_client/install_generator.rb
|
64
|
+
- lib/little_sql_client.rb
|
65
|
+
- lib/little_sql_client/config.rb
|
66
|
+
- lib/little_sql_client/engine.rb
|
67
|
+
- lib/little_sql_client/version.rb
|
68
|
+
- lib/tasks/little_sql_client_tasks.rake
|
69
|
+
homepage: https://github.com/jiyarong/little_sql_client.git
|
70
|
+
licenses:
|
71
|
+
- MIT
|
72
|
+
metadata: {}
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
requirements: []
|
88
|
+
rubyforge_project:
|
89
|
+
rubygems_version: 2.6.12
|
90
|
+
signing_key:
|
91
|
+
specification_version: 4
|
92
|
+
summary: 一个sql客户端
|
93
|
+
test_files: []
|