diff --git a/.eslintrc.yml b/.eslintrc.yml index 43363404b3..9da6c9055a 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -4,7 +4,7 @@ env: es2021: true jquery: true extends: - - google + - eslint:recommended parserOptions: ecmaVersion: 12 rules: @@ -19,6 +19,8 @@ rules: valid-jsdoc: off no-multiple-empty-lines: off comma-dangle: off + no-unused-vars: off + no-useless-escape: off prefer-spread: off indent: - error diff --git a/InvenTree/templates/js/translated/api.js b/InvenTree/templates/js/translated/api.js index 89203eda66..c9ecaff915 100644 --- a/InvenTree/templates/js/translated/api.js +++ b/InvenTree/templates/js/translated/api.js @@ -2,6 +2,7 @@ {% load inventree_extras %} /* globals + showMessage, */ /* exported diff --git a/InvenTree/templates/js/translated/attachment.js b/InvenTree/templates/js/translated/attachment.js index 5435db98dc..da7fb29037 100644 --- a/InvenTree/templates/js/translated/attachment.js +++ b/InvenTree/templates/js/translated/attachment.js @@ -1,7 +1,17 @@ {% load i18n %} /* globals + constructForm, + getTableData, + enableDragAndDrop, + makeDeleteButton, + makeEditButton, + makeIcon, + reloadBootstrapTable, + renderDate, renderLink, + setupFilterList, + showApiError, wrapButtons, */ diff --git a/InvenTree/templates/js/translated/barcode.js b/InvenTree/templates/js/translated/barcode.js index 6ab9624dbd..6253d2ed9c 100644 --- a/InvenTree/templates/js/translated/barcode.js +++ b/InvenTree/templates/js/translated/barcode.js @@ -1,15 +1,26 @@ {% load i18n %} /* globals + createNewModal, + global_settings, + handleFormError, + handleFormSuccess, + Html5Qrcode, + Html5QrcodeScannerState, imageHoverIcon, + inventreeGet, inventreePut, + makeIcon, + makeRemoveButton, modalEnable, modalSetContent, modalSetTitle, modalSetSubmitText, modalShowSubmitButton, modalSubmit, + showApiError, showQuestionDialog, + user_settings, */ /* exported @@ -57,8 +68,10 @@ function makeBarcodeInput(placeholderText='', hintText='') { return html; } -qrScanner = null; -qrScannerCallback = null; +// Global variables for qrScanner +var qrScanner = null; +var qrScannerCallback = null; + function startQrScanner() { $('#barcode_scan_video_container').show(); diff --git a/InvenTree/templates/js/translated/bom.js b/InvenTree/templates/js/translated/bom.js index 9cb0f71d3e..779528613d 100644 --- a/InvenTree/templates/js/translated/bom.js +++ b/InvenTree/templates/js/translated/bom.js @@ -1,16 +1,46 @@ {% load i18n %} /* globals + addFieldErrorMessage, + constructField, constructForm, + constructFormBody, + createNewModal, + enableSubmitButton, exportFormatOptions, + formatDecimal, + formatPriceRange, + getApiEndpointOptions, + getFormFieldValue, + handleFormErrors, + handleFormSuccess, imageHoverIcon, + initializeRelatedField, inventreeGet, + inventreeLoad, inventreePut, + inventreeSave, launchModalForm, loadTableFilters, + makeDeleteButton, + makeEditButton, + makeIcon, + makeIconBadge, + makeIconButton, + makeInfoButton, makePartIcons, + makeRemoveButton, + modalSetContent, + partFields, + partGroups, renderLink, setupFilterList, + shortenString, + showApiError, + thumbnailImage, + updateFieldValue, + withTitle, + wrapButtons, yesNoLabel, */ @@ -226,7 +256,7 @@ function submitBomTable(part_id, options={}) { items: rows, }; - var options = { + var opts = { nested: { items: idx_values, } @@ -247,7 +277,7 @@ function submitBomTable(part_id, options={}) { error: function(xhr) { switch (xhr.status) { case 400: - handleFormErrors(xhr.responseJSON, fields, options); + handleFormErrors(xhr.responseJSON, fields, opts); break; default: showApiError(xhr, url); @@ -1092,7 +1122,7 @@ function loadBomTable(table, options={}) { if (any_pricing) { - var html = formatPriceRange(min_price, max_price); + let html = formatPriceRange(min_price, max_price); if (complete_pricing) { html += makeIconBadge( @@ -1109,7 +1139,7 @@ function loadBomTable(table, options={}) { return html; } else { - var html = '{% trans "No pricing available" %}'; + let html = '{% trans "No pricing available" %}'; html += makeIconBadge('fa-times-circle icon-red'); return html; diff --git a/InvenTree/templates/js/translated/build.js b/InvenTree/templates/js/translated/build.js index 49c620e18b..5a7d119f98 100644 --- a/InvenTree/templates/js/translated/build.js +++ b/InvenTree/templates/js/translated/build.js @@ -2,19 +2,49 @@ {% load inventree_extras %} /* globals + addClearCallback, buildStatusDisplay, + clearEvents, + constructExpandCollapseButtons, + constructField, constructForm, + constructOrderTableButtons, + endDate, + formatDecimal, + FullCalendar, + getFormFieldValue, + getTableData,0 + handleFormErrors, + handleFormSuccess, imageHoverIcon, + initializeRelatedField, inventreeGet, + inventreeLoad, + inventreePut, launchModalForm, linkButtonsToSelection, loadTableFilters, + makeDeleteButton, + makeEditButton, + makeRemoveButton, makeIconBadge, makeIconButton, makePartIcons, makeProgressBar, + orderParts, + renderDate, renderLink, setupFilterList, + shortenString, + showAlertDialog, + showApiError, + startDate, + stockStatusDisplay, + showApiErrors, + thumbnailImage, + updateFieldValue, + wrapButtons, + yesNoLabel, */ /* exported @@ -675,9 +705,9 @@ function scrapBuildOutputs(build_id, outputs, options={}) {
{% trans "Selected build outputs will be marked as scrapped" %}
@@ -2687,6 +2717,8 @@ function loadBuildTable(table, options) { var filters = loadTableFilters('build', params); + var calendar = null; + var filterTarget = options.filterTarget || null; setupFilterList('build', table, filterTarget, { @@ -2944,7 +2976,7 @@ function loadBuildTable(table, options) { if (!loaded_calendar) { loaded_calendar = true; - var el = document.getElementById('build-order-calendar'); + let el = document.getElementById('build-order-calendar'); calendar = new FullCalendar.Calendar(el, { initialView: 'dayGridMonth', diff --git a/InvenTree/templates/js/translated/charts.js b/InvenTree/templates/js/translated/charts.js index 9166cf0d13..3cd4bb6de5 100644 --- a/InvenTree/templates/js/translated/charts.js +++ b/InvenTree/templates/js/translated/charts.js @@ -2,6 +2,7 @@ {% load inventree_extras %} /* globals + Chart, */ /* exported diff --git a/InvenTree/templates/js/translated/company.js b/InvenTree/templates/js/translated/company.js index d187d582e4..47158a51b7 100644 --- a/InvenTree/templates/js/translated/company.js +++ b/InvenTree/templates/js/translated/company.js @@ -1,11 +1,26 @@ {% load i18n %} /* globals + constructLabel, constructForm, + formatCurrency, + formatDecimal, + formatDate, + handleFormSuccess, imageHoverIcon, + inventreeGet, + inventreePut, loadTableFilters, + makeDeleteButton, + makeEditButton, + makeIconBadge, + renderClipboard, + renderDate, renderLink, + renderPart, setupFilterList, + thumbnailImage, + wrapButtons, */ /* exported @@ -369,7 +384,6 @@ function createSupplierPartPriceBreak(part_id, options={}) { constructForm('{% url "api-part-supplier-price-list" %}', { fields: fields, method: 'POST', - fields: fields, title: '{% trans "Add Price Break" %}', onSuccess: function(response) { handleFormSuccess(response, options); @@ -634,6 +648,7 @@ function deleteContacts(contacts, options={}) { ids.push(contact.pk); }); + // eslint-disable-next-line no-useless-escape let html = `
{% trans "All selected contacts will be deleted" %} diff --git a/InvenTree/templates/js/translated/filters.js b/InvenTree/templates/js/translated/filters.js index 9af6962202..767796a056 100644 --- a/InvenTree/templates/js/translated/filters.js +++ b/InvenTree/templates/js/translated/filters.js @@ -1,9 +1,14 @@ {% load i18n %} /* globals + downloadTableData, getAvailableTableFilters, + getTableData, + global_settings, inventreeLoad, inventreeSave, + printLabels, + printReports, reloadTableFilters, */ diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js index cda991d1f6..f273bcfb9f 100644 --- a/InvenTree/templates/js/translated/forms.js +++ b/InvenTree/templates/js/translated/forms.js @@ -3,6 +3,8 @@ /* globals createNewModal, + enableSubmitButton, + formatDecimal, inventreeFormDataUpload, inventreeGet, inventreePut, @@ -10,8 +12,12 @@ modalEnable, modalShowSubmitButton, getModelRenderer, + reloadBootstrapTable, + sanitizeInputString, showAlertOrCache, showApiError, + showMessage, + showModalSpinner, */ /* exported @@ -617,10 +623,12 @@ function constructFormBody(fields, options) { if (options.preFormContent) { + let content = ''; + if (typeof(options.preFormContent) === 'function') { - var content = options.preFormContent(options); + content = options.preFormContent(options); } else { - var content = options.preFormContent; + content = options.preFormContent; } $(modal).find('#pre-form-content').html(content); @@ -1270,7 +1278,7 @@ function handleNestedArrayErrors(errors, field_name, options={}) { // Nest list must be provided! if (!nest_list) { - console.warn(`handleNestedArrayErrors missing nesting options for field '${fieldName}'`); + console.warn(`handleNestedArrayErrors missing nesting options for field '${field_name}'`); return; } @@ -1287,9 +1295,9 @@ function handleNestedArrayErrors(errors, field_name, options={}) { var nest_id = nest_list[idx]; // Here, error_item is a map of field names to error messages - for (sub_field_name in error_item) { + for (var sub_field_name in error_item) { - var errors = error_item[sub_field_name]; + var sub_errors = error_item[sub_field_name]; if (sub_field_name == 'non_field_errors') { @@ -1301,11 +1309,11 @@ function handleNestedArrayErrors(errors, field_name, options={}) { row = $(`#items_${nest_id}`); } - for (var ii = errors.length - 1; ii >= 0; ii--) { + for (var ii = sub_errors.length - 1; ii >= 0; ii--) { var html = `
- ${errors[ii]} + ${sub_errors[ii]}
`; row.after(html); @@ -1443,7 +1451,7 @@ function addFieldErrorMessage(name, error_text, error_idx=0, options={}) { return; } - field_name = getFieldName(name, options); + let field_name = getFieldName(name, options); var field_dom = null; @@ -2336,6 +2344,7 @@ function constructInput(name, parameters, options={}) { break; case 'raw': func = constructRawInput; + break; default: // Unsupported field type! break; diff --git a/InvenTree/templates/js/translated/helpers.js b/InvenTree/templates/js/translated/helpers.js index b3623ee5c1..621639b702 100644 --- a/InvenTree/templates/js/translated/helpers.js +++ b/InvenTree/templates/js/translated/helpers.js @@ -1,5 +1,14 @@ {% load i18n %} +/* globals + EasyMDE, + inventreeFormDataUpload, + inventreeGet, + inventreePut, + showApiError, + user_settings, +*/ + /* exported blankImage, deleteButton, @@ -336,8 +345,6 @@ function makeProgressBar(value, maximum, opts={}) { var id = options.id || 'progress-bar'; - var style = ''; - if (opts.max_width) { style += `max-width: ${options.max_width}; `; } @@ -514,6 +521,7 @@ function sanitizeInputString(s, options={}) { } // Remove ASCII control characters + // eslint-disable-next-line no-control-regex s = s.replace(/[\x00-\x1F\x7F]+/g, ''); // Remove Unicode control characters diff --git a/InvenTree/templates/js/translated/label.js b/InvenTree/templates/js/translated/label.js index 1c8543c22d..f27a81903b 100644 --- a/InvenTree/templates/js/translated/label.js +++ b/InvenTree/templates/js/translated/label.js @@ -8,10 +8,13 @@ modalEnable, modalSetContent, modalSetTitle, + modalShowSubmitButton, modalSubmit, openModal, plugins_enabled, showAlertDialog, + showMessage, + user_settings, */ /* exported @@ -96,10 +99,10 @@ function selectLabel(labels, items, options={}) { var html = ''; if (items.length > 0) { - name = items.length == 1 ? options.singular_name : options.plural_name; + let item_name = items.length == 1 ? options.singular_name : options.plural_name; html += `
- ${items.length} ${name} {% trans "selected" %} + ${items.length} ${item_name} {% trans "selected" %}
`; } diff --git a/InvenTree/templates/js/translated/modals.js b/InvenTree/templates/js/translated/modals.js index 0880b55e1a..1ee77b4f86 100644 --- a/InvenTree/templates/js/translated/modals.js +++ b/InvenTree/templates/js/translated/modals.js @@ -2,7 +2,9 @@ /* globals inventreeGet, + QRCode, showAlertOrCache, + user_settings, */ /* exported @@ -856,7 +858,7 @@ function insertActionButton(modal, options) { // check if button already present var already_present = false; for (var child=element[0].firstElementChild; child; child=child.nextElementSibling) { - if (item.firstElementChild.name == options.name) { + if (child.firstElementChild.name == options.name) { already_present = true; } } diff --git a/InvenTree/templates/js/translated/model_renderers.js b/InvenTree/templates/js/translated/model_renderers.js index b9583ac8a8..e610b5531c 100644 --- a/InvenTree/templates/js/translated/model_renderers.js +++ b/InvenTree/templates/js/translated/model_renderers.js @@ -2,8 +2,11 @@ /* globals blankImage, + partStockLabel, + renderLink, select2Thumbnail - shortenString + shortenString, + user_settings */ /* exported diff --git a/InvenTree/templates/js/translated/news.js b/InvenTree/templates/js/translated/news.js index ccbb5e607e..c5e98436a5 100644 --- a/InvenTree/templates/js/translated/news.js +++ b/InvenTree/templates/js/translated/news.js @@ -1,6 +1,15 @@ {% load i18n %} {% load inventree_extras %} + +/* globals + getReadEditButton, + inventreePut, + renderDate, + setupFilterList, +*/ + + /* exported loadNewsFeedTable, */ diff --git a/InvenTree/templates/js/translated/notification.js b/InvenTree/templates/js/translated/notification.js index c5b941e0da..266d2e94d7 100644 --- a/InvenTree/templates/js/translated/notification.js +++ b/InvenTree/templates/js/translated/notification.js @@ -1,5 +1,14 @@ {% load i18n %} + +/* globals + inventreeGet, + inventreePut, + renderLink, + setupFilterList, +*/ + + /* exported loadNotificationTable, startNotificationWatcher, @@ -69,10 +78,10 @@ function loadNotificationTable(table, options={}, enableDelete=false) { formatter: function(value, row, index, field) { var bRead = getReadEditButton(row.pk, row.read); + let bDel = ''; + if (enableDelete) { - var bDel = ``; - } else { - var bDel = ''; + bDel = ``; } var html = `
${bRead}${bDel}
`; @@ -90,12 +99,13 @@ function loadNotificationTable(table, options={}, enableDelete=false) { var notificationWatcher = null; // reference for the notificationWatcher + /** * start the regular notification checks **/ function startNotificationWatcher() { - notificationCheck(force=true); - notificationWatcher = setInterval(notificationCheck, 1000); + notificationCheck(true); + notificationWatcher = setInterval(notificationCheck, 5000); } /** @@ -192,7 +202,8 @@ function updateNotificationReadState(btn, panel_caller=false) { } } ); -}; +} + /** * Returns the html for a read / unread button @@ -203,17 +214,23 @@ function updateNotificationReadState(btn, panel_caller=false) { * - small: should the button be small **/ function getReadEditButton(pk, state, small=false) { + + let bReadText = ''; + let bReadIcon = ''; + let bReadTarget = ''; + if (state) { - var bReadText = '{% trans "Mark as unread" %}'; - var bReadIcon = 'fas fa-bookmark icon-red'; - var bReadTarget = 'unread'; + bReadText = '{% trans "Mark as unread" %}'; + bReadIcon = 'fas fa-bookmark icon-red'; + bReadTarget = 'unread'; } else { - var bReadText = '{% trans "Mark as read" %}'; - var bReadIcon = 'far fa-bookmark icon-green'; - var bReadTarget = 'read'; + bReadText = '{% trans "Mark as read" %}'; + bReadIcon = 'far fa-bookmark icon-green'; + bReadTarget = 'read'; } - var style = (small) ? 'btn-sm ' : ''; + let style = (small) ? 'btn-sm ' : ''; + return ``; } diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index af49ecf57c..8c98a729ce 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -2,7 +2,23 @@ {% load inventree_extras %} /* globals + calculateTotalPrice, + constructForm, + constructFormBody, + exportFormatOptions, + formatCurrency, + getFormFieldValue, inventreeGet, + inventreeLoad, + inventreeSave, + loadTableFilters, + makeCopyButton, + makeDeleteButton, + makeEditButton, + reloadBootstrapTable, + renderLink, + setupFilterList, + wrapButtons, */ /* exported @@ -138,11 +154,13 @@ function exportOrder(redirect_url, options={}) { var TotalPriceRef = ''; // reference to total price field var TotalPriceOptions = {}; // options to reload the price + function loadOrderTotal(reference, options={}) { TotalPriceRef = reference; TotalPriceOptions = options; } + function reloadTotal() { inventreeGet( TotalPriceOptions.url, @@ -153,7 +171,7 @@ function reloadTotal() { } } ); -}; +} /* diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index eb5341a537..5a709de6db 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -2,19 +2,48 @@ {% load inventree_extras %} /* globals + baseCurrency, Chart, constructForm, + constructFormBody, + convertCurrency, + formatCurrency, + formatDecimal, + formatPriceRange, + getCurrencyConversionRates, + getFormFieldValue, + getTableData, global_settings, + handleFormErrors, + handleFormSuccess, imageHoverIcon, inventreeGet, + inventreeLoad, inventreePut, + inventreeSave, linkButtonsToSelection, loadTableFilters, + makeDeleteButton, + makeEditButton, makeIconBadge, makeIconButton, + moment, + orderParts, + purchaseOrderStatusDisplay, + receivePurchaseOrderItems, + renderClipboard, + renderDate, renderLink, setFormGroupVisibility, setupFilterList, + shortenString, + showAlertDialog, + showApiError, + showMessage, + showModalSpinner, + thumbnailImage, + withTitle, + wrapButtons, yesNoLabel, */ @@ -2300,7 +2329,7 @@ function loadPartTable(table, url, options={}) { $(table).bootstrapTable('refresh'); } - }; + } // Start the ball rolling showModalSpinner(opts.modal); diff --git a/InvenTree/templates/js/translated/plugin.js b/InvenTree/templates/js/translated/plugin.js index f17d8505f7..199d475242 100644 --- a/InvenTree/templates/js/translated/plugin.js +++ b/InvenTree/templates/js/translated/plugin.js @@ -3,6 +3,9 @@ /* globals constructForm, + showMessage, + inventreeGet, + inventreePut, */ /* exported @@ -20,7 +23,7 @@ function installPlugin() { confirm: {}, }, onSuccess: function(data) { - msg = '{% trans "The Plugin was installed" %}'; + let msg = '{% trans "The Plugin was installed" %}'; showMessage(msg, {style: 'success', details: data.result, timeout: 30000}); } }); diff --git a/InvenTree/templates/js/translated/pricing.js b/InvenTree/templates/js/translated/pricing.js index 37bec92137..4a6de41fcc 100644 --- a/InvenTree/templates/js/translated/pricing.js +++ b/InvenTree/templates/js/translated/pricing.js @@ -4,6 +4,20 @@ /* Functions for retrieving and displaying pricing data */ /* globals + constructForm, + global_settings, + imageHoverIcon, + inventreeGet, + loadBarChart, + loadDoughnutChart, + makeEditButton, + makeDeleteButton, + randomColor, + renderDate, + renderLink, + shortenString, + withTitle, + wrapButtons, */ /* exported @@ -150,7 +164,7 @@ function calculateTotalPrice(dataset, value_func, currency_func, options={}) { var common_currency = true; for (var idx = 0; idx < dataset.length; idx++) { - var row = dataset[idx]; + let row = dataset[idx]; var row_currency = currency_func(row); @@ -177,7 +191,7 @@ function calculateTotalPrice(dataset, value_func, currency_func, options={}) { var total = null; for (var ii = 0; ii < dataset.length; ii++) { - var row = dataset[ii]; + let row = dataset[ii]; // Pass the row back to the decoder var value = value_func(row); diff --git a/InvenTree/templates/js/translated/purchase_order.js b/InvenTree/templates/js/translated/purchase_order.js index 4b075c0b37..038d6a88b6 100644 --- a/InvenTree/templates/js/translated/purchase_order.js +++ b/InvenTree/templates/js/translated/purchase_order.js @@ -2,20 +2,60 @@ {% load inventree_extras %} /* globals + addClearCallback, + addFieldCallback, + barcodeDialog, + calculateTotalPrice, + clearEvents, + closeModal, + constructFormBody, companyFormFields, + constructField, constructForm, + constructOrderTableButtons, createSupplierPart, + endDate, + formatCurrency, + formatDecimal, + FullCalendar, + initializeChoiceField, + initializeRelatedField, + getFormFieldElement, + getFormFieldValue, + getTableData, global_settings, + handleFormErrors, + handleFormSuccess, imageHoverIcon, inventreeGet, + inventreeLoad, + inventreePut, launchModalForm, + linkButtonsToSelection, loadTableFilters, + makeCopyButton, + makeDeleteButton, + makeEditButton, makeIconBadge, + makeIconButton, + makeProgressBar, + makeRemoveButton, purchaseOrderStatusDisplay, - receivePurchaseOrderItems, + reloadBootstrapTable, + renderClipboard, + renderDate, renderLink, + showAlertDialog, + showApiError, + showBarcodeMessage, + setRelatedFieldData, setupFilterList, + startDate, + stockCodes, supplierPartFields, + thumbnailImage, + updateFieldValue, + wrapButtons, */ /* exported @@ -169,7 +209,7 @@ function createPurchaseOrder(options={}) { title: '{% trans "Duplication Options" %}', collapsible: false, }; - }; + } constructForm('{% url "api-po-list" %}', { method: 'POST', @@ -273,8 +313,7 @@ function poLineItemFields(options={}) { success: function(response) { // Returned prices are in increasing order of quantity if (response.length > 0) { - var idx = 0; - var index = 0; + let index = 0; for (var idx = 0; idx < response.length; idx++) { if (response[idx].quantity > quantity) { @@ -1711,9 +1750,9 @@ function loadPurchaseOrderTable(table, options) { onLoadSuccess: function() { if (display_mode == 'calendar') { - var el = document.getElementById('purchase-order-calendar'); + let el = document.getElementById('purchase-order-calendar'); - calendar = new FullCalendar.Calendar(el, { + let calendar = new FullCalendar.Calendar(el, { initialView: 'dayGridMonth', nowIndicator: true, aspectRatio: 2.5, diff --git a/InvenTree/templates/js/translated/return_order.js b/InvenTree/templates/js/translated/return_order.js index 13e34e721b..49e3b9d7ad 100644 --- a/InvenTree/templates/js/translated/return_order.js +++ b/InvenTree/templates/js/translated/return_order.js @@ -4,11 +4,31 @@ /* globals companyFormFields, constructForm, + formatCurrency, + getFormFieldValue, + global_settings, + handleFormErrors, + handleFormSuccess, imageHoverIcon, + inventreeLoad, + inventreePut, loadTableFilters, + makeDeleteButton, + makeEditButton, + makeIconBadge, + makeIconButton, + makeRemoveButton, + reloadBootstrapTable, + renderDate, renderLink, + returnOrderLineItemStatusDisplay, returnOrderStatusDisplay, setupFilterList, + showApiError, + showAlertDialog, + thumbnailImage, + wrapButtons, + yesNoLabel, */ /* exported diff --git a/InvenTree/templates/js/translated/sales_order.js b/InvenTree/templates/js/translated/sales_order.js index 89cb3dd7bd..5b3f04adef 100644 --- a/InvenTree/templates/js/translated/sales_order.js +++ b/InvenTree/templates/js/translated/sales_order.js @@ -3,17 +3,50 @@ /* globals + addClearCallback, + calculateTotalPrice, + clearEvents, companyFormFields, + constructExpandCollapseButtons, + constructField, constructForm, + constructOrderTableButtons, + endDate, + formatCurrency, + FullCalendar, + getFormFieldValue, global_settings, + handleFormErrors, + handleFormSuccess, imageHoverIcon, + initializeRelatedField, inventreeGet, + inventreeLoad, + inventreePut, launchModalForm, + locationDetail, loadTableFilters, + makeCopyButton, + makeEditButton, + makeDeleteButton, makeIconBadge, + makeIconButton, + makeProgressBar, + makeRemoveButton, + moment, + newBuildOrder, + orderParts, + reloadTotal, + renderDate, renderLink, salesOrderStatusDisplay, setupFilterList, + showAlertDialog, + showApiError, + startDate, + thumbnailImage, + updateFieldValue, + wrapButtons, */ /* exported @@ -359,7 +392,7 @@ function completePendingShipments(order_id, options={}) { completePendingShipmentsHelper(allocated_shipments, 0, options); } else { - html = ` + let html = `
`; @@ -698,7 +731,7 @@ function loadSalesOrderTable(table, options) { if (display_mode == 'calendar') { var el = document.getElementById('purchase-order-calendar'); - calendar = new FullCalendar.Calendar(el, { + let calendar = new FullCalendar.Calendar(el, { initialView: 'dayGridMonth', nowIndicator: true, aspectRatio: 2.5, @@ -1557,11 +1590,8 @@ function showAllocationSubTable(index, row, element, options) { field: 'allocated', title: '{% trans "Stock Item" %}', formatter: function(value, row, index, field) { - var text = ''; - - var item = row.item_detail; - - var text = `{% trans "Quantity" %}: ${row.quantity}`; + let item = row.item_detail; + let text = `{% trans "Quantity" %}: ${row.quantity}`; if (item && item.serial != null && row.quantity == 1) { text = `{% trans "Serial Number" %}: ${item.serial}`; @@ -1977,10 +2007,10 @@ function loadSalesOrderLineItemTable(table, options={}) { var title = '{% trans "Delete line item" %}'; - if (!!row.shipped) { + if (row.shipped) { delete_disabled = true; title = '{% trans "Cannot be deleted as items have been shipped" %}'; - } else if (!!row.allocated) { + } else if (row.allocated) { delete_disabled = true; title = '{% trans "Cannot be deleted as items have been allocated" %}'; } diff --git a/InvenTree/templates/js/translated/search.js b/InvenTree/templates/js/translated/search.js index 3181cb8a98..26d8caadc4 100644 --- a/InvenTree/templates/js/translated/search.js +++ b/InvenTree/templates/js/translated/search.js @@ -1,6 +1,11 @@ {% load i18n %} /* globals + getModelRenderer, + inventreeGet, + inventreePut, + sanitizeInputString, + user_settings, */ /* exported @@ -102,6 +107,10 @@ var searchQuery = null; var searchResultTypes = []; var searchRequest = null; + +/* + * Callback for when the search text is changed + */ function searchTextChanged(event) { var text = $('#offcanvas-search').find('#search-input').val(); @@ -110,9 +119,12 @@ function searchTextChanged(event) { clearTimeout(searchInputTimer); searchInputTimer = setTimeout(updateSearch, 250); -}; +} +/* + * Update the search results + */ function updateSearch() { if (searchText == searchTextCurrent) { diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js index 39694458d0..e2aa8d72a3 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -3,25 +3,61 @@ {% load status_codes %} /* globals + addCachedAlert, + baseCurrency, + calculateTotalPrice, + clearFormInput, constructField, + constructForm, constructFormBody, + convertCurrency, + disableFormInput, + enableFormInput, + formatCurrency, + formatDecimal, + formatPriceRange, + getCurrencyConversionRates, getFormFieldValue, + getTableData, global_settings, handleFormErrors, + handleFormSuccess, imageHoverIcon, + initializeRelatedField, + inventreeDelete, inventreeGet, + inventreeLoad, inventreePut, + inventreeSave, launchModalForm, linkButtonsToSelection, loadTableFilters, + makeDeleteButton, + makeEditButton, makeIconBadge, makeIconButton, + makeRemoveButton, + orderParts, + partDetail, + renderClipboard, + renderDate, renderLink, scanItemsIntoLocation, - showAlertDialog, + setFormInputPlaceholder, setupFilterList, + shortenString, + showAlertDialog, + showAlertOrCache, + showMessage, + showModalSpinner, showApiError, + stockCodes, stockStatusDisplay, + thumbnailImage, + updateFieldValue, + withTitle, + wrapButtons, + yesNoLabel, */ /* exported @@ -792,7 +828,7 @@ function mergeStockItems(items, options={}) { } var part = item.part_detail; - var location = locationDetail(item, false); + let location_detail = locationDetail(item, false); var thumbnail = thumbnailImage(part.thumbnail || part.image); @@ -824,7 +860,7 @@ function mergeStockItems(items, options={}) {
-
+ `; diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index b2567743c9..c9a7473ccf 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -3,10 +3,14 @@ {% load inventree_extras %} /* globals - global_settings + buildCodes, + global_settings, + inventreeGet, purchaseOrderCodes, returnOrderCodes, + returnOrderLineItemCodes, salesOrderCodes, + stockCodes, */ /* exported @@ -449,7 +453,7 @@ function getBuildTableFilters() { inventreeGet('{% url "api-owner-list" %}', {}, { async: false, success: function(response) { - for (key in response) { + for (var key in response) { var owner = response[key]; ownersList[owner.pk] = { key: owner.pk, diff --git a/InvenTree/templates/js/translated/tables.js b/InvenTree/templates/js/translated/tables.js index 2af0f72529..0116f9e536 100644 --- a/InvenTree/templates/js/translated/tables.js +++ b/InvenTree/templates/js/translated/tables.js @@ -1,8 +1,14 @@ {% load i18n %} /* global + constructFormBody, + exportFormatOptions, + getFormFieldValue, inventreeLoad, inventreeSave, + sanitizeData, + sanitizeInputString, + user_settings, */ /* exported @@ -58,7 +64,7 @@ function constructOrderTableButtons(options={}) { var display_mode = options.display; - var key = `${options.prefix || order}-table-display-mode`; + var key = `${options.prefix || 'order'}-table-display-mode`; // If display mode is not provided, look up from session if (!display_mode) { @@ -262,7 +268,7 @@ function reloadTableFilters(table, filters, options={}) { } // More complex refresh with new filters supplied - var options = table.bootstrapTable('getOptions'); + options = table.bootstrapTable('getOptions'); // Construct a new list of filters to use for the query var params = {}; @@ -559,7 +565,7 @@ function customGroupSorter(sortName, sortOrder, sortData) { }, formatShowingRows: function(pageFrom, pageTo, totalRows) { - if (totalRows === undefined || totalRows === NaN) { + if (totalRows === undefined || isNaN(totalRows)) { return '{% trans "Showing all rows" %}'; } else { return `{% trans "Showing" %} ${pageFrom} {% trans "to" %} ${pageTo} {% trans "of" %} ${totalRows} {% trans "rows" %}`; diff --git a/package-lock.json b/package-lock.json index 4e1ea862a6..aa9e4632b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "InvenTree", - "lockfileVersion": 3, + "name": "inventree", + "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { - "eslint": "^8.39.0", + "eslint": "^8.41.0", "eslint-config-google": "^0.14.0" } }, @@ -24,21 +24,21 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -54,9 +54,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", + "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -299,14 +299,14 @@ } }, "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", + "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.41.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -317,8 +317,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -326,13 +326,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -381,9 +380,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -392,13 +391,13 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -516,6 +515,25 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, + "node_modules/glob": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -541,10 +559,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/has-flag": { "version": "4.0.0", @@ -631,15 +649,6 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -866,25 +875,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/glob": { - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -1032,5 +1022,704 @@ "url": "https://github.com/sponsors/sindresorhus" } } + }, + "dependencies": { + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==" + }, + "@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", + "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==" + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", + "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.41.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-config-google": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "requires": {} + }, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==" + }, + "espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "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-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } } } diff --git a/package.json b/package.json index 528de372ac..e8457c0098 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "eslint": "^8.39.0", + "eslint": "^8.41.0", "eslint-config-google": "^0.14.0" } }
${location}${location_detail} ${buttons}