@wix/filter-builder 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/cjs/__tests__/filter.spec.js +378 -0
  2. package/dist/cjs/__tests__/filter.spec.js.map +1 -0
  3. package/dist/cjs/__tests__/query-optimizer.spec.js +152 -0
  4. package/dist/cjs/__tests__/query-optimizer.spec.js.map +1 -0
  5. package/dist/cjs/clone.js +27 -0
  6. package/dist/cjs/clone.js.map +1 -0
  7. package/dist/cjs/filter-builder.js +30 -0
  8. package/dist/cjs/filter-builder.js.map +1 -0
  9. package/dist/cjs/filter-mixin.js +299 -0
  10. package/dist/cjs/filter-mixin.js.map +1 -0
  11. package/dist/cjs/filter-validator.js +101 -0
  12. package/dist/cjs/filter-validator.js.map +1 -0
  13. package/dist/cjs/index.js +25 -0
  14. package/dist/cjs/index.js.map +1 -0
  15. package/dist/cjs/query-optimiser.js +211 -0
  16. package/dist/cjs/query-optimiser.js.map +1 -0
  17. package/dist/cjs/type-utils.js +68 -0
  18. package/dist/cjs/type-utils.js.map +1 -0
  19. package/dist/cjs/validator.js +2 -0
  20. package/dist/cjs/validator.js.map +1 -0
  21. package/dist/esm/__tests__/filter.spec.js +211 -0
  22. package/dist/esm/__tests__/filter.spec.js.map +1 -0
  23. package/dist/esm/__tests__/query-optimizer.spec.js +39 -0
  24. package/dist/esm/__tests__/query-optimizer.spec.js.map +1 -0
  25. package/dist/esm/clone.js +18 -0
  26. package/dist/esm/clone.js.map +1 -0
  27. package/dist/esm/filter-builder.js +25 -0
  28. package/dist/esm/filter-builder.js.map +1 -0
  29. package/dist/esm/filter-mixin.js +298 -0
  30. package/dist/esm/filter-mixin.js.map +1 -0
  31. package/dist/esm/filter-validator.js +78 -0
  32. package/dist/esm/filter-validator.js.map +1 -0
  33. package/dist/esm/index.js +6 -0
  34. package/dist/esm/index.js.map +1 -0
  35. package/dist/esm/query-optimiser.js +171 -0
  36. package/dist/esm/query-optimiser.js.map +1 -0
  37. package/dist/esm/type-utils.js +40 -0
  38. package/dist/esm/type-utils.js.map +1 -0
  39. package/dist/esm/validator.js +2 -0
  40. package/dist/esm/validator.js.map +1 -0
  41. package/dist/statics/filter-builder.umd.js +453 -0
  42. package/dist/statics/filter-builder.umd.js.map +1 -0
  43. package/dist/statics/filter-builder.umd.min.js +2 -0
  44. package/dist/statics/filter-builder.umd.min.js.map +1 -0
  45. package/dist/statics/manifest.json +3 -0
  46. package/dist/statics/manifest.min.json +3 -0
  47. package/dist/tsconfig.tsbuildinfo +1 -0
  48. package/dist/types/__tests__/filter.spec.d.ts +2 -0
  49. package/dist/types/__tests__/filter.spec.d.ts.map +1 -0
  50. package/dist/types/__tests__/query-optimizer.spec.d.ts +2 -0
  51. package/dist/types/__tests__/query-optimizer.spec.d.ts.map +1 -0
  52. package/dist/types/clone.d.ts +2 -0
  53. package/dist/types/clone.d.ts.map +1 -0
  54. package/dist/types/filter-builder.d.ts +46 -0
  55. package/dist/types/filter-builder.d.ts.map +1 -0
  56. package/dist/types/filter-mixin.d.ts +42 -0
  57. package/dist/types/filter-mixin.d.ts.map +1 -0
  58. package/dist/types/filter-validator.d.ts +27 -0
  59. package/dist/types/filter-validator.d.ts.map +1 -0
  60. package/dist/types/index.d.ts +7 -0
  61. package/dist/types/index.d.ts.map +1 -0
  62. package/dist/types/query-optimiser.d.ts +2 -0
  63. package/dist/types/query-optimiser.d.ts.map +1 -0
  64. package/dist/types/type-utils.d.ts +11 -0
  65. package/dist/types/type-utils.d.ts.map +1 -0
  66. package/dist/types/validator.d.ts +14 -0
  67. package/dist/types/validator.d.ts.map +1 -0
  68. package/package.json +93 -0
@@ -0,0 +1,40 @@
1
+ import getKind from 'kind-of';
2
+ export function isObject(obj) {
3
+ return getKind(obj) === 'object';
4
+ }
5
+ export function isArray(arr) {
6
+ return getKind(arr) === 'array';
7
+ }
8
+ export function isDate(obj) {
9
+ return getKind(obj) === 'date';
10
+ }
11
+ export function isNumber(obj) {
12
+ return getKind(obj) === 'number';
13
+ }
14
+ export function isBoolean(obj) {
15
+ return getKind(obj) === 'boolean';
16
+ }
17
+ export function isString(obj) {
18
+ return getKind(obj) === 'string';
19
+ }
20
+ export function isFunction(obj) {
21
+ return getKind(obj) === 'function';
22
+ }
23
+ export function typeForDisplay(obj) {
24
+ return upperCaseFirst(getKind(obj));
25
+ }
26
+ export function isUndefined(obj) {
27
+ return getKind(obj) === 'undefined';
28
+ }
29
+ export function isNull(obj) {
30
+ return getKind(obj) === 'null';
31
+ }
32
+ function upperCaseFirst(str) {
33
+ if (!isString(str)) {
34
+ return str;
35
+ }
36
+ var first = str.slice(0, 1).toUpperCase();
37
+ var rest = str.slice(1, str.length);
38
+ return first + rest;
39
+ }
40
+ //# sourceMappingURL=type-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,MAAM,UAAU,QAAQ,CAAC,GAAG;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAG;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG;IAChC,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAG;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAA;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,GAAG;IACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,GAAG,CAAA;KACX;IACD,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,KAAK,GAAG,IAAI,CAAA;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,453 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define("platformized-filter-builder", [], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["platformized-filter-builder"] = factory();
8
+ else
9
+ root["platformized-filter-builder"] = factory();
10
+ })((typeof self !== 'undefined' ? self : this), function() {
11
+ return /******/ (function() { // webpackBootstrap
12
+ /******/ var __webpack_modules__ = ({
13
+
14
+ /***/ 306:
15
+ /*!****************************************!*\
16
+ !*** ../node_modules/kind-of/index.js ***!
17
+ \****************************************/
18
+ /***/ (function(module) {
19
+
20
+ var toString = Object.prototype.toString;
21
+
22
+ /**
23
+ * Get the native `typeof` a value.
24
+ *
25
+ * @param {*} `val`
26
+ * @return {*} Native javascript type
27
+ */
28
+
29
+ module.exports = function kindOf(val) {
30
+ var type = typeof val;
31
+
32
+ // primitivies
33
+ if (type === 'undefined') {
34
+ return 'undefined';
35
+ }
36
+ if (val === null) {
37
+ return 'null';
38
+ }
39
+ if (val === true || val === false || val instanceof Boolean) {
40
+ return 'boolean';
41
+ }
42
+ if (type === 'string' || val instanceof String) {
43
+ return 'string';
44
+ }
45
+ if (type === 'number' || val instanceof Number) {
46
+ return 'number';
47
+ }
48
+
49
+ // functions
50
+ if (type === 'function' || val instanceof Function) {
51
+ if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {
52
+ return 'generatorfunction';
53
+ }
54
+ return 'function';
55
+ }
56
+
57
+ // array
58
+ if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
59
+ return 'array';
60
+ }
61
+
62
+ // check for instances of RegExp and Date before calling `toString`
63
+ if (val instanceof RegExp) {
64
+ return 'regexp';
65
+ }
66
+ if (val instanceof Date) {
67
+ return 'date';
68
+ }
69
+
70
+ // other objects
71
+ type = toString.call(val);
72
+
73
+ if (type === '[object RegExp]') {
74
+ return 'regexp';
75
+ }
76
+ if (type === '[object Date]') {
77
+ return 'date';
78
+ }
79
+ if (type === '[object Arguments]') {
80
+ return 'arguments';
81
+ }
82
+ if (type === '[object Error]') {
83
+ return 'error';
84
+ }
85
+ if (type === '[object Promise]') {
86
+ return 'promise';
87
+ }
88
+
89
+ // buffer
90
+ if (isBuffer(val)) {
91
+ return 'buffer';
92
+ }
93
+
94
+ // es6: Map, WeakMap, Set, WeakSet
95
+ if (type === '[object Set]') {
96
+ return 'set';
97
+ }
98
+ if (type === '[object WeakSet]') {
99
+ return 'weakset';
100
+ }
101
+ if (type === '[object Map]') {
102
+ return 'map';
103
+ }
104
+ if (type === '[object WeakMap]') {
105
+ return 'weakmap';
106
+ }
107
+ if (type === '[object Symbol]') {
108
+ return 'symbol';
109
+ }
110
+
111
+ if (type === '[object Map Iterator]') {
112
+ return 'mapiterator';
113
+ }
114
+ if (type === '[object Set Iterator]') {
115
+ return 'setiterator';
116
+ }
117
+ if (type === '[object String Iterator]') {
118
+ return 'stringiterator';
119
+ }
120
+ if (type === '[object Array Iterator]') {
121
+ return 'arrayiterator';
122
+ }
123
+
124
+ // typed arrays
125
+ if (type === '[object Int8Array]') {
126
+ return 'int8array';
127
+ }
128
+ if (type === '[object Uint8Array]') {
129
+ return 'uint8array';
130
+ }
131
+ if (type === '[object Uint8ClampedArray]') {
132
+ return 'uint8clampedarray';
133
+ }
134
+ if (type === '[object Int16Array]') {
135
+ return 'int16array';
136
+ }
137
+ if (type === '[object Uint16Array]') {
138
+ return 'uint16array';
139
+ }
140
+ if (type === '[object Int32Array]') {
141
+ return 'int32array';
142
+ }
143
+ if (type === '[object Uint32Array]') {
144
+ return 'uint32array';
145
+ }
146
+ if (type === '[object Float32Array]') {
147
+ return 'float32array';
148
+ }
149
+ if (type === '[object Float64Array]') {
150
+ return 'float64array';
151
+ }
152
+
153
+ // must be a plain object
154
+ return 'object';
155
+ };
156
+
157
+ /**
158
+ * If you need to support Safari 5-7 (8-10 yr-old browser),
159
+ * take a look at https://github.com/feross/is-buffer
160
+ */
161
+
162
+ function isBuffer(val) {
163
+ return val.constructor
164
+ && typeof val.constructor.isBuffer === 'function'
165
+ && val.constructor.isBuffer(val);
166
+ }
167
+
168
+
169
+ /***/ }),
170
+
171
+ /***/ 663:
172
+ /*!***************************************************************************************************************!*\
173
+ !*** ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
174
+ \***************************************************************************************************************/
175
+ /***/ (function(module) {
176
+
177
+ function _assertThisInitialized(self) {
178
+ if (self === void 0) {
179
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
180
+ }
181
+
182
+ return self;
183
+ }
184
+
185
+ module.exports = _assertThisInitialized;
186
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
187
+
188
+ /***/ }),
189
+
190
+ /***/ 587:
191
+ /*!*****************************************************************************************************!*\
192
+ !*** ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/createClass.js ***!
193
+ \*****************************************************************************************************/
194
+ /***/ (function(module) {
195
+
196
+ function _defineProperties(target, props) {
197
+ for (var i = 0; i < props.length; i++) {
198
+ var descriptor = props[i];
199
+ descriptor.enumerable = descriptor.enumerable || false;
200
+ descriptor.configurable = true;
201
+ if ("value" in descriptor) descriptor.writable = true;
202
+ Object.defineProperty(target, descriptor.key, descriptor);
203
+ }
204
+ }
205
+
206
+ function _createClass(Constructor, protoProps, staticProps) {
207
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
208
+ if (staticProps) _defineProperties(Constructor, staticProps);
209
+ return Constructor;
210
+ }
211
+
212
+ module.exports = _createClass;
213
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
214
+
215
+ /***/ }),
216
+
217
+ /***/ 837:
218
+ /*!********************************************************************************************************!*\
219
+ !*** ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/defineProperty.js ***!
220
+ \********************************************************************************************************/
221
+ /***/ (function(module) {
222
+
223
+ function _defineProperty(obj, key, value) {
224
+ if (key in obj) {
225
+ Object.defineProperty(obj, key, {
226
+ value: value,
227
+ enumerable: true,
228
+ configurable: true,
229
+ writable: true
230
+ });
231
+ } else {
232
+ obj[key] = value;
233
+ }
234
+
235
+ return obj;
236
+ }
237
+
238
+ module.exports = _defineProperty;
239
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
240
+
241
+ /***/ }),
242
+
243
+ /***/ 921:
244
+ /*!*************************************************************************************************!*\
245
+ !*** ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/extends.js ***!
246
+ \*************************************************************************************************/
247
+ /***/ (function(module) {
248
+
249
+ function _extends() {
250
+ module.exports = _extends = Object.assign || function (target) {
251
+ for (var i = 1; i < arguments.length; i++) {
252
+ var source = arguments[i];
253
+
254
+ for (var key in source) {
255
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
256
+ target[key] = source[key];
257
+ }
258
+ }
259
+ }
260
+
261
+ return target;
262
+ };
263
+
264
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
265
+ return _extends.apply(this, arguments);
266
+ }
267
+
268
+ module.exports = _extends;
269
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
270
+
271
+ /***/ }),
272
+
273
+ /***/ 354:
274
+ /*!*******************************************************************************************************!*\
275
+ !*** ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/inheritsLoose.js ***!
276
+ \*******************************************************************************************************/
277
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
278
+
279
+ var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 262);
280
+
281
+ function _inheritsLoose(subClass, superClass) {
282
+ subClass.prototype = Object.create(superClass.prototype);
283
+ subClass.prototype.constructor = subClass;
284
+ setPrototypeOf(subClass, superClass);
285
+ }
286
+
287
+ module.exports = _inheritsLoose;
288
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
289
+
290
+ /***/ }),
291
+
292
+ /***/ 262:
293
+ /*!********************************************************************************************************!*\
294
+ !*** ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
295
+ \********************************************************************************************************/
296
+ /***/ (function(module) {
297
+
298
+ function _setPrototypeOf(o, p) {
299
+ module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
300
+ o.__proto__ = p;
301
+ return o;
302
+ };
303
+
304
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
305
+ return _setPrototypeOf(o, p);
306
+ }
307
+
308
+ module.exports = _setPrototypeOf;
309
+ module.exports["default"] = module.exports, module.exports.__esModule = true;
310
+
311
+ /***/ }),
312
+
313
+ /***/ 476:
314
+ /*!**********************!*\
315
+ !*** ./validator.ts ***!
316
+ \**********************/
317
+ /***/ (function() {
318
+
319
+
320
+
321
+ /***/ })
322
+
323
+ /******/ });
324
+ /************************************************************************/
325
+ /******/ // The module cache
326
+ /******/ var __webpack_module_cache__ = {};
327
+ /******/
328
+ /******/ // The require function
329
+ /******/ function __webpack_require__(moduleId) {
330
+ /******/ // Check if module is in cache
331
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
332
+ /******/ if (cachedModule !== undefined) {
333
+ /******/ return cachedModule.exports;
334
+ /******/ }
335
+ /******/ // Create a new module (and put it into the cache)
336
+ /******/ var module = __webpack_module_cache__[moduleId] = {
337
+ /******/ // no module.id needed
338
+ /******/ // no module.loaded needed
339
+ /******/ exports: {}
340
+ /******/ };
341
+ /******/
342
+ /******/ // Execute the module function
343
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
344
+ /******/
345
+ /******/ // Return the exports of the module
346
+ /******/ return module.exports;
347
+ /******/ }
348
+ /******/
349
+ /************************************************************************/
350
+ /******/ /* webpack/runtime/compat get default export */
351
+ /******/ !function() {
352
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
353
+ /******/ __webpack_require__.n = function(module) {
354
+ /******/ var getter = module && module.__esModule ?
355
+ /******/ function() { return module['default']; } :
356
+ /******/ function() { return module; };
357
+ /******/ __webpack_require__.d(getter, { a: getter });
358
+ /******/ return getter;
359
+ /******/ };
360
+ /******/ }();
361
+ /******/
362
+ /******/ /* webpack/runtime/define property getters */
363
+ /******/ !function() {
364
+ /******/ // define getter functions for harmony exports
365
+ /******/ __webpack_require__.d = function(exports, definition) {
366
+ /******/ for(var key in definition) {
367
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
368
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
369
+ /******/ }
370
+ /******/ }
371
+ /******/ };
372
+ /******/ }();
373
+ /******/
374
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
375
+ /******/ !function() {
376
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
377
+ /******/ }();
378
+ /******/
379
+ /******/ /* webpack/runtime/make namespace object */
380
+ /******/ !function() {
381
+ /******/ // define __esModule on exports
382
+ /******/ __webpack_require__.r = function(exports) {
383
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
384
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
385
+ /******/ }
386
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
387
+ /******/ };
388
+ /******/ }();
389
+ /******/
390
+ /************************************************************************/
391
+ var __webpack_exports__ = {};
392
+ // This entry need to be wrapped in an IIFE because it need to be in strict mode.
393
+ !function() {
394
+ "use strict";
395
+ /*!******************************!*\
396
+ !*** ./index.ts + 6 modules ***!
397
+ \******************************/
398
+ // ESM COMPAT FLAG
399
+ __webpack_require__.r(__webpack_exports__);
400
+
401
+ // EXPORTS
402
+ __webpack_require__.d(__webpack_exports__, {
403
+ "Validator": function() { return /* reexport */ validator.Validator; },
404
+ "default": function() { return /* binding */ index; },
405
+ "filterBuilder": function() { return /* reexport */ filterBuilder; },
406
+ "filterMixin": function() { return /* reexport */ filter_mixin; },
407
+ "optimiseQuery": function() { return /* reexport */ optimisedQuery; }
408
+ });
409
+
410
+ // EXTERNAL MODULE: ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/createClass.js
411
+ var createClass = __webpack_require__(587);
412
+ var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);
413
+ // EXTERNAL MODULE: ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/inheritsLoose.js
414
+ var inheritsLoose = __webpack_require__(354);
415
+ var inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose);
416
+ // EXTERNAL MODULE: ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/extends.js
417
+ var helpers_extends = __webpack_require__(921);
418
+ var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);
419
+ // EXTERNAL MODULE: ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/assertThisInitialized.js
420
+ var assertThisInitialized = __webpack_require__(663);
421
+ var assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized);
422
+ // EXTERNAL MODULE: ../../node_modules/@wix/babel-preset-yoshi/node_modules/@babel/runtime/helpers/defineProperty.js
423
+ var defineProperty = __webpack_require__(837);
424
+ var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
425
+ // EXTERNAL MODULE: ../node_modules/kind-of/index.js
426
+ var kind_of = __webpack_require__(306);
427
+ var kind_of_default = /*#__PURE__*/__webpack_require__.n(kind_of);
428
+ ;// CONCATENATED MODULE: ./type-utils.ts
429
+ function isObject(obj){return getKind(obj)==='object';}function isArray(arr){return kind_of_default()(arr)==='array';}function isDate(obj){return kind_of_default()(obj)==='date';}function isNumber(obj){return kind_of_default()(obj)==='number';}function isBoolean(obj){return getKind(obj)==='boolean';}function isString(obj){return kind_of_default()(obj)==='string';}function isFunction(obj){return getKind(obj)==='function';}function typeForDisplay(obj){return upperCaseFirst(kind_of_default()(obj));}function isUndefined(obj){return getKind(obj)==='undefined';}function isNull(obj){return getKind(obj)==='null';}function upperCaseFirst(str){if(!isString(str)){return str;}var first=str.slice(0,1).toUpperCase();var rest=str.slice(1,str.length);return first+rest;}
430
+ ;// CONCATENATED MODULE: ./clone.ts
431
+ function clone(obj){if(obj==null||typeof obj!=='object'){return obj;}var temp=null;if(isDate(obj)){temp=new Date(obj.getTime());}else{temp=obj.constructor();for(var key in obj){temp[key]=clone(obj[key]);}}return temp;}
432
+ ;// CONCATENATED MODULE: ./filter-validator.ts
433
+ var FilterValidator=/*#__PURE__*/function(){function FilterValidator(operatorName,previousInvalidArguments,ctor){defineProperty_default()(this,"ctor",void 0);defineProperty_default()(this,"_invalidArguments",void 0);defineProperty_default()(this,"_validations",void 0);defineProperty_default()(this,"operatorName",void 0);this._validations=[];this.operatorName=operatorName;this.ctor=ctor;this._invalidArguments=clone(previousInvalidArguments);}var _proto=FilterValidator.prototype;_proto.typeIsString=function typeIsString(value){var _this=this;return this.addValidation(function(){return isString(value);},function(){return"Invalid "+_this.operatorName+" parameter value ["+typeForDisplay(value)+"]. "+_this.operatorName+" parameter must be a String.";});};_proto.typeIsStringNumberOrDate=function typeIsStringNumberOrDate(value){var _this2=this;return this.addValidation(function(){return isDateStringOrNumber(value);},function(){return"Invalid "+_this2.operatorName+" parameter value ["+typeForDisplay(value)+"]. Valid "+_this2.operatorName+" parameter types are String, Number or Date.";});};_proto.sameType=function sameType(first,second){var _this3=this;return this.addValidation(function(){return typeForDisplay(first)===typeForDisplay(second);},function(){return"Invalid "+_this3.operatorName+" parameter values ["+typeForDisplay(first)+"] and ["+typeForDisplay(second)+"]. Both parameters must be of the same type.";});};_proto.typeIsStringNumberOrDateForAll=function typeIsStringNumberOrDateForAll(values){var _this4=this;return this.addValidation(function(){return values.every(isDateStringOrNumber);},function(){return"Invalid "+_this4.operatorName+" usage. "+_this4.operatorName+" supports only Number, String or Date items.";});};_proto.validFieldName=function validFieldName(field){var _this5=this;return this.addValidation(function(){return isString(field);},function(){return"Invalid "+_this5.operatorName+" field value ["+typeForDisplay(field)+"]. "+_this5.operatorName+" field must be a String.";});};_proto.isInstanceOfSameClass=function isInstanceOfSameClass(obj){var _this6=this;return this.addValidation(function(){return obj instanceof _this6.ctor;},function(){return"Invalid "+_this6.operatorName+" parameter ["+typeForDisplay(obj)+"]. "+_this6.operatorName+" expects FilterBuilder only.";});};_proto.arityIsOne=function arityIsOne(args){var _this7=this;return this.addValidation(function(){return args.length===1;},function(){return"Invalid "+_this7.operatorName+" usage. "+_this7.operatorName+" requires one parameter.";});};_proto.arityIsTwo=function arityIsTwo(args){var _this8=this;return this.addValidation(function(){return args.length===2;},function(){return"Invalid "+_this8.operatorName+" usage. "+_this8.operatorName+" requires two parameters.";});};_proto.arityIsThree=function arityIsThree(args){var _this9=this;return this.addValidation(function(){return args.length===3;},function(){return"Invalid "+_this9.operatorName+" usage. "+_this9.operatorName+" requires three parameters.";});};_proto.arityIsAtLeastTwo=function arityIsAtLeastTwo(args){var _this10=this;return this.addValidation(function(){return args.length>=2;},function(){return"Invalid "+_this10.operatorName+" usage. "+_this10.operatorName+" requires at least two parameters.";});};_proto.addValidation=function addValidation(predicateFn,messageFn){this._validations.push({predicateFn:predicateFn,messageFn:messageFn});return this;};_proto.validateAndAggregate=function validateAndAggregate(){var _this11=this;var valid=this._validations.every(function(_ref){var predicateFn=_ref.predicateFn,messageFn=_ref.messageFn;return _this11._appendIfInvalid(predicateFn(),messageFn());});return[this._invalidArguments,valid];};_proto._appendIfInvalid=function _appendIfInvalid(valid,message){if(!valid){this._invalidArguments.push(message);return false;}return true;};return FilterValidator;}();function isDateStringOrNumber(value){return isString(value)||isNumber(value)||isDate(value);}
434
+ ;// CONCATENATED MODULE: ./query-optimiser.ts
435
+ function _createForOfIteratorHelperLoose(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(it)return(it=it.call(o)).next.bind(it);if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;return function(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}var optimisations=[optimisedUnaryAnd,optimisedEmptyAnd,optimisedAndsAsObjects,optimisedNestedAnds,optimisedNestedOrs];function optimisedQuery(query){var _fullyOptimised=fullyOptimised(query),newQuery=_fullyOptimised[0];return newQuery;}function fullyOptimised(query){if(Array.isArray(query)){return fullyOptimisedArray(query);}if(typeof query==='object'&&query!==null&&!instanceOfIgnoredType(query)){return fullyOptimisedObject(query);}return[query,false];}function fullyOptimisedArray(query){var optimisedElements=query.map(fullyOptimised);var somethingChanged=0<optimisedElements.filter(function(_ref){var elementChanged=_ref[1];return elementChanged;}).length;var newElements=optimisedElements.map(function(_ref2){var element=_ref2[0];return element;});return[newElements,somethingChanged];}function fullyOptimisedObject(query){var _fullEntriesOptimisat=fullEntriesOptimisation(query),queryAfterOptimisingEntries=_fullEntriesOptimisat[0],changedStage1=_fullEntriesOptimisat[1];var _fullObjectOptimisati=fullObjectOptimisation(queryAfterOptimisingEntries),queryAfterFullOptimisation=_fullObjectOptimisati[0],changedStage2=_fullObjectOptimisati[1];var changed=changedStage1||changedStage2;return[queryAfterFullOptimisation,changed];function fullObjectOptimisation(query){var updatedQuery=applyFirstOptimisation(query);if(!updatedQuery){return[query,false];}var _fullyOptimised2=fullyOptimised(updatedQuery),finalQuery=_fullyOptimised2[0];return[finalQuery,true];}function fullEntriesOptimisation(query){var changedEntries=Object.entries(query).map(entryOptimisation).filter(function(_ref3){var changed=_ref3[2];return changed;});var newQuery=extends_default()({},query,entriesAsObject(changedEntries));var changed=!!changedEntries.length;return[newQuery,changed];}function entryOptimisation(_ref4){var key=_ref4[0],value=_ref4[1];var _fullyOptimised3=fullyOptimised(value),newValue=_fullyOptimised3[0],changed=_fullyOptimised3[1];return[key,newValue,changed];}function entriesAsObject(entries){return entries.reduce(function(acc,_ref5){var _extends2;var key=_ref5[0],value=_ref5[1];return extends_default()({},acc,(_extends2={},_extends2[key]=value,_extends2));},{});}}function applyFirstOptimisation(node){for(var _iterator=_createForOfIteratorHelperLoose(optimisations),_step;!(_step=_iterator()).done;){var optimisation=_step.value;var newNode=optimisation(node);if(newNode){return newNode;}}}function optimisedUnaryAnd(node){var args=node.$and;if(Array.isArray(args)&&args.length===1){return args[0];}}function optimisedEmptyAnd(node){var args=node.$and;if(Array.isArray(args)&&args.length===0){return{};}return null;}function optimisedAndsAsObjects(node){var args=node.$and;if(!args){return;}var basicObjects=[];var operatorObjects=[];args.forEach(function(arg){if(isOperator(arg)){operatorObjects=[].concat(operatorObjects,[arg]);}else{basicObjects=[].concat(basicObjects,[arg]);}});if(basicObjects.length<=1||haveOverlappingFields(basicObjects)){return;}var combinedBasicObjects=Object.assign.apply(Object,[{}].concat(basicObjects));return{$and:[combinedBasicObjects].concat(operatorObjects)};function isOperator(node){var keys=Object.keys(node);return keys.every(function(name){return name.startsWith('$');})&&keys.length>0;}function haveOverlappingFields(objects){var nonUniqueKeys=objects.map(function(it){return Object.keys(it);}).reduce(function(a,b){return[].concat(a,b);},[]);var uniqueKeys=unique(nonUniqueKeys);return uniqueKeys.length!==nonUniqueKeys.length;}function unique(values){var dict={};values.forEach(function(v){return dict[v]=true;});return Object.keys(dict);}}function optimisedNestedAnds(node){var args=node.$and;if(!args){return;}var hasNestedAnds=!!args.find(function(it){return it.$and;});if(!hasNestedAnds){return;}var newArgs=args.reduce(function(result,current){var and=current.$and;if(!and){return[].concat(result,[current]);}return[].concat(result,and);},[]);return{$and:newArgs};}function optimisedNestedOrs(node){var args=node.$or;if(!args){return;}var hasNestedOrs=!!args.find(function(it){return it.$or;});if(!hasNestedOrs){return;}var newArgs=args.reduce(function(result,current){var or=current.$or;if(!or){return[].concat(result,[current]);}return[].concat(result,or);},[]);return{$or:newArgs};}function instanceOfIgnoredType(obj){return obj instanceof Date;}
436
+ ;// CONCATENATED MODULE: ./filter-mixin.ts
437
+ var filterMixin=function filterMixin(Base){if(Base===void 0){Base=function Base(){};}return/*#__PURE__*/function(_Base){inheritsLoose_default()(_class2,_Base);function _class2(obj){var _this;if(obj===void 0){obj={};}_this=_Base.call(this,obj)||this;defineProperty_default()(assertThisInitialized_default()(_this),"filterTree",void 0);defineProperty_default()(assertThisInitialized_default()(_this),"invalidArguments",void 0);_this.filterTree=obj.filterTree||{$and:[]};_this.invalidArguments=obj.invalidArguments||[];return _this;}var _proto=_class2.prototype;_proto.eq=function eq(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}return this._binaryAnd('$eq','.eq',args);};_proto.ne=function ne(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}return this._binaryAnd('$ne','.ne',args);};_proto.ge=function ge(){for(var _len3=arguments.length,args=new Array(_len3),_key3=0;_key3<_len3;_key3++){args[_key3]=arguments[_key3];}return this._AndLogicalEquivalence('$gte','.ge',args);};_proto.gt=function gt(){for(var _len4=arguments.length,args=new Array(_len4),_key4=0;_key4<_len4;_key4++){args[_key4]=arguments[_key4];}return this._AndLogicalEquivalence('$gt','.gt',args);};_proto.le=function le(){for(var _len5=arguments.length,args=new Array(_len5),_key5=0;_key5<_len5;_key5++){args[_key5]=arguments[_key5];}return this._AndLogicalEquivalence('$lte','.le',args);};_proto.lt=function lt(){for(var _len6=arguments.length,args=new Array(_len6),_key6=0;_key6<_len6;_key6++){args[_key6]=arguments[_key6];}return this._AndLogicalEquivalence('$lt','.lt',args);};_proto.isNotEmpty=function isNotEmpty(field){var _this$_filterValidato=this._filterValidator('.isNotEmpty').arityIsOne(arguments).validFieldName(field).validateAndAggregate(),newInvalidArguments=_this$_filterValidato[0],valid=_this$_filterValidato[1];if(valid){return this.ne(field,null);}return this._copy(this.filterTree,newInvalidArguments);};_proto.isEmpty=function isEmpty(field){var _this$_filterValidato2=this._filterValidator('.isEmpty').arityIsOne(arguments).validFieldName(field).validateAndAggregate(),newInvalidArguments=_this$_filterValidato2[0],valid=_this$_filterValidato2[1];if(valid){return this.eq(field,null);}return this._copy(this.filterTree,newInvalidArguments);};_proto.startsWith=function startsWith(){for(var _len7=arguments.length,args=new Array(_len7),_key7=0;_key7<_len7;_key7++){args[_key7]=arguments[_key7];}return this._AndStringOperand('$startsWith','.startsWith',args);};_proto.endsWith=function endsWith(){for(var _len8=arguments.length,args=new Array(_len8),_key8=0;_key8<_len8;_key8++){args[_key8]=arguments[_key8];}return this._AndStringOperand('$endsWith','.endsWith',args);};_proto.contains=function contains(){for(var _len9=arguments.length,args=new Array(_len9),_key9=0;_key9<_len9;_key9++){args[_key9]=arguments[_key9];}return this._AndStringOperand('$contains','.contains',args);};_proto.hasSome=function hasSome(){for(var _len10=arguments.length,args=new Array(_len10),_key10=0;_key10<_len10;_key10++){args[_key10]=arguments[_key10];}return this._AndSetOperand('$hasSome','.hasSome',args);};_proto.hasAll=function hasAll(){for(var _len11=arguments.length,args=new Array(_len11),_key11=0;_key11<_len11;_key11++){args[_key11]=arguments[_key11];}return this._AndSetOperand('$hasAll','.hasAll',args);};_proto.or=function or(orQuery){var _this$_filterValidato3=this._filterValidator('.or').arityIsOne(arguments).isInstanceOfSameClass(orQuery).validateAndAggregate(),newInvalidArguments=_this$_filterValidato3[0],valid=_this$_filterValidato3[1];if(valid){var prefix=isEmptyAnd(this.filterTree)?[]:[this.filterTree];return this._copy(inAnd({$or:[].concat(prefix,[orQuery.filterTree])}),newInvalidArguments.concat(orQuery.invalidArguments));}else{return this._copy(this.filterTree,newInvalidArguments);}};_proto.and=function and(andQuery){var _this$_filterValidato4=this._filterValidator('.and').arityIsOne(arguments).isInstanceOfSameClass(andQuery).validateAndAggregate(),newInvalidArguments=_this$_filterValidato4[0],valid=_this$_filterValidato4[1];if(valid){var prefix=isEmptyAnd(this.filterTree)?[]:[this.filterTree];return this._copy(inAnd.apply(void 0,prefix.concat([andQuery.filterTree])),newInvalidArguments.concat(andQuery.invalidArguments));}else{return this._copy(this.filterTree,newInvalidArguments);}};_proto.not=function not(notQuery){var _this$_filterValidato5=this._filterValidator('.not').arityIsOne(arguments).isInstanceOfSameClass(notQuery).validateAndAggregate(),newInvalidArguments=_this$_filterValidato5[0],valid=_this$_filterValidato5[1];if(valid){var newFilterTree=clone(this.filterTree);var notClause={$not:[notQuery.filterTree]};var resultingFilter=inAndOptimized(newFilterTree,notClause);return this._copy(resultingFilter,newInvalidArguments.concat(notQuery.invalidArguments));}else{return this._copy(this.filterTree,newInvalidArguments);}};_proto.between=function between(field,rangeStart,rangeEnd){var _this$_filterValidato6=this._filterValidator('.between').arityIsThree(arguments).sameType(rangeStart,rangeEnd).typeIsStringNumberOrDate(rangeStart).typeIsStringNumberOrDate(rangeEnd).validateAndAggregate(),newInvalidArguments=_this$_filterValidato6[0],valid=_this$_filterValidato6[1];if(valid){return this.ge(field,rangeStart).lt(field,rangeEnd);}return this._copy(this.filterTree,newInvalidArguments);};_proto.getFilterModel=function getFilterModel(){if(this.invalidArguments.length>0){throw new Error(this.invalidArguments.join(' '));}return optimisedQuery(this.filterTree);};_proto.setFilterModel=function setFilterModel(filterModel){return this._copy(filterModel,[]);};_proto._binaryAnd=function _binaryAnd(filterOperatorSymbol,operatorName,args){var _Array$prototype$slic=Array.prototype.slice.call(args),field=_Array$prototype$slic[0],operand=_Array$prototype$slic[1];var _this$_filterValidato7=this._filterValidator(operatorName).arityIsTwo(args).validFieldName(field).validateAndAggregate(),newInvalidArguments=_this$_filterValidato7[0];var newFilterTree=this._makeNewFilter(field,filterOperatorSymbol,operand);return this._copy(newFilterTree,newInvalidArguments);};_proto._AndLogicalEquivalence=function _AndLogicalEquivalence(filterOperatorSymbol,operatorName,args){var _Array$prototype$slic2=Array.prototype.slice.call(args),field=_Array$prototype$slic2[0],operand=_Array$prototype$slic2[1];var _this$_filterValidato8=this._filterValidator(operatorName).arityIsTwo(args).validFieldName(field).typeIsStringNumberOrDate(operand).validateAndAggregate(),newInvalidArguments=_this$_filterValidato8[0];var newFilterTree=this._makeNewFilter(field,filterOperatorSymbol,operand);return this._copy(newFilterTree,newInvalidArguments);};_proto._AndStringOperand=function _AndStringOperand(filterOperatorName,operatorName,args){var _Array$prototype$slic3=Array.prototype.slice.call(args),field=_Array$prototype$slic3[0],operand=_Array$prototype$slic3[1];var _this$_filterValidato9=this._filterValidator(operatorName).arityIsTwo(args).validFieldName(field).typeIsString(operand).validateAndAggregate(),newInvalidArguments=_this$_filterValidato9[0];var newFilterTree=this._makeNewFilter(field,filterOperatorName,operand);return this._copy(newFilterTree,newInvalidArguments);};_proto._AndSetOperand=function _AndSetOperand(filterOperatorName,operatorName,args){var _Array$prototype$slic4=Array.prototype.slice.call(args),field=_Array$prototype$slic4[0],rawOperands=_Array$prototype$slic4.slice(1);var operands=isArray(rawOperands[0])?rawOperands[0]:rawOperands;var _this$_filterValidato10=this._filterValidator(operatorName).arityIsAtLeastTwo(args).validFieldName(field).typeIsStringNumberOrDateForAll(operands).validateAndAggregate(),newInvalidArguments=_this$_filterValidato10[0];var newFilterTree=this._makeNewFilter(field,filterOperatorName,operands);return this._copy(newFilterTree,newInvalidArguments);};_proto._makeNewFilter=function _makeNewFilter(field,filterOperatorName,operand){var newFilterTree=clone(this.filterTree);// filters with 'undefined' value are lost during serialization,
438
+ // e.g. { val: { $ne: undefined } | translates to { val: {} }
439
+ // Replacing 'undefined' with 'null' retains the filter.
440
+ var serializableOperand=operand===undefined?null:operand;var newFilter=this._buildFilter(field,filterOperatorName,serializableOperand);if(isArray(newFilterTree.$and)){newFilterTree.$and.push(newFilter);return newFilterTree;}else{var result=isEmptyObject(newFilterTree)?inAnd(newFilter):inAnd(newFilterTree,newFilter);return result;}};_proto._buildFilter=function _buildFilter(field,filterOperatorName,operand){if(filterOperatorName!=='$eq'){var newFilter={};newFilter[field]={};newFilter[field][filterOperatorName]=this._replaceRefs(operand);return newFilter;}else{var _newFilter={};_newFilter[field]=this._replaceRefs(operand);return _newFilter;}};_proto._replaceRefs=function _replaceRefs(operand){var _this2=this;if(isArray(operand)){return operand.map(function(op){return _this2._replaceRefs(op);});}else{return operand;}};_proto._copy=function _copy(filterTree,invalidArguments){// @ts-ignore-next-line
441
+ return new this.constructor(extends_default()({},this,{filterTree:filterTree,invalidArguments:invalidArguments}));};_proto._filterValidator=function _filterValidator(filterOperatorName){return new FilterValidator(filterOperatorName,this.invalidArguments,this.constructor);};return _class2;}(Base);};function isConjunctiveFormFilter(filterTree){return isArray(filterTree.$and);}function isEmptyObject(obj){return Object.keys(obj).length===0;}function inAnd(){for(var _len12=arguments.length,args=new Array(_len12),_key12=0;_key12<_len12;_key12++){args[_key12]=arguments[_key12];}return{$and:args};}function inAndOptimized(){for(var _len13=arguments.length,args=new Array(_len13),_key13=0;_key13<_len13;_key13++){args[_key13]=arguments[_key13];}return{$and:args.reduce(function(aggr,val){return isConjunctiveFormFilter(val)?aggr.concat(val.$and):aggr.concat([val]);},[])};}function isEmptyAnd(node){return node&&node.$and&&node.$and.length===0;}/* harmony default export */ var filter_mixin = (filterMixin);
442
+ ;// CONCATENATED MODULE: ./filter-builder.ts
443
+ var FilterBuilder=/*#__PURE__*/function(_filterMixin){inheritsLoose_default()(FilterBuilder,_filterMixin);function FilterBuilder(){return _filterMixin.apply(this,arguments)||this;}var _proto=FilterBuilder.prototype;_proto._build=function _build(){return this.getFilterModel();};createClass_default()(FilterBuilder,[{key:"constructorName",get:function get(){return'FilterBuilder';}}]);return FilterBuilder;}(filter_mixin());function filterBuilder(){return new FilterBuilder({});}/* harmony default export */ var filter_builder = ((/* unused pure expression or super */ null && (filterBuilder)));
444
+ // EXTERNAL MODULE: ./validator.ts
445
+ var validator = __webpack_require__(476);
446
+ ;// CONCATENATED MODULE: ./index.ts
447
+ /* harmony default export */ var index = (filterBuilder);
448
+ }();
449
+ /******/ return __webpack_exports__;
450
+ /******/ })()
451
+ ;
452
+ });
453
+ //# sourceMappingURL=filter-builder.umd.js.map