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 |   es2021: true | ||||||
|   jquery: true |   jquery: true | ||||||
| extends: | extends: | ||||||
|   - google |   - eslint:recommended | ||||||
| parserOptions: | parserOptions: | ||||||
|   ecmaVersion: 12 |   ecmaVersion: 12 | ||||||
| rules: | rules: | ||||||
| @@ -19,6 +19,8 @@ rules: | |||||||
|   valid-jsdoc: off |   valid-jsdoc: off | ||||||
|   no-multiple-empty-lines: off |   no-multiple-empty-lines: off | ||||||
|   comma-dangle: off |   comma-dangle: off | ||||||
|  |   no-unused-vars: off | ||||||
|  |   no-useless-escape: off | ||||||
|   prefer-spread: off |   prefer-spread: off | ||||||
|   indent: |   indent: | ||||||
|     - error |     - error | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     showMessage, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|   | |||||||
| @@ -1,7 +1,17 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     constructForm, | ||||||
|  |     getTableData, | ||||||
|  |     enableDragAndDrop, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeIcon, | ||||||
|  |     reloadBootstrapTable, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|  |     setupFilterList, | ||||||
|  |     showApiError, | ||||||
|     wrapButtons, |     wrapButtons, | ||||||
| */ | */ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,15 +1,26 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     createNewModal, | ||||||
|  |     global_settings, | ||||||
|  |     handleFormError, | ||||||
|  |     handleFormSuccess, | ||||||
|  |     Html5Qrcode, | ||||||
|  |     Html5QrcodeScannerState, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     inventreeGet, | ||||||
|     inventreePut, |     inventreePut, | ||||||
|  |     makeIcon, | ||||||
|  |     makeRemoveButton, | ||||||
|     modalEnable, |     modalEnable, | ||||||
|     modalSetContent, |     modalSetContent, | ||||||
|     modalSetTitle, |     modalSetTitle, | ||||||
|     modalSetSubmitText, |     modalSetSubmitText, | ||||||
|     modalShowSubmitButton, |     modalShowSubmitButton, | ||||||
|     modalSubmit, |     modalSubmit, | ||||||
|  |     showApiError, | ||||||
|     showQuestionDialog, |     showQuestionDialog, | ||||||
|  |     user_settings, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -57,8 +68,10 @@ function makeBarcodeInput(placeholderText='', hintText='') { | |||||||
|     return html; |     return html; | ||||||
| } | } | ||||||
|  |  | ||||||
| qrScanner = null; | // Global variables for qrScanner | ||||||
| qrScannerCallback = null; | var qrScanner = null; | ||||||
|  | var qrScannerCallback = null; | ||||||
|  |  | ||||||
|  |  | ||||||
| function startQrScanner() { | function startQrScanner() { | ||||||
|     $('#barcode_scan_video_container').show(); |     $('#barcode_scan_video_container').show(); | ||||||
|   | |||||||
| @@ -1,16 +1,46 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     addFieldErrorMessage, | ||||||
|  |     constructField, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     constructFormBody, | ||||||
|  |     createNewModal, | ||||||
|  |     enableSubmitButton, | ||||||
|     exportFormatOptions, |     exportFormatOptions, | ||||||
|  |     formatDecimal, | ||||||
|  |     formatPriceRange, | ||||||
|  |     getApiEndpointOptions, | ||||||
|  |     getFormFieldValue, | ||||||
|  |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     initializeRelatedField, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|     inventreePut, |     inventreePut, | ||||||
|  |     inventreeSave, | ||||||
|     launchModalForm, |     launchModalForm, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeIcon, | ||||||
|  |     makeIconBadge, | ||||||
|  |     makeIconButton, | ||||||
|  |     makeInfoButton, | ||||||
|     makePartIcons, |     makePartIcons, | ||||||
|  |     makeRemoveButton, | ||||||
|  |     modalSetContent, | ||||||
|  |     partFields, | ||||||
|  |     partGroups, | ||||||
|     renderLink, |     renderLink, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     shortenString, | ||||||
|  |     showApiError, | ||||||
|  |     thumbnailImage, | ||||||
|  |     updateFieldValue, | ||||||
|  |     withTitle, | ||||||
|  |     wrapButtons, | ||||||
|     yesNoLabel, |     yesNoLabel, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| @@ -226,7 +256,7 @@ function submitBomTable(part_id, options={}) { | |||||||
|         items: rows, |         items: rows, | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     var options = { |     var opts = { | ||||||
|         nested: { |         nested: { | ||||||
|             items: idx_values, |             items: idx_values, | ||||||
|         } |         } | ||||||
| @@ -247,7 +277,7 @@ function submitBomTable(part_id, options={}) { | |||||||
|             error: function(xhr) { |             error: function(xhr) { | ||||||
|                 switch (xhr.status) { |                 switch (xhr.status) { | ||||||
|                 case 400: |                 case 400: | ||||||
|                     handleFormErrors(xhr.responseJSON, fields, options); |                     handleFormErrors(xhr.responseJSON, fields, opts); | ||||||
|                     break; |                     break; | ||||||
|                 default: |                 default: | ||||||
|                     showApiError(xhr, url); |                     showApiError(xhr, url); | ||||||
| @@ -1092,7 +1122,7 @@ function loadBomTable(table, options={}) { | |||||||
|  |  | ||||||
|             if (any_pricing) { |             if (any_pricing) { | ||||||
|  |  | ||||||
|                 var html = formatPriceRange(min_price, max_price); |                 let html = formatPriceRange(min_price, max_price); | ||||||
|  |  | ||||||
|                 if (complete_pricing) { |                 if (complete_pricing) { | ||||||
|                     html += makeIconBadge( |                     html += makeIconBadge( | ||||||
| @@ -1109,7 +1139,7 @@ function loadBomTable(table, options={}) { | |||||||
|                 return html; |                 return html; | ||||||
|  |  | ||||||
|             } else { |             } else { | ||||||
|                 var html = '<em>{% trans "No pricing available" %}</em>'; |                 let html = '<em>{% trans "No pricing available" %}</em>'; | ||||||
|                 html += makeIconBadge('fa-times-circle icon-red'); |                 html += makeIconBadge('fa-times-circle icon-red'); | ||||||
|  |  | ||||||
|                 return html; |                 return html; | ||||||
|   | |||||||
| @@ -2,19 +2,49 @@ | |||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     addClearCallback, | ||||||
|     buildStatusDisplay, |     buildStatusDisplay, | ||||||
|  |     clearEvents, | ||||||
|  |     constructExpandCollapseButtons, | ||||||
|  |     constructField, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     constructOrderTableButtons, | ||||||
|  |     endDate, | ||||||
|  |     formatDecimal, | ||||||
|  |     FullCalendar, | ||||||
|  |     getFormFieldValue, | ||||||
|  |     getTableData,0 | ||||||
|  |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     initializeRelatedField, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|  |     inventreePut, | ||||||
|     launchModalForm, |     launchModalForm, | ||||||
|     linkButtonsToSelection, |     linkButtonsToSelection, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeRemoveButton, | ||||||
|     makeIconBadge, |     makeIconBadge, | ||||||
|     makeIconButton, |     makeIconButton, | ||||||
|     makePartIcons, |     makePartIcons, | ||||||
|     makeProgressBar, |     makeProgressBar, | ||||||
|  |     orderParts, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     shortenString, | ||||||
|  |     showAlertDialog, | ||||||
|  |     showApiError, | ||||||
|  |     startDate, | ||||||
|  |     stockStatusDisplay, | ||||||
|  |     showApiErrors, | ||||||
|  |     thumbnailImage, | ||||||
|  |     updateFieldValue, | ||||||
|  |     wrapButtons, | ||||||
|  |     yesNoLabel, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -675,9 +705,9 @@ function scrapBuildOutputs(build_id, outputs, options={}) { | |||||||
|     <div class='alert alert-block alert-danger'> |     <div class='alert alert-block alert-danger'> | ||||||
|     {% trans "Selected build outputs will be marked as scrapped" %} |     {% trans "Selected build outputs will be marked as scrapped" %} | ||||||
|     <ul> |     <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 "Allocated stock items will no longer be available" %}</li> | ||||||
|     <li>{% trans "The completion status of the build order will not be adjusted" %}</li> |         <li>{% trans "The completion status of the build order will not be adjusted" %}</li> | ||||||
|     </ul> |     </ul> | ||||||
|     </div> |     </div> | ||||||
|     <table class='table table-striped table-condensed' id='build-scrap-table'> |     <table class='table table-striped table-condensed' id='build-scrap-table'> | ||||||
| @@ -2687,6 +2717,8 @@ function loadBuildTable(table, options) { | |||||||
|  |  | ||||||
|     var filters = loadTableFilters('build', params); |     var filters = loadTableFilters('build', params); | ||||||
|  |  | ||||||
|  |     var calendar = null; | ||||||
|  |  | ||||||
|     var filterTarget = options.filterTarget || null; |     var filterTarget = options.filterTarget || null; | ||||||
|  |  | ||||||
|     setupFilterList('build', table, filterTarget, { |     setupFilterList('build', table, filterTarget, { | ||||||
| @@ -2944,7 +2976,7 @@ function loadBuildTable(table, options) { | |||||||
|                 if (!loaded_calendar) { |                 if (!loaded_calendar) { | ||||||
|                     loaded_calendar = true; |                     loaded_calendar = true; | ||||||
|  |  | ||||||
|                     var el = document.getElementById('build-order-calendar'); |                     let el = document.getElementById('build-order-calendar'); | ||||||
|  |  | ||||||
|                     calendar = new FullCalendar.Calendar(el, { |                     calendar = new FullCalendar.Calendar(el, { | ||||||
|                         initialView: 'dayGridMonth', |                         initialView: 'dayGridMonth', | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     Chart, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|   | |||||||
| @@ -1,11 +1,26 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     constructLabel, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     formatCurrency, | ||||||
|  |     formatDecimal, | ||||||
|  |     formatDate, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     inventreeGet, | ||||||
|  |     inventreePut, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeIconBadge, | ||||||
|  |     renderClipboard, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|  |     renderPart, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     thumbnailImage, | ||||||
|  |     wrapButtons, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -369,7 +384,6 @@ function createSupplierPartPriceBreak(part_id, options={}) { | |||||||
|     constructForm('{% url "api-part-supplier-price-list" %}', { |     constructForm('{% url "api-part-supplier-price-list" %}', { | ||||||
|         fields: fields, |         fields: fields, | ||||||
|         method: 'POST', |         method: 'POST', | ||||||
|         fields: fields, |  | ||||||
|         title: '{% trans "Add Price Break" %}', |         title: '{% trans "Add Price Break" %}', | ||||||
|         onSuccess: function(response) { |         onSuccess: function(response) { | ||||||
|             handleFormSuccess(response, options); |             handleFormSuccess(response, options); | ||||||
| @@ -634,6 +648,7 @@ function deleteContacts(contacts, options={}) { | |||||||
|         ids.push(contact.pk); |         ids.push(contact.pk); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  |     // eslint-disable-next-line no-useless-escape | ||||||
|     let html = ` |     let html = ` | ||||||
|     <div class='alert alert-block alert-danger'> |     <div class='alert alert-block alert-danger'> | ||||||
|     {% trans "All selected contacts will be deleted" %} |     {% trans "All selected contacts will be deleted" %} | ||||||
|   | |||||||
| @@ -1,9 +1,14 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     downloadTableData, | ||||||
|     getAvailableTableFilters, |     getAvailableTableFilters, | ||||||
|  |     getTableData, | ||||||
|  |     global_settings, | ||||||
|     inventreeLoad, |     inventreeLoad, | ||||||
|     inventreeSave, |     inventreeSave, | ||||||
|  |     printLabels, | ||||||
|  |     printReports, | ||||||
|     reloadTableFilters, |     reloadTableFilters, | ||||||
| */ | */ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,6 +3,8 @@ | |||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|     createNewModal, |     createNewModal, | ||||||
|  |     enableSubmitButton, | ||||||
|  |     formatDecimal, | ||||||
|     inventreeFormDataUpload, |     inventreeFormDataUpload, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|     inventreePut, |     inventreePut, | ||||||
| @@ -10,8 +12,12 @@ | |||||||
|     modalEnable, |     modalEnable, | ||||||
|     modalShowSubmitButton, |     modalShowSubmitButton, | ||||||
|     getModelRenderer, |     getModelRenderer, | ||||||
|  |     reloadBootstrapTable, | ||||||
|  |     sanitizeInputString, | ||||||
|     showAlertOrCache, |     showAlertOrCache, | ||||||
|     showApiError, |     showApiError, | ||||||
|  |     showMessage, | ||||||
|  |     showModalSpinner, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -617,10 +623,12 @@ function constructFormBody(fields, options) { | |||||||
|  |  | ||||||
|     if (options.preFormContent) { |     if (options.preFormContent) { | ||||||
|  |  | ||||||
|  |         let content = ''; | ||||||
|  |  | ||||||
|         if (typeof(options.preFormContent) === 'function') { |         if (typeof(options.preFormContent) === 'function') { | ||||||
|             var content = options.preFormContent(options); |             content = options.preFormContent(options); | ||||||
|         } else { |         } else { | ||||||
|             var content = options.preFormContent; |             content = options.preFormContent; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         $(modal).find('#pre-form-content').html(content); |         $(modal).find('#pre-form-content').html(content); | ||||||
| @@ -1270,7 +1278,7 @@ function handleNestedArrayErrors(errors, field_name, options={}) { | |||||||
|  |  | ||||||
|     // Nest list must be provided! |     // Nest list must be provided! | ||||||
|     if (!nest_list) { |     if (!nest_list) { | ||||||
|         console.warn(`handleNestedArrayErrors missing nesting options for field '${fieldName}'`); |         console.warn(`handleNestedArrayErrors missing nesting options for field '${field_name}'`); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -1287,9 +1295,9 @@ function handleNestedArrayErrors(errors, field_name, options={}) { | |||||||
|         var nest_id = nest_list[idx]; |         var nest_id = nest_list[idx]; | ||||||
|  |  | ||||||
|         // Here, error_item is a map of field names to error messages |         // 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') { |             if (sub_field_name == 'non_field_errors') { | ||||||
|  |  | ||||||
| @@ -1301,11 +1309,11 @@ function handleNestedArrayErrors(errors, field_name, options={}) { | |||||||
|                     row = $(`#items_${nest_id}`); |                     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 = ` |                     var html = ` | ||||||
|                     <div id='error_${ii}_non_field_error' class='help-block form-field-error form-error-message'> |                     <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>`; |                     </div>`; | ||||||
|  |  | ||||||
|                     row.after(html); |                     row.after(html); | ||||||
| @@ -1443,7 +1451,7 @@ function addFieldErrorMessage(name, error_text, error_idx=0, options={}) { | |||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     field_name = getFieldName(name, options); |     let field_name = getFieldName(name, options); | ||||||
|  |  | ||||||
|     var field_dom = null; |     var field_dom = null; | ||||||
|  |  | ||||||
| @@ -2336,6 +2344,7 @@ function constructInput(name, parameters, options={}) { | |||||||
|         break; |         break; | ||||||
|     case 'raw': |     case 'raw': | ||||||
|         func = constructRawInput; |         func = constructRawInput; | ||||||
|  |         break; | ||||||
|     default: |     default: | ||||||
|         // Unsupported field type! |         // Unsupported field type! | ||||||
|         break; |         break; | ||||||
|   | |||||||
| @@ -1,5 +1,14 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
|  | /* globals | ||||||
|  |     EasyMDE, | ||||||
|  |     inventreeFormDataUpload, | ||||||
|  |     inventreeGet, | ||||||
|  |     inventreePut, | ||||||
|  |     showApiError, | ||||||
|  |     user_settings, | ||||||
|  | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|     blankImage, |     blankImage, | ||||||
|     deleteButton, |     deleteButton, | ||||||
| @@ -336,8 +345,6 @@ function makeProgressBar(value, maximum, opts={}) { | |||||||
|  |  | ||||||
|     var id = options.id || 'progress-bar'; |     var id = options.id || 'progress-bar'; | ||||||
|  |  | ||||||
|     var style = ''; |  | ||||||
|  |  | ||||||
|     if (opts.max_width) { |     if (opts.max_width) { | ||||||
|         style += `max-width: ${options.max_width}; `; |         style += `max-width: ${options.max_width}; `; | ||||||
|     } |     } | ||||||
| @@ -514,6 +521,7 @@ function sanitizeInputString(s, options={}) { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Remove ASCII control characters |     // Remove ASCII control characters | ||||||
|  |     // eslint-disable-next-line no-control-regex | ||||||
|     s = s.replace(/[\x00-\x1F\x7F]+/g, ''); |     s = s.replace(/[\x00-\x1F\x7F]+/g, ''); | ||||||
|  |  | ||||||
|     // Remove Unicode control characters |     // Remove Unicode control characters | ||||||
|   | |||||||
| @@ -8,10 +8,13 @@ | |||||||
|     modalEnable, |     modalEnable, | ||||||
|     modalSetContent, |     modalSetContent, | ||||||
|     modalSetTitle, |     modalSetTitle, | ||||||
|  |     modalShowSubmitButton, | ||||||
|     modalSubmit, |     modalSubmit, | ||||||
|     openModal, |     openModal, | ||||||
|     plugins_enabled, |     plugins_enabled, | ||||||
|     showAlertDialog, |     showAlertDialog, | ||||||
|  |     showMessage, | ||||||
|  |     user_settings, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -96,10 +99,10 @@ function selectLabel(labels, items, options={}) { | |||||||
|     var html = ''; |     var html = ''; | ||||||
|  |  | ||||||
|     if (items.length > 0) { |     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 += ` |         html += ` | ||||||
|         <div class='alert alert-block alert-info'> |         <div class='alert alert-block alert-info'> | ||||||
|         ${items.length} ${name} {% trans "selected" %} |         ${items.length} ${item_name} {% trans "selected" %} | ||||||
|         </div>`; |         </div>`; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,7 +2,9 @@ | |||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     QRCode, | ||||||
|     showAlertOrCache, |     showAlertOrCache, | ||||||
|  |     user_settings, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -856,7 +858,7 @@ function insertActionButton(modal, options) { | |||||||
|     // check if button already present |     // check if button already present | ||||||
|     var already_present = false; |     var already_present = false; | ||||||
|     for (var child=element[0].firstElementChild; child; child=child.nextElementSibling) { |     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; |             already_present = true; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -2,8 +2,11 @@ | |||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|     blankImage, |     blankImage, | ||||||
|  |     partStockLabel, | ||||||
|  |     renderLink, | ||||||
|     select2Thumbnail |     select2Thumbnail | ||||||
|     shortenString |     shortenString, | ||||||
|  |     user_settings | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|   | |||||||
| @@ -1,6 +1,15 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* globals | ||||||
|  |     getReadEditButton, | ||||||
|  |     inventreePut, | ||||||
|  |     renderDate, | ||||||
|  |     setupFilterList, | ||||||
|  | */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|     loadNewsFeedTable, |     loadNewsFeedTable, | ||||||
| */ | */ | ||||||
|   | |||||||
| @@ -1,5 +1,14 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* globals | ||||||
|  |     inventreeGet, | ||||||
|  |     inventreePut, | ||||||
|  |     renderLink, | ||||||
|  |     setupFilterList, | ||||||
|  | */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|     loadNotificationTable, |     loadNotificationTable, | ||||||
|     startNotificationWatcher, |     startNotificationWatcher, | ||||||
| @@ -69,10 +78,10 @@ function loadNotificationTable(table, options={}, enableDelete=false) { | |||||||
|                 formatter: function(value, row, index, field) { |                 formatter: function(value, row, index, field) { | ||||||
|                     var bRead = getReadEditButton(row.pk, row.read); |                     var bRead = getReadEditButton(row.pk, row.read); | ||||||
|  |  | ||||||
|  |                     let bDel = ''; | ||||||
|  |  | ||||||
|                     if (enableDelete) { |                     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>`; |                         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 = ''; |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                     var html = `<div class='btn-group float-right' role='group'>${bRead}${bDel}</div>`; |                     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 | var notificationWatcher = null; // reference for the notificationWatcher | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * start the regular notification checks |  * start the regular notification checks | ||||||
|  **/ |  **/ | ||||||
| function startNotificationWatcher() { | function startNotificationWatcher() { | ||||||
|     notificationCheck(force=true); |     notificationCheck(true); | ||||||
|     notificationWatcher = setInterval(notificationCheck, 1000); |     notificationWatcher = setInterval(notificationCheck, 5000); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -192,7 +202,8 @@ function updateNotificationReadState(btn, panel_caller=false) { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     ); |     ); | ||||||
| }; | } | ||||||
|  |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Returns the html for a read / unread button |  * Returns the html for a read / unread button | ||||||
| @@ -203,17 +214,23 @@ function updateNotificationReadState(btn, panel_caller=false) { | |||||||
|  * - small: should the button be small |  * - small: should the button be small | ||||||
|  **/ |  **/ | ||||||
| function getReadEditButton(pk, state, small=false) { | function getReadEditButton(pk, state, small=false) { | ||||||
|  |  | ||||||
|  |     let bReadText = ''; | ||||||
|  |     let bReadIcon = ''; | ||||||
|  |     let bReadTarget = ''; | ||||||
|  |  | ||||||
|     if (state) { |     if (state) { | ||||||
|         var bReadText = '{% trans "Mark as unread" %}'; |         bReadText = '{% trans "Mark as unread" %}'; | ||||||
|         var bReadIcon = 'fas fa-bookmark icon-red'; |         bReadIcon = 'fas fa-bookmark icon-red'; | ||||||
|         var bReadTarget = 'unread'; |         bReadTarget = 'unread'; | ||||||
|     } else { |     } else { | ||||||
|         var bReadText = '{% trans "Mark as read" %}'; |         bReadText = '{% trans "Mark as read" %}'; | ||||||
|         var bReadIcon = 'far fa-bookmark icon-green'; |         bReadIcon = 'far fa-bookmark icon-green'; | ||||||
|         var bReadTarget = 'read'; |         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>`; |     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 %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     calculateTotalPrice, | ||||||
|  |     constructForm, | ||||||
|  |     constructFormBody, | ||||||
|  |     exportFormatOptions, | ||||||
|  |     formatCurrency, | ||||||
|  |     getFormFieldValue, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|  |     inventreeSave, | ||||||
|  |     loadTableFilters, | ||||||
|  |     makeCopyButton, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     reloadBootstrapTable, | ||||||
|  |     renderLink, | ||||||
|  |     setupFilterList, | ||||||
|  |     wrapButtons, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -138,11 +154,13 @@ function exportOrder(redirect_url, options={}) { | |||||||
| var TotalPriceRef = ''; // reference to total price field | var TotalPriceRef = ''; // reference to total price field | ||||||
| var TotalPriceOptions = {}; // options to reload the price | var TotalPriceOptions = {}; // options to reload the price | ||||||
|  |  | ||||||
|  |  | ||||||
| function loadOrderTotal(reference, options={}) { | function loadOrderTotal(reference, options={}) { | ||||||
|     TotalPriceRef = reference; |     TotalPriceRef = reference; | ||||||
|     TotalPriceOptions = options; |     TotalPriceOptions = options; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| function reloadTotal() { | function reloadTotal() { | ||||||
|     inventreeGet( |     inventreeGet( | ||||||
|         TotalPriceOptions.url, |         TotalPriceOptions.url, | ||||||
| @@ -153,7 +171,7 @@ function reloadTotal() { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     ); |     ); | ||||||
| }; | } | ||||||
|  |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
| @@ -2,19 +2,48 @@ | |||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     baseCurrency, | ||||||
|     Chart, |     Chart, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     constructFormBody, | ||||||
|  |     convertCurrency, | ||||||
|  |     formatCurrency, | ||||||
|  |     formatDecimal, | ||||||
|  |     formatPriceRange, | ||||||
|  |     getCurrencyConversionRates, | ||||||
|  |     getFormFieldValue, | ||||||
|  |     getTableData, | ||||||
|     global_settings, |     global_settings, | ||||||
|  |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|     inventreePut, |     inventreePut, | ||||||
|  |     inventreeSave, | ||||||
|     linkButtonsToSelection, |     linkButtonsToSelection, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|     makeIconBadge, |     makeIconBadge, | ||||||
|     makeIconButton, |     makeIconButton, | ||||||
|  |     moment, | ||||||
|  |     orderParts, | ||||||
|  |     purchaseOrderStatusDisplay, | ||||||
|  |     receivePurchaseOrderItems, | ||||||
|  |     renderClipboard, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|     setFormGroupVisibility, |     setFormGroupVisibility, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     shortenString, | ||||||
|  |     showAlertDialog, | ||||||
|  |     showApiError, | ||||||
|  |     showMessage, | ||||||
|  |     showModalSpinner, | ||||||
|  |     thumbnailImage, | ||||||
|  |     withTitle, | ||||||
|  |     wrapButtons, | ||||||
|     yesNoLabel, |     yesNoLabel, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| @@ -2300,7 +2329,7 @@ function loadPartTable(table, url, options={}) { | |||||||
|  |  | ||||||
|                         $(table).bootstrapTable('refresh'); |                         $(table).bootstrapTable('refresh'); | ||||||
|                     } |                     } | ||||||
|                 }; |                 } | ||||||
|  |  | ||||||
|                 // Start the ball rolling |                 // Start the ball rolling | ||||||
|                 showModalSpinner(opts.modal); |                 showModalSpinner(opts.modal); | ||||||
|   | |||||||
| @@ -3,6 +3,9 @@ | |||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     showMessage, | ||||||
|  |     inventreeGet, | ||||||
|  |     inventreePut, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -20,7 +23,7 @@ function installPlugin() { | |||||||
|             confirm: {}, |             confirm: {}, | ||||||
|         }, |         }, | ||||||
|         onSuccess: function(data) { |         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}); |             showMessage(msg, {style: 'success', details: data.result, timeout: 30000}); | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|   | |||||||
| @@ -4,6 +4,20 @@ | |||||||
| /* Functions for retrieving and displaying pricing data */ | /* Functions for retrieving and displaying pricing data */ | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     constructForm, | ||||||
|  |     global_settings, | ||||||
|  |     imageHoverIcon, | ||||||
|  |     inventreeGet, | ||||||
|  |     loadBarChart, | ||||||
|  |     loadDoughnutChart, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     randomColor, | ||||||
|  |     renderDate, | ||||||
|  |     renderLink, | ||||||
|  |     shortenString, | ||||||
|  |     withTitle, | ||||||
|  |     wrapButtons, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -150,7 +164,7 @@ function calculateTotalPrice(dataset, value_func, currency_func, options={}) { | |||||||
|         var common_currency = true; |         var common_currency = true; | ||||||
|  |  | ||||||
|         for (var idx = 0; idx < dataset.length; idx++) { |         for (var idx = 0; idx < dataset.length; idx++) { | ||||||
|             var row = dataset[idx]; |             let row = dataset[idx]; | ||||||
|  |  | ||||||
|             var row_currency = currency_func(row); |             var row_currency = currency_func(row); | ||||||
|  |  | ||||||
| @@ -177,7 +191,7 @@ function calculateTotalPrice(dataset, value_func, currency_func, options={}) { | |||||||
|     var total = null; |     var total = null; | ||||||
|  |  | ||||||
|     for (var ii = 0; ii < dataset.length; ii++) { |     for (var ii = 0; ii < dataset.length; ii++) { | ||||||
|         var row = dataset[ii]; |         let row = dataset[ii]; | ||||||
|  |  | ||||||
|         // Pass the row back to the decoder |         // Pass the row back to the decoder | ||||||
|         var value = value_func(row); |         var value = value_func(row); | ||||||
|   | |||||||
| @@ -2,20 +2,60 @@ | |||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     addClearCallback, | ||||||
|  |     addFieldCallback, | ||||||
|  |     barcodeDialog, | ||||||
|  |     calculateTotalPrice, | ||||||
|  |     clearEvents, | ||||||
|  |     closeModal, | ||||||
|  |     constructFormBody, | ||||||
|     companyFormFields, |     companyFormFields, | ||||||
|  |     constructField, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     constructOrderTableButtons, | ||||||
|     createSupplierPart, |     createSupplierPart, | ||||||
|  |     endDate, | ||||||
|  |     formatCurrency, | ||||||
|  |     formatDecimal, | ||||||
|  |     FullCalendar, | ||||||
|  |     initializeChoiceField, | ||||||
|  |     initializeRelatedField, | ||||||
|  |     getFormFieldElement, | ||||||
|  |     getFormFieldValue, | ||||||
|  |     getTableData, | ||||||
|     global_settings, |     global_settings, | ||||||
|  |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|  |     inventreePut, | ||||||
|     launchModalForm, |     launchModalForm, | ||||||
|  |     linkButtonsToSelection, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeCopyButton, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|     makeIconBadge, |     makeIconBadge, | ||||||
|  |     makeIconButton, | ||||||
|  |     makeProgressBar, | ||||||
|  |     makeRemoveButton, | ||||||
|     purchaseOrderStatusDisplay, |     purchaseOrderStatusDisplay, | ||||||
|     receivePurchaseOrderItems, |     reloadBootstrapTable, | ||||||
|  |     renderClipboard, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|  |     showAlertDialog, | ||||||
|  |     showApiError, | ||||||
|  |     showBarcodeMessage, | ||||||
|  |     setRelatedFieldData, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     startDate, | ||||||
|  |     stockCodes, | ||||||
|     supplierPartFields, |     supplierPartFields, | ||||||
|  |     thumbnailImage, | ||||||
|  |     updateFieldValue, | ||||||
|  |     wrapButtons, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -169,7 +209,7 @@ function createPurchaseOrder(options={}) { | |||||||
|             title: '{% trans "Duplication Options" %}', |             title: '{% trans "Duplication Options" %}', | ||||||
|             collapsible: false, |             collapsible: false, | ||||||
|         }; |         }; | ||||||
|     }; |     } | ||||||
|  |  | ||||||
|     constructForm('{% url "api-po-list" %}', { |     constructForm('{% url "api-po-list" %}', { | ||||||
|         method: 'POST', |         method: 'POST', | ||||||
| @@ -273,8 +313,7 @@ function poLineItemFields(options={}) { | |||||||
|                                 success: function(response) { |                                 success: function(response) { | ||||||
|                                     // Returned prices are in increasing order of quantity |                                     // Returned prices are in increasing order of quantity | ||||||
|                                     if (response.length > 0) { |                                     if (response.length > 0) { | ||||||
|                                         var idx = 0; |                                         let index = 0; | ||||||
|                                         var index = 0; |  | ||||||
|  |  | ||||||
|                                         for (var idx = 0; idx < response.length; idx++) { |                                         for (var idx = 0; idx < response.length; idx++) { | ||||||
|                                             if (response[idx].quantity > quantity) { |                                             if (response[idx].quantity > quantity) { | ||||||
| @@ -1711,9 +1750,9 @@ function loadPurchaseOrderTable(table, options) { | |||||||
|         onLoadSuccess: function() { |         onLoadSuccess: function() { | ||||||
|  |  | ||||||
|             if (display_mode == 'calendar') { |             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', |                     initialView: 'dayGridMonth', | ||||||
|                     nowIndicator: true, |                     nowIndicator: true, | ||||||
|                     aspectRatio: 2.5, |                     aspectRatio: 2.5, | ||||||
|   | |||||||
| @@ -4,11 +4,31 @@ | |||||||
| /* globals | /* globals | ||||||
|     companyFormFields, |     companyFormFields, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     formatCurrency, | ||||||
|  |     getFormFieldValue, | ||||||
|  |     global_settings, | ||||||
|  |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     inventreeLoad, | ||||||
|  |     inventreePut, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeIconBadge, | ||||||
|  |     makeIconButton, | ||||||
|  |     makeRemoveButton, | ||||||
|  |     reloadBootstrapTable, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|  |     returnOrderLineItemStatusDisplay, | ||||||
|     returnOrderStatusDisplay, |     returnOrderStatusDisplay, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     showApiError, | ||||||
|  |     showAlertDialog, | ||||||
|  |     thumbnailImage, | ||||||
|  |     wrapButtons, | ||||||
|  |     yesNoLabel, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
|   | |||||||
| @@ -3,17 +3,50 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     addClearCallback, | ||||||
|  |     calculateTotalPrice, | ||||||
|  |     clearEvents, | ||||||
|     companyFormFields, |     companyFormFields, | ||||||
|  |     constructExpandCollapseButtons, | ||||||
|  |     constructField, | ||||||
|     constructForm, |     constructForm, | ||||||
|  |     constructOrderTableButtons, | ||||||
|  |     endDate, | ||||||
|  |     formatCurrency, | ||||||
|  |     FullCalendar, | ||||||
|  |     getFormFieldValue, | ||||||
|     global_settings, |     global_settings, | ||||||
|  |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     initializeRelatedField, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|  |     inventreePut, | ||||||
|     launchModalForm, |     launchModalForm, | ||||||
|  |     locationDetail, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeCopyButton, | ||||||
|  |     makeEditButton, | ||||||
|  |     makeDeleteButton, | ||||||
|     makeIconBadge, |     makeIconBadge, | ||||||
|  |     makeIconButton, | ||||||
|  |     makeProgressBar, | ||||||
|  |     makeRemoveButton, | ||||||
|  |     moment, | ||||||
|  |     newBuildOrder, | ||||||
|  |     orderParts, | ||||||
|  |     reloadTotal, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|     salesOrderStatusDisplay, |     salesOrderStatusDisplay, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     showAlertDialog, | ||||||
|  |     showApiError, | ||||||
|  |     startDate, | ||||||
|  |     thumbnailImage, | ||||||
|  |     updateFieldValue, | ||||||
|  |     wrapButtons, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -359,7 +392,7 @@ function completePendingShipments(order_id, options={}) { | |||||||
|         completePendingShipmentsHelper(allocated_shipments, 0, options); |         completePendingShipmentsHelper(allocated_shipments, 0, options); | ||||||
|  |  | ||||||
|     } else { |     } else { | ||||||
|         html = ` |         let html = ` | ||||||
|         <div class='alert alert-block alert-danger'> |         <div class='alert alert-block alert-danger'> | ||||||
|         `; |         `; | ||||||
|  |  | ||||||
| @@ -698,7 +731,7 @@ function loadSalesOrderTable(table, options) { | |||||||
|             if (display_mode == 'calendar') { |             if (display_mode == 'calendar') { | ||||||
|                 var el = document.getElementById('purchase-order-calendar'); |                 var el = document.getElementById('purchase-order-calendar'); | ||||||
|  |  | ||||||
|                 calendar = new FullCalendar.Calendar(el, { |                 let calendar = new FullCalendar.Calendar(el, { | ||||||
|                     initialView: 'dayGridMonth', |                     initialView: 'dayGridMonth', | ||||||
|                     nowIndicator: true, |                     nowIndicator: true, | ||||||
|                     aspectRatio: 2.5, |                     aspectRatio: 2.5, | ||||||
| @@ -1557,11 +1590,8 @@ function showAllocationSubTable(index, row, element, options) { | |||||||
|                 field: 'allocated', |                 field: 'allocated', | ||||||
|                 title: '{% trans "Stock Item" %}', |                 title: '{% trans "Stock Item" %}', | ||||||
|                 formatter: function(value, row, index, field) { |                 formatter: function(value, row, index, field) { | ||||||
|                     var text = ''; |                     let item = row.item_detail; | ||||||
|  |                     let text = `{% trans "Quantity" %}: ${row.quantity}`; | ||||||
|                     var item = row.item_detail; |  | ||||||
|  |  | ||||||
|                     var text = `{% trans "Quantity" %}: ${row.quantity}`; |  | ||||||
|  |  | ||||||
|                     if (item && item.serial != null && row.quantity == 1) { |                     if (item && item.serial != null && row.quantity == 1) { | ||||||
|                         text = `{% trans "Serial Number" %}: ${item.serial}`; |                         text = `{% trans "Serial Number" %}: ${item.serial}`; | ||||||
| @@ -1977,10 +2007,10 @@ function loadSalesOrderLineItemTable(table, options={}) { | |||||||
|  |  | ||||||
|                 var title = '{% trans "Delete line item" %}'; |                 var title = '{% trans "Delete line item" %}'; | ||||||
|  |  | ||||||
|                 if (!!row.shipped) { |                 if (row.shipped) { | ||||||
|                     delete_disabled = true; |                     delete_disabled = true; | ||||||
|                     title = '{% trans "Cannot be deleted as items have been shipped" %}'; |                     title = '{% trans "Cannot be deleted as items have been shipped" %}'; | ||||||
|                 } else if (!!row.allocated) { |                 } else if (row.allocated) { | ||||||
|                     delete_disabled = true; |                     delete_disabled = true; | ||||||
|                     title = '{% trans "Cannot be deleted as items have been allocated" %}'; |                     title = '{% trans "Cannot be deleted as items have been allocated" %}'; | ||||||
|                 } |                 } | ||||||
|   | |||||||
| @@ -1,6 +1,11 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     getModelRenderer, | ||||||
|  |     inventreeGet, | ||||||
|  |     inventreePut, | ||||||
|  |     sanitizeInputString, | ||||||
|  |     user_settings, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -102,6 +107,10 @@ var searchQuery = null; | |||||||
| var searchResultTypes = []; | var searchResultTypes = []; | ||||||
| var searchRequest = null; | var searchRequest = null; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Callback for when the search text is changed | ||||||
|  |  */ | ||||||
| function searchTextChanged(event) { | function searchTextChanged(event) { | ||||||
|  |  | ||||||
|     var text = $('#offcanvas-search').find('#search-input').val(); |     var text = $('#offcanvas-search').find('#search-input').val(); | ||||||
| @@ -110,9 +119,12 @@ function searchTextChanged(event) { | |||||||
|  |  | ||||||
|     clearTimeout(searchInputTimer); |     clearTimeout(searchInputTimer); | ||||||
|     searchInputTimer = setTimeout(updateSearch, 250); |     searchInputTimer = setTimeout(updateSearch, 250); | ||||||
| }; | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Update the search results | ||||||
|  |  */ | ||||||
| function updateSearch() { | function updateSearch() { | ||||||
|  |  | ||||||
|     if (searchText == searchTextCurrent) { |     if (searchText == searchTextCurrent) { | ||||||
|   | |||||||
| @@ -3,25 +3,61 @@ | |||||||
| {% load status_codes %} | {% load status_codes %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|  |     addCachedAlert, | ||||||
|  |     baseCurrency, | ||||||
|  |     calculateTotalPrice, | ||||||
|  |     clearFormInput, | ||||||
|     constructField, |     constructField, | ||||||
|  |     constructForm, | ||||||
|     constructFormBody, |     constructFormBody, | ||||||
|  |     convertCurrency, | ||||||
|  |     disableFormInput, | ||||||
|  |     enableFormInput, | ||||||
|  |     formatCurrency, | ||||||
|  |     formatDecimal, | ||||||
|  |     formatPriceRange, | ||||||
|  |     getCurrencyConversionRates, | ||||||
|     getFormFieldValue, |     getFormFieldValue, | ||||||
|  |     getTableData, | ||||||
|     global_settings, |     global_settings, | ||||||
|     handleFormErrors, |     handleFormErrors, | ||||||
|  |     handleFormSuccess, | ||||||
|     imageHoverIcon, |     imageHoverIcon, | ||||||
|  |     initializeRelatedField, | ||||||
|  |     inventreeDelete, | ||||||
|     inventreeGet, |     inventreeGet, | ||||||
|  |     inventreeLoad, | ||||||
|     inventreePut, |     inventreePut, | ||||||
|  |     inventreeSave, | ||||||
|     launchModalForm, |     launchModalForm, | ||||||
|     linkButtonsToSelection, |     linkButtonsToSelection, | ||||||
|     loadTableFilters, |     loadTableFilters, | ||||||
|  |     makeDeleteButton, | ||||||
|  |     makeEditButton, | ||||||
|     makeIconBadge, |     makeIconBadge, | ||||||
|     makeIconButton, |     makeIconButton, | ||||||
|  |     makeRemoveButton, | ||||||
|  |     orderParts, | ||||||
|  |     partDetail, | ||||||
|  |     renderClipboard, | ||||||
|  |     renderDate, | ||||||
|     renderLink, |     renderLink, | ||||||
|     scanItemsIntoLocation, |     scanItemsIntoLocation, | ||||||
|     showAlertDialog, |     setFormInputPlaceholder, | ||||||
|     setupFilterList, |     setupFilterList, | ||||||
|  |     shortenString, | ||||||
|  |     showAlertDialog, | ||||||
|  |     showAlertOrCache, | ||||||
|  |     showMessage, | ||||||
|  |     showModalSpinner, | ||||||
|     showApiError, |     showApiError, | ||||||
|  |     stockCodes, | ||||||
|     stockStatusDisplay, |     stockStatusDisplay, | ||||||
|  |     thumbnailImage, | ||||||
|  |     updateFieldValue, | ||||||
|  |     withTitle, | ||||||
|  |     wrapButtons, | ||||||
|  |     yesNoLabel, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -792,7 +828,7 @@ function mergeStockItems(items, options={}) { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         var part = item.part_detail; |         var part = item.part_detail; | ||||||
|         var location = locationDetail(item, false); |         let location_detail = locationDetail(item, false); | ||||||
|  |  | ||||||
|         var thumbnail = thumbnailImage(part.thumbnail || part.image); |         var thumbnail = thumbnailImage(part.thumbnail || part.image); | ||||||
|  |  | ||||||
| @@ -824,7 +860,7 @@ function mergeStockItems(items, options={}) { | |||||||
|                     <div id='errors-items_item_${pk}'></div> |                     <div id='errors-items_item_${pk}'></div> | ||||||
|                 </div> |                 </div> | ||||||
|             </td> |             </td> | ||||||
|             <td id='location_${pk}'>${location}</td> |             <td id='location_${pk}'>${location_detail}</td> | ||||||
|             <td id='buttons_${pk}'>${buttons}</td> |             <td id='buttons_${pk}'>${buttons}</td> | ||||||
|         </tr> |         </tr> | ||||||
|         `; |         `; | ||||||
|   | |||||||
| @@ -3,10 +3,14 @@ | |||||||
| {% load inventree_extras %} | {% load inventree_extras %} | ||||||
|  |  | ||||||
| /* globals | /* globals | ||||||
|     global_settings |     buildCodes, | ||||||
|  |     global_settings, | ||||||
|  |     inventreeGet, | ||||||
|     purchaseOrderCodes, |     purchaseOrderCodes, | ||||||
|     returnOrderCodes, |     returnOrderCodes, | ||||||
|  |     returnOrderLineItemCodes, | ||||||
|     salesOrderCodes, |     salesOrderCodes, | ||||||
|  |     stockCodes, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -449,7 +453,7 @@ function getBuildTableFilters() { | |||||||
|                 inventreeGet('{% url "api-owner-list" %}', {}, { |                 inventreeGet('{% url "api-owner-list" %}', {}, { | ||||||
|                     async: false, |                     async: false, | ||||||
|                     success: function(response) { |                     success: function(response) { | ||||||
|                         for (key in response) { |                         for (var key in response) { | ||||||
|                             var owner = response[key]; |                             var owner = response[key]; | ||||||
|                             ownersList[owner.pk] = { |                             ownersList[owner.pk] = { | ||||||
|                                 key: owner.pk, |                                 key: owner.pk, | ||||||
|   | |||||||
| @@ -1,8 +1,14 @@ | |||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  |  | ||||||
| /* global | /* global | ||||||
|  |     constructFormBody, | ||||||
|  |     exportFormatOptions, | ||||||
|  |     getFormFieldValue, | ||||||
|     inventreeLoad, |     inventreeLoad, | ||||||
|     inventreeSave, |     inventreeSave, | ||||||
|  |     sanitizeData, | ||||||
|  |     sanitizeInputString, | ||||||
|  |     user_settings, | ||||||
| */ | */ | ||||||
|  |  | ||||||
| /* exported | /* exported | ||||||
| @@ -58,7 +64,7 @@ function constructOrderTableButtons(options={}) { | |||||||
|  |  | ||||||
|     var display_mode = options.display; |     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 is not provided, look up from session | ||||||
|     if (!display_mode) { |     if (!display_mode) { | ||||||
| @@ -262,7 +268,7 @@ function reloadTableFilters(table, filters, options={}) { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // More complex refresh with new filters supplied |     // 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 |     // Construct a new list of filters to use for the query | ||||||
|     var params = {}; |     var params = {}; | ||||||
| @@ -559,7 +565,7 @@ function customGroupSorter(sortName, sortOrder, sortData) { | |||||||
|         }, |         }, | ||||||
|         formatShowingRows: function(pageFrom, pageTo, totalRows) { |         formatShowingRows: function(pageFrom, pageTo, totalRows) { | ||||||
|  |  | ||||||
|             if (totalRows === undefined || totalRows === NaN) { |             if (totalRows === undefined || isNaN(totalRows)) { | ||||||
|                 return '{% trans "Showing all rows" %}'; |                 return '{% trans "Showing all rows" %}'; | ||||||
|             } else { |             } else { | ||||||
|                 return `{% trans "Showing" %} ${pageFrom} {% trans "to" %} ${pageTo} {% trans "of" %} ${totalRows} {% trans "rows" %}`; |                 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", |   "name": "inventree", | ||||||
|   "lockfileVersion": 3, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "eslint": "^8.39.0", |         "eslint": "^8.41.0", | ||||||
|         "eslint-config-google": "^0.14.0" |         "eslint-config-google": "^0.14.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @@ -24,21 +24,21 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint-community/regexpp": { |     "node_modules/@eslint-community/regexpp": { | ||||||
|       "version": "4.5.0", |       "version": "4.5.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", |       "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", | ||||||
|       "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", |       "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "^12.0.0 || ^14.0.0 || >=16.0.0" |         "node": "^12.0.0 || ^14.0.0 || >=16.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/eslintrc": { |     "node_modules/@eslint/eslintrc": { | ||||||
|       "version": "2.0.2", |       "version": "2.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", | ||||||
|       "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", |       "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|         "debug": "^4.3.2", |         "debug": "^4.3.2", | ||||||
|         "espree": "^9.5.1", |         "espree": "^9.5.2", | ||||||
|         "globals": "^13.19.0", |         "globals": "^13.19.0", | ||||||
|         "ignore": "^5.2.0", |         "ignore": "^5.2.0", | ||||||
|         "import-fresh": "^3.2.1", |         "import-fresh": "^3.2.1", | ||||||
| @@ -54,9 +54,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/js": { |     "node_modules/@eslint/js": { | ||||||
|       "version": "8.39.0", |       "version": "8.41.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", | ||||||
|       "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", |       "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "^12.22.0 || ^14.17.0 || >=16.0.0" |         "node": "^12.22.0 || ^14.17.0 || >=16.0.0" | ||||||
|       } |       } | ||||||
| @@ -299,14 +299,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint": { |     "node_modules/eslint": { | ||||||
|       "version": "8.39.0", |       "version": "8.41.0", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", | ||||||
|       "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", |       "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@eslint-community/eslint-utils": "^4.2.0", |         "@eslint-community/eslint-utils": "^4.2.0", | ||||||
|         "@eslint-community/regexpp": "^4.4.0", |         "@eslint-community/regexpp": "^4.4.0", | ||||||
|         "@eslint/eslintrc": "^2.0.2", |         "@eslint/eslintrc": "^2.0.3", | ||||||
|         "@eslint/js": "8.39.0", |         "@eslint/js": "8.41.0", | ||||||
|         "@humanwhocodes/config-array": "^0.11.8", |         "@humanwhocodes/config-array": "^0.11.8", | ||||||
|         "@humanwhocodes/module-importer": "^1.0.1", |         "@humanwhocodes/module-importer": "^1.0.1", | ||||||
|         "@nodelib/fs.walk": "^1.2.8", |         "@nodelib/fs.walk": "^1.2.8", | ||||||
| @@ -317,8 +317,8 @@ | |||||||
|         "doctrine": "^3.0.0", |         "doctrine": "^3.0.0", | ||||||
|         "escape-string-regexp": "^4.0.0", |         "escape-string-regexp": "^4.0.0", | ||||||
|         "eslint-scope": "^7.2.0", |         "eslint-scope": "^7.2.0", | ||||||
|         "eslint-visitor-keys": "^3.4.0", |         "eslint-visitor-keys": "^3.4.1", | ||||||
|         "espree": "^9.5.1", |         "espree": "^9.5.2", | ||||||
|         "esquery": "^1.4.2", |         "esquery": "^1.4.2", | ||||||
|         "esutils": "^2.0.2", |         "esutils": "^2.0.2", | ||||||
|         "fast-deep-equal": "^3.1.3", |         "fast-deep-equal": "^3.1.3", | ||||||
| @@ -326,13 +326,12 @@ | |||||||
|         "find-up": "^5.0.0", |         "find-up": "^5.0.0", | ||||||
|         "glob-parent": "^6.0.2", |         "glob-parent": "^6.0.2", | ||||||
|         "globals": "^13.19.0", |         "globals": "^13.19.0", | ||||||
|         "grapheme-splitter": "^1.0.4", |         "graphemer": "^1.4.0", | ||||||
|         "ignore": "^5.2.0", |         "ignore": "^5.2.0", | ||||||
|         "import-fresh": "^3.0.0", |         "import-fresh": "^3.0.0", | ||||||
|         "imurmurhash": "^0.1.4", |         "imurmurhash": "^0.1.4", | ||||||
|         "is-glob": "^4.0.0", |         "is-glob": "^4.0.0", | ||||||
|         "is-path-inside": "^3.0.3", |         "is-path-inside": "^3.0.3", | ||||||
|         "js-sdsl": "^4.1.4", |  | ||||||
|         "js-yaml": "^4.1.0", |         "js-yaml": "^4.1.0", | ||||||
|         "json-stable-stringify-without-jsonify": "^1.0.1", |         "json-stable-stringify-without-jsonify": "^1.0.1", | ||||||
|         "levn": "^0.4.1", |         "levn": "^0.4.1", | ||||||
| @@ -381,9 +380,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint-visitor-keys": { |     "node_modules/eslint-visitor-keys": { | ||||||
|       "version": "3.4.0", |       "version": "3.4.1", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", | ||||||
|       "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", |       "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "^12.22.0 || ^14.17.0 || >=16.0.0" |         "node": "^12.22.0 || ^14.17.0 || >=16.0.0" | ||||||
|       }, |       }, | ||||||
| @@ -392,13 +391,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/espree": { |     "node_modules/espree": { | ||||||
|       "version": "9.5.1", |       "version": "9.5.2", | ||||||
|       "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", |       "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", | ||||||
|       "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", |       "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "acorn": "^8.8.0", |         "acorn": "^8.8.0", | ||||||
|         "acorn-jsx": "^5.3.2", |         "acorn-jsx": "^5.3.2", | ||||||
|         "eslint-visitor-keys": "^3.4.0" |         "eslint-visitor-keys": "^3.4.1" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "^12.22.0 || ^14.17.0 || >=16.0.0" |         "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", |       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||||||
|       "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" |       "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": { |     "node_modules/glob-parent": { | ||||||
|       "version": "6.0.2", |       "version": "6.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", |       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", | ||||||
| @@ -541,10 +559,10 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "url": "https://github.com/sponsors/sindresorhus" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/grapheme-splitter": { |     "node_modules/graphemer": { | ||||||
|       "version": "1.0.4", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", |       "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", | ||||||
|       "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" |       "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/has-flag": { |     "node_modules/has-flag": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
| @@ -631,15 +649,6 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | ||||||
|       "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" |       "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": { |     "node_modules/js-yaml": { | ||||||
|       "version": "4.1.0", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", |       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", | ||||||
| @@ -866,25 +875,6 @@ | |||||||
|         "url": "https://github.com/sponsors/isaacs" |         "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": { |     "node_modules/run-parallel": { | ||||||
|       "version": "1.2.0", |       "version": "1.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", |       "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", | ||||||
| @@ -1032,5 +1022,704 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "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": { |   "dependencies": { | ||||||
|     "eslint": "^8.39.0", |     "eslint": "^8.41.0", | ||||||
|     "eslint-config-google": "^0.14.0" |     "eslint-config-google": "^0.14.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user