From a300f98c7d0be4b72912fef0a0ece822f78430e4 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sun, 26 Mar 2017 16:12:14 +0200 Subject: [PATCH 01/97] Fix #452 handle StringValues in SQL parser --- src/plugins/sql-support/plugin.js | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index 8dc92ca9..fba3f4bb 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -418,18 +418,18 @@ QueryBuilder.extend({ * @param {object} AST node * @returns {object} tree, rule or group */ - query = self.change('parseSQLNode', parsed.where.conditions); + var data = self.change('parseSQLNode', parsed.where.conditions); // a plugin returned a group - if ('rules' in query && 'condition' in query) { - return query; + if ('rules' in data && 'condition' in data) { + return data; } // a plugin returned a rule - if ('id' in query && 'operator' in query && 'value' in query) { + if ('id' in data && 'operator' in data && 'value' in data) { return { condition: this.settings.default_condition, - rules: [query] + rules: [data] }; } @@ -437,7 +437,7 @@ QueryBuilder.extend({ var out = self.change('sqlToGroup', { condition: this.settings.default_condition, rules: [] - }, query); + }, data); // keep track of current group var curr = out; @@ -533,7 +533,18 @@ QueryBuilder.extend({ } var opVal = sqlrl.call(this, value, data.operation); - var field = data.left.values.join('.'); + + // find field name + var field; + if ('values' in data.left) { + field = data.left.values.join('.'); + } + else if ('value' in data.left) { + field = data.left.value; + } + else { + Utils.error('SQLParse', 'Cannot find field name in {0}', JSON.stringify(data.left)); + } /** * Returns a filter identifier from the SQL field @@ -562,7 +573,7 @@ QueryBuilder.extend({ curr.rules.push(rule); } - }(query, 0)); + }(data, 0)); return out; }, From 21decbfb8f08989da17fba4e966b02b30f0ae9ac Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Fri, 31 Mar 2017 14:07:06 +0200 Subject: [PATCH 02/97] Fix #458 Translate operator name in "Operator not multiple" message --- src/data.js | 19 ++++++++++++++++++- src/i18n/az.json | 2 +- src/i18n/bg.json | 2 +- src/i18n/cs.json | 2 +- src/i18n/el.json | 2 +- src/i18n/en.json | 2 +- src/i18n/fa-IR.json | 4 ++-- src/i18n/fr.json | 2 +- src/i18n/he.json | 2 +- src/i18n/pl.json | 2 +- src/i18n/pt-BR.json | 2 +- src/i18n/ru.json | 2 +- src/i18n/sq.json | 2 +- src/i18n/tr.json | 2 +- src/i18n/ua.json | 2 +- src/i18n/zh-CN.json | 2 +- 16 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/data.js b/src/data.js index 41b78090..3ef57c02 100644 --- a/src/data.js +++ b/src/data.js @@ -49,7 +49,7 @@ QueryBuilder.prototype._validateValue = function(rule, value) { for (var i = 0; i < operator.nb_inputs; i++) { if (!operator.multiple && $.isArray(value[i]) && value[i].length > 1) { - result = ['operator_not_multiple', operator.type]; + result = ['operator_not_multiple', operator.type, this.translate('operators', operator.type)]; break; } @@ -591,6 +591,23 @@ QueryBuilder.prototype.getGroupFlags = function(flags, all) { } }; +/** + * Retrieve a translation in the `lang` object + * @param {string} [category] + * @param {string} key + * @returns {string} + */ +QueryBuilder.prototype.translate = function(category, key) { + if (!key) { + key = category; + category = undefined; + } + + var translation = (category ? this.lang[category] : this.lang)[key] || key; + + return this.change('translate', translation, category, key); +}; + /** * Translates a label * @param {string|object} label diff --git a/src/i18n/az.json b/src/i18n/az.json index 3cc13816..5e12334f 100644 --- a/src/i18n/az.json +++ b/src/i18n/az.json @@ -52,6 +52,6 @@ "datetime_exceed_min": "{0} sonra olmalıdır", "datetime_exceed_max": "{0} əvvəl olmalıdır", "boolean_not_valid": "Loqik olmayan", - "operator_not_multiple": "{0} operatoru çoxlu məna daşımır" + "operator_not_multiple": "\"{1}\" operatoru çoxlu məna daşımır" } } \ No newline at end of file diff --git a/src/i18n/bg.json b/src/i18n/bg.json index 27083bb4..095d01cc 100644 --- a/src/i18n/bg.json +++ b/src/i18n/bg.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "Трябва да е след {0}", "datetime_exceed_max": "Трябва да е преди {0}", "boolean_not_valid": "Не е булева", - "operator_not_multiple": "Оператора {0} не може да приеме множество стойности" + "operator_not_multiple": "Оператора \"{1}\" не може да приеме множество стойности" } } diff --git a/src/i18n/cs.json b/src/i18n/cs.json index 522e6978..448cc97d 100644 --- a/src/i18n/cs.json +++ b/src/i18n/cs.json @@ -52,6 +52,6 @@ "datetime_exceed_min": "Musí být po {0}", "datetime_exceed_max": "Musí být do {0}", "boolean_not_valid": "Nelogické", - "operator_not_multiple": "Operátor {0} nepodporuje mnoho hodnot" + "operator_not_multiple": "Operátor \"{1}\" nepodporuje mnoho hodnot" } } \ No newline at end of file diff --git a/src/i18n/el.json b/src/i18n/el.json index 9e141a73..0c988473 100644 --- a/src/i18n/el.json +++ b/src/i18n/el.json @@ -52,6 +52,6 @@ "datetime_exceed_min": "Νεότερο από {0}", "datetime_exceed_max": "Παλαιότερο από {0}", "boolean_not_valid": "Δεν είναι BOOLEAN", - "operator_not_multiple": "Η συνθήκη {0} δεν μπορεί να δεχθεί πολλαπλές τιμές" + "operator_not_multiple": "Η συνθήκη \"{1}\" δεν μπορεί να δεχθεί πολλαπλές τιμές" } } \ No newline at end of file diff --git a/src/i18n/en.json b/src/i18n/en.json index b5828139..a0e9fd12 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "Must be after {0}", "datetime_exceed_max": "Must be before {0}", "boolean_not_valid": "Not a boolean", - "operator_not_multiple": "Operator {0} cannot accept multiple values" + "operator_not_multiple": "Operator \"{1}\" cannot accept multiple values" } } \ No newline at end of file diff --git a/src/i18n/fa-IR.json b/src/i18n/fa-IR.json index a6da0959..2900248c 100644 --- a/src/i18n/fa-IR.json +++ b/src/i18n/fa-IR.json @@ -21,7 +21,7 @@ "less_or_equal": "کمتر یا مساوی با", "greater": "بزرگتر از", "greater_or_equal": "بزرگتر یا مساوی با", - "between": "مابین", + "between": "مابین", "begins_with": "شروع شود با", "not_begins_with": "شروع نشود با", "contains": "شامل شود", @@ -55,6 +55,6 @@ "datetime_exceed_min": "باید بعد از {0} باشد", "datetime_exceed_max": "باید قبل از {0} باشد", "boolean_not_valid": "مقدار دودویی وارد کنید", - "operator_not_multiple": "اپراتور {0} نمی تواند چند مقدار قبول کند" + "operator_not_multiple": "اپراتور \"{1}\" نمی تواند چند مقدار قبول کند" } } \ No newline at end of file diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 9d73e09d..56cbad52 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "Doit être après {0}", "datetime_exceed_max": "Doit être avant {0}", "boolean_not_valid": "N'est pas un booléen", - "operator_not_multiple": "L'opérateur {0} ne peut utiliser plusieurs valeurs" + "operator_not_multiple": "L'opérateur \"{1}\" ne peut utiliser plusieurs valeurs" } } \ No newline at end of file diff --git a/src/i18n/he.json b/src/i18n/he.json index 99f2acf9..d1009042 100644 --- a/src/i18n/he.json +++ b/src/i18n/he.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "התאריך חייב להיות אחרי {0}", "datetime_exceed_max": "התאריך חייב להיות לפני {0}", "boolean_not_valid": "זהו לא בוליאני", - "operator_not_multiple": "האופרטור {0} לא יכול לקבל ערכים מרובים" + "operator_not_multiple": "האופרטור \"{1}\" לא יכול לקבל ערכים מרובים" } } \ No newline at end of file diff --git a/src/i18n/pl.json b/src/i18n/pl.json index 09060e10..c27069f4 100644 --- a/src/i18n/pl.json +++ b/src/i18n/pl.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "Musi być po {0}", "datetime_exceed_max": "Musi być przed {0}", "boolean_not_valid": "Niepoprawna wartość logiczna", - "operator_not_multiple": "Operator {0} nie przyjmuje wielu wartości" + "operator_not_multiple": "Operator \"{1}\" nie przyjmuje wielu wartości" } } \ No newline at end of file diff --git a/src/i18n/pt-BR.json b/src/i18n/pt-BR.json index db936baf..f822aa83 100644 --- a/src/i18n/pt-BR.json +++ b/src/i18n/pt-BR.json @@ -56,6 +56,6 @@ "datetime_exceed_max": "É necessário ser inferior a {0}", "datetime_empty": "Nenhuma data selecionada", "boolean_not_valid": "Não é um valor booleano", - "operator_not_multiple": "O operador {0} não aceita valores múltiplos" + "operator_not_multiple": "O operador \"{1}\" não aceita valores múltiplos" } } \ No newline at end of file diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 9248db0f..33a343e8 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -54,6 +54,6 @@ "datetime_exceed_min": "Должно быть, после {0}", "datetime_exceed_max": "Должно быть, до {0}", "boolean_not_valid": "Не логическое", - "operator_not_multiple": "Оператор {0} не поддерживает много значений" + "operator_not_multiple": "Оператор \"{1}\" не поддерживает много значений" } } \ No newline at end of file diff --git a/src/i18n/sq.json b/src/i18n/sq.json index 508a5cdd..415244bd 100644 --- a/src/i18n/sq.json +++ b/src/i18n/sq.json @@ -55,6 +55,6 @@ "datetime_exceed_min": "Duhet të jetë pas {0}", "datetime_exceed_max": "Duhet të jetë para {0}", "boolean_not_valid": "Nuk është boolean", - "operator_not_multiple": "Operatori {0} nuk mund të pranojë vlera të shumëfishta" + "operator_not_multiple": "Operatori \"{1}\" nuk mund të pranojë vlera të shumëfishta" } } \ No newline at end of file diff --git a/src/i18n/tr.json b/src/i18n/tr.json index 4d5280b1..2b2d0295 100644 --- a/src/i18n/tr.json +++ b/src/i18n/tr.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "{0} Tarihinden daha sonrası olmalı.", "datetime_exceed_max": "{0} Tarihinden daha öncesi olmalı.", "boolean_not_valid": "Değer Doğru/Yanlış(bool) olmalı", - "operator_not_multiple": "Operatör {0} birden fazla değer kabul etmiyor" + "operator_not_multiple": "Operatör \"{1}\" birden fazla değer kabul etmiyor" } } diff --git a/src/i18n/ua.json b/src/i18n/ua.json index 5276347b..2d1c5c2d 100644 --- a/src/i18n/ua.json +++ b/src/i18n/ua.json @@ -52,6 +52,6 @@ "datetime_exceed_min": "Повинне бути, після {0}", "datetime_exceed_max": "Повинне бути, до {0}", "boolean_not_valid": "Не логічне", - "operator_not_multiple": "Оператор {0} не підтримує багато значень" + "operator_not_multiple": "Оператор \"{1}\" не підтримує багато значень" } } \ No newline at end of file diff --git a/src/i18n/zh-CN.json b/src/i18n/zh-CN.json index 51ddfe39..666ca685 100644 --- a/src/i18n/zh-CN.json +++ b/src/i18n/zh-CN.json @@ -56,6 +56,6 @@ "datetime_exceed_min": "必须在{0}之后", "datetime_exceed_max": "必须在{0}之前", "boolean_not_valid": "不是布尔值", - "operator_not_multiple": "选项{0}无法接受多个值" + "operator_not_multiple": "选项\"{1}\"无法接受多个值" } } \ No newline at end of file From a7e117fe18f80c26d4601505298e222bb01b56d4 Mon Sep 17 00:00:00 2001 From: ismailarilik Date: Wed, 29 Mar 2017 22:35:13 +0300 Subject: [PATCH 03/97] Destroys selectpickers 'beforeDeleteRule'. --- src/plugins/bt-selectpicker/plugin.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugins/bt-selectpicker/plugin.js b/src/plugins/bt-selectpicker/plugin.js index 9ca505ec..081bf423 100644 --- a/src/plugins/bt-selectpicker/plugin.js +++ b/src/plugins/bt-selectpicker/plugin.js @@ -37,6 +37,11 @@ QueryBuilder.define('bt-selectpicker', function(options) { this.on('afterUpdateRuleOperator', function(e, rule) { rule.$el.find(Selectors.rule_operator).selectpicker('render'); }); + + this.on('beforeDeleteRule', function(e, rule) { + rule.$el.find(Selectors.rule_filter).selectpicker('destroy'); + rule.$el.find(Selectors.rule_operator).selectpicker('destroy'); + }); }, { container: 'body', style: 'btn-inverse btn-xs', From abb9e4beeae68d9116e278c5685595cef75b003d Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Mon, 3 Apr 2017 14:06:59 +0200 Subject: [PATCH 04/97] Generalize the usage of the `translate` method --- src/core.js | 4 ++-- src/data.js | 34 +++++++++++++++++++-------------- src/main.js | 2 +- src/plugins/invert/plugin.js | 4 ++-- src/plugins/not-group/plugin.js | 2 +- src/template.js | 28 +++++++++++++-------------- 6 files changed, 39 insertions(+), 35 deletions(-) diff --git a/src/core.js b/src/core.js index bc1cd1e8..c6943159 100644 --- a/src/core.js +++ b/src/core.js @@ -124,7 +124,7 @@ QueryBuilder.prototype.checkFilters = function(filters) { else { var self = this; filters.sort(function(a, b) { - return self.getTranslatedLabel(a.label).localeCompare(self.getTranslatedLabel(b.label)); + return self.translate(a.label).localeCompare(self.translate(b.label)); }); } } @@ -884,7 +884,7 @@ QueryBuilder.prototype.updateError = function(node) { node.$el.removeClass('has-error'); } else { - var errorMessage = this.lang.errors[node.error[0]] || node.error[0]; + var errorMessage = this.translate('errors', node.error[0]); errorMessage = Utils.fmt(errorMessage, node.error.slice(1)); /** diff --git a/src/data.js b/src/data.js index 3ef57c02..62a06067 100644 --- a/src/data.js +++ b/src/data.js @@ -592,10 +592,11 @@ QueryBuilder.prototype.getGroupFlags = function(flags, all) { }; /** - * Retrieve a translation in the `lang` object + * Translate a label either by looking in the `lang` object or in itself if it's an object where keys are language codes * @param {string} [category] - * @param {string} key + * @param {string|object} key * @returns {string} + * @fires QueryBuilder#changer:translate */ QueryBuilder.prototype.translate = function(category, key) { if (!key) { @@ -603,19 +604,24 @@ QueryBuilder.prototype.translate = function(category, key) { category = undefined; } - var translation = (category ? this.lang[category] : this.lang)[key] || key; - - return this.change('translate', translation, category, key); -}; + var translation; + if (typeof key === 'object') { + translation = key[this.settings.lang_code] || key['en']; + } + else { + translation = (category ? this.lang[category] : this.lang)[key] || key; + } -/** - * Translates a label - * @param {string|object} label - * @returns {string} - * @private - */ -QueryBuilder.prototype.getTranslatedLabel = function(label) { - return typeof label == 'object' ? (label[this.settings.lang_code] || label['en']) : label; + /** + * Modifies the translated label + * @event changer:translate + * @memberof QueryBuilder + * @param {string} translation + * @param {string|object} key + * @param {string} [category] + * @returns {string} + */ + return this.change('translate', translation, key, category); }; /** diff --git a/src/main.js b/src/main.js index 5baff3ce..6dc6997f 100644 --- a/src/main.js +++ b/src/main.js @@ -101,7 +101,7 @@ var QueryBuilder = function($el, options) { * @member {object} * @readonly */ - this.lang = undefined; + this.lang = null; // translations : english << 'lang_code' << custom if (QueryBuilder.regional['en'] === undefined) { diff --git a/src/plugins/invert/plugin.js b/src/plugins/invert/plugin.js index 8fb97bec..ba7f51ae 100644 --- a/src/plugins/invert/plugin.js +++ b/src/plugins/invert/plugin.js @@ -65,14 +65,14 @@ QueryBuilder.define('invert', function(options) { // Modify templates this.on('getGroupTemplate.filter', function(h, level) { var $h = $(h.value); - $h.find(Selectors.condition_container).after(''); + $h.find(Selectors.condition_container).after(''); h.value = $h.prop('outerHTML'); }); if (options.display_rules_button && options.invert_rules) { this.on('getRuleTemplate.filter', function(h) { var $h = $(h.value); - $h.find(Selectors.rule_actions).prepend(''); + $h.find(Selectors.rule_actions).prepend(''); h.value = $h.prop('outerHTML'); }); } diff --git a/src/plugins/not-group/plugin.js b/src/plugins/not-group/plugin.js index 891869fa..2455cdd0 100644 --- a/src/plugins/not-group/plugin.js +++ b/src/plugins/not-group/plugin.js @@ -49,7 +49,7 @@ QueryBuilder.define('not-group', function(options) { var $h = $(h.value); $h.find(QueryBuilder.selectors.condition_container).prepend( '' ); h.value = $h.prop('outerHTML'); diff --git a/src/template.js b/src/template.js index 1bca5f1f..afbd3176 100644 --- a/src/template.js +++ b/src/template.js @@ -3,23 +3,23 @@ QueryBuilder.templates.group = '\
\
\ \ {{? it.settings.allow_groups===-1 || it.settings.allow_groups>=it.level }} \ \ {{?}} \ {{? it.level>1 }} \ \ {{?}} \
\
\ {{~ it.conditions: condition }} \ \ {{~}} \
\ @@ -37,7 +37,7 @@ QueryBuilder.templates.rule = '\
\
\ \
\
\ @@ -70,7 +70,7 @@ QueryBuilder.templates.filterSelect = '\ QueryBuilder.templates.operatorSelect = '\ {{? it.operators.length === 1 }} \ \ -{{= it.lang.operators[it.operators[0].type] || it.operators[0].type }} \ +{{= it.translate("operators", it.operators[0].type) }} \ \ {{?}} \ {{ var optgroup = null; }} \ @@ -82,7 +82,7 @@ QueryBuilder.templates.operatorSelect = '\ \ {{?}} \ {{?}} \ - \ + \ {{~}} \ {{? optgroup !== null }}{{?}} \ '; @@ -102,8 +102,8 @@ QueryBuilder.prototype.getGroupTemplate = function(group_id, level) { level: level, conditions: this.settings.conditions, icons: this.icons, - lang: this.lang, - settings: this.settings + settings: this.settings, + translate: this.translate.bind(this) }); /** @@ -129,8 +129,8 @@ QueryBuilder.prototype.getRuleTemplate = function(rule_id) { builder: this, rule_id: rule_id, icons: this.icons, - lang: this.lang, - settings: this.settings + settings: this.settings, + translate: this.translate.bind(this) }); /** @@ -157,9 +157,8 @@ QueryBuilder.prototype.getRuleFilterSelect = function(rule, filters) { rule: rule, filters: filters, icons: this.icons, - lang: this.lang, settings: this.settings, - translate: this.getTranslatedLabel + translate: this.translate.bind(this) }); /** @@ -188,9 +187,8 @@ QueryBuilder.prototype.getRuleOperatorSelect = function(rule, operators) { rule: rule, operators: operators, icons: this.icons, - lang: this.lang, settings: this.settings, - translate: this.getTranslatedLabel + translate: this.translate.bind(this) }); /** From 2a237884b8a665ed9757a4ce08166b8d9e2b24d6 Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Thu, 6 Apr 2017 14:01:21 +0200 Subject: [PATCH 05/97] jsdoc: fix events links and plugins definition --- .jsdoc.json | 2 +- Gruntfile.js | 1 + build/jsdoc.md | 8 +-- src/core.js | 44 ++++++------- src/data.js | 12 ++-- src/defaults.js | 3 + src/jquery.js | 5 ++ src/main.js | 51 +-------------- src/model.js | 16 ++--- src/plugins.js | 52 ++++++++++++++++ src/plugins/bt-checkbox/plugin.js | 8 +-- src/plugins/bt-selectpicker/plugin.js | 8 +-- src/plugins/bt-tooltip-errors/plugin.js | 8 +-- src/plugins/change-filters/plugin.js | 29 +++++---- src/plugins/filter-description/plugin.js | 11 +--- src/plugins/invert/plugin.js | 79 +++++++++++------------- src/plugins/mongodb-support/plugin.js | 42 ++++++------- src/plugins/not-group/plugin.js | 37 +++++------ src/plugins/sortable/plugin.js | 42 ++++++------- src/plugins/sql-support/plugin.js | 46 +++++++------- src/plugins/unique-filter/plugin.js | 13 +--- src/public.js | 27 ++++---- src/template.js | 10 +-- 23 files changed, 262 insertions(+), 292 deletions(-) create mode 100644 src/plugins.js diff --git a/.jsdoc.json b/.jsdoc.json index 20c4e302..d8a3fd67 100644 --- a/.jsdoc.json +++ b/.jsdoc.json @@ -26,7 +26,7 @@ {"kind": "global", "title": "Globals", "summary": "All documented globals."}, {"kind": "mixin", "title": "Mixins", "summary": "All documented mixins."}, {"kind": "interface", "title": "Interfaces", "summary": "All documented interfaces."}, - {"kind": "module", "title": "Plugins", "summary": "All documented modules."}, + {"kind": "module", "title": "Modules", "summary": "All documented modules."}, {"kind": "event", "title": "Events", "summary": "All documented events."}, {"kind": "namespace", "title": "Namespaces", "summary": "All documented namespaces."}, {"kind": "tutorial", "title": "Tutorials", "summary": "All available tutorials."} diff --git a/Gruntfile.js b/Gruntfile.js index d8f68f06..ef01b8ca 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -17,6 +17,7 @@ module.exports = function(grunt) { js_core_files: [ 'src/main.js', 'src/defaults.js', + 'src/plugins.js', 'src/core.js', 'src/public.js', 'src/data.js', diff --git a/build/jsdoc.md b/build/jsdoc.md index b75b93ee..029fecb1 100644 --- a/build/jsdoc.md +++ b/build/jsdoc.md @@ -2,10 +2,10 @@ # Entry point: [$.fn.QueryBuilder](external-_jQuery.fn_.html) -## [QueryBuilder](QueryBuilder.html) +# [QueryBuilder](QueryBuilder.html) -## [Rule](Rule.html) & [Group](Group.html) +# [Rule](Rule.html) & [Group](Group.html) -## [Events](list_event.html) +# [Events](list_event.html) -## [Plugins](list_module.html) +# [Plugins](module-plugins.html) diff --git a/src/core.js b/src/core.js index c6943159..d9f1a85a 100644 --- a/src/core.js +++ b/src/core.js @@ -321,7 +321,7 @@ QueryBuilder.prototype.bindEvents = function() { * @param {object} [data] - group custom data * @param {object} [flags] - flags to apply to the group * @returns {Group} root group - * @fires QueryBuilder#afterAddGroup + * @fires QueryBuilder.afterAddGroup */ QueryBuilder.prototype.setRoot = function(addRule, data, flags) { addRule = (addRule === undefined || addRule === true); @@ -354,8 +354,8 @@ QueryBuilder.prototype.setRoot = function(addRule, data, flags) { * @param {object} [data] - group custom data * @param {object} [flags] - flags to apply to the group * @returns {Group} - * @fires QueryBuilder#beforeAddGroup - * @fires QueryBuilder#afterAddGroup + * @fires QueryBuilder.beforeAddGroup + * @fires QueryBuilder.afterAddGroup */ QueryBuilder.prototype.addGroup = function(parent, addRule, data, flags) { addRule = (addRule === undefined || addRule === true); @@ -403,8 +403,8 @@ QueryBuilder.prototype.addGroup = function(parent, addRule, data, flags) { * Tries to delete a group. The group is not deleted if at least one rule is flagged `no_delete`. * @param {Group} group * @returns {boolean} if the group has been deleted - * @fires QueryBuilder#beforeDeleteGroup - * @fires QueryBuilder#afterDeleteGroup + * @fires QueryBuilder.beforeDeleteGroup + * @fires QueryBuilder.afterDeleteGroup */ QueryBuilder.prototype.deleteGroup = function(group) { if (group.isRoot()) { @@ -447,7 +447,7 @@ QueryBuilder.prototype.deleteGroup = function(group) { /** * Performs actions when a group's condition changes * @param {Group} group - * @fires QueryBuilder#afterUpdateGroupCondition + * @fires QueryBuilder.afterUpdateGroupCondition * @private */ QueryBuilder.prototype.updateGroupCondition = function(group) { @@ -489,9 +489,9 @@ QueryBuilder.prototype.refreshGroupsConditions = function() { * @param {object} [data] - rule custom data * @param {object} [flags] - flags to apply to the rule * @returns {Rule} - * @fires QueryBuilder#beforeAddRule - * @fires QueryBuilder#afterAddRule - * @fires QueryBuilder#changer:getDefaultFilter + * @fires QueryBuilder.beforeAddRule + * @fires QueryBuilder.afterAddRule + * @fires QueryBuilder.changer:getDefaultFilter */ QueryBuilder.prototype.addRule = function(parent, data, flags) { /** @@ -547,8 +547,8 @@ QueryBuilder.prototype.addRule = function(parent, data, flags) { * Tries to delete a rule * @param {Rule} rule * @returns {boolean} if the rule has been deleted - * @fires QueryBuilder#beforeDeleteRule - * @fires QueryBuilder#afterDeleteRule + * @fires QueryBuilder.beforeDeleteRule + * @fires QueryBuilder.afterDeleteRule */ QueryBuilder.prototype.deleteRule = function(rule) { if (rule.flags.no_delete) { @@ -581,8 +581,8 @@ QueryBuilder.prototype.deleteRule = function(rule) { /** * Creates the filters for a rule * @param {Rule} rule - * @fires QueryBuilder#changer:getRuleFilters - * @fires QueryBuilder#afterCreateRuleFilters + * @fires QueryBuilder.changer:getRuleFilters + * @fires QueryBuilder.afterCreateRuleFilters * @private */ QueryBuilder.prototype.createRuleFilters = function(rule) { @@ -611,7 +611,7 @@ QueryBuilder.prototype.createRuleFilters = function(rule) { /** * Creates the operators for a rule and init the rule operator * @param {Rule} rule - * @fires QueryBuilder#afterCreateRuleOperators + * @fires QueryBuilder.afterCreateRuleOperators * @private */ QueryBuilder.prototype.createRuleOperators = function(rule) { @@ -642,7 +642,7 @@ QueryBuilder.prototype.createRuleOperators = function(rule) { /** * Creates the main input for a rule * @param {Rule} rule - * @fires QueryBuilder#afterCreateRuleInput + * @fires QueryBuilder.afterCreateRuleInput * @private */ QueryBuilder.prototype.createRuleInput = function(rule) { @@ -701,7 +701,7 @@ QueryBuilder.prototype.createRuleInput = function(rule) { * Performs action when a rule's filter changes * @param {Rule} rule * @param {object} previousFilter - * @fires QueryBuilder#afterUpdateRuleFilter + * @fires QueryBuilder.afterUpdateRuleFilter * @private */ QueryBuilder.prototype.updateRuleFilter = function(rule, previousFilter) { @@ -728,7 +728,7 @@ QueryBuilder.prototype.updateRuleFilter = function(rule, previousFilter) { * Performs actions when a rule's operator changes * @param {Rule} rule * @param {object} previousOperator - * @fires QueryBuilder#afterUpdateRuleOperator + * @fires QueryBuilder.afterUpdateRuleOperator * @private */ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { @@ -768,7 +768,7 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { /** * Performs actions when rule's value changes * @param {Rule} rule - * @fires QueryBuilder#afterUpdateRuleValue + * @fires QueryBuilder.afterUpdateRuleValue * @private */ QueryBuilder.prototype.updateRuleValue = function(rule) { @@ -788,7 +788,7 @@ QueryBuilder.prototype.updateRuleValue = function(rule) { /** * Changes a rule's properties depending on its flags * @param {Rule} rule - * @fires QueryBuilder#afterApplyRuleFlags + * @fires QueryBuilder.afterApplyRuleFlags * @private */ QueryBuilder.prototype.applyRuleFlags = function(rule) { @@ -820,7 +820,7 @@ QueryBuilder.prototype.applyRuleFlags = function(rule) { /** * Changes group's properties depending on its flags * @param {Group} group - * @fires QueryBuilder#afterApplyGroupFlags + * @fires QueryBuilder.afterApplyGroupFlags * @private */ QueryBuilder.prototype.applyGroupFlags = function(group) { @@ -875,7 +875,7 @@ QueryBuilder.prototype.clearErrors = function(node) { /** * Adds/Removes error on a Rule or Group * @param {Node} node - * @fires QueryBuilder#changer:displayError + * @fires QueryBuilder.changer:displayError * @private */ QueryBuilder.prototype.updateError = function(node) { @@ -910,7 +910,7 @@ QueryBuilder.prototype.updateError = function(node) { * @param {Node} node * @param {string|array} error * @param {*} value - * @fires QueryBuilder#validationError + * @fires QueryBuilder.validationError * @private */ QueryBuilder.prototype.triggerValidationError = function(node, error, value) { diff --git a/src/data.js b/src/data.js index 62a06067..1594f334 100644 --- a/src/data.js +++ b/src/data.js @@ -3,7 +3,7 @@ * @param {Rule} rule * @param {string|string[]} value * @returns {array|boolean} true or error array - * @fires QueryBuilder#changer:validateValue + * @fires QueryBuilder.changer:validateValue */ QueryBuilder.prototype.validateValue = function(rule, value) { var validation = rule.filter.validation || {}; @@ -246,7 +246,7 @@ QueryBuilder.prototype.nextRuleId = function() { * Returns the operators for a filter * @param {string|object} filter - filter id or filter object * @returns {object[]} - * @fires QueryBuilder#changer:getOperators + * @fires QueryBuilder.changer:getOperators * @private */ QueryBuilder.prototype.getOperators = function(filter) { @@ -341,7 +341,7 @@ QueryBuilder.prototype.getOperatorByType = function(type, doThrow) { * Returns rule's current input value * @param {Rule} rule * @returns {*} - * @fires QueryBuilder#changer:getRuleValue + * @fires QueryBuilder.changer:getRuleValue * @private */ QueryBuilder.prototype.getRuleInputValue = function(rule) { @@ -483,7 +483,7 @@ QueryBuilder.prototype.setRuleInputValue = function(rule, value) { * Parses rule flags * @param {object} rule * @returns {object} - * @fires QueryBuilder#changer:parseRuleFlags + * @fires QueryBuilder.changer:parseRuleFlags * @private */ QueryBuilder.prototype.parseRuleFlags = function(rule) { @@ -539,7 +539,7 @@ QueryBuilder.prototype.getRuleFlags = function(flags, all) { * Parses group flags * @param {object} group * @returns {object} - * @fires QueryBuilder#changer:parseGroupFlags + * @fires QueryBuilder.changer:parseGroupFlags * @private */ QueryBuilder.prototype.parseGroupFlags = function(group) { @@ -596,7 +596,7 @@ QueryBuilder.prototype.getGroupFlags = function(flags, all) { * @param {string} [category] * @param {string|object} key * @returns {string} - * @fires QueryBuilder#changer:translate + * @fires QueryBuilder.changer:translate */ QueryBuilder.prototype.translate = function(category, key) { if (!key) { diff --git a/src/defaults.js b/src/defaults.js index 84a888c3..56f1201d 100644 --- a/src/defaults.js +++ b/src/defaults.js @@ -2,6 +2,7 @@ * Allowed types and their internal representation * @type {object.} * @readonly + * @private */ QueryBuilder.types = { 'string': 'string', @@ -17,6 +18,7 @@ QueryBuilder.types = { * Allowed inputs * @type {string[]} * @readonly + * @private */ QueryBuilder.inputs = [ 'text', @@ -31,6 +33,7 @@ QueryBuilder.inputs = [ * Runtime modifiable options with `setOptions` method * @type {string[]} * @readonly + * @private */ QueryBuilder.modifiable_options = [ 'display_errors', diff --git a/src/jquery.js b/src/jquery.js index 7f1ca98b..62742019 100644 --- a/src/jquery.js +++ b/src/jquery.js @@ -9,6 +9,11 @@ * @memberof external:"jQuery.fn" * @param {*} option - initial configuration or method name * @param {...*} args - method arguments + * + * @example + * $('#builder').queryBuilder({ /** configuration object *\/ }); + * @example + * $('#builder').queryBuilder('methodName', methodParam1, methodParam2); */ $.fn.queryBuilder = function(option) { if (this.length === 0) { diff --git a/src/main.js b/src/main.js index 6dc6997f..0ebfc940 100644 --- a/src/main.js +++ b/src/main.js @@ -14,7 +14,7 @@ * @param {jQuery} $el * @param {object} options - see {@link http://querybuilder.js.org/#options} * @constructor - * @fires QueryBuilder#afterInit + * @fires QueryBuilder.afterInit */ var QueryBuilder = function($el, options) { $el[0].queryBuilder = this; @@ -237,52 +237,3 @@ $.extend(QueryBuilder.prototype, /** @lends QueryBuilder.prototype */ { }).join(' '); } }); - -/** - * Definition of available plugins - * @type {object.} - */ -QueryBuilder.plugins = {}; - -/** - * Gets or extends the default configuration - * @param {object} [options] - new configuration - * @returns {undefined|object} nothing or configuration object (copy) - */ -QueryBuilder.defaults = function(options) { - if (typeof options == 'object') { - $.extendext(true, 'replace', QueryBuilder.DEFAULTS, options); - } - else if (typeof options == 'string') { - if (typeof QueryBuilder.DEFAULTS[options] == 'object') { - return $.extend(true, {}, QueryBuilder.DEFAULTS[options]); - } - else { - return QueryBuilder.DEFAULTS[options]; - } - } - else { - return $.extend(true, {}, QueryBuilder.DEFAULTS); - } -}; - -/** - * Registers a new plugin - * @param {string} name - * @param {function} fct - init function - * @param {object} [def] - default options - */ -QueryBuilder.define = function(name, fct, def) { - QueryBuilder.plugins[name] = { - fct: fct, - def: def || {} - }; -}; - -/** - * Adds new methods to QueryBuilder prototype - * @param {object.} methods - */ -QueryBuilder.extend = function(methods) { - $.extend(QueryBuilder.prototype, methods); -}; diff --git a/src/model.js b/src/model.js index b5b38e3c..af13aac7 100644 --- a/src/model.js +++ b/src/model.js @@ -214,7 +214,7 @@ Node.prototype.getPos = function() { /** * Deletes self - * @fires Model#model:drop + * @fires Model.model:drop */ Node.prototype.drop = function() { var model = this.model; @@ -239,7 +239,7 @@ Node.prototype.drop = function() { /** * Moves itself after another Node * @param {Node} target - * @fires Model#model:move + * @fires Model.model:move */ Node.prototype.moveAfter = function(target) { if (!this.isRoot()) { @@ -250,7 +250,7 @@ Node.prototype.moveAfter = function(target) { /** * Moves itself at the beginning of parent or another Group * @param {Group} [target] - * @fires Model#model:move + * @fires Model.model:move */ Node.prototype.moveAtBegin = function(target) { if (!this.isRoot()) { @@ -265,7 +265,7 @@ Node.prototype.moveAtBegin = function(target) { /** * Moves itself at the end of parent or another Group * @param {Group} [target] - * @fires Model#model:move + * @fires Model.model:move */ Node.prototype.moveAtEnd = function(target) { if (!this.isRoot()) { @@ -281,7 +281,7 @@ Node.prototype.moveAtEnd = function(target) { * Moves itself at specific position of Group * @param {Group} target * @param {int} index - * @fires Model#model:move + * @fires Model.model:move */ Node.prototype.move = function(target, index) { if (!this.isRoot()) { @@ -375,7 +375,7 @@ Group.prototype.length = function() { * @param {int} [index=end] * @param {boolean} [trigger=false] - fire 'add' event * @returns {Node} the inserted node - * @fires Model#model:add + * @fires Model.model:add */ Group.prototype.insertNode = function(node, index, trigger) { if (index === undefined) { @@ -405,7 +405,7 @@ Group.prototype.insertNode = function(node, index, trigger) { * @param {jQuery} $el * @param {int} [index=end] * @returns {Group} - * @fires Model#model:add + * @fires Model.model:add */ Group.prototype.addGroup = function($el, index) { return this.insertNode(new Group(this, $el), index, true); @@ -416,7 +416,7 @@ Group.prototype.addGroup = function($el, index) { * @param {jQuery} $el * @param {int} [index=end] * @returns {Rule} - * @fires Model#model:add + * @fires Model.model:add */ Group.prototype.addRule = function($el, index) { return this.insertNode(new Rule(this, $el), index, true); diff --git a/src/plugins.js b/src/plugins.js new file mode 100644 index 00000000..35108e3e --- /dev/null +++ b/src/plugins.js @@ -0,0 +1,52 @@ +/** + * @module plugins + */ + +/** + * Definition of available plugins + * @type {object.} + */ +QueryBuilder.plugins = {}; + +/** + * Gets or extends the default configuration + * @param {object} [options] - new configuration + * @returns {undefined|object} nothing or configuration object (copy) + */ +QueryBuilder.defaults = function(options) { + if (typeof options == 'object') { + $.extendext(true, 'replace', QueryBuilder.DEFAULTS, options); + } + else if (typeof options == 'string') { + if (typeof QueryBuilder.DEFAULTS[options] == 'object') { + return $.extend(true, {}, QueryBuilder.DEFAULTS[options]); + } + else { + return QueryBuilder.DEFAULTS[options]; + } + } + else { + return $.extend(true, {}, QueryBuilder.DEFAULTS); + } +}; + +/** + * Registers a new plugin + * @param {string} name + * @param {function} fct - init function + * @param {object} [def] - default options + */ +QueryBuilder.define = function(name, fct, def) { + QueryBuilder.plugins[name] = { + fct: fct, + def: def || {} + }; +}; + +/** + * Adds new methods to QueryBuilder prototype + * @param {object.} methods + */ +QueryBuilder.extend = function(methods) { + $.extend(QueryBuilder.prototype, methods); +}; diff --git a/src/plugins/bt-checkbox/plugin.js b/src/plugins/bt-checkbox/plugin.js index 2f7af0be..7a7311c2 100644 --- a/src/plugins/bt-checkbox/plugin.js +++ b/src/plugins/bt-checkbox/plugin.js @@ -1,11 +1,7 @@ /** - * @module BtCheckboxPlugin + * @class BtCheckbox + * @memberof module:plugins * @description Applies Awesome Bootstrap Checkbox for checkbox and radio inputs. - */ - -/** - * @function init - * @memberof module:BtCheckboxPlugin * @param {object} [options] * @param {string} [options.font='glyphicons'] * @param {string} [options.color='default'] diff --git a/src/plugins/bt-selectpicker/plugin.js b/src/plugins/bt-selectpicker/plugin.js index 081bf423..d9ef2812 100644 --- a/src/plugins/bt-selectpicker/plugin.js +++ b/src/plugins/bt-selectpicker/plugin.js @@ -1,11 +1,7 @@ /** - * @module BtSelectpickerPlugin + * @class BtSelectpicker + * @memberof module:plugins * @descriptioon Applies Bootstrap Select on filters and operators combo-boxes. - */ - -/** - * @function init - * @memberof module:BtSelectpickerPlugin * @param {object} [options] * @param {string} [options.container='body'] * @param {string} [options.style='btn-inverse btn-xs'] diff --git a/src/plugins/bt-tooltip-errors/plugin.js b/src/plugins/bt-tooltip-errors/plugin.js index 2907d98c..e9bc935c 100644 --- a/src/plugins/bt-tooltip-errors/plugin.js +++ b/src/plugins/bt-tooltip-errors/plugin.js @@ -1,11 +1,7 @@ /** - * @module BtTooltipErrorsPlugin + * @class BtTooltipErrors + * @memberof module:plugins * @description Applies Bootstrap Tooltips on validation error messages. - */ - -/** - * @function init - * @memberof module:BtTooltipErrorsPlugin * @param {object} [options] * @param {string} [options.placement='right'] * @throws MissingLibraryError diff --git a/src/plugins/change-filters/plugin.js b/src/plugins/change-filters/plugin.js index 064b82dd..823edac1 100644 --- a/src/plugins/change-filters/plugin.js +++ b/src/plugins/change-filters/plugin.js @@ -1,15 +1,16 @@ /** - * @module ChangeFiltersPlugin + * @class ChangeFilters + * @memberof module:plugins * @description Allows to change available filters after plugin initialization. */ -QueryBuilder.extend({ + +QueryBuilder.extend(/** @lends module:plugins.ChangeFilters.prototype */ { /** * Change the filters of the builder - * @memberof module:ChangeFiltersPlugin * @param {boolean} [deleteOrphans=false] - delete rules using old filters * @param {QueryBuilder[]} filters - * @fires module:ChangeFiltersPlugin.changer:setFilters - * @fires module:ChangeFiltersPlugin.afterSetFilters + * @fires module:plugins.ChangeFilters.changer:setFilters + * @fires module:plugins.ChangeFilters.afterSetFilters * @throws ChangeFilterError */ setFilters: function(deleteOrphans, filters) { @@ -23,9 +24,9 @@ QueryBuilder.extend({ filters = this.checkFilters(filters); /** - * Modifies the filters before {@link module:ChangeFiltersPlugin.setFilters} method + * Modifies the filters before {@link module:plugins.ChangeFilters.setFilters} method * @event changer:setFilters - * @memberof module:ChangeFiltersPlugin + * @memberof module:plugins.ChangeFilters * @param {QueryBuilder.Filter[]} filters * @returns {QueryBuilder.Filter[]} */ @@ -91,9 +92,9 @@ QueryBuilder.extend({ } /** - * After {@link module:ChangeFiltersPlugin.setFilters} method + * After {@link module:plugins.ChangeFilters.setFilters} method * @event afterSetFilters - * @memberof module:ChangeFiltersPlugin + * @memberof module:plugins.ChangeFilters * @param {QueryBuilder.Filter[]} filters */ this.trigger('afterSetFilters', filters); @@ -101,11 +102,10 @@ QueryBuilder.extend({ /** * Adds a new filter to the builder - * @memberof module:ChangeFiltersPlugin * @param {QueryBuilder.Filter|Filter[]} newFilters * @param {int|string} [position=#end] - index or '#start' or '#end' - * @fires module:ChangeFiltersPlugin.changer:setFilters - * @fires module:ChangeFiltersPlugin.afterSetFilters + * @fires module:plugins.ChangeFilters.changer:setFilters + * @fires module:plugins.ChangeFilters.afterSetFilters * @throws ChangeFilterError */ addFilter: function(newFilters, position) { @@ -148,11 +148,10 @@ QueryBuilder.extend({ /** * Removes a filter from the builder - * @memberof module:ChangeFiltersPlugin * @param {string|string[]} filterIds * @param {boolean} [deleteOrphans=false] delete rules using old filters - * @fires module:ChangeFiltersPlugin.changer:setFilters - * @fires module:ChangeFiltersPlugin.afterSetFilters + * @fires module:plugins.ChangeFilters.changer:setFilters + * @fires module:plugins.ChangeFilters.afterSetFilters * @throws ChangeFilterError */ removeFilter: function(filterIds, deleteOrphans) { diff --git a/src/plugins/filter-description/plugin.js b/src/plugins/filter-description/plugin.js index 7f2de44f..91762b6b 100644 --- a/src/plugins/filter-description/plugin.js +++ b/src/plugins/filter-description/plugin.js @@ -1,11 +1,7 @@ /** - * @module FilterDescriptionPlugin + * @class FilterDescription + * @memberof module:plugins * @description Provides three ways to display a description about a filter: inline, Bootsrap Popover or Bootbox. - */ - -/** - * @function init - * @memberof module:FilterDescriptionPlugin * @param {object} [options] * @param {string} [options.icon='glyphicon glyphicon-info-sign'] * @param {string} [options.mode='popover'] - inline, popover or bootbox @@ -110,10 +106,9 @@ QueryBuilder.define('filter-description', function(options) { mode: 'popover' }); -QueryBuilder.extend({ +QueryBuilder.extend(/** @lends module:plugins.FilterDescription.prototype */ { /** * Returns the description of a filter for a particular rule (if present) - * @memberof module:FilterDescriptionPlugin * @param {object} filter * @param {Rule} [rule] * @returns {string} diff --git a/src/plugins/invert/plugin.js b/src/plugins/invert/plugin.js index ba7f51ae..8928d4be 100644 --- a/src/plugins/invert/plugin.js +++ b/src/plugins/invert/plugin.js @@ -1,41 +1,7 @@ /** - * @module InvertPlugin + * @class Invert + * @memberof module:plugins * @description Allows to invert a rule operator, a group condition or the entire builder. - */ - -QueryBuilder.defaults({ - operatorOpposites: { - 'equal': 'not_equal', - 'not_equal': 'equal', - 'in': 'not_in', - 'not_in': 'in', - 'less': 'greater_or_equal', - 'less_or_equal': 'greater', - 'greater': 'less_or_equal', - 'greater_or_equal': 'less', - 'between': 'not_between', - 'not_between': 'between', - 'begins_with': 'not_begins_with', - 'not_begins_with': 'begins_with', - 'contains': 'not_contains', - 'not_contains': 'contains', - 'ends_with': 'not_ends_with', - 'not_ends_with': 'ends_with', - 'is_empty': 'is_not_empty', - 'is_not_empty': 'is_empty', - 'is_null': 'is_not_null', - 'is_not_null': 'is_null' - }, - - conditionOpposites: { - 'AND': 'OR', - 'OR': 'AND' - } -}); - -/** - * @function init - * @memberof module:InvertPlugin * @param {object} [options] * @param {string} [options.icon='glyphicon glyphicon-random'] * @param {boolean} [options.recursive=true] @@ -84,13 +50,42 @@ QueryBuilder.define('invert', function(options) { silent_fail: false }); -QueryBuilder.extend({ +QueryBuilder.defaults({ + operatorOpposites: { + 'equal': 'not_equal', + 'not_equal': 'equal', + 'in': 'not_in', + 'not_in': 'in', + 'less': 'greater_or_equal', + 'less_or_equal': 'greater', + 'greater': 'less_or_equal', + 'greater_or_equal': 'less', + 'between': 'not_between', + 'not_between': 'between', + 'begins_with': 'not_begins_with', + 'not_begins_with': 'begins_with', + 'contains': 'not_contains', + 'not_contains': 'contains', + 'ends_with': 'not_ends_with', + 'not_ends_with': 'ends_with', + 'is_empty': 'is_not_empty', + 'is_not_empty': 'is_empty', + 'is_null': 'is_not_null', + 'is_not_null': 'is_null' + }, + + conditionOpposites: { + 'AND': 'OR', + 'OR': 'AND' + } +}); + +QueryBuilder.extend(/** @lends module:plugins.Invert.prototype */ { /** * Invert a Group, a Rule or the whole builder - * @memberof module:InvertPlugin * @param {Node} [node] - * @param {object} [options] {@link module:InvertPlugin.init} - * @fires module:InvertPlugin.afterInvert + * @param {object} [options] {@link module:plugins.Invert} + * @fires module:plugins.Invert.afterInvert * @throws InvertConditionError, InvertOperatorError */ invert: function(node, options) { @@ -145,9 +140,9 @@ QueryBuilder.extend({ if (options.trigger) { /** - * After {@link module:InvertPlugin.invert} method + * After {@link module:plugins.Invert.invert} method * @event afterInvert - * @memberof module:InvertPlugin + * @memberof module:plugins.Invert * @param {Node} node - the main group or rule that has been modified * @param {object} options */ diff --git a/src/plugins/mongodb-support/plugin.js b/src/plugins/mongodb-support/plugin.js index 961c3b79..eca501bc 100644 --- a/src/plugins/mongodb-support/plugin.js +++ b/src/plugins/mongodb-support/plugin.js @@ -1,5 +1,6 @@ /** - * @module MongoDbSupportPlugin + * @class MongoDbSupport + * @memberof module:plugins * @description Allows to export rules as a MongoDB find object as well as populating the builder from a MongoDB object. */ @@ -91,15 +92,14 @@ QueryBuilder.defaults({ } }); -QueryBuilder.extend({ +QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { /** * Returns rules as a MongoDB query - * @memberof module:MongoDbSupportPlugin * @param {object} [data] - current rules by default * @returns {object} - * @fires module:MongoDbSupportPlugin.changer:getMongoDBField - * @fires module:MongoDbSupportPlugin.changer:ruleToMongo - * @fires module:MongoDbSupportPlugin.changer:groupToMongo + * @fires module:plugins.MongoDbSupport.changer:getMongoDBField + * @fires module:plugins.MongoDbSupport.changer:ruleToMongo + * @fires module:plugins.MongoDbSupport.changer:groupToMongo * @throws UndefinedMongoConditionError, UndefinedMongoOperatorError */ getMongo: function(data) { @@ -147,7 +147,7 @@ QueryBuilder.extend({ /** * Modifies the MongoDB field used by a rule * @event changer:getMongoDBField - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {string} field * @param {Rule} rule * @returns {string} @@ -160,7 +160,7 @@ QueryBuilder.extend({ /** * Modifies the MongoDB expression generated for a rul * @event changer:ruleToMongo - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {object} expression * @param {Rule} rule * @param {*} value @@ -177,7 +177,7 @@ QueryBuilder.extend({ /** * Modifies the MongoDB expression generated for a group * @event changer:groupToMongo - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {object} expression * @param {Group} group * @returns {object} @@ -188,13 +188,12 @@ QueryBuilder.extend({ /** * Converts a MongoDB query to rules - * @memberof module:MongoDbSupportPlugin * @param {object} query * @returns {object} - * @fires module:MongoDbSupportPlugin.changer:parseMongoNode - * @fires module:MongoDbSupportPlugin.changer:getMongoDBFieldID - * @fires module:MongoDbSupportPlugin.changer:mongoToRule - * @fires module:MongoDbSupportPlugin.changer:mongoToGroup + * @fires module:plugins.MongoDbSupport.changer:parseMongoNode + * @fires module:plugins.MongoDbSupport.changer:getMongoDBFieldID + * @fires module:plugins.MongoDbSupport.changer:mongoToRule + * @fires module:plugins.MongoDbSupport.changer:mongoToGroup * @throws MongoParseError, UndefinedMongoConditionError, UndefinedMongoOperatorError */ getRulesFromMongo: function(query) { @@ -207,7 +206,7 @@ QueryBuilder.extend({ /** * Custom parsing of a MongoDB expression, you can return a sub-part of the expression, or a well formed group or rule JSON * @event changer:parseMongoNode - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {object} expression * @returns {object} expression, rule or group */ @@ -274,7 +273,7 @@ QueryBuilder.extend({ /** * Returns a filter identifier from the MongoDB field * @event changer:getMongoDBFieldID - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {string} field * @param {*} value * @returns {string} @@ -284,7 +283,7 @@ QueryBuilder.extend({ /** * Modifies the rule generated from the MongoDB expression * @event changer:mongoToRule - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {object} rule * @param {object} expression * @returns {object} @@ -303,7 +302,7 @@ QueryBuilder.extend({ /** * Modifies the group generated from the MongoDB expression * @event changer:mongoToGroup - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {object} group * @param {object} expression * @returns {object} @@ -317,8 +316,7 @@ QueryBuilder.extend({ /** * Sets rules a from MongoDB query - * @memberof module:MongoDbSupportPlugin - * @see module:MongoDbSupportPlugin.getRulesFromMongo + * @see module:plugins.MongoDbSupport.getRulesFromMongo */ setRulesFromMongo: function(query) { this.setRules(this.getRulesFromMongo(query)); @@ -327,7 +325,7 @@ QueryBuilder.extend({ /** * Finds which operator is used in a MongoDB sub-object - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {*} value * @returns {string|undefined} * @private @@ -361,7 +359,7 @@ function determineMongoOperator(value) { /** * Returns the key corresponding to "$or" or "$and" - * @memberof module:MongoDbSupportPlugin + * @memberof module:plugins.MongoDbSupport * @param {object} data * @returns {string} * @private diff --git a/src/plugins/not-group/plugin.js b/src/plugins/not-group/plugin.js index 2455cdd0..6596a817 100644 --- a/src/plugins/not-group/plugin.js +++ b/src/plugins/not-group/plugin.js @@ -1,22 +1,7 @@ /** - * @module NotGroupPlugin + * @class NotGroup + * @memberof module:plugins * @description Adds a "Not" checkbox in front of group conditions. - */ - -/** - * From {@link module:NotGroupPlugin} - * @name not - * @member {boolean} - * @memberof Group - * @instance - */ -Model.defineModelProperties(Group, ['not']); - -QueryBuilder.selectors.group_not = QueryBuilder.selectors.group_header + ' [data-not=group]'; - -/** - * @function init - * @memberof module:NotGroupPlugin * @param {object} [options] * @param {string} [options.icon_checked='glyphicon glyphicon-checked'] * @param {string} [options.icon_unchecked='glyphicon glyphicon-unchecked'] @@ -112,12 +97,22 @@ QueryBuilder.define('not-group', function(options) { icon_checked: 'glyphicon glyphicon-check' }); -QueryBuilder.extend({ +/** + * From {@link module:plugins.NotGroup} + * @name not + * @member {boolean} + * @memberof Group + * @instance + */ +Model.defineModelProperties(Group, ['not']); + +QueryBuilder.selectors.group_not = QueryBuilder.selectors.group_header + ' [data-not=group]'; + +QueryBuilder.extend(/** @lends module:plugins.NotGroup.prototype */ { /** * Performs actions when a group's not changes - * @memberof module:NotGroupPlugin * @param {Group} group - * @fires module:NotGroupPlugin.afterUpdateGroupNot + * @fires module:plugins.NotGroup.afterUpdateGroupNot * @private */ updateGroupNot: function(group) { @@ -129,7 +124,7 @@ QueryBuilder.extend({ /** * After the group's not flag has been modified * @event afterUpdateGroupNot - * @memberof module:NotGroupPlugin + * @memberof module:plugins.NotGroup * @param {Group} group */ this.trigger('afterUpdateGroupNot', group); diff --git a/src/plugins/sortable/plugin.js b/src/plugins/sortable/plugin.js index 77973df3..e9c5f277 100644 --- a/src/plugins/sortable/plugin.js +++ b/src/plugins/sortable/plugin.js @@ -1,25 +1,7 @@ /** - * @module SortablePlugin + * @class Sortable + * @memberof module:plugins * @description Enables drag & drop sort of rules. - */ - -QueryBuilder.selectors.rule_and_group_containers = QueryBuilder.selectors.rule_container + ', ' + QueryBuilder.selectors.group_container; -QueryBuilder.selectors.drag_handle = '.drag-handle'; - -QueryBuilder.defaults({ - default_rule_flags: { - no_sortable: false, - no_drop: false - }, - default_group_flags: { - no_sortable: false, - no_drop: false - } -}); - -/** - * @function init - * @memberof module:SortablePlugin * @param {object} [options] * @param {boolean} [options.inherit_no_drop=true] * @param {boolean} [options.inherit_no_sortable=true] @@ -104,9 +86,9 @@ QueryBuilder.define('sortable', function(options) { src.$el.show(); /** - * After a node has been moved with {@link module:SortablePlugin} + * After a node has been moved with {@link module:plugins.Sortable} * @event afterMove - * @memberof module:SortablePlugin + * @memberof module:plugins.Sortable * @param {Node} node */ self.trigger('afterMove', src); @@ -181,9 +163,23 @@ QueryBuilder.define('sortable', function(options) { icon: 'glyphicon glyphicon-sort' }); +QueryBuilder.selectors.rule_and_group_containers = QueryBuilder.selectors.rule_container + ', ' + QueryBuilder.selectors.group_container; +QueryBuilder.selectors.drag_handle = '.drag-handle'; + +QueryBuilder.defaults({ + default_rule_flags: { + no_sortable: false, + no_drop: false + }, + default_group_flags: { + no_sortable: false, + no_drop: false + } +}); + /** * Moves an element (placeholder or actual object) depending on active target - * @memberof module:SortablePlugin + * @memberof module:plugins.Sortable * @param {Node} node * @param {jQuery} target * @param {QueryBuilder} [builder] diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index fba3f4bb..bb190c49 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -1,5 +1,6 @@ /** - * @module SqlSupportPlugin + * @class SqlSupport + * @memberof module:plugins * @description Allows to export rules as a SQL WHERE statement as well as populating the builder from an SQL query. */ @@ -221,22 +222,21 @@ QueryBuilder.defaults({ /** * @typedef {object} SqlQuery - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @property {string} sql * @property {object} params */ -QueryBuilder.extend({ +QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { /** * Returns rules as a SQL query - * @memberof module:SqlSupportPlugin * @param {boolean|string} [stmt] - use prepared statements: false, 'question_mark', 'numbered', 'numbered(@)', 'named', 'named(@)' * @param {boolean} [nl=false] output with new lines * @param {object} [data] - current rules by default - * @returns {module:SqlSupportPlugin.SqlQuery} - * @fires module:SqlSupportPlugin.changer:getSQLField - * @fires module:SqlSupportPlugin.changer:ruleToSQL - * @fires module:SqlSupportPlugin.changer:groupToSQL + * @returns {module:plugins.SqlSupport.SqlQuery} + * @fires module:plugins.SqlSupport.changer:getSQLField + * @fires module:plugins.SqlSupport.changer:ruleToSQL + * @fires module:plugins.SqlSupport.changer:groupToSQL * @throws UndefinedSQLConditionError, UndefinedSQLOperatorError */ getSQL: function(stmt, nl, data) { @@ -319,7 +319,7 @@ QueryBuilder.extend({ /** * Modifies the SQL field used by a rule * @event changer:getSQLField - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {string} field * @param {Rule} rule * @returns {string} @@ -331,7 +331,7 @@ QueryBuilder.extend({ /** * Modifies the SQL generated for a rule * @event changer:ruleToSQL - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {string} expression * @param {Rule} rule * @param {*} value @@ -347,7 +347,7 @@ QueryBuilder.extend({ /** * Modifies the SQL generated for a group * @event changer:groupToSQL - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {string} expression * @param {Group} group * @returns {string} @@ -370,14 +370,13 @@ QueryBuilder.extend({ /** * Convert a SQL query to rules - * @memberof module:SqlSupportPlugin - * @param {string|module:SqlSupportPlugin.SqlQuery} query + * @param {string|module:plugins.SqlSupport.SqlQuery} query * @param {boolean|string} stmt * @returns {object} - * @fires module:SqlSupportPlugin.changer:parseSQLNode - * @fires module:SqlSupportPlugin.changer:getSQLFieldID - * @fires module:SqlSupportPlugin.changer:sqlToRule - * @fires module:SqlSupportPlugin.changer:sqlToGroup + * @fires module:plugins.SqlSupport.changer:parseSQLNode + * @fires module:plugins.SqlSupport.changer:getSQLFieldID + * @fires module:plugins.SqlSupport.changer:sqlToRule + * @fires module:plugins.SqlSupport.changer:sqlToGroup * @throws MissingLibraryError, SQLParseError, UndefinedSQLOperatorError */ getRulesFromSQL: function(query, stmt) { @@ -414,7 +413,7 @@ QueryBuilder.extend({ /** * Custom parsing of an AST node generated by SQLParser, you can return a sub-part of the tree, or a well formed group or rule JSON * @event changer:parseSQLNode - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {object} AST node * @returns {object} tree, rule or group */ @@ -470,7 +469,7 @@ QueryBuilder.extend({ /** * Modifies the group generated from the SQL expression (this is called before the group is filled with rules) * @event changer:sqlToGroup - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {object} group * @param {object} AST * @returns {object} @@ -549,7 +548,7 @@ QueryBuilder.extend({ /** * Returns a filter identifier from the SQL field * @event changer:getSQLFieldID - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {string} field * @param {*} value * @returns {string} @@ -559,7 +558,7 @@ QueryBuilder.extend({ /** * Modifies the rule generated from the SQL expression * @event changer:sqlToRule - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {object} rule * @param {object} AST * @returns {object} @@ -580,8 +579,7 @@ QueryBuilder.extend({ /** * Sets the builder's rules from a SQL query - * @memberof module:SqlSupportPlugin - * @see module:SqlSupportPlugin.getRulesFromSQL + * @see module:plugins.SqlSupport.getRulesFromSQL */ setRulesFromSQL: function(query, stmt) { this.setRules(this.getRulesFromSQL(query, stmt)); @@ -590,7 +588,7 @@ QueryBuilder.extend({ /** * Parses the statement configuration - * @memberof module:SqlSupportPlugin + * @memberof module:plugins.SqlSupport * @param {string} stmt * @returns {Array} null, mode, option * @private diff --git a/src/plugins/unique-filter/plugin.js b/src/plugins/unique-filter/plugin.js index 9a318a59..5b6fb802 100644 --- a/src/plugins/unique-filter/plugin.js +++ b/src/plugins/unique-filter/plugin.js @@ -1,12 +1,8 @@ /** - * @module UniqueFilterPlugin + * @class UniqueFilter + * @memberof module:plugins * @description Allows to define some filters as "unique": ie which can be used for only one rule, globally or in the same group. */ - -/** - * @function init - * @memberof module:UniqueFilterPlugin - */ QueryBuilder.define('unique-filter', function() { this.status.used_filters = {}; @@ -38,10 +34,9 @@ QueryBuilder.define('unique-filter', function() { }); }); -QueryBuilder.extend({ +QueryBuilder.extend(/** @lends module:plugins.UniqueFilter.prototype */ { /** * Updates the list of used filters - * @memberof module:UniqueFilterPlugin * @param {$.Event} [e] * @private */ @@ -75,7 +70,6 @@ QueryBuilder.extend({ /** * Clear the list of used filters - * @memberof module:UniqueFilterPlugin * @param {$.Event} [e] * @private */ @@ -89,7 +83,6 @@ QueryBuilder.extend({ /** * Disabled filters depending on the list of used ones - * @memberof module:UniqueFilterPlugin * @param {$.Event} [e] * @private */ diff --git a/src/public.js b/src/public.js index 2b5b3654..610a4adf 100644 --- a/src/public.js +++ b/src/public.js @@ -1,6 +1,6 @@ /** * Destroys the builder - * @fires QueryBuilder#beforeDestroy + * @fires QueryBuilder.beforeDestroy */ QueryBuilder.prototype.destroy = function() { /** @@ -27,8 +27,8 @@ QueryBuilder.prototype.destroy = function() { /** * Clear all rules and resets the root group - * @fires QueryBuilder#beforeReset - * @fires QueryBuilder#afterReset + * @fires QueryBuilder.beforeReset + * @fires QueryBuilder.afterReset */ QueryBuilder.prototype.reset = function() { /** @@ -58,8 +58,8 @@ QueryBuilder.prototype.reset = function() { /** * Clears all rules and removes the root group - * @fires QueryBuilder#beforeClear - * @fires QueryBuilder#afterClear + * @fires QueryBuilder.beforeClear + * @fires QueryBuilder.afterClear */ QueryBuilder.prototype.clear = function() { /** @@ -123,7 +123,7 @@ QueryBuilder.prototype.getModel = function(target) { * @param {object} [options] * @param {boolean} [options.skip_empty=false] - skips validating rules that have no filter selected * @returns {boolean} - * @fires QueryBuilder#changer:validate + * @fires QueryBuilder.changer:validate */ QueryBuilder.prototype.validate = function(options) { options = $.extend({ @@ -209,9 +209,9 @@ QueryBuilder.prototype.validate = function(options) { * @param {boolean} [options.allow_invalid=false] - returns rules even if they are invalid * @param {boolean} [options.skip_empty=false] - remove rules that have no filter selected * @returns {object} - * @fires QueryBuilder#changer:ruleToJson - * @fires QueryBuilder#changer:groupToJson - * @fires QueryBuilder#changer:getRules + * @fires QueryBuilder.changer:ruleToJson + * @fires QueryBuilder.changer:groupToJson + * @fires QueryBuilder.changer:getRules */ QueryBuilder.prototype.getRules = function(options) { options = $.extend({ @@ -308,6 +308,7 @@ QueryBuilder.prototype.getRules = function(options) { /** * Modifies the result of the {@link QueryBuilder#getRules} method * @event changer:getRules + * @memberof QueryBuilder * @param {object} json * @returns {object} */ @@ -320,10 +321,10 @@ QueryBuilder.prototype.getRules = function(options) { * @param {object} [options] * @param {boolean} [options.allow_invalid=false] - silent-fail if the data are invalid * @throws RulesError, UndefinedConditionError - * @fires QueryBuilder#changer:setRules - * @fires QueryBuilder#changer:jsonToRule - * @fires QueryBuilder#changer:jsonToGroup - * @fires QueryBuilder#afterSetRules + * @fires QueryBuilder.changer:setRules + * @fires QueryBuilder.changer:jsonToRule + * @fires QueryBuilder.changer:jsonToGroup + * @fires QueryBuilder.afterSetRules */ QueryBuilder.prototype.setRules = function(data, options) { options = $.extend({ diff --git a/src/template.js b/src/template.js index afbd3176..b1379f47 100644 --- a/src/template.js +++ b/src/template.js @@ -92,7 +92,7 @@ QueryBuilder.templates.operatorSelect = '\ * @param {string} group_id * @param {int} level * @returns {string} - * @fires QueryBuilder#changer:getGroupTemplate + * @fires QueryBuilder.changer:getGroupTemplate * @private */ QueryBuilder.prototype.getGroupTemplate = function(group_id, level) { @@ -121,7 +121,7 @@ QueryBuilder.prototype.getGroupTemplate = function(group_id, level) { * Returns rule's HTML * @param {string} rule_id * @returns {string} - * @fires QueryBuilder#changer:getRuleTemplate + * @fires QueryBuilder.changer:getRuleTemplate * @private */ QueryBuilder.prototype.getRuleTemplate = function(rule_id) { @@ -148,7 +148,7 @@ QueryBuilder.prototype.getRuleTemplate = function(rule_id) { * @param {Rule} rule * @param {object[]} filters * @returns {string} - * @fires QueryBuilder#changer:getRuleFilterTemplate + * @fires QueryBuilder.changer:getRuleFilterTemplate * @private */ QueryBuilder.prototype.getRuleFilterSelect = function(rule, filters) { @@ -178,7 +178,7 @@ QueryBuilder.prototype.getRuleFilterSelect = function(rule, filters) { * @param {Rule} rule * @param {object[]} operators * @returns {string} - * @fires QueryBuilder#changer:getRuleOperatorTemplate + * @fires QueryBuilder.changer:getRuleOperatorTemplate * @private */ QueryBuilder.prototype.getRuleOperatorSelect = function(rule, operators) { @@ -208,7 +208,7 @@ QueryBuilder.prototype.getRuleOperatorSelect = function(rule, operators) { * @param {Rule} rule * @param {int} value_id * @returns {string} - * @fires QueryBuilder#changer:getRuleInput + * @fires QueryBuilder.changer:getRuleInput * @private */ QueryBuilder.prototype.getRuleInput = function(rule, value_id) { From 18ab732104098a4ba0b47e6acaf51c71bb6b2fc8 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Thu, 6 Apr 2017 19:25:03 +0200 Subject: [PATCH 06/97] Fix BtCheckbox sass path --- Gruntfile.js | 2 +- src/plugins/bt-checkbox/{plugins.scss => plugin.scss} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/plugins/bt-checkbox/{plugins.scss => plugin.scss} (100%) diff --git a/Gruntfile.js b/Gruntfile.js index ef01b8ca..bdb40cc2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -196,7 +196,7 @@ module.exports = function(grunt) { src: ['dist/js/*.js'] }, css: { - src: ['dist/css/*.css', 'dist/css/*.scss'] + src: ['dist/css/*.css', 'dist/scss/*.scss'] } }, diff --git a/src/plugins/bt-checkbox/plugins.scss b/src/plugins/bt-checkbox/plugin.scss similarity index 100% rename from src/plugins/bt-checkbox/plugins.scss rename to src/plugins/bt-checkbox/plugin.scss From c1c451e2777d63a53615caba0f00991d75da3a59 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Wed, 12 Apr 2017 19:32:14 +0200 Subject: [PATCH 07/97] Close #461 [sql-support] Auto-detect filter by field name --- examples/index.html | 4 +- package.json | 2 +- src/plugins/sql-support/plugin.js | 43 ++++++++++++++---- tests/index.html | 1 + tests/plugins.sql-support.module.js | 68 ++++++++++++++++++++++------- 5 files changed, 92 insertions(+), 26 deletions(-) diff --git a/examples/index.html b/examples/index.html index 6704b236..fb69de55 100644 --- a/examples/index.html +++ b/examples/index.html @@ -128,6 +128,7 @@

Output

+ @@ -208,6 +209,7 @@

Output

*/ { id: 'name', + field: 'username', label: { en: 'Name', fr: 'Nom' @@ -582,7 +584,7 @@

Output

// set rules from SQL $('.set-sql').on('click', function() { - $('#builder').queryBuilder('setRulesFromSQL', 'name NOT LIKE "Mistic%" OR price BETWEEN 100 OR 200 OR NOT (category IN(1, 2) AND rate <= 2)'); + $('#builder').queryBuilder('setRulesFromSQL', 'username NOT LIKE "Mistic%" OR price BETWEEN 100 OR 200 OR NOT (category IN(1, 2) AND rate <= 2)'); }); // reset builder diff --git a/package.json b/package.json index 3d6d917e..af0dbb90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jQuery-QueryBuilder", - "version": "2.4.0", + "version": "2.5.0", "author": { "name": "Damien \"Mistic\" Sorel", "email": "contact@git.strangeplanet.fr", diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index bb190c49..e3676825 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -545,15 +545,7 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { Utils.error('SQLParse', 'Cannot find field name in {0}', JSON.stringify(data.left)); } - /** - * Returns a filter identifier from the SQL field - * @event changer:getSQLFieldID - * @memberof module:plugins.SqlSupport - * @param {string} field - * @param {*} value - * @returns {string} - */ - var id = self.change('getSQLFieldID', field, value); + var id = self.getSQLFieldID(field, value); /** * Modifies the rule generated from the SQL expression @@ -583,6 +575,39 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { */ setRulesFromSQL: function(query, stmt) { this.setRules(this.getRulesFromSQL(query, stmt)); + }, + + /** + * Returns a filter identifier from the SQL field. + * Automatically use the only one filter with a matching field, fires a changer otherwise. + * @param {string} field + * @param {*} value + * @fires module:plugins.SqlSupport:changer:getSQLFieldID + * @returns {string} + * @private + */ + getSQLFieldID: function(field, value) { + var matchingFilters = this.filters.filter(function(filter) { + return filter.field === field; + }); + + var id; + if (matchingFilters.length === 1) { + id = matchingFilters[0].id; + } + else { + /** + * Returns a filter identifier from the SQL field + * @event changer:getSQLFieldID + * @memberof module:plugins.SqlSupport + * @param {string} field + * @param {*} value + * @returns {string} + */ + id = this.change('getSQLFieldID', field, value); + } + + return id; } }); diff --git a/tests/index.html b/tests/index.html index 875f9320..343c9210 100644 --- a/tests/index.html +++ b/tests/index.html @@ -33,6 +33,7 @@ + diff --git a/tests/plugins.sql-support.module.js b/tests/plugins.sql-support.module.js index 6dc82cfe..a64ecf4a 100644 --- a/tests/plugins.sql-support.module.js +++ b/tests/plugins.sql-support.module.js @@ -1,13 +1,13 @@ -$(function () { +$(function() { var $b = $('#builder'); QUnit.module('plugins.sql-support', { - afterEach: function () { + afterEach: function() { $b.queryBuilder('destroy'); } }); - QUnit.test('Raw SQL', function (assert) { + QUnit.test('Raw SQL', function(assert) { $b.queryBuilder({ filters: basic_filters, rules: basic_rules @@ -30,7 +30,7 @@ $(function () { ); }); - QUnit.test('Placeholder SQL', function (assert) { + QUnit.test('Placeholder SQL', function(assert) { $b.queryBuilder({ filters: basic_filters, rules: basic_rules @@ -53,7 +53,7 @@ $(function () { ); }); - QUnit.test('Numbered SQL', function (assert) { + QUnit.test('Numbered SQL', function(assert) { $b.queryBuilder({ filters: basic_filters, rules: basic_rules @@ -92,7 +92,7 @@ $(function () { ); }); - QUnit.test('Named SQL', function (assert) { + QUnit.test('Named SQL', function(assert) { $b.queryBuilder({ filters: basic_filters, rules: basic_rules @@ -131,7 +131,7 @@ $(function () { ); }); - QUnit.test('All operators', function (assert) { + QUnit.test('All operators', function(assert) { $b.queryBuilder({ filters: basic_filters, rules: all_operators_rules @@ -154,14 +154,14 @@ $(function () { ); }); - QUnit.test('Nested rules', function (assert) { + QUnit.test('Nested rules', function(assert) { $b.queryBuilder({ filters: [ - {id: 'a', type: 'integer'}, - {id: 'b', type: 'integer'}, - {id: 'c', type: 'integer'}, - {id: 'd', type: 'integer'} + { id: 'a', type: 'integer' }, + { id: 'b', type: 'integer' }, + { id: 'c', type: 'integer' }, + { id: 'd', type: 'integer' } ] }); @@ -191,7 +191,7 @@ $(function () { ); }); - QUnit.test('Custom export/parsing', function (assert) { + QUnit.test('Custom export/parsing', function(assert) { var rules = { condition: 'AND', rules: [ @@ -225,13 +225,13 @@ $(function () { ] }); - $b.on('ruleToSQL.queryBuilder.filter', function (e, rule, sqlValue, sqlOperator) { + $b.on('ruleToSQL.queryBuilder.filter', function(e, rule, sqlValue, sqlOperator) { if (rule.id === 'last_days') { e.value = rule.field + ' ' + sqlOperator('DATE_SUB(NOW(), INTERVAL ' + sqlValue + ' DAY)'); } }); - $b.on('parseSQLNode.queryBuilder.filter', function (e) { + $b.on('parseSQLNode.queryBuilder.filter', function(e) { var data = e.value; // left must be the field name and right must be the date_sub function if (data.left && data.left.value == 'display_date' && data.operation == '>' && data.right && data.right.name == 'DATE_SUB') { @@ -269,6 +269,44 @@ $(function () { ); }); + QUnit.test('Automatically use filter from field', function(assert) { + var rules = { + condition: 'AND', + rules: [ + { + id: 'name', + operator: 'equal', + value: 'Mistic' + } + ] + }; + + var sql = 'username = \'Mistic\''; + + $b.queryBuilder({ + filters: [ + { + id: 'name', + field: 'username', + type: 'string' + }, + { + id: 'last_days', + field: 'display_date', + type: 'integer' + } + ] + }); + + $b.queryBuilder('setRulesFromSQL', sql); + + assert.rulesMatch( + $b.queryBuilder('getRules'), + rules, + 'Should use "name" filter from "username" field' + ); + }); + var basic_rules_sql_raw = { sql: 'price < 10.25 AND name IS NULL AND ( category IN(\'mo\', \'mu\') OR id != \'1234-azer-5678\' ) ' From 7b2b6863826cad430cbe8e5ef3dd485faff36710 Mon Sep 17 00:00:00 2001 From: David Beer-Gabel Date: Thu, 13 Apr 2017 16:56:18 +0300 Subject: [PATCH 08/97] Sortable plugin bug (2.4.1 => 2.4.2) *fixed* --- src/plugins/sortable/plugin.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/sortable/plugin.js b/src/plugins/sortable/plugin.js index e9c5f277..83f0b4df 100644 --- a/src/plugins/sortable/plugin.js +++ b/src/plugins/sortable/plugin.js @@ -102,7 +102,7 @@ QueryBuilder.define('sortable', function(options) { .dropzone({ accept: QueryBuilder.selectors.rule_and_group_containers, ondragenter: function(event) { - moveSortableToTarget(placeholder, $(event.target)); + moveSortableToTarget(placeholder, $(event.target), self); }, ondrop: function(event) { moveSortableToTarget(src, $(event.target), self); @@ -115,7 +115,7 @@ QueryBuilder.define('sortable', function(options) { .dropzone({ accept: QueryBuilder.selectors.rule_and_group_containers, ondragenter: function(event) { - moveSortableToTarget(placeholder, $(event.target)); + moveSortableToTarget(placeholder, $(event.target), self); }, ondrop: function(event) { moveSortableToTarget(src, $(event.target), self); From bcd4fdefd250fb5d046a31cbf9a62085dccdda0e Mon Sep 17 00:00:00 2001 From: mistic100 Date: Thu, 13 Apr 2017 20:00:06 +0200 Subject: [PATCH 09/97] #461 [mongo-support] Auto-detect filter by field name --- examples/index.html | 2 +- src/plugins/mongodb-support/plugin.js | 43 +++++++++++++++++++++------ tests/plugins.mongo-support.module.js | 42 ++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 10 deletions(-) diff --git a/examples/index.html b/examples/index.html index fb69de55..ff6592b0 100644 --- a/examples/index.html +++ b/examples/index.html @@ -565,7 +565,7 @@

Output

$('.set-mongo').on('click', function() { $('#builder').queryBuilder('setRulesFromMongo', { "$or": [{ - "name": { + "username": { "$regex": "^(?!Mistic)" } }, { diff --git a/src/plugins/mongodb-support/plugin.js b/src/plugins/mongodb-support/plugin.js index eca501bc..93a17348 100644 --- a/src/plugins/mongodb-support/plugin.js +++ b/src/plugins/mongodb-support/plugin.js @@ -270,15 +270,7 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { var opVal = mdbrl.call(self, value); - /** - * Returns a filter identifier from the MongoDB field - * @event changer:getMongoDBFieldID - * @memberof module:plugins.MongoDbSupport - * @param {string} field - * @param {*} value - * @returns {string} - */ - var id = self.change('getMongoDBFieldID', field, value); + var id = self.getMongoDBFieldID(field, value); /** * Modifies the rule generated from the MongoDB expression @@ -320,6 +312,39 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { */ setRulesFromMongo: function(query) { this.setRules(this.getRulesFromMongo(query)); + }, + + /** + * Returns a filter identifier from the MongoDB field. + * Automatically use the only one filter with a matching field, fires a changer otherwise. + * @param {string} field + * @param {*} value + * @fires module:plugins.MongoDbSupport:changer:getMongoDBFieldID + * @returns {string} + * @private + */ + getMongoDBFieldID: function(field, value) { + var matchingFilters = this.filters.filter(function(filter) { + return filter.field === field; + }); + + var id; + if (matchingFilters.length === 1) { + id = matchingFilters[0].id; + } + else { + /** + * Returns a filter identifier from the MongoDB field + * @event changer:getMongoDBFieldID + * @memberof module:plugins.MongoDbSupport + * @param {string} field + * @param {*} value + * @returns {string} + */ + id = this.change('getMongoDBFieldID', field, value); + } + + return id; } }); diff --git a/tests/plugins.mongo-support.module.js b/tests/plugins.mongo-support.module.js index 68e4a329..73ff20f9 100644 --- a/tests/plugins.mongo-support.module.js +++ b/tests/plugins.mongo-support.module.js @@ -62,6 +62,48 @@ $(function(){ ); }); + QUnit.test('Automatically use filter from field', function(assert) { + var rules = { + condition: 'AND', + rules: [ + { + id: 'name', + operator: 'equal', + value: 'Mistic' + } + ] + }; + + var mongo = { + $and: [{ + username: 'Mistic' + }] + }; + + $b.queryBuilder({ + filters: [ + { + id: 'name', + field: 'username', + type: 'string' + }, + { + id: 'last_days', + field: 'display_date', + type: 'integer' + } + ] + }); + + $b.queryBuilder('setRulesFromMongo', mongo); + + assert.rulesMatch( + $b.queryBuilder('getRules'), + rules, + 'Should use "name" filter from "username" field' + ); + }); + var all_operators_rules = { condition: 'AND', From 845017c85bf73125a1dea5f657099fdb139cb63e Mon Sep 17 00:00:00 2001 From: mistic100 Date: Mon, 17 Apr 2017 10:30:21 +0200 Subject: [PATCH 10/97] Fix #469 [sql-support] add boolean_as_integer global option --- src/core.js | 33 --------------- src/plugins.js | 62 +++++++++++++++++++++++++++++ src/plugins/sql-support/plugin.js | 10 ++++- tests/plugins.sql-support.module.js | 38 ++++++++++++++++++ 4 files changed, 109 insertions(+), 34 deletions(-) diff --git a/src/core.js b/src/core.js index d9f1a85a..b3e2d2ec 100644 --- a/src/core.js +++ b/src/core.js @@ -1,36 +1,3 @@ -/** - * Initializes plugins for an instance - * @throws ConfigError - * @private - */ -QueryBuilder.prototype.initPlugins = function() { - if (!this.plugins) { - return; - } - - if ($.isArray(this.plugins)) { - var tmp = {}; - this.plugins.forEach(function(plugin) { - tmp[plugin] = null; - }); - this.plugins = tmp; - } - - Object.keys(this.plugins).forEach(function(plugin) { - if (plugin in QueryBuilder.plugins) { - this.plugins[plugin] = $.extend(true, {}, - QueryBuilder.plugins[plugin].def, - this.plugins[plugin] || {} - ); - - QueryBuilder.plugins[plugin].fct.call(this, this.plugins[plugin]); - } - else { - Utils.error('Config', 'Unable to find plugin "{0}"', plugin); - } - }, this); -}; - /** * Checks the configuration of each filter * @param {QueryBuilder.Filter[]} filters diff --git a/src/plugins.js b/src/plugins.js index 35108e3e..036f9cc4 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -50,3 +50,65 @@ QueryBuilder.define = function(name, fct, def) { QueryBuilder.extend = function(methods) { $.extend(QueryBuilder.prototype, methods); }; + +/** + * Initializes plugins for an instance + * @throws ConfigError + * @private + */ +QueryBuilder.prototype.initPlugins = function() { + if (!this.plugins) { + return; + } + + if ($.isArray(this.plugins)) { + var tmp = {}; + this.plugins.forEach(function(plugin) { + tmp[plugin] = null; + }); + this.plugins = tmp; + } + + Object.keys(this.plugins).forEach(function(plugin) { + if (plugin in QueryBuilder.plugins) { + this.plugins[plugin] = $.extend(true, {}, + QueryBuilder.plugins[plugin].def, + this.plugins[plugin] || {} + ); + + QueryBuilder.plugins[plugin].fct.call(this, this.plugins[plugin]); + } + else { + Utils.error('Config', 'Unable to find plugin "{0}"', plugin); + } + }, this); +}; + +/** + * Returns the config of a plugin, if the plugin is not loaded, returns the default config. + * @param {string} name + * @param {string} [property] + * @throws ConfigError + * @returns {*} + */ +QueryBuilder.prototype.getPluginOptions = function(name, property) { + var plugin; + if (this.plugins && this.plugins[name]) { + plugin = this.plugins[name]; + } + else if (QueryBuilder.plugins[name]) { + plugin = QueryBuilder.plugins[name].def; + } + + if (plugin) { + if (property) { + return plugin[property]; + } + else { + return plugin; + } + } + else { + Utils.error('Config', 'Unable to find plugin "{0}"', name); + } +}; diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index e3676825..6abc101a 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -2,7 +2,14 @@ * @class SqlSupport * @memberof module:plugins * @description Allows to export rules as a SQL WHERE statement as well as populating the builder from an SQL query. + * @param {object} [options] + * @param {boolean} [options.boolean_as_integer=true] - `true` to convert boolean values to integer in the SQL output */ +QueryBuilder.define('sql-support', function(options) { + +}, { + boolean_as_integer: true +}); QueryBuilder.defaults({ // operators for internal -> SQL conversion @@ -242,6 +249,7 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { getSQL: function(stmt, nl, data) { data = (data === undefined) ? this.getRules() : data; nl = !!nl ? '\n' : ' '; + var boolean_as_integer = this.getPluginOptions('sql-support', 'boolean_as_integer'); if (stmt === true) stmt = 'question_mark'; if (typeof stmt == 'string') { @@ -289,7 +297,7 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { } if (rule.type == 'integer' || rule.type == 'double' || rule.type == 'boolean') { - v = Utils.changeType(v, rule.type, true); + v = Utils.changeType(v, rule.type, boolean_as_integer); } else if (!stmt) { v = Utils.escapeString(v); diff --git a/tests/plugins.sql-support.module.js b/tests/plugins.sql-support.module.js index a64ecf4a..7d2da34e 100644 --- a/tests/plugins.sql-support.module.js +++ b/tests/plugins.sql-support.module.js @@ -307,6 +307,44 @@ $(function() { ); }); + QUnit.test('Cast booleans', function(assert) { + $b.queryBuilder({ + plugins: { + 'sql-support': { + boolean_as_integer: true + } + }, + filters: [ + { + id: 'done', + type: 'boolean' + } + ], + rules: [ + { + id: 'done', + operator: 'equal', + value: true + } + ] + }); + + assert.rulesMatch( + $b.queryBuilder('getSQL'), + 'done = 1', + 'Should convert boolean value to integer' + ); + + // don't do that in real life ! + $b[0].queryBuilder.plugins['sql-support'].boolean_as_integer = false; + + assert.rulesMatch( + $b.queryBuilder('getSQL'), + 'done = true', + 'Should not convert boolean value to integer' + ); + }); + var basic_rules_sql_raw = { sql: 'price < 10.25 AND name IS NULL AND ( category IN(\'mo\', \'mu\') OR id != \'1234-azer-5678\' ) ' From 3924938b16703a4cd83c4735804e3dc9fecce3ed Mon Sep 17 00:00:00 2001 From: mistic100 Date: Mon, 24 Apr 2017 19:07:01 +0200 Subject: [PATCH 11/97] Switch CDN to unpkg --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index a9007708..931f097a 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -3,4 +3,4 @@ - Please search in the [documentation](http://querybuilder.js.org) before asking. - Any issue without enough details won't get any answer and will be closed. - Help requests must be exhaustive, precise and come with some code explaining the need (use Markdown code highlight). -- Bug reports must come with a simple test case, preferably on jsFiddle, Plunker, etc. (QueryBuilder is available on [jsDelivr](https://www.jsdelivr.com/projects/jquery.query-builder) to be used on such platforms). +- Bug reports must come with a simple test case, preferably on jsFiddle, Plunker, etc. (QueryBuilder is available on [unpkg](https://unpkg.com/jQuery-QueryBuilder/dist/) to be used on such platforms). From ed5f6b4670a4e90ffab1de0ba51caa36095c3800 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Mon, 8 May 2017 21:34:31 +0200 Subject: [PATCH 12/97] Close #486 move `defineModelProperties` to Utils --- Gruntfile.js | 2 +- examples/index.html | 2 +- src/model.js | 44 +++------------------------------ src/plugins/not-group/plugin.js | 2 +- src/utils.js | 38 ++++++++++++++++++++++++++++ tests/index.html | 2 +- 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index bdb40cc2..cfb31c00 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -22,8 +22,8 @@ module.exports = function(grunt) { 'src/public.js', 'src/data.js', 'src/template.js', - 'src/model.js', 'src/utils.js', + 'src/model.js', 'src/jquery.js' ], js_files_for_standalone: [ diff --git a/examples/index.html b/examples/index.html index ff6592b0..369c9eda 100644 --- a/examples/index.html +++ b/examples/index.html @@ -133,8 +133,8 @@

Output

- + diff --git a/src/model.js b/src/model.js index af13aac7..a397c98f 100644 --- a/src/model.js +++ b/src/model.js @@ -64,44 +64,6 @@ $.extend(Model.prototype, /** @lends Model.prototype */ { } }); -/** - * Defines properties on an Node prototype with getter and setter.
- * Update events are emitted in the setter through root Model (if any).
- * The object must have a `__` object, non enumerable property to store values. - * @param {function} obj - * @param {string[]} fields - */ -Model.defineModelProperties = function(obj, fields) { - fields.forEach(function(field) { - Object.defineProperty(obj.prototype, field, { - enumerable: true, - get: function() { - return this.__[field]; - }, - set: function(value) { - var previousValue = (this.__[field] !== null && typeof this.__[field] == 'object') ? - $.extend({}, this.__[field]) : - this.__[field]; - - this.__[field] = value; - - if (this.model !== null) { - /** - * After a value of the model changed - * @event model:update - * @memberof Model - * @param {Node} node - * @param {string} field - * @param {*} value - * @param {*} previousValue - */ - this.model.trigger('update', this, field, value, previousValue); - } - } - }); - }); -}; - /** * Root abstract object @@ -177,7 +139,7 @@ var Node = function(parent, $el) { this.parent = parent; }; -Model.defineModelProperties(Node, ['level', 'error', 'data', 'flags']); +Utils.defineModelProperties(Node, ['level', 'error', 'data', 'flags']); Object.defineProperty(Node.prototype, 'parent', { enumerable: true, @@ -340,7 +302,7 @@ var Group = function(parent, $el) { Group.prototype = Object.create(Node.prototype); Group.prototype.constructor = Group; -Model.defineModelProperties(Group, ['condition']); +Utils.defineModelProperties(Group, ['condition']); /** * Removes group's content @@ -561,7 +523,7 @@ var Rule = function(parent, $el) { Rule.prototype = Object.create(Node.prototype); Rule.prototype.constructor = Rule; -Model.defineModelProperties(Rule, ['filter', 'operator', 'value']); +Utils.defineModelProperties(Rule, ['filter', 'operator', 'value']); /** * Checks if this Node is the root diff --git a/src/plugins/not-group/plugin.js b/src/plugins/not-group/plugin.js index 6596a817..da6f98b0 100644 --- a/src/plugins/not-group/plugin.js +++ b/src/plugins/not-group/plugin.js @@ -104,7 +104,7 @@ QueryBuilder.define('not-group', function(options) { * @memberof Group * @instance */ -Model.defineModelProperties(Group, ['not']); +Utils.defineModelProperties(Group, ['not']); QueryBuilder.selectors.group_not = QueryBuilder.selectors.group_header + ' [data-not=group]'; diff --git a/src/utils.js b/src/utils.js index 8f6150f2..94af0956 100644 --- a/src/utils.js +++ b/src/utils.js @@ -202,3 +202,41 @@ Utils.groupSort = function(items, key) { return newItems; }; + +/** + * Defines properties on an Node prototype with getter and setter.
+ * Update events are emitted in the setter through root Model (if any).
+ * The object must have a `__` object, non enumerable property to store values. + * @param {function} obj + * @param {string[]} fields + */ +Utils.defineModelProperties = function(obj, fields) { + fields.forEach(function(field) { + Object.defineProperty(obj.prototype, field, { + enumerable: true, + get: function() { + return this.__[field]; + }, + set: function(value) { + var previousValue = (this.__[field] !== null && typeof this.__[field] == 'object') ? + $.extend({}, this.__[field]) : + this.__[field]; + + this.__[field] = value; + + if (this.model !== null) { + /** + * After a value of the model changed + * @event model:update + * @memberof Model + * @param {Node} node + * @param {string} field + * @param {*} value + * @param {*} previousValue + */ + this.model.trigger('update', this, field, value, previousValue); + } + } + }); + }); +}; diff --git a/tests/index.html b/tests/index.html index 343c9210..3af96d4d 100644 --- a/tests/index.html +++ b/tests/index.html @@ -38,8 +38,8 @@ - + From d552fde68147ec6a8f654be409a51155af2e4171 Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Wed, 17 May 2017 08:58:02 +0200 Subject: [PATCH 13/97] Fix #487 Temporary fix CommonJS loader --- package.json | 1 + src/.wrapper.js | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index af0dbb90..f9cc0c5e 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "url": "http://www.strangeplanet.fr" }, "description": "jQuery plugin for user friendly query/filter creator", + "main": "dist/js/query-builder.js", "dependencies": { "jquery": ">=1.9.0", "bootstrap": ">=3.1.0", diff --git a/src/.wrapper.js b/src/.wrapper.js index b4b9da8d..732ae480 100644 --- a/src/.wrapper.js +++ b/src/.wrapper.js @@ -1,6 +1,9 @@ (function(root, factory) { if (typeof define == 'function' && define.amd) { - define(['jquery', 'doT', 'jQuery.extendext'], factory); + define(['jquery', 'dot/doT', 'jquery-extendext'], factory); + } + else if (typeof module === 'object' && module.exports) { + module.exports = factory(require('jquery'), require('dot/doT'), require('jquery-extendext')); } else { factory(root.jQuery, root.doT); @@ -10,4 +13,6 @@ @@js -})); \ No newline at end of file +return QueryBuilder; + +})); From d8fbbafc7993be06cbf8c235b9e06130c51bffa7 Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Mon, 10 Jul 2017 12:56:37 +0200 Subject: [PATCH 14/97] Update README.md --- .github/ISSUE_TEMPLATE.md | 2 +- LICENSE | 4 ++-- README.md | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 931f097a..7a8c011b 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -3,4 +3,4 @@ - Please search in the [documentation](http://querybuilder.js.org) before asking. - Any issue without enough details won't get any answer and will be closed. - Help requests must be exhaustive, precise and come with some code explaining the need (use Markdown code highlight). -- Bug reports must come with a simple test case, preferably on jsFiddle, Plunker, etc. (QueryBuilder is available on [unpkg](https://unpkg.com/jQuery-QueryBuilder/dist/) to be used on such platforms). +- Bug reports must come with a simple test case, preferably on jsFiddle, Plunker, etc. (QueryBuilder is available on [jsDelivr](https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder/dist/) and [unpkg](https://unpkg.com/jQuery-QueryBuilder/dist/) to be used on such platforms). diff --git a/LICENSE b/LICENSE index 99070e3d..50b5d4bd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014-2015 Damien Sorel +Copyright (c) 2014-2017 Damien Sorel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/README.md b/README.md index e48cf2e2..1fe97bb1 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,10 @@ $ bower install jQuery-QueryBuilder $ npm install jQuery-QueryBuilder ``` +#### Via CDN + +jQuery-QueryBuilder is available on [jsDelivr](https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder/dist/) and [unpkg](https://unpkg.com/jQuery-QueryBuilder/dist/)) + ### Dependencies * jQuery >= 1.10 * Bootstrap >= 3.1 (CSS only) From 81175dd6fe7e1ada7e69cabd44268932629c5fd7 Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Tue, 25 Jul 2017 13:22:03 +0200 Subject: [PATCH 15/97] Use Node version of SASS --- .sass-lint.yml | 9 +++++++++ .scss-lint.yml | 31 ----------------------------- .travis.yml | 2 -- Gruntfile.js | 13 ++++++------ README.md | 2 -- package.json | 6 +++--- src/plugins/bt-checkbox/plugin.scss | 2 +- src/plugins/sortable/plugin.scss | 3 ++- src/scss/default.scss | 6 ++++-- 9 files changed, 25 insertions(+), 49 deletions(-) create mode 100644 .sass-lint.yml delete mode 100644 .scss-lint.yml diff --git a/.sass-lint.yml b/.sass-lint.yml new file mode 100644 index 00000000..2d387551 --- /dev/null +++ b/.sass-lint.yml @@ -0,0 +1,9 @@ +rules: + property-sort-order: [0] + force-pseudo-nesting: [0] + force-element-nesting: [0] + force-attribute-nesting: [0] + no-important: [0] + no-qualifying-elements: [0] + shorthand-values: [1, {allowed-shorthands: [1, 2, 4]}] + hex-notation: [1, {style: uppercase}] diff --git a/.scss-lint.yml b/.scss-lint.yml deleted file mode 100644 index db8d4f79..00000000 --- a/.scss-lint.yml +++ /dev/null @@ -1,31 +0,0 @@ -linters: - PropertySortOrder: - enabled: false - - SingleLinePerSelector: - enabled: false - - SelectorDepth: - max_depth: 4 - - NestingDepth: - max_depth: 4 - - HexLength: - enabled: false - - HexNotation: - style: uppercase - - Shorthand: - allowed_shorthands: [1, 2, 4] - - QualifyingElement: - enabled: false - - ImportantRule: - enabled: false - - VendorPrefix: - exclude: - - src/scss/_mixins.scss diff --git a/.travis.yml b/.travis.yml index 59e0af84..689c955f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,6 @@ language: node_js node_js: - "5" before_install: - - gem install sass - - gem install scss_lint -v 0.49.0 - npm install -g grunt-cli - npm install -g bower before_script: diff --git a/Gruntfile.js b/Gruntfile.js index cfb31c00..218413d0 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -6,7 +6,7 @@ var cleanLn = require('./build/cleanLn'); module.exports = function(grunt) { require('time-grunt')(grunt); require('jit-grunt')(grunt, { - scsslint: 'grunt-scss-lint', + sasslint: 'grunt-sass-lint', sass_injection: 'grunt-sass-injection', usebanner: 'grunt-banner' }); @@ -217,8 +217,8 @@ module.exports = function(grunt) { // parse scss sass: { options: { - sourcemap: 'none', - style: 'expanded' + sourceMap: false, + outputStyle: 'expanded' }, dist: { files: [{ @@ -293,11 +293,10 @@ module.exports = function(grunt) { }, // scss tests - scsslint: { + sasslint: { lib: { options: { - colorizeOutput: true, - config: '.scss-lint.yml' + configFile: '.sass-lint.yml' }, src: ['src/**/*.scss'] } @@ -410,7 +409,7 @@ module.exports = function(grunt) { grunt.registerTask('test', [ 'jshint', 'jscs', - 'scsslint', + 'sasslint', 'build_lang', 'build_css', 'injector:testSrc', diff --git a/README.md b/README.md index 1fe97bb1..4e37d7ac 100644 --- a/README.md +++ b/README.md @@ -60,10 +60,8 @@ jQuery-QueryBuilder is available on [jsDelivr](https://cdn.jsdelivr.net/npm/jQue #### Prerequisites * NodeJS + NPM: `apt-get install nodejs-legacy npm` - * Ruby Dev: `apt-get install ruby-dev` * Grunt CLI: `npm install -g grunt-cli` * Bower: `npm install -g bower` - * SASS: `gem install sass` #### Run diff --git a/package.json b/package.json index f9cc0c5e..f2b6283e 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ }, "devDependencies": { "deepmerge": "^0.2.0", - "foodoc": "git://github.com/mistic100/foodoc.git#custom", + "foodoc": "^0.0.8", "grunt": "^1.0.0", "grunt-banner": "^0.6.0", "grunt-contrib-clean": "^1.0.0", @@ -27,7 +27,6 @@ "grunt-contrib-cssmin": "^1.0.0", "grunt-contrib-jshint": "^1.0.0", "grunt-contrib-qunit": "^0.7.0", - "grunt-contrib-sass": "^1.0.0", "grunt-contrib-uglify": "^1.0.0", "grunt-contrib-watch": "^1.0.0", "grunt-coveralls": "^1.0.0", @@ -36,8 +35,9 @@ "grunt-jsdoc": "^2.1.0", "grunt-open": "^0.2.3", "grunt-qunit-blanket-lcov": "^0.3.0", + "grunt-sass": "^2.0.0", "grunt-sass-injection": "^1.0.3", - "grunt-scss-lint": "^0.3.8", + "grunt-sass-lint": "^0.2.2", "grunt-wrap": "^0.3.0", "jit-grunt": "^0.10.0", "time-grunt": "^1.3.0" diff --git a/src/plugins/bt-checkbox/plugin.scss b/src/plugins/bt-checkbox/plugin.scss index 9b259265..324f610f 100644 --- a/src/plugins/bt-checkbox/plugin.scss +++ b/src/plugins/bt-checkbox/plugin.scss @@ -1,5 +1,5 @@ .query-builder.bt-checkbox-glyphicons { - .checkbox input[type=checkbox]:checked + label::after { + .checkbox input[type='checkbox']:checked + label::after { font-family: 'Glyphicons Halflings'; content: '\e013'; } diff --git a/src/plugins/sortable/plugin.scss b/src/plugins/sortable/plugin.scss index cf57c795..ac902fe1 100644 --- a/src/plugins/sortable/plugin.scss +++ b/src/plugins/sortable/plugin.scss @@ -14,7 +14,8 @@ $placeholder-border: 1px dashed $placeholder-border-color; opacity: .5; z-index: 100; - &::before, &::after { + &::before, + &::after { display: none; } } diff --git a/src/scss/default.scss b/src/scss/default.scss index ace2f2fb..b8445fb7 100644 --- a/src/scss/default.scss +++ b/src/scss/default.scss @@ -62,7 +62,7 @@ $ticks-position: 5px, 10px !default; .group-conditions { .btn.readonly:not(.active), - input[name$=_cond] { + input[name$='_cond'] { border: 0; clip: rect(0 0 0 0); height: 1px; @@ -110,7 +110,9 @@ $ticks-position: 5px, 10px !default; } } - select, input[type=text], input[type=number] { + select, + input[type='text'], + input[type='number'] { padding: 1px; } } From bb4bbeaf304486ff7869c8210299e84e89ec3bfd Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Tue, 25 Jul 2017 13:34:55 +0200 Subject: [PATCH 16/97] Fix #536 Make sure the builder is ready before firing afterInit --- src/core.js | 23 +++++++++++++++++++++++ src/jquery.js | 4 +++- src/main.js | 16 ---------------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/core.js b/src/core.js index b3e2d2ec..764c8c6b 100644 --- a/src/core.js +++ b/src/core.js @@ -1,3 +1,26 @@ +/** + * Final initialisation of the builder + * @param {object} [rules] + * @fires QueryBuilder.afterInit + * @private + */ +QueryBuilder.prototype.init = function(rules) { + /** + * When the initilization is done, just before creating the root group + * @event afterInit + * @memberof QueryBuilder + */ + this.trigger('afterInit'); + + if (rules) { + this.setRules(rules); + delete this.settings.rules; + } + else { + this.setRoot(true); + } +}; + /** * Checks the configuration of each filter * @param {QueryBuilder.Filter[]} filters diff --git a/src/jquery.js b/src/jquery.js index 62742019..941ea675 100644 --- a/src/jquery.js +++ b/src/jquery.js @@ -30,7 +30,9 @@ $.fn.queryBuilder = function(option) { return this; } if (!data) { - this.data('queryBuilder', new QueryBuilder(this, options)); + var builder = new QueryBuilder(this, options); + this.data('queryBuilder', builder); + builder.init(options.rules); } if (typeof option == 'string') { return data[option].apply(data, Array.prototype.slice.call(arguments, 1)); diff --git a/src/main.js b/src/main.js index 0ebfc940..f799af6f 100644 --- a/src/main.js +++ b/src/main.js @@ -14,7 +14,6 @@ * @param {jQuery} $el * @param {object} options - see {@link http://querybuilder.js.org/#options} * @constructor - * @fires QueryBuilder.afterInit */ var QueryBuilder = function($el, options) { $el[0].queryBuilder = this; @@ -141,21 +140,6 @@ var QueryBuilder = function($el, options) { this.operators = this.checkOperators(this.operators); this.bindEvents(); this.initPlugins(); - - /** - * When the initilization is done, just before creating the root group - * @event afterInit - * @memberof QueryBuilder - */ - this.trigger('afterInit'); - - if (options.rules) { - this.setRules(options.rules); - delete this.settings.rules; - } - else { - this.setRoot(true); - } }; $.extend(QueryBuilder.prototype, /** @lends QueryBuilder.prototype */ { From 3b2aa03d5dbdd9577ff94bc3aab30124028e6765 Mon Sep 17 00:00:00 2001 From: Damien Sorel Date: Thu, 10 Aug 2017 18:22:25 +0200 Subject: [PATCH 17/97] Fix #548 Fix event names --- src/template.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/template.js b/src/template.js index b1379f47..40b52ce1 100644 --- a/src/template.js +++ b/src/template.js @@ -163,7 +163,7 @@ QueryBuilder.prototype.getRuleFilterSelect = function(rule, filters) { /** * Modifies the raw HTML of the rule's filter dropdown - * @event changer:getRuleFilterTemplate + * @event changer:getRuleFilterSelect * @memberof QueryBuilder * @param {string} html * @param {Rule} rule @@ -193,7 +193,7 @@ QueryBuilder.prototype.getRuleOperatorSelect = function(rule, operators) { /** * Modifies the raw HTML of the rule's operator dropdown - * @event changer:getRuleOperatorTemplate + * @event changer:getRuleOperatorSelect * @memberof QueryBuilder * @param {string} html * @param {Rule} rule From 547071d6a20af60506624bdb2edd78ffc25cca0b Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Fri, 11 Aug 2017 14:43:23 +0200 Subject: [PATCH 18/97] Disallow Bootstrap 4 --- bower.json | 2 +- composer.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bower.json b/bower.json index 9f597a38..8c6ce3a3 100644 --- a/bower.json +++ b/bower.json @@ -14,7 +14,7 @@ ], "dependencies": { "jquery": ">=1.9.0", - "bootstrap": ">=3.1.0", + "bootstrap": ">=3.1.0 <4", "moment": ">=2.6.0", "jquery-extendext": ">=0.1.2", "doT": ">=1.0.3" diff --git a/composer.json b/composer.json index 6cbe2f11..6c74835b 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "robloach/component-installer": "*", "components/jquery": ">=1.9.0", "moment/moment": ">=2.6.0", - "components/bootstrap": ">=3.1.0" + "components/bootstrap": ">=3.1.0 <4" }, "keywords": [ "jquery", diff --git a/package.json b/package.json index f2b6283e..5209cf4e 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "main": "dist/js/query-builder.js", "dependencies": { "jquery": ">=1.9.0", - "bootstrap": ">=3.1.0", + "bootstrap": ">=3.1.0 <4", "moment": ">=2.6.0", "jquery-extendext": ">=0.1.2", "dot": ">=1.0.3" From 42a800a7400c9d275da22d803c392e155c33e855 Mon Sep 17 00:00:00 2001 From: manuelsx28 <31009071+manuelsx28@users.noreply.github.com> Date: Thu, 17 Aug 2017 14:22:28 +0200 Subject: [PATCH 19/97] [fix] ignore case when getting SQL field by ID (#554) --- src/plugins/sql-support/plugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index 6abc101a..6ef3bc56 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -596,7 +596,7 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { */ getSQLFieldID: function(field, value) { var matchingFilters = this.filters.filter(function(filter) { - return filter.field === field; + return filter.field.toLowerCase() === field.toLowerCase(); }); var id; From 0827aa9e57478b3a0863a312791849fb8a49d4a8 Mon Sep 17 00:00:00 2001 From: Damien Sorel Date: Tue, 22 Aug 2017 10:24:47 +0200 Subject: [PATCH 20/97] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4e37d7ac..f62228aa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Bower version](https://img.shields.io/bower/v/jQuery-QueryBuilder.svg?style=flat-square)](http://querybuilder.js.org) [![npm version](https://img.shields.io/npm/v/jQuery-QueryBuilder.svg?style=flat-square)](https://www.npmjs.com/package/jQuery-QueryBuilder) -[![CDN](https://img.shields.io/badge/cdn-jsdelivr-%23EB4C36.svg?style=flat-square)](http://www.jsdelivr.com/projects/jquery.query-builder) +[![CDN](https://img.shields.io/badge/cdn-jsdelivr-%23EB4C36.svg?style=flat-square)](https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder/dist/) [![Build Status](https://img.shields.io/travis/mistic100/jQuery-QueryBuilder.svg?style=flat-square)](https://travis-ci.org/mistic100/jQuery-QueryBuilder) [![Coverage Status](https://img.shields.io/coveralls/mistic100/jQuery-QueryBuilder/master.svg?style=flat-square)](https://coveralls.io/r/mistic100/jQuery-QueryBuilder) From 233de01a0d825a2ebce0ee65ccc571ba29818917 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Tue, 22 Aug 2017 20:31:01 +0200 Subject: [PATCH 21/97] Update Italian translation from @davegraziosi --- src/i18n/it.json | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/i18n/it.json b/src/i18n/it.json index 015cf3aa..d16fb50c 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -1,5 +1,6 @@ { "__locale": "Italian (it)", + "__author": "davegraziosi", "add_rule": "Aggiungi regola", "add_group": "Aggiungi gruppo", @@ -20,6 +21,8 @@ "less_or_equal": "minore o uguale", "greater": "maggiore", "greater_or_equal": "maggiore o uguale", + "between" : "compreso tra", + "not_between" : "non compreso tra", "begins_with": "inizia con", "not_begins_with": "non inizia con", "contains": "contiene", @@ -30,5 +33,29 @@ "is_not_empty": "non è vuoto", "is_null": "è nullo", "is_not_null": "non è nullo" + }, + + "errors": { + "no_filter": "Nessun filtro selezionato", + "empty_group": "Il gruppo è vuoto", + "radio_empty": "No value selected", + "checkbox_empty": "Nessun valore selezionato", + "select_empty": "Nessun valore selezionato", + "string_empty": "Valore vuoto", + "string_exceed_min_length": "Deve contenere almeno {0} caratteri", + "string_exceed_max_length": "Non deve contenere più di {0} caratteri", + "string_invalid_format": "Formato non valido ({0})", + "number_nan": "Non è un numero", + "number_not_integer": "Non è un intero", + "number_not_double": "Non è un numero con la virgola", + "number_exceed_min": "Deve essere maggiore di {0}", + "number_exceed_max": "Deve essere minore di {0}", + "number_wrong_step": "Deve essere multiplo di {0}", + "datetime_empty": "Valore vuoto", + "datetime_invalid": "Formato data non valido ({0})", + "datetime_exceed_min": "Deve essere successivo a {0}", + "datetime_exceed_max": "Deve essere precedente a {0}", + "boolean_not_valid": "Non è un booleano", + "operator_not_multiple": "L'Operatore {0} non può accettare valori multipli" } } \ No newline at end of file From 4f30d2830f0e8878bc46927c9b792466f2c5d2f9 Mon Sep 17 00:00:00 2001 From: kamel Date: Sat, 2 Sep 2017 17:08:31 +0430 Subject: [PATCH 22/97] Update fa-IR.json (#563) add not_between --- src/i18n/fa-IR.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/fa-IR.json b/src/i18n/fa-IR.json index 2900248c..55a6e456 100644 --- a/src/i18n/fa-IR.json +++ b/src/i18n/fa-IR.json @@ -22,6 +22,7 @@ "greater": "بزرگتر از", "greater_or_equal": "بزرگتر یا مساوی با", "between": "مابین", + "not_between": "مابین نباشد", "begins_with": "شروع شود با", "not_begins_with": "شروع نشود با", "contains": "شامل شود", @@ -57,4 +58,4 @@ "boolean_not_valid": "مقدار دودویی وارد کنید", "operator_not_multiple": "اپراتور \"{1}\" نمی تواند چند مقدار قبول کند" } -} \ No newline at end of file +} From f977012f2fb57bac6f9b9b7117a6436ecee4cce9 Mon Sep 17 00:00:00 2001 From: Jason Hafer Date: Thu, 21 Sep 2017 07:20:35 -0400 Subject: [PATCH 23/97] Fix filter-description plugin not showing button for 'bootbox' option (#565) The 'bootbox' option for the 'filter-description' plugin failed to re-show the button, once hidden. In my case, I selected a filter with a description field, pressed the down arrow key to select the next filter in the dropdown, which did not contain a description. I then pressed up arrow key to return to the previous filter with a description, but this time it did now show the filter-description button. I fixed the code to match the convention of the 'inline' and 'popover' options. --- src/plugins/filter-description/plugin.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/filter-description/plugin.js b/src/plugins/filter-description/plugin.js index 91762b6b..4525cbe0 100644 --- a/src/plugins/filter-description/plugin.js +++ b/src/plugins/filter-description/plugin.js @@ -96,6 +96,9 @@ QueryBuilder.define('filter-description', function(options) { bootbox.alert($b.data('description')); }); } + else { + $b.show(); + } $b.data('description', description); } From 33409b5cf9b0ae08dab63acc2762bcd0401b46d2 Mon Sep 17 00:00:00 2001 From: Damien Sorel Date: Thu, 12 Oct 2017 20:42:44 +0200 Subject: [PATCH 24/97] Update CDN links --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f62228aa..6798d48e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Bower version](https://img.shields.io/bower/v/jQuery-QueryBuilder.svg?style=flat-square)](http://querybuilder.js.org) [![npm version](https://img.shields.io/npm/v/jQuery-QueryBuilder.svg?style=flat-square)](https://www.npmjs.com/package/jQuery-QueryBuilder) -[![CDN](https://img.shields.io/badge/cdn-jsdelivr-%23EB4C36.svg?style=flat-square)](https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder/dist/) +[![jsDelivr CDN](https://data.jsdelivr.com/v1/package/npm/jQuery-QueryBuilder/badge)](https://www.jsdelivr.com/package/npm/jQuery-QueryBuilder) [![Build Status](https://img.shields.io/travis/mistic100/jQuery-QueryBuilder.svg?style=flat-square)](https://travis-ci.org/mistic100/jQuery-QueryBuilder) [![Coverage Status](https://img.shields.io/coveralls/mistic100/jQuery-QueryBuilder/master.svg?style=flat-square)](https://coveralls.io/r/mistic100/jQuery-QueryBuilder) @@ -37,8 +37,7 @@ $ npm install jQuery-QueryBuilder #### Via CDN -jQuery-QueryBuilder is available on [jsDelivr](https://cdn.jsdelivr.net/npm/jQuery-QueryBuilder/dist/) and [unpkg](https://unpkg.com/jQuery-QueryBuilder/dist/)) - +jQuery-QueryBuilder is available on [jsDelivr](https://www.jsdelivr.com/package/npm/jQuery-QueryBuilder). ### Dependencies * jQuery >= 1.10 * Bootstrap >= 3.1 (CSS only) From ff90ac8221c8ba81a5d48b19de65705209087a7a Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 11 Nov 2017 17:17:25 +0100 Subject: [PATCH 25/97] Fix #595 TypeError when calling getSQL with invalid rules --- Gruntfile.js | 2 +- src/plugins/mongodb-support/plugin.js | 4 ++++ src/plugins/sql-support/plugin.js | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index 218413d0..40cdd50a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -177,7 +177,7 @@ module.exports = function(grunt) { wrap: { js: { src: ['dist/js/query-builder.js'], - dest: '', + dest: 'dist/js/query-builder.js', options: { separator: '', wrapper: function() { diff --git a/src/plugins/mongodb-support/plugin.js b/src/plugins/mongodb-support/plugin.js index 93a17348..a6aebdc3 100644 --- a/src/plugins/mongodb-support/plugin.js +++ b/src/plugins/mongodb-support/plugin.js @@ -105,6 +105,10 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { getMongo: function(data) { data = (data === undefined) ? this.getRules() : data; + if (!data) { + return null; + } + var self = this; return (function parse(group) { diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index 6ef3bc56..b6751818 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -248,6 +248,11 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { */ getSQL: function(stmt, nl, data) { data = (data === undefined) ? this.getRules() : data; + + if (!data) { + return null; + } + nl = !!nl ? '\n' : ' '; var boolean_as_integer = this.getPluginOptions('sql-support', 'boolean_as_integer'); From 3cf90e79b4e43224d397029428f0f42ba8985f05 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 11 Nov 2017 17:54:54 +0100 Subject: [PATCH 26/97] Fix #579 Add "default_operator" to filters --- examples/index.html | 3 ++- src/core.js | 16 +++++++++++++++- tests/common.js | 3 ++- tests/data.module.js | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/examples/index.html b/examples/index.html index 369c9eda..b3cf989f 100644 --- a/examples/index.html +++ b/examples/index.html @@ -274,7 +274,8 @@

Output

2: 'warning', 5: 'success' }, - operators: ['in', 'not_in', 'equal', 'not_equal', 'is_null', 'is_not_null'] + operators: ['equal', 'not_equal', 'in', 'not_in', 'is_null', 'is_not_null'], + default_operator: 'in' }, /* * select diff --git a/src/core.js b/src/core.js index 764c8c6b..31964cc6 100644 --- a/src/core.js +++ b/src/core.js @@ -617,7 +617,20 @@ QueryBuilder.prototype.createRuleOperators = function(rule) { $operatorContainer.html($operatorSelect); // set the operator without triggering update event - rule.__.operator = operators[0]; + if (rule.filter.default_operator) { + rule.__.operator = operators.filter(function(operator) { + return operator.type === rule.filter.default_operator; + })[0]; + + if (!rule.__.operator) { + Utils.error('Config', 'Invalid operator {0}', rule.filter.default_operator); + } + } + else { + rule.__.operator = operators[0]; + } + + rule.$el.find(QueryBuilder.selectors.rule_operator).val(rule.operator.type); /** * After creating the dropdown for operators @@ -752,6 +765,7 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { */ this.trigger('afterUpdateRuleOperator', rule); + // FIXME is it necessary ? this.updateRuleValue(rule); }; diff --git a/tests/common.js b/tests/common.js index 91a3ffb5..89550f42 100644 --- a/tests/common.js +++ b/tests/common.js @@ -301,7 +301,8 @@ var basic_filters = [{ label: 'Age', type: 'integer', input: 'text', - value_separator: '|' + value_separator: '|', + default_operator: 'in' }]; var basic_rules = { diff --git a/tests/data.module.js b/tests/data.module.js index 358df511..ea381717 100644 --- a/tests/data.module.js +++ b/tests/data.module.js @@ -411,6 +411,23 @@ $(function() { ); }); + /** + * Test default operator + */ + QUnit.test('default operator', function(assert) { + $b.queryBuilder({ + filters: basic_filters + }); + + $('[name=builder_rule_0_filter]').val('age').trigger('change'); + + assert.equal( + $('[name=builder_rule_0_operator]').val(), + 'in', + 'Should set "age" operator to "in" by default' + ); + }); + /** * Test allow_invalid option */ From 6331d3ea61c5eb7c740be8f26f633cd12813c85b Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 11 Nov 2017 18:16:09 +0100 Subject: [PATCH 27/97] Fix #593 Add between/not_between validation --- src/data.js | 23 +++++++++++++++++++++++ src/i18n/en.json | 2 ++ src/i18n/fr.json | 2 ++ tests/data.module.js | 10 ++++++++++ 4 files changed, 37 insertions(+) diff --git a/src/data.js b/src/data.js index 1594f334..8d87848a 100644 --- a/src/data.js +++ b/src/data.js @@ -221,6 +221,29 @@ QueryBuilder.prototype._validateValue = function(rule, value) { } } + if ((rule.operator.type === 'between' || rule.operator.type === 'not_between') && value.length === 2) { + switch (QueryBuilder.types[filter.type]) { + case 'number': + if (value[0] > value[1]) { + result = ['number_between_invalid', value[0], value[1]]; + } + break; + + case 'datetime': + // we need MomentJS + if (validation.format) { + if (!('moment' in window)) { + Utils.error('MissingLibrary', 'MomentJS is required for Date/Time validation. Get it here http://momentjs.com'); + } + + if (moment(value[0], validation.format).isAfter(moment(value[1], validation.format))) { + result = ['datetime_between_invalid', value[0], value[1]]; + } + } + break; + } + } + return result; }; diff --git a/src/i18n/en.json b/src/i18n/en.json index a0e9fd12..41e48539 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -51,10 +51,12 @@ "number_exceed_min": "Must be greater than {0}", "number_exceed_max": "Must be lower than {0}", "number_wrong_step": "Must be a multiple of {0}", + "number_between_invalid": "Invalid values, {0} is greater than {1}", "datetime_empty": "Empty value", "datetime_invalid": "Invalid date format ({0})", "datetime_exceed_min": "Must be after {0}", "datetime_exceed_max": "Must be before {0}", + "datetime_between_invalid": "Invalid values, {0} isgreater than {1}", "boolean_not_valid": "Not a boolean", "operator_not_multiple": "Operator \"{1}\" cannot accept multiple values" } diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 56cbad52..dabacbfe 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -51,10 +51,12 @@ "number_exceed_min": "Doit être plus grand que {0}", "number_exceed_max": "Doit être plus petit que {0}", "number_wrong_step": "Doit être un multiple de {0}", + "number_between_invalid": "Valeurs invalides, {0} est plus grand que {1}", "datetime_empty": "Valeur vide", "datetime_invalid": "Fomat de date invalide ({0})", "datetime_exceed_min": "Doit être après {0}", "datetime_exceed_max": "Doit être avant {0}", + "datetime_between_invalid": "Valeurs invalides, {0} est plus grand que {1}", "boolean_not_valid": "N'est pas un booléen", "operator_not_multiple": "L'opérateur \"{1}\" ne peut utiliser plusieurs valeurs" } diff --git a/tests/data.module.js b/tests/data.module.js index ea381717..72de4539 100644 --- a/tests/data.module.js +++ b/tests/data.module.js @@ -170,6 +170,11 @@ $(function() { /number_wrong_step/ ); + assert.validationError($b, + { id: 'integer', operator: 'between', value: [5, 1] }, + /number_between_invalid/ + ); + assert.validationError($b, { id: 'date' }, /datetime_empty/ @@ -190,6 +195,11 @@ $(function() { /datetime_exceed_max/ ); + assert.validationError($b, + { id: 'date', operator: 'between', value: ['2015/01/01', '2014/01/01'] }, + /datetime_between_invalid/ + ); + assert.validationError($b, { id: 'boolean', value: 'oui' }, /boolean_not_valid/ From ef0b829e750dff5f7d8b70b409249713c031c1e4 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 11 Nov 2017 18:25:51 +0100 Subject: [PATCH 28/97] Fix #543 use "default_value" in setRules method --- examples/index.html | 2 +- src/core.js | 8 +------- src/public.js | 21 +++++++++++++-------- tests/data.module.js | 29 +++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/examples/index.html b/examples/index.html index b3cf989f..350b9896 100644 --- a/examples/index.html +++ b/examples/index.html @@ -546,7 +546,7 @@

Output

}, { id: 'coord', operator: 'equal', - value: 'B.3' + value: undefined // will use filter's default value }] }, { id: 'name', diff --git a/src/core.js b/src/core.js index 31964cc6..5036062f 100644 --- a/src/core.js +++ b/src/core.js @@ -618,13 +618,7 @@ QueryBuilder.prototype.createRuleOperators = function(rule) { // set the operator without triggering update event if (rule.filter.default_operator) { - rule.__.operator = operators.filter(function(operator) { - return operator.type === rule.filter.default_operator; - })[0]; - - if (!rule.__.operator) { - Utils.error('Config', 'Invalid operator {0}', rule.filter.default_operator); - } + rule.__.operator = this.getOperatorByType(rule.filter.default_operator); } else { rule.__.operator = operators[0]; diff --git a/src/public.js b/src/public.js index 610a4adf..14a16c60 100644 --- a/src/public.js +++ b/src/public.js @@ -410,17 +410,22 @@ QueryBuilder.prototype.setRules = function(data, options) { if (!item.empty) { model.filter = self.getFilterById(item.id, !options.allow_invalid); + } - if (model.filter) { - model.operator = self.getOperatorByType(item.operator, !options.allow_invalid); + if (model.filter) { + model.operator = self.getOperatorByType(item.operator, !options.allow_invalid); - if (!model.operator) { - model.operator = self.getOperators(model.filter)[0]; - } + if (!model.operator) { + model.operator = self.getOperators(model.filter)[0]; + } + } - if (model.operator && model.operator.nb_inputs !== 0 && item.value !== undefined) { - model.value = item.value; - } + if (model.operator && model.operator.nb_inputs !== 0) { + if (item.value !== undefined) { + model.value = item.value; + } + else if (model.filter.default_value !== undefined) { + model.value = model.filter.default_value; } } diff --git a/tests/data.module.js b/tests/data.module.js index 72de4539..d7f11838 100644 --- a/tests/data.module.js +++ b/tests/data.module.js @@ -517,6 +517,35 @@ $(function() { ); }); + QUnit.test('apply default value', function(assert) { + $b.queryBuilder({ + filters: [ + { + id: 'name', + default_value: 'Mistic' + } + ], + rules: [ + { + id: 'name' + } + ] + }); + + assert.rulesMatch( + $b.queryBuilder('getRules'), + { + condition: 'AND', + rules: [{ + id: 'name', + operator: 'equal', + value: 'Mistic' + }] + }, + 'Should have used the filter default value' + ); + }); + /** * Test allow_empty_value option */ From e1887ad2650531ff3c3a0263442a8d7259251582 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 11 Nov 2017 18:41:06 +0100 Subject: [PATCH 29/97] Fix #498 add "rulesChanged" event --- src/core.js | 21 +++++++++++++++++++++ src/plugins/change-filters/plugin.js | 2 ++ src/plugins/invert/plugin.js | 2 ++ src/plugins/not-group/plugin.js | 2 ++ src/plugins/sortable/plugin.js | 2 ++ src/public.js | 4 ++++ 6 files changed, 33 insertions(+) diff --git a/src/core.js b/src/core.js index 5036062f..dbc0656d 100644 --- a/src/core.js +++ b/src/core.js @@ -380,6 +380,13 @@ QueryBuilder.prototype.addGroup = function(parent, addRule, data, flags) { */ this.trigger('afterAddGroup', model); + /** + * After any change in the rules + * @event rulesChanged + * @memberof QueryBuilder + */ + this.trigger('rulesChanged'); + model.condition = this.settings.default_condition; if (addRule) { @@ -429,6 +436,8 @@ QueryBuilder.prototype.deleteGroup = function(group) { * @memberof QueryBuilder */ this.trigger('afterDeleteGroup'); + + this.trigger('rulesChanged'); } return del; @@ -454,6 +463,8 @@ QueryBuilder.prototype.updateGroupCondition = function(group) { * @param {Group} group */ this.trigger('afterUpdateGroupCondition', group); + + this.trigger('rulesChanged'); }; /** @@ -513,6 +524,8 @@ QueryBuilder.prototype.addRule = function(parent, data, flags) { */ this.trigger('afterAddRule', model); + this.trigger('rulesChanged'); + this.createRuleFilters(model); if (this.settings.default_filter || !this.settings.display_empty_filter) { @@ -565,6 +578,8 @@ QueryBuilder.prototype.deleteRule = function(rule) { */ this.trigger('afterDeleteRule'); + this.trigger('rulesChanged'); + return true; }; @@ -719,6 +734,8 @@ QueryBuilder.prototype.updateRuleFilter = function(rule, previousFilter) { * @param {Rule} rule */ this.trigger('afterUpdateRuleFilter', rule); + + this.trigger('rulesChanged'); }; /** @@ -759,6 +776,8 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { */ this.trigger('afterUpdateRuleOperator', rule); + this.trigger('rulesChanged'); + // FIXME is it necessary ? this.updateRuleValue(rule); }; @@ -781,6 +800,8 @@ QueryBuilder.prototype.updateRuleValue = function(rule) { * @param {Rule} rule */ this.trigger('afterUpdateRuleValue', rule); + + this.trigger('rulesChanged'); }; /** diff --git a/src/plugins/change-filters/plugin.js b/src/plugins/change-filters/plugin.js index 823edac1..f44934ab 100644 --- a/src/plugins/change-filters/plugin.js +++ b/src/plugins/change-filters/plugin.js @@ -59,6 +59,8 @@ QueryBuilder.extend(/** @lends module:plugins.ChangeFilters.prototype */ { function(rule) { if (rule.filter && filtersIds.indexOf(rule.filter.id) === -1) { rule.drop(); + + self.trigger('rulesChanged'); } else { self.createRuleFilters(rule); diff --git a/src/plugins/invert/plugin.js b/src/plugins/invert/plugin.js index 8928d4be..1b1cd686 100644 --- a/src/plugins/invert/plugin.js +++ b/src/plugins/invert/plugin.js @@ -147,6 +147,8 @@ QueryBuilder.extend(/** @lends module:plugins.Invert.prototype */ { * @param {object} options */ this.trigger('afterInvert', node, options); + + this.trigger('rulesChanged'); } } }); diff --git a/src/plugins/not-group/plugin.js b/src/plugins/not-group/plugin.js index da6f98b0..8d94b5fc 100644 --- a/src/plugins/not-group/plugin.js +++ b/src/plugins/not-group/plugin.js @@ -128,5 +128,7 @@ QueryBuilder.extend(/** @lends module:plugins.NotGroup.prototype */ { * @param {Group} group */ this.trigger('afterUpdateGroupNot', group); + + this.trigger('rulesChanged'); } }); diff --git a/src/plugins/sortable/plugin.js b/src/plugins/sortable/plugin.js index 83f0b4df..4cf3cf1a 100644 --- a/src/plugins/sortable/plugin.js +++ b/src/plugins/sortable/plugin.js @@ -92,6 +92,8 @@ QueryBuilder.define('sortable', function(options) { * @param {Node} node */ self.trigger('afterMove', src); + + self.trigger('rulesChanged'); } }); } diff --git a/src/public.js b/src/public.js index 14a16c60..d0bbf35a 100644 --- a/src/public.js +++ b/src/public.js @@ -54,6 +54,8 @@ QueryBuilder.prototype.reset = function() { * @memberof QueryBuilder */ this.trigger('afterReset'); + + this.trigger('rulesChanged'); }; /** @@ -86,6 +88,8 @@ QueryBuilder.prototype.clear = function() { * @memberof QueryBuilder */ this.trigger('afterClear'); + + this.trigger('rulesChanged'); }; /** From fa0be59e97aa73a2fd6769458590c7de7ca181f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Charmu=C5=82owicz?= Date: Thu, 10 Aug 2017 15:03:31 +0200 Subject: [PATCH 30/97] Pass previous operator to afterUpdateRuleOperator event --- src/core.js | 25 ++++++++++++++++--------- src/i18n/pl.json | 4 ++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/core.js b/src/core.js index dbc0656d..dddabca4 100644 --- a/src/core.js +++ b/src/core.js @@ -282,7 +282,7 @@ QueryBuilder.prototype.bindEvents = function() { break; case 'value': - self.updateRuleValue(node); + self.updateRuleValue(node, oldValue); break; } } @@ -297,7 +297,7 @@ QueryBuilder.prototype.bindEvents = function() { break; case 'condition': - self.updateGroupCondition(node); + self.updateGroupCondition(node, oldValue); break; } } @@ -446,10 +446,11 @@ QueryBuilder.prototype.deleteGroup = function(group) { /** * Performs actions when a group's condition changes * @param {Group} group + * @param {object} previousCondition * @fires QueryBuilder.afterUpdateGroupCondition * @private */ -QueryBuilder.prototype.updateGroupCondition = function(group) { +QueryBuilder.prototype.updateGroupCondition = function(group, previousCondition) { group.$el.find('>' + QueryBuilder.selectors.group_condition).each(function() { var $this = $(this); $this.prop('checked', $this.val() === group.condition); @@ -461,8 +462,9 @@ QueryBuilder.prototype.updateGroupCondition = function(group) { * @event afterUpdateGroupCondition * @memberof QueryBuilder * @param {Group} group + * @param {object} previousCondition */ - this.trigger('afterUpdateGroupCondition', group); + this.trigger('afterUpdateGroupCondition', group, previousCondition); this.trigger('rulesChanged'); }; @@ -732,8 +734,9 @@ QueryBuilder.prototype.updateRuleFilter = function(rule, previousFilter) { * @event afterUpdateRuleFilter * @memberof QueryBuilder * @param {Rule} rule + * @param {object} previousFilter */ - this.trigger('afterUpdateRuleFilter', rule); + this.trigger('afterUpdateRuleFilter', rule, previousFilter); this.trigger('rulesChanged'); }; @@ -747,6 +750,7 @@ QueryBuilder.prototype.updateRuleFilter = function(rule, previousFilter) { */ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { var $valueContainer = rule.$el.find(QueryBuilder.selectors.value_container); + var ruleValue = rule.value; if (!rule.operator || rule.operator.nb_inputs === 0) { $valueContainer.hide(); @@ -773,22 +777,24 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { * @event afterUpdateRuleOperator * @memberof QueryBuilder * @param {Rule} rule + * @param {object} previousOperator */ - this.trigger('afterUpdateRuleOperator', rule); + this.trigger('afterUpdateRuleOperator', rule, previousOperator); this.trigger('rulesChanged'); // FIXME is it necessary ? - this.updateRuleValue(rule); + this.updateRuleValue(rule, ruleValue); }; /** * Performs actions when rule's value changes * @param {Rule} rule + * @param {object} previousValue * @fires QueryBuilder.afterUpdateRuleValue * @private */ -QueryBuilder.prototype.updateRuleValue = function(rule) { +QueryBuilder.prototype.updateRuleValue = function(rule, previousValue) { if (!rule._updating_value) { this.setRuleInputValue(rule, rule.value); } @@ -798,8 +804,9 @@ QueryBuilder.prototype.updateRuleValue = function(rule) { * @event afterUpdateRuleValue * @memberof QueryBuilder * @param {Rule} rule + * @param {*} previousValue */ - this.trigger('afterUpdateRuleValue', rule); + this.trigger('afterUpdateRuleValue', rule, previousValue); this.trigger('rulesChanged'); }; diff --git a/src/i18n/pl.json b/src/i18n/pl.json index c27069f4..9cddba15 100644 --- a/src/i18n/pl.json +++ b/src/i18n/pl.json @@ -8,8 +8,8 @@ "delete_group": "Usuń", "conditions": { - "AND": "AND", - "OR": "OR" + "AND": "ORAZ", + "OR": "LUB" }, "operators": { From 5b5476888e8c1f25d52263ed409e7e4c1941b67d Mon Sep 17 00:00:00 2001 From: Damien Sorel Date: Mon, 20 Nov 2017 22:27:48 +0100 Subject: [PATCH 31/97] Typo in english file --- src/i18n/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/en.json b/src/i18n/en.json index 41e48539..15bbb139 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -56,8 +56,8 @@ "datetime_invalid": "Invalid date format ({0})", "datetime_exceed_min": "Must be after {0}", "datetime_exceed_max": "Must be before {0}", - "datetime_between_invalid": "Invalid values, {0} isgreater than {1}", + "datetime_between_invalid": "Invalid values, {0} is greater than {1}", "boolean_not_valid": "Not a boolean", "operator_not_multiple": "Operator \"{1}\" cannot accept multiple values" } -} \ No newline at end of file +} From 6372712194d7d59df2f512bca7e7cac9a6acc936 Mon Sep 17 00:00:00 2001 From: ocobacho Date: Mon, 20 Nov 2017 17:27:45 -0500 Subject: [PATCH 32/97] Update es.json (#598) --- src/i18n/es.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/es.json b/src/i18n/es.json index 3db3e098..3374aae1 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -22,6 +22,7 @@ "greater": "mayor", "greater_or_equal": "mayor o igual", "between": "entre", + "not_between": "no está entre", "begins_with": "empieza por", "not_begins_with": "no empieza por", "contains": "contiene", @@ -52,6 +53,11 @@ "number_wrong_step": "Debe ser múltiplo de {0}", "datetime_invalid": "Formato de fecha inválido ({0})", "datetime_exceed_min": "Debe ser posterior a {0}", - "datetime_exceed_max": "Debe ser anterior a {0}" + "datetime_exceed_max": "Debe ser anterior a {0}", + "number_between_invalid": "Valores Inválidos, {0} es mayor que {1}", + "datetime_empty": "Campo vacio", + "datetime_between_invalid": "Valores Inválidos, {0} es mayor que {1}", + "boolean_not_valid": "No es booleano", + "operator_not_multiple": "El operador \"{1}\" no puede aceptar valores multiples" } } From 050ac0b47341f53f49e368e6e035986fbd165c7f Mon Sep 17 00:00:00 2001 From: Yuksel Beyti Date: Wed, 22 Nov 2017 22:32:59 +0100 Subject: [PATCH 33/97] Add turkish translations for between/not_between validation (#600) --- src/i18n/tr.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/i18n/tr.json b/src/i18n/tr.json index 2b2d0295..03ce42b5 100644 --- a/src/i18n/tr.json +++ b/src/i18n/tr.json @@ -51,10 +51,12 @@ "number_exceed_min": "Sayı {0}'den/dan daha büyük olmalı", "number_exceed_max": "Sayı {0}'den/dan daha küçük olmalı", "number_wrong_step": "{0} veya katı olmalı", + "number_between_invalid": "Geçersiz değerler, {0} değeri {1} değerinden büyük", "datetime_empty": "Tarih Seçilmemiş", "datetime_invalid": "Uygun olmayan tarih formatı ({0})", "datetime_exceed_min": "{0} Tarihinden daha sonrası olmalı.", "datetime_exceed_max": "{0} Tarihinden daha öncesi olmalı.", + "datetime_between_invalid": "Geçersiz değerler, {0} değeri {1} değerinden büyük", "boolean_not_valid": "Değer Doğru/Yanlış(bool) olmalı", "operator_not_multiple": "Operatör \"{1}\" birden fazla değer kabul etmiyor" } From 1084cb638eb5ac6c80569128c2c75984f8cd5f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Mor?= Date: Tue, 12 Dec 2017 19:33:24 +0100 Subject: [PATCH 34/97] Use verbs for operators, for consistency (#611) --- src/i18n/fr.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/i18n/fr.json b/src/i18n/fr.json index dabacbfe..33b27bb6 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -13,14 +13,14 @@ }, "operators": { - "equal": "égal", - "not_equal": "non égal", - "in": "dans", - "not_in": "pas dans", - "less": "inférieur", - "less_or_equal": "inférieur ou égal", - "greater": "supérieur", - "greater_or_equal": "supérieur ou égal", + "equal": "est égal à", + "not_equal": "n'est pas égal à", + "in": "est compris dans", + "not_in": "n'est pas compris dans", + "less": "est inférieur à", + "less_or_equal": "est inférieur ou égal à", + "greater": "est supérieur à", + "greater_or_equal": "est supérieur ou égal à", "between": "est entre", "not_between": "n'est pas entre", "begins_with": "commence par", @@ -60,4 +60,4 @@ "boolean_not_valid": "N'est pas un booléen", "operator_not_multiple": "L'opérateur \"{1}\" ne peut utiliser plusieurs valeurs" } -} \ No newline at end of file +} From efd3b4fbf428fca3799edcafffe6b9ff6d765ced Mon Sep 17 00:00:00 2001 From: Damien SOREL Date: Fri, 11 Aug 2017 14:41:36 +0200 Subject: [PATCH 35/97] Fix #544 Always convert int, float and bool values --- src/core.js | 8 ++++---- src/data.js | 23 ++++++++++++++++------- src/plugins/mongodb-support/plugin.js | 9 ++------- src/plugins/sql-support/plugin.js | 10 ++++++---- src/utils.js | 27 ++++++++++++++++++++------- tests/data.module.js | 2 +- tests/plugins.mongo-support.module.js | 12 ++++++------ tests/plugins.sql-support.module.js | 12 ++++++------ tests/utils.module.js | 10 ---------- 9 files changed, 61 insertions(+), 52 deletions(-) diff --git a/src/core.js b/src/core.js index dddabca4..dde71c7e 100644 --- a/src/core.js +++ b/src/core.js @@ -682,7 +682,7 @@ QueryBuilder.prototype.createRuleInput = function(rule) { $valueContainer.show(); $inputs.on('change ' + (filter.input_event || ''), function() { - if (!this._updating_input) { + if (!rule._updating_input) { rule._updating_value = true; rule.value = self.getRuleInputValue(rule); rule._updating_value = false; @@ -770,6 +770,9 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { if (rule.operator) { rule.$el.find(QueryBuilder.selectors.rule_operator).val(rule.operator.type); + + // refresh value if the format changed for this operator + rule.__.value = this.getRuleInputValue(rule); } /** @@ -782,9 +785,6 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { this.trigger('afterUpdateRuleOperator', rule, previousOperator); this.trigger('rulesChanged'); - - // FIXME is it necessary ? - this.updateRuleValue(rule, ruleValue); }; /** diff --git a/src/data.js b/src/data.js index 8d87848a..8f6e1dc1 100644 --- a/src/data.js +++ b/src/data.js @@ -417,11 +417,20 @@ QueryBuilder.prototype.getRuleInputValue = function(rule) { } } - if (operator.multiple && filter.value_separator) { - value = value.map(function(val) { - return val.split(filter.value_separator); - }); - } + value = value.map(function(val) { + if (operator.multiple && filter.value_separator && typeof val == 'string') { + val = val.split(filter.value_separator); + } + + if ($.isArray(val)) { + return val.map(function(subval) { + return Utils.changeType(subval, filter.type); + }); + } + else { + return Utils.changeType(val, filter.type); + } + }); if (operator.nb_inputs === 1) { value = value[0]; @@ -458,7 +467,7 @@ QueryBuilder.prototype.setRuleInputValue = function(rule, value) { return; } - this._updating_input = true; + rule._updating_input = true; if (filter.valueSetter) { filter.valueSetter.call(this, rule, value); @@ -499,7 +508,7 @@ QueryBuilder.prototype.setRuleInputValue = function(rule, value) { } } - this._updating_input = false; + rule._updating_input = false; }; /** diff --git a/src/plugins/mongodb-support/plugin.js b/src/plugins/mongodb-support/plugin.js index a6aebdc3..6b0e2b49 100644 --- a/src/plugins/mongodb-support/plugin.js +++ b/src/plugins/mongodb-support/plugin.js @@ -132,7 +132,6 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { else { var mdb = self.settings.mongoOperators[rule.operator]; var ope = self.getOperatorByType(rule.operator); - var values = []; if (mdb === undefined) { Utils.error('UndefinedMongoOperator', 'Unknown MongoDB operation for operator "{0}"', rule.operator); @@ -142,10 +141,6 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { if (!(rule.value instanceof Array)) { rule.value = [rule.value]; } - - rule.value.forEach(function(v) { - values.push(Utils.changeType(v, rule.type, false)); - }); } /** @@ -159,7 +154,7 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { var field = self.change('getMongoDBField', rule.field, rule); var ruleExpression = {}; - ruleExpression[field] = mdb.call(self, values); + ruleExpression[field] = mdb.call(self, rule.value); /** * Modifies the MongoDB expression generated for a rul @@ -171,7 +166,7 @@ QueryBuilder.extend(/** @lends module:plugins.MongoDbSupport.prototype */ { * @param {function} valueWrapper - function that takes the value and adds the operator * @returns {object} */ - parts.push(self.change('ruleToMongo', ruleExpression, rule, values, mdb)); + parts.push(self.change('ruleToMongo', ruleExpression, rule, rule.value, mdb)); } }); diff --git a/src/plugins/sql-support/plugin.js b/src/plugins/sql-support/plugin.js index b6751818..98cd1ad2 100644 --- a/src/plugins/sql-support/plugin.js +++ b/src/plugins/sql-support/plugin.js @@ -256,7 +256,9 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { nl = !!nl ? '\n' : ' '; var boolean_as_integer = this.getPluginOptions('sql-support', 'boolean_as_integer'); - if (stmt === true) stmt = 'question_mark'; + if (stmt === true) { + stmt = 'question_mark'; + } if (typeof stmt == 'string') { var config = getStmtConfig(stmt); stmt = this.settings.sqlStatements[config[1]](config[2]); @@ -301,10 +303,10 @@ QueryBuilder.extend(/** @lends module:plugins.SqlSupport.prototype */ { value += sql.sep; } - if (rule.type == 'integer' || rule.type == 'double' || rule.type == 'boolean') { - v = Utils.changeType(v, rule.type, boolean_as_integer); + if (rule.type == 'boolean' && boolean_as_integer) { + v = v ? 1 : 0; } - else if (!stmt) { + else if (!stmt && rule.type !== 'integer' && rule.type !== 'double' && rule.type !== 'boolean') { v = Utils.escapeString(v); } diff --git a/src/utils.js b/src/utils.js index 94af0956..2489d0d4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -103,17 +103,30 @@ Utils.error = function() { * Changes the type of a value to int, float or bool * @param {*} value * @param {string} type - 'integer', 'double', 'boolean' or anything else (passthrough) - * @param {boolean} [boolAsInt=false] - return 0 or 1 for booleans * @returns {*} */ -Utils.changeType = function(value, type, boolAsInt) { +Utils.changeType = function(value, type) { + if (value === '' || value === undefined) { + return undefined; + } + switch (type) { - // @formatter:off - case 'integer': return parseInt(value); - case 'double': return parseFloat(value); + // @formatter:off + case 'integer': + if (typeof value === 'string' && !/^-?\d+$/.test(value)) { + return value; + } + return parseInt(value); + case 'double': + if (typeof value === 'string' && !/^-?\d+\.?\d*$/.test(value)) { + return value; + } + return parseFloat(value); case 'boolean': - var bool = value.trim().toLowerCase() === 'true' || value.trim() === '1' || value === 1; - return boolAsInt ? (bool ? 1 : 0) : bool; + if (typeof value === 'string' && !/^(0|1|true|false){1}$/i.test(value)) { + return value; + } + return value === true || value === 1 || value.toLowerCase() === 'true' || value === '1'; default: return value; // @formatter:on } diff --git a/tests/data.module.js b/tests/data.module.js index d7f11838..41e7b48d 100644 --- a/tests/data.module.js +++ b/tests/data.module.js @@ -414,7 +414,7 @@ $(function() { }, { id: 'age', operator: 'not_in', - value: ['16', '17', '18'] + value: [16, 17, 18] }] }, 'Should split values on comma and pipe' diff --git a/tests/plugins.mongo-support.module.js b/tests/plugins.mongo-support.module.js index 73ff20f9..61ea36d8 100644 --- a/tests/plugins.mongo-support.module.js +++ b/tests/plugins.mongo-support.module.js @@ -126,27 +126,27 @@ $(function(){ }, { id: 'price', operator: 'less', - value: '5' + value: 5 }, { id: 'price', operator: 'less_or_equal', - value: '5' + value: 5 }, { id: 'price', operator: 'greater', - value: '4' + value: 4 }, { id: 'price', operator: 'greater_or_equal', - value: '4' + value: 4 }, { id: 'price', operator: 'between', - value: ['4','5'] + value: [4,5] }, { id: 'price', operator: 'not_between', - value: ['4','5'] + value: [4,5] }, { id: 'name', operator: 'begins_with', diff --git a/tests/plugins.sql-support.module.js b/tests/plugins.sql-support.module.js index 7d2da34e..46443b37 100644 --- a/tests/plugins.sql-support.module.js +++ b/tests/plugins.sql-support.module.js @@ -406,27 +406,27 @@ $(function() { }, { id: 'price', operator: 'less', - value: '5' + value: 5 }, { id: 'price', operator: 'less_or_equal', - value: '5' + value: 5 }, { id: 'price', operator: 'greater', - value: '4' + value: 4 }, { id: 'price', operator: 'greater_or_equal', - value: '4' + value: 4 }, { id: 'price', operator: 'between', - value: ['4', '5'] + value: [4,5] }, { id: 'price', operator: 'not_between', - value: ['4', '5'] + value: [4,5] }, { id: 'name', operator: 'begins_with', diff --git a/tests/utils.module.js b/tests/utils.module.js index 57a2018a..91830280 100644 --- a/tests/utils.module.js +++ b/tests/utils.module.js @@ -95,11 +95,6 @@ $(function () { '"10" should be parsed as integer' ); - assert.ok( - Utils.changeType('10.5', 'integer') === 10, - '"10.5" should be parsed as integer' - ); - assert.ok( Utils.changeType('10.5', 'double') === 10.5, '"10.5" should be parsed as double' @@ -109,11 +104,6 @@ $(function () { Utils.changeType('true', 'boolean') === true, '"true" should be parsed as boolean' ); - - assert.ok( - Utils.changeType('false', 'boolean', true) === 0, - '"false" should be parsed as integer' - ); }); /** From 43c85fbf5c3bc6c9db558139637bd86cf985f965 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 16 Dec 2017 17:38:13 +0100 Subject: [PATCH 36/97] Fix #490 Generate valid HTML Replaced ul/li/dl/dd/dt by divs --- src/template.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/template.js b/src/template.js index 40b52ce1..41f7dd3a 100644 --- a/src/template.js +++ b/src/template.js @@ -1,6 +1,6 @@ QueryBuilder.templates.group = '\ -
\ -
\ +
\ +
\
\
\ -
\ -
    \ -
    \ -
    '; + \ +
    \ +
    \ +
    \ +'; QueryBuilder.templates.rule = '\ -
  • \ +
    \
    \
    \
  • '; +'; QueryBuilder.templates.filterSelect = '\ {{ var optgroup = null; }} \ From 5df591a0481ded540e48684d7004717dfcdd25ef Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 16 Dec 2017 17:43:02 +0100 Subject: [PATCH 37/97] Close #537 Update to interact 1.3 --- bower.json | 2 +- examples/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bower.json b/bower.json index 8c6ce3a3..ab90c4d2 100644 --- a/bower.json +++ b/bower.json @@ -27,7 +27,7 @@ "awesome-bootstrap-checkbox": "^0.3.0", "sql-parser": "^1.1.0", "bind-polyfill": "~1.0.0", - "interact": "^1.2.6" + "interact": "^1.3.2" }, "keywords": [ "jquery", diff --git a/examples/index.html b/examples/index.html index 350b9896..29730f38 100644 --- a/examples/index.html +++ b/examples/index.html @@ -122,7 +122,7 @@

    Output

    - + From f66174a0980cf13734849a4efb95978b54438289 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sun, 17 Dec 2017 15:49:48 +0100 Subject: [PATCH 38/97] Fix #604 Use "css" instead of "show" Prevents elements for having display: block when they souldn't --- src/core.js | 5 ++--- src/plugins/filter-description/plugin.js | 6 +++--- src/plugins/sortable/plugin.js | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/core.js b/src/core.js index dde71c7e..1b86e09f 100644 --- a/src/core.js +++ b/src/core.js @@ -679,7 +679,7 @@ QueryBuilder.prototype.createRuleInput = function(rule) { $inputs = $inputs.add($ruleInput); } - $valueContainer.show(); + $valueContainer.css('display', ''); $inputs.on('change ' + (filter.input_event || ''), function() { if (!rule._updating_input) { @@ -750,7 +750,6 @@ QueryBuilder.prototype.updateRuleFilter = function(rule, previousFilter) { */ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { var $valueContainer = rule.$el.find(QueryBuilder.selectors.value_container); - var ruleValue = rule.value; if (!rule.operator || rule.operator.nb_inputs === 0) { $valueContainer.hide(); @@ -758,7 +757,7 @@ QueryBuilder.prototype.updateRuleOperator = function(rule, previousOperator) { rule.__.value = undefined; } else { - $valueContainer.show(); + $valueContainer.css('display', ''); if ($valueContainer.is(':empty') || !previousOperator || rule.operator.nb_inputs !== previousOperator.nb_inputs || diff --git a/src/plugins/filter-description/plugin.js b/src/plugins/filter-description/plugin.js index 4525cbe0..bbe58fcb 100644 --- a/src/plugins/filter-description/plugin.js +++ b/src/plugins/filter-description/plugin.js @@ -23,7 +23,7 @@ QueryBuilder.define('filter-description', function(options) { $p.appendTo(rule.$el); } else { - $p.show(); + $p.css('display', ''); } $p.html(' ' + description); @@ -63,7 +63,7 @@ QueryBuilder.define('filter-description', function(options) { }); } else { - $b.show(); + $b.css('display', ''); } $b.data('bs.popover').options.content = description; @@ -97,7 +97,7 @@ QueryBuilder.define('filter-description', function(options) { }); } else { - $b.show(); + $b.css('display', ''); } $b.data('description', description); diff --git a/src/plugins/sortable/plugin.js b/src/plugins/sortable/plugin.js index 4cf3cf1a..07fe8416 100644 --- a/src/plugins/sortable/plugin.js +++ b/src/plugins/sortable/plugin.js @@ -83,7 +83,7 @@ QueryBuilder.define('sortable', function(options) { placeholder = undefined; // show element - src.$el.show(); + src.$el.css('display', ''); /** * After a node has been moved with {@link module:plugins.Sortable} From 51fceae78075890e99532db9a8a52deb18f8ac96 Mon Sep 17 00:00:00 2001 From: aalpgiray Date: Fri, 5 Jan 2018 11:05:47 +0300 Subject: [PATCH 39/97] Update Turkish translation (#622) --- src/i18n/tr.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/i18n/tr.json b/src/i18n/tr.json index 03ce42b5..25ecbf78 100644 --- a/src/i18n/tr.json +++ b/src/i18n/tr.json @@ -38,15 +38,15 @@ "errors": { "no_filter": "Bir filtre seçili değil", "empty_group": "Grup bir eleman içermiyor", - "radio_empty": "seçim yapılmalı", - "checkbox_empty": "seçim yapılmalı", - "select_empty": "seçim yapılmalı", + "radio_empty": "Seçim yapılmalı", + "checkbox_empty": "Seçim yapılmalı", + "select_empty": "Seçim yapılmalı", "string_empty": "Bir metin girilmeli", "string_exceed_min_length": "En az {0} karakter girilmeli", "string_exceed_max_length": "En fazla {0} karakter girilebilir", "string_invalid_format": "Uyumsuz format ({0})", "number_nan": "Sayı değil", - "number_not_integer": "Tam sayı değilr", + "number_not_integer": "Tam sayı değil", "number_not_double": "Ondalıklı sayı değil", "number_exceed_min": "Sayı {0}'den/dan daha büyük olmalı", "number_exceed_max": "Sayı {0}'den/dan daha küçük olmalı", From 7f25bb0d10def4c5d6b86bc63466ada97856f270 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Wed, 10 Jan 2018 21:05:21 +0100 Subject: [PATCH 40/97] Fix #626 Add "disable_template" option for plugins invert, not-group, sortable --- src/plugins/invert/plugin.js | 31 +++++++++++++++++++++---------- src/plugins/not-group/plugin.js | 23 +++++++++++++---------- src/plugins/sortable/plugin.js | 27 +++++++++++++++------------ tests/index.html | 1 + tests/plugins-gui.module.js | 31 +++++++++++++++++++++++++++++++ tests/plugins.module.js | 15 +++++++++++++++ tests/plugins.not-group.module.js | 15 +++++++++++++++ 7 files changed, 111 insertions(+), 32 deletions(-) diff --git a/src/plugins/invert/plugin.js b/src/plugins/invert/plugin.js index 1b1cd686..6b77e2fd 100644 --- a/src/plugins/invert/plugin.js +++ b/src/plugins/invert/plugin.js @@ -29,25 +29,36 @@ QueryBuilder.define('invert', function(options) { }); // Modify templates - this.on('getGroupTemplate.filter', function(h, level) { - var $h = $(h.value); - $h.find(Selectors.condition_container).after(''); - h.value = $h.prop('outerHTML'); - }); - - if (options.display_rules_button && options.invert_rules) { - this.on('getRuleTemplate.filter', function(h) { + if (!options.disable_template) { + this.on('getGroupTemplate.filter', function(h) { var $h = $(h.value); - $h.find(Selectors.rule_actions).prepend(''); + $h.find(Selectors.condition_container).after( + '' + ); h.value = $h.prop('outerHTML'); }); + + if (options.display_rules_button && options.invert_rules) { + this.on('getRuleTemplate.filter', function(h) { + var $h = $(h.value); + $h.find(Selectors.rule_actions).prepend( + '' + ); + h.value = $h.prop('outerHTML'); + }); + } } }, { icon: 'glyphicon glyphicon-random', recursive: true, invert_rules: true, display_rules_button: false, - silent_fail: false + silent_fail: false, + disable_template: false }); QueryBuilder.defaults({ diff --git a/src/plugins/not-group/plugin.js b/src/plugins/not-group/plugin.js index 8d94b5fc..458a049b 100644 --- a/src/plugins/not-group/plugin.js +++ b/src/plugins/not-group/plugin.js @@ -30,15 +30,17 @@ QueryBuilder.define('not-group', function(options) { }); // Modify templates - this.on('getGroupTemplate.filter', function(h, level) { - var $h = $(h.value); - $h.find(QueryBuilder.selectors.condition_container).prepend( - '' - ); - h.value = $h.prop('outerHTML'); - }); + if (!options.disable_template) { + this.on('getGroupTemplate.filter', function(h) { + var $h = $(h.value); + $h.find(QueryBuilder.selectors.condition_container).prepend( + '' + ); + h.value = $h.prop('outerHTML'); + }); + } // Export "not" to JSON this.on('groupToJson.filter', function(e, group) { @@ -94,7 +96,8 @@ QueryBuilder.define('not-group', function(options) { }); }, { icon_unchecked: 'glyphicon glyphicon-unchecked', - icon_checked: 'glyphicon glyphicon-check' + icon_checked: 'glyphicon glyphicon-check', + disable_template: false }); /** diff --git a/src/plugins/sortable/plugin.js b/src/plugins/sortable/plugin.js index 07fe8416..f28f5213 100644 --- a/src/plugins/sortable/plugin.js +++ b/src/plugins/sortable/plugin.js @@ -146,23 +146,26 @@ QueryBuilder.define('sortable', function(options) { }); // Modify templates - this.on('getGroupTemplate.filter', function(h, level) { - if (level > 1) { + if (!options.disable_template) { + this.on('getGroupTemplate.filter', function(h, level) { + if (level > 1) { + var $h = $(h.value); + $h.find(QueryBuilder.selectors.condition_container).after('
    '); + h.value = $h.prop('outerHTML'); + } + }); + + this.on('getRuleTemplate.filter', function(h) { var $h = $(h.value); - $h.find(QueryBuilder.selectors.condition_container).after('
    '); + $h.find(QueryBuilder.selectors.rule_header).after('
    '); h.value = $h.prop('outerHTML'); - } - }); - - this.on('getRuleTemplate.filter', function(h) { - var $h = $(h.value); - $h.find(QueryBuilder.selectors.rule_header).after('
    '); - h.value = $h.prop('outerHTML'); - }); + }); + } }, { inherit_no_sortable: true, inherit_no_drop: true, - icon: 'glyphicon glyphicon-sort' + icon: 'glyphicon glyphicon-sort', + disable_template: false }); QueryBuilder.selectors.rule_and_group_containers = QueryBuilder.selectors.rule_container + ', ' + QueryBuilder.selectors.group_container; diff --git a/tests/index.html b/tests/index.html index 3af96d4d..43b6b05f 100644 --- a/tests/index.html +++ b/tests/index.html @@ -27,6 +27,7 @@ + diff --git a/tests/plugins-gui.module.js b/tests/plugins-gui.module.js index aefd2743..85f9a7bd 100644 --- a/tests/plugins-gui.module.js +++ b/tests/plugins-gui.module.js @@ -203,4 +203,35 @@ $(function(){ 'Rule should contain a new button enabled with Bootbox' ); }); + + /** + * Test sortable + */ + QUnit.test('sortable', function(assert) { + $b.queryBuilder({ + filters: basic_filters, + rules: basic_rules, + plugins: ['sortable'] + }); + + assert.ok( + $b.find('.drag-handle').length > 0, + 'Should add the drag handles' + ); + + $b.queryBuilder('destroy'); + + $b.queryBuilder({ + plugins: { + 'sortable': {disable_template: true} + }, + filters: basic_filters, + rules: basic_rules + }); + + assert.ok( + $b.find('.drag-handle').length === 0, + 'Should not have added the handles with disable_template=true' + ); + }); }); diff --git a/tests/plugins.module.js b/tests/plugins.module.js index 110c1baf..c0b4fbf6 100644 --- a/tests/plugins.module.js +++ b/tests/plugins.module.js @@ -138,6 +138,21 @@ $(function(){ }, 'Should have inverted all conditions and operators' ); + + $b.queryBuilder('destroy'); + + $b.queryBuilder({ + plugins: { + invert: {disable_template: true} + }, + filters: basic_filters, + rules: basic_rules + }); + + assert.ok( + $b.find('[data-invert="group"]').length === 0, + 'Should not have added the button with disable_template=true' + ); }); /** diff --git a/tests/plugins.not-group.module.js b/tests/plugins.not-group.module.js index 3d006723..baa03e0f 100644 --- a/tests/plugins.not-group.module.js +++ b/tests/plugins.not-group.module.js @@ -30,6 +30,21 @@ $(function () { $b.queryBuilder('getRules').not, 'The root json should have "not" flag set to true' ); + + $b.queryBuilder('destroy'); + + $b.queryBuilder({ + plugins: { + 'not-group': {disable_template: true} + }, + filters: basic_filters, + rules: basic_rules + }); + + assert.ok( + $b.find('[data-not="group"]').length === 0, + 'Should not have added the button with disable_template=true' + ); }); QUnit.test('SQL export', function (assert) { From 24d7af1a20302b52dab5e604140d3b442056b975 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Wed, 7 Feb 2018 18:24:39 +0100 Subject: [PATCH 41/97] Update contributing and PR template --- .github/CONTRIBUTING.md | 2 ++ .github/PULL_REQUEST_TEMPLATE.md | 1 + 2 files changed, 3 insertions(+) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index fe882f7e..be3320fd 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -3,6 +3,8 @@ ## Work on `dev` Any merge request should be created from and issued to the `dev` branch. +Do not add the `dist` files to your pull request. The directory is ignored for a reason: it is generated and pushed only when doing a release on `master`. + ## Core vs Plugins I want to keep the core clean of extra (and certainly awesome) functionalities. That includes, but is not limited to, export/import plugins, visual aids, etc. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 25399e11..7fe8317d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,6 +2,7 @@ - [ ] I read the [guidelines for contributing](https://github.com/mistic100/jQuery-QueryBuilder/blob/master/.github/CONTRIBUTING.md) - [ ] I created my branch from `dev` and I am issuing the PR to `dev` +- [ ] I didn't pushed the `dist` directory - [ ] Unit tests are OK - [ ] If it's a new feature, I added the necessary unit tests - [ ] If it's a new language, I filled the `__locale` and `__author` fields From bd507c4e16f4c8da29e97a5a29c506ecacbec927 Mon Sep 17 00:00:00 2001 From: Premith Date: Fri, 2 Mar 2018 00:38:58 +0530 Subject: [PATCH 42/97] Add plugin based on Chosen for dropdowns (#643) --- bower.json | 3 +- examples/bower.json | 2 +- examples/index.html | 8 +++-- src/plugins/chosen-selectpicker/plugin.js | 42 +++++++++++++++++++++++ tests/index.html | 3 ++ tests/plugins-gui.module.js | 17 +++++++++ 6 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 src/plugins/chosen-selectpicker/plugin.js diff --git a/bower.json b/bower.json index ab90c4d2..3df17779 100644 --- a/bower.json +++ b/bower.json @@ -27,7 +27,8 @@ "awesome-bootstrap-checkbox": "^0.3.0", "sql-parser": "^1.1.0", "bind-polyfill": "~1.0.0", - "interact": "^1.3.2" + "interact": "^1.3.2", + "chosen": "^1.8.3" }, "keywords": [ "jquery", diff --git a/examples/bower.json b/examples/bower.json index 85233d7e..7b844df2 100644 --- a/examples/bower.json +++ b/examples/bower.json @@ -1,6 +1,6 @@ { "name": "jQuery-QueryBuilder-example", - "dependencies" : { + "dependencies": { "seiyria-bootstrap-slider": "latest", "bootswatch-dist": "#slate", "selectize": "latest" diff --git a/examples/index.html b/examples/index.html index 29730f38..bbfbe7b7 100644 --- a/examples/index.html +++ b/examples/index.html @@ -8,13 +8,14 @@ + - +
    -
    +
    @@ -80,7 +72,7 @@

    jQuery QueryBuilder
    -
    @@ -106,22 +98,23 @@

    Output

    - + - - - + + - diff --git a/tests/plugins-gui.module.js b/tests/plugins-gui.module.js index 00a131a1..a6ac0d22 100644 --- a/tests/plugins-gui.module.js +++ b/tests/plugins-gui.module.js @@ -78,22 +78,6 @@ $(function(){ ); }); - /** - * Test bt-selectpicker - */ - QUnit.test('bt-selectpicker', function(assert) { - $b.queryBuilder({ - plugins: ['bt-selectpicker'], - filters: basic_filters, - rules: basic_rules - }); - - assert.ok( - $b.find('.bootstrap-select').length == 8, - 'Should have initialized Bootstrap Select on all filters and operators selectors' - ); - }); - /** * Test chosen-selectpicker */ @@ -131,9 +115,9 @@ $(function(){ $b.queryBuilder('validate'); assert.equal( - $('#builder_group_0 .error-container').eq(0).data('toggle'), + $('#builder_group_0 .error-container').eq(0).data('bs-toggle'), 'tooltip', - 'Should have added data-toggle="tooltip" in the template' + 'Should have added data-bs-toggle="tooltip" in the template' ); assert.equal( @@ -201,7 +185,7 @@ $(function(){ }); assert.ok( - $('#builder_rule_0 button.filter-description').data('toggle') == 'popover', + $('#builder_rule_0 button.filter-description').data('bs-toggle') == 'popover', 'Rule should contain a new button enabled with Popover' ); @@ -216,7 +200,7 @@ $(function(){ }); assert.ok( - $('#builder_rule_0 button.filter-description').data('toggle') == 'bootbox', + $('#builder_rule_0 button.filter-description').data('bs-toggle') == 'bootbox', 'Rule should contain a new button enabled with Bootbox' ); }); diff --git a/yarn.lock b/yarn.lock index 662949ac..ed03d7c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,25 +3,25 @@ "@babel/parser@^7.9.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" - integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== "@babel/runtime@^7.21.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" - integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== + version "7.23.1" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" -"@interactjs/types@1.10.17": - version "1.10.17" - resolved "https://registry.yarnpkg.com/@interactjs/types/-/types-1.10.17.tgz#1649de06d9ead790c81ecece76736b852bdfc77e" - integrity sha512-X2JpoM7xUw0p9Me0tMaI0HNfcF/Hd07ZZlzpnpEMpGerUZOLoyeThrV9P+CrBHxZrluWJrigJbcdqXliFd0YMA== +"@interactjs/types@1.10.19": + version "1.10.19" + resolved "https://registry.npmjs.org/@interactjs/types/-/types-1.10.19.tgz" + integrity sha512-oEqGmt9/Ob+jz0FUaBzpDXBmf+2dfdhPuEwQcMGH6nQTR2ETGtYIlAnQtADHvnCin+cVkrmqVohfHBysyQr4Lw== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -33,17 +33,29 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@popperjs/core@^2.0.0", "@popperjs/core@^2.11.8": + version "2.11.8" + resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@selectize/selectize@^0.15.2": + version "0.15.2" + resolved "https://registry.npmjs.org/@selectize/selectize/-/selectize-0.15.2.tgz" + integrity sha512-gY+yzYfrVTc+1ekCAaEtDvN59+upbibFzhkePyyk6PwOXT6kEb05azGA91/w3C/71lUOHPyd3nzLnfyfuRi+pA== + optionalDependencies: + jquery-ui "^1.13.2" + "@types/linkify-it@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" - integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== + version "3.0.3" + resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz" + integrity sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g== -"@types/markdown-it@^12.2.3": +"@types/markdown-it@*", "@types/markdown-it@^12.2.3": version "12.2.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" + resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz" integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== dependencies: "@types/linkify-it" "*" @@ -51,17 +63,17 @@ "@types/mdurl@*": version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz" integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4: version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -69,7 +81,7 @@ accepts@~1.3.4: alive-server@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/alive-server/-/alive-server-1.3.0.tgz#ef87166a600a1b76172babbff0b435398ec091ee" + resolved "https://registry.npmjs.org/alive-server/-/alive-server-1.3.0.tgz" integrity sha512-zvE9vFYA6wfDTQpLw7W90s3Mj0a7+HxY7VkTAiOWvYgZZbL9qsSWgBmdL8ndWUnSYdNqaicyPj62HRsGNrC5RQ== dependencies: chokidar "^3.5.3" @@ -89,44 +101,39 @@ alive-server@^1.3.0: ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -ansicolors@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" - integrity sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w== - anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -134,124 +141,118 @@ anymatch@~3.1.2: apache-crypt@^1.1.2: version "1.2.6" - resolved "https://registry.yarnpkg.com/apache-crypt/-/apache-crypt-1.2.6.tgz#c3f9b98318b447f0a878b54e2cb113bbb8539698" + resolved "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz" integrity sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA== dependencies: unix-crypt-td-js "^1.1.4" apache-md5@^1.0.6: version "1.1.8" - resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.8.tgz#ea79c6feb03abfed42b2830dde06f75df5e3bbd9" + resolved "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz" integrity sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-each@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== array-slice@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== async@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== -async@^2.6.0: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - async@~3.2.0: version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== awesome-bootstrap-checkbox@^0.3.7: version "0.3.7" - resolved "https://registry.yarnpkg.com/awesome-bootstrap-checkbox/-/awesome-bootstrap-checkbox-0.3.7.tgz#b112973ee6d5bff40ab217c420185c470251d0e2" + resolved "https://registry.npmjs.org/awesome-bootstrap-checkbox/-/awesome-bootstrap-checkbox-0.3.7.tgz" integrity sha512-W67P0YIPPxN5vg6uuGRrz/rVGqaATFiE3O8/YepssFBXVyMoO8AkfhNMOoHEVJk7m/O5OQ/9n64uXlTZjXiiFw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== basic-auth@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== dependencies: safe-buffer "5.1.2" batch@0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== bcryptjs@^2.4.3: version "2.4.3" - resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -bootbox@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/bootbox/-/bootbox-4.4.0.tgz#ff7f898fb87d4527e547feb64158f88450d1a0c9" - integrity sha512-A07f3gj3XGg/g8esHY1L+mPnjuN9SpbRGA7ZOTe+FtQKV5dOxvh/B9AYVqalROS+MJdBZOMg2Z0bFOqUiCV8zg== +bootbox@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/bootbox/-/bootbox-6.0.0.tgz" + integrity sha512-+Calbj1v5UvxAXXDAHfoBlsx63Hcz1JqHaZdJ5EjIcOlkyAbZLCreVScx0Em6ZUvsMCqynuz/3nGDyd9FtFrNQ== -bootstrap-select@^1.12.4: - version "1.13.18" - resolved "https://registry.yarnpkg.com/bootstrap-select/-/bootstrap-select-1.13.18.tgz#4557119d58dc1159189977161c803962220e4dda" - integrity sha512-V1IzK4rxBq5FrJtkzSH6RmFLFBsjx50byFbfAf8jYyXROWs7ZpprGjdHeoyq2HSsHyjJhMMwjsQhRoYAfxCGow== +bootstrap-icons@^1.11.3: + version "1.11.3" + resolved "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.11.3.tgz" + integrity sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww== + +bootstrap-select@^1.14.0-beta3: + version "1.14.0-beta3" + resolved "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.14.0-beta3.tgz" + integrity sha512-wYUDY4NAYBcNydXybE7wh3+ucyf+AcUOhZ+e0TFIoZ38A+k/3BVT1RPl5f0CiPxAexP1IQuqALKMqI8wtZS71A== bootstrap-slider@^10.0.0: version "10.6.2" - resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz#7341f468c012bdaa6a1d8625d989fdeb8ed7dd38" + resolved "https://registry.npmjs.org/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz" integrity sha512-8JTPZB9QVOdrGzYF3YgC3YW6ssfPeBvBwZnXffiZ7YH/zz1D0EKlZvmQsm/w3N0XjVNYQEoQ0ax+jHrErV4K1Q== -bootstrap@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72" - integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== - -"bootswatch-dist@git+https://github.com/dbtek/bootswatch-dist.git#slate": - version "3.3.7-slate" - resolved "git+https://github.com/dbtek/bootswatch-dist.git#f55986534babf801f99fde84e7144ca7a584263b" +"bootstrap@^4.4.0 || ^5.0.0", bootstrap@^5.3.0, bootstrap@>=3.0.0: + version "5.3.2" + resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz" + integrity sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -259,36 +260,39 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -cardinal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" - integrity sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg== - dependencies: - ansicolors "~0.2.1" - redeyed "~1.0.0" - catharsis@^0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" + resolved "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz" integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== dependencies: lodash "^4.17.15" -chalk@^1.0.0, chalk@^1.1.1: +chalk@^1.0.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" @@ -299,7 +303,7 @@ chalk@^1.0.0, chalk@^1.1.1: chalk@^4.1.2, chalk@~4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -307,7 +311,7 @@ chalk@^4.1.2, chalk@~4.1.0: cheerio@^0.22.0: version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz" integrity sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA== dependencies: css-select "~1.2.0" @@ -327,9 +331,9 @@ cheerio@^0.22.0: lodash.reject "^4.4.0" lodash.some "^4.4.0" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2, chokidar@^3.5.3: +chokidar@^3.5.2, chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0": version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -344,21 +348,21 @@ cheerio@^0.22.0: chosenjs@^1.4.3: version "1.4.3" - resolved "https://registry.yarnpkg.com/chosenjs/-/chosenjs-1.4.3.tgz#7e171cf9443920b8638184c4746035cc0b8d4c21" + resolved "https://registry.npmjs.org/chosenjs/-/chosenjs-1.4.3.tgz" integrity sha512-RMgwgPszZjQgP+PtcuTaXnhWc9bwcqfP8b4QonKU0vvFYb39Y+WRmsGp0xO0E1MYwyEX/ZcFYecprK8sF/8s9A== dependencies: jquery ">=1.4.4" clean-css@~4.1.1: version "4.1.11" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz" integrity sha512-a3ZEe58u+LizPdSCHM0jIGeKu1hN+oqqXXc1i70mnV0x2Ox3/ho1pE6Y8HD6yhDts5lEQs028H9kutlihP77uQ== dependencies: source-map "0.5.x" cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -367,40 +371,40 @@ cliui@^8.0.1: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - colors@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== +colors@1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + commander@~2.19.0: version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concurrently@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.0.tgz#cdc9f621a4d913366600355d68254df2c5e782f3" - integrity sha512-nnLMxO2LU492mTUj9qX/az/lESonSZu81UznYDoXtz1IQf996ixVqPAgHXwvHiHCAef/7S8HIK+fTFK7Ifk8YA== + version "8.2.1" + resolved "https://registry.npmjs.org/concurrently/-/concurrently-8.2.1.tgz" + integrity sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ== dependencies: chalk "^4.1.2" date-fns "^2.30.0" @@ -414,7 +418,7 @@ concurrently@^8.2.0: connect@^3.7.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" @@ -424,7 +428,7 @@ connect@^3.7.0: cors@^2.8.5: version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" @@ -432,7 +436,7 @@ cors@^2.8.5: cross-spawn@^7.0.0: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -441,7 +445,7 @@ cross-spawn@^7.0.0: css-select@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz" integrity sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA== dependencies: boolbase "~1.0.0" @@ -451,145 +455,124 @@ css-select@~1.2.0: css-what@2.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== -csv-parse@^4.6.5: - version "4.16.3" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7" - integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== - date-fns@^2.30.0: version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" dateformat@~4.6.2: version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + deepmerge@^2.1.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz" integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -depd@2.0.0, depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +depd@~2.0.0, depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + destroy@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -dom-serializer@~0.1.0: +dom-serializer@~0.1.0, dom-serializer@0: version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz" integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== dependencies: domelementtype "^1.3.0" entities "^1.1.1" -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: +domelementtype@^1.3.0, domelementtype@^1.3.1, domelementtype@1: version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^2.3.0: version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" domhandler@^3.0.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz" integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: domelementtype "^2.0.1" domhandler@^4.2.0: version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" -domutils@1.5.1: +domutils@^1.5.1, domutils@1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" integrity sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw== dependencies: dom-serializer "0" domelementtype "1" -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - domutils@^2.0.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -598,87 +581,87 @@ domutils@^2.0.0: duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== entities@^1.1.1, entities@~1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esprima@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" - integrity sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw== - etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== event-stream@4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-4.0.1.tgz#4092808ec995d0dd75ea4580c1df6a74db2cde65" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz" integrity sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA== dependencies: duplexer "^0.1.1" @@ -691,36 +674,36 @@ event-stream@4.0.1: eventemitter2@~0.4.13: version "0.4.14" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" integrity sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ== exit@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" extend@^3.0.1, extend@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== faye-websocket@0.11.4: version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" figures@^1.0.1: version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== dependencies: escape-string-regexp "^1.0.5" @@ -728,19 +711,19 @@ figures@^1.0.1: file-sync-cmp@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b" + resolved "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz" integrity sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA== fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" finalhandler@1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -753,7 +736,7 @@ finalhandler@1.1.2: findup-sync@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz" integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== dependencies: detect-file "^1.0.0" @@ -763,7 +746,7 @@ findup-sync@^4.0.0: findup-sync@~5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-5.0.0.tgz#54380ad965a7edca00cc8f63113559aadc541bd2" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz" integrity sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ== dependencies: detect-file "^1.0.0" @@ -773,7 +756,7 @@ findup-sync@~5.0.0: fined@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== dependencies: expand-tilde "^2.0.2" @@ -784,12 +767,12 @@ fined@^1.2.0: flagged-respawn@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== foodoc@^0.0.9: version "0.0.9" - resolved "https://registry.yarnpkg.com/foodoc/-/foodoc-0.0.9.tgz#73822ab01bf3446efe86cdd97e86ee64966d563f" + resolved "https://registry.npmjs.org/foodoc/-/foodoc-0.0.9.tgz" integrity sha512-TjswPE8Vd8Wu1AAwu/aet/g0FlxCtEfWmkbFXppMq1FmgdwvH33U/jPJkIggAM7RoLPTB5UvNB5Cgg0PII/smQ== dependencies: cheerio "^0.22.0" @@ -809,19 +792,19 @@ foodoc@^0.0.9: for-in@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== for-own@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz" integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== dependencies: for-in "^1.0.1" foreground-child@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== dependencies: cross-spawn "^7.0.0" @@ -829,60 +812,72 @@ foreground-child@^3.1.0: fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from@^0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== getobject@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/getobject/-/getobject-1.0.2.tgz#25ec87a50370f6dcc3c6ba7ef43c4c16215c4c89" + resolved "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz" integrity sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg== glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.1.tgz#9789cb1b994515bedb811a6deca735b5c37d2bf4" - integrity sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw== + version "10.3.7" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.7.tgz" + integrity sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ== dependencies: foreground-child "^3.1.0" jackspeak "^2.0.3" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2" - path-scurry "^1.10.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" -glob@^7.1.2, glob@^7.1.3: +glob@^7.1.2: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -894,7 +889,7 @@ glob@^7.1.2, glob@^7.1.3: glob@~7.1.6: version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" @@ -906,7 +901,7 @@ glob@~7.1.6: global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" @@ -915,7 +910,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz" integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" @@ -926,12 +921,12 @@ global-prefix@^1.0.1: graceful-fs@^4.1.9: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== grunt-cli@~1.4.3: version "1.4.3" - resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.4.3.tgz#22c9f1a3d2780bf9b0d206e832e40f8f499175ff" + resolved "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz" integrity sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ== dependencies: grunt-known-options "~2.0.0" @@ -942,7 +937,7 @@ grunt-cli@~1.4.3: grunt-contrib-clean@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz#564abf2d0378a983a15b9e3f30ee75b738c40638" + resolved "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz" integrity sha512-tET+TYTd8vCtKeGwbLjoH8+SdI8ngVzGbPr7vlWkewG7mYYHIccd2Ldxq+PK3DyBp5Www3ugdkfsjoNKUl5MTg== dependencies: async "^1.5.2" @@ -950,7 +945,7 @@ grunt-contrib-clean@^1.1.0: grunt-contrib-copy@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz#7060c6581e904b8ab0d00f076e0a8f6e3e7c3573" + resolved "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz" integrity sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA== dependencies: chalk "^1.1.1" @@ -958,7 +953,7 @@ grunt-contrib-copy@^1.0.0: grunt-contrib-cssmin@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz#64cbebe60134bc1270ca4154514ec4007cc16f7f" + resolved "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz" integrity sha512-IXNomhQ5ekVZbDbj/ik5YccoD9khU6LT2fDXqO1+/Txjq8cp0tQKjVS8i8EAbHOrSDkL7/UD6A7b+xj98gqh9w== dependencies: chalk "^1.0.0" @@ -967,7 +962,7 @@ grunt-contrib-cssmin@^2.2.1: grunt-contrib-uglify@^3.3.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz#8a51ab330be05ef62b11b2833abd3e955e85af03" + resolved "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz" integrity sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A== dependencies: chalk "^1.0.0" @@ -977,12 +972,12 @@ grunt-contrib-uglify@^3.3.0: grunt-known-options@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-2.0.0.tgz#cac641e897f9a0a680b8c9839803d35f3325103c" + resolved "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz" integrity sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA== grunt-legacy-log-utils@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz#49a8c7dc74051476dcc116c32faf9db8646856ef" + resolved "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz" integrity sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw== dependencies: chalk "~4.1.0" @@ -990,7 +985,7 @@ grunt-legacy-log-utils@~2.1.0: grunt-legacy-log@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz#1c6eaf92371ea415af31ea84ce50d434ef6d39c4" + resolved "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz" integrity sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA== dependencies: colors "~1.1.2" @@ -1000,7 +995,7 @@ grunt-legacy-log@~3.0.0: grunt-legacy-util@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz#0f929d13a2faf9988c9917c82bff609e2d9ba255" + resolved "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz" integrity sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w== dependencies: async "~3.2.0" @@ -1011,9 +1006,9 @@ grunt-legacy-util@~2.0.1: underscore.string "~3.3.5" which "~2.0.2" -grunt@^1.0.2: +grunt@^1.0.2, grunt@>=0.4.5: version "1.6.1" - resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.6.1.tgz#0b4dd1524f26676dcf45d8f636b8d9061a8ede16" + resolved "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz" integrity sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA== dependencies: dateformat "~4.6.2" @@ -1032,23 +1027,23 @@ grunt@^1.0.2: gzip-size@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz" integrity sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w== dependencies: duplexer "^0.1.1" handlebars-layouts@^3.1.4: version "3.1.4" - resolved "https://registry.yarnpkg.com/handlebars-layouts/-/handlebars-layouts-3.1.4.tgz#26b3beb931b4b877dfbf7e6feaf4058ee6228b02" + resolved "https://registry.npmjs.org/handlebars-layouts/-/handlebars-layouts-3.1.4.tgz" integrity sha512-2llBmvnj8ueOfxNHdRzJOcgalzZjYVd9+WAl93kPYmlX4WGx7FTHTzNxhK+i9YKY2OSjzfehgpLiIwP/OJr6tw== handlebars@^4.0.11: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.8" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" - neo-async "^2.6.0" + neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" optionalDependencies: @@ -1056,43 +1051,43 @@ handlebars@^4.0.11: has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hooker@~0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" + resolved "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" integrity sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA== htmlparser2@^3.9.1: version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: domelementtype "^1.3.1" @@ -1104,7 +1099,7 @@ htmlparser2@^3.9.1: htmlparser2@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz" integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== dependencies: domelementtype "^2.0.1" @@ -1114,12 +1109,12 @@ htmlparser2@^4.1.0: http-auth-connect@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/http-auth-connect/-/http-auth-connect-1.0.6.tgz#7b9fd411f8806efd1244e703477171c08396d503" + resolved "https://registry.npmjs.org/http-auth-connect/-/http-auth-connect-1.0.6.tgz" integrity sha512-yaO0QSCPqGCjPrl3qEEHjJP+lwZ6gMpXLuCBE06eWwcXomkI5TARtu0kxf9teFuBj6iaV3Ybr15jaWUvbzNzHw== http-auth@4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/http-auth/-/http-auth-4.2.0.tgz#9bb119ba22273b63a50796363d298eed3bdbadae" + resolved "https://registry.npmjs.org/http-auth/-/http-auth-4.2.0.tgz" integrity sha512-trIkGI7dgnFJ5k8YaQFSr1Q5uq9c19vK6Y9ZCjlY0zBEQgdJpXZU3Cyrmk4nwrAGy4pKJhs599o7q6eicbVnhw== dependencies: apache-crypt "^1.1.2" @@ -1127,9 +1122,19 @@ http-auth@4.2.0: bcryptjs "^2.4.3" uuid "^8.3.2" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -1138,81 +1143,66 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-parser-js@>=0.5.1: version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== -humanize@^0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/humanize/-/humanize-0.0.9.tgz#1994ffaecdfe9c441ed2bdac7452b7bb4c9e41a4" - integrity sha512-bvZZ7vXpr1RKoImjuQ45hJb5OvE2oJafHysiD/AL3nkqTZH2hFCjQ3YZfCd63FefDitbJze/ispUPP0gfDsT2Q== - iconv-lite@~0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ignore-by-default@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== immutable@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" - integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + version "4.3.4" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3: +inherits@^2.0.1, inherits@^2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.4: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== interactjs@^1.3.3: - version "1.10.17" - resolved "https://registry.yarnpkg.com/interactjs/-/interactjs-1.10.17.tgz#aed66a63020cd092236133f9149e6448dc405d72" - integrity sha512-grjHJgnWkCoQLmAlk2yalNd1r0ztUhXLJNVjSOfWn1wfNNgU2tx1cDEkro9WYerDNC9UG3MZTeD4O6zOM5gbIA== + version "1.10.19" + resolved "https://registry.npmjs.org/interactjs/-/interactjs-1.10.19.tgz" + integrity sha512-5zWXBrfLnXAyhrxKlhRiud/JxWd3GvZkvdTf8bqjeHWDx9zgiu+qFNA3nnJMszadFCig2GU5zKx9PYrkT87OKA== dependencies: - "@interactjs/types" "1.10.17" + "@interactjs/types" "1.10.19" interpret@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz" integrity sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA== is-absolute@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== dependencies: is-relative "^1.0.0" @@ -1220,92 +1210,92 @@ is-absolute@^1.0.0: is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-relative@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz" integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: is-unc-path "^1.0.0" is-unc-path@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz" integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: unc-path-regex "^0.1.2" is-windows@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jackspeak@^2.0.3: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" - integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== + version "2.3.3" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz" + integrity sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -1313,19 +1303,26 @@ jackspeak@^2.0.3: jquery-extendext@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/jquery-extendext/-/jquery-extendext-1.0.0.tgz#00d6615e2ef7da630fbced293910002a1b281ee1" + resolved "https://registry.npmjs.org/jquery-extendext/-/jquery-extendext-1.0.0.tgz" integrity sha512-gDJjpQ8ISd4ZMwSn0yXSuyufsPMCeWtWJ8kmqE85VromJqyVT2sdkHzS5yL0w1GK81UpOzmr2f9JgFln2sbJSg== dependencies: jquery ">=1.9.1" -jquery@>=1.4.4, jquery@>=1.9.1, jquery@^3.5.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" - integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== +jquery-ui@^1.13.2: + version "1.13.2" + resolved "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.2.tgz" + integrity sha512-wBZPnqWs5GaYJmo1Jj0k/mrSkzdQzKDwhXNtHKcBdAcKVxMM3KNYFq+iJ2i1rwiG53Z8M4mTn3Qxrm17uH1D4Q== + dependencies: + jquery ">=1.8.0 <4.0.0" + +"jquery@^1.7.0 || ^2 || ^3", jquery@^3.5.1, jquery@>=1.4.4, "jquery@>=1.8.0 <4.0.0", jquery@>=1.9.1, "jquery@1.9.1 - 3": + version "3.7.1" + resolved "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== js-yaml@~3.14.0: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -1333,14 +1330,14 @@ js-yaml@~3.14.0: js2xmlparser@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" + resolved "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz" integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== dependencies: xmlcreate "^2.0.4" jsdoc@^3.5.5: version "3.6.11" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" + resolved "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz" integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== dependencies: "@babel/parser" "^7.9.4" @@ -1361,19 +1358,19 @@ jsdoc@^3.5.5: kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + resolved "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz" integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== dependencies: graceful-fs "^4.1.9" liftup@~3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/liftup/-/liftup-3.0.1.tgz#1cb81aff0f368464ed3a5f1a7286372d6b1a60ce" + resolved "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz" integrity sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw== dependencies: extend "^3.0.2" @@ -1387,111 +1384,111 @@ liftup@~3.0.1: linkify-it@^3.0.1: version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz" integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== dependencies: uc.micro "^1.0.1" lodash.assignin@^4.0.9: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz" integrity sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg== lodash.bind@^4.1.4: version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz" integrity sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA== lodash.defaults@^4.0.1: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.filter@^4.4.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz" integrity sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ== lodash.flatten@^4.2.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.foreach@^4.3.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz" integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== lodash.map@^4.4.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== lodash.merge@^4.4.0: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.pick@^4.2.1: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz" integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.reduce@^4.4.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz" integrity sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw== lodash.reject@^4.4.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz" integrity sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ== lodash.some@^4.4.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz" integrity sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ== -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@~4.17.19, lodash@~4.17.21: +lodash@^4.17.15, lodash@^4.17.21, lodash@~4.17.19, lodash@~4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== "lru-cache@^9.1.1 || ^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" - integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + version "10.0.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== lunr@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-1.0.0.tgz#5c9276c92c91ac35a9241b5018d46723d92e2f5f" + resolved "https://registry.npmjs.org/lunr/-/lunr-1.0.0.tgz" integrity sha512-vGgr9YUMBfL1izpsb4RASwPz58JSSdmcTocuCs2v0PyGU3e7CDJWuS5psl4O2m9t0CsNemeR+jhxu2xNkXCM2A== make-iterator@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== dependencies: kind-of "^6.0.2" map-cache@^0.2.0: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-stream@0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz" integrity sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ== markdown-it-anchor@^8.4.1: version "8.6.7" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" + resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== -markdown-it@^12.3.2: +markdown-it@*, markdown-it@^12.3.2: version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz" integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== dependencies: argparse "^2.0.1" @@ -1502,12 +1499,12 @@ markdown-it@^12.3.2: marked@^4.0.10: version "4.3.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== maxmin@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-2.1.0.tgz#4d3b220903d95eee7eb7ac7fa864e72dc09a3166" + resolved "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz" integrity sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw== dependencies: chalk "^1.0.0" @@ -1517,88 +1514,85 @@ maxmin@^2.1.0: mdurl@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" picomatch "^2.3.1" -microplugin@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/microplugin/-/microplugin-0.0.3.tgz#1fc2e1bb7c9e19e82bd84bba9137bbe71250d8cd" - integrity sha512-3wKXex4/iyALV0GX2juow66J9dabkEMgHeZAihdLTaRTzm0N+RubXioNPpfIQDPuBRxr3JbjNt7B0Lr/3yE9yQ== - mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@~2.1.17, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@~3.0.4: + version "3.0.8" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.1.1: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.1: - version "9.0.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.2.tgz#397e387fff22f6795844d00badc903a3d5de7057" - integrity sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg== +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^1.1.7" -minimatch@~3.0.4: - version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" - integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" minimist@^1.2.5: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== - -"minipass@^5.0.0 || ^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" - integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.3" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz" + integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@^2.22.1, moment@^2.29.1: version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== morgan@^1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + resolved "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz" integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== dependencies: basic-auth "~2.0.1" @@ -1607,29 +1601,34 @@ morgan@^1.10.0: on-finished "~2.3.0" on-headers "~1.0.2" +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.6.0: +neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nodemon@^2.0.22: version "2.0.22" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz" integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== dependencies: chokidar "^3.5.2" @@ -1645,21 +1644,21 @@ nodemon@^2.0.22: nopt@~1.0.10: version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== dependencies: abbrev "1" nopt@~3.0.6: version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" nopt@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" @@ -1667,29 +1666,29 @@ nopt@~4.0.1: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== nth-check@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object.defaults@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== dependencies: array-each "^1.0.1" @@ -1699,7 +1698,7 @@ object.defaults@^1.1.0: object.map@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== dependencies: for-own "^1.0.0" @@ -1707,67 +1706,59 @@ object.map@^1.0.1: object.pick@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== dependencies: ee-first "1.1.1" +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" open@^8.4.2: version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" is-wsl "^2.2.0" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-tmpdir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== osenv@^0.1.4: version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" @@ -1775,7 +1766,7 @@ osenv@^0.1.4: parse-filepath@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== dependencies: is-absolute "^1.0.0" @@ -1784,74 +1775,74 @@ parse-filepath@^1.0.1: parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== parse-srcset@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" + resolved "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz" integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-root-regex@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== path-root@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== dependencies: path-root-regex "^0.1.0" -path-scurry@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.0.tgz#0ffbd4c1f7de9600f98a1405507d9f9acb438ab3" - integrity sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" pause-stream@^0.0.11: version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== dependencies: through "~2.3" picocolors@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== postcss@^7.0.27: version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== dependencies: picocolors "^0.2.1" @@ -1859,29 +1850,29 @@ postcss@^7.0.27: pretty-bytes@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz" integrity sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow== dependencies: number-is-nan "^1.0.0" proxy-middleware@^0.15.0: version "0.15.0" - resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.15.0.tgz#a3fdf1befb730f951965872ac2f6074c61477a56" + resolved "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz" integrity sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q== pstree.remy@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== readable-stream@^3.1.1: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -1890,91 +1881,84 @@ readable-stream@^3.1.1: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.7.0: version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== dependencies: resolve "^1.9.0" -redeyed@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" - integrity sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ== - dependencies: - esprima "~3.0.0" - -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requizzle@^0.2.3: version "0.2.4" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" + resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz" integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== dependencies: lodash "^4.17.21" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz" integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" resolve@^1.19.0, resolve@^1.9.0: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + version "1.22.6" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" rimraf@^2.5.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rxjs@^7.8.1: version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" -safe-buffer@5.1.2: +safe-buffer@>=5.1.0, safe-buffer@5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@~5.2.0: +safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize-html@^1.18.2: version "1.27.5" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.27.5.tgz#6c8149462adb23e360e1bb71cc0bae7f08c823c7" + resolved "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz" integrity sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A== dependencies: htmlparser2 "^4.1.0" @@ -1983,35 +1967,27 @@ sanitize-html@^1.18.2: postcss "^7.0.27" sass@^1.63.6: - version "1.63.6" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" - integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== + version "1.68.0" + resolved "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz" + integrity sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -selectize@^0.12.4: - version "0.12.6" - resolved "https://registry.yarnpkg.com/selectize/-/selectize-0.12.6.tgz#c2cf08cbaa4cb06c5e99bb452919d71b080690d6" - integrity sha512-bWO5A7G+I8+QXyjLfQUgh31VI4WKYagUZQxAXlDyUmDDNrFxrASV0W9hxCOl0XJ/XQ1dZEu3G9HjXV4Wj0yb6w== - dependencies: - microplugin "0.0.3" - sifter "^0.5.1" - semver@^5.7.1: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@~7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== send@^0.18.0: version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" @@ -2030,7 +2006,7 @@ send@^0.18.0: serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" @@ -2043,117 +2019,136 @@ serve-index@^1.9.1: setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -sifter@^0.5.1: - version "0.5.4" - resolved "https://registry.yarnpkg.com/sifter/-/sifter-0.5.4.tgz#3cb9e514889edfc887d8d87a355841b01ebdd1ab" - integrity sha512-t2yxTi/MM/ESup7XH5oMu8PUcttlekt269RqxARgnvS+7D/oP6RyA1x3M/5w8dG9OgkOyQ8hNRWelQ8Rj4TAQQ== - dependencies: - async "^2.6.0" - cardinal "^1.0.0" - csv-parse "^4.6.5" - humanize "^0.0.9" - optimist "^0.6.1" - signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-update-notifier@^1.0.7: version "1.1.0" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz" integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== dependencies: semver "~7.0.0" "source-map-js@>=0.6.2 <2.0.0": version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@0.5.x: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.6.1, source-map@~0.6.1: +source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@0.5.x: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + spawn-command@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" + resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz" integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== split@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" sprintf-js@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + version "1.1.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sql-parser-mistic@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/sql-parser-mistic/-/sql-parser-mistic-1.2.3.tgz#338b8685bd9fe7844df0dccc01afc2ebca0950ea" + resolved "https://registry.npmjs.org/sql-parser-mistic/-/sql-parser-mistic-1.2.3.tgz" integrity sha512-2jyVSr7jIgbeFnPW8JO4hTMkDP5mTxbbWX+P7GcCbCwHp+ffiJeQGBK4dDLoPZvexK2Wgy0aUBfsWgc2DPhYRg== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.4.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + stream-combiner@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz" integrity sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ== dependencies: duplexer "~0.1.1" through "~2.3.4" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2162,129 +2157,124 @@ stream-combiner@^0.2.2: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-json-comments@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^5.5.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== taffydb@2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + resolved "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz" integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== -through@2, through@^2.3.8, through@~2.3, through@~2.3.4: +through@^2.3.8, through@~2.3, through@~2.3.4, through@2: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== touch@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== dependencies: nopt "~1.0.10" tree-kill@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== tslib@^2.1.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== - -uglify-js@~3.4.0: +uglify-js@^3.1.4, uglify-js@~3.4.0: version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz" integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== dependencies: commander "~2.19.0" @@ -2292,17 +2282,17 @@ uglify-js@~3.4.0: unc-path-regex@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== undefsafe@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== underscore.string@~3.3.5: version "3.3.6" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.6.tgz#ad8cf23d7423cb3b53b898476117588f4e2f9159" + resolved "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz" integrity sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ== dependencies: sprintf-js "^1.1.1" @@ -2310,54 +2300,54 @@ underscore.string@~3.3.5: underscore@~1.13.2: version "1.13.6" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== unix-crypt-td-js@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz#4912dfad1c8aeb7d20fa0a39e4c31918c1d5d5dd" + resolved "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz" integrity sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw== unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-path@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32" + resolved "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz" integrity sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg== util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8flags@~3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" vary@^1: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== websocket-driver@>=0.5.1: version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" @@ -2366,36 +2356,40 @@ websocket-driver@>=0.5.1: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== which@^1.2.14: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1, which@~2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -2404,7 +2398,7 @@ wordwrap@~0.0.2: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -2413,27 +2407,27 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xmlcreate@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" + resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.7.2: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" From cf7728fd9da62c91b1a4ced1fe43e3b22ff188d3 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Tue, 30 Jan 2024 18:58:42 +0100 Subject: [PATCH 95/97] Update README.md --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index af82fa55..f0fd8ab7 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ [![npm version](https://img.shields.io/npm/v/jQuery-QueryBuilder.svg?style=flat-square)](https://www.npmjs.com/package/jQuery-QueryBuilder) [![jsDelivr CDN](https://data.jsdelivr.com/v1/package/npm/jQuery-QueryBuilder/badge)](https://www.jsdelivr.com/package/npm/jQuery-QueryBuilder) [![Build Status](https://github.com/mistic100/jQuery-QueryBuilder/workflows/CI/badge.svg)](https://github.com/mistic100/jQuery-QueryBuilder/actions) -[![Dependencies Status](https://david-dm.org/mistic100/jQuery-QueryBuilder/status.svg?style=flat-square)](https://david-dm.org/mistic100/jQuery-QueryBuilder) [![gitlocalized](https://gitlocalize.com/repo/5259/whole_project/badge.svg)](https://gitlocalize.com/repo/5259/whole_project?utm_source=badge) jQuery plugin offering an simple interface to create complex queries. @@ -37,16 +36,11 @@ jQuery-QueryBuilder is available on [jsDelivr](https://www.jsdelivr.com/package/ * [Bootstrap 5](https://getbootstrap.com/docs/5.3/) CSS and bundle.js which includes `Popper` for tooltips and popovers * [Bootstrap Icons](https://icons.getbootstrap.com/) * [jQuery.extendext](https://github.com/mistic100/jQuery.extendext) - * [doT.js](https://olado.github.io/doT) * [MomentJS](https://momentjs.com) (optional, for Date/Time validation) * [SQL Parser](https://github.com/mistic100/sql-parser) (optional, for SQL methods) * Other Bootstrap/jQuery plugins used by plugins -($.extendext and doT.js are directly included in the [standalone](https://github.com/mistic100/jQuery-QueryBuilder/blob/master/dist/js/query-builder.standalone.js) file) - -### Browser support - * Internet Explorer >= 11 - * All other recent browsers +($.extendext is directly included in the [standalone](https://github.com/mistic100/jQuery-QueryBuilder/blob/master/dist/js/query-builder.standalone.js) file) From cb1f9ee2a5a6025db46b2a2afbd8d6678e4ff5fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 15:40:35 +0200 Subject: [PATCH 96/97] Bump braces from 3.0.2 to 3.0.3 (#1003) Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) --- updated-dependencies: - dependency-name: braces dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 229 ++++++++++++++++++++---------------------------------- 1 file changed, 85 insertions(+), 144 deletions(-) diff --git a/yarn.lock b/yarn.lock index ed03d7c4..3a1b8f09 100644 --- a/yarn.lock +++ b/yarn.lock @@ -36,7 +36,7 @@ resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@popperjs/core@^2.0.0", "@popperjs/core@^2.11.8": +"@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== @@ -53,7 +53,7 @@ resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz" integrity sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g== -"@types/markdown-it@*", "@types/markdown-it@^12.2.3": +"@types/markdown-it@^12.2.3": version "12.2.3" resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz" integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== @@ -235,17 +235,12 @@ bootstrap-icons@^1.11.3: resolved "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.11.3.tgz" integrity sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww== -bootstrap-select@^1.14.0-beta3: - version "1.14.0-beta3" - resolved "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.14.0-beta3.tgz" - integrity sha512-wYUDY4NAYBcNydXybE7wh3+ucyf+AcUOhZ+e0TFIoZ38A+k/3BVT1RPl5f0CiPxAexP1IQuqALKMqI8wtZS71A== - bootstrap-slider@^10.0.0: version "10.6.2" resolved "https://registry.npmjs.org/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz" integrity sha512-8JTPZB9QVOdrGzYF3YgC3YW6ssfPeBvBwZnXffiZ7YH/zz1D0EKlZvmQsm/w3N0XjVNYQEoQ0ax+jHrErV4K1Q== -"bootstrap@^4.4.0 || ^5.0.0", bootstrap@^5.3.0, bootstrap@>=3.0.0: +bootstrap@^5.3.0: version "5.3.2" resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz" integrity sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g== @@ -266,11 +261,11 @@ brace-expansion@^2.0.1: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" catharsis@^0.9.0: version "0.9.0" @@ -279,18 +274,7 @@ catharsis@^0.9.0: dependencies: lodash "^4.17.15" -chalk@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^1.1.1: +chalk@^1.0.0, chalk@^1.1.1: version "1.1.3" resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== @@ -331,7 +315,7 @@ cheerio@^0.22.0: lodash.reject "^4.4.0" lodash.some "^4.4.0" -chokidar@^3.5.2, chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0": +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -381,16 +365,16 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" - integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== - colors@1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" + integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== + commander@~2.19.0: version "2.19.0" resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz" @@ -470,13 +454,6 @@ dateformat@~4.6.2: resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - debug@2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" @@ -484,6 +461,13 @@ debug@2.6.9: dependencies: ms "2.0.0" +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + deepmerge@^2.1.0: version "2.2.1" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz" @@ -494,16 +478,16 @@ define-lazy-prop@^2.0.0: resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -depd@~2.0.0, depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - destroy@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" @@ -514,6 +498,14 @@ detect-file@^1.0.0: resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== +dom-serializer@0, dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + dom-serializer@^1.0.1: version "1.4.1" resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" @@ -523,15 +515,7 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -dom-serializer@~0.1.0, dom-serializer@0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domelementtype@^1.3.0, domelementtype@^1.3.1, domelementtype@1: +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== @@ -562,7 +546,7 @@ domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" -domutils@^1.5.1, domutils@1.5.1: +domutils@1.5.1, domutils@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" integrity sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw== @@ -634,12 +618,7 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -714,10 +693,10 @@ file-sync-cmp@^0.1.0: resolved "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz" integrity sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -863,19 +842,7 @@ glob@^10.3.1: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^7.1.2: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3: +glob@^7.1.2, glob@^7.1.3: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -1006,7 +973,7 @@ grunt-legacy-util@~2.0.1: underscore.string "~3.3.5" which "~2.0.2" -grunt@^1.0.2, grunt@>=0.4.5: +grunt@^1.0.2: version "1.6.1" resolved "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz" integrity sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA== @@ -1122,16 +1089,6 @@ http-auth@4.2.0: bcryptjs "^2.4.3" uuid "^8.3.2" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -1143,6 +1100,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -1173,7 +1140,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1315,7 +1282,7 @@ jquery-ui@^1.13.2: dependencies: jquery ">=1.8.0 <4.0.0" -"jquery@^1.7.0 || ^2 || ^3", jquery@^3.5.1, jquery@>=1.4.4, "jquery@>=1.8.0 <4.0.0", jquery@>=1.9.1, "jquery@1.9.1 - 3": +jquery@>=1.4.4, "jquery@>=1.8.0 <4.0.0", jquery@>=1.9.1, jquery@^3.5.1: version "3.7.1" resolved "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== @@ -1486,7 +1453,7 @@ markdown-it-anchor@^8.4.1: resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== -markdown-it@*, markdown-it@^12.3.2: +markdown-it@^12.3.2: version "12.3.2" resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz" integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== @@ -1549,14 +1516,7 @@ minimatch@^3.0.4, minimatch@~3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.1.2: +minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1601,17 +1561,12 @@ morgan@^1.10.0: on-finished "~2.3.0" on-headers "~1.0.2" -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1711,13 +1666,6 @@ object.pick@^1.2.0: dependencies: isobject "^3.0.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" @@ -1725,6 +1673,13 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + on-headers@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" @@ -1941,7 +1896,7 @@ rxjs@^7.8.1: dependencies: tslib "^2.1.0" -safe-buffer@>=5.1.0, safe-buffer@5.1.2: +safe-buffer@5.1.2, safe-buffer@>=5.1.0: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -2061,21 +2016,16 @@ simple-update-notifier@^1.0.7: resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - source-map@0.5.x: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + spawn-command@0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz" @@ -2103,16 +2053,16 @@ sql-parser-mistic@^1.2.3: resolved "https://registry.npmjs.org/sql-parser-mistic/-/sql-parser-mistic-1.2.3.tgz" integrity sha512-2jyVSr7jIgbeFnPW8JO4hTMkDP5mTxbbWX+P7GcCbCwHp+ffiJeQGBK4dDLoPZvexK2Wgy0aUBfsWgc2DPhYRg== -"statuses@>= 1.4.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + stream-combiner@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz" @@ -2121,13 +2071,6 @@ stream-combiner@^0.2.2: duplexer "~0.1.1" through "~2.3.4" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -2137,16 +2080,7 @@ string_decoder@^1.1.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2164,6 +2098,13 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -2233,7 +2174,7 @@ taffydb@2.6.2: resolved "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz" integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== -through@^2.3.8, through@~2.3, through@~2.3.4, through@2: +through@2, through@^2.3.8, through@~2.3, through@~2.3.4: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== From 90d265c2fa92cef699d32a458552246b26fc0480 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Sep 2024 09:48:48 +0200 Subject: [PATCH 97/97] Bump micromatch from 4.0.5 to 4.0.8 (#1006) Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8. - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8) --- updated-dependencies: - dependency-name: micromatch dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3a1b8f09..335e4817 100644 --- a/yarn.lock +++ b/yarn.lock @@ -260,7 +260,7 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.3, braces@~3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== @@ -1485,11 +1485,11 @@ mdurl@^1.0.1: integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: