mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Fix JS linting workflow (#4915)
* Add bad .js code - Call function which has not been defined - Should throw JS lint error * update eslint - Move to newer version of eslint - Change default rules * Fixes for tables.js * Fixes for table_filters.js * Fixes for stock.js * Fix for sales_order.js and search.js * Fix return_order.js * Fixes for purchase_order.js * More updates - part.js - plugin.js - pricing.js * Updates - order.js * Even morerer updates - label.js - modals.js - model_renderers.js - news.js - notification.js * More, MORE! - build.js - company.js - charts.js - filters.js - forms.js - helpers.js * Final? - api.js - attachment.js - barcode.js - bom.js * Fix 'useless-escape' * Disable no-useless-escape rule
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
| {% load inventree_extras %} | ||||
|  | ||||
| /* globals | ||||
|     showMessage, | ||||
| */ | ||||
|  | ||||
| /* exported | ||||
|   | ||||
| @@ -1,7 +1,17 @@ | ||||
| {% load i18n %} | ||||
|  | ||||
| /* globals | ||||
|     constructForm, | ||||
|     getTableData, | ||||
|     enableDragAndDrop, | ||||
|     makeDeleteButton, | ||||
|     makeEditButton, | ||||
|     makeIcon, | ||||
|     reloadBootstrapTable, | ||||
|     renderDate, | ||||
|     renderLink, | ||||
|     setupFilterList, | ||||
|     showApiError, | ||||
|     wrapButtons, | ||||
| */ | ||||
|  | ||||
|   | ||||
| @@ -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(); | ||||
|   | ||||
| @@ -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 = '<em>{% trans "No pricing available" %}</em>'; | ||||
|                 let html = '<em>{% trans "No pricing available" %}</em>'; | ||||
|                 html += makeIconBadge('fa-times-circle icon-red'); | ||||
|  | ||||
|                 return html; | ||||
|   | ||||
| @@ -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,7 +705,7 @@ function scrapBuildOutputs(build_id, outputs, options={}) { | ||||
|     <div class='alert alert-block alert-danger'> | ||||
|     {% trans "Selected build outputs will be marked as scrapped" %} | ||||
|     <ul> | ||||
|     <li>{% trans "Scrapped output are given the 'rejected' status" %}</li> | ||||
|         <li>{% trans "Scrapped output are marked as rejected" %}</li> | ||||
|         <li>{% trans "Allocated stock items will no longer be available" %}</li> | ||||
|         <li>{% trans "The completion status of the build order will not be adjusted" %}</li> | ||||
|     </ul> | ||||
| @@ -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', | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
| {% load inventree_extras %} | ||||
|  | ||||
| /* globals | ||||
|     Chart, | ||||
| */ | ||||
|  | ||||
| /* exported | ||||
|   | ||||
| @@ -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 = ` | ||||
|     <div class='alert alert-block alert-danger'> | ||||
|     {% trans "All selected contacts will be deleted" %} | ||||
|   | ||||
| @@ -1,9 +1,14 @@ | ||||
| {% load i18n %} | ||||
|  | ||||
| /* globals | ||||
|     downloadTableData, | ||||
|     getAvailableTableFilters, | ||||
|     getTableData, | ||||
|     global_settings, | ||||
|     inventreeLoad, | ||||
|     inventreeSave, | ||||
|     printLabels, | ||||
|     printReports, | ||||
|     reloadTableFilters, | ||||
| */ | ||||
|  | ||||
|   | ||||
| @@ -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 = ` | ||||
|                     <div id='error_${ii}_non_field_error' class='help-block form-field-error form-error-message'> | ||||
|                         <strong>${errors[ii]}</strong> | ||||
|                         <strong>${sub_errors[ii]}</strong> | ||||
|                     </div>`; | ||||
|  | ||||
|                     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; | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 += ` | ||||
|         <div class='alert alert-block alert-info'> | ||||
|         ${items.length} ${name} {% trans "selected" %} | ||||
|         ${items.length} ${item_name} {% trans "selected" %} | ||||
|         </div>`; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -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; | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -2,8 +2,11 @@ | ||||
|  | ||||
| /* globals | ||||
|     blankImage, | ||||
|     partStockLabel, | ||||
|     renderLink, | ||||
|     select2Thumbnail | ||||
|     shortenString | ||||
|     shortenString, | ||||
|     user_settings | ||||
| */ | ||||
|  | ||||
| /* exported | ||||
|   | ||||
| @@ -1,6 +1,15 @@ | ||||
| {% load i18n %} | ||||
| {% load inventree_extras %} | ||||
|  | ||||
|  | ||||
| /* globals | ||||
|     getReadEditButton, | ||||
|     inventreePut, | ||||
|     renderDate, | ||||
|     setupFilterList, | ||||
| */ | ||||
|  | ||||
|  | ||||
| /* exported | ||||
|     loadNewsFeedTable, | ||||
| */ | ||||
|   | ||||
| @@ -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 = `<button title='{% trans "Delete Notification" %}' class='notification-delete btn btn-outline-secondary' type='button' pk='${row.pk}'><span class='fas fa-trash-alt icon-red'></span></button>`; | ||||
|                     } else { | ||||
|                         var bDel = ''; | ||||
|                         bDel = `<button title='{% trans "Delete Notification" %}' class='notification-delete btn btn-outline-secondary' type='button' pk='${row.pk}'><span class='fas fa-trash-alt icon-red'></span></button>`; | ||||
|                     } | ||||
|  | ||||
|                     var html = `<div class='btn-group float-right' role='group'>${bRead}${bDel}</div>`; | ||||
| @@ -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 `<button title='${bReadText}' class='notification-read btn ${style}btn-outline-secondary float-right' type='button' pk='${pk}' target='${bReadTarget}'><span class='${bReadIcon}'></span></button>`; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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() { | ||||
|             } | ||||
|         } | ||||
|     ); | ||||
| }; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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}); | ||||
|         } | ||||
|     }); | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 = ` | ||||
|         <div class='alert alert-block alert-danger'> | ||||
|         `; | ||||
|  | ||||
| @@ -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" %}'; | ||||
|                 } | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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={}) { | ||||
|                     <div id='errors-items_item_${pk}'></div> | ||||
|                 </div> | ||||
|             </td> | ||||
|             <td id='location_${pk}'>${location}</td> | ||||
|             <td id='location_${pk}'>${location_detail}</td> | ||||
|             <td id='buttons_${pk}'>${buttons}</td> | ||||
|         </tr> | ||||
|         `; | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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" %}`; | ||||
|   | ||||
							
								
								
									
										811
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										811
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -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==" | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "dependencies": { | ||||
|     "eslint": "^8.39.0", | ||||
|     "eslint": "^8.41.0", | ||||
|     "eslint-config-google": "^0.14.0" | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user