squel 5.5.0 → 5.8.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.
- package/CHANGELOG.md +13 -0
- package/README.md +6 -3
- package/dist/squel-basic.js +75 -44
- package/dist/squel-basic.min.js +2 -2
- package/dist/squel.js +165 -62
- package/dist/squel.min.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog for [squel](https://github.com/hiddentao/squel)
|
|
2
2
|
|
|
3
|
+
## 28 Feb 2016 (5.8.0)
|
|
4
|
+
* #301 - Add `rstr()` to enable "raw" nesting of query builders
|
|
5
|
+
* Renamed `_isSquelBuilder()` call to `isSquelBuilder()`
|
|
6
|
+
|
|
7
|
+
## 6 Feb 2016 (5.7.0)
|
|
8
|
+
* #288 - more flexible `RETURNING` clauses
|
|
9
|
+
|
|
10
|
+
## 7 Jan 2016 (5.6.0)
|
|
11
|
+
* #256 - expression nesting
|
|
12
|
+
|
|
13
|
+
## 24 Dec 2016 (5.5.1)
|
|
14
|
+
* #255, #283 - mixing flavours
|
|
15
|
+
|
|
3
16
|
## 15 Oct 2016 (5.5.0)
|
|
4
17
|
* #118 - pass extra formatting options (when available) to custom value handler
|
|
5
18
|
* #273 - parameterized `LIMIT` and `OFFSET` queries
|
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# squel - SQL query string builder
|
|
2
2
|
|
|
3
|
-
[](http://travis-ci.org/hiddentao/squel)
|
|
4
|
+
[](https://cdnjs.com/libraries/squel)
|
|
5
|
+
[](https://badge.fury.io/js/squel)
|
|
5
6
|
[](https://www.npmjs.com/package/squel)
|
|
6
|
-
[](https://discord.gg/PBAR2Bz)
|
|
7
8
|
[](https://twitter.com/hiddentao)
|
|
8
9
|
|
|
9
10
|
A flexible and powerful SQL query string builder for Javascript.
|
|
@@ -25,6 +26,8 @@ Full documentation (guide and API) at [http://squeljs.org/](http://squeljs.org/)
|
|
|
25
26
|
|
|
26
27
|
**WARNING: Do not ever pass queries generated on the client side to your web server for execution.** Such a configuration would make it trivial for a casual attacker to execute arbitrary queries—as with an SQL-injection vector, but much easier to exploit and practically impossible to protect against.
|
|
27
28
|
|
|
29
|
+
_Note: See CHANGELOG.md for latest changes_
|
|
30
|
+
|
|
28
31
|
## Installation
|
|
29
32
|
|
|
30
33
|
Install using [npm](http://npmjs.org/):
|
package/dist/squel-basic.js
CHANGED
|
@@ -82,17 +82,6 @@ function _isArray(obj) {
|
|
|
82
82
|
return obj && obj.constructor.prototype === Array.prototype;
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
// get class name of given object
|
|
86
|
-
function _getObjectClassName(obj) {
|
|
87
|
-
if (obj && obj.constructor && obj.constructor.toString) {
|
|
88
|
-
var arr = obj.constructor.toString().match(/function\s*(\w+)/);
|
|
89
|
-
|
|
90
|
-
if (arr && 2 === arr.length) {
|
|
91
|
-
return arr[1];
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
85
|
// clone given item
|
|
97
86
|
function _clone(src) {
|
|
98
87
|
if (!src) {
|
|
@@ -239,7 +228,15 @@ function _buildSquel() {
|
|
|
239
228
|
var flavour = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];
|
|
240
229
|
|
|
241
230
|
var cls = {
|
|
242
|
-
|
|
231
|
+
// Get whether obj is a query builder
|
|
232
|
+
isSquelBuilder: function isSquelBuilder(obj) {
|
|
233
|
+
return obj && !!obj._toParamString;
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// Get whether nesting should be applied for given item
|
|
238
|
+
var _shouldApplyNesting = function _shouldApplyNesting(obj) {
|
|
239
|
+
return !cls.isSquelBuilder(obj) || !obj.options.rawNesting;
|
|
243
240
|
};
|
|
244
241
|
|
|
245
242
|
// default query builder options
|
|
@@ -275,7 +272,9 @@ function _buildSquel() {
|
|
|
275
272
|
// String used to join individual blocks in a query when it's stringified
|
|
276
273
|
separator: ' ',
|
|
277
274
|
// Function for formatting string values prior to insertion into query string
|
|
278
|
-
stringFormatter: null
|
|
275
|
+
stringFormatter: null,
|
|
276
|
+
// Whether to prevent the addition of brackets () when nesting this query builder's output
|
|
277
|
+
rawNesting: false
|
|
279
278
|
};
|
|
280
279
|
|
|
281
280
|
// Global custom value handlers for all instances of builder
|
|
@@ -367,7 +366,7 @@ function _buildSquel() {
|
|
|
367
366
|
key: '_sanitizeExpression',
|
|
368
367
|
value: function _sanitizeExpression(expr) {
|
|
369
368
|
// If it's not a base builder instance
|
|
370
|
-
if (!(expr
|
|
369
|
+
if (!cls.isSquelBuilder(expr)) {
|
|
371
370
|
// It must then be a string
|
|
372
371
|
if (typeof expr !== "string") {
|
|
373
372
|
throw new Error("expression must be a string or builder instance");
|
|
@@ -395,7 +394,7 @@ function _buildSquel() {
|
|
|
395
394
|
}, {
|
|
396
395
|
key: '_sanitizeField',
|
|
397
396
|
value: function _sanitizeField(item) {
|
|
398
|
-
if (!(item
|
|
397
|
+
if (!cls.isSquelBuilder(item)) {
|
|
399
398
|
item = this._sanitizeName(item, "field name");
|
|
400
399
|
}
|
|
401
400
|
|
|
@@ -404,7 +403,7 @@ function _buildSquel() {
|
|
|
404
403
|
}, {
|
|
405
404
|
key: '_sanitizeBaseBuilder',
|
|
406
405
|
value: function _sanitizeBaseBuilder(item) {
|
|
407
|
-
if (
|
|
406
|
+
if (cls.isSquelBuilder(item)) {
|
|
408
407
|
return item;
|
|
409
408
|
}
|
|
410
409
|
|
|
@@ -461,7 +460,7 @@ function _buildSquel() {
|
|
|
461
460
|
// null is allowed
|
|
462
461
|
} else if ("string" === itemType || "number" === itemType || "boolean" === itemType) {
|
|
463
462
|
// primitives are allowed
|
|
464
|
-
} else if (
|
|
463
|
+
} else if (cls.isSquelBuilder(item)) {
|
|
465
464
|
// Builders allowed
|
|
466
465
|
} else {
|
|
467
466
|
var typeIsValid = !!getValueHandler(item, this.options.valueHandlers, cls.globalValueHandlers);
|
|
@@ -560,7 +559,7 @@ function _buildSquel() {
|
|
|
560
559
|
};
|
|
561
560
|
}
|
|
562
561
|
|
|
563
|
-
/**
|
|
562
|
+
/**
|
|
564
563
|
* Format given value for inclusion into parameter values array.
|
|
565
564
|
*/
|
|
566
565
|
|
|
@@ -591,6 +590,8 @@ function _buildSquel() {
|
|
|
591
590
|
|
|
592
591
|
var formattingOptions = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
|
593
592
|
|
|
593
|
+
// maybe we have a cusotm value handler
|
|
594
|
+
|
|
594
595
|
var _formatCustomValue2 = this._formatCustomValue(initialValue, false, formattingOptions);
|
|
595
596
|
|
|
596
597
|
var formatted = _formatCustomValue2.formatted;
|
|
@@ -599,7 +600,7 @@ function _buildSquel() {
|
|
|
599
600
|
// if formatting took place then return it directly
|
|
600
601
|
|
|
601
602
|
if (formatted) {
|
|
602
|
-
return this._applyNestingFormatting(value);
|
|
603
|
+
return this._applyNestingFormatting(value, _shouldApplyNesting(initialValue));
|
|
603
604
|
}
|
|
604
605
|
|
|
605
606
|
// if it's an array then format each element separately
|
|
@@ -608,7 +609,7 @@ function _buildSquel() {
|
|
|
608
609
|
return _this4._formatValueForQueryString(v);
|
|
609
610
|
});
|
|
610
611
|
|
|
611
|
-
value = this._applyNestingFormatting(value.join(', '));
|
|
612
|
+
value = this._applyNestingFormatting(value.join(', '), _shouldApplyNesting(value));
|
|
612
613
|
} else {
|
|
613
614
|
var typeofValue = typeof value === 'undefined' ? 'undefined' : _typeof(value);
|
|
614
615
|
|
|
@@ -616,8 +617,8 @@ function _buildSquel() {
|
|
|
616
617
|
value = "NULL";
|
|
617
618
|
} else if (typeofValue === "boolean") {
|
|
618
619
|
value = value ? "TRUE" : "FALSE";
|
|
619
|
-
} else if (
|
|
620
|
-
value = this._applyNestingFormatting(value.toString());
|
|
620
|
+
} else if (cls.isSquelBuilder(value)) {
|
|
621
|
+
value = this._applyNestingFormatting(value.toString(), _shouldApplyNesting(value));
|
|
621
622
|
} else if (typeofValue !== "number") {
|
|
622
623
|
// if it's a string and we have custom string formatting turned on then use that
|
|
623
624
|
if ('string' === typeofValue && this.options.stringFormatter) {
|
|
@@ -641,20 +642,43 @@ function _buildSquel() {
|
|
|
641
642
|
value: function _applyNestingFormatting(str) {
|
|
642
643
|
var nesting = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
|
|
643
644
|
|
|
644
|
-
if (str && typeof str === 'string' && nesting) {
|
|
645
|
-
//
|
|
646
|
-
|
|
647
|
-
|
|
645
|
+
if (str && typeof str === 'string' && nesting && !this.options.rawNesting) {
|
|
646
|
+
// apply brackets if they're not already existing
|
|
647
|
+
var alreadyHasBrackets = '(' === str.charAt(0) && ')' === str.charAt(str.length - 1);
|
|
648
|
+
|
|
649
|
+
if (alreadyHasBrackets) {
|
|
650
|
+
// check that it's the form "((x)..(y))" rather than "(x)..(y)"
|
|
651
|
+
var idx = 0,
|
|
652
|
+
open = 1;
|
|
653
|
+
|
|
654
|
+
while (str.length - 1 > ++idx) {
|
|
655
|
+
var c = str.charAt(idx);
|
|
656
|
+
|
|
657
|
+
if ('(' === c) {
|
|
658
|
+
open++;
|
|
659
|
+
} else if (')' === c) {
|
|
660
|
+
open--;
|
|
661
|
+
if (1 > open) {
|
|
662
|
+
alreadyHasBrackets = false;
|
|
663
|
+
|
|
664
|
+
break;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
if (!alreadyHasBrackets) {
|
|
671
|
+
str = '(' + str + ')';
|
|
648
672
|
}
|
|
649
673
|
}
|
|
650
674
|
|
|
651
675
|
return str;
|
|
652
676
|
}
|
|
653
677
|
|
|
654
|
-
/**
|
|
655
|
-
* Build given string and its corresponding parameter values into
|
|
678
|
+
/**
|
|
679
|
+
* Build given string and its corresponding parameter values into
|
|
656
680
|
* output.
|
|
657
|
-
*
|
|
681
|
+
*
|
|
658
682
|
* @param {String} str
|
|
659
683
|
* @param {Array} values
|
|
660
684
|
* @param {Object} [options] Additional options.
|
|
@@ -690,7 +714,7 @@ function _buildSquel() {
|
|
|
690
714
|
var value = values[++curValue];
|
|
691
715
|
|
|
692
716
|
if (buildParameterized) {
|
|
693
|
-
if (
|
|
717
|
+
if (cls.isSquelBuilder(value)) {
|
|
694
718
|
var ret = value._toParamString({
|
|
695
719
|
buildParameterized: buildParameterized,
|
|
696
720
|
nested: true
|
|
@@ -734,10 +758,10 @@ function _buildSquel() {
|
|
|
734
758
|
};
|
|
735
759
|
}
|
|
736
760
|
|
|
737
|
-
/**
|
|
738
|
-
* Build all given strings and their corresponding parameter values into
|
|
761
|
+
/**
|
|
762
|
+
* Build all given strings and their corresponding parameter values into
|
|
739
763
|
* output.
|
|
740
|
-
*
|
|
764
|
+
*
|
|
741
765
|
* @param {Array} strings
|
|
742
766
|
* @param {Array} strValues array of value arrays corresponding to each string.
|
|
743
767
|
* @param {Object} [options] Additional options.
|
|
@@ -781,7 +805,7 @@ function _buildSquel() {
|
|
|
781
805
|
|
|
782
806
|
/**
|
|
783
807
|
* Get parameterized representation of this instance.
|
|
784
|
-
*
|
|
808
|
+
*
|
|
785
809
|
* @param {Object} [options] Options.
|
|
786
810
|
* @param {Boolean} [options.buildParameterized] Whether to build paramterized string. Default is false.
|
|
787
811
|
* @param {Boolean} [options.nested] Whether this expression is nested within another.
|
|
@@ -839,10 +863,10 @@ function _buildSquel() {
|
|
|
839
863
|
*
|
|
840
864
|
* SQL expressions are used in WHERE and ON clauses to filter data by various criteria.
|
|
841
865
|
*
|
|
842
|
-
* Expressions can be nested. Nested expression contains can themselves
|
|
843
|
-
* contain nested expressions. When rendered a nested expression will be
|
|
866
|
+
* Expressions can be nested. Nested expression contains can themselves
|
|
867
|
+
* contain nested expressions. When rendered a nested expression will be
|
|
844
868
|
* fully contained within brackets.
|
|
845
|
-
*
|
|
869
|
+
*
|
|
846
870
|
* All the build methods in this object return the object instance for chained method calling purposes.
|
|
847
871
|
*/
|
|
848
872
|
cls.Expression = function (_cls$BaseBuilder) {
|
|
@@ -918,7 +942,7 @@ function _buildSquel() {
|
|
|
918
942
|
var expr = node.expr;
|
|
919
943
|
var para = node.para;
|
|
920
944
|
|
|
921
|
-
var _ref =
|
|
945
|
+
var _ref = cls.isSquelBuilder(expr) ? expr._toParamString({
|
|
922
946
|
buildParameterized: options.buildParameterized,
|
|
923
947
|
nested: true
|
|
924
948
|
}) : this._buildString(expr, para, {
|
|
@@ -1320,7 +1344,7 @@ function _buildSquel() {
|
|
|
1320
1344
|
|
|
1321
1345
|
var tableStr = void 0;
|
|
1322
1346
|
|
|
1323
|
-
if (
|
|
1347
|
+
if (cls.isSquelBuilder(table)) {
|
|
1324
1348
|
var _table$_toParamString = table._toParamString({
|
|
1325
1349
|
buildParameterized: options.buildParameterized,
|
|
1326
1350
|
nested: true
|
|
@@ -2135,7 +2159,7 @@ function _buildSquel() {
|
|
|
2135
2159
|
cls.AbstractConditionBlock = function (_cls$Block10) {
|
|
2136
2160
|
_inherits(_class23, _cls$Block10);
|
|
2137
2161
|
|
|
2138
|
-
/**
|
|
2162
|
+
/**
|
|
2139
2163
|
* @param {String} options.verb The condition verb.
|
|
2140
2164
|
*/
|
|
2141
2165
|
|
|
@@ -2189,7 +2213,7 @@ function _buildSquel() {
|
|
|
2189
2213
|
var expr = _step10$value.expr;
|
|
2190
2214
|
var values = _step10$value.values;
|
|
2191
2215
|
|
|
2192
|
-
var ret =
|
|
2216
|
+
var ret = cls.isSquelBuilder(expr) ? expr._toParamString({
|
|
2193
2217
|
buildParameterized: options.buildParameterized
|
|
2194
2218
|
}) : this._buildString(expr, values, {
|
|
2195
2219
|
buildParameterized: options.buildParameterized
|
|
@@ -2498,7 +2522,7 @@ function _buildSquel() {
|
|
|
2498
2522
|
|
|
2499
2523
|
var tableStr = void 0;
|
|
2500
2524
|
|
|
2501
|
-
if (
|
|
2525
|
+
if (cls.isSquelBuilder(table)) {
|
|
2502
2526
|
var ret = table._toParamString({
|
|
2503
2527
|
buildParameterized: options.buildParameterized,
|
|
2504
2528
|
nested: true
|
|
@@ -2521,7 +2545,7 @@ function _buildSquel() {
|
|
|
2521
2545
|
|
|
2522
2546
|
var _ret4 = void 0;
|
|
2523
2547
|
|
|
2524
|
-
if (
|
|
2548
|
+
if (cls.isSquelBuilder(condition)) {
|
|
2525
2549
|
_ret4 = condition._toParamString({
|
|
2526
2550
|
buildParameterized: options.buildParameterized
|
|
2527
2551
|
});
|
|
@@ -2973,7 +2997,7 @@ function _buildSquel() {
|
|
|
2973
2997
|
}(cls.QueryBuilder);
|
|
2974
2998
|
|
|
2975
2999
|
var _squel = {
|
|
2976
|
-
VERSION: '5.
|
|
3000
|
+
VERSION: '5.8.0',
|
|
2977
3001
|
flavour: flavour,
|
|
2978
3002
|
expr: function expr(options) {
|
|
2979
3003
|
return new cls.Expression(options);
|
|
@@ -2998,6 +3022,13 @@ function _buildSquel() {
|
|
|
2998
3022
|
inst.function.apply(inst, arguments);
|
|
2999
3023
|
return inst;
|
|
3000
3024
|
},
|
|
3025
|
+
rstr: function rstr() {
|
|
3026
|
+
var inst = new cls.FunctionBlock({
|
|
3027
|
+
rawNesting: true
|
|
3028
|
+
});
|
|
3029
|
+
inst.function.apply(inst, arguments);
|
|
3030
|
+
return inst;
|
|
3031
|
+
},
|
|
3001
3032
|
registerValueHandler: cls.registerValueHandler
|
|
3002
3033
|
};
|
|
3003
3034
|
|
package/dist/squel-basic.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! squel | https://github.com/hiddentao/squel | BSD license */!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.squel=e()}(this,function(){"use strict";function t(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)}function e(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){return t.length?t+e:t}function a(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];if(t&&r){var i=!0,a=!1,o=void 0;try{for(var l,u=function(){var e=l.value;"object"===("undefined"==typeof e?"undefined":y(e))&&Object.getOwnPropertyNames(e).forEach(function(r){t[r]=e[r]})},s=r[Symbol.iterator]();!(i=(l=s.next()).done);i=!0)u()}catch(f){a=!0,o=f}finally{try{!i&&s["return"]&&s["return"]()}finally{if(a)throw o}}}return t}function o(t){return t&&t.constructor.prototype===Object.prototype}function l(t){return t&&t.constructor.prototype===Array.prototype}function u(t){if(t&&t.constructor&&t.constructor.toString){var e=t.constructor.toString().match(/function\s*(\w+)/);if(e&&2===e.length)return e[1]}}function s(t){if(!t)return t;if("function"==typeof t.clone)return t.clone();if(!o(t)&&!l(t))return JSON.parse(JSON.stringify(t));var e=function(){var e=new t.constructor;return Object.getOwnPropertyNames(t).forEach(function(r){"function"!=typeof t[r]&&(e[r]=s(t[r]))}),{v:e}}();return"object"===("undefined"==typeof e?"undefined":y(e))?e.v:void 0}function f(t,e,r){var n="undefined"==typeof e?"undefined":y(e);if("function"!==n&&"string"!==n)throw new Error("type must be a class constructor or string");if("function"!=typeof r)throw new Error("handler must be a function");var i=!0,a=!1,o=void 0;try{for(var l,u=t[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value;if(s.type===e)return void(s.handler=r)}}catch(f){a=!0,o=f}finally{try{!i&&u["return"]&&u["return"]()}finally{if(a)throw o}}t.push({type:e,handler:r})}function c(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];var i=!0,a=!1,o=void 0;try{for(var l,u=r[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,f=!0,c=!1,h=void 0;try{for(var v,d=s[Symbol.iterator]();!(f=(v=d.next()).done);f=!0){var p=v.value;if(("undefined"==typeof t?"undefined":y(t))===p.type||"string"!=typeof p.type&&t instanceof p.type)return p.handler}}catch(g){c=!0,h=g}finally{try{!f&&d["return"]&&d["return"]()}finally{if(c)throw h}}}}catch(g){a=!0,o=g}finally{try{!i&&u["return"]&&u["return"]()}finally{if(a)throw o}}}function h(){var h=arguments.length<=0||void 0===arguments[0]?null:arguments[0],p={_getObjectClassName:u};p.DefaultQueryBuilderOptions={autoQuoteTableNames:!1,autoQuoteFieldNames:!1,autoQuoteAliasNames:!0,useAsForTableAliasNames:!1,nameQuoteCharacter:"`",tableAliasQuoteCharacter:"`",fieldAliasQuoteCharacter:'"',valueHandlers:[],parameterCharacter:"?",numberedParameters:!1,numberedParametersPrefix:"$",numberedParametersStartAt:1,replaceSingleQuotes:!1,singleQuoteReplacement:"''",separator:" ",stringFormatter:null},p.globalValueHandlers=[],p.registerValueHandler=function(t,e){f(p.globalValueHandlers,t,e)},p.Cloneable=function(){function t(){n(this,t)}return d(t,[{key:"clone",value:function(){var t=new this.constructor;return a(t,s(a({},this)))}}]),t}(),p.BaseBuilder=function(i){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this)),i=JSON.parse(JSON.stringify(p.DefaultQueryBuilderOptions));return r.options=a({},i,t),r}return r(o,i),d(o,[{key:"registerValueHandler",value:function(t,e){return f(this.options.valueHandlers,t,e),this}},{key:"_sanitizeExpression",value:function(t){if(!(t instanceof p.BaseBuilder)&&"string"!=typeof t)throw new Error("expression must be a string or builder instance");return t}},{key:"_sanitizeName",value:function(t,e){if("string"!=typeof t)throw new Error(e+" must be a string");return t}},{key:"_sanitizeField",value:function(t){return t instanceof p.BaseBuilder||(t=this._sanitizeName(t,"field name")),t}},{key:"_sanitizeBaseBuilder",value:function(t){if(t instanceof p.BaseBuilder)return t;throw new Error("must be a builder instance")}},{key:"_sanitizeTable",value:function(t){if("string"!=typeof t)try{t=this._sanitizeBaseBuilder(t)}catch(e){throw new Error("table name must be a string or a builder")}else t=this._sanitizeName(t,"table");return t}},{key:"_sanitizeTableAlias",value:function(t){return this._sanitizeName(t,"table alias")}},{key:"_sanitizeFieldAlias",value:function(t){return this._sanitizeName(t,"field alias")}},{key:"_sanitizeLimitOffset",value:function(t){if(t=parseInt(t),0>t||isNaN(t))throw new Error("limit/offset must be >= 0");return t}},{key:"_sanitizeValue",value:function(t){var e="undefined"==typeof t?"undefined":y(t);if(null===t);else if("string"===e||"number"===e||"boolean"===e);else if(t instanceof p.BaseBuilder);else{var r=!!c(t,this.options.valueHandlers,p.globalValueHandlers);if(!r)throw new Error("field value must be a string, number, boolean, null or one of the registered custom value types")}return t}},{key:"_escapeValue",value:function(t){return this.options.replaceSingleQuotes?t.replace(/\'/g,this.options.singleQuoteReplacement):t}},{key:"_formatTableName",value:function(t){if(this.options.autoQuoteTableNames){var e=this.options.nameQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatFieldAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.fieldAliasQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatTableAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.tableAliasQuoteCharacter;t=""+e+t+e}return this.options.useAsForTableAliasNames?"AS "+t:t}},{key:"_formatFieldName",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return this.options.autoQuoteFieldNames&&!function(){var n=e.options.nameQuoteCharacter;t=r.ignorePeriodsForFieldNameQuotes?""+n+t+n:t.split(".").map(function(t){return"*"===t?t:""+n+t+n}).join(".")}(),t}},{key:"_formatCustomValue",value:function(t,e,r){var n=c(t,this.options.valueHandlers,p.globalValueHandlers);return n&&(t=n(t,e,r)),{formatted:!!n,value:t}}},{key:"_formatValueForParamArray",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return l(t)?t.map(function(t){return e._formatValueForParamArray(t,r)}):this._formatCustomValue(t,!0,r).value}},{key:"_formatValueForQueryString",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=this._formatCustomValue(t,!1,r),i=n.formatted,a=n.value;if(i)return this._applyNestingFormatting(a);if(l(a))a=a.map(function(t){return e._formatValueForQueryString(t)}),a=this._applyNestingFormatting(a.join(", "));else{var o="undefined"==typeof a?"undefined":y(a);if(null===a)a="NULL";else if("boolean"===o)a=a?"TRUE":"FALSE";else if(a instanceof p.BaseBuilder)a=this._applyNestingFormatting(a.toString());else if("number"!==o){if("string"===o&&this.options.stringFormatter)return this.options.stringFormatter(a);if(r.dontQuote)a=""+a;else{var u=this._escapeValue(a);a="'"+u+"'"}}}return a}},{key:"_applyNestingFormatting",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];return t&&"string"==typeof t&&e&&("("!==t.charAt(0)||")"!==t.charAt(t.length-1))?"("+t+")":t}},{key:"_buildString",value:function(e,r){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],i=n.nested,a=n.buildParameterized,o=n.formattingOptions;r=r||[],e=e||"";for(var u="",s=-1,f=[],c=this.options.parameterCharacter,h=0;e.length>h;)if(e.substr(h,c.length)===c){var v=r[++s];if(a)if(v instanceof p.BaseBuilder){var d=v._toParamString({buildParameterized:a,nested:!0});u+=d.text,f.push.apply(f,t(d.values))}else if(v=this._formatValueForParamArray(v,o),l(v)){var y=v.map(function(){return c}).join(", ");u+="("+y+")",f.push.apply(f,t(v))}else u+=c,f.push(v);else u+=this._formatValueForQueryString(v,o);h+=c.length}else u+=e.charAt(h),h++;return{text:this._applyNestingFormatting(u,!!i),values:f}}},{key:"_buildManyStrings",value:function(e,r){for(var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],i=[],a=[],o=0;e.length>o;++o){var l=e[o],u=r[o],s=this._buildString(l,u,{buildParameterized:n.buildParameterized,nested:!1}),f=s.text,c=s.values;i.push(f),a.push.apply(a,t(c))}return i=i.join(this.options.separator),{text:i.length?this._applyNestingFormatting(i,!!n.nested):"",values:a}}},{key:"_toParamString",value:function(t){throw new Error("Not yet implemented")}},{key:"toString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(t).text}},{key:"toParam",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(a({},t,{buildParameterized:!0}))}}]),o}(p.Cloneable),p.Expression=function(i){function a(t){n(this,a);var r=e(this,Object.getPrototypeOf(a).call(this,t));return r._nodes=[],r}return r(a,i),d(a,[{key:"and",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];return t=this._sanitizeExpression(t),this._nodes.push({type:"AND",expr:t,para:r}),this}},{key:"or",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];return t=this._sanitizeExpression(t),this._nodes.push({type:"OR",expr:t,para:r}),this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],n=[],i=!0,a=!1,o=void 0;try{for(var l,u=this._nodes[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,f=s.type,c=s.expr,h=s.para,v=c instanceof p.BaseBuilder?c._toParamString({buildParameterized:e.buildParameterized,nested:!0}):this._buildString(c,h,{buildParameterized:e.buildParameterized}),d=v.text,y=v.values;r.length&&r.push(f),r.push(d),n.push.apply(n,t(y))}}catch(g){a=!0,o=g}finally{try{!i&&u["return"]&&u["return"]()}finally{if(a)throw o}}return r=r.join(" "),{text:this._applyNestingFormatting(r,!!e.nested),values:n}}}]),a}(p.BaseBuilder),p.Case=function(l){function u(t){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];n(this,u);var i=e(this,Object.getPrototypeOf(u).call(this,r));return o(t)&&(r=t,t=null),t&&(i._fieldName=i._sanitizeField(t)),i.options=a({},p.DefaultQueryBuilderOptions,r),i._cases=[],i._elseValue=null,i}return r(u,l),d(u,[{key:"when",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];return this._cases.unshift({expression:t,values:r}),this}},{key:"then",value:function(t){if(0==this._cases.length)throw new Error("when() needs to be called first");return this._cases[0].result=t,this}},{key:"else",value:function(t){return this._elseValue=t,this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._cases[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.expression,h=f.values,v=f.result;r=i(r," ");var d=this._buildString(c,h,{buildParameterized:e.buildParameterized,nested:!0});r+="WHEN "+d.text+" THEN "+this._formatValueForQueryString(v),n.push.apply(n,t(d.values))}}catch(y){o=!0,l=y}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return r.length?(r+=" ELSE "+this._formatValueForQueryString(this._elseValue)+" END",this._fieldName&&(r=this._fieldName+" "+r),r="CASE "+r):r=this._formatValueForQueryString(this._elseValue),{text:r,values:n}}}]),u}(p.BaseBuilder),p.Block=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,t))}return r(i,t),d(i,[{key:"exposedMethods",value:function(){for(var t={},e=this;e;)Object.getOwnPropertyNames(e).forEach(function(r){"constructor"===r||"function"!=typeof e[r]||"_"===r.charAt(0)||p.Block.prototype[r]||(t[r]=e[r])}),e=Object.getPrototypeOf(e);return t}}]),i}(p.BaseBuilder),p.StringBlock=function(t){function i(t,r){n(this,i);var a=e(this,Object.getPrototypeOf(i).call(this,t));return a._str=r,a}return r(i,t),d(i,[{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._str,values:[]}}}]),i}(p.Block),p.FunctionBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._strings=[],r._values=[],r}return r(i,t),d(i,[{key:"function",value:function(t){this._strings.push(t);for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];this._values.push(r)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._buildManyStrings(this._strings,this._values,t)}}]),i}(p.Block),p.registerValueHandler(p.FunctionBlock,function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];return e?t.toParam():t.toString()}),p.AbstractTableBlock=function(a){function o(t,r){n(this,o);var i=e(this,Object.getPrototypeOf(o).call(this,t));return i._tables=[],i}return r(o,a),d(o,[{key:"_table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];e=e?this._sanitizeTableAlias(e):e,t=this._sanitizeTable(t),this.options.singleTable&&(this._tables=[]),this._tables.push({table:t,alias:e})}},{key:"_hasTable",value:function(){return 0<this._tables.length}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[];if(this._hasTable()){var a=!0,o=!1,l=void 0;try{for(var u,s=this._tables[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.table,h=f.alias;r=i(r,", ");var v=void 0;if(c instanceof p.BaseBuilder){var d=c._toParamString({buildParameterized:e.buildParameterized,nested:!0}),y=d.text,g=d.values;v=y,n.push.apply(n,t(g))}else v=this._formatTableName(c);h&&(v+=" "+this._formatTableAlias(h)),r+=v}}catch(b){o=!0,l=b}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}this.options.prefix&&(r=this.options.prefix+" "+r)}return{text:r,values:n}}}]),o}(p.Block),p.TargetTableBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),d(i,[{key:"target",value:function(t){this._table(t)}}]),i}(p.AbstractTableBlock),p.UpdateTableBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),d(i,[{key:"table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("table() needs to be called");return v(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t)}}]),i}(p.AbstractTableBlock),p.FromTableBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,a({},t,{prefix:"FROM"})))}return r(i,t),d(i,[{key:"from",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}}]),i}(p.AbstractTableBlock),p.IntoTableBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,a({},t,{prefix:"INTO",singleTable:!0})))}return r(i,t),d(i,[{key:"into",value:function(t){this._table(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("into() needs to be called");return v(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t)}}]),i}(p.AbstractTableBlock),p.GetFieldBlock=function(a){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._fields=[],r}return r(o,a),d(o,[{key:"fields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(l(t)){var r=!0,n=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(r=(a=o.next()).done);r=!0){var u=a.value;this.field(u,null,e)}}catch(s){n=!0,i=s}finally{try{!r&&o["return"]&&o["return"]()}finally{if(n)throw i}}}else for(var f in t){var c=t[f];this.field(f,c,e)}}},{key:"field",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e=e?this._sanitizeFieldAlias(e):e,t=this._sanitizeField(t);var n=this._fields.filter(function(r){return r.name===t&&r.alias===e});return n.length?this:void this._fields.push({name:t,alias:e,options:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=e.queryBuilder,n=e.buildParameterized,a="",o=[],l=!0,u=!1,s=void 0;try{for(var f,c=this._fields[Symbol.iterator]();!(l=(f=c.next()).done);l=!0){var h=f.value;a=i(a,", ");var v=h.name,d=h.alias,y=h.options;if("string"==typeof v)a+=this._formatFieldName(v,y);else{var g=v._toParamString({nested:!0,buildParameterized:n});a+=g.text,o.push.apply(o,t(g.values))}d&&(a+=" AS "+this._formatFieldAlias(d))}}catch(b){u=!0,s=b}finally{try{!l&&c["return"]&&c["return"]()}finally{if(u)throw s}}if(!a.length){var m=r&&r.getBlock(p.FromTableBlock);m&&m._hasTable()&&(a="*")}return{text:a,values:o}}}]),o}(p.Block),p.AbstractSetFieldBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._reset(),r}return r(i,t),d(i,[{key:"_reset",value:function(){this._fields=[],this._values=[[]],this._valueOptions=[[]]}},{key:"_set",value:function(t,e){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if(this._values.length>1)throw new Error("Cannot set multiple rows of fields this way.");"undefined"!=typeof e&&(e=this._sanitizeValue(e)),t=this._sanitizeField(t);var n=this._fields.indexOf(t);-1===n&&(this._fields.push(t),n=this._fields.length-1),this._values[0][n]=e,this._valueOptions[0][n]=r}},{key:"_setFields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("object"!==("undefined"==typeof t?"undefined":y(t)))throw new Error("Expected an object but got "+("undefined"==typeof t?"undefined":y(t)));for(var r in t)this._set(r,t[r],e)}},{key:"_setFieldsRows",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(!l(t))throw new Error("Expected an array of objects but got "+("undefined"==typeof t?"undefined":y(t)));this._reset();for(var r=0;t.length>r;++r){var n=t[r];for(var i in n){var a=n[i];i=this._sanitizeField(i),a=this._sanitizeValue(a);var o=this._fields.indexOf(i);if(r>0&&-1===o)throw new Error("All fields in subsequent rows must match the fields in the first row");-1===o&&(this._fields.push(i),o=this._fields.length-1),l(this._values[r])||(this._values[r]=[],this._valueOptions[r]=[]),this._values[r][o]=a,this._valueOptions[r][o]=e}}}}]),i}(p.Block),p.SetFieldBlock=function(a){function o(){return n(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,a),d(o,[{key:"set",value:function(t,e,r){this._set(t,e,r)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=e.buildParameterized;if(0>=this._fields.length)throw new Error("set() needs to be called");for(var n="",a=[],o=0;o<this._fields.length;++o){n=i(n,", ");var l=this._formatFieldName(this._fields[o]),u=this._values[0][o];0>l.indexOf("=")&&(l=l+" = "+this.options.parameterCharacter);var s=this._buildString(l,[u],{buildParameterized:r,formattingOptions:this._valueOptions[0][o]});n+=s.text,a.push.apply(a,t(s.values))}return{text:"SET "+n,values:a}}}]),o}(p.AbstractSetFieldBlock),p.InsertFieldValueBlock=function(a){function o(){return n(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,a),d(o,[{key:"set",value:function(t,e){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._set(t,e,r)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"setFieldsRows",value:function(t,e){this._setFieldsRows(t,e)}},{key:"_toParamString",value:function(){for(var e=this,r=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=r.buildParameterized,a=this._fields.map(function(t){return e._formatFieldName(t)}).join(", "),o=[],l=[],u=0;u<this._values.length;++u){o[u]="";for(var s=0;s<this._values[u].length;++s){var f=this._buildString(this.options.parameterCharacter,[this._values[u][s]],{buildParameterized:n,formattingOptions:this._valueOptions[u][s]});l.push.apply(l,t(f.values)),o[u]=i(o[u],", "),o[u]+=f.text}}return{text:a.length?"("+a+") VALUES ("+o.join("), (")+")":"",values:l}}}]),o}(p.AbstractSetFieldBlock),p.InsertFieldsFromQueryBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._fields=[],r._query=null,r}return r(i,t),d(i,[{key:"fromQuery",value:function(t,e){var r=this;this._fields=t.map(function(t){return r._sanitizeField(t)}),this._query=this._sanitizeBaseBuilder(e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e="",r=[];if(this._fields.length&&this._query){var n=this._query._toParamString({buildParameterized:t.buildParameterized,nested:!0}),i=n.text,a=n.values;e="("+this._fields.join(", ")+") "+this._applyNestingFormatting(i),r=a}return{text:e,values:r}}}]),i}(p.Block),p.DistinctBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),d(i,[{key:"distinct",value:function(){this._useDistinct=!0}},{key:"_toParamString",value:function(){return{text:this._useDistinct?"DISTINCT":"",values:[]}}}]),i}(p.Block),p.GroupByBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._groups=[],r}return r(i,t),d(i,[{key:"group",value:function(t){this._groups.push(this._sanitizeField(t))}},{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._groups.length?"GROUP BY "+this._groups.join(", "):"",values:[]}}}]),i}(p.Block),p.AbstractVerbSingleValueBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._value=0,r}return r(i,t),d(i,[{key:"_setValue",value:function(t){this._value=this._sanitizeLimitOffset(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=0<this._value?this.options.verb+" "+this.options.parameterCharacter:"",r=null!==this._value?[this._value]:[];return this._buildString(e,r,t)}}]),i}(p.Block),p.OffsetBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,a({},t,{verb:"OFFSET"})))}return r(i,t),d(i,[{key:"offset",value:function(t){this._setValue(t)}}]),i}(p.AbstractVerbSingleValueBlock),p.LimitBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,a({},t,{verb:"LIMIT"})))}return r(i,t),d(i,[{key:"limit",value:function(t){this._setValue(t)}}]),i}(p.AbstractVerbSingleValueBlock),p.AbstractConditionBlock=function(i){function a(t){n(this,a);var r=e(this,Object.getPrototypeOf(a).call(this,t));return r._conditions=[],r}return r(a,i),d(a,[{key:"_condition",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];t=this._sanitizeExpression(t),this._conditions.push({expr:t,values:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],n=[],i=!0,a=!1,o=void 0;try{for(var l,u=this._conditions[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,f=s.expr,c=s.values,h=f instanceof p.BaseBuilder?f._toParamString({buildParameterized:e.buildParameterized}):this._buildString(f,c,{buildParameterized:e.buildParameterized});h.text.length&&r.push(h.text),n.push.apply(n,t(h.values))}}catch(v){a=!0,o=v}finally{try{!i&&u["return"]&&u["return"]()}finally{if(a)throw o}}return r.length&&(r=r.join(") AND (")),{text:r.length?this.options.verb+" ("+r+")":"",values:n}}}]),a}(p.Block),p.WhereBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,a({},t,{verb:"WHERE"})))}return r(i,t),d(i,[{key:"where",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];this._condition.apply(this,[t].concat(r))}}]),i}(p.AbstractConditionBlock),p.HavingBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,a({},t,{verb:"HAVING"})))}return r(i,t),d(i,[{key:"having",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];this._condition.apply(this,[t].concat(r))}}]),i}(p.AbstractConditionBlock),p.OrderByBlock=function(a){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._orders=[],r}return r(o,a),d(o,[{key:"order",value:function(t,e){for(var r=arguments.length,n=Array(r>2?r-2:0),i=2;r>i;i++)n[i-2]=arguments[i];t=this._sanitizeField(t),"string"!=typeof e&&(void 0===e?e="ASC":null!==e&&(e=e?"ASC":"DESC")),this._orders.push({field:t,dir:e,values:n})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._orders[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.field,h=f.dir,v=f.values;r=i(r,", ");var d=this._buildString(c,v,{buildParameterized:e.buildParameterized});r+=d.text,n.push.apply(n,t(d.values)),null!==h&&(r+=" "+h)}}catch(y){o=!0,l=y}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return{text:r.length?"ORDER BY "+r:"",values:n}}}]),o}(p.Block),p.JoinBlock=function(a){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._joins=[],r}return r(o,a),d(o,[{key:"join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],n=arguments.length<=3||void 0===arguments[3]?"INNER":arguments[3];t=this._sanitizeTable(t,!0),e=e?this._sanitizeTableAlias(e):e,r=r?this._sanitizeExpression(r):r,this._joins.push({type:n,table:t,alias:e,condition:r})}},{key:"left_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"LEFT")}},{key:"right_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"RIGHT")}},{key:"outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"OUTER")}},{key:"left_outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"LEFT OUTER")}},{key:"full_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"FULL")}},{key:"cross_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"CROSS")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._joins[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.type,h=f.table,v=f.alias,d=f.condition;r=i(r,this.options.separator);var y=void 0;if(h instanceof p.BaseBuilder){var g=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});n.push.apply(n,t(g.values)),y=g.text}else y=this._formatTableName(h);if(r+=c+" JOIN "+y,v&&(r+=" "+this._formatTableAlias(v)),d){r+=" ON ";var b=void 0;b=d instanceof p.BaseBuilder?d._toParamString({buildParameterized:e.buildParameterized}):this._buildString(d,[],{buildParameterized:e.buildParameterized}),r+=this._applyNestingFormatting(b.text),n.push.apply(n,t(b.values))}}}catch(m){o=!0,l=m}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return{text:r,values:n}}}]),o}(p.Block),p.UnionBlock=function(a){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._unions=[],r}return r(o,a),d(o,[{key:"union",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?"UNION":arguments[1];t=this._sanitizeTable(t),this._unions.push({type:e,table:t})}},{key:"union_all",value:function(t){this.union(t,"UNION ALL")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._unions[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.type,h=f.table;r=i(r,this.options.separator);var v=void 0;if(h instanceof p.BaseBuilder){var d=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});v=d.text,n.push.apply(n,t(d.values))}else r=this._formatTableName(h);r+=c+" "+v}}catch(y){o=!0,l=y}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return{text:r,values:n}}}]),o}(p.Block),p.QueryBuilder=function(i){function o(t,r){n(this,o);var i=e(this,Object.getPrototypeOf(o).call(this,t));i.blocks=r||[];var a=!0,l=!1,u=void 0;try{for(var s,f=i.blocks[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var c=s.value,h=c.exposedMethods();for(var v in h){var d=h[v];if(void 0!==i[v])throw new Error("Builder already has a builder method called: "+v);!function(t,e,r){i[e]=function(){for(var e=arguments.length,n=Array(e),a=0;e>a;a++)n[a]=arguments[a];return r.call.apply(r,[t].concat(n)),i}}(c,v,d)}}}catch(y){l=!0,u=y}finally{try{!a&&f["return"]&&f["return"]()}finally{if(l)throw u}}return i}return r(o,i),d(o,[{key:"registerValueHandler",value:function(t,e){var r=!0,n=!1,i=void 0;try{for(var a,l=this.blocks[Symbol.iterator]();!(r=(a=l.next()).done);r=!0){var u=a.value;u.registerValueHandler(t,e)}}catch(s){n=!0,i=s}finally{try{!r&&l["return"]&&l["return"]()}finally{if(n)throw i}}return v(Object.getPrototypeOf(o.prototype),"registerValueHandler",this).call(this,t,e),this}},{key:"updateOptions",value:function(t){this.options=a({},this.options,t);var e=!0,r=!1,n=void 0;try{for(var i,o=this.blocks[Symbol.iterator]();!(e=(i=o.next()).done);e=!0){var l=i.value;l.options=a({},l.options,t)}}catch(u){r=!0,n=u}finally{try{!e&&o["return"]&&o["return"]()}finally{if(r)throw n}}}},{key:"_toParamString",value:function(){var e,r=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];n=a({},this.options,n);var i=this.blocks.map(function(t){return t._toParamString({buildParameterized:n.buildParameterized,queryBuilder:r})}),o=i.map(function(t){return t.text}),l=i.map(function(t){return t.values}),u=o.filter(function(t){return 0<t.length}).join(n.separator),s=(e=[]).concat.apply(e,t(l));return n.nested||n.numberedParameters&&!function(){var t=void 0!==n.numberedParametersStartAt?n.numberedParametersStartAt:1,e=n.parameterCharacter.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");u=u.replace(new RegExp(e,"g"),function(){return""+n.numberedParametersPrefix+t++})}(),{text:this._applyNestingFormatting(u,!!n.nested),values:s}}},{key:"clone",value:function(){var t=this.blocks.map(function(t){return t.clone()});return new this.constructor(this.options,t)}},{key:"getBlock",value:function(t){var e=this.blocks.filter(function(e){return e instanceof t});return e[0]}}]),o}(p.BaseBuilder),p.Select=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new p.StringBlock(t,"SELECT"),new p.FunctionBlock(t),new p.DistinctBlock(t),new p.GetFieldBlock(t),new p.FromTableBlock(t),new p.JoinBlock(t),new p.WhereBlock(t),new p.GroupByBlock(t),new p.HavingBlock(t),new p.OrderByBlock(t),new p.LimitBlock(t),new p.OffsetBlock(t),new p.UnionBlock(t)],
|
|
2
|
-
e(this,Object.getPrototypeOf(
|
|
1
|
+
/*! squel | https://github.com/hiddentao/squel | BSD license */!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.squel=e()}(this,function(){"use strict";function t(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)}function e(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){return t.length?t+e:t}function a(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];if(t&&r){var n=!0,a=!1,o=void 0;try{for(var l,u=function(){var e=l.value;"object"===("undefined"==typeof e?"undefined":d(e))&&Object.getOwnPropertyNames(e).forEach(function(r){t[r]=e[r]})},s=r[Symbol.iterator]();!(n=(l=s.next()).done);n=!0)u()}catch(f){a=!0,o=f}finally{try{!n&&s["return"]&&s["return"]()}finally{if(a)throw o}}}return t}function o(t){return t&&t.constructor.prototype===Object.prototype}function l(t){return t&&t.constructor.prototype===Array.prototype}function u(t){if(!t)return t;if("function"==typeof t.clone)return t.clone();if(!o(t)&&!l(t))return JSON.parse(JSON.stringify(t));var e=function(){var e=new t.constructor;return Object.getOwnPropertyNames(t).forEach(function(r){"function"!=typeof t[r]&&(e[r]=u(t[r]))}),{v:e}}();return"object"===("undefined"==typeof e?"undefined":d(e))?e.v:void 0}function s(t,e,r){var i="undefined"==typeof e?"undefined":d(e);if("function"!==i&&"string"!==i)throw new Error("type must be a class constructor or string");if("function"!=typeof r)throw new Error("handler must be a function");var n=!0,a=!1,o=void 0;try{for(var l,u=t[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var s=l.value;if(s.type===e)return void(s.handler=r)}}catch(f){a=!0,o=f}finally{try{!n&&u["return"]&&u["return"]()}finally{if(a)throw o}}t.push({type:e,handler:r})}function f(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];var n=!0,a=!1,o=void 0;try{for(var l,u=r[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var s=l.value,f=!0,c=!1,h=void 0;try{for(var v,y=s[Symbol.iterator]();!(f=(v=y.next()).done);f=!0){var p=v.value;if(("undefined"==typeof t?"undefined":d(t))===p.type||"string"!=typeof p.type&&t instanceof p.type)return p.handler}}catch(g){c=!0,h=g}finally{try{!f&&y["return"]&&y["return"]()}finally{if(c)throw h}}}}catch(g){a=!0,o=g}finally{try{!n&&u["return"]&&u["return"]()}finally{if(a)throw o}}}function c(){var c=arguments.length<=0||void 0===arguments[0]?null:arguments[0],y={isSquelBuilder:function(t){return t&&!!t._toParamString}},p=function(t){return!y.isSquelBuilder(t)||!t.options.rawNesting};y.DefaultQueryBuilderOptions={autoQuoteTableNames:!1,autoQuoteFieldNames:!1,autoQuoteAliasNames:!0,useAsForTableAliasNames:!1,nameQuoteCharacter:"`",tableAliasQuoteCharacter:"`",fieldAliasQuoteCharacter:'"',valueHandlers:[],parameterCharacter:"?",numberedParameters:!1,numberedParametersPrefix:"$",numberedParametersStartAt:1,replaceSingleQuotes:!1,singleQuoteReplacement:"''",separator:" ",stringFormatter:null,rawNesting:!1},y.globalValueHandlers=[],y.registerValueHandler=function(t,e){s(y.globalValueHandlers,t,e)},y.Cloneable=function(){function t(){i(this,t)}return v(t,[{key:"clone",value:function(){var t=new this.constructor;return a(t,u(a({},this)))}}]),t}(),y.BaseBuilder=function(n){function o(t){i(this,o);var r=e(this,Object.getPrototypeOf(o).call(this)),n=JSON.parse(JSON.stringify(y.DefaultQueryBuilderOptions));return r.options=a({},n,t),r}return r(o,n),v(o,[{key:"registerValueHandler",value:function(t,e){return s(this.options.valueHandlers,t,e),this}},{key:"_sanitizeExpression",value:function(t){if(!y.isSquelBuilder(t)&&"string"!=typeof t)throw new Error("expression must be a string or builder instance");return t}},{key:"_sanitizeName",value:function(t,e){if("string"!=typeof t)throw new Error(e+" must be a string");return t}},{key:"_sanitizeField",value:function(t){return y.isSquelBuilder(t)||(t=this._sanitizeName(t,"field name")),t}},{key:"_sanitizeBaseBuilder",value:function(t){if(y.isSquelBuilder(t))return t;throw new Error("must be a builder instance")}},{key:"_sanitizeTable",value:function(t){if("string"!=typeof t)try{t=this._sanitizeBaseBuilder(t)}catch(e){throw new Error("table name must be a string or a builder")}else t=this._sanitizeName(t,"table");return t}},{key:"_sanitizeTableAlias",value:function(t){return this._sanitizeName(t,"table alias")}},{key:"_sanitizeFieldAlias",value:function(t){return this._sanitizeName(t,"field alias")}},{key:"_sanitizeLimitOffset",value:function(t){if(t=parseInt(t),0>t||isNaN(t))throw new Error("limit/offset must be >= 0");return t}},{key:"_sanitizeValue",value:function(t){var e="undefined"==typeof t?"undefined":d(t);if(null===t);else if("string"===e||"number"===e||"boolean"===e);else if(y.isSquelBuilder(t));else{var r=!!f(t,this.options.valueHandlers,y.globalValueHandlers);if(!r)throw new Error("field value must be a string, number, boolean, null or one of the registered custom value types")}return t}},{key:"_escapeValue",value:function(t){return this.options.replaceSingleQuotes?t.replace(/\'/g,this.options.singleQuoteReplacement):t}},{key:"_formatTableName",value:function(t){if(this.options.autoQuoteTableNames){var e=this.options.nameQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatFieldAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.fieldAliasQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatTableAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.tableAliasQuoteCharacter;t=""+e+t+e}return this.options.useAsForTableAliasNames?"AS "+t:t}},{key:"_formatFieldName",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return this.options.autoQuoteFieldNames&&!function(){var i=e.options.nameQuoteCharacter;t=r.ignorePeriodsForFieldNameQuotes?""+i+t+i:t.split(".").map(function(t){return"*"===t?t:""+i+t+i}).join(".")}(),t}},{key:"_formatCustomValue",value:function(t,e,r){var i=f(t,this.options.valueHandlers,y.globalValueHandlers);return i&&(t=i(t,e,r)),{formatted:!!i,value:t}}},{key:"_formatValueForParamArray",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return l(t)?t.map(function(t){return e._formatValueForParamArray(t,r)}):this._formatCustomValue(t,!0,r).value}},{key:"_formatValueForQueryString",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=this._formatCustomValue(t,!1,r),n=i.formatted,a=i.value;if(n)return this._applyNestingFormatting(a,p(t));if(l(a))a=a.map(function(t){return e._formatValueForQueryString(t)}),a=this._applyNestingFormatting(a.join(", "),p(a));else{var o="undefined"==typeof a?"undefined":d(a);if(null===a)a="NULL";else if("boolean"===o)a=a?"TRUE":"FALSE";else if(y.isSquelBuilder(a))a=this._applyNestingFormatting(a.toString(),p(a));else if("number"!==o){if("string"===o&&this.options.stringFormatter)return this.options.stringFormatter(a);if(r.dontQuote)a=""+a;else{var u=this._escapeValue(a);a="'"+u+"'"}}}return a}},{key:"_applyNestingFormatting",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];if(t&&"string"==typeof t&&e&&!this.options.rawNesting){var r="("===t.charAt(0)&&")"===t.charAt(t.length-1);if(r)for(var i=0,n=1;t.length-1>++i;){var a=t.charAt(i);if("("===a)n++;else if(")"===a&&(n--,1>n)){r=!1;break}}r||(t="("+t+")")}return t}},{key:"_buildString",value:function(e,r){var i=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=i.nested,a=i.buildParameterized,o=i.formattingOptions;r=r||[],e=e||"";for(var u="",s=-1,f=[],c=this.options.parameterCharacter,h=0;e.length>h;)if(e.substr(h,c.length)===c){var v=r[++s];if(a)if(y.isSquelBuilder(v)){var d=v._toParamString({buildParameterized:a,nested:!0});u+=d.text,f.push.apply(f,t(d.values))}else if(v=this._formatValueForParamArray(v,o),l(v)){var p=v.map(function(){return c}).join(", ");u+="("+p+")",f.push.apply(f,t(v))}else u+=c,f.push(v);else u+=this._formatValueForQueryString(v,o);h+=c.length}else u+=e.charAt(h),h++;return{text:this._applyNestingFormatting(u,!!n),values:f}}},{key:"_buildManyStrings",value:function(e,r){for(var i=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=[],a=[],o=0;e.length>o;++o){var l=e[o],u=r[o],s=this._buildString(l,u,{buildParameterized:i.buildParameterized,nested:!1}),f=s.text,c=s.values;n.push(f),a.push.apply(a,t(c))}return n=n.join(this.options.separator),{text:n.length?this._applyNestingFormatting(n,!!i.nested):"",values:a}}},{key:"_toParamString",value:function(t){throw new Error("Not yet implemented")}},{key:"toString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(t).text}},{key:"toParam",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(a({},t,{buildParameterized:!0}))}}]),o}(y.Cloneable),y.Expression=function(n){function a(t){i(this,a);var r=e(this,Object.getPrototypeOf(a).call(this,t));return r._nodes=[],r}return r(a,n),v(a,[{key:"and",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];return t=this._sanitizeExpression(t),this._nodes.push({type:"AND",expr:t,para:r}),this}},{key:"or",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];return t=this._sanitizeExpression(t),this._nodes.push({type:"OR",expr:t,para:r}),this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],i=[],n=!0,a=!1,o=void 0;try{for(var l,u=this._nodes[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var s=l.value,f=s.type,c=s.expr,h=s.para,v=y.isSquelBuilder(c)?c._toParamString({buildParameterized:e.buildParameterized,nested:!0}):this._buildString(c,h,{buildParameterized:e.buildParameterized}),d=v.text,p=v.values;r.length&&r.push(f),r.push(d),i.push.apply(i,t(p))}}catch(g){a=!0,o=g}finally{try{!n&&u["return"]&&u["return"]()}finally{if(a)throw o}}return r=r.join(" "),{text:this._applyNestingFormatting(r,!!e.nested),values:i}}}]),a}(y.BaseBuilder),y.Case=function(l){function u(t){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];i(this,u);var n=e(this,Object.getPrototypeOf(u).call(this,r));return o(t)&&(r=t,t=null),t&&(n._fieldName=n._sanitizeField(t)),n.options=a({},y.DefaultQueryBuilderOptions,r),n._cases=[],n._elseValue=null,n}return r(u,l),v(u,[{key:"when",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];return this._cases.unshift({expression:t,values:r}),this}},{key:"then",value:function(t){if(0==this._cases.length)throw new Error("when() needs to be called first");return this._cases[0].result=t,this}},{key:"else",value:function(t){return this._elseValue=t,this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",i=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._cases[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.expression,h=f.values,v=f.result;r=n(r," ");var d=this._buildString(c,h,{buildParameterized:e.buildParameterized,nested:!0});r+="WHEN "+d.text+" THEN "+this._formatValueForQueryString(v),i.push.apply(i,t(d.values))}}catch(y){o=!0,l=y}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return r.length?(r+=" ELSE "+this._formatValueForQueryString(this._elseValue)+" END",this._fieldName&&(r=this._fieldName+" "+r),r="CASE "+r):r=this._formatValueForQueryString(this._elseValue),{text:r,values:i}}}]),u}(y.BaseBuilder),y.Block=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,t))}return r(n,t),v(n,[{key:"exposedMethods",value:function(){for(var t={},e=this;e;)Object.getOwnPropertyNames(e).forEach(function(r){"constructor"===r||"function"!=typeof e[r]||"_"===r.charAt(0)||y.Block.prototype[r]||(t[r]=e[r])}),e=Object.getPrototypeOf(e);return t}}]),n}(y.BaseBuilder),y.StringBlock=function(t){function n(t,r){i(this,n);var a=e(this,Object.getPrototypeOf(n).call(this,t));return a._str=r,a}return r(n,t),v(n,[{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._str,values:[]}}}]),n}(y.Block),y.FunctionBlock=function(t){function n(t){i(this,n);var r=e(this,Object.getPrototypeOf(n).call(this,t));return r._strings=[],r._values=[],r}return r(n,t),v(n,[{key:"function",value:function(t){this._strings.push(t);for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];this._values.push(r)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._buildManyStrings(this._strings,this._values,t)}}]),n}(y.Block),y.registerValueHandler(y.FunctionBlock,function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];return e?t.toParam():t.toString()}),y.AbstractTableBlock=function(a){function o(t,r){i(this,o);var n=e(this,Object.getPrototypeOf(o).call(this,t));return n._tables=[],n}return r(o,a),v(o,[{key:"_table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];e=e?this._sanitizeTableAlias(e):e,t=this._sanitizeTable(t),this.options.singleTable&&(this._tables=[]),this._tables.push({table:t,alias:e})}},{key:"_hasTable",value:function(){return 0<this._tables.length}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",i=[];if(this._hasTable()){var a=!0,o=!1,l=void 0;try{for(var u,s=this._tables[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.table,h=f.alias;r=n(r,", ");var v=void 0;if(y.isSquelBuilder(c)){var d=c._toParamString({buildParameterized:e.buildParameterized,nested:!0}),p=d.text,g=d.values;v=p,i.push.apply(i,t(g))}else v=this._formatTableName(c);h&&(v+=" "+this._formatTableAlias(h)),r+=v}}catch(b){o=!0,l=b}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}this.options.prefix&&(r=this.options.prefix+" "+r)}return{text:r,values:i}}}]),o}(y.Block),y.TargetTableBlock=function(t){function n(){return i(this,n),e(this,Object.getPrototypeOf(n).apply(this,arguments))}return r(n,t),v(n,[{key:"target",value:function(t){this._table(t)}}]),n}(y.AbstractTableBlock),y.UpdateTableBlock=function(t){function n(){return i(this,n),e(this,Object.getPrototypeOf(n).apply(this,arguments))}return r(n,t),v(n,[{key:"table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("table() needs to be called");return h(Object.getPrototypeOf(n.prototype),"_toParamString",this).call(this,t)}}]),n}(y.AbstractTableBlock),y.FromTableBlock=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,a({},t,{prefix:"FROM"})))}return r(n,t),v(n,[{key:"from",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}}]),n}(y.AbstractTableBlock),y.IntoTableBlock=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,a({},t,{prefix:"INTO",singleTable:!0})))}return r(n,t),v(n,[{key:"into",value:function(t){this._table(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("into() needs to be called");return h(Object.getPrototypeOf(n.prototype),"_toParamString",this).call(this,t)}}]),n}(y.AbstractTableBlock),y.GetFieldBlock=function(a){function o(t){i(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._fields=[],r}return r(o,a),v(o,[{key:"fields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(l(t)){var r=!0,i=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(r=(a=o.next()).done);r=!0){var u=a.value;this.field(u,null,e)}}catch(s){i=!0,n=s}finally{try{!r&&o["return"]&&o["return"]()}finally{if(i)throw n}}}else for(var f in t){var c=t[f];this.field(f,c,e)}}},{key:"field",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e=e?this._sanitizeFieldAlias(e):e,t=this._sanitizeField(t);var i=this._fields.filter(function(r){return r.name===t&&r.alias===e});return i.length?this:void this._fields.push({name:t,alias:e,options:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=e.queryBuilder,i=e.buildParameterized,a="",o=[],l=!0,u=!1,s=void 0;try{for(var f,c=this._fields[Symbol.iterator]();!(l=(f=c.next()).done);l=!0){var h=f.value;a=n(a,", ");var v=h.name,d=h.alias,p=h.options;if("string"==typeof v)a+=this._formatFieldName(v,p);else{var g=v._toParamString({nested:!0,buildParameterized:i});a+=g.text,o.push.apply(o,t(g.values))}d&&(a+=" AS "+this._formatFieldAlias(d))}}catch(b){u=!0,s=b}finally{try{!l&&c["return"]&&c["return"]()}finally{if(u)throw s}}if(!a.length){var m=r&&r.getBlock(y.FromTableBlock);m&&m._hasTable()&&(a="*")}return{text:a,values:o}}}]),o}(y.Block),y.AbstractSetFieldBlock=function(t){function n(t){i(this,n);var r=e(this,Object.getPrototypeOf(n).call(this,t));return r._reset(),r}return r(n,t),v(n,[{key:"_reset",value:function(){this._fields=[],this._values=[[]],this._valueOptions=[[]]}},{key:"_set",value:function(t,e){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if(this._values.length>1)throw new Error("Cannot set multiple rows of fields this way.");"undefined"!=typeof e&&(e=this._sanitizeValue(e)),t=this._sanitizeField(t);var i=this._fields.indexOf(t);-1===i&&(this._fields.push(t),i=this._fields.length-1),this._values[0][i]=e,this._valueOptions[0][i]=r}},{key:"_setFields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("object"!==("undefined"==typeof t?"undefined":d(t)))throw new Error("Expected an object but got "+("undefined"==typeof t?"undefined":d(t)));for(var r in t)this._set(r,t[r],e)}},{key:"_setFieldsRows",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(!l(t))throw new Error("Expected an array of objects but got "+("undefined"==typeof t?"undefined":d(t)));this._reset();for(var r=0;t.length>r;++r){var i=t[r];for(var n in i){var a=i[n];n=this._sanitizeField(n),a=this._sanitizeValue(a);var o=this._fields.indexOf(n);if(r>0&&-1===o)throw new Error("All fields in subsequent rows must match the fields in the first row");-1===o&&(this._fields.push(n),o=this._fields.length-1),l(this._values[r])||(this._values[r]=[],this._valueOptions[r]=[]),this._values[r][o]=a,this._valueOptions[r][o]=e}}}}]),n}(y.Block),y.SetFieldBlock=function(a){function o(){return i(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,a),v(o,[{key:"set",value:function(t,e,r){this._set(t,e,r)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=e.buildParameterized;if(0>=this._fields.length)throw new Error("set() needs to be called");for(var i="",a=[],o=0;o<this._fields.length;++o){i=n(i,", ");var l=this._formatFieldName(this._fields[o]),u=this._values[0][o];0>l.indexOf("=")&&(l=l+" = "+this.options.parameterCharacter);var s=this._buildString(l,[u],{buildParameterized:r,formattingOptions:this._valueOptions[0][o]});i+=s.text,a.push.apply(a,t(s.values))}return{text:"SET "+i,values:a}}}]),o}(y.AbstractSetFieldBlock),y.InsertFieldValueBlock=function(a){function o(){return i(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,a),v(o,[{key:"set",value:function(t,e){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._set(t,e,r)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"setFieldsRows",value:function(t,e){this._setFieldsRows(t,e)}},{key:"_toParamString",value:function(){for(var e=this,r=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],i=r.buildParameterized,a=this._fields.map(function(t){return e._formatFieldName(t)}).join(", "),o=[],l=[],u=0;u<this._values.length;++u){o[u]="";for(var s=0;s<this._values[u].length;++s){var f=this._buildString(this.options.parameterCharacter,[this._values[u][s]],{buildParameterized:i,formattingOptions:this._valueOptions[u][s]});l.push.apply(l,t(f.values)),o[u]=n(o[u],", "),o[u]+=f.text}}return{text:a.length?"("+a+") VALUES ("+o.join("), (")+")":"",values:l}}}]),o}(y.AbstractSetFieldBlock),y.InsertFieldsFromQueryBlock=function(t){function n(t){i(this,n);var r=e(this,Object.getPrototypeOf(n).call(this,t));return r._fields=[],r._query=null,r}return r(n,t),v(n,[{key:"fromQuery",value:function(t,e){var r=this;this._fields=t.map(function(t){return r._sanitizeField(t)}),this._query=this._sanitizeBaseBuilder(e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e="",r=[];if(this._fields.length&&this._query){var i=this._query._toParamString({buildParameterized:t.buildParameterized,nested:!0}),n=i.text,a=i.values;e="("+this._fields.join(", ")+") "+this._applyNestingFormatting(n),r=a}return{text:e,values:r}}}]),n}(y.Block),y.DistinctBlock=function(t){function n(){return i(this,n),e(this,Object.getPrototypeOf(n).apply(this,arguments))}return r(n,t),v(n,[{key:"distinct",value:function(){this._useDistinct=!0}},{key:"_toParamString",value:function(){return{text:this._useDistinct?"DISTINCT":"",values:[]}}}]),n}(y.Block),y.GroupByBlock=function(t){function n(t){i(this,n);var r=e(this,Object.getPrototypeOf(n).call(this,t));return r._groups=[],r}return r(n,t),v(n,[{key:"group",value:function(t){this._groups.push(this._sanitizeField(t))}},{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._groups.length?"GROUP BY "+this._groups.join(", "):"",values:[]}}}]),n}(y.Block),y.AbstractVerbSingleValueBlock=function(t){function n(t){i(this,n);var r=e(this,Object.getPrototypeOf(n).call(this,t));return r._value=0,r}return r(n,t),v(n,[{key:"_setValue",value:function(t){this._value=this._sanitizeLimitOffset(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=0<this._value?this.options.verb+" "+this.options.parameterCharacter:"",r=null!==this._value?[this._value]:[];return this._buildString(e,r,t)}}]),n}(y.Block),y.OffsetBlock=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,a({},t,{verb:"OFFSET"})))}return r(n,t),v(n,[{key:"offset",value:function(t){this._setValue(t)}}]),n}(y.AbstractVerbSingleValueBlock),y.LimitBlock=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,a({},t,{verb:"LIMIT"})))}return r(n,t),v(n,[{key:"limit",value:function(t){this._setValue(t)}}]),n}(y.AbstractVerbSingleValueBlock),y.AbstractConditionBlock=function(n){function a(t){i(this,a);var r=e(this,Object.getPrototypeOf(a).call(this,t));return r._conditions=[],r}return r(a,n),v(a,[{key:"_condition",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];t=this._sanitizeExpression(t),this._conditions.push({expr:t,values:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],i=[],n=!0,a=!1,o=void 0;try{for(var l,u=this._conditions[Symbol.iterator]();!(n=(l=u.next()).done);n=!0){var s=l.value,f=s.expr,c=s.values,h=y.isSquelBuilder(f)?f._toParamString({buildParameterized:e.buildParameterized}):this._buildString(f,c,{buildParameterized:e.buildParameterized});h.text.length&&r.push(h.text),i.push.apply(i,t(h.values))}}catch(v){a=!0,o=v}finally{try{!n&&u["return"]&&u["return"]()}finally{if(a)throw o}}return r.length&&(r=r.join(") AND (")),{text:r.length?this.options.verb+" ("+r+")":"",values:i}}}]),a}(y.Block),y.WhereBlock=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,a({},t,{verb:"WHERE"})))}return r(n,t),v(n,[{key:"where",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];this._condition.apply(this,[t].concat(r))}}]),n}(y.AbstractConditionBlock),y.HavingBlock=function(t){function n(t){return i(this,n),e(this,Object.getPrototypeOf(n).call(this,a({},t,{verb:"HAVING"})))}return r(n,t),v(n,[{key:"having",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;e>i;i++)r[i-1]=arguments[i];this._condition.apply(this,[t].concat(r))}}]),n}(y.AbstractConditionBlock),y.OrderByBlock=function(a){function o(t){i(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._orders=[],r}return r(o,a),v(o,[{key:"order",value:function(t,e){for(var r=arguments.length,i=Array(r>2?r-2:0),n=2;r>n;n++)i[n-2]=arguments[n];t=this._sanitizeField(t),"string"!=typeof e&&(void 0===e?e="ASC":null!==e&&(e=e?"ASC":"DESC")),this._orders.push({field:t,dir:e,values:i})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",i=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._orders[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.field,h=f.dir,v=f.values;r=n(r,", ");var d=this._buildString(c,v,{buildParameterized:e.buildParameterized});r+=d.text,i.push.apply(i,t(d.values)),null!==h&&(r+=" "+h)}}catch(y){o=!0,l=y}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return{text:r.length?"ORDER BY "+r:"",values:i}}}]),o}(y.Block),y.JoinBlock=function(a){function o(t){i(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._joins=[],r}return r(o,a),v(o,[{key:"join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],i=arguments.length<=3||void 0===arguments[3]?"INNER":arguments[3];t=this._sanitizeTable(t,!0),e=e?this._sanitizeTableAlias(e):e,r=r?this._sanitizeExpression(r):r,this._joins.push({type:i,table:t,alias:e,condition:r})}},{key:"left_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"LEFT")}},{key:"right_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"RIGHT")}},{key:"outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"OUTER")}},{key:"left_outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"LEFT OUTER")}},{key:"full_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"FULL")}},{key:"cross_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"CROSS")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",i=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._joins[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.type,h=f.table,v=f.alias,d=f.condition;r=n(r,this.options.separator);var p=void 0;if(y.isSquelBuilder(h)){var g=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});i.push.apply(i,t(g.values)),p=g.text}else p=this._formatTableName(h);if(r+=c+" JOIN "+p,v&&(r+=" "+this._formatTableAlias(v)),d){r+=" ON ";var b=void 0;b=y.isSquelBuilder(d)?d._toParamString({buildParameterized:e.buildParameterized}):this._buildString(d,[],{buildParameterized:e.buildParameterized}),r+=this._applyNestingFormatting(b.text),i.push.apply(i,t(b.values))}}}catch(m){o=!0,l=m}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return{text:r,values:i}}}]),o}(y.Block),y.UnionBlock=function(a){function o(t){i(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._unions=[],r}return r(o,a),v(o,[{key:"union",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?"UNION":arguments[1];t=this._sanitizeTable(t),this._unions.push({type:e,table:t})}},{key:"union_all",value:function(t){this.union(t,"UNION ALL")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",i=[],a=!0,o=!1,l=void 0;try{for(var u,s=this._unions[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var f=u.value,c=f.type,h=f.table;r=n(r,this.options.separator);var v=void 0;if(h instanceof y.BaseBuilder){var d=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});v=d.text,i.push.apply(i,t(d.values))}else r=this._formatTableName(h);r+=c+" "+v}}catch(p){o=!0,l=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw l}}return{text:r,values:i}}}]),o}(y.Block),y.QueryBuilder=function(n){function o(t,r){i(this,o);var n=e(this,Object.getPrototypeOf(o).call(this,t));n.blocks=r||[];var a=!0,l=!1,u=void 0;try{for(var s,f=n.blocks[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var c=s.value,h=c.exposedMethods();for(var v in h){var d=h[v];if(void 0!==n[v])throw new Error("Builder already has a builder method called: "+v);!function(t,e,r){n[e]=function(){for(var e=arguments.length,i=Array(e),a=0;e>a;a++)i[a]=arguments[a];return r.call.apply(r,[t].concat(i)),n}}(c,v,d)}}}catch(y){l=!0,u=y}finally{try{!a&&f["return"]&&f["return"]()}finally{if(l)throw u}}return n}return r(o,n),v(o,[{key:"registerValueHandler",value:function(t,e){var r=!0,i=!1,n=void 0;try{for(var a,l=this.blocks[Symbol.iterator]();!(r=(a=l.next()).done);r=!0){var u=a.value;u.registerValueHandler(t,e)}}catch(s){i=!0,n=s}finally{try{!r&&l["return"]&&l["return"]()}finally{if(i)throw n}}return h(Object.getPrototypeOf(o.prototype),"registerValueHandler",this).call(this,t,e),this}},{key:"updateOptions",value:function(t){this.options=a({},this.options,t);var e=!0,r=!1,i=void 0;try{for(var n,o=this.blocks[Symbol.iterator]();!(e=(n=o.next()).done);e=!0){var l=n.value;l.options=a({},l.options,t)}}catch(u){r=!0,i=u}finally{try{!e&&o["return"]&&o["return"]()}finally{if(r)throw i}}}},{key:"_toParamString",value:function(){var e,r=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];i=a({},this.options,i);var n=this.blocks.map(function(t){return t._toParamString({buildParameterized:i.buildParameterized,queryBuilder:r})}),o=n.map(function(t){return t.text}),l=n.map(function(t){return t.values}),u=o.filter(function(t){return 0<t.length}).join(i.separator),s=(e=[]).concat.apply(e,t(l));return i.nested||i.numberedParameters&&!function(){var t=void 0!==i.numberedParametersStartAt?i.numberedParametersStartAt:1,e=i.parameterCharacter.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");u=u.replace(new RegExp(e,"g"),function(){return""+i.numberedParametersPrefix+t++})}(),{text:this._applyNestingFormatting(u,!!i.nested),values:s}}},{key:"clone",value:function(){var t=this.blocks.map(function(t){return t.clone()});return new this.constructor(this.options,t)}},{key:"getBlock",value:function(t){var e=this.blocks.filter(function(e){return e instanceof t});return e[0]}}]),o}(y.BaseBuilder),y.Select=function(t){function n(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return i(this,n),r=r||[new y.StringBlock(t,"SELECT"),new y.FunctionBlock(t),new y.DistinctBlock(t),new y.GetFieldBlock(t),new y.FromTableBlock(t),new y.JoinBlock(t),new y.WhereBlock(t),new y.GroupByBlock(t),new y.HavingBlock(t),new y.OrderByBlock(t),new y.LimitBlock(t),new y.OffsetBlock(t),new y.UnionBlock(t)],
|
|
2
|
+
e(this,Object.getPrototypeOf(n).call(this,t,r))}return r(n,t),n}(y.QueryBuilder),y.Update=function(t){function n(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return i(this,n),r=r||[new y.StringBlock(t,"UPDATE"),new y.UpdateTableBlock(t),new y.SetFieldBlock(t),new y.WhereBlock(t),new y.OrderByBlock(t),new y.LimitBlock(t)],e(this,Object.getPrototypeOf(n).call(this,t,r))}return r(n,t),n}(y.QueryBuilder),y.Delete=function(t){function n(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return i(this,n),r=r||[new y.StringBlock(t,"DELETE"),new y.TargetTableBlock(t),new y.FromTableBlock(a({},t,{singleTable:!0})),new y.JoinBlock(t),new y.WhereBlock(t),new y.OrderByBlock(t),new y.LimitBlock(t)],e(this,Object.getPrototypeOf(n).call(this,t,r))}return r(n,t),n}(y.QueryBuilder),y.Insert=function(t){function n(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return i(this,n),r=r||[new y.StringBlock(t,"INSERT"),new y.IntoTableBlock(t),new y.InsertFieldValueBlock(t),new y.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(n).call(this,t,r))}return r(n,t),n}(y.QueryBuilder);var g={VERSION:"5.8.0",flavour:c,expr:function(t){return new y.Expression(t)},"case":function(t,e){return new y.Case(t,e)},select:function(t,e){return new y.Select(t,e)},update:function(t,e){return new y.Update(t,e)},insert:function(t,e){return new y.Insert(t,e)},"delete":function(t,e){return new y.Delete(t,e)},str:function(){var t=new y.FunctionBlock;return t["function"].apply(t,arguments),t},rstr:function(){var t=new y.FunctionBlock({rawNesting:!0});return t["function"].apply(t,arguments),t},registerValueHandler:y.registerValueHandler};return g.remove=g["delete"],g.cls=y,g}var h=function p(t,e,r){null===t&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var n=Object.getPrototypeOf(t);return null===n?void 0:p(n,e,r)}if("value"in i)return i.value;var a=i.get;if(void 0!==a)return a.call(r)},v=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},y=c();return y.flavours={},y.useFlavour=function(){var t=arguments.length<=0||void 0===arguments[0]?null:arguments[0];if(!t)return y;if(y.flavours[t]instanceof Function){var e=c(t);return y.flavours[t].call(null,e),e.flavours=y.flavours,e.useFlavour=y.useFlavour,e}throw new Error("Flavour not available: "+t)},y});
|
package/dist/squel.js
CHANGED
|
@@ -82,17 +82,6 @@ function _isArray(obj) {
|
|
|
82
82
|
return obj && obj.constructor.prototype === Array.prototype;
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
// get class name of given object
|
|
86
|
-
function _getObjectClassName(obj) {
|
|
87
|
-
if (obj && obj.constructor && obj.constructor.toString) {
|
|
88
|
-
var arr = obj.constructor.toString().match(/function\s*(\w+)/);
|
|
89
|
-
|
|
90
|
-
if (arr && 2 === arr.length) {
|
|
91
|
-
return arr[1];
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
85
|
// clone given item
|
|
97
86
|
function _clone(src) {
|
|
98
87
|
if (!src) {
|
|
@@ -239,7 +228,15 @@ function _buildSquel() {
|
|
|
239
228
|
var flavour = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];
|
|
240
229
|
|
|
241
230
|
var cls = {
|
|
242
|
-
|
|
231
|
+
// Get whether obj is a query builder
|
|
232
|
+
isSquelBuilder: function isSquelBuilder(obj) {
|
|
233
|
+
return obj && !!obj._toParamString;
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// Get whether nesting should be applied for given item
|
|
238
|
+
var _shouldApplyNesting = function _shouldApplyNesting(obj) {
|
|
239
|
+
return !cls.isSquelBuilder(obj) || !obj.options.rawNesting;
|
|
243
240
|
};
|
|
244
241
|
|
|
245
242
|
// default query builder options
|
|
@@ -275,7 +272,9 @@ function _buildSquel() {
|
|
|
275
272
|
// String used to join individual blocks in a query when it's stringified
|
|
276
273
|
separator: ' ',
|
|
277
274
|
// Function for formatting string values prior to insertion into query string
|
|
278
|
-
stringFormatter: null
|
|
275
|
+
stringFormatter: null,
|
|
276
|
+
// Whether to prevent the addition of brackets () when nesting this query builder's output
|
|
277
|
+
rawNesting: false
|
|
279
278
|
};
|
|
280
279
|
|
|
281
280
|
// Global custom value handlers for all instances of builder
|
|
@@ -367,7 +366,7 @@ function _buildSquel() {
|
|
|
367
366
|
key: '_sanitizeExpression',
|
|
368
367
|
value: function _sanitizeExpression(expr) {
|
|
369
368
|
// If it's not a base builder instance
|
|
370
|
-
if (!(expr
|
|
369
|
+
if (!cls.isSquelBuilder(expr)) {
|
|
371
370
|
// It must then be a string
|
|
372
371
|
if (typeof expr !== "string") {
|
|
373
372
|
throw new Error("expression must be a string or builder instance");
|
|
@@ -395,7 +394,7 @@ function _buildSquel() {
|
|
|
395
394
|
}, {
|
|
396
395
|
key: '_sanitizeField',
|
|
397
396
|
value: function _sanitizeField(item) {
|
|
398
|
-
if (!(item
|
|
397
|
+
if (!cls.isSquelBuilder(item)) {
|
|
399
398
|
item = this._sanitizeName(item, "field name");
|
|
400
399
|
}
|
|
401
400
|
|
|
@@ -404,7 +403,7 @@ function _buildSquel() {
|
|
|
404
403
|
}, {
|
|
405
404
|
key: '_sanitizeBaseBuilder',
|
|
406
405
|
value: function _sanitizeBaseBuilder(item) {
|
|
407
|
-
if (
|
|
406
|
+
if (cls.isSquelBuilder(item)) {
|
|
408
407
|
return item;
|
|
409
408
|
}
|
|
410
409
|
|
|
@@ -461,7 +460,7 @@ function _buildSquel() {
|
|
|
461
460
|
// null is allowed
|
|
462
461
|
} else if ("string" === itemType || "number" === itemType || "boolean" === itemType) {
|
|
463
462
|
// primitives are allowed
|
|
464
|
-
} else if (
|
|
463
|
+
} else if (cls.isSquelBuilder(item)) {
|
|
465
464
|
// Builders allowed
|
|
466
465
|
} else {
|
|
467
466
|
var typeIsValid = !!getValueHandler(item, this.options.valueHandlers, cls.globalValueHandlers);
|
|
@@ -560,7 +559,7 @@ function _buildSquel() {
|
|
|
560
559
|
};
|
|
561
560
|
}
|
|
562
561
|
|
|
563
|
-
/**
|
|
562
|
+
/**
|
|
564
563
|
* Format given value for inclusion into parameter values array.
|
|
565
564
|
*/
|
|
566
565
|
|
|
@@ -591,6 +590,8 @@ function _buildSquel() {
|
|
|
591
590
|
|
|
592
591
|
var formattingOptions = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
|
593
592
|
|
|
593
|
+
// maybe we have a cusotm value handler
|
|
594
|
+
|
|
594
595
|
var _formatCustomValue2 = this._formatCustomValue(initialValue, false, formattingOptions);
|
|
595
596
|
|
|
596
597
|
var formatted = _formatCustomValue2.formatted;
|
|
@@ -599,7 +600,7 @@ function _buildSquel() {
|
|
|
599
600
|
// if formatting took place then return it directly
|
|
600
601
|
|
|
601
602
|
if (formatted) {
|
|
602
|
-
return this._applyNestingFormatting(value);
|
|
603
|
+
return this._applyNestingFormatting(value, _shouldApplyNesting(initialValue));
|
|
603
604
|
}
|
|
604
605
|
|
|
605
606
|
// if it's an array then format each element separately
|
|
@@ -608,7 +609,7 @@ function _buildSquel() {
|
|
|
608
609
|
return _this4._formatValueForQueryString(v);
|
|
609
610
|
});
|
|
610
611
|
|
|
611
|
-
value = this._applyNestingFormatting(value.join(', '));
|
|
612
|
+
value = this._applyNestingFormatting(value.join(', '), _shouldApplyNesting(value));
|
|
612
613
|
} else {
|
|
613
614
|
var typeofValue = typeof value === 'undefined' ? 'undefined' : _typeof(value);
|
|
614
615
|
|
|
@@ -616,8 +617,8 @@ function _buildSquel() {
|
|
|
616
617
|
value = "NULL";
|
|
617
618
|
} else if (typeofValue === "boolean") {
|
|
618
619
|
value = value ? "TRUE" : "FALSE";
|
|
619
|
-
} else if (
|
|
620
|
-
value = this._applyNestingFormatting(value.toString());
|
|
620
|
+
} else if (cls.isSquelBuilder(value)) {
|
|
621
|
+
value = this._applyNestingFormatting(value.toString(), _shouldApplyNesting(value));
|
|
621
622
|
} else if (typeofValue !== "number") {
|
|
622
623
|
// if it's a string and we have custom string formatting turned on then use that
|
|
623
624
|
if ('string' === typeofValue && this.options.stringFormatter) {
|
|
@@ -641,20 +642,43 @@ function _buildSquel() {
|
|
|
641
642
|
value: function _applyNestingFormatting(str) {
|
|
642
643
|
var nesting = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
|
|
643
644
|
|
|
644
|
-
if (str && typeof str === 'string' && nesting) {
|
|
645
|
-
//
|
|
646
|
-
|
|
647
|
-
|
|
645
|
+
if (str && typeof str === 'string' && nesting && !this.options.rawNesting) {
|
|
646
|
+
// apply brackets if they're not already existing
|
|
647
|
+
var alreadyHasBrackets = '(' === str.charAt(0) && ')' === str.charAt(str.length - 1);
|
|
648
|
+
|
|
649
|
+
if (alreadyHasBrackets) {
|
|
650
|
+
// check that it's the form "((x)..(y))" rather than "(x)..(y)"
|
|
651
|
+
var idx = 0,
|
|
652
|
+
open = 1;
|
|
653
|
+
|
|
654
|
+
while (str.length - 1 > ++idx) {
|
|
655
|
+
var c = str.charAt(idx);
|
|
656
|
+
|
|
657
|
+
if ('(' === c) {
|
|
658
|
+
open++;
|
|
659
|
+
} else if (')' === c) {
|
|
660
|
+
open--;
|
|
661
|
+
if (1 > open) {
|
|
662
|
+
alreadyHasBrackets = false;
|
|
663
|
+
|
|
664
|
+
break;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
if (!alreadyHasBrackets) {
|
|
671
|
+
str = '(' + str + ')';
|
|
648
672
|
}
|
|
649
673
|
}
|
|
650
674
|
|
|
651
675
|
return str;
|
|
652
676
|
}
|
|
653
677
|
|
|
654
|
-
/**
|
|
655
|
-
* Build given string and its corresponding parameter values into
|
|
678
|
+
/**
|
|
679
|
+
* Build given string and its corresponding parameter values into
|
|
656
680
|
* output.
|
|
657
|
-
*
|
|
681
|
+
*
|
|
658
682
|
* @param {String} str
|
|
659
683
|
* @param {Array} values
|
|
660
684
|
* @param {Object} [options] Additional options.
|
|
@@ -690,7 +714,7 @@ function _buildSquel() {
|
|
|
690
714
|
var value = values[++curValue];
|
|
691
715
|
|
|
692
716
|
if (buildParameterized) {
|
|
693
|
-
if (
|
|
717
|
+
if (cls.isSquelBuilder(value)) {
|
|
694
718
|
var ret = value._toParamString({
|
|
695
719
|
buildParameterized: buildParameterized,
|
|
696
720
|
nested: true
|
|
@@ -734,10 +758,10 @@ function _buildSquel() {
|
|
|
734
758
|
};
|
|
735
759
|
}
|
|
736
760
|
|
|
737
|
-
/**
|
|
738
|
-
* Build all given strings and their corresponding parameter values into
|
|
761
|
+
/**
|
|
762
|
+
* Build all given strings and their corresponding parameter values into
|
|
739
763
|
* output.
|
|
740
|
-
*
|
|
764
|
+
*
|
|
741
765
|
* @param {Array} strings
|
|
742
766
|
* @param {Array} strValues array of value arrays corresponding to each string.
|
|
743
767
|
* @param {Object} [options] Additional options.
|
|
@@ -781,7 +805,7 @@ function _buildSquel() {
|
|
|
781
805
|
|
|
782
806
|
/**
|
|
783
807
|
* Get parameterized representation of this instance.
|
|
784
|
-
*
|
|
808
|
+
*
|
|
785
809
|
* @param {Object} [options] Options.
|
|
786
810
|
* @param {Boolean} [options.buildParameterized] Whether to build paramterized string. Default is false.
|
|
787
811
|
* @param {Boolean} [options.nested] Whether this expression is nested within another.
|
|
@@ -839,10 +863,10 @@ function _buildSquel() {
|
|
|
839
863
|
*
|
|
840
864
|
* SQL expressions are used in WHERE and ON clauses to filter data by various criteria.
|
|
841
865
|
*
|
|
842
|
-
* Expressions can be nested. Nested expression contains can themselves
|
|
843
|
-
* contain nested expressions. When rendered a nested expression will be
|
|
866
|
+
* Expressions can be nested. Nested expression contains can themselves
|
|
867
|
+
* contain nested expressions. When rendered a nested expression will be
|
|
844
868
|
* fully contained within brackets.
|
|
845
|
-
*
|
|
869
|
+
*
|
|
846
870
|
* All the build methods in this object return the object instance for chained method calling purposes.
|
|
847
871
|
*/
|
|
848
872
|
cls.Expression = function (_cls$BaseBuilder) {
|
|
@@ -918,7 +942,7 @@ function _buildSquel() {
|
|
|
918
942
|
var expr = node.expr;
|
|
919
943
|
var para = node.para;
|
|
920
944
|
|
|
921
|
-
var _ref =
|
|
945
|
+
var _ref = cls.isSquelBuilder(expr) ? expr._toParamString({
|
|
922
946
|
buildParameterized: options.buildParameterized,
|
|
923
947
|
nested: true
|
|
924
948
|
}) : this._buildString(expr, para, {
|
|
@@ -1320,7 +1344,7 @@ function _buildSquel() {
|
|
|
1320
1344
|
|
|
1321
1345
|
var tableStr = void 0;
|
|
1322
1346
|
|
|
1323
|
-
if (
|
|
1347
|
+
if (cls.isSquelBuilder(table)) {
|
|
1324
1348
|
var _table$_toParamString = table._toParamString({
|
|
1325
1349
|
buildParameterized: options.buildParameterized,
|
|
1326
1350
|
nested: true
|
|
@@ -2135,7 +2159,7 @@ function _buildSquel() {
|
|
|
2135
2159
|
cls.AbstractConditionBlock = function (_cls$Block10) {
|
|
2136
2160
|
_inherits(_class23, _cls$Block10);
|
|
2137
2161
|
|
|
2138
|
-
/**
|
|
2162
|
+
/**
|
|
2139
2163
|
* @param {String} options.verb The condition verb.
|
|
2140
2164
|
*/
|
|
2141
2165
|
|
|
@@ -2189,7 +2213,7 @@ function _buildSquel() {
|
|
|
2189
2213
|
var expr = _step10$value.expr;
|
|
2190
2214
|
var values = _step10$value.values;
|
|
2191
2215
|
|
|
2192
|
-
var ret =
|
|
2216
|
+
var ret = cls.isSquelBuilder(expr) ? expr._toParamString({
|
|
2193
2217
|
buildParameterized: options.buildParameterized
|
|
2194
2218
|
}) : this._buildString(expr, values, {
|
|
2195
2219
|
buildParameterized: options.buildParameterized
|
|
@@ -2498,7 +2522,7 @@ function _buildSquel() {
|
|
|
2498
2522
|
|
|
2499
2523
|
var tableStr = void 0;
|
|
2500
2524
|
|
|
2501
|
-
if (
|
|
2525
|
+
if (cls.isSquelBuilder(table)) {
|
|
2502
2526
|
var ret = table._toParamString({
|
|
2503
2527
|
buildParameterized: options.buildParameterized,
|
|
2504
2528
|
nested: true
|
|
@@ -2521,7 +2545,7 @@ function _buildSquel() {
|
|
|
2521
2545
|
|
|
2522
2546
|
var _ret4 = void 0;
|
|
2523
2547
|
|
|
2524
|
-
if (
|
|
2548
|
+
if (cls.isSquelBuilder(condition)) {
|
|
2525
2549
|
_ret4 = condition._toParamString({
|
|
2526
2550
|
buildParameterized: options.buildParameterized
|
|
2527
2551
|
});
|
|
@@ -2973,7 +2997,7 @@ function _buildSquel() {
|
|
|
2973
2997
|
}(cls.QueryBuilder);
|
|
2974
2998
|
|
|
2975
2999
|
var _squel = {
|
|
2976
|
-
VERSION: '5.
|
|
3000
|
+
VERSION: '5.8.0',
|
|
2977
3001
|
flavour: flavour,
|
|
2978
3002
|
expr: function expr(options) {
|
|
2979
3003
|
return new cls.Expression(options);
|
|
@@ -2998,6 +3022,13 @@ function _buildSquel() {
|
|
|
2998
3022
|
inst.function.apply(inst, arguments);
|
|
2999
3023
|
return inst;
|
|
3000
3024
|
},
|
|
3025
|
+
rstr: function rstr() {
|
|
3026
|
+
var inst = new cls.FunctionBlock({
|
|
3027
|
+
rawNesting: true
|
|
3028
|
+
});
|
|
3029
|
+
inst.function.apply(inst, arguments);
|
|
3030
|
+
return inst;
|
|
3031
|
+
},
|
|
3001
3032
|
registerValueHandler: cls.registerValueHandler
|
|
3002
3033
|
};
|
|
3003
3034
|
|
|
@@ -3658,21 +3689,93 @@ squel.flavours['postgres'] = function (_squel) {
|
|
|
3658
3689
|
|
|
3659
3690
|
var _this57 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class50).call(this, options));
|
|
3660
3691
|
|
|
3661
|
-
_this57.
|
|
3692
|
+
_this57._fields = [];
|
|
3662
3693
|
return _this57;
|
|
3663
3694
|
}
|
|
3664
3695
|
|
|
3665
3696
|
_createClass(_class50, [{
|
|
3666
3697
|
key: 'returning',
|
|
3667
|
-
value: function returning(
|
|
3668
|
-
|
|
3698
|
+
value: function returning(field) {
|
|
3699
|
+
var alias = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
|
|
3700
|
+
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
|
3701
|
+
|
|
3702
|
+
alias = alias ? this._sanitizeFieldAlias(alias) : alias;
|
|
3703
|
+
field = this._sanitizeField(field);
|
|
3704
|
+
|
|
3705
|
+
// if field-alias combo already present then don't add
|
|
3706
|
+
var existingField = this._fields.filter(function (f) {
|
|
3707
|
+
return f.name === field && f.alias === alias;
|
|
3708
|
+
});
|
|
3709
|
+
if (existingField.length) {
|
|
3710
|
+
return this;
|
|
3711
|
+
}
|
|
3712
|
+
|
|
3713
|
+
this._fields.push({
|
|
3714
|
+
name: field,
|
|
3715
|
+
alias: alias,
|
|
3716
|
+
options: options
|
|
3717
|
+
});
|
|
3669
3718
|
}
|
|
3670
3719
|
}, {
|
|
3671
3720
|
key: '_toParamString',
|
|
3672
3721
|
value: function _toParamString() {
|
|
3722
|
+
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
|
3723
|
+
var queryBuilder = options.queryBuilder;
|
|
3724
|
+
var buildParameterized = options.buildParameterized;
|
|
3725
|
+
|
|
3726
|
+
|
|
3727
|
+
var totalStr = '',
|
|
3728
|
+
totalValues = [];
|
|
3729
|
+
|
|
3730
|
+
var _iteratorNormalCompletion18 = true;
|
|
3731
|
+
var _didIteratorError18 = false;
|
|
3732
|
+
var _iteratorError18 = undefined;
|
|
3733
|
+
|
|
3734
|
+
try {
|
|
3735
|
+
for (var _iterator18 = this._fields[Symbol.iterator](), _step18; !(_iteratorNormalCompletion18 = (_step18 = _iterator18.next()).done); _iteratorNormalCompletion18 = true) {
|
|
3736
|
+
var field = _step18.value;
|
|
3737
|
+
|
|
3738
|
+
totalStr = _pad(totalStr, ", ");
|
|
3739
|
+
|
|
3740
|
+
var name = field.name;
|
|
3741
|
+
var alias = field.alias;
|
|
3742
|
+
var _options2 = field.options;
|
|
3743
|
+
|
|
3744
|
+
|
|
3745
|
+
if (typeof name === 'string') {
|
|
3746
|
+
totalStr += this._formatFieldName(name, _options2);
|
|
3747
|
+
} else {
|
|
3748
|
+
var ret = name._toParamString({
|
|
3749
|
+
nested: true,
|
|
3750
|
+
buildParameterized: buildParameterized
|
|
3751
|
+
});
|
|
3752
|
+
|
|
3753
|
+
totalStr += ret.text;
|
|
3754
|
+
totalValues.push.apply(totalValues, _toConsumableArray(ret.values));
|
|
3755
|
+
}
|
|
3756
|
+
|
|
3757
|
+
if (alias) {
|
|
3758
|
+
totalStr += ' AS ' + this._formatFieldAlias(alias);
|
|
3759
|
+
}
|
|
3760
|
+
}
|
|
3761
|
+
} catch (err) {
|
|
3762
|
+
_didIteratorError18 = true;
|
|
3763
|
+
_iteratorError18 = err;
|
|
3764
|
+
} finally {
|
|
3765
|
+
try {
|
|
3766
|
+
if (!_iteratorNormalCompletion18 && _iterator18.return) {
|
|
3767
|
+
_iterator18.return();
|
|
3768
|
+
}
|
|
3769
|
+
} finally {
|
|
3770
|
+
if (_didIteratorError18) {
|
|
3771
|
+
throw _iteratorError18;
|
|
3772
|
+
}
|
|
3773
|
+
}
|
|
3774
|
+
}
|
|
3775
|
+
|
|
3673
3776
|
return {
|
|
3674
|
-
text:
|
|
3675
|
-
values:
|
|
3777
|
+
text: totalStr.length > 0 ? 'RETURNING ' + totalStr : '',
|
|
3778
|
+
values: totalValues
|
|
3676
3779
|
};
|
|
3677
3780
|
}
|
|
3678
3781
|
}]);
|
|
@@ -3706,15 +3809,15 @@ squel.flavours['postgres'] = function (_squel) {
|
|
|
3706
3809
|
var parts = [];
|
|
3707
3810
|
var values = [];
|
|
3708
3811
|
|
|
3709
|
-
var
|
|
3710
|
-
var
|
|
3711
|
-
var
|
|
3812
|
+
var _iteratorNormalCompletion19 = true;
|
|
3813
|
+
var _didIteratorError19 = false;
|
|
3814
|
+
var _iteratorError19 = undefined;
|
|
3712
3815
|
|
|
3713
3816
|
try {
|
|
3714
|
-
for (var
|
|
3715
|
-
var
|
|
3716
|
-
var alias =
|
|
3717
|
-
var table =
|
|
3817
|
+
for (var _iterator19 = this._tables[Symbol.iterator](), _step19; !(_iteratorNormalCompletion19 = (_step19 = _iterator19.next()).done); _iteratorNormalCompletion19 = true) {
|
|
3818
|
+
var _step19$value = _step19.value;
|
|
3819
|
+
var alias = _step19$value.alias;
|
|
3820
|
+
var table = _step19$value.table;
|
|
3718
3821
|
|
|
3719
3822
|
var ret = table._toParamString({
|
|
3720
3823
|
buildParameterized: options.buildParameterized,
|
|
@@ -3725,16 +3828,16 @@ squel.flavours['postgres'] = function (_squel) {
|
|
|
3725
3828
|
values.push.apply(values, _toConsumableArray(ret.values));
|
|
3726
3829
|
}
|
|
3727
3830
|
} catch (err) {
|
|
3728
|
-
|
|
3729
|
-
|
|
3831
|
+
_didIteratorError19 = true;
|
|
3832
|
+
_iteratorError19 = err;
|
|
3730
3833
|
} finally {
|
|
3731
3834
|
try {
|
|
3732
|
-
if (!
|
|
3733
|
-
|
|
3835
|
+
if (!_iteratorNormalCompletion19 && _iterator19.return) {
|
|
3836
|
+
_iterator19.return();
|
|
3734
3837
|
}
|
|
3735
3838
|
} finally {
|
|
3736
|
-
if (
|
|
3737
|
-
throw
|
|
3839
|
+
if (_didIteratorError19) {
|
|
3840
|
+
throw _iteratorError19;
|
|
3738
3841
|
}
|
|
3739
3842
|
}
|
|
3740
3843
|
}
|
package/dist/squel.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! squel | https://github.com/hiddentao/squel | BSD license */!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.squel=e()}(this,function(){"use strict";function t(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function e(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){return t.length?t+e:t}function o(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];if(t&&n){var i=!0,o=!1,a=void 0;try{for(var l,u=function(){var e=l.value;"object"===("undefined"==typeof e?"undefined":p(e))&&Object.getOwnPropertyNames(e).forEach(function(n){t[n]=e[n]})},s=n[Symbol.iterator]();!(i=(l=s.next()).done);i=!0)u()}catch(c){o=!0,a=c}finally{try{!i&&s["return"]&&s["return"]()}finally{if(o)throw a}}}return t}function a(t){return t&&t.constructor.prototype===Object.prototype}function l(t){return t&&t.constructor.prototype===Array.prototype}function u(t){if(t&&t.constructor&&t.constructor.toString){var e=t.constructor.toString().match(/function\s*(\w+)/);if(e&&2===e.length)return e[1]}}function s(t){if(!t)return t;if("function"==typeof t.clone)return t.clone();if(!a(t)&&!l(t))return JSON.parse(JSON.stringify(t));var e=function(){var e=new t.constructor;return Object.getOwnPropertyNames(t).forEach(function(n){"function"!=typeof t[n]&&(e[n]=s(t[n]))}),{v:e}}();return"object"===("undefined"==typeof e?"undefined":p(e))?e.v:void 0}function c(t,e,n){var r="undefined"==typeof e?"undefined":p(e);if("function"!==r&&"string"!==r)throw new Error("type must be a class constructor or string");if("function"!=typeof n)throw new Error("handler must be a function");var i=!0,o=!1,a=void 0;try{for(var l,u=t[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value;if(s.type===e)return void(s.handler=n)}}catch(c){o=!0,a=c}finally{try{!i&&u["return"]&&u["return"]()}finally{if(o)throw a}}t.push({type:e,handler:n})}function f(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];var i=!0,o=!1,a=void 0;try{for(var l,u=n[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,c=!0,f=!1,h=void 0;try{for(var v,d=s[Symbol.iterator]();!(c=(v=d.next()).done);c=!0){var y=v.value;if(("undefined"==typeof t?"undefined":p(t))===y.type||"string"!=typeof y.type&&t instanceof y.type)return y.handler}}catch(g){f=!0,h=g}finally{try{!c&&d["return"]&&d["return"]()}finally{if(f)throw h}}}}catch(g){o=!0,a=g}finally{try{!i&&u["return"]&&u["return"]()}finally{if(o)throw a}}}function h(){var h=arguments.length<=0||void 0===arguments[0]?null:arguments[0],y={_getObjectClassName:u};y.DefaultQueryBuilderOptions={autoQuoteTableNames:!1,autoQuoteFieldNames:!1,autoQuoteAliasNames:!0,useAsForTableAliasNames:!1,nameQuoteCharacter:"`",tableAliasQuoteCharacter:"`",fieldAliasQuoteCharacter:'"',valueHandlers:[],parameterCharacter:"?",numberedParameters:!1,numberedParametersPrefix:"$",numberedParametersStartAt:1,replaceSingleQuotes:!1,singleQuoteReplacement:"''",separator:" ",stringFormatter:null},y.globalValueHandlers=[],y.registerValueHandler=function(t,e){c(y.globalValueHandlers,t,e)},y.Cloneable=function(){function t(){r(this,t)}return d(t,[{key:"clone",value:function(){var t=new this.constructor;return o(t,s(o({},this)))}}]),t}(),y.BaseBuilder=function(i){function a(t){r(this,a);var n=e(this,Object.getPrototypeOf(a).call(this)),i=JSON.parse(JSON.stringify(y.DefaultQueryBuilderOptions));return n.options=o({},i,t),n}return n(a,i),d(a,[{key:"registerValueHandler",value:function(t,e){return c(this.options.valueHandlers,t,e),this}},{key:"_sanitizeExpression",value:function(t){if(!(t instanceof y.BaseBuilder)&&"string"!=typeof t)throw new Error("expression must be a string or builder instance");return t}},{key:"_sanitizeName",value:function(t,e){if("string"!=typeof t)throw new Error(e+" must be a string");return t}},{key:"_sanitizeField",value:function(t){return t instanceof y.BaseBuilder||(t=this._sanitizeName(t,"field name")),t}},{key:"_sanitizeBaseBuilder",value:function(t){if(t instanceof y.BaseBuilder)return t;throw new Error("must be a builder instance")}},{key:"_sanitizeTable",value:function(t){if("string"!=typeof t)try{t=this._sanitizeBaseBuilder(t)}catch(e){throw new Error("table name must be a string or a builder")}else t=this._sanitizeName(t,"table");return t}},{key:"_sanitizeTableAlias",value:function(t){return this._sanitizeName(t,"table alias")}},{key:"_sanitizeFieldAlias",value:function(t){return this._sanitizeName(t,"field alias")}},{key:"_sanitizeLimitOffset",value:function(t){if(t=parseInt(t),0>t||isNaN(t))throw new Error("limit/offset must be >= 0");return t}},{key:"_sanitizeValue",value:function(t){var e="undefined"==typeof t?"undefined":p(t);if(null===t);else if("string"===e||"number"===e||"boolean"===e);else if(t instanceof y.BaseBuilder);else{var n=!!f(t,this.options.valueHandlers,y.globalValueHandlers);if(!n)throw new Error("field value must be a string, number, boolean, null or one of the registered custom value types")}return t}},{key:"_escapeValue",value:function(t){return this.options.replaceSingleQuotes?t.replace(/\'/g,this.options.singleQuoteReplacement):t}},{key:"_formatTableName",value:function(t){if(this.options.autoQuoteTableNames){var e=this.options.nameQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatFieldAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.fieldAliasQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatTableAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.tableAliasQuoteCharacter;t=""+e+t+e}return this.options.useAsForTableAliasNames?"AS "+t:t}},{key:"_formatFieldName",value:function(t){var e=this,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return this.options.autoQuoteFieldNames&&!function(){var r=e.options.nameQuoteCharacter;t=n.ignorePeriodsForFieldNameQuotes?""+r+t+r:t.split(".").map(function(t){return"*"===t?t:""+r+t+r}).join(".")}(),t}},{key:"_formatCustomValue",value:function(t,e,n){var r=f(t,this.options.valueHandlers,y.globalValueHandlers);return r&&(t=r(t,e,n)),{formatted:!!r,value:t}}},{key:"_formatValueForParamArray",value:function(t){var e=this,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return l(t)?t.map(function(t){return e._formatValueForParamArray(t,n)}):this._formatCustomValue(t,!0,n).value}},{key:"_formatValueForQueryString",value:function(t){var e=this,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=this._formatCustomValue(t,!1,n),i=r.formatted,o=r.value;if(i)return this._applyNestingFormatting(o);if(l(o))o=o.map(function(t){return e._formatValueForQueryString(t)}),o=this._applyNestingFormatting(o.join(", "));else{var a="undefined"==typeof o?"undefined":p(o);if(null===o)o="NULL";else if("boolean"===a)o=o?"TRUE":"FALSE";else if(o instanceof y.BaseBuilder)o=this._applyNestingFormatting(o.toString());else if("number"!==a){if("string"===a&&this.options.stringFormatter)return this.options.stringFormatter(o);if(n.dontQuote)o=""+o;else{var u=this._escapeValue(o);o="'"+u+"'"}}}return o}},{key:"_applyNestingFormatting",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];return t&&"string"==typeof t&&e&&("("!==t.charAt(0)||")"!==t.charAt(t.length-1))?"("+t+")":t}},{key:"_buildString",value:function(e,n){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],i=r.nested,o=r.buildParameterized,a=r.formattingOptions;n=n||[],e=e||"";for(var u="",s=-1,c=[],f=this.options.parameterCharacter,h=0;e.length>h;)if(e.substr(h,f.length)===f){var v=n[++s];if(o)if(v instanceof y.BaseBuilder){var d=v._toParamString({buildParameterized:o,nested:!0});u+=d.text,c.push.apply(c,t(d.values))}else if(v=this._formatValueForParamArray(v,a),l(v)){var p=v.map(function(){return f}).join(", ");u+="("+p+")",c.push.apply(c,t(v))}else u+=f,c.push(v);else u+=this._formatValueForQueryString(v,a);h+=f.length}else u+=e.charAt(h),h++;return{text:this._applyNestingFormatting(u,!!i),values:c}}},{key:"_buildManyStrings",value:function(e,n){for(var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],i=[],o=[],a=0;e.length>a;++a){var l=e[a],u=n[a],s=this._buildString(l,u,{buildParameterized:r.buildParameterized,nested:!1}),c=s.text,f=s.values;i.push(c),o.push.apply(o,t(f))}return i=i.join(this.options.separator),{text:i.length?this._applyNestingFormatting(i,!!r.nested):"",values:o}}},{key:"_toParamString",value:function(t){throw new Error("Not yet implemented")}},{key:"toString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(t).text}},{key:"toParam",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(o({},t,{buildParameterized:!0}))}}]),a}(y.Cloneable),y.Expression=function(i){function o(t){r(this,o);var n=e(this,Object.getPrototypeOf(o).call(this,t));return n._nodes=[],n}return n(o,i),d(o,[{key:"and",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];return t=this._sanitizeExpression(t),this._nodes.push({type:"AND",expr:t,para:n}),this}},{key:"or",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];return t=this._sanitizeExpression(t),this._nodes.push({type:"OR",expr:t,para:n}),this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=[],r=[],i=!0,o=!1,a=void 0;try{for(var l,u=this._nodes[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,c=s.type,f=s.expr,h=s.para,v=f instanceof y.BaseBuilder?f._toParamString({buildParameterized:e.buildParameterized,nested:!0}):this._buildString(f,h,{buildParameterized:e.buildParameterized}),d=v.text,p=v.values;n.length&&n.push(c),n.push(d),r.push.apply(r,t(p))}}catch(g){o=!0,a=g}finally{try{!i&&u["return"]&&u["return"]()}finally{if(o)throw a}}return n=n.join(" "),{text:this._applyNestingFormatting(n,!!e.nested),values:r}}}]),o}(y.BaseBuilder),y.Case=function(l){function u(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];r(this,u);var i=e(this,Object.getPrototypeOf(u).call(this,n));return a(t)&&(n=t,t=null),t&&(i._fieldName=i._sanitizeField(t)),i.options=o({},y.DefaultQueryBuilderOptions,n),i._cases=[],i._elseValue=null,i}return n(u,l),d(u,[{key:"when",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];return this._cases.unshift({expression:t,values:n}),this}},{key:"then",value:function(t){if(0==this._cases.length)throw new Error("when() needs to be called first");return this._cases[0].result=t,this}},{key:"else",value:function(t){return this._elseValue=t,this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[],o=!0,a=!1,l=void 0;try{for(var u,s=this._cases[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var c=u.value,f=c.expression,h=c.values,v=c.result;n=i(n," ");var d=this._buildString(f,h,{buildParameterized:e.buildParameterized,nested:!0});n+="WHEN "+d.text+" THEN "+this._formatValueForQueryString(v),r.push.apply(r,t(d.values))}}catch(p){a=!0,l=p}finally{try{!o&&s["return"]&&s["return"]()}finally{if(a)throw l}}return n.length?(n+=" ELSE "+this._formatValueForQueryString(this._elseValue)+" END",this._fieldName&&(n=this._fieldName+" "+n),n="CASE "+n):n=this._formatValueForQueryString(this._elseValue),{text:n,values:r}}}]),u}(y.BaseBuilder),y.Block=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,t))}return n(i,t),d(i,[{key:"exposedMethods",value:function(){for(var t={},e=this;e;)Object.getOwnPropertyNames(e).forEach(function(n){"constructor"===n||"function"!=typeof e[n]||"_"===n.charAt(0)||y.Block.prototype[n]||(t[n]=e[n])}),e=Object.getPrototypeOf(e);return t}}]),i}(y.BaseBuilder),y.StringBlock=function(t){function i(t,n){r(this,i);var o=e(this,Object.getPrototypeOf(i).call(this,t));return o._str=n,o}return n(i,t),d(i,[{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._str,values:[]}}}]),i}(y.Block),y.FunctionBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._strings=[],n._values=[],n}return n(i,t),d(i,[{key:"function",value:function(t){this._strings.push(t);for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];this._values.push(n)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._buildManyStrings(this._strings,this._values,t)}}]),i}(y.Block),y.registerValueHandler(y.FunctionBlock,function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];return e?t.toParam():t.toString()}),y.AbstractTableBlock=function(o){function a(t,n){r(this,a);var i=e(this,Object.getPrototypeOf(a).call(this,t));return i._tables=[],i}return n(a,o),d(a,[{key:"_table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];e=e?this._sanitizeTableAlias(e):e,t=this._sanitizeTable(t),this.options.singleTable&&(this._tables=[]),this._tables.push({table:t,alias:e})}},{key:"_hasTable",value:function(){return 0<this._tables.length}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[];if(this._hasTable()){var o=!0,a=!1,l=void 0;try{for(var u,s=this._tables[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var c=u.value,f=c.table,h=c.alias;n=i(n,", ");var v=void 0;if(f instanceof y.BaseBuilder){var d=f._toParamString({buildParameterized:e.buildParameterized,nested:!0}),p=d.text,g=d.values;v=p,r.push.apply(r,t(g))}else v=this._formatTableName(f);h&&(v+=" "+this._formatTableAlias(h)),n+=v}}catch(_){a=!0,l=_}finally{try{!o&&s["return"]&&s["return"]()}finally{if(a)throw l}}this.options.prefix&&(n=this.options.prefix+" "+n)}return{text:n,values:r}}}]),a}(y.Block),y.TargetTableBlock=function(t){function i(){return r(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return n(i,t),d(i,[{key:"target",value:function(t){this._table(t)}}]),i}(y.AbstractTableBlock),y.UpdateTableBlock=function(t){function i(){return r(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return n(i,t),d(i,[{key:"table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("table() needs to be called");return v(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t)}}]),i}(y.AbstractTableBlock),y.FromTableBlock=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,o({},t,{prefix:"FROM"})))}return n(i,t),d(i,[{key:"from",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}}]),i}(y.AbstractTableBlock),y.IntoTableBlock=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,o({},t,{prefix:"INTO",singleTable:!0})))}return n(i,t),d(i,[{key:"into",value:function(t){this._table(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("into() needs to be called");return v(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t)}}]),i}(y.AbstractTableBlock),y.GetFieldBlock=function(o){function a(t){r(this,a);var n=e(this,Object.getPrototypeOf(a).call(this,t));return n._fields=[],n}return n(a,o),d(a,[{key:"fields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(l(t)){var n=!0,r=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var u=o.value;this.field(u,null,e)}}catch(s){r=!0,i=s}finally{try{!n&&a["return"]&&a["return"]()}finally{if(r)throw i}}}else for(var c in t){var f=t[c];this.field(c,f,e)}}},{key:"field",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e=e?this._sanitizeFieldAlias(e):e,t=this._sanitizeField(t);var r=this._fields.filter(function(n){return n.name===t&&n.alias===e});return r.length?this:void this._fields.push({name:t,alias:e,options:n})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.queryBuilder,r=e.buildParameterized,o="",a=[],l=!0,u=!1,s=void 0;try{for(var c,f=this._fields[Symbol.iterator]();!(l=(c=f.next()).done);l=!0){var h=c.value;o=i(o,", ");var v=h.name,d=h.alias,p=h.options;if("string"==typeof v)o+=this._formatFieldName(v,p);else{var g=v._toParamString({nested:!0,buildParameterized:r});o+=g.text,a.push.apply(a,t(g.values))}d&&(o+=" AS "+this._formatFieldAlias(d))}}catch(_){u=!0,s=_}finally{try{!l&&f["return"]&&f["return"]()}finally{if(u)throw s}}if(!o.length){var b=n&&n.getBlock(y.FromTableBlock);b&&b._hasTable()&&(o="*")}return{text:o,values:a}}}]),a}(y.Block),y.AbstractSetFieldBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._reset(),n}return n(i,t),d(i,[{key:"_reset",value:function(){this._fields=[],this._values=[[]],this._valueOptions=[[]]}},{key:"_set",value:function(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if(this._values.length>1)throw new Error("Cannot set multiple rows of fields this way.");"undefined"!=typeof e&&(e=this._sanitizeValue(e)),t=this._sanitizeField(t);var r=this._fields.indexOf(t);-1===r&&(this._fields.push(t),r=this._fields.length-1),this._values[0][r]=e,this._valueOptions[0][r]=n}},{key:"_setFields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("object"!==("undefined"==typeof t?"undefined":p(t)))throw new Error("Expected an object but got "+("undefined"==typeof t?"undefined":p(t)));for(var n in t)this._set(n,t[n],e)}},{key:"_setFieldsRows",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(!l(t))throw new Error("Expected an array of objects but got "+("undefined"==typeof t?"undefined":p(t)));this._reset();for(var n=0;t.length>n;++n){var r=t[n];for(var i in r){var o=r[i];i=this._sanitizeField(i),o=this._sanitizeValue(o);var a=this._fields.indexOf(i);if(n>0&&-1===a)throw new Error("All fields in subsequent rows must match the fields in the first row");-1===a&&(this._fields.push(i),a=this._fields.length-1),l(this._values[n])||(this._values[n]=[],this._valueOptions[n]=[]),this._values[n][a]=o,this._valueOptions[n][a]=e}}}}]),i}(y.Block),y.SetFieldBlock=function(o){function a(){return r(this,a),e(this,Object.getPrototypeOf(a).apply(this,arguments))}return n(a,o),d(a,[{key:"set",value:function(t,e,n){this._set(t,e,n)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.buildParameterized;if(0>=this._fields.length)throw new Error("set() needs to be called");for(var r="",o=[],a=0;a<this._fields.length;++a){r=i(r,", ");var l=this._formatFieldName(this._fields[a]),u=this._values[0][a];0>l.indexOf("=")&&(l=l+" = "+this.options.parameterCharacter);var s=this._buildString(l,[u],{buildParameterized:n,formattingOptions:this._valueOptions[0][a]});r+=s.text,o.push.apply(o,t(s.values))}return{text:"SET "+r,values:o}}}]),a}(y.AbstractSetFieldBlock),y.InsertFieldValueBlock=function(o){function a(){return r(this,a),e(this,Object.getPrototypeOf(a).apply(this,arguments))}return n(a,o),d(a,[{key:"set",value:function(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._set(t,e,n)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"setFieldsRows",value:function(t,e){this._setFieldsRows(t,e)}},{key:"_toParamString",value:function(){for(var e=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=n.buildParameterized,o=this._fields.map(function(t){return e._formatFieldName(t)}).join(", "),a=[],l=[],u=0;u<this._values.length;++u){a[u]="";for(var s=0;s<this._values[u].length;++s){var c=this._buildString(this.options.parameterCharacter,[this._values[u][s]],{buildParameterized:r,formattingOptions:this._valueOptions[u][s]});l.push.apply(l,t(c.values)),a[u]=i(a[u],", "),a[u]+=c.text}}return{text:o.length?"("+o+") VALUES ("+a.join("), (")+")":"",values:l}}}]),a}(y.AbstractSetFieldBlock),y.InsertFieldsFromQueryBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._fields=[],n._query=null,n}return n(i,t),d(i,[{key:"fromQuery",value:function(t,e){var n=this;this._fields=t.map(function(t){return n._sanitizeField(t)}),this._query=this._sanitizeBaseBuilder(e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e="",n=[];if(this._fields.length&&this._query){var r=this._query._toParamString({buildParameterized:t.buildParameterized,nested:!0}),i=r.text,o=r.values;e="("+this._fields.join(", ")+") "+this._applyNestingFormatting(i),n=o}return{text:e,values:n}}}]),i}(y.Block),y.DistinctBlock=function(t){function i(){return r(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return n(i,t),d(i,[{key:"distinct",value:function(){this._useDistinct=!0}},{key:"_toParamString",value:function(){return{text:this._useDistinct?"DISTINCT":"",values:[]}}}]),i}(y.Block),y.GroupByBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._groups=[],n}return n(i,t),d(i,[{key:"group",value:function(t){this._groups.push(this._sanitizeField(t))}},{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._groups.length?"GROUP BY "+this._groups.join(", "):"",values:[]}}}]),i}(y.Block),y.AbstractVerbSingleValueBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._value=0,n}return n(i,t),d(i,[{key:"_setValue",value:function(t){this._value=this._sanitizeLimitOffset(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=0<this._value?this.options.verb+" "+this.options.parameterCharacter:"",n=null!==this._value?[this._value]:[];return this._buildString(e,n,t)}}]),i}(y.Block),y.OffsetBlock=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,o({},t,{verb:"OFFSET"})))}return n(i,t),d(i,[{key:"offset",value:function(t){this._setValue(t)}}]),i}(y.AbstractVerbSingleValueBlock),y.LimitBlock=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,o({},t,{verb:"LIMIT"})))}return n(i,t),d(i,[{key:"limit",value:function(t){this._setValue(t)}}]),i}(y.AbstractVerbSingleValueBlock),y.AbstractConditionBlock=function(i){function o(t){r(this,o);var n=e(this,Object.getPrototypeOf(o).call(this,t));return n._conditions=[],n}return n(o,i),d(o,[{key:"_condition",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];t=this._sanitizeExpression(t),this._conditions.push({expr:t,values:n})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=[],r=[],i=!0,o=!1,a=void 0;try{for(var l,u=this._conditions[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,c=s.expr,f=s.values,h=c instanceof y.BaseBuilder?c._toParamString({buildParameterized:e.buildParameterized}):this._buildString(c,f,{buildParameterized:e.buildParameterized});h.text.length&&n.push(h.text),r.push.apply(r,t(h.values))}}catch(v){o=!0,a=v}finally{try{!i&&u["return"]&&u["return"]()}finally{if(o)throw a}}return n.length&&(n=n.join(") AND (")),{text:n.length?this.options.verb+" ("+n+")":"",values:r}}}]),o}(y.Block),y.WhereBlock=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,o({},t,{verb:"WHERE"})))}return n(i,t),d(i,[{key:"where",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];this._condition.apply(this,[t].concat(n))}}]),i}(y.AbstractConditionBlock),y.HavingBlock=function(t){function i(t){return r(this,i),e(this,Object.getPrototypeOf(i).call(this,o({},t,{verb:"HAVING"})))}return n(i,t),d(i,[{key:"having",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];this._condition.apply(this,[t].concat(n))}}]),i}(y.AbstractConditionBlock),y.OrderByBlock=function(o){function a(t){r(this,a);var n=e(this,Object.getPrototypeOf(a).call(this,t));return n._orders=[],n}return n(a,o),d(a,[{key:"order",value:function(t,e){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;n>i;i++)r[i-2]=arguments[i];t=this._sanitizeField(t),"string"!=typeof e&&(void 0===e?e="ASC":null!==e&&(e=e?"ASC":"DESC")),this._orders.push({field:t,dir:e,values:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[],o=!0,a=!1,l=void 0;try{for(var u,s=this._orders[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var c=u.value,f=c.field,h=c.dir,v=c.values;n=i(n,", ");var d=this._buildString(f,v,{buildParameterized:e.buildParameterized});n+=d.text,r.push.apply(r,t(d.values)),null!==h&&(n+=" "+h)}}catch(p){a=!0,l=p}finally{try{!o&&s["return"]&&s["return"]()}finally{if(a)throw l}}return{text:n.length?"ORDER BY "+n:"",values:r}}}]),a}(y.Block),y.JoinBlock=function(o){function a(t){r(this,a);var n=e(this,Object.getPrototypeOf(a).call(this,t));return n._joins=[],n}return n(a,o),d(a,[{key:"join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],r=arguments.length<=3||void 0===arguments[3]?"INNER":arguments[3];t=this._sanitizeTable(t,!0),e=e?this._sanitizeTableAlias(e):e,n=n?this._sanitizeExpression(n):n,this._joins.push({type:r,table:t,alias:e,condition:n})}},{key:"left_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,n,"LEFT")}},{key:"right_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,n,"RIGHT")}},{key:"outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,n,"OUTER")}},{key:"left_outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,n,"LEFT OUTER")}},{key:"full_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,n,"FULL")}},{key:"cross_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,n,"CROSS")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[],o=!0,a=!1,l=void 0;try{for(var u,s=this._joins[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var c=u.value,f=c.type,h=c.table,v=c.alias,d=c.condition;n=i(n,this.options.separator);var p=void 0;if(h instanceof y.BaseBuilder){var g=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});r.push.apply(r,t(g.values)),p=g.text}else p=this._formatTableName(h);if(n+=f+" JOIN "+p,v&&(n+=" "+this._formatTableAlias(v)),d){n+=" ON ";var _=void 0;_=d instanceof y.BaseBuilder?d._toParamString({buildParameterized:e.buildParameterized}):this._buildString(d,[],{buildParameterized:e.buildParameterized}),n+=this._applyNestingFormatting(_.text),r.push.apply(r,t(_.values))}}}catch(b){a=!0,l=b}finally{try{!o&&s["return"]&&s["return"]()}finally{if(a)throw l}}return{text:n,values:r}}}]),a}(y.Block),y.UnionBlock=function(o){function a(t){r(this,a);var n=e(this,Object.getPrototypeOf(a).call(this,t));return n._unions=[],n}return n(a,o),d(a,[{key:"union",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?"UNION":arguments[1];t=this._sanitizeTable(t),this._unions.push({type:e,table:t})}},{key:"union_all",value:function(t){this.union(t,"UNION ALL")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[],o=!0,a=!1,l=void 0;try{for(var u,s=this._unions[Symbol.iterator]();!(o=(u=s.next()).done);o=!0){var c=u.value,f=c.type,h=c.table;n=i(n,this.options.separator);var v=void 0;if(h instanceof y.BaseBuilder){var d=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});v=d.text,r.push.apply(r,t(d.values))}else n=this._formatTableName(h);n+=f+" "+v}}catch(p){a=!0,l=p}finally{try{!o&&s["return"]&&s["return"]()}finally{if(a)throw l}}return{text:n,values:r}}}]),a}(y.Block),y.QueryBuilder=function(i){function a(t,n){r(this,a);var i=e(this,Object.getPrototypeOf(a).call(this,t));i.blocks=n||[];var o=!0,l=!1,u=void 0;try{for(var s,c=i.blocks[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var f=s.value,h=f.exposedMethods();for(var v in h){var d=h[v];if(void 0!==i[v])throw new Error("Builder already has a builder method called: "+v);!function(t,e,n){i[e]=function(){for(var e=arguments.length,r=Array(e),o=0;e>o;o++)r[o]=arguments[o];return n.call.apply(n,[t].concat(r)),i}}(f,v,d)}}}catch(p){l=!0,u=p}finally{try{!o&&c["return"]&&c["return"]()}finally{if(l)throw u}}return i}return n(a,i),d(a,[{key:"registerValueHandler",value:function(t,e){var n=!0,r=!1,i=void 0;try{for(var o,l=this.blocks[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var u=o.value;u.registerValueHandler(t,e)}}catch(s){r=!0,i=s}finally{try{!n&&l["return"]&&l["return"]()}finally{if(r)throw i}}return v(Object.getPrototypeOf(a.prototype),"registerValueHandler",this).call(this,t,e),this}},{key:"updateOptions",value:function(t){this.options=o({},this.options,t);var e=!0,n=!1,r=void 0;try{for(var i,a=this.blocks[Symbol.iterator]();!(e=(i=a.next()).done);e=!0){var l=i.value;l.options=o({},l.options,t)}}catch(u){n=!0,r=u}finally{try{!e&&a["return"]&&a["return"]()}finally{if(n)throw r}}}},{key:"_toParamString",value:function(){var e,n=this,r=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];r=o({},this.options,r);var i=this.blocks.map(function(t){return t._toParamString({buildParameterized:r.buildParameterized,queryBuilder:n})}),a=i.map(function(t){return t.text}),l=i.map(function(t){return t.values}),u=a.filter(function(t){return 0<t.length}).join(r.separator),s=(e=[]).concat.apply(e,t(l));return r.nested||r.numberedParameters&&!function(){var t=void 0!==r.numberedParametersStartAt?r.numberedParametersStartAt:1,e=r.parameterCharacter.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");u=u.replace(new RegExp(e,"g"),function(){return""+r.numberedParametersPrefix+t++})}(),{text:this._applyNestingFormatting(u,!!r.nested),values:s}}},{key:"clone",value:function(){var t=this.blocks.map(function(t){return t.clone()});return new this.constructor(this.options,t)}},{key:"getBlock",value:function(t){var e=this.blocks.filter(function(e){return e instanceof t});return e[0]}}]),a}(y.BaseBuilder),y.Select=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new y.StringBlock(t,"SELECT"),new y.FunctionBlock(t),new y.DistinctBlock(t),new y.GetFieldBlock(t),new y.FromTableBlock(t),new y.JoinBlock(t),new y.WhereBlock(t),new y.GroupByBlock(t),new y.HavingBlock(t),new y.OrderByBlock(t),new y.LimitBlock(t),new y.OffsetBlock(t),new y.UnionBlock(t)],
|
|
2
|
-
e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(y.QueryBuilder),y.Update=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new y.StringBlock(t,"UPDATE"),new y.UpdateTableBlock(t),new y.SetFieldBlock(t),new y.WhereBlock(t),new y.OrderByBlock(t),new y.LimitBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(y.QueryBuilder),y.Delete=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new y.StringBlock(t,"DELETE"),new y.TargetTableBlock(t),new y.FromTableBlock(o({},t,{singleTable:!0})),new y.JoinBlock(t),new y.WhereBlock(t),new y.OrderByBlock(t),new y.LimitBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(y.QueryBuilder),y.Insert=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new y.StringBlock(t,"INSERT"),new y.IntoTableBlock(t),new y.InsertFieldValueBlock(t),new y.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(y.QueryBuilder);var g={VERSION:"5.5.0",flavour:h,expr:function(t){return new y.Expression(t)},"case":function(t,e){return new y.Case(t,e)},select:function(t,e){return new y.Select(t,e)},update:function(t,e){return new y.Update(t,e)},insert:function(t,e){return new y.Insert(t,e)},"delete":function(t,e){return new y.Delete(t,e)},str:function(){var t=new y.FunctionBlock;return t["function"].apply(t,arguments),t},registerValueHandler:y.registerValueHandler};return g.remove=g["delete"],g.cls=y,g}var v=function g(t,e,n){null===t&&(t=Function.prototype);var r=Object.getOwnPropertyDescriptor(t,e);if(void 0===r){var i=Object.getPrototypeOf(t);return null===i?void 0:g(i,e,n)}if("value"in r)return r.value;var o=r.get;if(void 0!==o)return o.call(n)},d=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},y=h();return y.flavours={},y.useFlavour=function(){var t=arguments.length<=0||void 0===arguments[0]?null:arguments[0];if(!t)return y;if(y.flavours[t]instanceof Function){var e=h(t);return y.flavours[t].call(null,e),e.flavours=y.flavours,e.useFlavour=y.useFlavour,e}throw new Error("Flavour not available: "+t)},y.flavours.mssql=function(t){var a=t.cls;a.DefaultQueryBuilderOptions.replaceSingleQuotes=!0,a.DefaultQueryBuilderOptions.autoQuoteAliasNames=!1,a.DefaultQueryBuilderOptions.numberedParametersPrefix="@",t.registerValueHandler(Date,function(t){return"'"+t.getUTCFullYear()+"-"+(t.getUTCMonth()+1)+"-"+t.getUTCDate()+" "+t.getUTCHours()+":"+t.getUTCMinutes()+":"+t.getUTCSeconds()+"'"}),a.MssqlLimitOffsetTopBlock=function(t){function i(t){r(this,i);var o=e(this,Object.getPrototypeOf(i).call(this,t));o._limits=null,o._offsets=null;var l=function(t){t=this._sanitizeLimitOffset(t),this._parent._limits=t};return o.ParentBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t.options));return n._parent=t,n}return n(i,t),i}(a.Block),o.LimitBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n.limit=l,n}return n(i,t),d(i,[{key:"_toParamString",value:function(){var t="";return this._parent._limits&&this._parent._offsets&&(t="FETCH NEXT "+this._parent._limits+" ROWS ONLY"),{text:t,values:[]}}}]),i}(o.ParentBlock),o.TopBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n.top=l,n}return n(i,t),d(i,[{key:"_toParamString",value:function(){var t="";return this._parent._limits&&!this._parent._offsets&&(t="TOP ("+this._parent._limits+")"),{text:t,values:[]}}}]),i}(o.ParentBlock),o.OffsetBlock=function(t){function i(){return r(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return n(i,t),d(i,[{key:"offset",value:function(t){this._parent._offsets=this._sanitizeLimitOffset(t)}},{key:"_toParamString",value:function(){var t="";return this._parent._offsets&&(t="OFFSET "+this._parent._offsets+" ROWS"),{text:t,values:[]}}}]),i}(o.ParentBlock),o}return n(i,t),d(i,[{key:"LIMIT",value:function(){return new this.LimitBlock(this)}},{key:"TOP",value:function(){return new this.TopBlock(this)}},{key:"OFFSET",value:function(){return new this.OffsetBlock(this)}}]),i}(a.Block),a.MssqlUpdateTopBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._limits=null,n.limit=n.top=function(t){n._limits=n._sanitizeLimitOffset(t)},n}return n(i,t),d(i,[{key:"_toParamString",value:function(){return{text:this._limits?"TOP ("+this._limits+")":"",values:[]}}}]),i}(a.Block),a.MssqlInsertFieldValueBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._outputs=[],n}return n(i,t),d(i,[{key:"output",value:function(t){var e=this;"string"==typeof t?this._outputs.push("INSERTED."+this._sanitizeField(t)):t.forEach(function(t){e._outputs.push("INSERTED."+e._sanitizeField(t))})}},{key:"_toParamString",value:function(t){var e=v(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t);if(e.text.length&&0<this._outputs.length){var n="OUTPUT "+this._outputs.join(", ")+" ",r=e.text.indexOf("VALUES");e.text=e.text.substr(0,r)+n+e.text.substr(r)}return e}}]),i}(a.InsertFieldValueBlock),a.MssqlUpdateDeleteOutputBlock=function(t){function o(t){r(this,o);var n=e(this,Object.getPrototypeOf(o).call(this,t));return n._outputs=[],n}return n(o,t),d(o,[{key:"outputs",value:function(t){for(var e in t)this.output(e,t[e])}},{key:"output",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];t=this._sanitizeField(t),e=e?this._sanitizeFieldAlias(e):e,this._outputs.push({name:this.options.forDelete?"DELETED."+t:"INSERTED."+t,alias:e})}},{key:"_toParamString",value:function(t){var e="";if(this._outputs.length){var n=!0,r=!1,o=void 0;try{for(var a,l=this._outputs[Symbol.iterator]();!(n=(a=l.next()).done);n=!0){var u=a.value;e=i(e,", "),e+=u.name,u.alias&&(e+=" AS "+this._formatFieldAlias(u.alias))}}catch(s){r=!0,o=s}finally{try{!n&&l["return"]&&l["return"]()}finally{if(r)throw o}}e="OUTPUT "+e}return{text:e,values:[]}}}]),o}(a.Block),a.Select=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];r(this,i);var o=new a.MssqlLimitOffsetTopBlock(t);return n=n||[new a.StringBlock(t,"SELECT"),new a.DistinctBlock(t),o.TOP(),new a.GetFieldBlock(t),new a.FromTableBlock(t),new a.JoinBlock(t),new a.WhereBlock(t),new a.GroupByBlock(t),new a.OrderByBlock(t),o.OFFSET(),o.LIMIT(),new a.UnionBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(a.QueryBuilder),a.Update=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new a.StringBlock(t,"UPDATE"),new a.MssqlUpdateTopBlock(t),new a.UpdateTableBlock(t),new a.SetFieldBlock(t),new a.MssqlUpdateDeleteOutputBlock(t),new a.WhereBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(a.QueryBuilder),a.Delete=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new a.StringBlock(t,"DELETE"),new a.TargetTableBlock(t),new a.FromTableBlock(o({},t,{singleTable:!0})),new a.JoinBlock(t),new a.MssqlUpdateDeleteOutputBlock(o({},t,{forDelete:!0})),new a.WhereBlock(t),new a.OrderByBlock(t),new a.LimitBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(a.QueryBuilder),a.Insert=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new a.StringBlock(t,"INSERT"),new a.IntoTableBlock(t),new a.MssqlInsertFieldValueBlock(t),new a.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(a.QueryBuilder)},y.flavours.mysql=function(o){var a=o.cls;a.MysqlOnDuplicateKeyUpdateBlock=function(o){function a(){return r(this,a),e(this,Object.getPrototypeOf(a).apply(this,arguments))}return n(a,o),d(a,[{key:"onDupUpdate",value:function(t,e,n){this._set(t,e,n)}},{key:"_toParamString",value:function(){for(var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[],o=0;o<this._fields.length;++o){n=i(n,", ");var a=this._fields[o],l=this._values[0][o],u=this._valueOptions[0][o];if("undefined"==typeof l)n+=a;else{var s=this._buildString(a+" = "+this.options.parameterCharacter,[l],{buildParameterized:e.buildParameterized,formattingOptions:u});n+=s.text,r.push.apply(r,t(s.values))}}return{text:n.length?"ON DUPLICATE KEY UPDATE "+n:"",values:r}}}]),a}(a.AbstractSetFieldBlock),a.Insert=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new a.StringBlock(t,"INSERT"),new a.IntoTableBlock(t),new a.InsertFieldValueBlock(t),new a.InsertFieldsFromQueryBlock(t),new a.MysqlOnDuplicateKeyUpdateBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(a.QueryBuilder),a.Replace=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new a.StringBlock(t,"REPLACE"),new a.IntoTableBlock(t),new a.InsertFieldValueBlock(t),new a.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(a.QueryBuilder),o.replace=function(t,e){return new a.Replace(t,e)}},y.flavours.postgres=function(a){var l=a.cls;l.DefaultQueryBuilderOptions.numberedParameters=!0,l.DefaultQueryBuilderOptions.numberedParametersStartAt=1,l.DefaultQueryBuilderOptions.autoQuoteAliasNames=!1,l.DefaultQueryBuilderOptions.useAsForTableAliasNames=!0,l.PostgresOnConflictKeyUpdateBlock=function(o){function a(){return r(this,a),e(this,Object.getPrototypeOf(a).apply(this,arguments))}return n(a,o),d(a,[{key:"onConflict",value:function(t,e){var n=this;this._dupIndex=this._sanitizeField(t),e&&Object.keys(e).forEach(function(t){n._set(t,e[t])})}},{key:"_toParamString",value:function(){for(var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n="",r=[],o=0;o<this._fields.length;++o){n=i(n,", ");var a=this._fields[o],l=this._values[0][o],u=this._valueOptions[0][o];if("undefined"==typeof l)n+=a;else{var s=this._buildString(a+" = "+this.options.parameterCharacter,[l],{buildParameterized:e.buildParameterized,formattingOptions:u});n+=s.text,r.push.apply(r,t(s.values))}}return{text:this._dupIndex?"ON CONFLICT ("+this._dupIndex+") DO "+(n.length?"UPDATE SET "+n:"NOTHING"):"",values:r}}}]),a}(l.AbstractSetFieldBlock),l.ReturningBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._str=null,n}return n(i,t),d(i,[{key:"returning",value:function(t){this._str=this._sanitizeField(t)}},{key:"_toParamString",value:function(){return{text:this._str?"RETURNING "+this._str:"",values:[]}}}]),i}(l.Block),l.WithBlock=function(i){function o(t){r(this,o);var n=e(this,Object.getPrototypeOf(o).call(this,t));return n._tables=[],n}return n(o,i),d(o,[{key:"with",value:function(t,e){this._tables.push({alias:t,table:e})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=[],r=[],i=!0,o=!1,a=void 0;try{for(var l,u=this._tables[Symbol.iterator]();!(i=(l=u.next()).done);i=!0){var s=l.value,c=s.alias,f=s.table,h=f._toParamString({buildParameterized:e.buildParameterized,nested:!0});n.push(c+" AS "+h.text),r.push.apply(r,t(h.values))}}catch(v){o=!0,a=v}finally{try{!i&&u["return"]&&u["return"]()}finally{if(o)throw a}}return{text:n.length?"WITH "+n.join(", "):"",values:r}}}]),o}(l.Block),l.DistinctOnBlock=function(t){function i(t){r(this,i);var n=e(this,Object.getPrototypeOf(i).call(this,t));return n._distinctFields=[],n}return n(i,t),d(i,[{key:"distinct",value:function(){var t=this;this._useDistinct=!0;for(var e=arguments.length,n=Array(e),r=0;e>r;r++)n[r]=arguments[r];n.forEach(function(e){t._distinctFields.push(t._sanitizeField(e))})}},{key:"_toParamString",value:function(){var t="";return this._useDistinct&&(t="DISTINCT",this._distinctFields.length&&(t+=" ON ("+this._distinctFields.join(", ")+")")),{text:t,values:[]}}}]),i}(l.Block),l.Select=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new l.WithBlock(t),new l.StringBlock(t,"SELECT"),new l.FunctionBlock(t),new l.DistinctOnBlock(t),new l.GetFieldBlock(t),new l.FromTableBlock(t),new l.JoinBlock(t),new l.WhereBlock(t),new l.GroupByBlock(t),new l.HavingBlock(t),new l.OrderByBlock(t),new l.LimitBlock(t),new l.OffsetBlock(t),new l.UnionBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(l.QueryBuilder),l.Insert=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new l.WithBlock(t),new l.StringBlock(t,"INSERT"),new l.IntoTableBlock(t),new l.InsertFieldValueBlock(t),new l.InsertFieldsFromQueryBlock(t),new l.PostgresOnConflictKeyUpdateBlock(t),new l.ReturningBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(l.QueryBuilder),l.Update=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new l.WithBlock(t),new l.StringBlock(t,"UPDATE"),new l.UpdateTableBlock(t),new l.SetFieldBlock(t),new l.FromTableBlock(t),new l.WhereBlock(t),new l.OrderByBlock(t),new l.LimitBlock(t),new l.ReturningBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(l.QueryBuilder),l.Delete=function(t){function i(t){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return r(this,i),n=n||[new l.WithBlock(t),new l.StringBlock(t,"DELETE"),new l.TargetTableBlock(t),new l.FromTableBlock(o({},t,{singleTable:!0})),new l.JoinBlock(t),new l.WhereBlock(t),new l.OrderByBlock(t),new l.LimitBlock(t),new l.ReturningBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,n))}return n(i,t),i}(l.QueryBuilder)},y});
|
|
1
|
+
/*! squel | https://github.com/hiddentao/squel | BSD license */!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.squel=e()}(this,function(){"use strict";function t(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)}function e(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){return t.length?t+e:t}function l(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];if(t&&r){var i=!0,l=!1,o=void 0;try{for(var a,u=function(){var e=a.value;"object"===("undefined"==typeof e?"undefined":d(e))&&Object.getOwnPropertyNames(e).forEach(function(r){t[r]=e[r]})},s=r[Symbol.iterator]();!(i=(a=s.next()).done);i=!0)u()}catch(c){l=!0,o=c}finally{try{!i&&s["return"]&&s["return"]()}finally{if(l)throw o}}}return t}function o(t){return t&&t.constructor.prototype===Object.prototype}function a(t){return t&&t.constructor.prototype===Array.prototype}function u(t){if(!t)return t;if("function"==typeof t.clone)return t.clone();if(!o(t)&&!a(t))return JSON.parse(JSON.stringify(t));var e=function(){var e=new t.constructor;return Object.getOwnPropertyNames(t).forEach(function(r){"function"!=typeof t[r]&&(e[r]=u(t[r]))}),{v:e}}();return"object"===("undefined"==typeof e?"undefined":d(e))?e.v:void 0}function s(t,e,r){var n="undefined"==typeof e?"undefined":d(e);if("function"!==n&&"string"!==n)throw new Error("type must be a class constructor or string");if("function"!=typeof r)throw new Error("handler must be a function");var i=!0,l=!1,o=void 0;try{for(var a,u=t[Symbol.iterator]();!(i=(a=u.next()).done);i=!0){var s=a.value;if(s.type===e)return void(s.handler=r)}}catch(c){l=!0,o=c}finally{try{!i&&u["return"]&&u["return"]()}finally{if(l)throw o}}t.push({type:e,handler:r})}function c(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];var i=!0,l=!1,o=void 0;try{for(var a,u=r[Symbol.iterator]();!(i=(a=u.next()).done);i=!0){var s=a.value,c=!0,f=!1,h=void 0;try{for(var v,p=s[Symbol.iterator]();!(c=(v=p.next()).done);c=!0){var y=v.value;if(("undefined"==typeof t?"undefined":d(t))===y.type||"string"!=typeof y.type&&t instanceof y.type)return y.handler}}catch(g){f=!0,h=g}finally{try{!c&&p["return"]&&p["return"]()}finally{if(f)throw h}}}}catch(g){l=!0,o=g}finally{try{!i&&u["return"]&&u["return"]()}finally{if(l)throw o}}}function f(){var f=arguments.length<=0||void 0===arguments[0]?null:arguments[0],p={isSquelBuilder:function(t){return t&&!!t._toParamString}},y=function(t){return!p.isSquelBuilder(t)||!t.options.rawNesting};p.DefaultQueryBuilderOptions={autoQuoteTableNames:!1,autoQuoteFieldNames:!1,autoQuoteAliasNames:!0,useAsForTableAliasNames:!1,nameQuoteCharacter:"`",tableAliasQuoteCharacter:"`",fieldAliasQuoteCharacter:'"',valueHandlers:[],parameterCharacter:"?",numberedParameters:!1,numberedParametersPrefix:"$",numberedParametersStartAt:1,replaceSingleQuotes:!1,singleQuoteReplacement:"''",separator:" ",stringFormatter:null,rawNesting:!1},p.globalValueHandlers=[],p.registerValueHandler=function(t,e){s(p.globalValueHandlers,t,e)},p.Cloneable=function(){function t(){n(this,t)}return v(t,[{key:"clone",value:function(){var t=new this.constructor;return l(t,u(l({},this)))}}]),t}(),p.BaseBuilder=function(i){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this)),i=JSON.parse(JSON.stringify(p.DefaultQueryBuilderOptions));return r.options=l({},i,t),r}return r(o,i),v(o,[{key:"registerValueHandler",value:function(t,e){return s(this.options.valueHandlers,t,e),this}},{key:"_sanitizeExpression",value:function(t){if(!p.isSquelBuilder(t)&&"string"!=typeof t)throw new Error("expression must be a string or builder instance");return t}},{key:"_sanitizeName",value:function(t,e){if("string"!=typeof t)throw new Error(e+" must be a string");return t}},{key:"_sanitizeField",value:function(t){return p.isSquelBuilder(t)||(t=this._sanitizeName(t,"field name")),t}},{key:"_sanitizeBaseBuilder",value:function(t){if(p.isSquelBuilder(t))return t;throw new Error("must be a builder instance")}},{key:"_sanitizeTable",value:function(t){if("string"!=typeof t)try{t=this._sanitizeBaseBuilder(t)}catch(e){throw new Error("table name must be a string or a builder")}else t=this._sanitizeName(t,"table");return t}},{key:"_sanitizeTableAlias",value:function(t){return this._sanitizeName(t,"table alias")}},{key:"_sanitizeFieldAlias",value:function(t){return this._sanitizeName(t,"field alias")}},{key:"_sanitizeLimitOffset",value:function(t){if(t=parseInt(t),0>t||isNaN(t))throw new Error("limit/offset must be >= 0");return t}},{key:"_sanitizeValue",value:function(t){var e="undefined"==typeof t?"undefined":d(t);if(null===t);else if("string"===e||"number"===e||"boolean"===e);else if(p.isSquelBuilder(t));else{var r=!!c(t,this.options.valueHandlers,p.globalValueHandlers);if(!r)throw new Error("field value must be a string, number, boolean, null or one of the registered custom value types")}return t}},{key:"_escapeValue",value:function(t){return this.options.replaceSingleQuotes?t.replace(/\'/g,this.options.singleQuoteReplacement):t}},{key:"_formatTableName",value:function(t){if(this.options.autoQuoteTableNames){var e=this.options.nameQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatFieldAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.fieldAliasQuoteCharacter;t=""+e+t+e}return t}},{key:"_formatTableAlias",value:function(t){if(this.options.autoQuoteAliasNames){var e=this.options.tableAliasQuoteCharacter;t=""+e+t+e}return this.options.useAsForTableAliasNames?"AS "+t:t}},{key:"_formatFieldName",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return this.options.autoQuoteFieldNames&&!function(){var n=e.options.nameQuoteCharacter;t=r.ignorePeriodsForFieldNameQuotes?""+n+t+n:t.split(".").map(function(t){return"*"===t?t:""+n+t+n}).join(".")}(),t}},{key:"_formatCustomValue",value:function(t,e,r){var n=c(t,this.options.valueHandlers,p.globalValueHandlers);return n&&(t=n(t,e,r)),{formatted:!!n,value:t}}},{key:"_formatValueForParamArray",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return a(t)?t.map(function(t){return e._formatValueForParamArray(t,r)}):this._formatCustomValue(t,!0,r).value}},{key:"_formatValueForQueryString",value:function(t){var e=this,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=this._formatCustomValue(t,!1,r),i=n.formatted,l=n.value;if(i)return this._applyNestingFormatting(l,y(t));if(a(l))l=l.map(function(t){return e._formatValueForQueryString(t)}),l=this._applyNestingFormatting(l.join(", "),y(l));else{var o="undefined"==typeof l?"undefined":d(l);if(null===l)l="NULL";else if("boolean"===o)l=l?"TRUE":"FALSE";else if(p.isSquelBuilder(l))l=this._applyNestingFormatting(l.toString(),y(l));else if("number"!==o){if("string"===o&&this.options.stringFormatter)return this.options.stringFormatter(l);if(r.dontQuote)l=""+l;else{var u=this._escapeValue(l);l="'"+u+"'"}}}return l}},{key:"_applyNestingFormatting",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];if(t&&"string"==typeof t&&e&&!this.options.rawNesting){var r="("===t.charAt(0)&&")"===t.charAt(t.length-1);if(r)for(var n=0,i=1;t.length-1>++n;){var l=t.charAt(n);if("("===l)i++;else if(")"===l&&(i--,1>i)){r=!1;break}}r||(t="("+t+")")}return t}},{key:"_buildString",value:function(e,r){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],i=n.nested,l=n.buildParameterized,o=n.formattingOptions;r=r||[],e=e||"";for(var u="",s=-1,c=[],f=this.options.parameterCharacter,h=0;e.length>h;)if(e.substr(h,f.length)===f){var v=r[++s];if(l)if(p.isSquelBuilder(v)){var d=v._toParamString({buildParameterized:l,nested:!0});u+=d.text,c.push.apply(c,t(d.values))}else if(v=this._formatValueForParamArray(v,o),a(v)){var y=v.map(function(){return f}).join(", ");u+="("+y+")",c.push.apply(c,t(v))}else u+=f,c.push(v);else u+=this._formatValueForQueryString(v,o);h+=f.length}else u+=e.charAt(h),h++;return{text:this._applyNestingFormatting(u,!!i),values:c}}},{key:"_buildManyStrings",value:function(e,r){for(var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],i=[],l=[],o=0;e.length>o;++o){var a=e[o],u=r[o],s=this._buildString(a,u,{buildParameterized:n.buildParameterized,nested:!1}),c=s.text,f=s.values;i.push(c),l.push.apply(l,t(f))}return i=i.join(this.options.separator),{text:i.length?this._applyNestingFormatting(i,!!n.nested):"",values:l}}},{key:"_toParamString",value:function(t){throw new Error("Not yet implemented")}},{key:"toString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(t).text}},{key:"toParam",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._toParamString(l({},t,{buildParameterized:!0}))}}]),o}(p.Cloneable),p.Expression=function(i){function l(t){n(this,l);var r=e(this,Object.getPrototypeOf(l).call(this,t));return r._nodes=[],r}return r(l,i),v(l,[{key:"and",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];return t=this._sanitizeExpression(t),this._nodes.push({type:"AND",expr:t,para:r}),this}},{key:"or",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];return t=this._sanitizeExpression(t),this._nodes.push({type:"OR",expr:t,para:r}),this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],n=[],i=!0,l=!1,o=void 0;try{for(var a,u=this._nodes[Symbol.iterator]();!(i=(a=u.next()).done);i=!0){var s=a.value,c=s.type,f=s.expr,h=s.para,v=p.isSquelBuilder(f)?f._toParamString({buildParameterized:e.buildParameterized,nested:!0}):this._buildString(f,h,{buildParameterized:e.buildParameterized}),d=v.text,y=v.values;r.length&&r.push(c),r.push(d),n.push.apply(n,t(y))}}catch(g){l=!0,o=g}finally{try{!i&&u["return"]&&u["return"]()}finally{if(l)throw o}}return r=r.join(" "),{text:this._applyNestingFormatting(r,!!e.nested),values:n}}}]),l}(p.BaseBuilder),p.Case=function(a){function u(t){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];n(this,u);var i=e(this,Object.getPrototypeOf(u).call(this,r));return o(t)&&(r=t,t=null),t&&(i._fieldName=i._sanitizeField(t)),i.options=l({},p.DefaultQueryBuilderOptions,r),i._cases=[],i._elseValue=null,i}return r(u,a),v(u,[{key:"when",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];return this._cases.unshift({expression:t,values:r}),this}},{key:"then",value:function(t){if(0==this._cases.length)throw new Error("when() needs to be called first");return this._cases[0].result=t,this}},{key:"else",value:function(t){return this._elseValue=t,this}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],l=!0,o=!1,a=void 0;try{for(var u,s=this._cases[Symbol.iterator]();!(l=(u=s.next()).done);l=!0){var c=u.value,f=c.expression,h=c.values,v=c.result;r=i(r," ");var d=this._buildString(f,h,{buildParameterized:e.buildParameterized,nested:!0});r+="WHEN "+d.text+" THEN "+this._formatValueForQueryString(v),n.push.apply(n,t(d.values))}}catch(p){o=!0,a=p}finally{try{!l&&s["return"]&&s["return"]()}finally{if(o)throw a}}return r.length?(r+=" ELSE "+this._formatValueForQueryString(this._elseValue)+" END",this._fieldName&&(r=this._fieldName+" "+r),r="CASE "+r):r=this._formatValueForQueryString(this._elseValue),{text:r,values:n}}}]),u}(p.BaseBuilder),p.Block=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,t))}return r(i,t),v(i,[{key:"exposedMethods",value:function(){for(var t={},e=this;e;)Object.getOwnPropertyNames(e).forEach(function(r){"constructor"===r||"function"!=typeof e[r]||"_"===r.charAt(0)||p.Block.prototype[r]||(t[r]=e[r])}),e=Object.getPrototypeOf(e);return t}}]),i}(p.BaseBuilder),p.StringBlock=function(t){function i(t,r){n(this,i);var l=e(this,Object.getPrototypeOf(i).call(this,t));return l._str=r,l}return r(i,t),v(i,[{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._str,values:[]}}}]),i}(p.Block),p.FunctionBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._strings=[],r._values=[],r}return r(i,t),v(i,[{key:"function",value:function(t){this._strings.push(t);for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];this._values.push(r)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this._buildManyStrings(this._strings,this._values,t)}}]),i}(p.Block),p.registerValueHandler(p.FunctionBlock,function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];return e?t.toParam():t.toString()}),p.AbstractTableBlock=function(l){function o(t,r){n(this,o);var i=e(this,Object.getPrototypeOf(o).call(this,t));return i._tables=[],i}return r(o,l),v(o,[{key:"_table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];e=e?this._sanitizeTableAlias(e):e,t=this._sanitizeTable(t),this.options.singleTable&&(this._tables=[]),this._tables.push({table:t,alias:e})}},{key:"_hasTable",value:function(){return 0<this._tables.length}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[];if(this._hasTable()){var l=!0,o=!1,a=void 0;try{for(var u,s=this._tables[Symbol.iterator]();!(l=(u=s.next()).done);l=!0){var c=u.value,f=c.table,h=c.alias;r=i(r,", ");var v=void 0;if(p.isSquelBuilder(f)){var d=f._toParamString({buildParameterized:e.buildParameterized,nested:!0}),y=d.text,g=d.values;v=y,n.push.apply(n,t(g))}else v=this._formatTableName(f);h&&(v+=" "+this._formatTableAlias(h)),r+=v}}catch(_){o=!0,a=_}finally{try{!l&&s["return"]&&s["return"]()}finally{if(o)throw a}}this.options.prefix&&(r=this.options.prefix+" "+r)}return{text:r,values:n}}}]),o}(p.Block),p.TargetTableBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),v(i,[{key:"target",value:function(t){this._table(t)}}]),i}(p.AbstractTableBlock),p.UpdateTableBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),v(i,[{key:"table",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("table() needs to be called");return h(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t)}}]),i}(p.AbstractTableBlock),p.FromTableBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,l({},t,{prefix:"FROM"})))}return r(i,t),v(i,[{key:"from",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this._table(t,e)}}]),i}(p.AbstractTableBlock),p.IntoTableBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,l({},t,{prefix:"INTO",singleTable:!0})))}return r(i,t),v(i,[{key:"into",value:function(t){this._table(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this._hasTable())throw new Error("into() needs to be called");return h(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t)}}]),i}(p.AbstractTableBlock),p.GetFieldBlock=function(l){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._fields=[],r}return r(o,l),v(o,[{key:"fields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(a(t)){var r=!0,n=!1,i=void 0;try{for(var l,o=t[Symbol.iterator]();!(r=(l=o.next()).done);r=!0){var u=l.value;this.field(u,null,e)}}catch(s){n=!0,i=s}finally{try{!r&&o["return"]&&o["return"]()}finally{if(n)throw i}}}else for(var c in t){var f=t[c];this.field(c,f,e)}}},{key:"field",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e=e?this._sanitizeFieldAlias(e):e,t=this._sanitizeField(t);var n=this._fields.filter(function(r){return r.name===t&&r.alias===e});return n.length?this:void this._fields.push({name:t,alias:e,options:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=e.queryBuilder,n=e.buildParameterized,l="",o=[],a=!0,u=!1,s=void 0;try{for(var c,f=this._fields[Symbol.iterator]();!(a=(c=f.next()).done);a=!0){var h=c.value;l=i(l,", ");var v=h.name,d=h.alias,y=h.options;if("string"==typeof v)l+=this._formatFieldName(v,y);else{var g=v._toParamString({nested:!0,buildParameterized:n});l+=g.text,o.push.apply(o,t(g.values))}d&&(l+=" AS "+this._formatFieldAlias(d))}}catch(_){u=!0,s=_}finally{try{!a&&f["return"]&&f["return"]()}finally{if(u)throw s}}if(!l.length){var m=r&&r.getBlock(p.FromTableBlock);m&&m._hasTable()&&(l="*")}return{text:l,values:o}}}]),o}(p.Block),p.AbstractSetFieldBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._reset(),r}return r(i,t),v(i,[{key:"_reset",value:function(){this._fields=[],this._values=[[]],this._valueOptions=[[]]}},{key:"_set",value:function(t,e){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if(this._values.length>1)throw new Error("Cannot set multiple rows of fields this way.");"undefined"!=typeof e&&(e=this._sanitizeValue(e)),t=this._sanitizeField(t);var n=this._fields.indexOf(t);-1===n&&(this._fields.push(t),n=this._fields.length-1),this._values[0][n]=e,this._valueOptions[0][n]=r}},{key:"_setFields",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("object"!==("undefined"==typeof t?"undefined":d(t)))throw new Error("Expected an object but got "+("undefined"==typeof t?"undefined":d(t)));for(var r in t)this._set(r,t[r],e)}},{key:"_setFieldsRows",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(!a(t))throw new Error("Expected an array of objects but got "+("undefined"==typeof t?"undefined":d(t)));this._reset();for(var r=0;t.length>r;++r){var n=t[r];for(var i in n){var l=n[i];i=this._sanitizeField(i),l=this._sanitizeValue(l);var o=this._fields.indexOf(i);if(r>0&&-1===o)throw new Error("All fields in subsequent rows must match the fields in the first row");-1===o&&(this._fields.push(i),o=this._fields.length-1),a(this._values[r])||(this._values[r]=[],this._valueOptions[r]=[]),this._values[r][o]=l,this._valueOptions[r][o]=e}}}}]),i}(p.Block),p.SetFieldBlock=function(l){function o(){return n(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,l),v(o,[{key:"set",value:function(t,e,r){this._set(t,e,r)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=e.buildParameterized;if(0>=this._fields.length)throw new Error("set() needs to be called");for(var n="",l=[],o=0;o<this._fields.length;++o){n=i(n,", ");var a=this._formatFieldName(this._fields[o]),u=this._values[0][o];0>a.indexOf("=")&&(a=a+" = "+this.options.parameterCharacter);var s=this._buildString(a,[u],{buildParameterized:r,formattingOptions:this._valueOptions[0][o]});n+=s.text,l.push.apply(l,t(s.values))}return{text:"SET "+n,values:l}}}]),o}(p.AbstractSetFieldBlock),p.InsertFieldValueBlock=function(l){function o(){return n(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,l),v(o,[{key:"set",value:function(t,e){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._set(t,e,r)}},{key:"setFields",value:function(t,e){this._setFields(t,e)}},{key:"setFieldsRows",value:function(t,e){this._setFieldsRows(t,e)}},{key:"_toParamString",value:function(){for(var e=this,r=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=r.buildParameterized,l=this._fields.map(function(t){return e._formatFieldName(t)}).join(", "),o=[],a=[],u=0;u<this._values.length;++u){o[u]="";for(var s=0;s<this._values[u].length;++s){var c=this._buildString(this.options.parameterCharacter,[this._values[u][s]],{buildParameterized:n,formattingOptions:this._valueOptions[u][s]});a.push.apply(a,t(c.values)),o[u]=i(o[u],", "),o[u]+=c.text}}return{text:l.length?"("+l+") VALUES ("+o.join("), (")+")":"",values:a}}}]),o}(p.AbstractSetFieldBlock),p.InsertFieldsFromQueryBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._fields=[],r._query=null,r}return r(i,t),v(i,[{key:"fromQuery",value:function(t,e){var r=this;this._fields=t.map(function(t){return r._sanitizeField(t)}),this._query=this._sanitizeBaseBuilder(e)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e="",r=[];if(this._fields.length&&this._query){var n=this._query._toParamString({buildParameterized:t.buildParameterized,nested:!0}),i=n.text,l=n.values;e="("+this._fields.join(", ")+") "+this._applyNestingFormatting(i),r=l}return{text:e,values:r}}}]),i}(p.Block),p.DistinctBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),v(i,[{key:"distinct",value:function(){this._useDistinct=!0}},{key:"_toParamString",value:function(){return{text:this._useDistinct?"DISTINCT":"",values:[]}}}]),i}(p.Block),p.GroupByBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._groups=[],r}return r(i,t),v(i,[{key:"group",value:function(t){this._groups.push(this._sanitizeField(t))}},{key:"_toParamString",value:function(){arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return{text:this._groups.length?"GROUP BY "+this._groups.join(", "):"",values:[]}}}]),i}(p.Block),p.AbstractVerbSingleValueBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._value=0,r}return r(i,t),v(i,[{key:"_setValue",value:function(t){this._value=this._sanitizeLimitOffset(t)}},{key:"_toParamString",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=0<this._value?this.options.verb+" "+this.options.parameterCharacter:"",r=null!==this._value?[this._value]:[];return this._buildString(e,r,t)}}]),i}(p.Block),p.OffsetBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,l({},t,{verb:"OFFSET"})))}return r(i,t),v(i,[{key:"offset",value:function(t){this._setValue(t)}}]),i}(p.AbstractVerbSingleValueBlock),p.LimitBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,l({},t,{verb:"LIMIT"})))}return r(i,t),v(i,[{key:"limit",value:function(t){this._setValue(t)}}]),i}(p.AbstractVerbSingleValueBlock),p.AbstractConditionBlock=function(i){function l(t){n(this,l);var r=e(this,Object.getPrototypeOf(l).call(this,t));return r._conditions=[],r}return r(l,i),v(l,[{key:"_condition",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];t=this._sanitizeExpression(t),this._conditions.push({expr:t,values:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],n=[],i=!0,l=!1,o=void 0;try{for(var a,u=this._conditions[Symbol.iterator]();!(i=(a=u.next()).done);i=!0){var s=a.value,c=s.expr,f=s.values,h=p.isSquelBuilder(c)?c._toParamString({buildParameterized:e.buildParameterized}):this._buildString(c,f,{buildParameterized:e.buildParameterized});h.text.length&&r.push(h.text),n.push.apply(n,t(h.values))}}catch(v){l=!0,o=v}finally{try{!i&&u["return"]&&u["return"]()}finally{if(l)throw o}}return r.length&&(r=r.join(") AND (")),{text:r.length?this.options.verb+" ("+r+")":"",values:n}}}]),l}(p.Block),p.WhereBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,l({},t,{verb:"WHERE"})))}return r(i,t),v(i,[{key:"where",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];this._condition.apply(this,[t].concat(r))}}]),i}(p.AbstractConditionBlock),p.HavingBlock=function(t){function i(t){return n(this,i),e(this,Object.getPrototypeOf(i).call(this,l({},t,{verb:"HAVING"})))}return r(i,t),v(i,[{key:"having",value:function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;e>n;n++)r[n-1]=arguments[n];this._condition.apply(this,[t].concat(r))}}]),i}(p.AbstractConditionBlock),p.OrderByBlock=function(l){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._orders=[],r}return r(o,l),v(o,[{key:"order",value:function(t,e){for(var r=arguments.length,n=Array(r>2?r-2:0),i=2;r>i;i++)n[i-2]=arguments[i];t=this._sanitizeField(t),"string"!=typeof e&&(void 0===e?e="ASC":null!==e&&(e=e?"ASC":"DESC")),this._orders.push({field:t,dir:e,values:n})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],l=!0,o=!1,a=void 0;try{for(var u,s=this._orders[Symbol.iterator]();!(l=(u=s.next()).done);l=!0){var c=u.value,f=c.field,h=c.dir,v=c.values;r=i(r,", ");var d=this._buildString(f,v,{buildParameterized:e.buildParameterized});r+=d.text,n.push.apply(n,t(d.values)),null!==h&&(r+=" "+h)}}catch(p){o=!0,a=p}finally{try{!l&&s["return"]&&s["return"]()}finally{if(o)throw a}}return{text:r.length?"ORDER BY "+r:"",values:n}}}]),o}(p.Block),p.JoinBlock=function(l){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._joins=[],r}return r(o,l),v(o,[{key:"join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],n=arguments.length<=3||void 0===arguments[3]?"INNER":arguments[3];t=this._sanitizeTable(t,!0),e=e?this._sanitizeTableAlias(e):e,r=r?this._sanitizeExpression(r):r,this._joins.push({type:n,table:t,alias:e,condition:r})}},{key:"left_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"LEFT")}},{key:"right_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"RIGHT")}},{key:"outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"OUTER")}},{key:"left_outer_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"LEFT OUTER")}},{key:"full_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"FULL")}},{key:"cross_join",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.join(t,e,r,"CROSS")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],l=!0,o=!1,a=void 0;try{for(var u,s=this._joins[Symbol.iterator]();!(l=(u=s.next()).done);l=!0){var c=u.value,f=c.type,h=c.table,v=c.alias,d=c.condition;r=i(r,this.options.separator);var y=void 0;if(p.isSquelBuilder(h)){var g=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});n.push.apply(n,t(g.values)),y=g.text}else y=this._formatTableName(h);if(r+=f+" JOIN "+y,v&&(r+=" "+this._formatTableAlias(v)),d){r+=" ON ";var _=void 0;_=p.isSquelBuilder(d)?d._toParamString({buildParameterized:e.buildParameterized}):this._buildString(d,[],{buildParameterized:e.buildParameterized}),r+=this._applyNestingFormatting(_.text),n.push.apply(n,t(_.values))}}}catch(m){o=!0,a=m}finally{try{!l&&s["return"]&&s["return"]()}finally{if(o)throw a}}return{text:r,values:n}}}]),o}(p.Block),p.UnionBlock=function(l){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._unions=[],r}return r(o,l),v(o,[{key:"union",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?"UNION":arguments[1];t=this._sanitizeTable(t),this._unions.push({type:e,table:t})}},{key:"union_all",value:function(t){this.union(t,"UNION ALL")}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],l=!0,o=!1,a=void 0;try{for(var u,s=this._unions[Symbol.iterator]();!(l=(u=s.next()).done);l=!0){var c=u.value,f=c.type,h=c.table;r=i(r,this.options.separator);var v=void 0;if(h instanceof p.BaseBuilder){var d=h._toParamString({buildParameterized:e.buildParameterized,nested:!0});v=d.text,n.push.apply(n,t(d.values))}else r=this._formatTableName(h);r+=f+" "+v}}catch(y){o=!0,a=y}finally{try{!l&&s["return"]&&s["return"]()}finally{if(o)throw a}}return{text:r,values:n}}}]),o}(p.Block),p.QueryBuilder=function(i){function o(t,r){n(this,o);var i=e(this,Object.getPrototypeOf(o).call(this,t));i.blocks=r||[];var l=!0,a=!1,u=void 0;try{for(var s,c=i.blocks[Symbol.iterator]();!(l=(s=c.next()).done);l=!0){var f=s.value,h=f.exposedMethods();for(var v in h){var d=h[v];if(void 0!==i[v])throw new Error("Builder already has a builder method called: "+v);!function(t,e,r){i[e]=function(){for(var e=arguments.length,n=Array(e),l=0;e>l;l++)n[l]=arguments[l];return r.call.apply(r,[t].concat(n)),i}}(f,v,d)}}}catch(p){a=!0,u=p}finally{try{!l&&c["return"]&&c["return"]()}finally{if(a)throw u}}return i}return r(o,i),v(o,[{key:"registerValueHandler",value:function(t,e){var r=!0,n=!1,i=void 0;try{for(var l,a=this.blocks[Symbol.iterator]();!(r=(l=a.next()).done);r=!0){var u=l.value;u.registerValueHandler(t,e)}}catch(s){n=!0,i=s}finally{try{!r&&a["return"]&&a["return"]()}finally{if(n)throw i}}return h(Object.getPrototypeOf(o.prototype),"registerValueHandler",this).call(this,t,e),this}},{key:"updateOptions",value:function(t){this.options=l({},this.options,t);var e=!0,r=!1,n=void 0;try{for(var i,o=this.blocks[Symbol.iterator]();!(e=(i=o.next()).done);e=!0){var a=i.value;a.options=l({},a.options,t)}}catch(u){r=!0,n=u}finally{try{!e&&o["return"]&&o["return"]()}finally{if(r)throw n}}}},{key:"_toParamString",value:function(){var e,r=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];n=l({},this.options,n);var i=this.blocks.map(function(t){return t._toParamString({buildParameterized:n.buildParameterized,queryBuilder:r})}),o=i.map(function(t){return t.text}),a=i.map(function(t){return t.values}),u=o.filter(function(t){return 0<t.length}).join(n.separator),s=(e=[]).concat.apply(e,t(a));return n.nested||n.numberedParameters&&!function(){var t=void 0!==n.numberedParametersStartAt?n.numberedParametersStartAt:1,e=n.parameterCharacter.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");u=u.replace(new RegExp(e,"g"),function(){return""+n.numberedParametersPrefix+t++})}(),{text:this._applyNestingFormatting(u,!!n.nested),values:s}}},{key:"clone",value:function(){var t=this.blocks.map(function(t){return t.clone()});return new this.constructor(this.options,t)}},{key:"getBlock",value:function(t){var e=this.blocks.filter(function(e){return e instanceof t});return e[0]}}]),o}(p.BaseBuilder),p.Select=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new p.StringBlock(t,"SELECT"),new p.FunctionBlock(t),new p.DistinctBlock(t),new p.GetFieldBlock(t),new p.FromTableBlock(t),new p.JoinBlock(t),new p.WhereBlock(t),new p.GroupByBlock(t),new p.HavingBlock(t),new p.OrderByBlock(t),new p.LimitBlock(t),new p.OffsetBlock(t),new p.UnionBlock(t)],
|
|
2
|
+
e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(p.QueryBuilder),p.Update=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new p.StringBlock(t,"UPDATE"),new p.UpdateTableBlock(t),new p.SetFieldBlock(t),new p.WhereBlock(t),new p.OrderByBlock(t),new p.LimitBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(p.QueryBuilder),p.Delete=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new p.StringBlock(t,"DELETE"),new p.TargetTableBlock(t),new p.FromTableBlock(l({},t,{singleTable:!0})),new p.JoinBlock(t),new p.WhereBlock(t),new p.OrderByBlock(t),new p.LimitBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(p.QueryBuilder),p.Insert=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new p.StringBlock(t,"INSERT"),new p.IntoTableBlock(t),new p.InsertFieldValueBlock(t),new p.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(p.QueryBuilder);var g={VERSION:"5.8.0",flavour:f,expr:function(t){return new p.Expression(t)},"case":function(t,e){return new p.Case(t,e)},select:function(t,e){return new p.Select(t,e)},update:function(t,e){return new p.Update(t,e)},insert:function(t,e){return new p.Insert(t,e)},"delete":function(t,e){return new p.Delete(t,e)},str:function(){var t=new p.FunctionBlock;return t["function"].apply(t,arguments),t},rstr:function(){var t=new p.FunctionBlock({rawNesting:!0});return t["function"].apply(t,arguments),t},registerValueHandler:p.registerValueHandler};return g.remove=g["delete"],g.cls=p,g}var h=function y(t,e,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,e);if(void 0===n){var i=Object.getPrototypeOf(t);return null===i?void 0:y(i,e,r)}if("value"in n)return n.value;var l=n.get;if(void 0!==l)return l.call(r)},v=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},p=f();return p.flavours={},p.useFlavour=function(){var t=arguments.length<=0||void 0===arguments[0]?null:arguments[0];if(!t)return p;if(p.flavours[t]instanceof Function){var e=f(t);return p.flavours[t].call(null,e),e.flavours=p.flavours,e.useFlavour=p.useFlavour,e}throw new Error("Flavour not available: "+t)},p.flavours.mssql=function(t){var o=t.cls;o.DefaultQueryBuilderOptions.replaceSingleQuotes=!0,o.DefaultQueryBuilderOptions.autoQuoteAliasNames=!1,o.DefaultQueryBuilderOptions.numberedParametersPrefix="@",t.registerValueHandler(Date,function(t){return"'"+t.getUTCFullYear()+"-"+(t.getUTCMonth()+1)+"-"+t.getUTCDate()+" "+t.getUTCHours()+":"+t.getUTCMinutes()+":"+t.getUTCSeconds()+"'"}),o.MssqlLimitOffsetTopBlock=function(t){function i(t){n(this,i);var l=e(this,Object.getPrototypeOf(i).call(this,t));l._limits=null,l._offsets=null;var a=function(t){t=this._sanitizeLimitOffset(t),this._parent._limits=t};return l.ParentBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t.options));return r._parent=t,r}return r(i,t),i}(o.Block),l.LimitBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r.limit=a,r}return r(i,t),v(i,[{key:"_toParamString",value:function(){var t="";return this._parent._limits&&this._parent._offsets&&(t="FETCH NEXT "+this._parent._limits+" ROWS ONLY"),{text:t,values:[]}}}]),i}(l.ParentBlock),l.TopBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r.top=a,r}return r(i,t),v(i,[{key:"_toParamString",value:function(){var t="";return this._parent._limits&&!this._parent._offsets&&(t="TOP ("+this._parent._limits+")"),{text:t,values:[]}}}]),i}(l.ParentBlock),l.OffsetBlock=function(t){function i(){return n(this,i),e(this,Object.getPrototypeOf(i).apply(this,arguments))}return r(i,t),v(i,[{key:"offset",value:function(t){this._parent._offsets=this._sanitizeLimitOffset(t)}},{key:"_toParamString",value:function(){var t="";return this._parent._offsets&&(t="OFFSET "+this._parent._offsets+" ROWS"),{text:t,values:[]}}}]),i}(l.ParentBlock),l}return r(i,t),v(i,[{key:"LIMIT",value:function(){return new this.LimitBlock(this)}},{key:"TOP",value:function(){return new this.TopBlock(this)}},{key:"OFFSET",value:function(){return new this.OffsetBlock(this)}}]),i}(o.Block),o.MssqlUpdateTopBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._limits=null,r.limit=r.top=function(t){r._limits=r._sanitizeLimitOffset(t)},r}return r(i,t),v(i,[{key:"_toParamString",value:function(){return{text:this._limits?"TOP ("+this._limits+")":"",values:[]}}}]),i}(o.Block),o.MssqlInsertFieldValueBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._outputs=[],r}return r(i,t),v(i,[{key:"output",value:function(t){var e=this;"string"==typeof t?this._outputs.push("INSERTED."+this._sanitizeField(t)):t.forEach(function(t){e._outputs.push("INSERTED."+e._sanitizeField(t))})}},{key:"_toParamString",value:function(t){var e=h(Object.getPrototypeOf(i.prototype),"_toParamString",this).call(this,t);if(e.text.length&&0<this._outputs.length){var r="OUTPUT "+this._outputs.join(", ")+" ",n=e.text.indexOf("VALUES");e.text=e.text.substr(0,n)+r+e.text.substr(n)}return e}}]),i}(o.InsertFieldValueBlock),o.MssqlUpdateDeleteOutputBlock=function(t){function l(t){n(this,l);var r=e(this,Object.getPrototypeOf(l).call(this,t));return r._outputs=[],r}return r(l,t),v(l,[{key:"outputs",value:function(t){for(var e in t)this.output(e,t[e])}},{key:"output",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];t=this._sanitizeField(t),e=e?this._sanitizeFieldAlias(e):e,this._outputs.push({name:this.options.forDelete?"DELETED."+t:"INSERTED."+t,alias:e})}},{key:"_toParamString",value:function(t){var e="";if(this._outputs.length){var r=!0,n=!1,l=void 0;try{for(var o,a=this._outputs[Symbol.iterator]();!(r=(o=a.next()).done);r=!0){var u=o.value;e=i(e,", "),e+=u.name,u.alias&&(e+=" AS "+this._formatFieldAlias(u.alias))}}catch(s){n=!0,l=s}finally{try{!r&&a["return"]&&a["return"]()}finally{if(n)throw l}}e="OUTPUT "+e}return{text:e,values:[]}}}]),l}(o.Block),o.Select=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];n(this,i);var l=new o.MssqlLimitOffsetTopBlock(t);return r=r||[new o.StringBlock(t,"SELECT"),new o.DistinctBlock(t),l.TOP(),new o.GetFieldBlock(t),new o.FromTableBlock(t),new o.JoinBlock(t),new o.WhereBlock(t),new o.GroupByBlock(t),new o.OrderByBlock(t),l.OFFSET(),l.LIMIT(),new o.UnionBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(o.QueryBuilder),o.Update=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new o.StringBlock(t,"UPDATE"),new o.MssqlUpdateTopBlock(t),new o.UpdateTableBlock(t),new o.SetFieldBlock(t),new o.MssqlUpdateDeleteOutputBlock(t),new o.WhereBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(o.QueryBuilder),o.Delete=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new o.StringBlock(t,"DELETE"),new o.TargetTableBlock(t),new o.FromTableBlock(l({},t,{singleTable:!0})),new o.JoinBlock(t),new o.MssqlUpdateDeleteOutputBlock(l({},t,{forDelete:!0})),new o.WhereBlock(t),new o.OrderByBlock(t),new o.LimitBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(o.QueryBuilder),o.Insert=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new o.StringBlock(t,"INSERT"),new o.IntoTableBlock(t),new o.MssqlInsertFieldValueBlock(t),new o.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(o.QueryBuilder)},p.flavours.mysql=function(l){var o=l.cls;o.MysqlOnDuplicateKeyUpdateBlock=function(l){function o(){return n(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,l),v(o,[{key:"onDupUpdate",value:function(t,e,r){this._set(t,e,r)}},{key:"_toParamString",value:function(){for(var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],l=0;l<this._fields.length;++l){r=i(r,", ");var o=this._fields[l],a=this._values[0][l],u=this._valueOptions[0][l];if("undefined"==typeof a)r+=o;else{var s=this._buildString(o+" = "+this.options.parameterCharacter,[a],{buildParameterized:e.buildParameterized,formattingOptions:u});r+=s.text,n.push.apply(n,t(s.values))}}return{text:r.length?"ON DUPLICATE KEY UPDATE "+r:"",values:n}}}]),o}(o.AbstractSetFieldBlock),o.Insert=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new o.StringBlock(t,"INSERT"),new o.IntoTableBlock(t),new o.InsertFieldValueBlock(t),new o.InsertFieldsFromQueryBlock(t),new o.MysqlOnDuplicateKeyUpdateBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(o.QueryBuilder),o.Replace=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new o.StringBlock(t,"REPLACE"),new o.IntoTableBlock(t),new o.InsertFieldValueBlock(t),new o.InsertFieldsFromQueryBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(o.QueryBuilder),l.replace=function(t,e){return new o.Replace(t,e)}},p.flavours.postgres=function(o){var a=o.cls;a.DefaultQueryBuilderOptions.numberedParameters=!0,a.DefaultQueryBuilderOptions.numberedParametersStartAt=1,a.DefaultQueryBuilderOptions.autoQuoteAliasNames=!1,a.DefaultQueryBuilderOptions.useAsForTableAliasNames=!0,a.PostgresOnConflictKeyUpdateBlock=function(l){function o(){return n(this,o),e(this,Object.getPrototypeOf(o).apply(this,arguments))}return r(o,l),v(o,[{key:"onConflict",value:function(t,e){var r=this;this._dupIndex=this._sanitizeField(t),e&&Object.keys(e).forEach(function(t){r._set(t,e[t])})}},{key:"_toParamString",value:function(){for(var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r="",n=[],l=0;l<this._fields.length;++l){r=i(r,", ");var o=this._fields[l],a=this._values[0][l],u=this._valueOptions[0][l];if("undefined"==typeof a)r+=o;else{var s=this._buildString(o+" = "+this.options.parameterCharacter,[a],{buildParameterized:e.buildParameterized,formattingOptions:u});r+=s.text,n.push.apply(n,t(s.values))}}return{text:this._dupIndex?"ON CONFLICT ("+this._dupIndex+") DO "+(r.length?"UPDATE SET "+r:"NOTHING"):"",values:n}}}]),o}(a.AbstractSetFieldBlock),a.ReturningBlock=function(l){function o(t){n(this,o);var r=e(this,Object.getPrototypeOf(o).call(this,t));return r._fields=[],r}return r(o,l),v(o,[{key:"returning",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e=e?this._sanitizeFieldAlias(e):e,t=this._sanitizeField(t);var n=this._fields.filter(function(r){return r.name===t&&r.alias===e});return n.length?this:void this._fields.push({name:t,alias:e,options:r})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=(e.queryBuilder,e.buildParameterized),n="",l=[],o=!0,a=!1,u=void 0;try{for(var s,c=this._fields[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var f=s.value;n=i(n,", ");var h=f.name,v=f.alias,d=f.options;if("string"==typeof h)n+=this._formatFieldName(h,d);else{var p=h._toParamString({nested:!0,buildParameterized:r});n+=p.text,l.push.apply(l,t(p.values))}v&&(n+=" AS "+this._formatFieldAlias(v))}}catch(y){a=!0,u=y}finally{try{!o&&c["return"]&&c["return"]()}finally{if(a)throw u}}return{text:n.length>0?"RETURNING "+n:"",values:l}}}]),o}(a.Block),a.WithBlock=function(i){function l(t){n(this,l);var r=e(this,Object.getPrototypeOf(l).call(this,t));return r._tables=[],r}return r(l,i),v(l,[{key:"with",value:function(t,e){this._tables.push({alias:t,table:e})}},{key:"_toParamString",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=[],n=[],i=!0,l=!1,o=void 0;try{for(var a,u=this._tables[Symbol.iterator]();!(i=(a=u.next()).done);i=!0){var s=a.value,c=s.alias,f=s.table,h=f._toParamString({buildParameterized:e.buildParameterized,nested:!0});r.push(c+" AS "+h.text),n.push.apply(n,t(h.values))}}catch(v){l=!0,o=v}finally{try{!i&&u["return"]&&u["return"]()}finally{if(l)throw o}}return{text:r.length?"WITH "+r.join(", "):"",values:n}}}]),l}(a.Block),a.DistinctOnBlock=function(t){function i(t){n(this,i);var r=e(this,Object.getPrototypeOf(i).call(this,t));return r._distinctFields=[],r}return r(i,t),v(i,[{key:"distinct",value:function(){var t=this;this._useDistinct=!0;for(var e=arguments.length,r=Array(e),n=0;e>n;n++)r[n]=arguments[n];r.forEach(function(e){t._distinctFields.push(t._sanitizeField(e))})}},{key:"_toParamString",value:function(){var t="";return this._useDistinct&&(t="DISTINCT",this._distinctFields.length&&(t+=" ON ("+this._distinctFields.join(", ")+")")),{text:t,values:[]}}}]),i}(a.Block),a.Select=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new a.WithBlock(t),new a.StringBlock(t,"SELECT"),new a.FunctionBlock(t),new a.DistinctOnBlock(t),new a.GetFieldBlock(t),new a.FromTableBlock(t),new a.JoinBlock(t),new a.WhereBlock(t),new a.GroupByBlock(t),new a.HavingBlock(t),new a.OrderByBlock(t),new a.LimitBlock(t),new a.OffsetBlock(t),new a.UnionBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(a.QueryBuilder),a.Insert=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new a.WithBlock(t),new a.StringBlock(t,"INSERT"),new a.IntoTableBlock(t),new a.InsertFieldValueBlock(t),new a.InsertFieldsFromQueryBlock(t),new a.PostgresOnConflictKeyUpdateBlock(t),new a.ReturningBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(a.QueryBuilder),a.Update=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new a.WithBlock(t),new a.StringBlock(t,"UPDATE"),new a.UpdateTableBlock(t),new a.SetFieldBlock(t),new a.FromTableBlock(t),new a.WhereBlock(t),new a.OrderByBlock(t),new a.LimitBlock(t),new a.ReturningBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(a.QueryBuilder),a.Delete=function(t){function i(t){var r=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return n(this,i),r=r||[new a.WithBlock(t),new a.StringBlock(t,"DELETE"),new a.TargetTableBlock(t),new a.FromTableBlock(l({},t,{singleTable:!0})),new a.JoinBlock(t),new a.WhereBlock(t),new a.OrderByBlock(t),new a.LimitBlock(t),new a.ReturningBlock(t)],e(this,Object.getPrototypeOf(i).call(this,t,r))}return r(i,t),i}(a.QueryBuilder)},p});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "squel",
|
|
3
3
|
"description": "SQL query string builder",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.8.0",
|
|
5
5
|
"author": "Ramesh Nair <ram@hiddentao.com> (http://www.hiddentao.com/)",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Ramesh Nair <ram@hiddentao.com> (http://www.hiddentao.com/)",
|