} el
+ * @return {void}
+ */
+ showEditForm( el ) {
+ const bulk_wrap = el.closest( '.ppom-bulk-quantity-wrapper' );
+ bulk_wrap
+ .find( 'table' )
+ .find( 'tbody tr td' )
+ .each( function ( index, el ) {
+ const class_name = $( el ).attr( 'id' );
+ const td_wrap = $( this );
+ const cross_icon =
+ ' ';
+ if ( class_name == 'ppom-bulkqty-adjust-cross' ) {
+ var input =
+ '' +
+ cross_icon +
+ ' ';
+ } else {
+ var input =
+ ' ';
+ }
- td_wrap.closest('td').html(input);
- });
+ td_wrap.closest( 'td' ).html( input );
+ } );
// show action
- $(this).hide();
- bulk_wrap.find('.ppom-bulk-action-wrap').show();
- bulk_wrap.find('.ppom-save-bulk-json').show();
+ $( this ).hide();
+ bulk_wrap.find( '.ppom-bulk-action-wrap' ).show();
+ bulk_wrap.find( '.ppom-save-bulk-json' ).show();
this.setMaskRangeInput();
- }
- }
+ },
+ };
- body.ready(function(){
+ body.ready( function () {
ppomBQ.setMaskRangeInput();
- });
+ } );
- $(document).on('ppom_new_field_created', (e, newField, fieldNo, fieldType)=>{
- if( fieldType !== 'bulkquantity' ) {
- return;
+ $( document ).on(
+ 'ppom_new_field_created',
+ ( e, newField, fieldNo, fieldType ) => {
+ if ( fieldType !== 'bulkquantity' ) {
+ return;
+ }
+
+ ppomBQ.setMaskRangeInput();
}
+ );
+
+ body.on( 'click', 'button.ppom-add-bulk-qty-row', function ( e ) {
+ e.preventDefault();
+
+ const main_wrapper = $( this ).closest( '.ppom-slider' );
+ const field_index = main_wrapper
+ .find( '.ppom-fields-actions' )
+ .attr( 'data-field-no' );
+ const bulk_div = $( this ).closest( 'div' );
+ const bulk_qty_val = bulk_div.find( '.ppom-bulk-qty-val' ).val();
+ const table = $( this ).closest( 'div.table-content' ),
+ tbody = table.find( 'tbody' ),
+ thead = table.find( 'thead' );
+
+ // Clone the last visible row so merchants keep the same number of
+ // variation columns while defining the next quantity interval.
+ const clon_qty_section = tbody.find( 'tr:last-child' ).clone();
+ clon_qty_section
+ .find( '.ppom-bulk-qty-val-picker' )
+ .val( bulk_qty_val );
+ clon_qty_section.appendTo( tbody );
ppomBQ.setMaskRangeInput();
- });
-
- /**
- 2- Add New Quantity Row
- **/
- body.on('click', 'button.ppom-add-bulk-qty-row', function (e) {
- e.preventDefault();
-
- var main_wrapper = $(this).closest('.ppom-slider');
- var field_index = main_wrapper.find('.ppom-fields-actions').attr('data-field-no');
- var bulk_div = $(this).closest('div');
- var bulk_qty_val = bulk_div.find('.ppom-bulk-qty-val').val();
- var table = $(this).closest('div.table-content'),
- tbody = table.find('tbody'),
- thead = table.find('thead');
-
- var clon_qty_section = tbody.find('tr:last-child').clone();
- clon_qty_section.find('.ppom-bulk-qty-val-picker').val(bulk_qty_val);
- clon_qty_section.appendTo(tbody);
+ } );
- ppomBQ.setMaskRangeInput();
- });
-
-
- /**
- 3- Remove Quantity Row
- **/
- body.on('click', 'span.ppom-rm-bulk-qty', function (e) {
- e.preventDefault();
-
- var count = $(this).closest('tbody').find('tr').length;
- if ( count < 2 ) {
- alert('sorry! you can not remove more textbox');
- return;
- }
- $(this).closest('tr').remove();
- });
-
-
- /**
- 4- Remove Variation Colunm
- **/
- body.on('click', 'span.ppom-rm-bulk-variation', function (e) {
- e.preventDefault();
-
- var cell = $(this).closest('th'),
- index = cell.index() + 1;
- cell.closest('table').find('th, td').filter(':nth-child(' + index + ')').remove();
- });
-
-
- /**
- 5- Add Bulk Variation Colunm
- **/
- body.on('click', 'button.ppom-add-bulk-variation-col', function (e) {
- e.preventDefault();
-
- var buk_div = $(this).closest('div');
- var bulk_variation_val = buk_div.find('.ppom-bulk-variation-val').val();
- // console.log(bulk_variation_val);
- var table = $(this).closest('div.table-content').find('table'),
- thead = table.find('thead'),
- lastTheadRow = thead.find('tr:last-child'),
- tbody = table.find('tbody');
- var closest_td = tbody.find('td:last-child');
-
- $('', {
- 'html': ' '+bulk_variation_val+' '
- }).appendTo(lastTheadRow);
- $(' ', {
- 'html': ' '
- }).insertAfter(closest_td);
- });
-
-
- /**
- 6- Save Bulk Quantity Meta
- **/
- $('body').on('click', '.ppom-save-bulk-json', function(event) {
- event.preventDefault();
-
- const bulk_wrap = $(this).closest('.ppom-bulk-quantity-wrapper');
- bulk_wrap.find('table').find('input').each(function(index, el) {
- const td_wrap = $(this);
- td_wrap.closest('td').html(td_wrap.val());
- });
- const bulkData = bulk_wrap.find('table').tableToJSON();
-
- if( ! ppomBQ.formValidation(bulkData) ) {
- ppomBQ.showEditForm($(this));
+ body.on( 'click', 'span.ppom-rm-bulk-qty', function ( e ) {
+ e.preventDefault();
+
+ const count = $( this ).closest( 'tbody' ).find( 'tr' ).length;
+ if ( count < 2 ) {
+ alert( 'sorry! you can not remove more textbox' );
+ return;
+ }
+ $( this ).closest( 'tr' ).remove();
+ } );
+
+ body.on( 'click', 'span.ppom-rm-bulk-variation', function ( e ) {
+ e.preventDefault();
+
+ const cell = $( this ).closest( 'th' ),
+ index = cell.index() + 1;
+ cell.closest( 'table' )
+ .find( 'th, td' )
+ .filter( ':nth-child(' + index + ')' )
+ .remove();
+ } );
+
+ body.on( 'click', 'button.ppom-add-bulk-variation-col', function ( e ) {
+ e.preventDefault();
+
+ const buk_div = $( this ).closest( 'div' );
+ const bulk_variation_val = buk_div
+ .find( '.ppom-bulk-variation-val' )
+ .val();
+ // console.log(bulk_variation_val);
+ const table = $( this ).closest( 'div.table-content' ).find( 'table' ),
+ thead = table.find( 'thead' ),
+ lastTheadRow = thead.find( 'tr:last-child' ),
+ tbody = table.find( 'tbody' );
+ const closest_td = tbody.find( 'td:last-child' );
+
+ // Every added column becomes a new object key when `tableToJSON()`
+ // serializes the matrix, so the header text is the persisted identifier.
+ $( ' ', {
+ html:
+ ' ' +
+ bulk_variation_val +
+ ' ',
+ } ).appendTo( lastTheadRow );
+ $( ' ', {
+ html: ' ',
+ } ).insertAfter( closest_td );
+ } );
+
+ // Convert the editable grid back into the JSON blob later consumed by
+ // `ppom_bulkquantity_price_manager()` on the product page.
+ $( 'body' ).on( 'click', '.ppom-save-bulk-json', function ( event ) {
+ event.preventDefault();
+
+ const bulk_wrap = $( this ).closest( '.ppom-bulk-quantity-wrapper' );
+ bulk_wrap
+ .find( 'table' )
+ .find( 'input' )
+ .each( function ( index, el ) {
+ const td_wrap = $( this );
+ td_wrap.closest( 'td' ).html( td_wrap.val() );
+ } );
+ const bulkData = bulk_wrap.find( 'table' ).tableToJSON();
+
+ if ( ! ppomBQ.formValidation( bulkData ) ) {
+ ppomBQ.showEditForm( $( this ) );
return;
}
- bulk_wrap.find('.ppom-saved-bulk-data').val(JSON.stringify(bulkData));
-
- // hide action
- $(this).hide();
- bulk_wrap.find('.ppom-bulk-action-wrap').hide();
- bulk_wrap.find('.ppom-edit-bulk-json').show();
- });
-
-
- /**
- 7- Edit Bulk Quantity Meta
- **/
- $('body').on('click', '.ppom-edit-bulk-json', function(event) {
- event.preventDefault();
- ppomBQ.showEditForm($(this));
- });
-
-});
\ No newline at end of file
+ bulk_wrap
+ .find( '.ppom-saved-bulk-data' )
+ .val( JSON.stringify( bulkData ) );
+
+ // hide action
+ $( this ).hide();
+ bulk_wrap.find( '.ppom-bulk-action-wrap' ).hide();
+ bulk_wrap.find( '.ppom-edit-bulk-json' ).show();
+ } );
+
+ // Rehydrate the read-only table into inputs so an existing matrix can be edited.
+ $( 'body' ).on( 'click', '.ppom-edit-bulk-json', function ( event ) {
+ event.preventDefault();
+ ppomBQ.showEditForm( $( this ) );
+ } );
+} );
diff --git a/js/admin/ppom-deactivate.js b/js/admin/ppom-deactivate.js
index 97e756e4..23526f4a 100644
--- a/js/admin/ppom-deactivate.js
+++ b/js/admin/ppom-deactivate.js
@@ -1,70 +1,91 @@
/**
- * Getting user response when deactivate plugin
- * */
-"use strict"
-jQuery(function($){
-
- var modal = $('#ppom-deactivate-modal');
- var deactivateLink = '';
+ * Deactivation survey modal for the plugin list screen.
+ *
+ * The collected reason is optional telemetry; the saved redirect target still
+ * drives the final plugin deactivation link after the modal flow completes.
+ */
+'use strict';
+jQuery( function ( $ ) {
+ const modal = $( '#ppom-deactivate-modal' );
+ let deactivateLink = '';
+ $( '#the-list' ).on( 'click', 'a.ppom-deactivate-link', function ( e ) {
+ e.preventDefault();
+ modal.addClass( 'modal-active' );
+ deactivateLink = $( this ).attr( 'href' );
+ modal
+ .find( 'a.dont-bother-me' )
+ .attr( 'href', deactivateLink )
+ .css( 'float', 'left' );
+ } );
- $('#the-list').on('click', 'a.ppom-deactivate-link', function (e) {
- e.preventDefault();
- modal.addClass('modal-active');
- deactivateLink = $(this).attr('href');
- modal.find('a.dont-bother-me').attr('href', deactivateLink).css('float', 'left');
- });
+ $( '#ppom-deactivate-modal' ).on(
+ 'click',
+ 'a.review-and-deactivate',
+ function ( e ) {
+ e.preventDefault();
+ window.open(
+ 'https://wordpress.org/support/plugin/woocommerce-product-addon/reviews/#new-post'
+ );
+ window.location.href = deactivateLink;
+ }
+ );
+ modal.on( 'click', 'button.pipe-model-cancel', function ( e ) {
+ e.preventDefault();
+ modal.removeClass( 'modal-active' );
+ } );
+ modal.on( 'click', 'input[type="radio"]', function () {
+ const parent = $( this ).parents( 'li:first' );
+ modal.find( '.reason-input' ).remove();
+ const inputType = parent.data( 'type' ),
+ inputPlaceholder = parent.data( 'placeholder' );
+ if ( 'reviewhtml' === inputType ) {
+ var reasonInputHtml =
+ '';
+ } else {
+ var reasonInputHtml =
+ '' +
+ ( 'text' === inputType
+ ? ' '
+ : '' ) +
+ '
';
+ }
+ if ( inputType !== '' ) {
+ parent.append( $( reasonInputHtml ) );
+ parent
+ .find( 'input, textarea' )
+ .attr( 'placeholder', inputPlaceholder )
+ .focus();
+ }
+ } );
- $('#ppom-deactivate-modal').on('click', 'a.review-and-deactivate', function (e) {
- e.preventDefault();
- window.open("https://wordpress.org/support/plugin/woocommerce-product-addon/reviews/#new-post");
- window.location.href = deactivateLink;
- });
- modal.on('click', 'button.pipe-model-cancel', function (e) {
- e.preventDefault();
- modal.removeClass('modal-active');
- });
- modal.on('click', 'input[type="radio"]', function () {
- var parent = $(this).parents('li:first');
- modal.find('.reason-input').remove();
- var inputType = parent.data('type'),
- inputPlaceholder = parent.data('placeholder');
- if ('reviewhtml' === inputType) {
- var reasonInputHtml = '';
- } else {
- var reasonInputHtml = '' + (('text' === inputType) ? ' ' : '') + '
';
- }
- if (inputType !== '') {
- parent.append($(reasonInputHtml));
- parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
- }
- });
+ modal.on( 'click', 'button.pipe-model-submit', function ( e ) {
+ e.preventDefault();
+ // Submit the reason asynchronously, then continue to the original
+ // deactivation URL regardless of whether the response body is useful.
+ const button = $( this );
+ if ( button.hasClass( 'disabled' ) ) {
+ return;
+ }
+ const $radio = $( 'input[type="radio"]:checked', modal );
+ const $selected_reason = $radio.parents( 'li:first' ),
+ $input = $selected_reason.find( 'textarea, input[type="text"]' );
- modal.on('click', 'button.pipe-model-submit', function (e) {
- e.preventDefault();
- var button = $(this);
- if (button.hasClass('disabled')) {
- return;
- }
- var $radio = $('input[type="radio"]:checked', modal);
- var $selected_reason = $radio.parents('li:first'),
- $input = $selected_reason.find('textarea, input[type="text"]');
-
- $.ajax({
- url: ajaxurl,
- type: 'POST',
- data: {
- action: 'pipe_submit_uninstall_reason',
- reason_id: (0 === $radio.length) ? 'none' : $radio.val(),
- reason_info: (0 !== $input.length) ? $input.val().trim() : ''
- },
- beforeSend: function () {
- button.addClass('disabled');
- button.text('Processing...');
- },
- complete: function (resp) {
- window.location.href = deactivateLink;
- }
- });
- });
-});
\ No newline at end of file
+ $.ajax( {
+ url: ajaxurl,
+ type: 'POST',
+ data: {
+ action: 'pipe_submit_uninstall_reason',
+ reason_id: 0 === $radio.length ? 'none' : $radio.val(),
+ reason_info: 0 !== $input.length ? $input.val().trim() : '',
+ },
+ beforeSend() {
+ button.addClass( 'disabled' );
+ button.text( 'Processing...' );
+ },
+ complete( resp ) {
+ window.location.href = deactivateLink;
+ },
+ } );
+ } );
+} );
diff --git a/js/admin/ppom-meta-table.js b/js/admin/ppom-meta-table.js
index 663627fa..da8c6ff1 100644
--- a/js/admin/ppom-meta-table.js
+++ b/js/admin/ppom-meta-table.js
@@ -1,199 +1,235 @@
-"use strict";
-jQuery(function($){
-
- /*********************************
- * PPOM Existing Table Meta JS *
- **********************************/
-
- /*-------------------------------------------------------
-
- ------ Its Include Following Function -----
-
- 1- Apply DataTable JS Library To PPOM Meta List
- 2- Delete Selected Products
- 3- Check And Uncheck All Existing Product Meta List
- 4- Loading Products In Modal DataTable
- 5- Delete Single Product Meta
- --------------------------------------------------------*/
-
-
+'use strict';
+
+/**
+ * Admin list screen actions for saved PPOM field groups.
+ *
+ * This file wires DataTables, bulk actions, and the "attach to products" modal
+ * around the server-side group list rendered by PHP.
+ *
+ * @see window.ppomPopup in js/popup.js
+ */
+jQuery( function ( $ ) {
/**
- 1- Apply DataTable JS Library To PPOM Meta List
- **/
- $('#ppom-meta-table').DataTable({
+ * Initialize Select2 on the product search dropdowns in the "attach to products" modal.
+ *
+ * @return {void}
+ */
+ function initAttachSelects() {
+ const attachSelects = $( '.ppom-attach-container-item select' );
+
+ if ( typeof $.fn.select2 === 'function' ) {
+ attachSelects.select2();
+ }
+ }
+
+ // DataTables provides the searchable/sortable shell, while PPOM injects its
+ // own action toolbar into the custom `ppom-toolbar` slot defined in `dom`.
+ $( '#ppom-meta-table' ).DataTable( {
pageLength: 50,
dom: 'f<"ppom-toolbar"><"top">rt<"bottom">lpi',
- });
- var append_overly_model = ("
");
-
- /**
- 2- Delete Selected Products
- **/
- function deleteSelectedProducts(checkedProducts_ids) {
- window?.ppomPopup?.open({
+ } );
+ const append_overlay_modal =
+ "
";
+
+ // Bulk delete is confirmation-driven because it removes saved field groups,
+ // not just the rows in the current DataTable view.
+ /**
+ * Delete multiple saved PPOM groups after an explicit confirmation step.
+ *
+ * @param {number[]} checkedProducts_ids
+ * @return {void}
+ */
+ function deleteSelectedProducts( checkedProducts_ids ) {
+ window?.ppomPopup?.open( {
title: window?.ppom_vars?.i18n.popup.confirmTitle,
onConfirmation: () => {
- $('#ppom_delete_selected_products_btn').html('Deleting...');
-
+ $( '#ppom_delete_selected_products_btn' ).html( 'Deleting...' );
+
const data = {
- action : 'ppom_delete_selected_meta',
- productmeta_ids : checkedProducts_ids,
- ppom_meta_nonce : $("#ppom_meta_nonce").val()
+ action: 'ppom_delete_selected_meta',
+ productmeta_ids: checkedProducts_ids,
+ ppom_meta_nonce: $( '#ppom_meta_nonce' ).val(),
};
- $.post(ajaxurl, data, function(resp){
- $('#ppom_delete_selected_products_btn').html('Delete');
- if (resp) {
- window?.ppomPopup?.open({
+ $.post( ajaxurl, data, function ( resp ) {
+ $( '#ppom_delete_selected_products_btn' ).html( 'Delete' );
+ if ( resp ) {
+ window?.ppomPopup?.open( {
title: window?.ppom_vars?.i18n.popup.finishTitle,
hideCloseBtn: true,
onConfirmation: () => location.reload(),
- onClose: () => location.reload()
- });
+ onClose: () => location.reload(),
+ } );
} else {
- window?.ppomPopup?.open({
+ window?.ppomPopup?.open( {
title: window.ppom_vars.i18n.popup.errorTitle,
text: resp,
- hideCloseBtn: true
- });
+ hideCloseBtn: true,
+ } );
}
- });
- }
- })
+ } );
+ },
+ } );
}
+ $( '.ppom_product_checkbox' ).on( 'click', function ( event ) {
+ const checkboxProducts = $( '.ppom_product_checkbox' )
+ .map( function () {
+ return this.value;
+ } )
+ .get();
+
+ const checkedProducts = $( '.ppom_product_checkbox:checked' )
+ .map( function () {
+ return this.value;
+ } )
+ .get();
+
+ if ( checkboxProducts.length == checkedProducts.length ) {
+ $(
+ '#ppom-all-select-products-head-btn, #ppom-all-select-products-foot-btn'
+ ).prop( 'checked', true );
+ } else {
+ $(
+ '#ppom-all-select-products-head-btn, #ppom-all-select-products-foot-btn'
+ ).prop( 'checked', false );
+ }
- /**
- 3- Check And Uncheck All Existing Product Meta List
- **/
- $('.ppom_product_checkbox').on('click', function(event){
-
- var checkboxProducts = $('.ppom_product_checkbox').map(function() {
- return this.value;
- }).get();
-
- var checkedProducts = $('.ppom_product_checkbox:checked').map(function() {
- return this.value;
- }).get();
-
- if (checkboxProducts.length == checkedProducts.length ) {
- $('#ppom-all-select-products-head-btn, #ppom-all-select-products-foot-btn').prop('checked', true);
- }else{
- $('#ppom-all-select-products-head-btn, #ppom-all-select-products-foot-btn').prop('checked', false);
- };
-
- $('#selected_products_count').html();
- $('#selected_products_count').html(checkedProducts.length);
- });
- $('#ppom-all-select-products-head-btn, #ppom-all-select-products-foot-btn').on('click', function(event){
-
- $('#ppom-meta-table input:checkbox').not(this).prop('checked', this.checked);
- var checkedProducts = $('.ppom_product_checkbox:checked').map(function() {
- return this.value;
- }).get();
- $('#selected_products_count').html();
- $('#selected_products_count').html(checkedProducts.length);
- });
-
+ $( '#selected_products_count' ).html();
+ $( '#selected_products_count' ).html( checkedProducts.length );
+ } );
+ $(
+ '#ppom-all-select-products-head-btn, #ppom-all-select-products-foot-btn'
+ ).on( 'click', function ( event ) {
+ $( '#ppom-meta-table input:checkbox' )
+ .not( this )
+ .prop( 'checked', this.checked );
+ const checkedProducts = $( '.ppom_product_checkbox:checked' )
+ .map( function () {
+ return this.value;
+ } )
+ .get();
+ $( '#selected_products_count' ).html();
+ $( '#selected_products_count' ).html( checkedProducts.length );
+ } );
+
+ // Load the product-assignment UI lazily so the heavy modal table is fetched
+ // only when the merchant asks to attach a group to products.
+ $( '#ppom-meta-table_wrapper, .ppom-basic-setting-section' ).on(
+ 'click',
+ 'a.ppom-products-modal',
+ function ( e ) {
+ e.preventDefault();
+
+ $( '.ppom-table' ).DataTable();
+ const ppom_id = $( this ).data( 'ppom_id' );
+ const get_url =
+ ajaxurl + '?action=ppom_get_products&ppom_id=' + ppom_id;
+ const model_id = $( this ).attr( 'data-formmodal-id' );
+
+ $.get( get_url, function ( html ) {
+ $( '#ppom-product-modal .ppom-modal-body' ).html( html );
+ initAttachSelects();
+ $( '#ppom_id' ).val( ppom_id );
+ $( 'body' ).append( append_overlay_modal );
+ $( '#' + model_id ).fadeIn();
+ $( '#attach-to-products input' ).focus();
+ } );
+ }
+ );
- /**
- 4- Loading Products In Modal DataTable
- **/
- $('#ppom-meta-table_wrapper, .ppom-basic-setting-section').on('click','a.ppom-products-modal', function(e){
-
- e.preventDefault();
-
- $(".ppom-table").DataTable();
- var ppom_id = $(this).data('ppom_id');
- var get_url = ajaxurl+'?action=ppom_get_products&ppom_id='+ppom_id;
- var model_id = $(this).attr('data-formmodal-id');
-
- $.get( get_url, function(html){
- $('#ppom-product-modal .ppom-modal-body').html(html);
- $('.ppom-attach-container-item select')?.select2();
- $("#ppom_id").val(ppom_id);
- $("body").append(append_overly_model);
- $('#'+model_id).fadeIn();
- $("#attach-to-products input").focus();
- });
- });
-
-
- /**
- 5- Delete Single Product Meta
- **/
- $('body').on('click','a.ppom-delete-single-product', function(e){
+ $( 'body' ).on( 'click', 'a.ppom-delete-single-product', function ( e ) {
e.preventDefault();
- const productmeta_id = $(this).attr('data-product-id');
+ const productmeta_id = $( this ).attr( 'data-product-id' );
- window?.ppomPopup?.open({
+ window?.ppomPopup?.open( {
title: window?.ppom_vars?.i18n.popup.confirmTitle,
onConfirmation: () => {
- $("#del-file-" + productmeta_id).html(' ');
+ $( '#del-file-' + productmeta_id ).html(
+ ' '
+ );
const data = {
- action : 'ppom_delete_meta',
- productmeta_id : productmeta_id,
- ppom_meta_nonce : $("#ppom_meta_nonce").val()
+ action: 'ppom_delete_meta',
+ productmeta_id,
+ ppom_meta_nonce: $( '#ppom_meta_nonce' ).val(),
};
- $.post( ajaxurl, data, function(resp){
- $("#del-file-" + productmeta_id).html(' ');
- if ( resp.status === 'success' ) {
- window?.ppomPopup?.open({
+ $.post( ajaxurl, data, function ( resp ) {
+ $( '#del-file-' + productmeta_id ).html(
+ ' '
+ );
+ if ( resp.status === 'success' ) {
+ window?.ppomPopup?.open( {
title: window?.ppom_vars?.i18n.popup.finishTitle,
hideCloseBtn: true,
onConfirmation: () => location.reload(),
- onClose: () => location.reload()
- });
- } else {
- window?.ppomPopup?.open({
+ onClose: () => location.reload(),
+ } );
+ } else {
+ window?.ppomPopup?.open( {
title: window.ppom_vars.i18n.popup.errorTitle,
text: resp.message,
hideCloseBtn: true,
- });
- }
- });
- }
- })
- });
+ } );
+ }
+ } );
+ },
+ } );
+ } );
- $(document).on( 'change', '#ppom-bulk-actions', function(){
- const type = $(this).val();
+ $( document ).on( 'change', '#ppom-bulk-actions', function () {
+ const type = $( this ).val();
- const checkedProducts_ids = $('.ppom_product_checkbox:checked').map(function() {
- return parseInt(this.value);
- }).get();
+ const checkedProducts_ids = $( '.ppom_product_checkbox:checked' )
+ .map( function () {
+ return parseInt( this.value );
+ } )
+ .get();
if ( ! ( checkedProducts_ids.length > 0 ) ) {
- window?.ppomPopup?.open({
+ window?.ppomPopup?.open( {
title: window?.ppom_vars?.i18n.popup.confirmTitle,
type: 'error',
- hideCloseBtn: true
- });
+ hideCloseBtn: true,
+ } );
return;
}
- if( 'delete' === type ) {
- deleteSelectedProducts(checkedProducts_ids);
- }else if( 'export' === type ) {
- $('#ppom-groups-export-form').submit();
+ // Only one action runs per selection. Resetting the select afterwards
+ // prevents DataTables redraws from accidentally replaying the last action.
+ if ( 'delete' === type ) {
+ deleteSelectedProducts( checkedProducts_ids );
+ } else if ( 'export' === type ) {
+ $( '#ppom-groups-export-form' ).submit();
}
- $(this).val(-1);
- });
+ $( this ).val( -1 );
+ } );
- const exportOption = ppom_vars.ppomProActivated === 'yes' ? `${ppom_vars.i18n.exportLabel} ` : `${ppom_vars.i18n.exportLockedLabel} `;
+ // Import/export are always surfaced in the toolbar so the locked Pro state
+ // is visible even on Free installs; the markup changes between enabled and
+ // disabled variants based on the localized license flag.
+ const exportOption =
+ ppom_vars.ppomProActivated === 'yes'
+ ? `${ ppom_vars.i18n.exportLabel } `
+ : `${ ppom_vars.i18n.exportLockedLabel } `;
- const importBtn = ` ${ppom_vars.i18n.importLabel} `;
+ const importBtn = ` ${ ppom_vars.i18n.importLabel } `;
const bulkActions = `
- ${ppom_vars.i18n.bulkActionsLabel}
- ${ppom_vars.i18n.deleteLabel}
- ${exportOption}
+ ${ ppom_vars.i18n.bulkActionsLabel }
+ ${ ppom_vars.i18n.deleteLabel }
+ ${ exportOption }
`;
- const btn = ` ${ppom_vars.i18n.addGroupLabel} `;
+ const btn = ` ${ ppom_vars.i18n.addGroupLabel } `;
- $('div.ppom-toolbar').html(`${bulkActions} ${importBtn} ${btn}
`);
-});
+ // DataTables creates the placeholder container, then PPOM injects the
+ // toolbar HTML after initialization so the controls stay inside the table UI.
+ $( 'div.ppom-toolbar' ).html(
+ `${ bulkActions } ${ importBtn } ${ btn }
`
+ );
+} );
diff --git a/js/admin/pre-load.js b/js/admin/pre-load.js
index 489cfe83..85c7e79e 100644
--- a/js/admin/pre-load.js
+++ b/js/admin/pre-load.js
@@ -1,37 +1,49 @@
- /* Image loader */
-function addListener(element, type, expression, bubbling) {
- bubbling = bubbling || false;
- if (window.addEventListener) { // Standard
- element.addEventListener(type, expression, bubbling);
- return true;
- } else if (window.attachEvent) { // IE
- element.attachEvent('on' + type, expression);
- return true;
- } else return false;
+/**
+ * Small image preloader used by the admin field builder shell.
+ *
+ * The main admin UI stays hidden until the loader asset is available so the
+ * screen does not flash half-rendered styles while the builder initializes.
+ */
+function addListener( element, type, expression, bubbling ) {
+ bubbling = bubbling || false;
+ if ( window.addEventListener ) {
+ // Standard
+ element.addEventListener( type, expression, bubbling );
+ return true;
+ } else if ( window.attachEvent ) {
+ // IE
+ element.attachEvent( 'on' + type, expression );
+ return true;
+ }
+ return false;
}
-
-var ImageLoader = function (url) {
- this.url = url;
- this.image = null;
- this.loadEvent = null;
+const ImageLoader = function ( url ) {
+ this.url = url;
+ this.image = null;
+ this.loadEvent = null;
};
ImageLoader.prototype = {
- load: function () {
- this.image = document.createElement('img');
- var url = this.url;
- var image = this.image;
- var loadEvent = this.loadEvent;
- addListener(this.image, 'load', function (e) {
- if (loadEvent != null) {
- loadEvent(url, image);
- }
- }, false);
- this.image.src = this.url;
- },
- getImage: function () {
- return this.image;
- }
+ load() {
+ this.image = document.createElement( 'img' );
+ const url = this.url;
+ const image = this.image;
+ const loadEvent = this.loadEvent;
+ addListener(
+ this.image,
+ 'load',
+ function ( e ) {
+ if ( loadEvent != null ) {
+ loadEvent( url, image );
+ }
+ },
+ false
+ );
+ this.image.src = this.url;
+ },
+ getImage() {
+ return this.image;
+ },
};
-/* End of image loader */
\ No newline at end of file
+/* End of image loader */
diff --git a/js/admin/serializejson.js b/js/admin/serializejson.js
index 22eb2074..6161367c 100644
--- a/js/admin/serializejson.js
+++ b/js/admin/serializejson.js
@@ -7,4 +7,288 @@
Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*/
-!function(e){if("function"==typeof define&&define.amd)define(["jquery"],e);else if("object"==typeof exports){var n=require("jquery");module.exports=e(n)}else e(window.jQuery||window.Zepto||window.$)}(function(e){"use strict";var n=/\r?\n/g,r=/^(?:submit|button|image|reset|file)$/i,t=/^(?:input|select|textarea|keygen)/i,i=/^(?:checkbox|radio)$/i;e.fn.serializeJSON=function(n){var r=e.serializeJSON,t=r.setupOpts(n),i=e.extend({},t.defaultTypes,t.customTypes),a=r.serializeArray(this,t),u={};return e.each(a,function(n,a){var s=a.name,l=e(a.el).attr("data-value-type");if(!l&&!t.disableColonTypes){var o=r.splitType(a.name);s=o[0],l=o[1]}if("skip"!==l){l||(l=t.defaultType);var p=r.applyTypeFunc(a.name,a.value,l,a.el,i);if(p||!r.shouldSkipFalsy(a.name,s,l,a.el,t)){var f=r.splitInputNameIntoKeysArray(s);r.deepSet(u,f,p,t)}}}),u},e.serializeJSON={defaultOptions:{},defaultBaseOptions:{checkboxUncheckedValue:void 0,useIntKeysAsArrayIndex:!1,skipFalsyValuesForTypes:[],skipFalsyValuesForFields:[],disableColonTypes:!1,customTypes:{},defaultTypes:{string:function(e){return String(e)},number:function(e){return Number(e)},boolean:function(e){return-1===["false","null","undefined","","0"].indexOf(e)},null:function(e){return-1===["false","null","undefined","","0"].indexOf(e)?e:null},array:function(e){return JSON.parse(e)},object:function(e){return JSON.parse(e)},skip:null},defaultType:"string"},setupOpts:function(n){null==n&&(n={});var r=e.serializeJSON,t=["checkboxUncheckedValue","useIntKeysAsArrayIndex","skipFalsyValuesForTypes","skipFalsyValuesForFields","disableColonTypes","customTypes","defaultTypes","defaultType"];for(var i in n)if(-1===t.indexOf(i))throw new Error("serializeJSON ERROR: invalid option '"+i+"'. Please use one of "+t.join(", "));return e.extend({},r.defaultBaseOptions,r.defaultOptions,n)},serializeArray:function(a,u){null==u&&(u={});var s=e.serializeJSON;return a.map(function(){var n=e.prop(this,"elements");return n?e.makeArray(n):this}).filter(function(){var n=e(this),a=this.type;return this.name&&!n.is(":disabled")&&t.test(this.nodeName)&&!r.test(a)&&(this.checked||!i.test(a)||null!=s.getCheckboxUncheckedValue(n,u))}).map(function(r,t){var a=e(this),l=a.val(),p=this.type;return null==l?null:(i.test(p)&&!this.checked&&(l=s.getCheckboxUncheckedValue(a,u)),o(l)?e.map(l,function(e){return{name:t.name,value:e.replace(n,"\r\n"),el:t}}):{name:t.name,value:l.replace(n,"\r\n"),el:t})}).get()},getCheckboxUncheckedValue:function(e,n){var r=e.attr("data-unchecked-value");return null==r&&(r=n.checkboxUncheckedValue),r},applyTypeFunc:function(e,n,r,t,i){var u=i[r];if(!u)throw new Error("serializeJSON ERROR: Invalid type "+r+" found in input name '"+e+"', please use one of "+a(i).join(", "));return u(n,t)},splitType:function(e){var n=e.split(":");if(n.length>1){var r=n.pop();return[n.join(":"),r]}return[e,""]},shouldSkipFalsy:function(n,r,t,i,a){var u=e(i).attr("data-skip-falsy");if(null!=u)return"false"!==u;var s=a.skipFalsyValuesForFields;if(s&&(-1!==s.indexOf(r)||-1!==s.indexOf(n)))return!0;var l=a.skipFalsyValuesForTypes;return!(!l||-1===l.indexOf(t))},splitInputNameIntoKeysArray:function(n){var r=n.split("[");return""===(r=e.map(r,function(e){return e.replace(/\]/g,"")}))[0]&&r.shift(),r},deepSet:function(n,r,t,i){null==i&&(i={});var a=e.serializeJSON;if(s(n))throw new Error("ArgumentError: param 'o' expected to be an object or array, found undefined");if(!r||0===r.length)throw new Error("ArgumentError: param 'keys' expected to be an array with least one element");var p=r[0];if(1!==r.length){var f=r[1],c=r.slice(1);if(""===p){var d=n.length-1,y=n[d];p=u(y)&&s(a.deepGet(y,c))?d:d+1}""===f?!s(n[p])&&o(n[p])||(n[p]=[]):i.useIntKeysAsArrayIndex&&l(f)?!s(n[p])&&o(n[p])||(n[p]=[]):!s(n[p])&&u(n[p])||(n[p]={}),a.deepSet(n[p],c,t,i)}else""===p?n.push(t):n[p]=t},deepGet:function(n,r){var t=e.serializeJSON;if(s(n)||s(r)||0===r.length||!u(n)&&!o(n))return n;var i=r[0];if(""!==i){if(1===r.length)return n[i];var a=r.slice(1);return t.deepGet(n[i],a)}}};var a=function(e){if(Object.keys)return Object.keys(e);var n,r=[];for(n in e)r.push(n);return r},u=function(e){return e===Object(e)},s=function(e){return void 0===e},l=function(e){return/^[0-9]+$/.test(String(e))},o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}});
\ No newline at end of file
+! ( function ( e ) {
+ if ( 'function' === typeof define && define.amd ) {
+ define( [ 'jquery' ], e );
+ } else if ( 'object' === typeof exports ) {
+ const n = require( 'jquery' );
+ module.exports = e( n );
+ } else {
+ e( window.jQuery || window.Zepto || window.$ );
+ }
+} )( function ( e ) {
+ 'use strict';
+ const n = /\r?\n/g,
+ r = /^(?:submit|button|image|reset|file)$/i,
+ t = /^(?:input|select|textarea|keygen)/i,
+ i = /^(?:checkbox|radio)$/i;
+ ( e.fn.serializeJSON = function ( n ) {
+ const r = e.serializeJSON,
+ t = r.setupOpts( n ),
+ i = e.extend( {}, t.defaultTypes, t.customTypes ),
+ a = r.serializeArray( this, t ),
+ u = {};
+ return (
+ e.each( a, function ( n, a ) {
+ let s = a.name,
+ l = e( a.el ).attr( 'data-value-type' );
+ if ( ! l && ! t.disableColonTypes ) {
+ const o = r.splitType( a.name );
+ ( s = o[ 0 ] ), ( l = o[ 1 ] );
+ }
+ if ( 'skip' !== l ) {
+ l || ( l = t.defaultType );
+ const p = r.applyTypeFunc( a.name, a.value, l, a.el, i );
+ if ( p || ! r.shouldSkipFalsy( a.name, s, l, a.el, t ) ) {
+ const f = r.splitInputNameIntoKeysArray( s );
+ r.deepSet( u, f, p, t );
+ }
+ }
+ } ),
+ u
+ );
+ } ),
+ ( e.serializeJSON = {
+ defaultOptions: {},
+ defaultBaseOptions: {
+ checkboxUncheckedValue: void 0,
+ useIntKeysAsArrayIndex: ! 1,
+ skipFalsyValuesForTypes: [],
+ skipFalsyValuesForFields: [],
+ disableColonTypes: ! 1,
+ customTypes: {},
+ defaultTypes: {
+ string( e ) {
+ return String( e );
+ },
+ number( e ) {
+ return Number( e );
+ },
+ boolean( e ) {
+ return (
+ -1 ===
+ [ 'false', 'null', 'undefined', '', '0' ].indexOf(
+ e
+ )
+ );
+ },
+ null( e ) {
+ return -1 ===
+ [ 'false', 'null', 'undefined', '', '0' ].indexOf(
+ e
+ )
+ ? e
+ : null;
+ },
+ array( e ) {
+ return JSON.parse( e );
+ },
+ object( e ) {
+ return JSON.parse( e );
+ },
+ skip: null,
+ },
+ defaultType: 'string',
+ },
+ setupOpts( n ) {
+ null == n && ( n = {} );
+ const r = e.serializeJSON,
+ t = [
+ 'checkboxUncheckedValue',
+ 'useIntKeysAsArrayIndex',
+ 'skipFalsyValuesForTypes',
+ 'skipFalsyValuesForFields',
+ 'disableColonTypes',
+ 'customTypes',
+ 'defaultTypes',
+ 'defaultType',
+ ];
+ for ( const i in n ) {
+ if ( -1 === t.indexOf( i ) ) {
+ throw new Error(
+ "serializeJSON ERROR: invalid option '" +
+ i +
+ "'. Please use one of " +
+ t.join( ', ' )
+ );
+ }
+ }
+ return e.extend(
+ {},
+ r.defaultBaseOptions,
+ r.defaultOptions,
+ n
+ );
+ },
+ serializeArray( a, u ) {
+ null == u && ( u = {} );
+ const s = e.serializeJSON;
+ return a
+ .map( function () {
+ const n = e.prop( this, 'elements' );
+ return n ? e.makeArray( n ) : this;
+ } )
+ .filter( function () {
+ const n = e( this ),
+ a = this.type;
+ return (
+ this.name &&
+ ! n.is( ':disabled' ) &&
+ t.test( this.nodeName ) &&
+ ! r.test( a ) &&
+ ( this.checked ||
+ ! i.test( a ) ||
+ null != s.getCheckboxUncheckedValue( n, u ) )
+ );
+ } )
+ .map( function ( r, t ) {
+ let a = e( this ),
+ l = a.val(),
+ p = this.type;
+ return null == l
+ ? null
+ : ( i.test( p ) &&
+ ! this.checked &&
+ ( l = s.getCheckboxUncheckedValue( a, u ) ),
+ o( l )
+ ? e.map( l, function ( e ) {
+ return {
+ name: t.name,
+ value: e.replace( n, '\r\n' ),
+ el: t,
+ };
+ } )
+ : {
+ name: t.name,
+ value: l.replace( n, '\r\n' ),
+ el: t,
+ } );
+ } )
+ .get();
+ },
+ getCheckboxUncheckedValue( e, n ) {
+ let r = e.attr( 'data-unchecked-value' );
+ return null == r && ( r = n.checkboxUncheckedValue ), r;
+ },
+ applyTypeFunc( e, n, r, t, i ) {
+ const u = i[ r ];
+ if ( ! u ) {
+ throw new Error(
+ 'serializeJSON ERROR: Invalid type ' +
+ r +
+ " found in input name '" +
+ e +
+ "', please use one of " +
+ a( i ).join( ', ' )
+ );
+ }
+ return u( n, t );
+ },
+ splitType( e ) {
+ const n = e.split( ':' );
+ if ( n.length > 1 ) {
+ const r = n.pop();
+ return [ n.join( ':' ), r ];
+ }
+ return [ e, '' ];
+ },
+ shouldSkipFalsy( n, r, t, i, a ) {
+ const u = e( i ).attr( 'data-skip-falsy' );
+ if ( null != u ) {
+ return 'false' !== u;
+ }
+ const s = a.skipFalsyValuesForFields;
+ if ( s && ( -1 !== s.indexOf( r ) || -1 !== s.indexOf( n ) ) ) {
+ return ! 0;
+ }
+ const l = a.skipFalsyValuesForTypes;
+ return ! ( ! l || -1 === l.indexOf( t ) );
+ },
+ splitInputNameIntoKeysArray( n ) {
+ let r = n.split( '[' );
+ return (
+ '' ===
+ ( r = e.map( r, function ( e ) {
+ return e.replace( /\]/g, '' );
+ } ) )[ 0 ] && r.shift(),
+ r
+ );
+ },
+ deepSet( n, r, t, i ) {
+ null == i && ( i = {} );
+ const a = e.serializeJSON;
+ if ( s( n ) ) {
+ throw new Error(
+ "ArgumentError: param 'o' expected to be an object or array, found undefined"
+ );
+ }
+ if ( ! r || 0 === r.length ) {
+ throw new Error(
+ "ArgumentError: param 'keys' expected to be an array with least one element"
+ );
+ }
+ let p = r[ 0 ];
+ if ( 1 !== r.length ) {
+ const f = r[ 1 ],
+ c = r.slice( 1 );
+ if ( '' === p ) {
+ const d = n.length - 1,
+ y = n[ d ];
+ p = u( y ) && s( a.deepGet( y, c ) ) ? d : d + 1;
+ }
+ '' === f
+ ? ( ! s( n[ p ] ) && o( n[ p ] ) ) || ( n[ p ] = [] )
+ : i.useIntKeysAsArrayIndex && l( f )
+ ? ( ! s( n[ p ] ) && o( n[ p ] ) ) || ( n[ p ] = [] )
+ : ( ! s( n[ p ] ) && u( n[ p ] ) ) || ( n[ p ] = {} ),
+ a.deepSet( n[ p ], c, t, i );
+ } else {
+ '' === p ? n.push( t ) : ( n[ p ] = t );
+ }
+ },
+ deepGet( n, r ) {
+ const t = e.serializeJSON;
+ if (
+ s( n ) ||
+ s( r ) ||
+ 0 === r.length ||
+ ( ! u( n ) && ! o( n ) )
+ ) {
+ return n;
+ }
+ const i = r[ 0 ];
+ if ( '' !== i ) {
+ if ( 1 === r.length ) {
+ return n[ i ];
+ }
+ const a = r.slice( 1 );
+ return t.deepGet( n[ i ], a );
+ }
+ },
+ } );
+ var a = function ( e ) {
+ if ( Object.keys ) {
+ return Object.keys( e );
+ }
+ let n,
+ r = [];
+ for ( n in e ) {
+ r.push( n );
+ }
+ return r;
+ },
+ u = function ( e ) {
+ return e === Object( e );
+ },
+ s = function ( e ) {
+ return void 0 === e;
+ },
+ l = function ( e ) {
+ return /^[0-9]+$/.test( String( e ) );
+ },
+ o =
+ Array.isArray ||
+ function ( e ) {
+ return '[object Array]' === Object.prototype.toString.call( e );
+ };
+} );
diff --git a/js/exif.js b/js/exif.js
index dfcb08a2..3f937a20 100644
--- a/js/exif.js
+++ b/js/exif.js
@@ -1,1058 +1,1229 @@
-(function() {
-
- var debug = false;
-
- var root = this;
-
- var EXIF = function(obj) {
- if (obj instanceof EXIF) return obj;
- if (!(this instanceof EXIF)) return new EXIF(obj);
- this.EXIFwrapped = obj;
- };
-
- if (typeof exports !== 'undefined') {
- if (typeof module !== 'undefined' && module.exports) {
- exports = module.exports = EXIF;
- }
- exports.EXIF = EXIF;
- } else {
- root.EXIF = EXIF;
- }
-
- var ExifTags = EXIF.Tags = {
-
- // version tags
- 0x9000 : "ExifVersion", // EXIF version
- 0xA000 : "FlashpixVersion", // Flashpix format version
-
- // colorspace tags
- 0xA001 : "ColorSpace", // Color space information tag
-
- // image configuration
- 0xA002 : "PixelXDimension", // Valid width of meaningful image
- 0xA003 : "PixelYDimension", // Valid height of meaningful image
- 0x9101 : "ComponentsConfiguration", // Information about channels
- 0x9102 : "CompressedBitsPerPixel", // Compressed bits per pixel
-
- // user information
- 0x927C : "MakerNote", // Any desired information written by the manufacturer
- 0x9286 : "UserComment", // Comments by user
-
- // related file
- 0xA004 : "RelatedSoundFile", // Name of related sound file
-
- // date and time
- 0x9003 : "DateTimeOriginal", // Date and time when the original image was generated
- 0x9004 : "DateTimeDigitized", // Date and time when the image was stored digitally
- 0x9290 : "SubsecTime", // Fractions of seconds for DateTime
- 0x9291 : "SubsecTimeOriginal", // Fractions of seconds for DateTimeOriginal
- 0x9292 : "SubsecTimeDigitized", // Fractions of seconds for DateTimeDigitized
-
- // picture-taking conditions
- 0x829A : "ExposureTime", // Exposure time (in seconds)
- 0x829D : "FNumber", // F number
- 0x8822 : "ExposureProgram", // Exposure program
- 0x8824 : "SpectralSensitivity", // Spectral sensitivity
- 0x8827 : "ISOSpeedRatings", // ISO speed rating
- 0x8828 : "OECF", // Optoelectric conversion factor
- 0x9201 : "ShutterSpeedValue", // Shutter speed
- 0x9202 : "ApertureValue", // Lens aperture
- 0x9203 : "BrightnessValue", // Value of brightness
- 0x9204 : "ExposureBias", // Exposure bias
- 0x9205 : "MaxApertureValue", // Smallest F number of lens
- 0x9206 : "SubjectDistance", // Distance to subject in meters
- 0x9207 : "MeteringMode", // Metering mode
- 0x9208 : "LightSource", // Kind of light source
- 0x9209 : "Flash", // Flash status
- 0x9214 : "SubjectArea", // Location and area of main subject
- 0x920A : "FocalLength", // Focal length of the lens in mm
- 0xA20B : "FlashEnergy", // Strobe energy in BCPS
- 0xA20C : "SpatialFrequencyResponse", //
- 0xA20E : "FocalPlaneXResolution", // Number of pixels in width direction per FocalPlaneResolutionUnit
- 0xA20F : "FocalPlaneYResolution", // Number of pixels in height direction per FocalPlaneResolutionUnit
- 0xA210 : "FocalPlaneResolutionUnit", // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution
- 0xA214 : "SubjectLocation", // Location of subject in image
- 0xA215 : "ExposureIndex", // Exposure index selected on camera
- 0xA217 : "SensingMethod", // Image sensor type
- 0xA300 : "FileSource", // Image source (3 == DSC)
- 0xA301 : "SceneType", // Scene type (1 == directly photographed)
- 0xA302 : "CFAPattern", // Color filter array geometric pattern
- 0xA401 : "CustomRendered", // Special processing
- 0xA402 : "ExposureMode", // Exposure mode
- 0xA403 : "WhiteBalance", // 1 = auto white balance, 2 = manual
- 0xA404 : "DigitalZoomRation", // Digital zoom ratio
- 0xA405 : "FocalLengthIn35mmFilm", // Equivalent foacl length assuming 35mm film camera (in mm)
- 0xA406 : "SceneCaptureType", // Type of scene
- 0xA407 : "GainControl", // Degree of overall image gain adjustment
- 0xA408 : "Contrast", // Direction of contrast processing applied by camera
- 0xA409 : "Saturation", // Direction of saturation processing applied by camera
- 0xA40A : "Sharpness", // Direction of sharpness processing applied by camera
- 0xA40B : "DeviceSettingDescription", //
- 0xA40C : "SubjectDistanceRange", // Distance to subject
-
- // other tags
- 0xA005 : "InteroperabilityIFDPointer",
- 0xA420 : "ImageUniqueID" // Identifier assigned uniquely to each image
- };
-
- var TiffTags = EXIF.TiffTags = {
- 0x0100 : "ImageWidth",
- 0x0101 : "ImageHeight",
- 0x8769 : "ExifIFDPointer",
- 0x8825 : "GPSInfoIFDPointer",
- 0xA005 : "InteroperabilityIFDPointer",
- 0x0102 : "BitsPerSample",
- 0x0103 : "Compression",
- 0x0106 : "PhotometricInterpretation",
- 0x0112 : "Orientation",
- 0x0115 : "SamplesPerPixel",
- 0x011C : "PlanarConfiguration",
- 0x0212 : "YCbCrSubSampling",
- 0x0213 : "YCbCrPositioning",
- 0x011A : "XResolution",
- 0x011B : "YResolution",
- 0x0128 : "ResolutionUnit",
- 0x0111 : "StripOffsets",
- 0x0116 : "RowsPerStrip",
- 0x0117 : "StripByteCounts",
- 0x0201 : "JPEGInterchangeFormat",
- 0x0202 : "JPEGInterchangeFormatLength",
- 0x012D : "TransferFunction",
- 0x013E : "WhitePoint",
- 0x013F : "PrimaryChromaticities",
- 0x0211 : "YCbCrCoefficients",
- 0x0214 : "ReferenceBlackWhite",
- 0x0132 : "DateTime",
- 0x010E : "ImageDescription",
- 0x010F : "Make",
- 0x0110 : "Model",
- 0x0131 : "Software",
- 0x013B : "Artist",
- 0x8298 : "Copyright"
- };
-
- var GPSTags = EXIF.GPSTags = {
- 0x0000 : "GPSVersionID",
- 0x0001 : "GPSLatitudeRef",
- 0x0002 : "GPSLatitude",
- 0x0003 : "GPSLongitudeRef",
- 0x0004 : "GPSLongitude",
- 0x0005 : "GPSAltitudeRef",
- 0x0006 : "GPSAltitude",
- 0x0007 : "GPSTimeStamp",
- 0x0008 : "GPSSatellites",
- 0x0009 : "GPSStatus",
- 0x000A : "GPSMeasureMode",
- 0x000B : "GPSDOP",
- 0x000C : "GPSSpeedRef",
- 0x000D : "GPSSpeed",
- 0x000E : "GPSTrackRef",
- 0x000F : "GPSTrack",
- 0x0010 : "GPSImgDirectionRef",
- 0x0011 : "GPSImgDirection",
- 0x0012 : "GPSMapDatum",
- 0x0013 : "GPSDestLatitudeRef",
- 0x0014 : "GPSDestLatitude",
- 0x0015 : "GPSDestLongitudeRef",
- 0x0016 : "GPSDestLongitude",
- 0x0017 : "GPSDestBearingRef",
- 0x0018 : "GPSDestBearing",
- 0x0019 : "GPSDestDistanceRef",
- 0x001A : "GPSDestDistance",
- 0x001B : "GPSProcessingMethod",
- 0x001C : "GPSAreaInformation",
- 0x001D : "GPSDateStamp",
- 0x001E : "GPSDifferential"
- };
-
- // EXIF 2.3 Spec
- var IFD1Tags = EXIF.IFD1Tags = {
- 0x0100: "ImageWidth",
- 0x0101: "ImageHeight",
- 0x0102: "BitsPerSample",
- 0x0103: "Compression",
- 0x0106: "PhotometricInterpretation",
- 0x0111: "StripOffsets",
- 0x0112: "Orientation",
- 0x0115: "SamplesPerPixel",
- 0x0116: "RowsPerStrip",
- 0x0117: "StripByteCounts",
- 0x011A: "XResolution",
- 0x011B: "YResolution",
- 0x011C: "PlanarConfiguration",
- 0x0128: "ResolutionUnit",
- 0x0201: "JpegIFOffset", // When image format is JPEG, this value show offset to JPEG data stored.(aka "ThumbnailOffset" or "JPEGInterchangeFormat")
- 0x0202: "JpegIFByteCount", // When image format is JPEG, this value shows data size of JPEG image (aka "ThumbnailLength" or "JPEGInterchangeFormatLength")
- 0x0211: "YCbCrCoefficients",
- 0x0212: "YCbCrSubSampling",
- 0x0213: "YCbCrPositioning",
- 0x0214: "ReferenceBlackWhite"
- };
-
- var StringValues = EXIF.StringValues = {
- ExposureProgram : {
- 0 : "Not defined",
- 1 : "Manual",
- 2 : "Normal program",
- 3 : "Aperture priority",
- 4 : "Shutter priority",
- 5 : "Creative program",
- 6 : "Action program",
- 7 : "Portrait mode",
- 8 : "Landscape mode"
- },
- MeteringMode : {
- 0 : "Unknown",
- 1 : "Average",
- 2 : "CenterWeightedAverage",
- 3 : "Spot",
- 4 : "MultiSpot",
- 5 : "Pattern",
- 6 : "Partial",
- 255 : "Other"
- },
- LightSource : {
- 0 : "Unknown",
- 1 : "Daylight",
- 2 : "Fluorescent",
- 3 : "Tungsten (incandescent light)",
- 4 : "Flash",
- 9 : "Fine weather",
- 10 : "Cloudy weather",
- 11 : "Shade",
- 12 : "Daylight fluorescent (D 5700 - 7100K)",
- 13 : "Day white fluorescent (N 4600 - 5400K)",
- 14 : "Cool white fluorescent (W 3900 - 4500K)",
- 15 : "White fluorescent (WW 3200 - 3700K)",
- 17 : "Standard light A",
- 18 : "Standard light B",
- 19 : "Standard light C",
- 20 : "D55",
- 21 : "D65",
- 22 : "D75",
- 23 : "D50",
- 24 : "ISO studio tungsten",
- 255 : "Other"
- },
- Flash : {
- 0x0000 : "Flash did not fire",
- 0x0001 : "Flash fired",
- 0x0005 : "Strobe return light not detected",
- 0x0007 : "Strobe return light detected",
- 0x0009 : "Flash fired, compulsory flash mode",
- 0x000D : "Flash fired, compulsory flash mode, return light not detected",
- 0x000F : "Flash fired, compulsory flash mode, return light detected",
- 0x0010 : "Flash did not fire, compulsory flash mode",
- 0x0018 : "Flash did not fire, auto mode",
- 0x0019 : "Flash fired, auto mode",
- 0x001D : "Flash fired, auto mode, return light not detected",
- 0x001F : "Flash fired, auto mode, return light detected",
- 0x0020 : "No flash function",
- 0x0041 : "Flash fired, red-eye reduction mode",
- 0x0045 : "Flash fired, red-eye reduction mode, return light not detected",
- 0x0047 : "Flash fired, red-eye reduction mode, return light detected",
- 0x0049 : "Flash fired, compulsory flash mode, red-eye reduction mode",
- 0x004D : "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",
- 0x004F : "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",
- 0x0059 : "Flash fired, auto mode, red-eye reduction mode",
- 0x005D : "Flash fired, auto mode, return light not detected, red-eye reduction mode",
- 0x005F : "Flash fired, auto mode, return light detected, red-eye reduction mode"
- },
- SensingMethod : {
- 1 : "Not defined",
- 2 : "One-chip color area sensor",
- 3 : "Two-chip color area sensor",
- 4 : "Three-chip color area sensor",
- 5 : "Color sequential area sensor",
- 7 : "Trilinear sensor",
- 8 : "Color sequential linear sensor"
- },
- SceneCaptureType : {
- 0 : "Standard",
- 1 : "Landscape",
- 2 : "Portrait",
- 3 : "Night scene"
- },
- SceneType : {
- 1 : "Directly photographed"
- },
- CustomRendered : {
- 0 : "Normal process",
- 1 : "Custom process"
- },
- WhiteBalance : {
- 0 : "Auto white balance",
- 1 : "Manual white balance"
- },
- GainControl : {
- 0 : "None",
- 1 : "Low gain up",
- 2 : "High gain up",
- 3 : "Low gain down",
- 4 : "High gain down"
- },
- Contrast : {
- 0 : "Normal",
- 1 : "Soft",
- 2 : "Hard"
- },
- Saturation : {
- 0 : "Normal",
- 1 : "Low saturation",
- 2 : "High saturation"
- },
- Sharpness : {
- 0 : "Normal",
- 1 : "Soft",
- 2 : "Hard"
- },
- SubjectDistanceRange : {
- 0 : "Unknown",
- 1 : "Macro",
- 2 : "Close view",
- 3 : "Distant view"
- },
- FileSource : {
- 3 : "DSC"
- },
-
- Components : {
- 0 : "",
- 1 : "Y",
- 2 : "Cb",
- 3 : "Cr",
- 4 : "R",
- 5 : "G",
- 6 : "B"
- }
- };
-
- function addEvent(element, event, handler) {
- if (element.addEventListener) {
- element.addEventListener(event, handler, false);
- } else if (element.attachEvent) {
- element.attachEvent("on" + event, handler);
- }
- }
-
- function imageHasData(img) {
- return !!(img.exifdata);
- }
-
-
- function base64ToArrayBuffer(base64, contentType) {
- contentType = contentType || base64.match(/^data\:([^\;]+)\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'
- base64 = base64.replace(/^data\:([^\;]+)\;base64,/gmi, '');
- var binary = atob(base64);
- var len = binary.length;
- var buffer = new ArrayBuffer(len);
- var view = new Uint8Array(buffer);
- for (var i = 0; i < len; i++) {
- view[i] = binary.charCodeAt(i);
- }
- return buffer;
- }
-
- function objectURLToBlob(url, callback) {
- var http = new XMLHttpRequest();
- http.open("GET", url, true);
- http.responseType = "blob";
- http.onload = function(e) {
- if (this.status == 200 || this.status === 0) {
- callback(this.response);
- }
- };
- http.send();
- }
-
- function getImageData(img, callback) {
- function handleBinaryFile(binFile) {
- var data = findEXIFinJPEG(binFile);
- img.exifdata = data || {};
- var iptcdata = findIPTCinJPEG(binFile);
- img.iptcdata = iptcdata || {};
- if (EXIF.isXmpEnabled) {
- var xmpdata= findXMPinJPEG(binFile);
- img.xmpdata = xmpdata || {};
- }
- if (callback) {
- callback.call(img);
- }
- }
-
- if (img.src) {
- if (/^data\:/i.test(img.src)) { // Data URI
- var arrayBuffer = base64ToArrayBuffer(img.src);
- handleBinaryFile(arrayBuffer);
-
- } else if (/^blob\:/i.test(img.src)) { // Object URL
- var fileReader = new FileReader();
- fileReader.onload = function(e) {
- handleBinaryFile(e.target.result);
- };
- objectURLToBlob(img.src, function (blob) {
- fileReader.readAsArrayBuffer(blob);
- });
- } else {
- var http = new XMLHttpRequest();
- http.onload = function() {
- if (this.status == 200 || this.status === 0) {
- handleBinaryFile(http.response);
- } else {
- throw "Could not load image";
- }
- http = null;
- };
- http.open("GET", img.src, true);
- http.responseType = "arraybuffer";
- http.send(null);
- }
- } else if (self.FileReader && (img instanceof self.Blob || img instanceof self.File)) {
- var fileReader = new FileReader();
- fileReader.onload = function(e) {
- if (debug) console.log("Got file of length " + e.target.result.byteLength);
- handleBinaryFile(e.target.result);
- };
-
- fileReader.readAsArrayBuffer(img);
- }
- }
-
- function findEXIFinJPEG(file) {
- var dataView = new DataView(file);
-
- if (debug) console.log("Got file of length " + file.byteLength);
- if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {
- if (debug) console.log("Not a valid JPEG");
- return false; // not a valid jpeg
- }
-
- var offset = 2,
- length = file.byteLength,
- marker;
-
- while (offset < length) {
- if (dataView.getUint8(offset) != 0xFF) {
- if (debug) console.log("Not a valid marker at offset " + offset + ", found: " + dataView.getUint8(offset));
- return false; // not a valid marker, something is wrong
- }
-
- marker = dataView.getUint8(offset + 1);
- if (debug) console.log(marker);
-
- // we could implement handling for other markers here,
- // but we're only looking for 0xFFE1 for EXIF data
-
- if (marker == 225) {
- if (debug) console.log("Found 0xFFE1 marker");
-
- return readEXIFData(dataView, offset + 4, dataView.getUint16(offset + 2) - 2);
-
- // offset += 2 + file.getShortAt(offset+2, true);
-
- } else {
- offset += 2 + dataView.getUint16(offset+2);
- }
-
- }
-
- }
-
- function findIPTCinJPEG(file) {
- var dataView = new DataView(file);
-
- if (debug) console.log("Got file of length " + file.byteLength);
- if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {
- if (debug) console.log("Not a valid JPEG");
- return false; // not a valid jpeg
- }
-
- var offset = 2,
- length = file.byteLength;
-
-
- var isFieldSegmentStart = function(dataView, offset){
- return (
- dataView.getUint8(offset) === 0x38 &&
- dataView.getUint8(offset+1) === 0x42 &&
- dataView.getUint8(offset+2) === 0x49 &&
- dataView.getUint8(offset+3) === 0x4D &&
- dataView.getUint8(offset+4) === 0x04 &&
- dataView.getUint8(offset+5) === 0x04
- );
- };
-
- while (offset < length) {
-
- if ( isFieldSegmentStart(dataView, offset )){
-
- // Get the length of the name header (which is padded to an even number of bytes)
- var nameHeaderLength = dataView.getUint8(offset+7);
- if(nameHeaderLength % 2 !== 0) nameHeaderLength += 1;
- // Check for pre photoshop 6 format
- if(nameHeaderLength === 0) {
- // Always 4
- nameHeaderLength = 4;
- }
-
- var startOffset = offset + 8 + nameHeaderLength;
- var sectionLength = dataView.getUint16(offset + 6 + nameHeaderLength);
-
- return readIPTCData(file, startOffset, sectionLength);
-
- break;
-
- }
-
-
- // Not the marker, continue searching
- offset++;
-
- }
-
- }
- var IptcFieldMap = {
- 0x78 : 'caption',
- 0x6E : 'credit',
- 0x19 : 'keywords',
- 0x37 : 'dateCreated',
- 0x50 : 'byline',
- 0x55 : 'bylineTitle',
- 0x7A : 'captionWriter',
- 0x69 : 'headline',
- 0x74 : 'copyright',
- 0x0F : 'category'
- };
- function readIPTCData(file, startOffset, sectionLength){
- var dataView = new DataView(file);
- var data = {};
- var fieldValue, fieldName, dataSize, segmentType, segmentSize;
- var segmentStartPos = startOffset;
- while(segmentStartPos < startOffset+sectionLength) {
- if(dataView.getUint8(segmentStartPos) === 0x1C && dataView.getUint8(segmentStartPos+1) === 0x02){
- segmentType = dataView.getUint8(segmentStartPos+2);
- if(segmentType in IptcFieldMap) {
- dataSize = dataView.getInt16(segmentStartPos+3);
- segmentSize = dataSize + 5;
- fieldName = IptcFieldMap[segmentType];
- fieldValue = getStringFromDB(dataView, segmentStartPos+5, dataSize);
- // Check if we already stored a value with this name
- if(data.hasOwnProperty(fieldName)) {
- // Value already stored with this name, create multivalue field
- if(data[fieldName] instanceof Array) {
- data[fieldName].push(fieldValue);
- }
- else {
- data[fieldName] = [data[fieldName], fieldValue];
- }
- }
- else {
- data[fieldName] = fieldValue;
- }
- }
-
- }
- segmentStartPos++;
- }
- return data;
- }
-
-
-
- function readTags(file, tiffStart, dirStart, strings, bigEnd) {
- var entries = file.getUint16(dirStart, !bigEnd),
- tags = {},
- entryOffset, tag,
- i;
-
- for (i=0;i 4 ? valueOffset : (entryOffset + 8);
- vals = [];
- for (n=0;n 4 ? valueOffset : (entryOffset + 8);
- return getStringFromDB(file, offset, numValues-1);
-
- case 3: // short, 16 bit int
- if (numValues == 1) {
- return file.getUint16(entryOffset + 8, !bigEnd);
- } else {
- offset = numValues > 2 ? valueOffset : (entryOffset + 8);
- vals = [];
- for (n=0;n dataView.byteLength) { // this should not happen
- // console.log('******** IFD1Offset is outside the bounds of the DataView ********');
- return {};
- }
- // console.log('******* thumbnail IFD offset (IFD1) is: %s', IFD1OffsetPointer);
-
- var thumbTags = readTags(dataView, tiffStart, tiffStart + IFD1OffsetPointer, IFD1Tags, bigEnd)
-
- // EXIF 2.3 specification for JPEG format thumbnail
-
- // If the value of Compression(0x0103) Tag in IFD1 is '6', thumbnail image format is JPEG.
- // Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail
- // by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag.
- // Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. It seems that
- // JPEG format and 160x120pixels of size are recommended thumbnail format for Exif2.1 or later.
-
- if (thumbTags['Compression']) {
- // console.log('Thumbnail image found!');
-
- switch (thumbTags['Compression']) {
- case 6:
- // console.log('Thumbnail image format is JPEG');
- if (thumbTags.JpegIFOffset && thumbTags.JpegIFByteCount) {
- // extract the thumbnail
- var tOffset = tiffStart + thumbTags.JpegIFOffset;
- var tLength = thumbTags.JpegIFByteCount;
- thumbTags['blob'] = new Blob([new Uint8Array(dataView.buffer, tOffset, tLength)], {
- type: 'image/jpeg'
- });
- }
- break;
-
- case 1:
- console.log("Thumbnail image format is TIFF, which is not implemented.");
- break;
- default:
- console.log("Unknown thumbnail image format '%s'", thumbTags['Compression']);
- }
- }
- else if (thumbTags['PhotometricInterpretation'] == 2) {
- console.log("Thumbnail image format is RGB, which is not implemented.");
- }
- return thumbTags;
- }
-
- function getStringFromDB(buffer, start, length) {
- var outstr = "";
- for (var n = start; n < start+length; n++) {
- outstr += String.fromCharCode(buffer.getUint8(n));
- }
- return outstr;
- }
-
- function readEXIFData(file, start) {
- if (getStringFromDB(file, start, 4) != "Exif") {
- if (debug) console.log("Not valid EXIF data! " + getStringFromDB(file, start, 4));
- return false;
- }
-
- var bigEnd,
- tags, tag,
- exifData, gpsData,
- tiffOffset = start + 6;
-
- // test for TIFF validity and endianness
- if (file.getUint16(tiffOffset) == 0x4949) {
- bigEnd = false;
- } else if (file.getUint16(tiffOffset) == 0x4D4D) {
- bigEnd = true;
- } else {
- if (debug) console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)");
- return false;
- }
-
- if (file.getUint16(tiffOffset+2, !bigEnd) != 0x002A) {
- if (debug) console.log("Not valid TIFF data! (no 0x002A)");
- return false;
- }
-
- var firstIFDOffset = file.getUint32(tiffOffset+4, !bigEnd);
-
- if (firstIFDOffset < 0x00000008) {
- if (debug) console.log("Not valid TIFF data! (First offset less than 8)", file.getUint32(tiffOffset+4, !bigEnd));
- return false;
- }
-
- tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, TiffTags, bigEnd);
-
- if (tags.ExifIFDPointer) {
- exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd);
- for (tag in exifData) {
- switch (tag) {
- case "LightSource" :
- case "Flash" :
- case "MeteringMode" :
- case "ExposureProgram" :
- case "SensingMethod" :
- case "SceneCaptureType" :
- case "SceneType" :
- case "CustomRendered" :
- case "WhiteBalance" :
- case "GainControl" :
- case "Contrast" :
- case "Saturation" :
- case "Sharpness" :
- case "SubjectDistanceRange" :
- case "FileSource" :
- exifData[tag] = StringValues[tag][exifData[tag]];
- break;
-
- case "ExifVersion" :
- case "FlashpixVersion" :
- exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]);
- break;
-
- case "ComponentsConfiguration" :
- exifData[tag] =
- StringValues.Components[exifData[tag][0]] +
- StringValues.Components[exifData[tag][1]] +
- StringValues.Components[exifData[tag][2]] +
- StringValues.Components[exifData[tag][3]];
- break;
- }
- tags[tag] = exifData[tag];
- }
- }
-
- if (tags.GPSInfoIFDPointer) {
- gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd);
- for (tag in gpsData) {
- switch (tag) {
- case "GPSVersionID" :
- gpsData[tag] = gpsData[tag][0] +
- "." + gpsData[tag][1] +
- "." + gpsData[tag][2] +
- "." + gpsData[tag][3];
- break;
- }
- tags[tag] = gpsData[tag];
- }
- }
-
- // extract thumbnail
- tags['thumbnail'] = readThumbnailImage(file, tiffOffset, firstIFDOffset, bigEnd);
-
- return tags;
- }
-
- function findXMPinJPEG(file) {
-
- if (!('DOMParser' in self)) {
- // console.warn('XML parsing not supported without DOMParser');
- return;
- }
- var dataView = new DataView(file);
-
- if (debug) console.log("Got file of length " + file.byteLength);
- if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {
- if (debug) console.log("Not a valid JPEG");
- return false; // not a valid jpeg
- }
-
- var offset = 2,
- length = file.byteLength,
- dom = new DOMParser();
-
- while (offset < (length-4)) {
- if (getStringFromDB(dataView, offset, 4) == "http") {
- var startOffset = offset - 1;
- var sectionLength = dataView.getUint16(offset - 2) - 1;
- var xmpString = getStringFromDB(dataView, startOffset, sectionLength)
- var xmpEndIndex = xmpString.indexOf('xmpmeta>') + 8;
- xmpString = xmpString.substring( xmpString.indexOf( ' 0) {
- json['@attributes'] = {};
- for (var j = 0; j < xml.attributes.length; j++) {
- var attribute = xml.attributes.item(j);
- json['@attributes'][attribute.nodeName] = attribute.nodeValue;
- }
- }
- } else if (xml.nodeType == 3) { // text node
- return xml.nodeValue;
- }
-
- // deal with children
- if (xml.hasChildNodes()) {
- for(var i = 0; i < xml.childNodes.length; i++) {
- var child = xml.childNodes.item(i);
- var nodeName = child.nodeName;
- if (json[nodeName] == null) {
- json[nodeName] = xml2json(child);
- } else {
- if (json[nodeName].push == null) {
- var old = json[nodeName];
- json[nodeName] = [];
- json[nodeName].push(old);
- }
- json[nodeName].push(xml2json(child));
- }
- }
- }
-
- return json;
- }
-
- function xml2Object(xml) {
- try {
- var obj = {};
- if (xml.children.length > 0) {
- for (var i = 0; i < xml.children.length; i++) {
- var item = xml.children.item(i);
- var attributes = item.attributes;
- for(var idx in attributes) {
- var itemAtt = attributes[idx];
- var dataKey = itemAtt.nodeName;
- var dataValue = itemAtt.nodeValue;
-
- if(dataKey !== undefined) {
- obj[dataKey] = dataValue;
- }
- }
- var nodeName = item.nodeName;
-
- if (typeof (obj[nodeName]) == "undefined") {
- obj[nodeName] = xml2json(item);
- } else {
- if (typeof (obj[nodeName].push) == "undefined") {
- var old = obj[nodeName];
-
- obj[nodeName] = [];
- obj[nodeName].push(old);
- }
- obj[nodeName].push(xml2json(item));
- }
- }
- } else {
- obj = xml.textContent;
- }
- return obj;
- } catch (e) {
- console.log(e.message);
- }
- }
-
- EXIF.enableXmp = function() {
- EXIF.isXmpEnabled = true;
- }
-
- EXIF.disableXmp = function() {
- EXIF.isXmpEnabled = false;
- }
-
- EXIF.getData = function(img, callback) {
- if (((self.Image && img instanceof self.Image)
- || (self.HTMLImageElement && img instanceof self.HTMLImageElement))
- && !img.complete)
- return false;
-
- if (!imageHasData(img)) {
- getImageData(img, callback);
- } else {
- if (callback) {
- callback.call(img);
- }
- }
- return true;
- }
-
- EXIF.getTag = function(img, tag) {
- if (!imageHasData(img)) return;
- return img.exifdata[tag];
- }
-
- EXIF.getIptcTag = function(img, tag) {
- if (!imageHasData(img)) return;
- return img.iptcdata[tag];
- }
-
- EXIF.getAllTags = function(img) {
- if (!imageHasData(img)) return {};
- var a,
- data = img.exifdata,
- tags = {};
- for (a in data) {
- if (data.hasOwnProperty(a)) {
- tags[a] = data[a];
- }
- }
- return tags;
- }
-
- EXIF.getAllIptcTags = function(img) {
- if (!imageHasData(img)) return {};
- var a,
- data = img.iptcdata,
- tags = {};
- for (a in data) {
- if (data.hasOwnProperty(a)) {
- tags[a] = data[a];
- }
- }
- return tags;
- }
-
- EXIF.pretty = function(img) {
- if (!imageHasData(img)) return "";
- var a,
- data = img.exifdata,
- strPretty = "";
- for (a in data) {
- if (data.hasOwnProperty(a)) {
- if (typeof data[a] == "object") {
- if (data[a] instanceof Number) {
- strPretty += a + " : " + data[a] + " [" + data[a].numerator + "/" + data[a].denominator + "]\r\n";
- } else {
- strPretty += a + " : [" + data[a].length + " values]\r\n";
- }
- } else {
- strPretty += a + " : " + data[a] + "\r\n";
- }
- }
- }
- return strPretty;
- }
-
- EXIF.readFromBinaryFile = function(file) {
- return findEXIFinJPEG(file);
- }
-
- if (typeof define === 'function' && define.amd) {
- define('exif-js', [], function() {
- return EXIF;
- });
- }
-}.call(this));
+( function () {
+ const debug = false;
+
+ const root = this;
+
+ const EXIF = function ( obj ) {
+ if ( obj instanceof EXIF ) {
+ return obj;
+ }
+ if ( ! ( this instanceof EXIF ) ) {
+ return new EXIF( obj );
+ }
+ this.EXIFwrapped = obj;
+ };
+
+ if ( typeof exports !== 'undefined' ) {
+ if ( typeof module !== 'undefined' && module.exports ) {
+ exports = module.exports = EXIF;
+ }
+ exports.EXIF = EXIF;
+ } else {
+ root.EXIF = EXIF;
+ }
+
+ const ExifTags = ( EXIF.Tags = {
+ // version tags
+ 0x9000: 'ExifVersion', // EXIF version
+ 0xa000: 'FlashpixVersion', // Flashpix format version
+
+ // colorspace tags
+ 0xa001: 'ColorSpace', // Color space information tag
+
+ // image configuration
+ 0xa002: 'PixelXDimension', // Valid width of meaningful image
+ 0xa003: 'PixelYDimension', // Valid height of meaningful image
+ 0x9101: 'ComponentsConfiguration', // Information about channels
+ 0x9102: 'CompressedBitsPerPixel', // Compressed bits per pixel
+
+ // user information
+ 0x927c: 'MakerNote', // Any desired information written by the manufacturer
+ 0x9286: 'UserComment', // Comments by user
+
+ // related file
+ 0xa004: 'RelatedSoundFile', // Name of related sound file
+
+ // date and time
+ 0x9003: 'DateTimeOriginal', // Date and time when the original image was generated
+ 0x9004: 'DateTimeDigitized', // Date and time when the image was stored digitally
+ 0x9290: 'SubsecTime', // Fractions of seconds for DateTime
+ 0x9291: 'SubsecTimeOriginal', // Fractions of seconds for DateTimeOriginal
+ 0x9292: 'SubsecTimeDigitized', // Fractions of seconds for DateTimeDigitized
+
+ // picture-taking conditions
+ 0x829a: 'ExposureTime', // Exposure time (in seconds)
+ 0x829d: 'FNumber', // F number
+ 0x8822: 'ExposureProgram', // Exposure program
+ 0x8824: 'SpectralSensitivity', // Spectral sensitivity
+ 0x8827: 'ISOSpeedRatings', // ISO speed rating
+ 0x8828: 'OECF', // Optoelectric conversion factor
+ 0x9201: 'ShutterSpeedValue', // Shutter speed
+ 0x9202: 'ApertureValue', // Lens aperture
+ 0x9203: 'BrightnessValue', // Value of brightness
+ 0x9204: 'ExposureBias', // Exposure bias
+ 0x9205: 'MaxApertureValue', // Smallest F number of lens
+ 0x9206: 'SubjectDistance', // Distance to subject in meters
+ 0x9207: 'MeteringMode', // Metering mode
+ 0x9208: 'LightSource', // Kind of light source
+ 0x9209: 'Flash', // Flash status
+ 0x9214: 'SubjectArea', // Location and area of main subject
+ 0x920a: 'FocalLength', // Focal length of the lens in mm
+ 0xa20b: 'FlashEnergy', // Strobe energy in BCPS
+ 0xa20c: 'SpatialFrequencyResponse', //
+ 0xa20e: 'FocalPlaneXResolution', // Number of pixels in width direction per FocalPlaneResolutionUnit
+ 0xa20f: 'FocalPlaneYResolution', // Number of pixels in height direction per FocalPlaneResolutionUnit
+ 0xa210: 'FocalPlaneResolutionUnit', // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution
+ 0xa214: 'SubjectLocation', // Location of subject in image
+ 0xa215: 'ExposureIndex', // Exposure index selected on camera
+ 0xa217: 'SensingMethod', // Image sensor type
+ 0xa300: 'FileSource', // Image source (3 == DSC)
+ 0xa301: 'SceneType', // Scene type (1 == directly photographed)
+ 0xa302: 'CFAPattern', // Color filter array geometric pattern
+ 0xa401: 'CustomRendered', // Special processing
+ 0xa402: 'ExposureMode', // Exposure mode
+ 0xa403: 'WhiteBalance', // 1 = auto white balance, 2 = manual
+ 0xa404: 'DigitalZoomRation', // Digital zoom ratio
+ 0xa405: 'FocalLengthIn35mmFilm', // Equivalent foacl length assuming 35mm film camera (in mm)
+ 0xa406: 'SceneCaptureType', // Type of scene
+ 0xa407: 'GainControl', // Degree of overall image gain adjustment
+ 0xa408: 'Contrast', // Direction of contrast processing applied by camera
+ 0xa409: 'Saturation', // Direction of saturation processing applied by camera
+ 0xa40a: 'Sharpness', // Direction of sharpness processing applied by camera
+ 0xa40b: 'DeviceSettingDescription', //
+ 0xa40c: 'SubjectDistanceRange', // Distance to subject
+
+ // other tags
+ 0xa005: 'InteroperabilityIFDPointer',
+ 0xa420: 'ImageUniqueID', // Identifier assigned uniquely to each image
+ } );
+
+ const TiffTags = ( EXIF.TiffTags = {
+ 0x0100: 'ImageWidth',
+ 0x0101: 'ImageHeight',
+ 0x8769: 'ExifIFDPointer',
+ 0x8825: 'GPSInfoIFDPointer',
+ 0xa005: 'InteroperabilityIFDPointer',
+ 0x0102: 'BitsPerSample',
+ 0x0103: 'Compression',
+ 0x0106: 'PhotometricInterpretation',
+ 0x0112: 'Orientation',
+ 0x0115: 'SamplesPerPixel',
+ 0x011c: 'PlanarConfiguration',
+ 0x0212: 'YCbCrSubSampling',
+ 0x0213: 'YCbCrPositioning',
+ 0x011a: 'XResolution',
+ 0x011b: 'YResolution',
+ 0x0128: 'ResolutionUnit',
+ 0x0111: 'StripOffsets',
+ 0x0116: 'RowsPerStrip',
+ 0x0117: 'StripByteCounts',
+ 0x0201: 'JPEGInterchangeFormat',
+ 0x0202: 'JPEGInterchangeFormatLength',
+ 0x012d: 'TransferFunction',
+ 0x013e: 'WhitePoint',
+ 0x013f: 'PrimaryChromaticities',
+ 0x0211: 'YCbCrCoefficients',
+ 0x0214: 'ReferenceBlackWhite',
+ 0x0132: 'DateTime',
+ 0x010e: 'ImageDescription',
+ 0x010f: 'Make',
+ 0x0110: 'Model',
+ 0x0131: 'Software',
+ 0x013b: 'Artist',
+ 0x8298: 'Copyright',
+ } );
+
+ const GPSTags = ( EXIF.GPSTags = {
+ 0x0000: 'GPSVersionID',
+ 0x0001: 'GPSLatitudeRef',
+ 0x0002: 'GPSLatitude',
+ 0x0003: 'GPSLongitudeRef',
+ 0x0004: 'GPSLongitude',
+ 0x0005: 'GPSAltitudeRef',
+ 0x0006: 'GPSAltitude',
+ 0x0007: 'GPSTimeStamp',
+ 0x0008: 'GPSSatellites',
+ 0x0009: 'GPSStatus',
+ 0x000a: 'GPSMeasureMode',
+ 0x000b: 'GPSDOP',
+ 0x000c: 'GPSSpeedRef',
+ 0x000d: 'GPSSpeed',
+ 0x000e: 'GPSTrackRef',
+ 0x000f: 'GPSTrack',
+ 0x0010: 'GPSImgDirectionRef',
+ 0x0011: 'GPSImgDirection',
+ 0x0012: 'GPSMapDatum',
+ 0x0013: 'GPSDestLatitudeRef',
+ 0x0014: 'GPSDestLatitude',
+ 0x0015: 'GPSDestLongitudeRef',
+ 0x0016: 'GPSDestLongitude',
+ 0x0017: 'GPSDestBearingRef',
+ 0x0018: 'GPSDestBearing',
+ 0x0019: 'GPSDestDistanceRef',
+ 0x001a: 'GPSDestDistance',
+ 0x001b: 'GPSProcessingMethod',
+ 0x001c: 'GPSAreaInformation',
+ 0x001d: 'GPSDateStamp',
+ 0x001e: 'GPSDifferential',
+ } );
+
+ // EXIF 2.3 Spec
+ const IFD1Tags = ( EXIF.IFD1Tags = {
+ 0x0100: 'ImageWidth',
+ 0x0101: 'ImageHeight',
+ 0x0102: 'BitsPerSample',
+ 0x0103: 'Compression',
+ 0x0106: 'PhotometricInterpretation',
+ 0x0111: 'StripOffsets',
+ 0x0112: 'Orientation',
+ 0x0115: 'SamplesPerPixel',
+ 0x0116: 'RowsPerStrip',
+ 0x0117: 'StripByteCounts',
+ 0x011a: 'XResolution',
+ 0x011b: 'YResolution',
+ 0x011c: 'PlanarConfiguration',
+ 0x0128: 'ResolutionUnit',
+ 0x0201: 'JpegIFOffset', // When image format is JPEG, this value show offset to JPEG data stored.(aka "ThumbnailOffset" or "JPEGInterchangeFormat")
+ 0x0202: 'JpegIFByteCount', // When image format is JPEG, this value shows data size of JPEG image (aka "ThumbnailLength" or "JPEGInterchangeFormatLength")
+ 0x0211: 'YCbCrCoefficients',
+ 0x0212: 'YCbCrSubSampling',
+ 0x0213: 'YCbCrPositioning',
+ 0x0214: 'ReferenceBlackWhite',
+ } );
+
+ const StringValues = ( EXIF.StringValues = {
+ ExposureProgram: {
+ 0: 'Not defined',
+ 1: 'Manual',
+ 2: 'Normal program',
+ 3: 'Aperture priority',
+ 4: 'Shutter priority',
+ 5: 'Creative program',
+ 6: 'Action program',
+ 7: 'Portrait mode',
+ 8: 'Landscape mode',
+ },
+ MeteringMode: {
+ 0: 'Unknown',
+ 1: 'Average',
+ 2: 'CenterWeightedAverage',
+ 3: 'Spot',
+ 4: 'MultiSpot',
+ 5: 'Pattern',
+ 6: 'Partial',
+ 255: 'Other',
+ },
+ LightSource: {
+ 0: 'Unknown',
+ 1: 'Daylight',
+ 2: 'Fluorescent',
+ 3: 'Tungsten (incandescent light)',
+ 4: 'Flash',
+ 9: 'Fine weather',
+ 10: 'Cloudy weather',
+ 11: 'Shade',
+ 12: 'Daylight fluorescent (D 5700 - 7100K)',
+ 13: 'Day white fluorescent (N 4600 - 5400K)',
+ 14: 'Cool white fluorescent (W 3900 - 4500K)',
+ 15: 'White fluorescent (WW 3200 - 3700K)',
+ 17: 'Standard light A',
+ 18: 'Standard light B',
+ 19: 'Standard light C',
+ 20: 'D55',
+ 21: 'D65',
+ 22: 'D75',
+ 23: 'D50',
+ 24: 'ISO studio tungsten',
+ 255: 'Other',
+ },
+ Flash: {
+ 0x0000: 'Flash did not fire',
+ 0x0001: 'Flash fired',
+ 0x0005: 'Strobe return light not detected',
+ 0x0007: 'Strobe return light detected',
+ 0x0009: 'Flash fired, compulsory flash mode',
+ 0x000d: 'Flash fired, compulsory flash mode, return light not detected',
+ 0x000f: 'Flash fired, compulsory flash mode, return light detected',
+ 0x0010: 'Flash did not fire, compulsory flash mode',
+ 0x0018: 'Flash did not fire, auto mode',
+ 0x0019: 'Flash fired, auto mode',
+ 0x001d: 'Flash fired, auto mode, return light not detected',
+ 0x001f: 'Flash fired, auto mode, return light detected',
+ 0x0020: 'No flash function',
+ 0x0041: 'Flash fired, red-eye reduction mode',
+ 0x0045: 'Flash fired, red-eye reduction mode, return light not detected',
+ 0x0047: 'Flash fired, red-eye reduction mode, return light detected',
+ 0x0049: 'Flash fired, compulsory flash mode, red-eye reduction mode',
+ 0x004d: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected',
+ 0x004f: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected',
+ 0x0059: 'Flash fired, auto mode, red-eye reduction mode',
+ 0x005d: 'Flash fired, auto mode, return light not detected, red-eye reduction mode',
+ 0x005f: 'Flash fired, auto mode, return light detected, red-eye reduction mode',
+ },
+ SensingMethod: {
+ 1: 'Not defined',
+ 2: 'One-chip color area sensor',
+ 3: 'Two-chip color area sensor',
+ 4: 'Three-chip color area sensor',
+ 5: 'Color sequential area sensor',
+ 7: 'Trilinear sensor',
+ 8: 'Color sequential linear sensor',
+ },
+ SceneCaptureType: {
+ 0: 'Standard',
+ 1: 'Landscape',
+ 2: 'Portrait',
+ 3: 'Night scene',
+ },
+ SceneType: {
+ 1: 'Directly photographed',
+ },
+ CustomRendered: {
+ 0: 'Normal process',
+ 1: 'Custom process',
+ },
+ WhiteBalance: {
+ 0: 'Auto white balance',
+ 1: 'Manual white balance',
+ },
+ GainControl: {
+ 0: 'None',
+ 1: 'Low gain up',
+ 2: 'High gain up',
+ 3: 'Low gain down',
+ 4: 'High gain down',
+ },
+ Contrast: {
+ 0: 'Normal',
+ 1: 'Soft',
+ 2: 'Hard',
+ },
+ Saturation: {
+ 0: 'Normal',
+ 1: 'Low saturation',
+ 2: 'High saturation',
+ },
+ Sharpness: {
+ 0: 'Normal',
+ 1: 'Soft',
+ 2: 'Hard',
+ },
+ SubjectDistanceRange: {
+ 0: 'Unknown',
+ 1: 'Macro',
+ 2: 'Close view',
+ 3: 'Distant view',
+ },
+ FileSource: {
+ 3: 'DSC',
+ },
+
+ Components: {
+ 0: '',
+ 1: 'Y',
+ 2: 'Cb',
+ 3: 'Cr',
+ 4: 'R',
+ 5: 'G',
+ 6: 'B',
+ },
+ } );
+
+ function addEvent( element, event, handler ) {
+ if ( element.addEventListener ) {
+ element.addEventListener( event, handler, false );
+ } else if ( element.attachEvent ) {
+ element.attachEvent( 'on' + event, handler );
+ }
+ }
+
+ function imageHasData( img ) {
+ return !! img.exifdata;
+ }
+
+ function base64ToArrayBuffer( base64, contentType ) {
+ contentType =
+ contentType ||
+ base64.match( /^data\:([^\;]+)\;base64,/im )[ 1 ] ||
+ ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'
+ base64 = base64.replace( /^data\:([^\;]+)\;base64,/gim, '' );
+ const binary = atob( base64 );
+ const len = binary.length;
+ const buffer = new ArrayBuffer( len );
+ const view = new Uint8Array( buffer );
+ for ( let i = 0; i < len; i++ ) {
+ view[ i ] = binary.charCodeAt( i );
+ }
+ return buffer;
+ }
+
+ function objectURLToBlob( url, callback ) {
+ const http = new XMLHttpRequest();
+ http.open( 'GET', url, true );
+ http.responseType = 'blob';
+ http.onload = function ( e ) {
+ if ( this.status == 200 || this.status === 0 ) {
+ callback( this.response );
+ }
+ };
+ http.send();
+ }
+
+ function getImageData( img, callback ) {
+ function handleBinaryFile( binFile ) {
+ const data = findEXIFinJPEG( binFile );
+ img.exifdata = data || {};
+ const iptcdata = findIPTCinJPEG( binFile );
+ img.iptcdata = iptcdata || {};
+ if ( EXIF.isXmpEnabled ) {
+ const xmpdata = findXMPinJPEG( binFile );
+ img.xmpdata = xmpdata || {};
+ }
+ if ( callback ) {
+ callback.call( img );
+ }
+ }
+
+ if ( img.src ) {
+ if ( /^data\:/i.test( img.src ) ) {
+ // Data URI
+ const arrayBuffer = base64ToArrayBuffer( img.src );
+ handleBinaryFile( arrayBuffer );
+ } else if ( /^blob\:/i.test( img.src ) ) {
+ // Object URL
+ var fileReader = new FileReader();
+ fileReader.onload = function ( e ) {
+ handleBinaryFile( e.target.result );
+ };
+ objectURLToBlob( img.src, function ( blob ) {
+ fileReader.readAsArrayBuffer( blob );
+ } );
+ } else {
+ let http = new XMLHttpRequest();
+ http.onload = function () {
+ if ( this.status == 200 || this.status === 0 ) {
+ handleBinaryFile( http.response );
+ } else {
+ throw 'Could not load image';
+ }
+ http = null;
+ };
+ http.open( 'GET', img.src, true );
+ http.responseType = 'arraybuffer';
+ http.send( null );
+ }
+ } else if (
+ self.FileReader &&
+ ( img instanceof self.Blob || img instanceof self.File )
+ ) {
+ var fileReader = new FileReader();
+ fileReader.onload = function ( e ) {
+ if ( debug ) {
+ console.log(
+ 'Got file of length ' + e.target.result.byteLength
+ );
+ }
+ handleBinaryFile( e.target.result );
+ };
+
+ fileReader.readAsArrayBuffer( img );
+ }
+ }
+
+ function findEXIFinJPEG( file ) {
+ const dataView = new DataView( file );
+
+ if ( debug ) {
+ console.log( 'Got file of length ' + file.byteLength );
+ }
+ if (
+ dataView.getUint8( 0 ) != 0xff ||
+ dataView.getUint8( 1 ) != 0xd8
+ ) {
+ if ( debug ) {
+ console.log( 'Not a valid JPEG' );
+ }
+ return false; // not a valid jpeg
+ }
+
+ let offset = 2,
+ length = file.byteLength,
+ marker;
+
+ while ( offset < length ) {
+ if ( dataView.getUint8( offset ) != 0xff ) {
+ if ( debug ) {
+ console.log(
+ 'Not a valid marker at offset ' +
+ offset +
+ ', found: ' +
+ dataView.getUint8( offset )
+ );
+ }
+ return false; // not a valid marker, something is wrong
+ }
+
+ marker = dataView.getUint8( offset + 1 );
+ if ( debug ) {
+ console.log( marker );
+ }
+
+ // we could implement handling for other markers here,
+ // but we're only looking for 0xFFE1 for EXIF data
+
+ if ( marker == 225 ) {
+ if ( debug ) {
+ console.log( 'Found 0xFFE1 marker' );
+ }
+
+ return readEXIFData(
+ dataView,
+ offset + 4,
+ dataView.getUint16( offset + 2 ) - 2
+ );
+
+ // offset += 2 + file.getShortAt(offset+2, true);
+ }
+ offset += 2 + dataView.getUint16( offset + 2 );
+ }
+ }
+
+ function findIPTCinJPEG( file ) {
+ const dataView = new DataView( file );
+
+ if ( debug ) {
+ console.log( 'Got file of length ' + file.byteLength );
+ }
+ if (
+ dataView.getUint8( 0 ) != 0xff ||
+ dataView.getUint8( 1 ) != 0xd8
+ ) {
+ if ( debug ) {
+ console.log( 'Not a valid JPEG' );
+ }
+ return false; // not a valid jpeg
+ }
+
+ let offset = 2,
+ length = file.byteLength;
+
+ const isFieldSegmentStart = function ( dataView, offset ) {
+ return (
+ dataView.getUint8( offset ) === 0x38 &&
+ dataView.getUint8( offset + 1 ) === 0x42 &&
+ dataView.getUint8( offset + 2 ) === 0x49 &&
+ dataView.getUint8( offset + 3 ) === 0x4d &&
+ dataView.getUint8( offset + 4 ) === 0x04 &&
+ dataView.getUint8( offset + 5 ) === 0x04
+ );
+ };
+
+ while ( offset < length ) {
+ if ( isFieldSegmentStart( dataView, offset ) ) {
+ // Get the length of the name header (which is padded to an even number of bytes)
+ let nameHeaderLength = dataView.getUint8( offset + 7 );
+ if ( nameHeaderLength % 2 !== 0 ) {
+ nameHeaderLength += 1;
+ }
+ // Check for pre photoshop 6 format
+ if ( nameHeaderLength === 0 ) {
+ // Always 4
+ nameHeaderLength = 4;
+ }
+
+ const startOffset = offset + 8 + nameHeaderLength;
+ const sectionLength = dataView.getUint16(
+ offset + 6 + nameHeaderLength
+ );
+
+ return readIPTCData( file, startOffset, sectionLength );
+
+ break;
+ }
+
+ // Not the marker, continue searching
+ offset++;
+ }
+ }
+ const IptcFieldMap = {
+ 0x78: 'caption',
+ 0x6e: 'credit',
+ 0x19: 'keywords',
+ 0x37: 'dateCreated',
+ 0x50: 'byline',
+ 0x55: 'bylineTitle',
+ 0x7a: 'captionWriter',
+ 0x69: 'headline',
+ 0x74: 'copyright',
+ 0x0f: 'category',
+ };
+ function readIPTCData( file, startOffset, sectionLength ) {
+ const dataView = new DataView( file );
+ const data = {};
+ let fieldValue, fieldName, dataSize, segmentType, segmentSize;
+ let segmentStartPos = startOffset;
+ while ( segmentStartPos < startOffset + sectionLength ) {
+ if (
+ dataView.getUint8( segmentStartPos ) === 0x1c &&
+ dataView.getUint8( segmentStartPos + 1 ) === 0x02
+ ) {
+ segmentType = dataView.getUint8( segmentStartPos + 2 );
+ if ( segmentType in IptcFieldMap ) {
+ dataSize = dataView.getInt16( segmentStartPos + 3 );
+ segmentSize = dataSize + 5;
+ fieldName = IptcFieldMap[ segmentType ];
+ fieldValue = getStringFromDB(
+ dataView,
+ segmentStartPos + 5,
+ dataSize
+ );
+ // Check if we already stored a value with this name
+ if ( data.hasOwnProperty( fieldName ) ) {
+ // Value already stored with this name, create multivalue field
+ if ( data[ fieldName ] instanceof Array ) {
+ data[ fieldName ].push( fieldValue );
+ } else {
+ data[ fieldName ] = [
+ data[ fieldName ],
+ fieldValue,
+ ];
+ }
+ } else {
+ data[ fieldName ] = fieldValue;
+ }
+ }
+ }
+ segmentStartPos++;
+ }
+ return data;
+ }
+
+ function readTags( file, tiffStart, dirStart, strings, bigEnd ) {
+ let entries = file.getUint16( dirStart, ! bigEnd ),
+ tags = {},
+ entryOffset,
+ tag,
+ i;
+
+ for ( i = 0; i < entries; i++ ) {
+ entryOffset = dirStart + i * 12 + 2;
+ tag = strings[ file.getUint16( entryOffset, ! bigEnd ) ];
+ if ( ! tag && debug ) {
+ console.log(
+ 'Unknown tag: ' + file.getUint16( entryOffset, ! bigEnd )
+ );
+ }
+ tags[ tag ] = readTagValue(
+ file,
+ entryOffset,
+ tiffStart,
+ dirStart,
+ bigEnd
+ );
+ }
+ return tags;
+ }
+
+ function readTagValue( file, entryOffset, tiffStart, dirStart, bigEnd ) {
+ let type = file.getUint16( entryOffset + 2, ! bigEnd ),
+ numValues = file.getUint32( entryOffset + 4, ! bigEnd ),
+ valueOffset =
+ file.getUint32( entryOffset + 8, ! bigEnd ) + tiffStart,
+ offset,
+ vals,
+ val,
+ n,
+ numerator,
+ denominator;
+
+ switch ( type ) {
+ case 1: // byte, 8-bit unsigned int
+ case 7: // undefined, 8-bit byte, value depending on field
+ if ( numValues == 1 ) {
+ return file.getUint8( entryOffset + 8, ! bigEnd );
+ }
+ offset = numValues > 4 ? valueOffset : entryOffset + 8;
+ vals = [];
+ for ( n = 0; n < numValues; n++ ) {
+ vals[ n ] = file.getUint8( offset + n );
+ }
+ return vals;
+
+ case 2: // ascii, 8-bit byte
+ offset = numValues > 4 ? valueOffset : entryOffset + 8;
+ return getStringFromDB( file, offset, numValues - 1 );
+
+ case 3: // short, 16 bit int
+ if ( numValues == 1 ) {
+ return file.getUint16( entryOffset + 8, ! bigEnd );
+ }
+ offset = numValues > 2 ? valueOffset : entryOffset + 8;
+ vals = [];
+ for ( n = 0; n < numValues; n++ ) {
+ vals[ n ] = file.getUint16( offset + 2 * n, ! bigEnd );
+ }
+ return vals;
+
+ case 4: // long, 32 bit int
+ if ( numValues == 1 ) {
+ return file.getUint32( entryOffset + 8, ! bigEnd );
+ }
+ vals = [];
+ for ( n = 0; n < numValues; n++ ) {
+ vals[ n ] = file.getUint32( valueOffset + 4 * n, ! bigEnd );
+ }
+ return vals;
+
+ case 5: // rational = two long values, first is numerator, second is denominator
+ if ( numValues == 1 ) {
+ numerator = file.getUint32( valueOffset, ! bigEnd );
+ denominator = file.getUint32( valueOffset + 4, ! bigEnd );
+ val = new Number( numerator / denominator );
+ val.numerator = numerator;
+ val.denominator = denominator;
+ return val;
+ }
+ vals = [];
+ for ( n = 0; n < numValues; n++ ) {
+ numerator = file.getUint32( valueOffset + 8 * n, ! bigEnd );
+ denominator = file.getUint32(
+ valueOffset + 4 + 8 * n,
+ ! bigEnd
+ );
+ vals[ n ] = new Number( numerator / denominator );
+ vals[ n ].numerator = numerator;
+ vals[ n ].denominator = denominator;
+ }
+ return vals;
+
+ case 9: // slong, 32 bit signed int
+ if ( numValues == 1 ) {
+ return file.getInt32( entryOffset + 8, ! bigEnd );
+ }
+ vals = [];
+ for ( n = 0; n < numValues; n++ ) {
+ vals[ n ] = file.getInt32( valueOffset + 4 * n, ! bigEnd );
+ }
+ return vals;
+
+ case 10: // signed rational, two slongs, first is numerator, second is denominator
+ if ( numValues == 1 ) {
+ return (
+ file.getInt32( valueOffset, ! bigEnd ) /
+ file.getInt32( valueOffset + 4, ! bigEnd )
+ );
+ }
+ vals = [];
+ for ( n = 0; n < numValues; n++ ) {
+ vals[ n ] =
+ file.getInt32( valueOffset + 8 * n, ! bigEnd ) /
+ file.getInt32( valueOffset + 4 + 8 * n, ! bigEnd );
+ }
+ return vals;
+ }
+ }
+
+ /**
+ * Given an IFD (Image File Directory) start offset
+ * returns an offset to next IFD or 0 if it's the last IFD.
+ * @param dataView
+ * @param dirStart
+ * @param bigEnd
+ */
+ function getNextIFDOffset( dataView, dirStart, bigEnd ) {
+ //the first 2bytes means the number of directory entries contains in this IFD
+ const entries = dataView.getUint16( dirStart, ! bigEnd );
+
+ // After last directory entry, there is a 4bytes of data,
+ // it means an offset to next IFD.
+ // If its value is '0x00000000', it means this is the last IFD and there is no linked IFD.
+
+ return dataView.getUint32( dirStart + 2 + entries * 12, ! bigEnd ); // each entry is 12 bytes long
+ }
+
+ function readThumbnailImage( dataView, tiffStart, firstIFDOffset, bigEnd ) {
+ // get the IFD1 offset
+ const IFD1OffsetPointer = getNextIFDOffset(
+ dataView,
+ tiffStart + firstIFDOffset,
+ bigEnd
+ );
+
+ if ( ! IFD1OffsetPointer ) {
+ // console.log('******** IFD1Offset is empty, image thumb not found ********');
+ return {};
+ } else if ( IFD1OffsetPointer > dataView.byteLength ) {
+ // this should not happen
+ // console.log('******** IFD1Offset is outside the bounds of the DataView ********');
+ return {};
+ }
+ // console.log('******* thumbnail IFD offset (IFD1) is: %s', IFD1OffsetPointer);
+
+ const thumbTags = readTags(
+ dataView,
+ tiffStart,
+ tiffStart + IFD1OffsetPointer,
+ IFD1Tags,
+ bigEnd
+ );
+
+ // EXIF 2.3 specification for JPEG format thumbnail
+
+ // If the value of Compression(0x0103) Tag in IFD1 is '6', thumbnail image format is JPEG.
+ // Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail
+ // by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag.
+ // Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. It seems that
+ // JPEG format and 160x120pixels of size are recommended thumbnail format for Exif2.1 or later.
+
+ if ( thumbTags.Compression ) {
+ // console.log('Thumbnail image found!');
+
+ switch ( thumbTags.Compression ) {
+ case 6:
+ // console.log('Thumbnail image format is JPEG');
+ if ( thumbTags.JpegIFOffset && thumbTags.JpegIFByteCount ) {
+ // extract the thumbnail
+ const tOffset = tiffStart + thumbTags.JpegIFOffset;
+ const tLength = thumbTags.JpegIFByteCount;
+ thumbTags.blob = new Blob(
+ [
+ new Uint8Array(
+ dataView.buffer,
+ tOffset,
+ tLength
+ ),
+ ],
+ {
+ type: 'image/jpeg',
+ }
+ );
+ }
+ break;
+
+ case 1:
+ console.log(
+ 'Thumbnail image format is TIFF, which is not implemented.'
+ );
+ break;
+ default:
+ console.log(
+ "Unknown thumbnail image format '%s'",
+ thumbTags.Compression
+ );
+ }
+ } else if ( thumbTags.PhotometricInterpretation == 2 ) {
+ console.log(
+ 'Thumbnail image format is RGB, which is not implemented.'
+ );
+ }
+ return thumbTags;
+ }
+
+ function getStringFromDB( buffer, start, length ) {
+ let outstr = '';
+ for ( let n = start; n < start + length; n++ ) {
+ outstr += String.fromCharCode( buffer.getUint8( n ) );
+ }
+ return outstr;
+ }
+
+ function readEXIFData( file, start ) {
+ if ( getStringFromDB( file, start, 4 ) != 'Exif' ) {
+ if ( debug ) {
+ console.log(
+ 'Not valid EXIF data! ' + getStringFromDB( file, start, 4 )
+ );
+ }
+ return false;
+ }
+
+ let bigEnd,
+ tags,
+ tag,
+ exifData,
+ gpsData,
+ tiffOffset = start + 6;
+
+ // test for TIFF validity and endianness
+ if ( file.getUint16( tiffOffset ) == 0x4949 ) {
+ bigEnd = false;
+ } else if ( file.getUint16( tiffOffset ) == 0x4d4d ) {
+ bigEnd = true;
+ } else {
+ if ( debug ) {
+ console.log( 'Not valid TIFF data! (no 0x4949 or 0x4D4D)' );
+ }
+ return false;
+ }
+
+ if ( file.getUint16( tiffOffset + 2, ! bigEnd ) != 0x002a ) {
+ if ( debug ) {
+ console.log( 'Not valid TIFF data! (no 0x002A)' );
+ }
+ return false;
+ }
+
+ const firstIFDOffset = file.getUint32( tiffOffset + 4, ! bigEnd );
+
+ if ( firstIFDOffset < 0x00000008 ) {
+ if ( debug ) {
+ console.log(
+ 'Not valid TIFF data! (First offset less than 8)',
+ file.getUint32( tiffOffset + 4, ! bigEnd )
+ );
+ }
+ return false;
+ }
+
+ tags = readTags(
+ file,
+ tiffOffset,
+ tiffOffset + firstIFDOffset,
+ TiffTags,
+ bigEnd
+ );
+
+ if ( tags.ExifIFDPointer ) {
+ exifData = readTags(
+ file,
+ tiffOffset,
+ tiffOffset + tags.ExifIFDPointer,
+ ExifTags,
+ bigEnd
+ );
+ for ( tag in exifData ) {
+ switch ( tag ) {
+ case 'LightSource':
+ case 'Flash':
+ case 'MeteringMode':
+ case 'ExposureProgram':
+ case 'SensingMethod':
+ case 'SceneCaptureType':
+ case 'SceneType':
+ case 'CustomRendered':
+ case 'WhiteBalance':
+ case 'GainControl':
+ case 'Contrast':
+ case 'Saturation':
+ case 'Sharpness':
+ case 'SubjectDistanceRange':
+ case 'FileSource':
+ exifData[ tag ] =
+ StringValues[ tag ][ exifData[ tag ] ];
+ break;
+
+ case 'ExifVersion':
+ case 'FlashpixVersion':
+ exifData[ tag ] = String.fromCharCode(
+ exifData[ tag ][ 0 ],
+ exifData[ tag ][ 1 ],
+ exifData[ tag ][ 2 ],
+ exifData[ tag ][ 3 ]
+ );
+ break;
+
+ case 'ComponentsConfiguration':
+ exifData[ tag ] =
+ StringValues.Components[ exifData[ tag ][ 0 ] ] +
+ StringValues.Components[ exifData[ tag ][ 1 ] ] +
+ StringValues.Components[ exifData[ tag ][ 2 ] ] +
+ StringValues.Components[ exifData[ tag ][ 3 ] ];
+ break;
+ }
+ tags[ tag ] = exifData[ tag ];
+ }
+ }
+
+ if ( tags.GPSInfoIFDPointer ) {
+ gpsData = readTags(
+ file,
+ tiffOffset,
+ tiffOffset + tags.GPSInfoIFDPointer,
+ GPSTags,
+ bigEnd
+ );
+ for ( tag in gpsData ) {
+ switch ( tag ) {
+ case 'GPSVersionID':
+ gpsData[ tag ] =
+ gpsData[ tag ][ 0 ] +
+ '.' +
+ gpsData[ tag ][ 1 ] +
+ '.' +
+ gpsData[ tag ][ 2 ] +
+ '.' +
+ gpsData[ tag ][ 3 ];
+ break;
+ }
+ tags[ tag ] = gpsData[ tag ];
+ }
+ }
+
+ // extract thumbnail
+ tags.thumbnail = readThumbnailImage(
+ file,
+ tiffOffset,
+ firstIFDOffset,
+ bigEnd
+ );
+
+ return tags;
+ }
+
+ function findXMPinJPEG( file ) {
+ if ( ! ( 'DOMParser' in self ) ) {
+ // console.warn('XML parsing not supported without DOMParser');
+ return;
+ }
+ const dataView = new DataView( file );
+
+ if ( debug ) {
+ console.log( 'Got file of length ' + file.byteLength );
+ }
+ if (
+ dataView.getUint8( 0 ) != 0xff ||
+ dataView.getUint8( 1 ) != 0xd8
+ ) {
+ if ( debug ) {
+ console.log( 'Not a valid JPEG' );
+ }
+ return false; // not a valid jpeg
+ }
+
+ let offset = 2,
+ length = file.byteLength,
+ dom = new DOMParser();
+
+ while ( offset < length - 4 ) {
+ if ( getStringFromDB( dataView, offset, 4 ) == 'http' ) {
+ const startOffset = offset - 1;
+ const sectionLength = dataView.getUint16( offset - 2 ) - 1;
+ let xmpString = getStringFromDB(
+ dataView,
+ startOffset,
+ sectionLength
+ );
+ const xmpEndIndex = xmpString.indexOf( 'xmpmeta>' ) + 8;
+ xmpString = xmpString.substring(
+ xmpString.indexOf( ' 0 ) {
+ json[ '@attributes' ] = {};
+ for ( let j = 0; j < xml.attributes.length; j++ ) {
+ const attribute = xml.attributes.item( j );
+ json[ '@attributes' ][ attribute.nodeName ] =
+ attribute.nodeValue;
+ }
+ }
+ } else if ( xml.nodeType == 3 ) {
+ // text node
+ return xml.nodeValue;
+ }
+
+ // deal with children
+ if ( xml.hasChildNodes() ) {
+ for ( let i = 0; i < xml.childNodes.length; i++ ) {
+ const child = xml.childNodes.item( i );
+ const nodeName = child.nodeName;
+ if ( json[ nodeName ] == null ) {
+ json[ nodeName ] = xml2json( child );
+ } else {
+ if ( json[ nodeName ].push == null ) {
+ const old = json[ nodeName ];
+ json[ nodeName ] = [];
+ json[ nodeName ].push( old );
+ }
+ json[ nodeName ].push( xml2json( child ) );
+ }
+ }
+ }
+
+ return json;
+ }
+
+ function xml2Object( xml ) {
+ try {
+ let obj = {};
+ if ( xml.children.length > 0 ) {
+ for ( let i = 0; i < xml.children.length; i++ ) {
+ const item = xml.children.item( i );
+ const attributes = item.attributes;
+ for ( const idx in attributes ) {
+ const itemAtt = attributes[ idx ];
+ const dataKey = itemAtt.nodeName;
+ const dataValue = itemAtt.nodeValue;
+
+ if ( dataKey !== undefined ) {
+ obj[ dataKey ] = dataValue;
+ }
+ }
+ const nodeName = item.nodeName;
+
+ if ( typeof obj[ nodeName ] === 'undefined' ) {
+ obj[ nodeName ] = xml2json( item );
+ } else {
+ if ( typeof obj[ nodeName ].push === 'undefined' ) {
+ const old = obj[ nodeName ];
+
+ obj[ nodeName ] = [];
+ obj[ nodeName ].push( old );
+ }
+ obj[ nodeName ].push( xml2json( item ) );
+ }
+ }
+ } else {
+ obj = xml.textContent;
+ }
+ return obj;
+ } catch ( e ) {
+ console.log( e.message );
+ }
+ }
+
+ EXIF.enableXmp = function () {
+ EXIF.isXmpEnabled = true;
+ };
+
+ EXIF.disableXmp = function () {
+ EXIF.isXmpEnabled = false;
+ };
+
+ EXIF.getData = function ( img, callback ) {
+ if (
+ ( ( self.Image && img instanceof self.Image ) ||
+ ( self.HTMLImageElement &&
+ img instanceof self.HTMLImageElement ) ) &&
+ ! img.complete
+ ) {
+ return false;
+ }
+
+ if ( ! imageHasData( img ) ) {
+ getImageData( img, callback );
+ } else if ( callback ) {
+ callback.call( img );
+ }
+ return true;
+ };
+
+ EXIF.getTag = function ( img, tag ) {
+ if ( ! imageHasData( img ) ) {
+ return;
+ }
+ return img.exifdata[ tag ];
+ };
+
+ EXIF.getIptcTag = function ( img, tag ) {
+ if ( ! imageHasData( img ) ) {
+ return;
+ }
+ return img.iptcdata[ tag ];
+ };
+
+ EXIF.getAllTags = function ( img ) {
+ if ( ! imageHasData( img ) ) {
+ return {};
+ }
+ let a,
+ data = img.exifdata,
+ tags = {};
+ for ( a in data ) {
+ if ( data.hasOwnProperty( a ) ) {
+ tags[ a ] = data[ a ];
+ }
+ }
+ return tags;
+ };
+
+ EXIF.getAllIptcTags = function ( img ) {
+ if ( ! imageHasData( img ) ) {
+ return {};
+ }
+ let a,
+ data = img.iptcdata,
+ tags = {};
+ for ( a in data ) {
+ if ( data.hasOwnProperty( a ) ) {
+ tags[ a ] = data[ a ];
+ }
+ }
+ return tags;
+ };
+
+ EXIF.pretty = function ( img ) {
+ if ( ! imageHasData( img ) ) {
+ return '';
+ }
+ let a,
+ data = img.exifdata,
+ strPretty = '';
+ for ( a in data ) {
+ if ( data.hasOwnProperty( a ) ) {
+ if ( typeof data[ a ] === 'object' ) {
+ if ( data[ a ] instanceof Number ) {
+ strPretty +=
+ a +
+ ' : ' +
+ data[ a ] +
+ ' [' +
+ data[ a ].numerator +
+ '/' +
+ data[ a ].denominator +
+ ']\r\n';
+ } else {
+ strPretty +=
+ a + ' : [' + data[ a ].length + ' values]\r\n';
+ }
+ } else {
+ strPretty += a + ' : ' + data[ a ] + '\r\n';
+ }
+ }
+ }
+ return strPretty;
+ };
+
+ EXIF.readFromBinaryFile = function ( file ) {
+ return findEXIFinJPEG( file );
+ };
+
+ if ( typeof define === 'function' && define.amd ) {
+ define( 'exif-js', [], function () {
+ return EXIF;
+ } );
+ }
+} ).call( this );
diff --git a/js/file-upload.js b/js/file-upload.js
index add8d6d7..791e706e 100644
--- a/js/file-upload.js
+++ b/js/file-upload.js
@@ -1,740 +1,900 @@
/**
- * file upload js
- * @since 8.4
- **/
+ * File and cropper workflow for PPOM frontend fields.
+ *
+ * Each file/cropper field gets a dedicated Plupload instance. This script owns
+ * the upload UI, preview/croppie state, and the hidden inputs that eventually
+ * travel through add-to-cart, cart restore, and order meta persistence.
+ *
+ * @see ppom_get_field_meta_by_id in js/ppom.inputs.js
+ * @see ppom_update_option_prices in js/price/ppom-price.js
+ * @see ppom_generate_cropper_data_for_cart
+ */
+
+/**
+ * Minimal localized metadata used by the upload/cropper bootstrap.
+ *
+ * @typedef {{
+ * data_name: string,
+ * type: 'file'|'cropper',
+ * file_size: string,
+ * files_allowed: string,
+ * file_types: string,
+ * title?: string,
+ * required?: string,
+ * file_cost?: string,
+ * onetime?: string,
+ * max_img_w?: string,
+ * min_img_w?: string,
+ * max_img_h?: string,
+ * min_img_h?: string
+ * }} PPOMUploadFieldMeta
+ */
let isCartBlock = false;
+// Runtime registries keyed by PPOM field data_name.
const plupload_instances = Array();
const field_file_count = Array();
const file_list_preview_containers = Array();
-var ppom_file_progress = '';
-var featherEditor = '';
+const ppom_file_progress = '';
+const featherEditor = '';
const uploaderInstances = {};
-var Cropped_Data_Captured = false;
-
-jQuery(function($) {
-
- // If cropper input found in fields
- // if (ppom_get_field_meta_by_type('cropper').length > 0) {
-
- // var wc_cart_form = $('form.cart');
- // $(wc_cart_form).on('submit', function(e) {
-
- // // e.preventDefault();
- // var cropper_fields = ppom_get_field_meta_by_type('cropper');
- // $.each(cropper_fields, function(i, cropper) {
-
- // if (cropper.legacy_cropper !== undefined) return;
-
- // var cropper_name = cropper.data_name;
- // ppom_generate_cropper_data_for_cart(cropper.data_name);
-
- // });
- // });
- // }
-
- $(document).on('ppom_image_ready', function(e) {
-
- var image_url = e.image_url;
- var image_id = e.image.id;
- var data_name = e.data_name;
- var input_type = e.input_type;
- const file_input = e.file_input;
-
- if (input_type === 'cropper') {
-
- field_meta = ppom_get_field_meta_by_id(data_name);
- // console.log('ppom',field_meta)
- if (field_meta.legacy_cropper === undefined) {
- ppom_show_cropped_preview(data_name, image_url, image_id, file_input);
- // hiding the filelist-{data_name} when preview enabled
- $(`#filelist-${data_name}`).hide();
- // hide the file upload area too
- $(`.ppom-file-container.${data_name}`).hide();
- // also hide the crop ratio if only one option is provided
- if( $(`#crop-size-${data_name} option`).length === 1){
- $(`#crop-size-${data_name}`).hide();
- }
- }
- }
-
- // moving modal to body end
- $('.ppom-modals').appendTo('body');
- });
-
- // On file removed
- $(document).on('ppom_uploaded_file_removed', function(e) {
-
- var field_name = e.field_name;
- // var fileid = e.fileid;
-
- ppom_reset_cropping_preview(field_name);
- ppom_update_option_prices();
- });
-
-
- // Croppie update size
- $('.ppom-croppie-preview').on('change', '.ppom-cropping-size', function(e) {
-
- var data_name = $(this).data('field_name');
- var cropp_preview_container = jQuery(".ppom-croppie-wrapper-" + data_name);
- var v_width = $('option:selected', this).data('width');
- var v_height = $('option:selected', this).data('height');
-
- cropp_preview_container.find('.croppie-container').each(function(i, croppie_dom) {
-
- var image_id = jQuery(croppie_dom).attr('data-image_id');
- const croppie_container = jQuery('.ppom-croppie-preview-' + image_id);
- const image_url = jQuery(croppie_dom).find('img').attr('src');
- $(croppie_dom).croppie('destroy');
- const viewport = {'width': v_width, 'height': v_height};
-
- file_list_preview_containers[data_name]['croppie'][image_id] = croppie_container;
- file_list_preview_containers[data_name]['image_id'] = image_id;
- file_list_preview_containers[data_name]['image_url'] = image_url;
-
- ppom_set_croppie_options(data_name, viewport, image_id);
- });
-
- });
-
- // Deleting File
- document.querySelector('.ppom-wrapper')?.addEventListener('click', async function(e) {
- if (
- ! e.target.classList.contains('u_i_c_tools_del') ||
- ! plupload_instances
- ) {
- return;
- }
-
- e.preventDefault();
-
- const delMessage = ppom_file_vars.delete_file_msg;
- if ( ! confirm( delMessage ) ) return;
-
- const ppomFileWrapper = e.target.closest('.ppom-file-wrapper');
- const fileId = ppomFileWrapper?.getAttribute("data-fileid");
- const ppomFieldWrapper = e.target.closest('div.ppom-field-wrapper');
- const fileDataName = ppomFieldWrapper?.getAttribute("data-data_name");
-
- if ( !fileId || !fileDataName ) return;
-
- field_file_count[fileDataName] = 0;
-
- const uploaderInstance = plupload_instances[fileDataName];
- if ( uploaderInstance ) {
- uploaderInstance.removeFile(fileId);
- }
-
- const checkbox = document.querySelector(`input[name="ppom[fields][${fileDataName}][${fileId}][org]"]`);
- const fileName = checkbox?.value;
-
- if ( ! fileName ) return;
-
- // Delete animation.
- const imageElement = document.querySelector(`#u_i_c_${fileId} img`);
- if ( imageElement ) {
- imageElement.src = `${ppom_file_vars.plugin_url}/images/loading.gif`;
- }
-
- const data = new URLSearchParams({
- action: 'ppom_delete_file',
- file_name: fileName,
- ppom_nonce: ppom_file_vars.ppom_file_delete_nonce
- });
-
- try {
- const response = await fetch(ppom_file_vars.ajaxurl, {
- method: 'POST',
- body: data,
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'X-Requested-With': 'XMLHttpRequest'
- }
- });
-
- const responseText = await response.text();
- if ( ! response.ok ) {
- confirm(`Error: ${responseText}`);
- return;
- }
-
- // Update UI
- const fileContainer = document.querySelector(`#u_i_c_${fileId}`);
- if ( fileContainer ) {
- fileContainer.remove();
- }
-
- if ( checkbox ) {
- checkbox.remove();
- }
-
- const parentBox = e.target.closest('.u_i_c_box');
- if ( parentBox ) {
- parentBox.remove();
- }
-
- const croppiePreview = document.querySelector(`.ppom-croppie-preview-${fileId}`);
- if ( croppiePreview ) {
- croppiePreview.remove();
- }
-
- // Send action to PPOM_Validate
- document.dispatchEvent(new CustomEvent("ppom_uploaded_file_removed", {
- detail: {
- field_name: fileDataName,
- fileid: fileId,
- time: new Date()
- }
- }));
-
- // Decrease file count
- field_file_count[fileDataName] -= 1;
-
- } catch (error) {
- confirm(`Error: ${error.message}`);
- }
- });
-
- $.each(ppom_input_vars.ppom_inputs, function(index, file_input) {
-
-
- if (file_input.type === 'file' || file_input.type === 'cropper') {
-
- var file_data_name = file_input.data_name;
- ppom_setup_file_upload_input(file_input);
- }
-
- }); // $.each(ppom_file_vars
-
-
-}); // jQuery(function($){});
-
-// generate thumbbox
-function add_thumb_box(file, $filelist_DIV) {
-
- let inner_html = '(' + plupload.formatSize(file.size) + ')
';
- inner_html += '' + file.name + '
';
-
- jQuery('
', {
- 'id': 'u_i_c_' + file.id,
- 'class': 'uk-text-center ppom-file-wrapper',
- 'data-fileid': file.id,
- 'html': inner_html,
-
- }).appendTo($filelist_DIV);
-
- // clearfix
- // 1- removing last clearfix first
- $filelist_DIV.find('.u_i_c_box_clearfix').remove();
-
- jQuery('
', {
- 'class': 'u_i_c_box_clearfix',
- }).appendTo($filelist_DIV);
-
+const Cropped_Data_Captured = false;
+
+jQuery( function ( $ ) {
+ // Keep cropper previews, price recalculation, and modal placement aligned
+ // with the rest of the PPOM product form lifecycle.
+ // If cropper input found in fields
+ // if (ppom_get_field_meta_by_type('cropper').length > 0) {
+
+ // var wc_cart_form = $('form.cart');
+ // $(wc_cart_form).on('submit', function(e) {
+
+ // // e.preventDefault();
+ // var cropper_fields = ppom_get_field_meta_by_type('cropper');
+ // $.each(cropper_fields, function(i, cropper) {
+
+ // if (cropper.legacy_cropper !== undefined) return;
+
+ // var cropper_name = cropper.data_name;
+ // ppom_generate_cropper_data_for_cart(cropper.data_name);
+
+ // });
+ // });
+ // }
+
+ $( document ).on( 'ppom_image_ready', function ( e ) {
+ const image_url = e.image_url;
+ const image_id = e.image.id;
+ const data_name = e.data_name;
+ const input_type = e.input_type;
+ const file_input = e.file_input;
+
+ if ( input_type === 'cropper' ) {
+ field_meta = ppom_get_field_meta_by_id( data_name );
+ // console.log('ppom',field_meta)
+ if ( field_meta.legacy_cropper === undefined ) {
+ ppom_show_cropped_preview(
+ data_name,
+ image_url,
+ image_id,
+ file_input
+ );
+ // hiding the filelist-{data_name} when preview enabled
+ $( `#filelist-${ data_name }` ).hide();
+ // hide the file upload area too
+ $( `.ppom-file-container.${ data_name }` ).hide();
+ // also hide the crop ratio if only one option is provided
+ if ( $( `#crop-size-${ data_name } option` ).length === 1 ) {
+ $( `#crop-size-${ data_name }` ).hide();
+ }
+ }
+ }
+
+ // moving modal to body end
+ $( '.ppom-modals' ).appendTo( 'body' );
+ } );
+
+ // On file removed
+ $( document ).on( 'ppom_uploaded_file_removed', function ( e ) {
+ const field_name = e.field_name;
+ // var fileid = e.fileid;
+
+ ppom_reset_cropping_preview( field_name );
+ ppom_update_option_prices();
+ } );
+
+ // Croppie update size
+ $( '.ppom-croppie-preview' ).on(
+ 'change',
+ '.ppom-cropping-size',
+ function ( e ) {
+ const data_name = $( this ).data( 'field_name' );
+ const cropp_preview_container = jQuery(
+ '.ppom-croppie-wrapper-' + data_name
+ );
+ const v_width = $( 'option:selected', this ).data( 'width' );
+ const v_height = $( 'option:selected', this ).data( 'height' );
+
+ cropp_preview_container
+ .find( '.croppie-container' )
+ .each( function ( i, croppie_dom ) {
+ const image_id = jQuery( croppie_dom ).attr(
+ 'data-image_id'
+ );
+ const croppie_container = jQuery(
+ '.ppom-croppie-preview-' + image_id
+ );
+ const image_url = jQuery( croppie_dom )
+ .find( 'img' )
+ .attr( 'src' );
+ $( croppie_dom ).croppie( 'destroy' );
+ const viewport = { width: v_width, height: v_height };
+
+ file_list_preview_containers[ data_name ].croppie[
+ image_id
+ ] = croppie_container;
+ file_list_preview_containers[ data_name ].image_id = image_id;
+ file_list_preview_containers[ data_name ].image_url = image_url;
+
+ ppom_set_croppie_options( data_name, viewport, image_id );
+ } );
+ }
+ );
+
+ // Deleting File
+ document
+ .querySelector( '.ppom-wrapper' )
+ ?.addEventListener( 'click', async function ( e ) {
+ if (
+ ! e.target.classList.contains( 'u_i_c_tools_del' ) ||
+ ! plupload_instances
+ ) {
+ return;
+ }
+
+ e.preventDefault();
+
+ const delMessage = ppom_file_vars.delete_file_msg;
+ if ( ! confirm( delMessage ) ) {
+ return;
+ }
+
+ const ppomFileWrapper = e.target.closest( '.ppom-file-wrapper' );
+ const fileId = ppomFileWrapper?.getAttribute( 'data-fileid' );
+ const ppomFieldWrapper = e.target.closest(
+ 'div.ppom-field-wrapper'
+ );
+ const fileDataName =
+ ppomFieldWrapper?.getAttribute( 'data-data_name' );
+
+ if ( ! fileId || ! fileDataName ) {
+ return;
+ }
+
+ field_file_count[ fileDataName ] = 0;
+
+ const uploaderInstance = plupload_instances[ fileDataName ];
+ if ( uploaderInstance ) {
+ uploaderInstance.removeFile( fileId );
+ }
+
+ const checkbox = document.querySelector(
+ `input[name="ppom[fields][${ fileDataName }][${ fileId }][org]"]`
+ );
+ const fileName = checkbox?.value;
+
+ if ( ! fileName ) {
+ return;
+ }
+
+ // Delete animation.
+ const imageElement = document.querySelector(
+ `#u_i_c_${ fileId } img`
+ );
+ if ( imageElement ) {
+ imageElement.src = `${ ppom_file_vars.plugin_url }/images/loading.gif`;
+ }
+
+ const data = new URLSearchParams( {
+ action: 'ppom_delete_file',
+ file_name: fileName,
+ ppom_nonce: ppom_file_vars.ppom_file_delete_nonce,
+ } );
+
+ try {
+ const response = await fetch( ppom_file_vars.ajaxurl, {
+ method: 'POST',
+ body: data,
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'X-Requested-With': 'XMLHttpRequest',
+ },
+ } );
+
+ const responseText = await response.text();
+ if ( ! response.ok ) {
+ confirm( `Error: ${ responseText }` );
+ return;
+ }
+
+ // Update UI
+ const fileContainer = document.querySelector(
+ `#u_i_c_${ fileId }`
+ );
+ if ( fileContainer ) {
+ fileContainer.remove();
+ }
+
+ if ( checkbox ) {
+ checkbox.remove();
+ }
+
+ const parentBox = e.target.closest( '.u_i_c_box' );
+ if ( parentBox ) {
+ parentBox.remove();
+ }
+
+ const croppiePreview = document.querySelector(
+ `.ppom-croppie-preview-${ fileId }`
+ );
+ if ( croppiePreview ) {
+ croppiePreview.remove();
+ }
+
+ // Send action to PPOM_Validate
+ document.dispatchEvent(
+ new CustomEvent( 'ppom_uploaded_file_removed', {
+ detail: {
+ field_name: fileDataName,
+ fileid: fileId,
+ time: new Date(),
+ },
+ } )
+ );
+
+ // Decrease file count
+ field_file_count[ fileDataName ] -= 1;
+ } catch ( error ) {
+ confirm( `Error: ${ error.message }` );
+ }
+ } );
+
+ $.each( ppom_input_vars.ppom_inputs, function ( index, file_input ) {
+ if ( file_input.type === 'file' || file_input.type === 'cropper' ) {
+ const file_data_name = file_input.data_name;
+ ppom_setup_file_upload_input( file_input );
+ }
+ } ); // $.each(ppom_file_vars
+} ); // jQuery(function($){});
+
+// Build the temporary thumbnail shell shown while a file is uploading.
+function add_thumb_box( file, $filelist_DIV ) {
+ let inner_html =
+ '(' +
+ plupload.formatSize( file.size ) +
+ ')
';
+ inner_html +=
+ '' + file.name + '
';
+
+ jQuery( '
', {
+ id: 'u_i_c_' + file.id,
+ class: 'uk-text-center ppom-file-wrapper',
+ 'data-fileid': file.id,
+ html: inner_html,
+ } ).appendTo( $filelist_DIV );
+
+ // clearfix
+ // 1- removing last clearfix first
+ $filelist_DIV.find( '.u_i_c_box_clearfix' ).remove();
+
+ jQuery( '
', {
+ class: 'u_i_c_box_clearfix',
+ } ).appendTo( $filelist_DIV );
}
-
// save croped/edited photo
-function save_edited_photo(img_id, photo_url) {
-
- //console.log(img_id);
-
- //setting new image width to 75
- jQuery('#' + img_id).attr('width', 75);
-
- //disabling add to cart button for a while
- jQuery('form.cart').block({
- message: null,
- overlayCSS: {
- background: "#fff",
- opacity: .6
- }
- });
- var post_data = {
- action: 'ppom_save_edited_photo',
- image_url: photo_url,
- filename: jQuery('#' + img_id).attr('data-filename')
- };
-
- jQuery.post(ppom_file_vars.ajaxurl, post_data, function(resp) {
-
- //console.log( resp );
- jQuery('form.cart').unblock();
-
- });
+function save_edited_photo( img_id, photo_url ) {
+ //console.log(img_id);
+
+ //setting new image width to 75
+ jQuery( '#' + img_id ).attr( 'width', 75 );
+
+ //disabling add to cart button for a while
+ jQuery( 'form.cart' ).block( {
+ message: null,
+ overlayCSS: {
+ background: '#fff',
+ opacity: 0.6,
+ },
+ } );
+ const post_data = {
+ action: 'ppom_save_edited_photo',
+ image_url: photo_url,
+ filename: jQuery( '#' + img_id ).attr( 'data-filename' ),
+ };
+
+ jQuery.post( ppom_file_vars.ajaxurl, post_data, function ( resp ) {
+ //console.log( resp );
+ jQuery( 'form.cart' ).unblock();
+ } );
}
-// Cropping image with Croppie
-function ppom_show_cropped_preview(file_name, image_url, image_id, file_input) {
-
- var cropp_preview_container = jQuery(".ppom-croppie-wrapper-" + file_name);
- // Enable size option
- cropp_preview_container.find('.ppom-cropping-size').prop('disabled', false);
- cropp_preview_container.find('.ppom-cropping-size').show();
-
- const croppie_container = jQuery('
')
- .addClass('ppom-croppie-preview-' + image_id)
- .attr('data-image_id', image_id)
- .appendTo(cropp_preview_container);
-
- // Change preview image
- jQuery(' ')
- .addClass('btn ' + image_id)
- .attr('href', 'javascript:;')
- .attr('id', 'selectfiles-' + file_name + '-' + image_id)
- .attr('data-field-name', file_name)
- .attr('data-image-id', image_id)
- .html('Change image')
- .appendTo(cropp_preview_container)
- .click(function(e){
- e.preventDefault();
- });
-
- const file_inputs = {
- ...file_input,
- data_name: file_name + '-' + image_id,
- is_change_image: true,
- original_data_name: file_name,
- }
- ppom_setup_file_upload_input(file_inputs);
-
-
- // file_list_preview_containers[file_name]['croppie'] = cropp_preview_container.find('.ppom-croppie-preview');
-
- jQuery(croppie_container).on('update.croppie', function(ev, cropData) {
- // console.log(cropData);
- // croppie_container.croppie('result', 'rawcanvas').then(function(canvas) {
- // console.log(canvas);
-
- ppom_generate_cropper_data_for_cart(file_name);
-
- jQuery.event.trigger({
- type: 'ppom_croppie_update',
- img_id: image_id,
- croppie_obj: croppie_container,
- crop_data: cropData,
- dataname: file_name,
- time: new Date()
- });
-
- });
-
- file_list_preview_containers[file_name]['croppie'][image_id] = croppie_container;
- file_list_preview_containers[file_name]['image_id'] = image_id;
- file_list_preview_containers[file_name]['image_url'] = image_url;
-
- ppom_set_croppie_options(file_name, undefined, image_id);
+// Once an upload finishes, create the Croppie preview that feeds the hidden
+// cropped-image payload later submitted with the add-to-cart request.
+function ppom_show_cropped_preview(
+ file_name,
+ image_url,
+ image_id,
+ file_input
+) {
+ const cropp_preview_container = jQuery(
+ '.ppom-croppie-wrapper-' + file_name
+ );
+ // Enable size option
+ cropp_preview_container
+ .find( '.ppom-cropping-size' )
+ .prop( 'disabled', false );
+ cropp_preview_container.find( '.ppom-cropping-size' ).show();
+
+ const croppie_container = jQuery( '
' )
+ .addClass( 'ppom-croppie-preview-' + image_id )
+ .attr( 'data-image_id', image_id )
+ .appendTo( cropp_preview_container );
+
+ // Change preview image
+ jQuery( ' ' )
+ .addClass( 'btn ' + image_id )
+ .attr( 'href', 'javascript:;' )
+ .attr( 'id', 'selectfiles-' + file_name + '-' + image_id )
+ .attr( 'data-field-name', file_name )
+ .attr( 'data-image-id', image_id )
+ .html( 'Change image' )
+ .appendTo( cropp_preview_container )
+ .click( function ( e ) {
+ e.preventDefault();
+ } );
+
+ const file_inputs = {
+ ...file_input,
+ data_name: file_name + '-' + image_id,
+ is_change_image: true,
+ original_data_name: file_name,
+ };
+ ppom_setup_file_upload_input( file_inputs );
+
+ // file_list_preview_containers[file_name]['croppie'] = cropp_preview_container.find('.ppom-croppie-preview');
+
+ jQuery( croppie_container ).on(
+ 'update.croppie',
+ function ( ev, cropData ) {
+ // console.log(cropData);
+ // croppie_container.croppie('result', 'rawcanvas').then(function(canvas) {
+ // console.log(canvas);
+
+ ppom_generate_cropper_data_for_cart( file_name );
+
+ jQuery.event.trigger( {
+ type: 'ppom_croppie_update',
+ img_id: image_id,
+ croppie_obj: croppie_container,
+ crop_data: cropData,
+ dataname: file_name,
+ time: new Date(),
+ } );
+ }
+ );
+
+ file_list_preview_containers[ file_name ].croppie[ image_id ] =
+ croppie_container;
+ file_list_preview_containers[ file_name ].image_id = image_id;
+ file_list_preview_containers[ file_name ].image_url = image_url;
+
+ ppom_set_croppie_options( file_name, undefined, image_id );
}
-function ppom_set_croppie_options(file_name, viewport, image_id) {
-
- const croppie_options = ppom_file_vars.croppie_options;
- jQuery.each(croppie_options, function(field_name, option) {
-
- if (file_name === field_name) {
-
- option.url = file_list_preview_containers[file_name]['image_url'];
- if (viewport !== undefined) {
- viewport.type = option.viewport.type;
- option.viewport = viewport;
- }
-
- // console.log($filelist_DIV[file_name]['croppie'][image_id]);
- file_list_preview_containers[file_name]['croppie'][image_id].croppie(option);
- }
- });
+function ppom_set_croppie_options( file_name, viewport, image_id ) {
+ const croppie_options = ppom_file_vars.croppie_options;
+ jQuery.each( croppie_options, function ( field_name, option ) {
+ if ( file_name === field_name ) {
+ option.url = file_list_preview_containers[ file_name ].image_url;
+ if ( viewport !== undefined ) {
+ viewport.type = option.viewport.type;
+ option.viewport = viewport;
+ }
+
+ // console.log($filelist_DIV[file_name]['croppie'][image_id]);
+ file_list_preview_containers[ file_name ].croppie[
+ image_id
+ ].croppie( option );
+ }
+ } );
}
// Reset cropping when image removed
-function ppom_reset_cropping_preview(file_name) {
-
- var cropp_preview_container = jQuery(".ppom-croppie-wrapper-" + file_name);
- // Reseting preview DOM
- cropp_preview_container.find('.ppom-croppie-preview').html('');
+function ppom_reset_cropping_preview( file_name ) {
+ const cropp_preview_container = jQuery(
+ '.ppom-croppie-wrapper-' + file_name
+ );
+ // Reseting preview DOM
+ cropp_preview_container.find( '.ppom-croppie-preview' ).html( '' );
}
-// Attach FILE API with DOM
-function ppom_setup_file_upload_input(file_input) {
-
- const file_inputs = file_input;
- const parts = file_input.data_name.split('-');
- const [file_data_name, file_id ] = parts;
- let data_name = file_data_name;
-
- if ( file_id !== undefined ) {
- data_name = file_data_name + '-' + file_id;
- }
-
- if ( plupload_instances[data_name] !== undefined ) {
- return;
- }
-
- if ( ! field_file_count.hasOwnProperty( file_data_name ) ) {
- field_file_count[file_data_name] = 0;
- }
- file_list_preview_containers[file_data_name] = jQuery('#filelist-' + file_data_name);
-
- // Energy pack
- const bar = window.document.getElementById(`ppom-progressbar-${file_data_name}`);
-
- const ppom_file_data = {
- 'action': 'ppom_upload_file',
- 'data_name': file_data_name,
- 'ppom_nonce': ppom_file_vars.ppom_file_upload_nonce,
- 'product_id': ppom_file_vars.product_id,
- };
-
- let img_dim_errormsg = 'Please upload correct image dimension';
- if (file_input.img_dimension_error) {
- img_dim_errormsg = file_input.img_dimension_error;
- }
-
- plupload_instances[file_data_name] = new plupload.Uploader({
- runtimes: ppom_file_vars.plupload_runtime,
- browse_button: 'selectfiles-' + data_name, // you can pass in id...
- container: 'ppom-file-container-' + file_data_name, // ... or DOM Element itself
- drop_element: 'ppom-file-container-' + file_data_name,
- url: ppom_file_vars.ajaxurl,
- multipart_params: ppom_file_data,
- max_file_size: file_input.file_size,
- max_file_count: parseInt(file_input.files_allowed),
- unique_names: ppom_file_vars.enable_file_rename,
- chunk_size: '2mb',
- unique_names: false,
-
- filters: {
- mime_types: [
- { title: "Filetypes", extensions: file_input.file_types }
- ]
- },
-
- init: {
- PostInit: function() {
-
- // file_list_preview_containers[file_data_name].html('');
- if ( ! file_list_preview_containers[file_data_name].is(':visible') ) {
- jQuery(document).on('ppom_field_shown', function() {
-
- jQuery.each(ppom_input_vars.ppom_inputs, function(index, file_input) {
- if (file_input && (file_input.type === 'file' || file_input.type === 'cropper')) {
- if (
- file_input.data_name &&
- file_input.files_allowed &&
- file_input.file_size &&
- file_input.files_allowed
- ) {
- ppom_setup_file_upload_input(file_input);
- }
- }
-
- });
- } );
- }
- /*$('#uploadfiles-'+file_data_name).bind('click', function() {
+/**
+ * Attach one Plupload instance per PPOM file/cropper field and keep the
+ * resulting hidden checkbox inputs compatible with the price/validation stack.
+ *
+ * @param {PPOMUploadFieldMeta} file_input
+ * @return {void}
+ */
+function ppom_setup_file_upload_input( file_input ) {
+ const file_inputs = file_input;
+ const parts = file_input.data_name.split( '-' );
+ const [ file_data_name, file_id ] = parts;
+ let data_name = file_data_name;
+
+ if ( file_id !== undefined ) {
+ data_name = file_data_name + '-' + file_id;
+ }
+
+ if ( plupload_instances[ data_name ] !== undefined ) {
+ return;
+ }
+
+ if ( ! Object.prototype.hasOwnProperty.call( field_file_count, file_data_name ) ) {
+ field_file_count[ file_data_name ] = 0;
+ }
+ file_list_preview_containers[ file_data_name ] = jQuery(
+ '#filelist-' + file_data_name
+ );
+
+ // Energy pack
+ const bar = window.document.getElementById(
+ `ppom-progressbar-${ file_data_name }`
+ );
+
+ const ppom_file_data = {
+ action: 'ppom_upload_file',
+ data_name: file_data_name,
+ ppom_nonce: ppom_file_vars.ppom_file_upload_nonce,
+ product_id: ppom_file_vars.product_id,
+ };
+
+ let img_dim_errormsg = 'Please upload correct image dimension';
+ if ( file_input.img_dimension_error ) {
+ img_dim_errormsg = file_input.img_dimension_error;
+ }
+
+ plupload_instances[ file_data_name ] = new plupload.Uploader( {
+ runtimes: ppom_file_vars.plupload_runtime,
+ browse_button: 'selectfiles-' + data_name, // you can pass in id...
+ container: 'ppom-file-container-' + file_data_name, // ... or DOM Element itself
+ drop_element: 'ppom-file-container-' + file_data_name,
+ url: ppom_file_vars.ajaxurl,
+ multipart_params: ppom_file_data,
+ max_file_size: file_input.file_size,
+ max_file_count: parseInt( file_input.files_allowed ),
+ unique_names: ppom_file_vars.enable_file_rename,
+ chunk_size: '2mb',
+ unique_names: false,
+
+ filters: {
+ mime_types: [
+ { title: 'Filetypes', extensions: file_input.file_types },
+ ],
+ },
+
+ init: {
+ PostInit() {
+ // file_list_preview_containers[file_data_name].html('');
+ if (
+ ! file_list_preview_containers[ file_data_name ].is(
+ ':visible'
+ )
+ ) {
+ jQuery( document ).on( 'ppom_field_shown', function () {
+ jQuery.each(
+ ppom_input_vars.ppom_inputs,
+ function ( index, file_input ) {
+ if (
+ file_input &&
+ ( file_input.type === 'file' ||
+ file_input.type === 'cropper' )
+ ) {
+ if (
+ file_input.data_name &&
+ file_input.files_allowed &&
+ file_input.file_size &&
+ file_input.files_allowed
+ ) {
+ ppom_setup_file_upload_input(
+ file_input
+ );
+ }
+ }
+ }
+ );
+ } );
+ }
+ /*$('#uploadfiles-'+file_data_name).bind('click', function() {
upload_instance[file_data_name].start();
return false;
});*/
- },
-
- FilesAdded: function(up, files) {
-
- // Adding progress bar
- const file_pb = jQuery('
')
- .addClass('progress')
- .css('width', '100%')
- .css('clear', 'both')
- .css('margin', '5px auto')
- .appendTo(file_list_preview_containers[file_data_name]);
- const file_pb_runner = jQuery('
')
- .addClass('progress-bar')
- .attr('role', 'progressbar')
- .attr('aria-valuenow', 0)
- .attr('aria-valuemin', 0)
- .attr('aria-valuemax', 100)
- .css('height', '15px')
- .css('width', 0)
- .appendTo(file_pb);
-
- const files_added = files.length;
- // return;
-
- // console.log('image w bac', files);
- // plupload.each(files, function(file, i) {
- // var img = new mOxie.Image;
- // img.onload = function() {
- // var img_height = this.height;
- // var img_width = this.width;
- // // if ((img_height >= 1024 || img_height <= 1100) && (img_width >= 750 || img_width <= 800)) {
- // if ((img_width >= parseFloat(file_input.max_img_w) || img_width <= parseFloat(file_input.min_img_w))) {
- // alert("Height and Width must not exceed 1100*800.");
- // return false;
- // }
- // console.log('image h', parseFloat(file_input.max_img_w));
- // // access image size here using this.width and this.height
- // };
- // img.load(file.getSource());
- // });
-
- if ( file_id !== undefined ) {
- --field_file_count[file_data_name];
- }
-
- if ((field_file_count[file_data_name] + files_added) > plupload_instances[file_data_name].settings.max_file_count) {
- alert(plupload_instances[file_data_name].settings.max_file_count + ppom_file_vars.mesage_max_files_limit);
- }
- else {
-
- if ( file_id !== undefined ) {
-
- jQuery('.ppom-croppie-preview-' + file_id).hide(500).remove();
- jQuery(`.btn.${file_id}`).hide(500).remove();
- jQuery("#u_i_c_" + file_id).hide(500).remove();
- jQuery(`input[name="ppom[fields][${file_data_name}][${file_data_name}][cropped]"`).hide(500).remove();
- }
-
- plupload.each(files, function (file) {
-
- if (file.type.indexOf("image") !== -1 && file.type !== 'image/photoshop') {
- const img = new moxie.image.Image();
- img.load = function() {
-
- const img_height = this.height;
- const img_width = this.width;
-
- let aspect_ratio = Math.max(img_width, img_height) / Math.min(img_width, img_height);
-
- if (
- img_width >= parseFloat(file_input.max_img_w) ||
- img_width <= parseFloat(file_input.min_img_w) ||
- img_height >= parseFloat(file_input.max_img_h) ||
- img_height <= parseFloat(file_input.min_img_h)
- ) {
- up.removeFile(file);
- alert(img_dim_errormsg);
- } else {
- field_file_count[file_data_name]++;
- // Code to add pending file details, if you want
- add_thumb_box(file, file_list_preview_containers[file_data_name], up);
- up.start();
- }
- };
- img.load(file.getSource());
- } else {
- field_file_count[file_data_name]++;
- // Code to add pending file details, if you want
- add_thumb_box(file, file_list_preview_containers[file_data_name], up);
- up.start();
- }
-
- // Energy pack
- if ( bar ) {
- bar.removeAttribute('hidden');
- bar.max = file.size;
- bar.value = file.loaded;
- }
- });
- }
-
-
- },
-
- FileUploaded: function(up, file, info) {
-
-
- const obj_resp = jQuery.parseJSON(info.response);
-
- if (obj_resp.file_name === 'ThumbNotFound') {
-
- plupload_instances[file_data_name].removeFile(file.id);
- jQuery("#u_i_c_" + file.id).hide(500).remove();
- field_file_count[file_data_name]--;
-
- alert('There is some error please try again');
- return;
-
- }
- else if (obj_resp.status === 'error') {
-
- plupload_instances[file_data_name].removeFile(file.id);
-
- jQuery("#u_i_c_" + file.id).hide(500).remove();
-
- field_file_count[file_data_name]--;
- alert(obj_resp.message);
- return;
- };
-
- // var img_w = obj_resp.file_w
- // var img_h = obj_resp.file_h
- // if (img_w > parseFloat(file_input.max_img_w)) {
- // upload_instance[file_data_name].removeFile(file.id);
- // jQuery("#u_i_c_" + file.id).hide(500).remove();
- // file_count[file_data_name]--;
- // alert('Image Dimension Error');
- // jQuery('form.cart').unblock();
- // return;
- // }
-
- let file_thumb = '';
-
- /*if( file_input.file_cost != "" ) {
+ },
+
+ FilesAdded( up, files ) {
+ // Adding progress bar
+ const file_pb = jQuery( '
' )
+ .addClass( 'progress' )
+ .css( 'width', '100%' )
+ .css( 'clear', 'both' )
+ .css( 'margin', '5px auto' )
+ .appendTo( file_list_preview_containers[ file_data_name ] );
+ const file_pb_runner = jQuery( '
' )
+ .addClass( 'progress-bar' )
+ .attr( 'role', 'progressbar' )
+ .attr( 'aria-valuenow', 0 )
+ .attr( 'aria-valuemin', 0 )
+ .attr( 'aria-valuemax', 100 )
+ .css( 'height', '15px' )
+ .css( 'width', 0 )
+ .appendTo( file_pb );
+
+ const files_added = files.length;
+ // return;
+
+ // console.log('image w bac', files);
+ // plupload.each(files, function(file, i) {
+ // var img = new mOxie.Image;
+ // img.onload = function() {
+ // var img_height = this.height;
+ // var img_width = this.width;
+ // // if ((img_height >= 1024 || img_height <= 1100) && (img_width >= 750 || img_width <= 800)) {
+ // if ((img_width >= parseFloat(file_input.max_img_w) || img_width <= parseFloat(file_input.min_img_w))) {
+ // alert("Height and Width must not exceed 1100*800.");
+ // return false;
+ // }
+ // console.log('image h', parseFloat(file_input.max_img_w));
+ // // access image size here using this.width and this.height
+ // };
+ // img.load(file.getSource());
+ // });
+
+ if ( file_id !== undefined ) {
+ --field_file_count[ file_data_name ];
+ }
+
+ if (
+ field_file_count[ file_data_name ] + files_added >
+ plupload_instances[ file_data_name ].settings.max_file_count
+ ) {
+ alert(
+ plupload_instances[ file_data_name ].settings
+ .max_file_count +
+ ppom_file_vars.mesage_max_files_limit
+ );
+ } else {
+ if ( file_id !== undefined ) {
+ jQuery( '.ppom-croppie-preview-' + file_id )
+ .hide( 500 )
+ .remove();
+ jQuery( `.btn.${ file_id }` ).hide( 500 ).remove();
+ jQuery( '#u_i_c_' + file_id ).hide( 500 ).remove();
+ jQuery(
+ `input[name="ppom[fields][${ file_data_name }][${ file_data_name }][cropped]"]`
+ )
+ .hide( 500 )
+ .remove();
+ }
+
+ plupload.each( files, function ( file ) {
+ if (
+ file.type.indexOf( 'image' ) !== -1 &&
+ file.type !== 'image/photoshop'
+ ) {
+ const img = new moxie.image.Image();
+ img.load = function () {
+ const img_height = this.height;
+ const img_width = this.width;
+
+ const aspect_ratio =
+ Math.max( img_width, img_height ) /
+ Math.min( img_width, img_height );
+
+ if (
+ img_width >=
+ parseFloat( file_input.max_img_w ) ||
+ img_width <=
+ parseFloat( file_input.min_img_w ) ||
+ img_height >=
+ parseFloat( file_input.max_img_h ) ||
+ img_height <=
+ parseFloat( file_input.min_img_h )
+ ) {
+ up.removeFile( file );
+ alert( img_dim_errormsg );
+ } else {
+ field_file_count[ file_data_name ]++;
+ // Code to add pending file details, if you want
+ add_thumb_box(
+ file,
+ file_list_preview_containers[
+ file_data_name
+ ],
+ up
+ );
+ up.start();
+ }
+ };
+ img.load( file.getSource() );
+ } else {
+ field_file_count[ file_data_name ]++;
+ // Code to add pending file details, if you want
+ add_thumb_box(
+ file,
+ file_list_preview_containers[ file_data_name ],
+ up
+ );
+ up.start();
+ }
+
+ // Energy pack
+ if ( bar ) {
+ bar.removeAttribute( 'hidden' );
+ bar.max = file.size;
+ bar.value = file.loaded;
+ }
+ } );
+ }
+ },
+
+ FileUploaded( up, file, info ) {
+ const obj_resp = jQuery.parseJSON( info.response );
+
+ if ( obj_resp.file_name === 'ThumbNotFound' ) {
+ plupload_instances[ file_data_name ].removeFile( file.id );
+ jQuery( '#u_i_c_' + file.id )
+ .hide( 500 )
+ .remove();
+ field_file_count[ file_data_name ]--;
+
+ alert( 'There is some error please try again' );
+ return;
+ } else if ( obj_resp.status === 'error' ) {
+ plupload_instances[ file_data_name ].removeFile( file.id );
+
+ jQuery( '#u_i_c_' + file.id )
+ .hide( 500 )
+ .remove();
+
+ field_file_count[ file_data_name ]--;
+ alert( obj_resp.message );
+ return;
+ }
+
+ // var img_w = obj_resp.file_w
+ // var img_h = obj_resp.file_h
+ // if (img_w > parseFloat(file_input.max_img_w)) {
+ // upload_instance[file_data_name].removeFile(file.id);
+ // jQuery("#u_i_c_" + file.id).hide(500).remove();
+ // file_count[file_data_name]--;
+ // alert('Image Dimension Error');
+ // jQuery('form.cart').unblock();
+ // return;
+ // }
+
+ let file_thumb = '';
+
+ /*if( file_input.file_cost != "" ) {
jQuery('input[name="woo_file_cost"]').val( file_input.file_cost );
}*/
- file_list_preview_containers[file_data_name].find('#u_i_c_' + file.id).html(obj_resp.html)
- .trigger({
- type: "ppom_image_ready",
- image: file,
- data_name: file_data_name,
- input_type: file_input.type,
- image_url: obj_resp.file_url,
- image_resp: obj_resp,
- time: new Date(),
- file_input: file_inputs,
- });
-
-
- // checking if uploaded file is thumb
- const ext = obj_resp.file_name.substring(obj_resp.file_name.lastIndexOf('.') + 1).toLowerCase();
-
- if (
- ext === 'png' ||
- ext === 'gif' ||
- ext === 'jpg' ||
- ext === 'jpeg'
- ) {
- const file_full = ppom_file_vars.file_upload_path + obj_resp.file_name;
- // thumb thickbox only shown if it is image
- file_list_preview_containers[file_data_name]
- .find('#u_i_c_' + file.id)
- .find('.u_i_c_thumb')
- .append('');
-
- // Aviary editing tools
- if (file_input.photo_editing === 'on' && ppom_file_vars.aviary_api_key !== '') {
- const editing_tools = file_input.editing_tools;
- file_list_preview_containers[file_data_name]
- .find('#u_i_c_' + file.id)
- .find('.u_i_c_tools_edit')
- .append(' ');
- }
- } else {
- file_thumb = ppom_file_vars.plugin_url + '/images/file.png';
- file_list_preview_containers[file_data_name].find('#u_i_c_' + file.id)
- .find('.u_i_c_thumb')
- .html(' ')
- }
-
- // adding checkbox input to Hold uploaded file name as array
- const file_container = file_list_preview_containers[file_data_name].find('#u_i_c_' + file.id);
- let input_class = 'ppom-input';
- input_class += file_input.required === 'on' ? ' ppom-required' : '';
-
- // Add file check
- jQuery(' ')
- .attr('data-price', file_input.file_cost)
- .attr('data-label', obj_resp.file_name)
- .attr('data-data_name', file_input.data_name)
- .attr('data-title', file_input.title)
- .attr('data-onetime', file_input.onetime)
- .val(obj_resp.file_name)
- .css('display', 'none')
- .addClass('ppom-file-cb-' + file_data_name)
- .addClass('ppom-file-cb')
- .addClass(input_class)
- .appendTo(file_container)
- .trigger('change');
-
- ppom_update_option_prices();
-
- jQuery('form.cart').unblock();
- isCartBlock = false;
-
- // Removing progressbar
- file_list_preview_containers[file_data_name].find('.progress').remove();
-
- if ( bar ) {
- setTimeout(function() {
- bar.setAttribute('hidden', 'hidden');
- }, 1000);
- bar.max = file.size;
- bar.value = file.loaded;
- }
-
- // Trigger
- jQuery.event.trigger({
- type: "ppom_file_uploaded",
- file: file,
- file_meta: file_input,
- file_resp: obj_resp,
- time: new Date()
- });
- },
-
- UploadProgress: function(up, file) {
-
- // Energy pack
- if ( bar ) {
- bar.max = file.size;
- bar.value = file.loaded;
- }
-
- file_list_preview_containers[file_data_name].find('.progress-bar').css('width', file.percent + '%');
-
- //disabling add to cart button for a while
- if (!isCartBlock) {
- jQuery('form.cart').block({
- message: null,
- overlayCSS: {
- background: "#fff",
- opacity: .6,
- onBlock: function() {
- isCartBlock = true;
- }
- }
- });
- }
- },
-
- Error: function(up, err) {
- //document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
- alert("\nError #" + err.code + ": " + err.message);
- }
- }
-
-
- });
-
- // console.log('running file', upload_instance[file_data_name]);
- plupload_instances[file_data_name].init();
- uploaderInstances[file_data_name] = plupload_instances[file_data_name];
+ file_list_preview_containers[ file_data_name ]
+ .find( '#u_i_c_' + file.id )
+ .html( obj_resp.html )
+ .trigger( {
+ type: 'ppom_image_ready',
+ image: file,
+ data_name: file_data_name,
+ input_type: file_input.type,
+ image_url: obj_resp.file_url,
+ image_resp: obj_resp,
+ file_input: file_inputs,
+ time: new Date(),
+ } );
+
+ // checking if uploaded file is thumb
+ const ext = obj_resp.file_name
+ .substring( obj_resp.file_name.lastIndexOf( '.' ) + 1 )
+ .toLowerCase();
+
+ if (
+ ext === 'png' ||
+ ext === 'gif' ||
+ ext === 'jpg' ||
+ ext === 'jpeg'
+ ) {
+ const file_full =
+ ppom_file_vars.file_upload_path + obj_resp.file_name;
+ // thumb thickbox only shown if it is image
+ file_list_preview_containers[ file_data_name ]
+ .find( '#u_i_c_' + file.id )
+ .find( '.u_i_c_thumb' )
+ .append(
+ ''
+ );
+
+ // Aviary editing tools
+ if (
+ file_input.photo_editing === 'on' &&
+ ppom_file_vars.aviary_api_key !== ''
+ ) {
+ const editing_tools = file_input.editing_tools;
+ file_list_preview_containers[ file_data_name ]
+ .find( '#u_i_c_' + file.id )
+ .find( '.u_i_c_tools_edit' )
+ .append(
+ ' '
+ );
+ }
+ } else {
+ file_thumb = ppom_file_vars.plugin_url + '/images/file.png';
+ file_list_preview_containers[ file_data_name ]
+ .find( '#u_i_c_' + file.id )
+ .find( '.u_i_c_thumb' )
+ .html(
+ ' '
+ );
+ }
+
+ // adding checkbox input to Hold uploaded file name as array
+ const file_container = file_list_preview_containers[
+ file_data_name
+ ].find( '#u_i_c_' + file.id );
+ let input_class = 'ppom-input';
+ input_class +=
+ file_input.required === 'on' ? ' ppom-required' : '';
+
+ // Add file check
+ jQuery(
+ ' '
+ )
+ .attr( 'data-price', file_input.file_cost )
+ .attr( 'data-label', obj_resp.file_name )
+ .attr( 'data-data_name', file_input.data_name )
+ .attr( 'data-title', file_input.title )
+ .attr( 'data-onetime', file_input.onetime )
+ .val( obj_resp.file_name )
+ .css( 'display', 'none' )
+ .addClass( 'ppom-file-cb-' + file_data_name )
+ .addClass( 'ppom-file-cb' )
+ .addClass( input_class )
+ .appendTo( file_container )
+ .trigger( 'change' );
+
+ ppom_update_option_prices();
+
+ jQuery( 'form.cart' ).unblock();
+ isCartBlock = false;
+
+ // Removing progressbar
+ file_list_preview_containers[ file_data_name ]
+ .find( '.progress' )
+ .remove();
+
+ if ( bar ) {
+ setTimeout( function () {
+ bar.setAttribute( 'hidden', 'hidden' );
+ }, 1000 );
+ bar.max = file.size;
+ bar.value = file.loaded;
+ }
+
+ // Trigger
+ jQuery.event.trigger( {
+ type: 'ppom_file_uploaded',
+ file,
+ file_meta: file_input,
+ file_resp: obj_resp,
+ time: new Date(),
+ } );
+ },
+
+ UploadProgress( up, file ) {
+ // Energy pack
+ if ( bar ) {
+ bar.max = file.size;
+ bar.value = file.loaded;
+ }
+
+ file_list_preview_containers[ file_data_name ]
+ .find( '.progress-bar' )
+ .css( 'width', file.percent + '%' );
+
+ //disabling add to cart button for a while
+ if ( ! isCartBlock ) {
+ jQuery( 'form.cart' ).block( {
+ message: null,
+ overlayCSS: {
+ background: '#fff',
+ opacity: 0.6,
+ onBlock() {
+ isCartBlock = true;
+ },
+ },
+ } );
+ }
+ },
+
+ Error( up, err ) {
+ //document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
+ alert( '\nError #' + err.code + ': ' + err.message );
+ },
+ },
+ } );
+
+ // console.log('running file', upload_instance[file_data_name]);
+ plupload_instances[ file_data_name ].init();
+ uploaderInstances[ file_data_name ] = plupload_instances[ file_data_name ];
}
-// Generate Cropped image data for cart
-function ppom_generate_cropper_data_for_cart(field_name) {
-
- const cropp_preview_container = jQuery(".ppom-croppie-wrapper-" + field_name);
-
- cropp_preview_container.find('.croppie-container').each(function(i, croppie_dom) {
-
- const image_id = jQuery(croppie_dom).attr('data-image_id');
- jQuery(croppie_dom).croppie('result', {
- type: 'rawcanvas',
- // size: { width: 300, height: 300 },
- size: 'original',
- format: 'png'
- }).then(function(canvas) {
- const image_url = canvas.toDataURL();
- //console.log(image_url);
- // remove first
- jQuery(`input[name="ppom[fields][${field_name}][${image_id}][cropped]"`).remove();
-
- // Add file check
- jQuery(' ')
- .val(image_url)
- .css('display', 'none')
- .appendTo(file_list_preview_containers[field_name]);
-
- });
- });
+// Persist the Croppie canvas output into hidden inputs so PHP can rebuild the
+// edited image from the same request payload used for normal uploaded files.
+function ppom_generate_cropper_data_for_cart( field_name ) {
+ const cropp_preview_container = jQuery(
+ '.ppom-croppie-wrapper-' + field_name
+ );
+
+ cropp_preview_container
+ .find( '.croppie-container' )
+ .each( function ( i, croppie_dom ) {
+ const image_id = jQuery( croppie_dom ).attr( 'data-image_id' );
+ jQuery( croppie_dom )
+ .croppie( 'result', {
+ type: 'rawcanvas',
+ // size: { width: 300, height: 300 },
+ size: 'original',
+ format: 'png',
+ } )
+ .then( function ( canvas ) {
+ const image_url = canvas.toDataURL();
+ //console.log(image_url);
+ // remove first
+ jQuery(
+ `input[name="ppom[fields][${ field_name }][${ image_id }][cropped]"]`
+ ).remove();
+
+ // Add file check
+ jQuery(
+ ' '
+ )
+ .val( image_url )
+ .css( 'display', 'none' )
+ .appendTo( file_list_preview_containers[ field_name ] );
+ } );
+ } );
}
diff --git a/js/image-tooltip.js b/js/image-tooltip.js
index 19b30542..623f0865 100644
--- a/js/image-tooltip.js
+++ b/js/image-tooltip.js
@@ -1,67 +1,91 @@
-(function ($) {
- $.fn.imageTooltip = function (options) {
+/**
+ * Lightweight hover preview used by PPOM image inputs.
+ *
+ * Product-page image choices can carry a larger image URL in
+ * `data-image-tooltip`; this plugin renders that preview near the cursor
+ * without opening the full media modal flow.
+ */
+( function ( $ ) {
+ $.fn.imageTooltip = function ( options ) {
+ const defaults = {
+ imgWidth: 'initial',
+ backgroundColor: '#fff',
+ };
- var defaults = {
- imgWidth: 'initial',
- backgroundColor: '#fff'
- };
+ if ( typeof options === 'object' ) {
+ options = $.extend( defaults, options );
+ } else {
+ const tempOptions = {};
+ tempOptions.imgWidth = arguments[ 0 ] || defaults.imgWidth;
+ tempOptions.backgroundColor =
+ arguments[ 1 ] || defaults.backgroundColor;
+ options = tempOptions;
+ }
- if (typeof (options) === 'object') {
- options = $.extend(defaults, options);
- } else {
- var tempOptions = {};
- tempOptions.imgWidth = arguments[0] || defaults.imgWidth;
- tempOptions.backgroundColor = arguments[1] || defaults.backgroundColor;
- options = tempOptions;
- }
+ function calLeft( x, imgWidth ) {
+ return window.innerWidth - x > imgWidth ? x : x - imgWidth;
+ }
- function calLeft(x, imgWidth) {
- return window.innerWidth - x > imgWidth ? x : x - imgWidth;
- }
+ function calTop( y, imgHeight ) {
+ return window.innerHeight - y > imgHeight
+ ? y + 25
+ : y - imgHeight - 25;
+ }
- function calTop(y, imgHeight) {
- return window.innerHeight - y > imgHeight ? y + 25 : y - imgHeight - 25;
- }
+ return this.each( function () {
+ const imgContainer = $( '', {
+ css: {
+ display: 'none',
+ backgroundColor: options.backgroundColor,
+ padding: '5px',
+ position: 'fixed',
+ 'max-width': '350px',
+ 'z-index': '9999',
+ },
+ } );
- return this.each(function () {
+ const img = $( ' ', {
+ src:
+ $( this ).data( 'image-tooltip' ) ||
+ $( this ).attr( 'src' ),
+ alt: 'Image Not Available',
+ width: options.imgWidth,
+ } );
- var imgContainer = $('
', {
- css: {
- display: 'none',
- backgroundColor: options.backgroundColor,
- padding: '5px',
- position: 'fixed',
- 'max-width': '350px',
- 'z-index': '9999'
- }
- });
+ imgContainer.append( img );
- var img = $(' ', {
- src: $(this).data('image-tooltip') || $(this).attr('src'),
- alt: 'Image Not Available',
- width: options.imgWidth
- });
-
- imgContainer.append(img);
-
- $(this).hover(
- function (e) {
- imgContainer.css({
- left: calLeft(e.clientX, imgContainer.outerWidth()) + 'px',
- top: calTop(e.clientY, imgContainer.outerHeight()) + 'px'
- });
- $('body').append(imgContainer);
- imgContainer.fadeIn('fast');
- },
- function () {
- imgContainer.remove();
- }
- ).mousemove(function (e) {
- imgContainer.css({
- left: calLeft(e.clientX, imgContainer.outerWidth()) + 'px',
- top: calTop(e.clientY, imgContainer.outerHeight()) + 'px'
- });
- });
- });
- };
-}(jQuery));
\ No newline at end of file
+ $( this )
+ .hover(
+ function ( e ) {
+ imgContainer.css( {
+ left:
+ calLeft(
+ e.clientX,
+ imgContainer.outerWidth()
+ ) + 'px',
+ top:
+ calTop(
+ e.clientY,
+ imgContainer.outerHeight()
+ ) + 'px',
+ } );
+ $( 'body' ).append( imgContainer );
+ imgContainer.fadeIn( 'fast' );
+ },
+ function () {
+ imgContainer.remove();
+ }
+ )
+ .mousemove( function ( e ) {
+ imgContainer.css( {
+ left:
+ calLeft( e.clientX, imgContainer.outerWidth() ) +
+ 'px',
+ top:
+ calTop( e.clientY, imgContainer.outerHeight() ) +
+ 'px',
+ } );
+ } );
+ } );
+ };
+} )( jQuery );
diff --git a/js/popup.js b/js/popup.js
index b778cbae..4e977933 100644
--- a/js/popup.js
+++ b/js/popup.js
@@ -1,102 +1,140 @@
// @ts-check
+/**
+ * Shared confirmation/error popup used by PPOM admin screens.
+ *
+ * Unlike the field-builder inline modals, this is a single programmatic popup
+ * instance exposed on `window.ppomPopup` so list-table and settings actions can
+ * reuse the same confirmation UX.
+ *
+ * @see js/admin/ppom-meta-table.js
+ * @see js/admin/ppom-admin.js
+ */
+
+/**
+ * @typedef {{
+ * title?: string,
+ * text?: string,
+ * hideCloseBtn?: boolean,
+ * type?: string,
+ * onConfirmation?: () => void,
+ * onClose?: () => void
+ * }} PpomPopupOptions
+ */
class PpomPopup {
- constructor() {
- this.overlay = document.createElement('div');
- this.overlay.classList.add('ppom-popup-overlay');
-
- // Close on outside click.
- this.overlay.addEventListener('click', (event) => {
- if ( event.target === this.overlay ) {
- this.close();
- }
- });
-
- this.popup = document.createElement('div');
- this.popup.classList.add('ppom-popup');
-
- this.container = document.createElement('div');
- this.container.classList.add('ppom-popup-container');
-
- this.title = document.createElement('h2');
- this.title.classList.add('ppom-popup-title');
-
- this.text = document.createElement('p');
- this.text.classList.add('ppom-popup-text');
-
- const containerActions = document.createElement('div');
- containerActions.classList.add('ppom-popup-actions');
-
- this.confirmButton = document.createElement('button');
- this.confirmButton.classList.add('ppom-btn-confirm')
- this.confirmButton.textContent = window.ppom_vars.i18n.popup.confirmationBtn;
- this.confirmButton.addEventListener('click', this.confirm.bind(this));
-
- this.cancelButton = document.createElement('button');
- this.cancelButton.classList.add('ppom-btn-cancel')
- this.cancelButton.textContent = window.ppom_vars.i18n.popup.cancelBtn;
- this.cancelButton.addEventListener('click', this.close.bind(this));
-
- containerActions.appendChild(this.cancelButton);
- containerActions.appendChild(this.confirmButton);
-
- this.container.appendChild(this.title);
- this.container.appendChild(this.text);
- this.container.appendChild(containerActions);
- this.popup.appendChild(this.container);
- this.overlay.appendChild(this.popup);
-
- this.onConfirmation = () => {}
- this.onClose = () => {}
- }
-
- open( options = {} ) {
-
- if ( options?.title ) {
- this.title.innerHTML = options.title;
- }
-
- if ( options?.text ) {
- this.text.innerHTML = options.text;
- }
-
- if ( options?.onConfirmation ) {
- this.onConfirmation = options.onConfirmation;
- }
-
- if ( options?.onClose ) {
- this.onClose = options.onClose;
- }
-
- this.cancelButton.classList.toggle('ppom-hide', Boolean( options?.hideCloseBtn ) );
- this.text.classList.toggle('ppom-hide', Boolean( options?.text?.length ) );
- this.popup.classList.toggle('ppom-error', 'error' === options?.type );
-
- this.show();
- }
-
- close() {
- this.hide();
- this.onClose?.();
- }
-
- confirm() {
- this.hide();
- this.onConfirmation?.();
- }
-
- show() {
- document.body.appendChild(this.overlay);
- }
-
- hide() {
- document.body.removeChild(this.overlay);
- }
+ constructor() {
+ this.overlay = document.createElement( 'div' );
+ this.overlay.classList.add( 'ppom-popup-overlay' );
+
+ // Close on outside click.
+ this.overlay.addEventListener( 'click', ( event ) => {
+ if ( event.target === this.overlay ) {
+ this.close();
+ }
+ } );
+
+ this.popup = document.createElement( 'div' );
+ this.popup.classList.add( 'ppom-popup' );
+
+ this.container = document.createElement( 'div' );
+ this.container.classList.add( 'ppom-popup-container' );
+
+ this.title = document.createElement( 'h2' );
+ this.title.classList.add( 'ppom-popup-title' );
+
+ this.text = document.createElement( 'p' );
+ this.text.classList.add( 'ppom-popup-text' );
+
+ const containerActions = document.createElement( 'div' );
+ containerActions.classList.add( 'ppom-popup-actions' );
+
+ this.confirmButton = document.createElement( 'button' );
+ this.confirmButton.classList.add( 'ppom-btn-confirm' );
+ this.confirmButton.textContent =
+ window.ppom_vars.i18n.popup.confirmationBtn;
+ this.confirmButton.addEventListener(
+ 'click',
+ this.confirm.bind( this )
+ );
+
+ this.cancelButton = document.createElement( 'button' );
+ this.cancelButton.classList.add( 'ppom-btn-cancel' );
+ this.cancelButton.textContent = window.ppom_vars.i18n.popup.cancelBtn;
+ this.cancelButton.addEventListener( 'click', this.close.bind( this ) );
+
+ containerActions.appendChild( this.cancelButton );
+ containerActions.appendChild( this.confirmButton );
+
+ this.container.appendChild( this.title );
+ this.container.appendChild( this.text );
+ this.container.appendChild( containerActions );
+ this.popup.appendChild( this.container );
+ this.overlay.appendChild( this.popup );
+
+ /** @type {() => void} */
+ this.onConfirmation = () => {};
+ /** @type {() => void} */
+ this.onClose = () => {};
+ }
+
+ /**
+ * Open the shared admin popup with optional callbacks and copy.
+ *
+ * @param {PpomPopupOptions} [options]
+ * @return {void}
+ */
+ open( options = {} ) {
+ if ( options?.title ) {
+ this.title.innerHTML = options.title;
+ }
+
+ if ( options?.text ) {
+ this.text.innerHTML = options.text;
+ }
+
+ if ( options?.onConfirmation ) {
+ this.onConfirmation = options.onConfirmation;
+ }
+
+ if ( options?.onClose ) {
+ this.onClose = options.onClose;
+ }
+
+ this.cancelButton.classList.toggle(
+ 'ppom-hide',
+ Boolean( options?.hideCloseBtn )
+ );
+ this.text.classList.toggle(
+ 'ppom-hide',
+ Boolean( options?.text?.length )
+ );
+ this.popup.classList.toggle( 'ppom-error', 'error' === options?.type );
+
+ this.show();
+ }
+
+ close() {
+ this.hide();
+ this.onClose?.();
+ }
+
+ confirm() {
+ this.hide();
+ this.onConfirmation?.();
+ }
+
+ show() {
+ document.body.appendChild( this.overlay );
+ }
+
+ hide() {
+ document.body.removeChild( this.overlay );
+ }
}
-window.addEventListener('DOMContentLoaded', () => {
- /**
- * @type {import('../global.d.ts').Popup}
- */
- window.ppomPopup = new PpomPopup();
-});
\ No newline at end of file
+window.addEventListener( 'DOMContentLoaded', () => {
+ /**
+ * @type {import('../global.d.ts').Popup}
+ */
+ window.ppomPopup = new PpomPopup();
+} );
diff --git a/js/ppom-conditions-v2.js b/js/ppom-conditions-v2.js
index 5dee86ab..611dccbe 100644
--- a/js/ppom-conditions-v2.js
+++ b/js/ppom-conditions-v2.js
@@ -2,601 +2,775 @@
/**
* PPOM Conditional Version 2
- * More Fast and Optimized
- * April, 2020 in LockedDown (CORVID-19)
- * */
-
-var ppom_hidden_fields = [];
-
-jQuery(function($) {
-
- setTimeout(function() {
- $('form.cart').find('select option:selected, input[type="radio"]:checked, input[type="checkbox"]:checked').each(function(i, field) {
-
- if ($(field).closest('div.ppom-field-wrapper').hasClass('ppom-c-hide')) return;
-
- const data_name = $(field).data('data_name');
- ppom_check_conditions(data_name, function(element_dataname, event_type) {
- // console.log(data_name, event_type);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
-
- $('form.cart').find('div.ppom-c-show').each(function(i, field) {
-
- const data_name = $(field).data('data_name');
- ppom_check_conditions(data_name, function(element_dataname, event_type) {
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
-
- $('form.cart').find('div.ppom-c-hide').each(function(i, field) {
- const data_name = $(field).data('data_name');
- $.event.trigger({
- type: 'ppom_field_hidden',
- field: data_name,
- time: new Date()
- });
- });
-
- }, 100);
-
- // $('form.cart').on('change', 'select, input[type="radio"], input[type="checkbox"]', function(ev) {
-
- function trigger_check_conditions( modifiedElement ) {
- let value = null;
- if (modifiedElement.type === 'radio' || modifiedElement.type === 'checkbox') {
- value = modifiedElement.checked ? modifiedElement.value : null;
- } else {
- value = modifiedElement.value;
- }
-
- const data_name = modifiedElement.dataset?.data_name;
- ppom_check_conditions(data_name, (element_dataname, event_type) => {
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- }
-
- $(".ppom-wrapper").on('change', 'select, input:radio, input:checkbox, input[type="date"]', function(_e) {
- trigger_check_conditions( this );
- });
-
- $(".ppom-wrapper").on('keyup', 'input:text, input[type="number"], input[type="email"]', function(_e) {
- trigger_check_conditions( this );
- });
-
- $(document).on('ppom_hidden_fields_updated', function(e) {
- ppom_fields_hidden_conditionally();
- });
-
-
- $(document).on('ppom_field_hidden', function(e) {
-
- // console.log(e.field)
-
- var element_type = ppom_get_field_type_by_id(e.field);
- switch (element_type) {
-
- case 'select':
- $('select[name="ppom[fields][' + e.field + ']"]').val('');
- break;
-
- case 'multiple_select':
-
- var selector = $('select[name="ppom[fields][' + e.field + '][]"]');
- var selected_value = selector.val();
- var selected_options = selector.find('option:selected');
-
- jQuery.each(selected_options, function(index, default_selected) {
-
- var option_id = jQuery(default_selected).attr('data-option_id');
- var the_id = 'ppom-multipleselect-' + e.field + '-' + option_id;
-
- $("#" + the_id).remove();
- });
-
- if (selected_value) {
-
- $('select[name="ppom[fields][' + e.field + '][]"]').val(null).trigger("change");
- }
-
- break;
-
- case 'checkbox':
- $('input[name="ppom[fields][' + e.field + '][]"]').prop('checked', false);
- break;
-
- case 'radio':
- $('input[name="ppom[fields][' + e.field + ']"]').prop('checked', false);
- break;
-
- case 'file':
- $('#filelist-' + e.field).find('.u_i_c_box').remove();
- break;
-
- case 'palettes':
- case 'image':
- $('input[name="ppom[fields][' + e.field + '][]"]').prop('checked', false);
- break;
-
- case 'imageselect':
- var the_id = 'ppom-imageselect' + e.field;
- $("#" + the_id).remove();
- break;
-
- case 'quantityoption':
- $('#' + e.field).val('');
- var the_id = 'ppom-quantityoption-rm' + e.field;
- $("#" + the_id).remove();
- break;
-
- case 'pricematrix':
- $(`input[data-dataname="ppom[fields][${e.field}]"]`).removeClass('active');
- break;
-
- case 'quantities':
- $(`input[name^="ppom[fields][${e.field}]"]`).val('');
- break;
-
- case 'fixedprice':
- // if select type is radio
- $('input[name="ppom[fields][' + e.field + ']"]').prop('checked', false);
- // if select type is select
- $('select[name="ppom[fields][' + e.field + ']"]').val('');
- break;
-
-
- default:
- // Reset text/textarea/date/email etc types
- $('#' + e.field).val('');
- break;
- }
+ *
+ * This is the current conditional-logic engine used on the product page. PHP
+ * renders rule metadata into `data-cond-*` attributes; this file evaluates
+ * those rules and emits the shared `ppom_field_hidden` / `ppom_field_shown`
+ * events that pricing, uploads, validation, and default restoration rely on.
+ *
+ * @see populate_conditional_elements in js/admin/ppom-admin.js
+ * @see ppom_fields_hidden_conditionally
+ * @see ppom_update_option_prices in js/price/ppom-price.js
+ */
- $.event.trigger({
- type: "ppom_hidden_fields_updated",
- field: e.field,
- time: new Date()
- });
+/** @type {string[]} */
+let ppom_hidden_fields = [];
- ppom_check_conditions(e.field, function(element_dataname, event_type) {
- // console.log(`${element_dataname} ===> ${event_type}`);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
+/**
+ * @typedef {Object} PPOMConditionCompareArgs
+ * @property {string|string[]|undefined|null} valueToCompare
+ * @property {string|undefined} selectOptionToCompare
+ * @property {string|undefined} constantValueToCompare
+ * @property {{to: string, from: string}} betweenValueInterval
+ * @property {string} operator
+ */
- /*$(document).on('ppom_field_shown', function(e) {
+jQuery( function ( $ ) {
+ // Replay the initial field state after the product form has rendered so
+ // defaults, preselected options, and conditionally hidden fields line up.
+ setTimeout( function () {
+ $( 'form.cart' )
+ .find(
+ 'select option:selected, input[type="radio"]:checked, input[type="checkbox"]:checked'
+ )
+ .each( function ( i, field ) {
+ if (
+ $( field )
+ .closest( 'div.ppom-field-wrapper' )
+ .hasClass( 'ppom-c-hide' )
+ ) {
+ return;
+ }
+
+ const data_name = $( field ).data( 'data_name' );
+ ppom_check_conditions(
+ data_name,
+ function ( element_dataname, event_type ) {
+ // console.log(data_name, event_type);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ } );
+
+ $( 'form.cart' )
+ .find( 'div.ppom-c-show' )
+ .each( function ( i, field ) {
+ const data_name = $( field ).data( 'data_name' );
+ ppom_check_conditions(
+ data_name,
+ function ( element_dataname, event_type ) {
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ } );
+
+ $( 'form.cart' )
+ .find( 'div.ppom-c-hide' )
+ .each( function ( i, field ) {
+ const data_name = $( field ).data( 'data_name' );
+ $.event.trigger( {
+ type: 'ppom_field_hidden',
+ field: data_name,
+ time: new Date(),
+ } );
+ } );
+ }, 100 );
+
+ // $('form.cart').on('change', 'select, input[type="radio"], input[type="checkbox"]', function(ev) {
+
+ /**
+ * Re-evaluate any condition tree that depends on the changed form control.
+ *
+ * @param {HTMLInputElement|HTMLSelectElement} modifiedElement
+ * @return {void}
+ */
+ function trigger_check_conditions( modifiedElement ) {
+ let value = null;
+ if (
+ modifiedElement.type === 'radio' ||
+ modifiedElement.type === 'checkbox'
+ ) {
+ value = modifiedElement.checked ? modifiedElement.value : null;
+ } else {
+ value = modifiedElement.value;
+ }
+
+ const data_name = modifiedElement.dataset?.data_name;
+ ppom_check_conditions( data_name, ( element_dataname, event_type ) => {
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ } );
+ }
+
+ $( '.ppom-wrapper' ).on(
+ 'change',
+ 'select, input:radio, input:checkbox, input[type="date"]',
+ function ( _e ) {
+ trigger_check_conditions( this );
+ }
+ );
+
+ $( '.ppom-wrapper' ).on(
+ 'keyup',
+ 'input:text, input[type="number"], input[type="email"]',
+ function ( _e ) {
+ trigger_check_conditions( this );
+ }
+ );
+
+ $( document ).on( 'ppom_hidden_fields_updated', function ( e ) {
+ ppom_fields_hidden_conditionally();
+ } );
+
+ $( document ).on( 'ppom_field_hidden', function ( e ) {
+ // console.log(e.field)
+
+ const element_type = ppom_get_field_type_by_id( e.field );
+ switch ( element_type ) {
+ case 'select':
+ $( 'select[name="ppom[fields][' + e.field + ']"]' ).val( '' );
+ break;
+
+ case 'multiple_select':
+ var selector = $(
+ 'select[name="ppom[fields][' + e.field + '][]"]'
+ );
+ var selected_value = selector.val();
+ var selected_options = selector.find( 'option:selected' );
+
+ jQuery.each(
+ selected_options,
+ function ( index, default_selected ) {
+ const option_id =
+ jQuery( default_selected ).attr( 'data-option_id' );
+ const the_id =
+ 'ppom-multipleselect-' + e.field + '-' + option_id;
+
+ $( '#' + the_id ).remove();
+ }
+ );
+
+ if ( selected_value ) {
+ $( 'select[name="ppom[fields][' + e.field + '][]"]' )
+ .val( null )
+ .trigger( 'change' );
+ }
+
+ break;
+
+ case 'checkbox':
+ $( 'input[name="ppom[fields][' + e.field + '][]"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'radio':
+ $( 'input[name="ppom[fields][' + e.field + ']"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'file':
+ $( '#filelist-' + e.field )
+ .find( '.u_i_c_box' )
+ .remove();
+ break;
+
+ case 'palettes':
+ case 'image':
+ $( 'input[name="ppom[fields][' + e.field + '][]"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'imageselect':
+ var the_id = 'ppom-imageselect' + e.field;
+ $( '#' + the_id ).remove();
+ break;
+
+ case 'quantityoption':
+ $( '#' + e.field ).val( '' );
+ var the_id = 'ppom-quantityoption-rm' + e.field;
+ $( '#' + the_id ).remove();
+ break;
+
+ case 'pricematrix':
+ $(
+ `input[data-dataname="ppom[fields][${ e.field }]"]`
+ ).removeClass( 'active' );
+ break;
+
+ case 'quantities':
+ $( `input[name^="ppom[fields][${ e.field }]"]` ).val( '' );
+ break;
+
+ case 'fixedprice':
+ // if select type is radio
+ $( 'input[name="ppom[fields][' + e.field + ']"]' ).prop(
+ 'checked',
+ false
+ );
+ // if select type is select
+ $( 'select[name="ppom[fields][' + e.field + ']"]' ).val( '' );
+ break;
+
+ default:
+ // Reset text/textarea/date/email etc types
+ $( '#' + e.field ).val( '' );
+ break;
+ }
+
+ $.event.trigger( {
+ type: 'ppom_hidden_fields_updated',
+ field: e.field,
+ time: new Date(),
+ } );
+
+ ppom_check_conditions(
+ e.field,
+ function ( element_dataname, event_type ) {
+ // console.log(`${element_dataname} ===> ${event_type}`);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ } );
+
+ /*$(document).on('ppom_field_shown', function(e) {
console.log(`shown event ${e.field}`);
ppom_check_conditions(e.field);
});*/
- $(document).on('ppom_field_shown', function(e) {
-
- ppom_fields_hidden_conditionally();
-
- // Set checked/selected again
- ppom_set_default_option(e.field);
-
- ppom_check_conditions(e.field, function(element_dataname, event_type) {
- // console.log(`${element_dataname} ===> ${event_type}`);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
-
-
- var field_meta = ppom_get_field_meta_by_id(e.field);
-
- // Apply FileAPI to DOM
- // PPOM version 22.0 has issue, commenting it so far by Najeeb April 4, 2021
- // if (field_meta.type === 'file' || field_meta.type === 'cropper') {
- // ppom_setup_file_upload_input(field_meta);
- // }
-
- // Price Matrix
- if (field_meta.type == 'pricematrix') {
- // Resettin
- $(".ppom_pricematrix").removeClass('active');
-
- // Set Active
- var classname = "." + field_meta.data_name;
- // console.log(field_meta.data_name, jQuery(`input[data-dataname="ppom[fields][${field_meta.data_name}]"]`));
- jQuery(`input[data-dataname="ppom[fields][${field_meta.data_name}]"]`).addClass('active')
- // $(classname).find('.ppom_pricematrix').addClass('active')
- }
-
- //Imageselect (Image dropdown)
- if (field_meta.type === 'imageselect') {
-
- var dd_selector = 'ppom_imageselect_' + field_meta.data_name;
- var ddData = $('#' + dd_selector).data('ppom_ddslick');
- var image_replace = field_meta.image_replace ? field_meta.image_replace : 'off';
-
- ppom_create_hidden_input(ddData);
- ppom_update_option_prices();
- setTimeout(function() {
- ppom_image_selection(ddData, image_replace);
- }, 100);
- // $('#'+dd_selector).ddslick('select', {index: 0 });
- }
-
-
- // Multiple Select Addon
- if (field_meta.type === 'multiple_select') {
-
- var selector = jQuery('select[name="ppom[fields][' + field_meta.data_name + '][]"]');
- var selected_value = selector.val();
- var default_value = field_meta.selected;
-
- if (selected_value === null && default_value) {
-
- var selected_opt_arr = default_value.split(',');
-
- selector.val(selected_opt_arr).trigger('change');
-
- var selected_options = selector.find('option:selected');
- jQuery.each(selected_options, function(index, default_selected) {
-
- var option_id = jQuery(default_selected).attr('data-option_id');
- var option_label = jQuery(default_selected).attr('data-optionlabel');
- var option_price = jQuery(default_selected).attr('data-optionprice');
-
- ppom_multiple_select_create_hidden_input(field_meta.data_name, option_id, option_price, option_label, field_meta.title);
- });
- }
- }
-
- });
-
- ppom_fields_hidden_conditionally();
-
-});
-
-function ppom_check_conditions(data_name, callback) {
-
- let is_matched = false;
- let event_type, element_data_name;
-
- jQuery(`div.ppom-cond-${data_name}`).each(function() {
- // return this.data('cond-val1').match(/\w*-Back/);
- // console.log(jQuery(this));
- const total_cond = parseInt(jQuery(this).data('cond-total'));
- const binding = jQuery(this).data(`cond-bind`);
- const visibility = jQuery(this).data(`cond-visibility`);
- element_data_name = jQuery(this).data('data_name');
-
- let matched = 0;
- var matched_conditions = [];
- let cond_elements = [];
- for (var t = 1; t <= total_cond; t++) {
- const targetFieldToCompare = jQuery(this).data(`cond-input${t}`)?.toString()?.toLowerCase()
- const targetFieldValue = ppom_get_element_value(targetFieldToCompare);
-
- const selectOptionValue = jQuery(this).data(`cond-val${t}`)?.toString();
- const operator = jQuery(this).data(`cond-operator${t}`);
- const constantValue = jQuery(this).data(`cond-constant-val-${t}`)?.toString();
- const betweenValueTo = jQuery(this).data(`cond-between-to-${t}`);
- const betweenValueFrom = jQuery(this).data(`cond-between-from-${t}`);
-
-
- is_matched = ppom_compare_values({
- valueToCompare: targetFieldValue,
- selectOptionToCompare: selectOptionValue,
- constantValueToCompare: constantValue,
- betweenValueInterval: {
- from: betweenValueFrom,
- to: betweenValueTo
- },
- operator
- });
-
- if ( is_matched ) {
- matched = ++matched;
- cond_elements.push(targetFieldToCompare);
- }
-
- matched_conditions[element_data_name] = matched;
-
- event_type = visibility === 'hide' ? 'ppom_field_hidden' : 'ppom_field_shown';
- // console.log(`${t} ***** ${element_data_name} total_cond ${total_cond} == matched ${matched} ==> ${matched_conditions[element_data_name]} ==> visibility ${event_type}`);
-
- if ( (matched_conditions[element_data_name] > 0 && binding === 'Any') ||
- (matched_conditions[element_data_name] == total_cond && binding === 'All')
- ) {
-
- // remove/add locked classes for all dependent fields
- cond_elements.forEach(cond_dataname => {
- if( visibility === 'hide' ){
- jQuery(this).addClass(`ppom-locked-${cond_dataname} ppom-c-hide`).removeClass('ppom-c-show');
- }else{
- jQuery(this).removeClass(`ppom-locked-${cond_dataname} ppom-c-hide`);
- }
- });
-
- if ( typeof callback == "function" ) {
- callback(element_data_name, event_type);
- }
- }
- else if ( ! is_matched || matched_conditions[element_data_name] !== total_cond) {
-
- if( visibility === 'hide' ){
- event_type = 'ppom_field_shown';
- jQuery(this).removeClass(`ppom-locked-${data_name} ppom-c-hide`);
- }else{
- event_type = 'ppom_field_hidden';
- jQuery(this).addClass(`ppom-locked-${data_name} ppom-c-hide`);
- }
-
- if ( typeof callback == "function" )
- callback(element_data_name, event_type);
- } else {
-
- jQuery(this).removeClass(`ppom-locked-${data_name} ppom-c-hide`);
- // console.log('event_type', event_type);
-
- if ( typeof callback == "function" )
- callback(element_data_name, event_type);
- }
- }
- });
+ $( document ).on( 'ppom_field_shown', function ( e ) {
+ ppom_fields_hidden_conditionally();
+
+ // Set checked/selected again
+ ppom_set_default_option( e.field );
+
+ ppom_check_conditions(
+ e.field,
+ function ( element_dataname, event_type ) {
+ // console.log(`${element_dataname} ===> ${event_type}`);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+
+ const field_meta = ppom_get_field_meta_by_id( e.field );
+
+ // Apply FileAPI to DOM
+ // PPOM version 22.0 has issue, commenting it so far by Najeeb April 4, 2021
+ // if (field_meta.type === 'file' || field_meta.type === 'cropper') {
+ // ppom_setup_file_upload_input(field_meta);
+ // }
+
+ // Price Matrix
+ if ( field_meta.type == 'pricematrix' ) {
+ // Resettin
+ $( '.ppom_pricematrix' ).removeClass( 'active' );
+
+ // Set Active
+ const classname = '.' + field_meta.data_name;
+ // console.log(field_meta.data_name, jQuery(`input[data-dataname="ppom[fields][${field_meta.data_name}]"]`));
+ jQuery(
+ `input[data-dataname="ppom[fields][${ field_meta.data_name }]"]`
+ ).addClass( 'active' );
+ // $(classname).find('.ppom_pricematrix').addClass('active')
+ }
+
+ //Imageselect (Image dropdown)
+ if ( field_meta.type === 'imageselect' ) {
+ const dd_selector = 'ppom_imageselect_' + field_meta.data_name;
+ const ddData = $( '#' + dd_selector ).data( 'ppom_ddslick' );
+ const image_replace = field_meta.image_replace
+ ? field_meta.image_replace
+ : 'off';
+
+ ppom_create_hidden_input( ddData );
+ ppom_update_option_prices();
+ setTimeout( function () {
+ ppom_image_selection( ddData, image_replace );
+ }, 100 );
+ // $('#'+dd_selector).ddslick('select', {index: 0 });
+ }
+
+ // Multiple Select Addon
+ if ( field_meta.type === 'multiple_select' ) {
+ const selector = jQuery(
+ 'select[name="ppom[fields][' + field_meta.data_name + '][]"]'
+ );
+ const selected_value = selector.val();
+ const default_value = field_meta.selected;
+
+ if ( selected_value === null && default_value ) {
+ const selected_opt_arr = default_value.split( ',' );
+
+ selector.val( selected_opt_arr ).trigger( 'change' );
+
+ const selected_options = selector.find( 'option:selected' );
+ jQuery.each(
+ selected_options,
+ function ( index, default_selected ) {
+ const option_id =
+ jQuery( default_selected ).attr( 'data-option_id' );
+ const option_label =
+ jQuery( default_selected ).attr(
+ 'data-optionlabel'
+ );
+ const option_price =
+ jQuery( default_selected ).attr(
+ 'data-optionprice'
+ );
+
+ ppom_multiple_select_create_hidden_input(
+ field_meta.data_name,
+ option_id,
+ option_price,
+ option_label,
+ field_meta.title
+ );
+ }
+ );
+ }
+ }
+ } );
+
+ ppom_fields_hidden_conditionally();
+} );
+
+function ppom_check_conditions( data_name, callback ) {
+ // Each `.ppom-cond-*` node describes one target field and its dependencies.
+ // We evaluate all rules for that target, then notify the rest of the stack
+ // through shared PPOM events instead of mutating unrelated features directly.
+ let is_matched = false;
+ let event_type, element_data_name;
+
+ jQuery( `div.ppom-cond-${ data_name }` ).each( function () {
+ // return this.data('cond-val1').match(/\w*-Back/);
+ // console.log(jQuery(this));
+ const total_cond = parseInt( jQuery( this ).data( 'cond-total' ) );
+ const binding = jQuery( this ).data( `cond-bind` );
+ const visibility = jQuery( this ).data( `cond-visibility` );
+ element_data_name = jQuery( this ).data( 'data_name' );
+
+ let matched = 0;
+ const matched_conditions = [];
+ const cond_elements = [];
+ for ( let t = 1; t <= total_cond; t++ ) {
+ const targetFieldToCompare = jQuery( this )
+ .data( `cond-input${ t }` )
+ ?.toString()
+ ?.toLowerCase();
+ const targetFieldValue =
+ ppom_get_element_value( targetFieldToCompare );
+
+ const selectOptionValue = jQuery( this )
+ .data( `cond-val${ t }` )
+ ?.toString();
+ const operator = jQuery( this ).data( `cond-operator${ t }` );
+ const constantValue = jQuery( this )
+ .data( `cond-constant-val-${ t }` )
+ ?.toString();
+ const betweenValueTo = jQuery( this ).data(
+ `cond-between-to-${ t }`
+ );
+ const betweenValueFrom = jQuery( this ).data(
+ `cond-between-from-${ t }`
+ );
+
+ is_matched = ppom_compare_values( {
+ valueToCompare: targetFieldValue,
+ selectOptionToCompare: selectOptionValue,
+ constantValueToCompare: constantValue,
+ betweenValueInterval: {
+ from: betweenValueFrom,
+ to: betweenValueTo,
+ },
+ operator,
+ } );
+
+ if ( is_matched ) {
+ matched = ++matched;
+ cond_elements.push( targetFieldToCompare );
+ }
+
+ matched_conditions[ element_data_name ] = matched;
+
+ event_type =
+ visibility === 'hide'
+ ? 'ppom_field_hidden'
+ : 'ppom_field_shown';
+ // console.log(`${t} ***** ${element_data_name} total_cond ${total_cond} == matched ${matched} ==> ${matched_conditions[element_data_name]} ==> visibility ${event_type}`);
+
+ if (
+ ( matched_conditions[ element_data_name ] > 0 &&
+ binding === 'Any' ) ||
+ ( matched_conditions[ element_data_name ] == total_cond &&
+ binding === 'All' )
+ ) {
+ // remove/add locked classes for all dependent fields
+ cond_elements.forEach( ( cond_dataname ) => {
+ if ( visibility === 'hide' ) {
+ jQuery( this )
+ .addClass(
+ `ppom-locked-${ cond_dataname } ppom-c-hide`
+ )
+ .removeClass( 'ppom-c-show' );
+ } else {
+ jQuery( this ).removeClass(
+ `ppom-locked-${ cond_dataname } ppom-c-hide`
+ );
+ }
+ } );
+
+ if ( typeof callback === 'function' ) {
+ callback( element_data_name, event_type );
+ }
+ } else if (
+ ! is_matched ||
+ matched_conditions[ element_data_name ] !== total_cond
+ ) {
+ if ( visibility === 'hide' ) {
+ event_type = 'ppom_field_shown';
+ jQuery( this ).removeClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ } else {
+ event_type = 'ppom_field_hidden';
+ jQuery( this ).addClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ }
+
+ if ( typeof callback === 'function' ) {
+ callback( element_data_name, event_type );
+ }
+ } else {
+ jQuery( this ).removeClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ // console.log('event_type', event_type);
+
+ if ( typeof callback === 'function' ) {
+ callback( element_data_name, event_type );
+ }
+ }
+ }
+ } );
}
-function ppom_get_input_dom_type(data_name) {
- // const field_obj = jQuery(`input[name="ppom[fields][${data_name}]"], input[name="ppom[fields][${data_name}[]]"], select[name="ppom[fields][${data_name}]"]`);
- const field_obj = jQuery(`.ppom-input[data-data_name="${data_name}"]`);
- return field_obj.closest('.ppom-field-wrapper').data('type');
+function ppom_get_input_dom_type( data_name ) {
+ // const field_obj = jQuery(`input[name="ppom[fields][${data_name}]"], input[name="ppom[fields][${data_name}[]]"], select[name="ppom[fields][${data_name}]"]`);
+ const field_obj = jQuery( `.ppom-input[data-data_name="${ data_name }"]` );
+ return field_obj.closest( '.ppom-field-wrapper' ).data( 'type' );
}
-function ppom_get_element_value(data_name) {
-
- const ppom_type = ppom_get_input_dom_type(data_name);
- let element_value = '';
- var value_found_cb = [];
-
- switch (ppom_type) {
- case 'switcher':
- case 'radio':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).val();
- break;
- case 'palettes':
- case 'checkbox':
- jQuery('input[name="ppom[fields][' + data_name + '][]"]:checked').each(function(i) {
- value_found_cb[i] = jQuery(this).val();
- });
- break;
- case 'image':
- case 'conditional_meta':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).data('label');
- break;
- case 'imageselect':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).data('label');
- break;
- case 'fixedprice':
- var render_type = jQuery(`.ppom-input-${data_name}`).attr('data-input');
- if( render_type == 'radio' ){
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).val();
- }else{
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]`).val();
- }
- break;
-
- default:
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]`).val();
- }
-
- if (ppom_type === 'checkbox' || ppom_type === 'palettes') {
- // console.log(value_found_cb);
- return value_found_cb;
- }
-
- return element_value;
+// Normalize values across PPOM field types so condition operators can stay
+// unaware of the exact DOM structure used by each input renderer.
+function ppom_get_element_value( data_name ) {
+ const ppom_type = ppom_get_input_dom_type( data_name );
+ let element_value = '';
+ const value_found_cb = [];
+
+ switch ( ppom_type ) {
+ case 'switcher':
+ case 'radio':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).val();
+ break;
+ case 'palettes':
+ case 'checkbox':
+ jQuery(
+ 'input[name="ppom[fields][' + data_name + '][]"]:checked'
+ ).each( function ( i ) {
+ value_found_cb[ i ] = jQuery( this ).val();
+ } );
+ break;
+ case 'image':
+ case 'conditional_meta':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).data( 'label' );
+ break;
+ case 'imageselect':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).data( 'label' );
+ break;
+ case 'fixedprice':
+ var render_type = jQuery( `.ppom-input-${ data_name }` ).attr(
+ 'data-input'
+ );
+ if ( render_type == 'radio' ) {
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).val();
+ } else {
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val();
+ }
+ break;
+
+ default:
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val();
+ }
+
+ if ( ppom_type === 'checkbox' || ppom_type === 'palettes' ) {
+ // console.log(value_found_cb);
+ return value_found_cb;
+ }
+
+ return element_value;
}
/**
* Compares values based on the provided operator.
*
- * @param {Object} args - The arguments object containing comparison parameters.
- * @param {string} args.valueToCompare - The target value to compare.
- * @param {string} args.selectOptionToCompare - The select option value to compare.
- * @param {string} args.constantValueToCompare - The constant value to compare.
- * @param {{to: string, from: string}} args.betweenValueInterval - The between interval.
- * @param {string} args.operator - The operator used for comparison.
- * @returns {boolean} - The result of the comparison.
+ * @param {PPOMConditionCompareArgs} args - Comparison parameters taken from a
+ * rendered condition rule and the current state of its target field.
+ * @return {boolean} - The result of the comparison.
*/
function ppom_compare_values( args ) {
- const { valueToCompare, selectOptionToCompare, constantValueToCompare, operator, betweenValueInterval } = args;
- let result = false;
- switch (operator) {
- case 'is':
- if ( Array.isArray(valueToCompare) ) {
- result = valueToCompare.includes(selectOptionToCompare);;
- } else {
- result = valueToCompare === selectOptionToCompare;
- if ( !selectOptionToCompare && constantValueToCompare ) {
- result = valueToCompare === constantValueToCompare
- }
- }
- break;
-
- case 'not':
- if ( Array.isArray(valueToCompare) ) {
- result = !valueToCompare.includes(selectOptionToCompare);;
- } else {
- result = valueToCompare !== selectOptionToCompare;
- if ( !selectOptionToCompare && constantValueToCompare ) {
- result = valueToCompare !== constantValueToCompare
- }
- }
- break;
-
- case 'greater than':
- result = parseFloat(valueToCompare) > parseFloat(selectOptionToCompare);
- if ( !selectOptionToCompare && constantValueToCompare ) {
- result = parseFloat(valueToCompare) > parseFloat(constantValueToCompare)
- }
- break;
-
- case 'less than':
- result = parseFloat(valueToCompare) < parseFloat(selectOptionToCompare);
- if ( !selectOptionToCompare && constantValueToCompare ) {
- result = parseFloat(valueToCompare) < parseFloat(constantValueToCompare)
- }
- break;
-
- case 'any':
- result = valueToCompare !== undefined && valueToCompare !== null && valueToCompare !== '';
- break;
-
- case 'empty':
- result = valueToCompare === undefined || valueToCompare === null || valueToCompare === '';
- break;
-
- case 'between':
- result = (
- parseFloat(valueToCompare) >= parseFloat( betweenValueInterval.from ) &&
- parseFloat(valueToCompare) <= parseFloat( betweenValueInterval.to )
- );
- break;
-
- case 'number-multiplier':
- result = parseFloat(valueToCompare) % parseFloat(constantValueToCompare) === 0;
- break;
-
- case 'even-number':
- result = parseFloat(valueToCompare) % 2 === 0;
- break;
-
- case 'odd-number':
- result = parseFloat(valueToCompare) % 2 !== 0;
- break;
-
- case 'contains':
- result = valueToCompare?.includes(constantValueToCompare);
- break;
-
- case 'not contains':
- result = !valueToCompare?.includes(constantValueToCompare);
- break;
-
- case 'regex':
- if ( typeof constantValueToCompare === 'string' ) {
- const [_, pattern, flags] = constantValueToCompare.split('/');
- const regex = new RegExp(pattern || constantValueToCompare, flags);
- result = regex.test(valueToCompare);
- }
- break;
-
- default:
- // code
- }
-
- // console.log(`matching ${v1} ${operator} ${v2}`);
- return result;
+ const {
+ valueToCompare,
+ selectOptionToCompare,
+ constantValueToCompare,
+ operator,
+ betweenValueInterval,
+ } = args;
+ let result = false;
+ switch ( operator ) {
+ case 'is':
+ if ( Array.isArray( valueToCompare ) ) {
+ result = valueToCompare.includes( selectOptionToCompare );
+ } else {
+ result = valueToCompare === selectOptionToCompare;
+ if ( ! selectOptionToCompare && constantValueToCompare ) {
+ result = valueToCompare === constantValueToCompare;
+ }
+ }
+ break;
+
+ case 'not':
+ if ( Array.isArray( valueToCompare ) ) {
+ result = ! valueToCompare.includes( selectOptionToCompare );
+ } else {
+ result = valueToCompare !== selectOptionToCompare;
+ if ( ! selectOptionToCompare && constantValueToCompare ) {
+ result = valueToCompare !== constantValueToCompare;
+ }
+ }
+ break;
+
+ case 'greater than':
+ result =
+ parseFloat( valueToCompare ) >
+ parseFloat( selectOptionToCompare );
+ if ( ! selectOptionToCompare && constantValueToCompare ) {
+ result =
+ parseFloat( valueToCompare ) >
+ parseFloat( constantValueToCompare );
+ }
+ break;
+
+ case 'less than':
+ result =
+ parseFloat( valueToCompare ) <
+ parseFloat( selectOptionToCompare );
+ if ( ! selectOptionToCompare && constantValueToCompare ) {
+ result =
+ parseFloat( valueToCompare ) <
+ parseFloat( constantValueToCompare );
+ }
+ break;
+
+ case 'any':
+ result =
+ valueToCompare !== undefined &&
+ valueToCompare !== null &&
+ valueToCompare !== '';
+ break;
+
+ case 'empty':
+ result =
+ valueToCompare === undefined ||
+ valueToCompare === null ||
+ valueToCompare === '';
+ break;
+
+ case 'between':
+ result =
+ parseFloat( valueToCompare ) >=
+ parseFloat( betweenValueInterval.from ) &&
+ parseFloat( valueToCompare ) <=
+ parseFloat( betweenValueInterval.to );
+ break;
+
+ case 'number-multiplier':
+ result =
+ parseFloat( valueToCompare ) %
+ parseFloat( constantValueToCompare ) ===
+ 0;
+ break;
+
+ case 'even-number':
+ result = parseFloat( valueToCompare ) % 2 === 0;
+ break;
+
+ case 'odd-number':
+ result = parseFloat( valueToCompare ) % 2 !== 0;
+ break;
+
+ case 'contains':
+ result = valueToCompare?.includes( constantValueToCompare );
+ break;
+
+ case 'not contains':
+ result = ! valueToCompare?.includes( constantValueToCompare );
+ break;
+
+ case 'regex':
+ if ( typeof constantValueToCompare === 'string' ) {
+ const [ _, pattern, flags ] =
+ constantValueToCompare.split( '/' );
+ const regex = new RegExp(
+ pattern || constantValueToCompare,
+ flags
+ );
+ result = regex.test( valueToCompare );
+ }
+ break;
+
+ default:
+ // code
+ }
+
+ // console.log(`matching ${v1} ${operator} ${v2}`);
+ return result;
}
-function ppom_set_default_option(field_id) {
-
- // get product id
- var product_id = ppom_input_vars.product_id;
-
- var field = ppom_get_field_meta_by_id(field_id);
-
- switch (field.type) {
-
- // Check if field is
- case 'switcher':
- case 'radio':
- jQuery.each(field.options, function(label, options) {
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
- // console.log('optio nid ', opt_id);
-
- if (options.option == field.selected) {
- jQuery("#" + opt_id).prop('checked', true).trigger('change');
- }
- });
- break;
-
- case 'select':
- if ( '' === jQuery("#" + field.data_name).val() ) {
- jQuery("#" + field.data_name).val(field.selected);
- }
- break;
-
- case 'image':
- jQuery.each(field.images, function(index, img) {
-
- if (img.title == field.selected) {
- jQuery("#" + field.data_name + '-' + img.id).prop('checked', true);
- }
- });
- break;
-
- case 'checkbox':
- jQuery.each(field.options, function(label, options) {
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
-
- var default_checked = field.checked.split('\r\n');
- if (jQuery.inArray(options.option, default_checked) > -1) {
- jQuery("#" + opt_id).prop('checked', true);
-
- }
- });
- break;
-
- case 'quantities':
- jQuery.each(field.options, function(label, options) {
- //console.log(options);
- if( options.default === '' ) return;
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
- jQuery("#" + opt_id).val(options.default).trigger('change');
-
- });
- break;
-
- case 'text':
- case 'date':
- case 'number':
- if ( '' === jQuery("#" + field.data_name).val() ) {
- jQuery("#" + field.data_name).val(field.default_value);
- }
- break;
- }
+function ppom_set_default_option( field_id ) {
+ // When a field becomes visible again, restore its default state the same way
+ // the original PHP renderer would have populated it on first page load.
+ // get product id
+ const product_id = ppom_input_vars.product_id;
+
+ const field = ppom_get_field_meta_by_id( field_id );
+
+ switch ( field.type ) {
+ // Check if field is
+ case 'switcher':
+ case 'radio':
+ jQuery.each( field.options, function ( label, options ) {
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+ // console.log('optio nid ', opt_id);
+
+ if ( options.option == field.selected ) {
+ jQuery( '#' + opt_id )
+ .prop( 'checked', true )
+ .trigger( 'change' );
+ }
+ } );
+ break;
+
+ case 'select':
+ if ( '' === jQuery( '#' + field.data_name ).val() ) {
+ jQuery( '#' + field.data_name ).val( field.selected );
+ }
+ break;
+
+ case 'image':
+ jQuery.each( field.images, function ( index, img ) {
+ if ( img.title == field.selected ) {
+ jQuery( '#' + field.data_name + '-' + img.id ).prop(
+ 'checked',
+ true
+ );
+ }
+ } );
+ break;
+
+ case 'checkbox':
+ jQuery.each( field.options, function ( label, options ) {
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+
+ const default_checked = field.checked.split( '\r\n' );
+ if ( jQuery.inArray( options.option, default_checked ) > -1 ) {
+ jQuery( '#' + opt_id ).prop( 'checked', true );
+ }
+ } );
+ break;
+
+ case 'quantities':
+ jQuery.each( field.options, function ( label, options ) {
+ //console.log(options);
+ if ( options.default === '' ) {
+ return;
+ }
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+ jQuery( '#' + opt_id )
+ .val( options.default )
+ .trigger( 'change' );
+ } );
+ break;
+
+ case 'text':
+ case 'date':
+ case 'number':
+ if ( '' === jQuery( '#' + field.data_name ).val() ) {
+ jQuery( '#' + field.data_name ).val( field.default_value );
+ }
+ break;
+ }
}
-// Updating conditionally hidden fields
+// Mirror the current hidden field list into the hidden input consumed by PHP.
function ppom_fields_hidden_conditionally() {
-
- // Reset
- ppom_hidden_fields = [];
- // jQuery(`.ppom-field-wrapper.ppom-c-hide`).filter(function() {
-
- // const data_name = jQuery(this).data('data_name');
- // jQuery(`#${data_name}`).prop('required', false);
- // // console.log(data_name);
- // ppom_hidden_fields.push(data_name);
- // });
- // console.log("Condionally Hidden", ppom_hidden_fields);
- // jQuery("#conditionally_hidden").val(ppom_hidden_fields);
-
- var datanames = jQuery(`.ppom-field-wrapper[class*="ppom-locked-"]`).map( (i,h) => ppom_hidden_fields.push(jQuery(h).data('data_name')) );
- jQuery("#conditionally_hidden").val(ppom_hidden_fields);
- // console.log(ppom_hidden_fields);
+ // Reset
+ ppom_hidden_fields = [];
+ // jQuery(`.ppom-field-wrapper.ppom-c-hide`).filter(function() {
+
+ // const data_name = jQuery(this).data('data_name');
+ // jQuery(`#${data_name}`).prop('required', false);
+ // // console.log(data_name);
+ // ppom_hidden_fields.push(data_name);
+ // });
+ // console.log("Condionally Hidden", ppom_hidden_fields);
+ // jQuery("#conditionally_hidden").val(ppom_hidden_fields);
+
+ const datanames = jQuery(
+ `.ppom-field-wrapper[class*="ppom-locked-"]`
+ ).map( ( i, h ) =>
+ ppom_hidden_fields.push( jQuery( h ).data( 'data_name' ) )
+ );
+ jQuery( '#conditionally_hidden' ).val( ppom_hidden_fields );
+ // console.log(ppom_hidden_fields);
}
diff --git a/js/ppom-conditions-v2bkp.js b/js/ppom-conditions-v2bkp.js
index f89d3781..d51e97d3 100644
--- a/js/ppom-conditions-v2bkp.js
+++ b/js/ppom-conditions-v2bkp.js
@@ -2,505 +2,597 @@
* PPOM Conditional Version 2
* More Fast and Optimized
* April, 2020 in LockedDown (CORVID-19)
- * */
-
-var ppom_hidden_fields = [];
-
-jQuery(function($) {
-
- setTimeout(function() {
- $('form.cart').find('select option:selected, input[type="radio"]:checked, input[type="checkbox"]:checked').each(function(i, field) {
-
- if ($(field).closest('div.ppom-field-wrapper').hasClass('ppom-c-hide')) return;
-
- const data_name = $(field).data('data_name');
- ppom_check_conditions(data_name, function(element_dataname, event_type) {
- // console.log(data_name, event_type);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
-
- $('form.cart').find('div.ppom-c-show').each(function(i, field) {
-
- const data_name = $(field).data('data_name');
- ppom_check_conditions(data_name, function(element_dataname, event_type) {
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
-
- $('form.cart').find('div.ppom-c-hide').each(function(i, field) {
- const data_name = $(field).data('data_name');
- $.event.trigger({
- type: 'ppom_field_hidden',
- field: data_name,
- time: new Date()
- });
- });
-
- }, 100);
-
- // $('form.cart').on('change', 'select, input[type="radio"], input[type="checkbox"]', function(ev) {
-
- $(".ppom-wrapper").on('change', 'select,input:radio,input:checkbox', function(e) {
-
- let value = null;
- if (($(this).is(':radio') || $(this).is(':checkbox'))) {
- value = this.checked ? $(this).val() : null;
- }
- else {
-
- value = $(this).val();
- }
-
- const data_name = $(this).data('data_name');
- // console.log("Checking condition for ", data_name);
-
- ppom_check_conditions(data_name, function(element_dataname, event_type) {
- // console.log(`${element_dataname} ===> ${event_type}`);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
-
- $(document).on('ppom_hidden_fields_updated', function(e) {
- ppom_fields_hidden_conditionally();
-
- // $("#conditionally_hidden").val(ppom_hidden_fields);
- // console.log(` hiddend field updated ==> ${e.field}`);
- // $("#conditionally_hidden").val(ppom_hidden_fields);
- // ppom_update_option_prices();
- });
-
-
- $(document).on('ppom_field_hidden', function(e) {
-
- // console.log(e.field)
-
- var element_type = ppom_get_field_type_by_id(e.field);
- switch (element_type) {
-
- case 'select':
- $('select[name="ppom[fields][' + e.field + ']"]').val('');
- break;
-
- case 'multiple_select':
-
- var selector = $('select[name="ppom[fields][' + e.field + '][]"]');
- var selected_value = selector.val();
- var selected_options = selector.find('option:selected');
-
- jQuery.each(selected_options, function(index, default_selected) {
-
- var option_id = jQuery(default_selected).attr('data-option_id');
- var the_id = 'ppom-multipleselect-' + e.field + '-' + option_id;
-
- $("#" + the_id).remove();
- });
-
- if (selected_value) {
-
- $('select[name="ppom[fields][' + e.field + '][]"]').val(null).trigger("change");
- }
-
- break;
-
- case 'checkbox':
- $('input[name="ppom[fields][' + e.field + '][]"]').prop('checked', false);
- break;
-
- case 'radio':
- $('input[name="ppom[fields][' + e.field + ']"]').prop('checked', false);
- break;
-
- case 'file':
- $('#filelist-' + e.field).find('.u_i_c_box').remove();
- break;
-
- case 'palettes':
- case 'image':
- $('input[name="ppom[fields][' + e.field + '][]"]').prop('checked', false);
- break;
-
- case 'imageselect':
- var the_id = 'ppom-imageselect' + e.field;
- $("#" + the_id).remove();
- break;
-
- case 'quantityoption':
- $('#' + e.field).val('');
- var the_id = 'ppom-quantityoption-rm' + e.field;
- $("#" + the_id).remove();
- break;
-
- case 'pricematrix':
- $(`input[data-dataname="ppom[fields][${e.field}]"]`).removeClass('active');
- break;
-
- case 'quantities':
- $(`input[name^="ppom[fields][${e.field}]"]`).val('');
- break;
-
-
- default:
- // Reset text/textarea/date/email etc types
- $('#' + e.field).val('');
- break;
- }
-
- $.event.trigger({
- type: "ppom_hidden_fields_updated",
- field: e.field,
- time: new Date()
- });
-
- ppom_check_conditions(e.field, function(element_dataname, event_type) {
- // console.log(`${element_dataname} ===> ${event_type}`);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
- });
-
- /*$(document).on('ppom_field_shown', function(e) {
+ */
+
+let ppom_hidden_fields = [];
+
+jQuery( function ( $ ) {
+ setTimeout( function () {
+ $( 'form.cart' )
+ .find(
+ 'select option:selected, input[type="radio"]:checked, input[type="checkbox"]:checked'
+ )
+ .each( function ( i, field ) {
+ if (
+ $( field )
+ .closest( 'div.ppom-field-wrapper' )
+ .hasClass( 'ppom-c-hide' )
+ ) {
+ return;
+ }
+
+ const data_name = $( field ).data( 'data_name' );
+ ppom_check_conditions(
+ data_name,
+ function ( element_dataname, event_type ) {
+ // console.log(data_name, event_type);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ } );
+
+ $( 'form.cart' )
+ .find( 'div.ppom-c-show' )
+ .each( function ( i, field ) {
+ const data_name = $( field ).data( 'data_name' );
+ ppom_check_conditions(
+ data_name,
+ function ( element_dataname, event_type ) {
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ } );
+
+ $( 'form.cart' )
+ .find( 'div.ppom-c-hide' )
+ .each( function ( i, field ) {
+ const data_name = $( field ).data( 'data_name' );
+ $.event.trigger( {
+ type: 'ppom_field_hidden',
+ field: data_name,
+ time: new Date(),
+ } );
+ } );
+ }, 100 );
+
+ // $('form.cart').on('change', 'select, input[type="radio"], input[type="checkbox"]', function(ev) {
+
+ $( '.ppom-wrapper' ).on(
+ 'change',
+ 'select,input:radio,input:checkbox',
+ function ( e ) {
+ let value = null;
+ if ( $( this ).is( ':radio' ) || $( this ).is( ':checkbox' ) ) {
+ value = this.checked ? $( this ).val() : null;
+ } else {
+ value = $( this ).val();
+ }
+
+ const data_name = $( this ).data( 'data_name' );
+ // console.log("Checking condition for ", data_name);
+
+ ppom_check_conditions(
+ data_name,
+ function ( element_dataname, event_type ) {
+ // console.log(`${element_dataname} ===> ${event_type}`);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ }
+ );
+
+ $( document ).on( 'ppom_hidden_fields_updated', function ( e ) {
+ ppom_fields_hidden_conditionally();
+
+ // $("#conditionally_hidden").val(ppom_hidden_fields);
+ // console.log(` hiddend field updated ==> ${e.field}`);
+ // $("#conditionally_hidden").val(ppom_hidden_fields);
+ // ppom_update_option_prices();
+ } );
+
+ $( document ).on( 'ppom_field_hidden', function ( e ) {
+ // console.log(e.field)
+
+ const element_type = ppom_get_field_type_by_id( e.field );
+ switch ( element_type ) {
+ case 'select':
+ $( 'select[name="ppom[fields][' + e.field + ']"]' ).val( '' );
+ break;
+
+ case 'multiple_select':
+ var selector = $(
+ 'select[name="ppom[fields][' + e.field + '][]"]'
+ );
+ var selected_value = selector.val();
+ var selected_options = selector.find( 'option:selected' );
+
+ jQuery.each(
+ selected_options,
+ function ( index, default_selected ) {
+ const option_id =
+ jQuery( default_selected ).attr( 'data-option_id' );
+ const the_id =
+ 'ppom-multipleselect-' + e.field + '-' + option_id;
+
+ $( '#' + the_id ).remove();
+ }
+ );
+
+ if ( selected_value ) {
+ $( 'select[name="ppom[fields][' + e.field + '][]"]' )
+ .val( null )
+ .trigger( 'change' );
+ }
+
+ break;
+
+ case 'checkbox':
+ $( 'input[name="ppom[fields][' + e.field + '][]"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'radio':
+ $( 'input[name="ppom[fields][' + e.field + ']"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'file':
+ $( '#filelist-' + e.field )
+ .find( '.u_i_c_box' )
+ .remove();
+ break;
+
+ case 'palettes':
+ case 'image':
+ $( 'input[name="ppom[fields][' + e.field + '][]"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'imageselect':
+ var the_id = 'ppom-imageselect' + e.field;
+ $( '#' + the_id ).remove();
+ break;
+
+ case 'quantityoption':
+ $( '#' + e.field ).val( '' );
+ var the_id = 'ppom-quantityoption-rm' + e.field;
+ $( '#' + the_id ).remove();
+ break;
+
+ case 'pricematrix':
+ $(
+ `input[data-dataname="ppom[fields][${ e.field }]"]`
+ ).removeClass( 'active' );
+ break;
+
+ case 'quantities':
+ $( `input[name^="ppom[fields][${ e.field }]"]` ).val( '' );
+ break;
+
+ default:
+ // Reset text/textarea/date/email etc types
+ $( '#' + e.field ).val( '' );
+ break;
+ }
+
+ $.event.trigger( {
+ type: 'ppom_hidden_fields_updated',
+ field: e.field,
+ time: new Date(),
+ } );
+
+ ppom_check_conditions(
+ e.field,
+ function ( element_dataname, event_type ) {
+ // console.log(`${element_dataname} ===> ${event_type}`);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+ } );
+
+ /*$(document).on('ppom_field_shown', function(e) {
console.log(`shown event ${e.field}`);
ppom_check_conditions(e.field);
});*/
- $(document).on('ppom_field_shown', function(e) {
-
- ppom_fields_hidden_conditionally();
-
- // Set checked/selected again
- ppom_set_default_option(e.field);
-
- ppom_check_conditions(e.field, function(element_dataname, event_type) {
- // console.log(`${element_dataname} ===> ${event_type}`);
- $.event.trigger({
- type: event_type,
- field: element_dataname,
- time: new Date()
- });
- });
-
-
- var field_meta = ppom_get_field_meta_by_id(e.field);
-
- // Apply FileAPI to DOM
- // PPOM version 22.0 has issue, commenting it so far by Najeeb April 4, 2021
- // if (field_meta.type === 'file' || field_meta.type === 'cropper') {
- // ppom_setup_file_upload_input(field_meta);
- // }
-
- // Price Matrix
- if (field_meta.type == 'pricematrix') {
- // Resettin
- $(".ppom_pricematrix").removeClass('active');
-
- // Set Active
- var classname = "." + field_meta.data_name;
- // console.log(field_meta.data_name, jQuery(`input[data-dataname="ppom[fields][${field_meta.data_name}]"]`));
- jQuery(`input[data-dataname="ppom[fields][${field_meta.data_name}]"]`).addClass('active')
- // $(classname).find('.ppom_pricematrix').addClass('active')
- }
-
- //Imageselect (Image dropdown)
- if (field_meta.type === 'imageselect') {
-
- var dd_selector = 'ppom_imageselect_' + field_meta.data_name;
- var ddData = $('#' + dd_selector).data('ddslick');
- var image_replace = $('#' + dd_selector).attr('data-enable-rpimg');
- ppom_create_hidden_input(ddData);
- ppom_update_option_prices();
- setTimeout(function() {
- ppom_image_selection(ddData, image_replace);
- }, 100);
- // $('#'+dd_selector).ddslick('select', {index: 0 });
- }
-
-
- // Multiple Select Addon
- if (field_meta.type === 'multiple_select') {
-
- var selector = jQuery('select[name="ppom[fields][' + field_meta.data_name + '][]"]');
- var selected_value = selector.val();
- var default_value = field_meta.selected;
-
- if (selected_value === null && default_value) {
-
- var selected_opt_arr = default_value.split(',');
-
- selector.val(selected_opt_arr).trigger('change');
-
- var selected_options = selector.find('option:selected');
- jQuery.each(selected_options, function(index, default_selected) {
-
- var option_id = jQuery(default_selected).attr('data-option_id');
- var option_label = jQuery(default_selected).attr('data-optionlabel');
- var option_price = jQuery(default_selected).attr('data-optionprice');
-
- ppom_multiple_select_create_hidden_input(field_meta.data_name, option_id, option_price, option_label, field_meta.title);
- });
- }
- }
-
- });
-
- ppom_fields_hidden_conditionally();
-
-});
-
-function ppom_check_conditions(data_name, callback) {
-
- let is_matched = false;
- const ppom_type = jQuery(`.ppom-input[data-data_name="${data_name}"]`).data('type');
- let event_type, element_data_name;
- const field_val = ppom_get_element_value(data_name);
- // console.log('data_name',data_name);
- jQuery(`div.ppom-cond-${data_name}`).each(function() {
- // return this.data('cond-val1').match(/\w*-Back/);
- // console.log(jQuery(this));
- const total_cond = parseInt(jQuery(this).data('cond-total'));
- const binding = jQuery(this).data(`cond-bind`);
- const visibility = jQuery(this).data(`cond-visibility`);
- element_data_name = jQuery(this).data('data_name');
-
- let matched = 0;
- var matched_conditions = [];
- for (var t = 1; t <= total_cond; t++) {
-
- const cond_element = jQuery(this).data(`cond-input${t}`);
- const cond_val = jQuery(this).data(`cond-val${t}`).toString();
- const operator = jQuery(this).data(`cond-operator${t}`);
-
- // const field_val = ppom_get_field_type(field_obj);
- if (cond_element !== data_name) continue;
- is_matched = ppom_compare_values(field_val, cond_val, operator);
- // console.log(`${data_name} TRIGGERS :: ${t} ***** ${element_data_name} ==> field value ${field_val} || cond_valu ${cond_val} || operator ${operator} || Binding ${binding} is_matched=>${is_matched}`);
- // console.log(field_val,cond_val);
- matched = is_matched ? ++matched : matched;
- matched_conditions[element_data_name] = matched;
-
- event_type = visibility === 'hide' ? 'ppom_field_hidden' : 'ppom_field_shown';
- // console.log(`${t} ***** ${element_data_name} total_cond ${total_cond} == matched ${matched} ==> ${matched_conditions[element_data_name]} ==> visibility ${event_type}`);
-
- if ( (matched_conditions[element_data_name] > 0 && binding === 'Any') ||
- (matched_conditions[element_data_name] == total_cond && binding === 'All')
- ) {
-
- if( visibility === 'hide' ){
- jQuery(this).addClass(`ppom-locked-${data_name} ppom-c-hide`).removeClass('ppom-c-show');
- }else{
- jQuery(this).removeClass(`ppom-locked-${data_name} ppom-c-hide`);
- }
- if (typeof callback == "function")
- callback(element_data_name, event_type);
- // return is_matched;
-
-
- }
- else if ( ! is_matched ) {
-
- if( visibility === 'hide' ){
- event_type = 'ppom_field_shown';
- jQuery(this).removeClass(`ppom-locked-${data_name} ppom-c-hide`);
- }else{
- event_type = 'ppom_field_hidden';
- jQuery(this).addClass(`ppom-locked-${data_name} ppom-c-hide`);
- }
-
- if (typeof callback == "function")
- callback(element_data_name, event_type);
- } else {
-
- jQuery(this).removeClass(`ppom-locked-${data_name} ppom-c-hide`);
- // console.log('event_type', event_type);
- if (typeof callback == "function")
- callback(element_data_name, event_type);
- }
- }
-
- // return is_matched;
- // return jQuery(this).data('cond-val1') === jQuery(this).val();
- });
+ $( document ).on( 'ppom_field_shown', function ( e ) {
+ ppom_fields_hidden_conditionally();
+
+ // Set checked/selected again
+ ppom_set_default_option( e.field );
+
+ ppom_check_conditions(
+ e.field,
+ function ( element_dataname, event_type ) {
+ // console.log(`${element_dataname} ===> ${event_type}`);
+ $.event.trigger( {
+ type: event_type,
+ field: element_dataname,
+ time: new Date(),
+ } );
+ }
+ );
+
+ const field_meta = ppom_get_field_meta_by_id( e.field );
+
+ // Apply FileAPI to DOM
+ // PPOM version 22.0 has issue, commenting it so far by Najeeb April 4, 2021
+ // if (field_meta.type === 'file' || field_meta.type === 'cropper') {
+ // ppom_setup_file_upload_input(field_meta);
+ // }
+
+ // Price Matrix
+ if ( field_meta.type == 'pricematrix' ) {
+ // Resettin
+ $( '.ppom_pricematrix' ).removeClass( 'active' );
+
+ // Set Active
+ const classname = '.' + field_meta.data_name;
+ // console.log(field_meta.data_name, jQuery(`input[data-dataname="ppom[fields][${field_meta.data_name}]"]`));
+ jQuery(
+ `input[data-dataname="ppom[fields][${ field_meta.data_name }]"]`
+ ).addClass( 'active' );
+ // $(classname).find('.ppom_pricematrix').addClass('active')
+ }
+
+ //Imageselect (Image dropdown)
+ if ( field_meta.type === 'imageselect' ) {
+ const dd_selector = 'ppom_imageselect_' + field_meta.data_name;
+ const ddData = $( '#' + dd_selector ).data( 'ddslick' );
+ const image_replace = $( '#' + dd_selector ).attr(
+ 'data-enable-rpimg'
+ );
+ ppom_create_hidden_input( ddData );
+ ppom_update_option_prices();
+ setTimeout( function () {
+ ppom_image_selection( ddData, image_replace );
+ }, 100 );
+ // $('#'+dd_selector).ddslick('select', {index: 0 });
+ }
+
+ // Multiple Select Addon
+ if ( field_meta.type === 'multiple_select' ) {
+ const selector = jQuery(
+ 'select[name="ppom[fields][' + field_meta.data_name + '][]"]'
+ );
+ const selected_value = selector.val();
+ const default_value = field_meta.selected;
+
+ if ( selected_value === null && default_value ) {
+ const selected_opt_arr = default_value.split( ',' );
+
+ selector.val( selected_opt_arr ).trigger( 'change' );
+
+ const selected_options = selector.find( 'option:selected' );
+ jQuery.each(
+ selected_options,
+ function ( index, default_selected ) {
+ const option_id =
+ jQuery( default_selected ).attr( 'data-option_id' );
+ const option_label =
+ jQuery( default_selected ).attr(
+ 'data-optionlabel'
+ );
+ const option_price =
+ jQuery( default_selected ).attr(
+ 'data-optionprice'
+ );
+
+ ppom_multiple_select_create_hidden_input(
+ field_meta.data_name,
+ option_id,
+ option_price,
+ option_label,
+ field_meta.title
+ );
+ }
+ );
+ }
+ }
+ } );
+
+ ppom_fields_hidden_conditionally();
+} );
+
+function ppom_check_conditions( data_name, callback ) {
+ let is_matched = false;
+ const ppom_type = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).data( 'type' );
+ let event_type, element_data_name;
+ const field_val = ppom_get_element_value( data_name );
+ // console.log('data_name',data_name);
+ jQuery( `div.ppom-cond-${ data_name }` ).each( function () {
+ // return this.data('cond-val1').match(/\w*-Back/);
+ // console.log(jQuery(this));
+ const total_cond = parseInt( jQuery( this ).data( 'cond-total' ) );
+ const binding = jQuery( this ).data( `cond-bind` );
+ const visibility = jQuery( this ).data( `cond-visibility` );
+ element_data_name = jQuery( this ).data( 'data_name' );
+
+ let matched = 0;
+ const matched_conditions = [];
+ for ( let t = 1; t <= total_cond; t++ ) {
+ const cond_element = jQuery( this ).data( `cond-input${ t }` );
+ const cond_val = jQuery( this ).data( `cond-val${ t }` ).toString();
+ const operator = jQuery( this ).data( `cond-operator${ t }` );
+
+ // const field_val = ppom_get_field_type(field_obj);
+ if ( cond_element !== data_name ) {
+ continue;
+ }
+ is_matched = ppom_compare_values( field_val, cond_val, operator );
+ // console.log(`${data_name} TRIGGERS :: ${t} ***** ${element_data_name} ==> field value ${field_val} || cond_valu ${cond_val} || operator ${operator} || Binding ${binding} is_matched=>${is_matched}`);
+ // console.log(field_val,cond_val);
+ matched = is_matched ? ++matched : matched;
+ matched_conditions[ element_data_name ] = matched;
+
+ event_type =
+ visibility === 'hide'
+ ? 'ppom_field_hidden'
+ : 'ppom_field_shown';
+ // console.log(`${t} ***** ${element_data_name} total_cond ${total_cond} == matched ${matched} ==> ${matched_conditions[element_data_name]} ==> visibility ${event_type}`);
+
+ if (
+ ( matched_conditions[ element_data_name ] > 0 &&
+ binding === 'Any' ) ||
+ ( matched_conditions[ element_data_name ] == total_cond &&
+ binding === 'All' )
+ ) {
+ if ( visibility === 'hide' ) {
+ jQuery( this )
+ .addClass( `ppom-locked-${ data_name } ppom-c-hide` )
+ .removeClass( 'ppom-c-show' );
+ } else {
+ jQuery( this ).removeClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ }
+ if ( typeof callback === 'function' ) {
+ callback( element_data_name, event_type );
+ }
+ // return is_matched;
+ } else if ( ! is_matched ) {
+ if ( visibility === 'hide' ) {
+ event_type = 'ppom_field_shown';
+ jQuery( this ).removeClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ } else {
+ event_type = 'ppom_field_hidden';
+ jQuery( this ).addClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ }
+
+ if ( typeof callback === 'function' ) {
+ callback( element_data_name, event_type );
+ }
+ } else {
+ jQuery( this ).removeClass(
+ `ppom-locked-${ data_name } ppom-c-hide`
+ );
+ // console.log('event_type', event_type);
+ if ( typeof callback === 'function' ) {
+ callback( element_data_name, event_type );
+ }
+ }
+ }
+
+ // return is_matched;
+ // return jQuery(this).data('cond-val1') === jQuery(this).val();
+ } );
}
-function ppom_get_input_dom_type(data_name) {
-
- // const field_obj = jQuery(`input[name="ppom[fields][${data_name}]"], input[name="ppom[fields][${data_name}[]]"], select[name="ppom[fields][${data_name}]"]`);
- const field_obj = jQuery(`.ppom-input[data-data_name="${data_name}"]`);
- const ppom_type = field_obj.closest('.ppom-field-wrapper').data('type');
- return ppom_type;
+function ppom_get_input_dom_type( data_name ) {
+ // const field_obj = jQuery(`input[name="ppom[fields][${data_name}]"], input[name="ppom[fields][${data_name}[]]"], select[name="ppom[fields][${data_name}]"]`);
+ const field_obj = jQuery( `.ppom-input[data-data_name="${ data_name }"]` );
+ const ppom_type = field_obj.closest( '.ppom-field-wrapper' ).data( 'type' );
+ return ppom_type;
}
-function ppom_get_element_value(data_name) {
-
- const ppom_type = ppom_get_input_dom_type(data_name);
- let element_value = '';
- var value_found_cb = [];
-
- switch (ppom_type) {
- case 'switcher':
- case 'radio':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).val();
- break;
- case 'palettes':
- case 'checkbox':
- jQuery('input[name="ppom[fields][' + data_name + '][]"]:checked').each(function(i) {
- value_found_cb[i] = jQuery(this).val();
- });
- break;
- case 'image':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).data('label');
- break;
- case 'imageselect':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).data('label');
- break;
- case 'fixedprice':
- var render_type = jQuery(`.ppom-input-${data_name}`).attr('data-input');
- if( render_type == 'radio' ){
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).val();
- }else{
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]`).val();
- }
- break;
-
- default:
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]`).val();
- }
-
- if (ppom_type === 'checkbox' || ppom_type === 'palettes') {
- // console.log(value_found_cb);
- return value_found_cb;
- }
-
- return element_value;
+function ppom_get_element_value( data_name ) {
+ const ppom_type = ppom_get_input_dom_type( data_name );
+ let element_value = '';
+ const value_found_cb = [];
+
+ switch ( ppom_type ) {
+ case 'switcher':
+ case 'radio':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).val();
+ break;
+ case 'palettes':
+ case 'checkbox':
+ jQuery(
+ 'input[name="ppom[fields][' + data_name + '][]"]:checked'
+ ).each( function ( i ) {
+ value_found_cb[ i ] = jQuery( this ).val();
+ } );
+ break;
+ case 'image':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).data( 'label' );
+ break;
+ case 'imageselect':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).data( 'label' );
+ break;
+ case 'fixedprice':
+ var render_type = jQuery( `.ppom-input-${ data_name }` ).attr(
+ 'data-input'
+ );
+ if ( render_type == 'radio' ) {
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).val();
+ } else {
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val();
+ }
+ break;
+
+ default:
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val();
+ }
+
+ if ( ppom_type === 'checkbox' || ppom_type === 'palettes' ) {
+ // console.log(value_found_cb);
+ return value_found_cb;
+ }
+
+ return element_value;
}
-function ppom_compare_values(v1, v2, operator) {
-
- let result = false;
- switch (operator) {
- case 'is':
- if( Array.isArray(v1) ) {
- result = jQuery.inArray(v2, v1) !== -1 ? true : false;
- }else{
- result = v1 === v2 ? true : false;
- }
- break;
- case 'not':
- result = v1 !== v2 ? true : false;
- break;
-
- case 'greater than':
- result = parseFloat(v1) > parseFloat(v2) ? true : false;
- break;
- case 'less than':
- result = parseFloat(v1) < parseFloat(v2) ? true : false;
- break;
-
- default:
- // code
- }
-
- // console.log(`matching ${v1} ${operator} ${v2}`);
- return result;
+function ppom_compare_values( v1, v2, operator ) {
+ let result = false;
+ switch ( operator ) {
+ case 'is':
+ if ( Array.isArray( v1 ) ) {
+ result = jQuery.inArray( v2, v1 ) !== -1 ? true : false;
+ } else {
+ result = v1 === v2 ? true : false;
+ }
+ break;
+ case 'not':
+ result = v1 !== v2 ? true : false;
+ break;
+
+ case 'greater than':
+ result = parseFloat( v1 ) > parseFloat( v2 ) ? true : false;
+ break;
+ case 'less than':
+ result = parseFloat( v1 ) < parseFloat( v2 ) ? true : false;
+ break;
+
+ default:
+ // code
+ }
+
+ // console.log(`matching ${v1} ${operator} ${v2}`);
+ return result;
}
-function ppom_set_default_option(field_id) {
-
- // get product id
- var product_id = ppom_input_vars.product_id;
-
- var field = ppom_get_field_meta_by_id(field_id);
-
- switch (field.type) {
-
- // Check if field is
- case 'switcher':
- case 'radio':
- jQuery.each(field.options, function(label, options) {
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
- // console.log('optio nid ', opt_id);
-
- if (options.option == field.selected) {
- jQuery("#" + opt_id).prop('checked', true).trigger('change');
- }
- });
- break;
-
- case 'select':
- jQuery("#" + field.data_name).val(field.selected);
- break;
-
- case 'image':
- jQuery.each(field.images, function(index, img) {
-
- if (img.title == field.selected) {
- jQuery("#" + field.data_name + '-' + img.id).prop('checked', true);
- }
- });
- break;
-
- case 'checkbox':
- jQuery.each(field.options, function(label, options) {
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
-
- var default_checked = field.checked.split('\r\n');
- if (jQuery.inArray(options.option, default_checked) > -1) {
- jQuery("#" + opt_id).prop('checked', true);
-
- }
- });
- break;
-
- case 'quantities':
- jQuery.each(field.options, function(label, options) {
- //console.log(options);
- if( options.default === '' ) return;
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
- jQuery("#" + opt_id).val(options.default).trigger('change');
-
- });
- break;
-
- case 'text':
- case 'date':
- case 'number':
- jQuery("#" + field.data_name).val(field.default_value);
- break;
- }
+function ppom_set_default_option( field_id ) {
+ // get product id
+ const product_id = ppom_input_vars.product_id;
+
+ const field = ppom_get_field_meta_by_id( field_id );
+
+ switch ( field.type ) {
+ // Check if field is
+ case 'switcher':
+ case 'radio':
+ jQuery.each( field.options, function ( label, options ) {
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+ // console.log('optio nid ', opt_id);
+
+ if ( options.option == field.selected ) {
+ jQuery( '#' + opt_id )
+ .prop( 'checked', true )
+ .trigger( 'change' );
+ }
+ } );
+ break;
+
+ case 'select':
+ jQuery( '#' + field.data_name ).val( field.selected );
+ break;
+
+ case 'image':
+ jQuery.each( field.images, function ( index, img ) {
+ if ( img.title == field.selected ) {
+ jQuery( '#' + field.data_name + '-' + img.id ).prop(
+ 'checked',
+ true
+ );
+ }
+ } );
+ break;
+
+ case 'checkbox':
+ jQuery.each( field.options, function ( label, options ) {
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+
+ const default_checked = field.checked.split( '\r\n' );
+ if ( jQuery.inArray( options.option, default_checked ) > -1 ) {
+ jQuery( '#' + opt_id ).prop( 'checked', true );
+ }
+ } );
+ break;
+
+ case 'quantities':
+ jQuery.each( field.options, function ( label, options ) {
+ //console.log(options);
+ if ( options.default === '' ) {
+ return;
+ }
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+ jQuery( '#' + opt_id )
+ .val( options.default )
+ .trigger( 'change' );
+ } );
+ break;
+
+ case 'text':
+ case 'date':
+ case 'number':
+ jQuery( '#' + field.data_name ).val( field.default_value );
+ break;
+ }
}
// Updating conditionally hidden fields
function ppom_fields_hidden_conditionally() {
-
- // Reset
- ppom_hidden_fields = [];
- // jQuery(`.ppom-field-wrapper.ppom-c-hide`).filter(function() {
-
- // const data_name = jQuery(this).data('data_name');
- // jQuery(`#${data_name}`).prop('required', false);
- // // console.log(data_name);
- // ppom_hidden_fields.push(data_name);
- // });
- // console.log("Condionally Hidden", ppom_hidden_fields);
- // jQuery("#conditionally_hidden").val(ppom_hidden_fields);
-
- var datanames = jQuery(`.ppom-field-wrapper[class*="ppom-locked-"]`).map( (i,h) => ppom_hidden_fields.push(jQuery(h).data('data_name')) );
- jQuery("#conditionally_hidden").val(ppom_hidden_fields);
- // console.log(ppom_hidden_fields);
-}
\ No newline at end of file
+ // Reset
+ ppom_hidden_fields = [];
+ // jQuery(`.ppom-field-wrapper.ppom-c-hide`).filter(function() {
+
+ // const data_name = jQuery(this).data('data_name');
+ // jQuery(`#${data_name}`).prop('required', false);
+ // // console.log(data_name);
+ // ppom_hidden_fields.push(data_name);
+ // });
+ // console.log("Condionally Hidden", ppom_hidden_fields);
+ // jQuery("#conditionally_hidden").val(ppom_hidden_fields);
+
+ const datanames = jQuery(
+ `.ppom-field-wrapper[class*="ppom-locked-"]`
+ ).map( ( i, h ) =>
+ ppom_hidden_fields.push( jQuery( h ).data( 'data_name' ) )
+ );
+ jQuery( '#conditionally_hidden' ).val( ppom_hidden_fields );
+ // console.log(ppom_hidden_fields);
+}
diff --git a/js/ppom-conditions.js b/js/ppom-conditions.js
index bea969d9..379dbfe8 100644
--- a/js/ppom-conditions.js
+++ b/js/ppom-conditions.js
@@ -1,424 +1,479 @@
/**
- * PPOM Fields Conditions
- **/
-"use strict"
-
-var ppom_field_matched_rules = {};
-var ppom_hidden_fields = [];
-jQuery(function($) {
-
- $(".ppom-wrapper").on('change', 'select,input:radio,input:checkbox', function(e) {
-
- ppom_check_conditions();
- });
-
- $(document).on('ppom_field_shown', function(e) {
-
-
- // Remove from array
- $.each(ppom_hidden_fields, function(i, item) {
- if (item === e.field) {
-
-
- // Set checked/selected again
- ppom_set_default_option(item);
-
- ppom_hidden_fields.splice(i, 1);
- $.event.trigger({
- type: "ppom_hidden_fields_updated",
- field: e.field,
- time: new Date()
- });
-
- }
- });
-
- // Apply FileAPI to DOM
- var field_meta = ppom_get_field_meta_by_id(e.field);
- if (field_meta.type === 'file' || field_meta.type === 'cropper') {
-
- ppom_setup_file_upload_input(field_meta);
- }
-
- // Price Matrix
- if (field_meta.type == 'pricematrix') {
- // Resettin
- $(".ppom_pricematrix").removeClass('active');
-
- // Set Active
- var classname = "." + field_meta.data_name;
- // console.log(classname);
- $(classname).find('.ppom_pricematrix').addClass('active')
- }
-
- //Imageselect (Image dropdown)
- if (field_meta.type === 'imageselect') {
-
- var dd_selector = 'ppom_imageselect_' + field_meta.data_name;
- var ddData = $('#' + dd_selector).data('ddslick');
- var image_replace = $('#' + dd_selector).attr('data-enable-rpimg');
- ppom_create_hidden_input(ddData);
- ppom_update_option_prices();
- setTimeout(function() {
- ppom_image_selection(ddData, image_replace);
- }, 100);
- // $('#'+dd_selector).ddslick('select', {index: 0 });
- }
-
-
- // Multiple Select Addon
- if (field_meta.type === 'multiple_select') {
-
- var selector = jQuery('select[name="ppom[fields][' + field_meta.data_name + '][]"]');
- var selected_value = selector.val();
- var default_value = field_meta.selected;
-
- if (selected_value === null && default_value) {
-
- var selected_opt_arr = default_value.split(',');
-
- selector.val(selected_opt_arr).trigger('change');
-
- var selected_options = selector.find('option:selected');
- jQuery.each(selected_options, function(index, default_selected) {
-
- var option_id = jQuery(default_selected).attr('data-option_id');
- var option_label = jQuery(default_selected).attr('data-optionlabel');
- var option_price = jQuery(default_selected).attr('data-optionprice');
-
- ppom_multiple_select_create_hidden_input(field_meta.data_name, option_id, option_price, option_label, field_meta.title);
- });
- }
- }
-
- });
-
- $(document).on('ppom_hidden_fields_updated', function(e) {
-
-
- $("#conditionally_hidden").val(ppom_hidden_fields);
- ppom_update_option_prices();
- });
-
- $(document).on('ppom_field_hidden', function(e) {
-
- var element_type = ppom_get_field_type_by_id(e.field);
- switch (element_type) {
-
- case 'select':
- $('select[name="ppom[fields][' + e.field + ']"]').val('');
- break;
-
- case 'multiple_select':
-
- var selector = $('select[name="ppom[fields][' + e.field + '][]"]');
- var selected_value = selector.val();
- var selected_options = selector.find('option:selected');
-
- jQuery.each(selected_options, function(index, default_selected) {
-
- var option_id = jQuery(default_selected).attr('data-option_id');
- var the_id = 'ppom-multipleselect-' + e.field + '-' + option_id;
-
- $("#" + the_id).remove();
- });
-
- if (selected_value) {
-
- $('select[name="ppom[fields][' + e.field + '][]"]').val(null).trigger("change");
- }
-
- break;
-
- case 'checkbox':
- $('input[name="ppom[fields][' + e.field + '][]"]').prop('checked', false);
- break;
- case 'radio':
- $('input[name="ppom[fields][' + e.field + ']"]').prop('checked', false);
- break;
-
- case 'file':
- $('#filelist-' + e.field).find('.u_i_c_box').remove();
- break;
-
- case 'palettes':
- case 'image':
- $('input[name="ppom[fields][' + e.field + '][]"]').prop('checked', false);
- break;
-
- case 'imageselect':
- var the_id = 'ppom-imageselect' + e.field;
- $("#" + the_id).remove();
- break;
-
- default:
- // Reset text/textarea/date/email etc types
- $('#' + e.field).val('');
- break;
- }
-
- ppom_hidden_fields.push(e.field);
- $.event.trigger({
- type: "ppom_hidden_fields_updated",
- field: e.field,
- time: new Date()
- });
- });
-
-
- setTimeout(function() {
- ppom_check_conditions();
- }, 500);
-
-});
-
-function ppom_set_default_option(field_id) {
-
- // get product id
- var product_id = ppom_input_vars.product_id;
-
- var field = ppom_get_field_meta_by_id(field_id);
- switch (field.type) {
-
- // Check if field is
- case 'radio':
- jQuery.each(field.options, function(label, options) {
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
-
- if (options.option == field.selected) {
- jQuery("#" + opt_id).prop('checked', true);
- }
- });
-
- break;
-
- case 'select':
- jQuery("#" + field.data_name).val(field.selected);
- break;
-
- case 'image':
- jQuery.each(field.images, function(index, img) {
-
- if (img.title == field.selected) {
- jQuery("#" + field.data_name + '-' + img.id).prop('checked', true);
- }
- });
- break;
-
- case 'checkbox':
- jQuery.each(field.options, function(label, options) {
- var opt_id = product_id + '-' + field.data_name + '-' + options.id;
-
- var default_checked = field.checked.split('\r\n');
- if (jQuery.inArray(options.option, default_checked) > -1) {
- jQuery("#" + opt_id).prop('checked', true);
-
- }
- });
- break;
-
- case 'text':
- case 'date':
- case 'number':
- jQuery("#" + field.data_name).val(field.default_value);
- break;
- }
+ * Legacy PPOM conditional-logic engine.
+ *
+ * This version works with the older `ppom_input_vars.conditions` structure.
+ * It still emits the same hidden/shown events so the rest of the frontend and
+ * the hidden `conditionally_hidden` payload remain compatible with PHP.
+ */
+'use strict';
+
+const ppom_field_matched_rules = {};
+const ppom_hidden_fields = [];
+jQuery( function ( $ ) {
+ // Legacy mode recalculates all conditions after each relevant field change.
+ $( '.ppom-wrapper' ).on(
+ 'change',
+ 'select,input:radio,input:checkbox',
+ function ( e ) {
+ ppom_check_conditions();
+ }
+ );
+
+ $( document ).on( 'ppom_field_shown', function ( e ) {
+ // Remove from array
+ $.each( ppom_hidden_fields, function ( i, item ) {
+ if ( item === e.field ) {
+ // Set checked/selected again
+ ppom_set_default_option( item );
+
+ ppom_hidden_fields.splice( i, 1 );
+ $.event.trigger( {
+ type: 'ppom_hidden_fields_updated',
+ field: e.field,
+ time: new Date(),
+ } );
+ }
+ } );
+
+ // Apply FileAPI to DOM
+ const field_meta = ppom_get_field_meta_by_id( e.field );
+ if ( field_meta.type === 'file' || field_meta.type === 'cropper' ) {
+ ppom_setup_file_upload_input( field_meta );
+ }
+
+ // Price Matrix
+ if ( field_meta.type == 'pricematrix' ) {
+ // Resettin
+ $( '.ppom_pricematrix' ).removeClass( 'active' );
+
+ // Set Active
+ const classname = '.' + field_meta.data_name;
+ // console.log(classname);
+ $( classname ).find( '.ppom_pricematrix' ).addClass( 'active' );
+ }
+
+ //Imageselect (Image dropdown)
+ if ( field_meta.type === 'imageselect' ) {
+ const dd_selector = 'ppom_imageselect_' + field_meta.data_name;
+ const ddData = $( '#' + dd_selector ).data( 'ddslick' );
+ const image_replace = $( '#' + dd_selector ).attr(
+ 'data-enable-rpimg'
+ );
+ ppom_create_hidden_input( ddData );
+ ppom_update_option_prices();
+ setTimeout( function () {
+ ppom_image_selection( ddData, image_replace );
+ }, 100 );
+ // $('#'+dd_selector).ddslick('select', {index: 0 });
+ }
+
+ // Multiple Select Addon
+ if ( field_meta.type === 'multiple_select' ) {
+ const selector = jQuery(
+ 'select[name="ppom[fields][' + field_meta.data_name + '][]"]'
+ );
+ const selected_value = selector.val();
+ const default_value = field_meta.selected;
+
+ if ( selected_value === null && default_value ) {
+ const selected_opt_arr = default_value.split( ',' );
+
+ selector.val( selected_opt_arr ).trigger( 'change' );
+
+ const selected_options = selector.find( 'option:selected' );
+ jQuery.each(
+ selected_options,
+ function ( index, default_selected ) {
+ const option_id =
+ jQuery( default_selected ).attr( 'data-option_id' );
+ const option_label =
+ jQuery( default_selected ).attr(
+ 'data-optionlabel'
+ );
+ const option_price =
+ jQuery( default_selected ).attr(
+ 'data-optionprice'
+ );
+
+ ppom_multiple_select_create_hidden_input(
+ field_meta.data_name,
+ option_id,
+ option_price,
+ option_label,
+ field_meta.title
+ );
+ }
+ );
+ }
+ }
+ } );
+
+ $( document ).on( 'ppom_hidden_fields_updated', function ( e ) {
+ $( '#conditionally_hidden' ).val( ppom_hidden_fields );
+ ppom_update_option_prices();
+ } );
+
+ $( document ).on( 'ppom_field_hidden', function ( e ) {
+ const element_type = ppom_get_field_type_by_id( e.field );
+ switch ( element_type ) {
+ case 'select':
+ $( 'select[name="ppom[fields][' + e.field + ']"]' ).val( '' );
+ break;
+
+ case 'multiple_select':
+ var selector = $(
+ 'select[name="ppom[fields][' + e.field + '][]"]'
+ );
+ var selected_value = selector.val();
+ var selected_options = selector.find( 'option:selected' );
+
+ jQuery.each(
+ selected_options,
+ function ( index, default_selected ) {
+ const option_id =
+ jQuery( default_selected ).attr( 'data-option_id' );
+ const the_id =
+ 'ppom-multipleselect-' + e.field + '-' + option_id;
+
+ $( '#' + the_id ).remove();
+ }
+ );
+
+ if ( selected_value ) {
+ $( 'select[name="ppom[fields][' + e.field + '][]"]' )
+ .val( null )
+ .trigger( 'change' );
+ }
+
+ break;
+
+ case 'checkbox':
+ $( 'input[name="ppom[fields][' + e.field + '][]"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+ case 'radio':
+ $( 'input[name="ppom[fields][' + e.field + ']"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'file':
+ $( '#filelist-' + e.field )
+ .find( '.u_i_c_box' )
+ .remove();
+ break;
+
+ case 'palettes':
+ case 'image':
+ $( 'input[name="ppom[fields][' + e.field + '][]"]' ).prop(
+ 'checked',
+ false
+ );
+ break;
+
+ case 'imageselect':
+ var the_id = 'ppom-imageselect' + e.field;
+ $( '#' + the_id ).remove();
+ break;
+
+ default:
+ // Reset text/textarea/date/email etc types
+ $( '#' + e.field ).val( '' );
+ break;
+ }
+
+ ppom_hidden_fields.push( e.field );
+ $.event.trigger( {
+ type: 'ppom_hidden_fields_updated',
+ field: e.field,
+ time: new Date(),
+ } );
+ } );
+
+ setTimeout( function () {
+ ppom_check_conditions();
+ }, 500 );
+} );
+
+function ppom_set_default_option( field_id ) {
+ // get product id
+ const product_id = ppom_input_vars.product_id;
+
+ const field = ppom_get_field_meta_by_id( field_id );
+ switch ( field.type ) {
+ // Check if field is
+ case 'radio':
+ jQuery.each( field.options, function ( label, options ) {
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+
+ if ( options.option == field.selected ) {
+ jQuery( '#' + opt_id ).prop( 'checked', true );
+ }
+ } );
+
+ break;
+
+ case 'select':
+ jQuery( '#' + field.data_name ).val( field.selected );
+ break;
+
+ case 'image':
+ jQuery.each( field.images, function ( index, img ) {
+ if ( img.title == field.selected ) {
+ jQuery( '#' + field.data_name + '-' + img.id ).prop(
+ 'checked',
+ true
+ );
+ }
+ } );
+ break;
+
+ case 'checkbox':
+ jQuery.each( field.options, function ( label, options ) {
+ const opt_id =
+ product_id + '-' + field.data_name + '-' + options.id;
+
+ const default_checked = field.checked.split( '\r\n' );
+ if ( jQuery.inArray( options.option, default_checked ) > -1 ) {
+ jQuery( '#' + opt_id ).prop( 'checked', true );
+ }
+ } );
+ break;
+
+ case 'text':
+ case 'date':
+ case 'number':
+ jQuery( '#' + field.data_name ).val( field.default_value );
+ break;
+ }
}
+// Evaluate every configured field condition and toggle the target wrappers.
function ppom_check_conditions() {
-
- jQuery.each(ppom_input_vars.conditions, function(field, condition) {
-
-
- // It will return rules array with True or False
- ppom_field_matched_rules[field] = ppom_get_field_rule_status(condition);
-
- // get length of condition
- var obj_length = Object.keys(condition.rules).length;
-
- // Now check if all rules are valid
- if (condition.bound === 'Any' && ppom_field_matched_rules[field] > 0) {
- ppom_unlock_field_from_condition(field, condition.visibility);
- }
- else if (condition.bound === 'All' && ppom_field_matched_rules[field] == obj_length) {
- ppom_unlock_field_from_condition(field, condition.visibility);
- }
- else {
- ppom_lock_field_from_condition(field, condition.visibility);
- }
-
- });
+ jQuery.each( ppom_input_vars.conditions, function ( field, condition ) {
+ // It will return rules array with True or False
+ ppom_field_matched_rules[ field ] =
+ ppom_get_field_rule_status( condition );
+
+ // get length of condition
+ const obj_length = Object.keys( condition.rules ).length;
+
+ // Now check if all rules are valid
+ if (
+ condition.bound === 'Any' &&
+ ppom_field_matched_rules[ field ] > 0
+ ) {
+ ppom_unlock_field_from_condition( field, condition.visibility );
+ } else if (
+ condition.bound === 'All' &&
+ ppom_field_matched_rules[ field ] == obj_length
+ ) {
+ ppom_unlock_field_from_condition( field, condition.visibility );
+ } else {
+ ppom_lock_field_from_condition( field, condition.visibility );
+ }
+ } );
}
-function ppom_unlock_field_from_condition(field, unlock) {
-
- var classname = '.ppom-input-' + field;
- if (unlock === 'Show') {
- jQuery(classname).show().removeClass('ppom-locked').addClass('ppom-unlocked')
- .trigger({
- type: "ppom_field_shown",
- field: field,
- time: new Date()
- });
- }
- else {
- jQuery(classname).hide().removeClass('ppom-locked').addClass('ppom-unlocked')
- .trigger({
- type: "ppom_field_hidden",
- field: field,
- time: new Date()
- });
- }
+// Showing/hiding a field also needs to broadcast the same lifecycle events
+// used by uploads, pricing, and validation to keep their state consistent.
+function ppom_unlock_field_from_condition( field, unlock ) {
+ const classname = '.ppom-input-' + field;
+ if ( unlock === 'Show' ) {
+ jQuery( classname )
+ .show()
+ .removeClass( 'ppom-locked' )
+ .addClass( 'ppom-unlocked' )
+ .trigger( {
+ type: 'ppom_field_shown',
+ field,
+ time: new Date(),
+ } );
+ } else {
+ jQuery( classname )
+ .hide()
+ .removeClass( 'ppom-locked' )
+ .addClass( 'ppom-unlocked' )
+ .trigger( {
+ type: 'ppom_field_hidden',
+ field,
+ time: new Date(),
+ } );
+ }
}
-function ppom_lock_field_from_condition(field, lock) {
-
- var classname = '.ppom-input-' + field;
- if (lock === 'Show') {
- jQuery(classname).hide().removeClass('ppom-unlocked').addClass('ppom-locked')
- .trigger({
- type: "ppom_field_hidden",
- field: field,
- time: new Date()
- });
- }
- else {
- jQuery(classname).show().removeClass('ppom-unlocked').addClass('ppom-locked')
- .trigger({
- type: "ppom_field_shown",
- field: field,
- time: new Date()
- });
- }
-
- jQuery.event.trigger({
- type: "ppom_field_locked",
- field: field,
- lock: lock,
- time: new Date()
- });
+function ppom_lock_field_from_condition( field, lock ) {
+ const classname = '.ppom-input-' + field;
+ if ( lock === 'Show' ) {
+ jQuery( classname )
+ .hide()
+ .removeClass( 'ppom-unlocked' )
+ .addClass( 'ppom-locked' )
+ .trigger( {
+ type: 'ppom_field_hidden',
+ field,
+ time: new Date(),
+ } );
+ } else {
+ jQuery( classname )
+ .show()
+ .removeClass( 'ppom-unlocked' )
+ .addClass( 'ppom-locked' )
+ .trigger( {
+ type: 'ppom_field_shown',
+ field,
+ time: new Date(),
+ } );
+ }
+
+ jQuery.event.trigger( {
+ type: 'ppom_field_locked',
+ field,
+ lock,
+ time: new Date(),
+ } );
}
-// It will return rules array with True or False
-function ppom_get_field_rule_status(condition) {
-
- var ppom_rules_matched = 0;
- jQuery.each(condition.rules, function(i, rule) {
-
- var element_type = ppom_get_field_type_by_id(rule.elements);
-
- // console.log(element_type);
- switch (rule.operators) {
- case 'is':
- if (element_type === 'checkbox') {
- var element_value = ppom_get_element_value(rule.elements);
- jQuery(element_value).each(function(i, item) {
- if (item === rule.element_values) {
- ppom_rules_matched++;
- }
- });
- }
- else if (element_type === 'image') {
- var element_value = ppom_get_element_value(rule.elements);
- jQuery(element_value).each(function(i, item) {
- if (item === rule.element_values) {
- ppom_rules_matched++;
- }
- });
- }
- else if (ppom_get_element_value(rule.elements) === rule.element_values) {
- ppom_rules_matched++;
- }
- break;
-
- case 'not':
- if (element_type === 'checkbox') {
- var element_value = ppom_get_element_value(rule.elements);
- jQuery(element_value).each(function(i, item) {
- if (item !== rule.element_values) {
- ppom_rules_matched++;
- }
- });
- }
- else if (ppom_get_element_value(rule.elements) !== rule.element_values) {
- ppom_rules_matched++;
- }
- break;
-
- case 'greater than':
- if (element_type === 'checkbox') {
- var element_value = ppom_get_element_value(rule.elements);
- jQuery(element_value).each(function(i, item) {
- if (parseFloat(item) > parseFloat(rule.element_values)) {
- ppom_rules_matched++;
- }
- });
- }
- else if (parseFloat(ppom_get_element_value(rule.elements)) > parseFloat(rule.element_values)) {
- ppom_rules_matched++;
- }
- break;
-
- case 'less than':
- if (element_type === 'checkbox') {
- var element_value = ppom_get_element_value(rule.elements);
- jQuery(element_value).each(function(i, item) {
- if (parseFloat(item) < parseFloat(rule.element_values)) {
- ppom_rules_matched++;
- }
- });
- }
- else if (parseFloat(ppom_get_element_value(rule.elements)) < parseFloat(rule.element_values)) {
- ppom_rules_matched++;
- }
- break;
-
-
- }
- });
-
- return ppom_rules_matched;
+// Count how many rules match for a target field in the legacy condition format.
+function ppom_get_field_rule_status( condition ) {
+ let ppom_rules_matched = 0;
+ jQuery.each( condition.rules, function ( i, rule ) {
+ const element_type = ppom_get_field_type_by_id( rule.elements );
+
+ // console.log(element_type);
+ switch ( rule.operators ) {
+ case 'is':
+ if ( element_type === 'checkbox' ) {
+ var element_value = ppom_get_element_value( rule.elements );
+ jQuery( element_value ).each( function ( i, item ) {
+ if ( item === rule.element_values ) {
+ ppom_rules_matched++;
+ }
+ } );
+ } else if ( element_type === 'image' ) {
+ var element_value = ppom_get_element_value( rule.elements );
+ jQuery( element_value ).each( function ( i, item ) {
+ if ( item === rule.element_values ) {
+ ppom_rules_matched++;
+ }
+ } );
+ } else if (
+ ppom_get_element_value( rule.elements ) ===
+ rule.element_values
+ ) {
+ ppom_rules_matched++;
+ }
+ break;
+
+ case 'not':
+ if ( element_type === 'checkbox' ) {
+ var element_value = ppom_get_element_value( rule.elements );
+ jQuery( element_value ).each( function ( i, item ) {
+ if ( item !== rule.element_values ) {
+ ppom_rules_matched++;
+ }
+ } );
+ } else if (
+ ppom_get_element_value( rule.elements ) !==
+ rule.element_values
+ ) {
+ ppom_rules_matched++;
+ }
+ break;
+
+ case 'greater than':
+ if ( element_type === 'checkbox' ) {
+ var element_value = ppom_get_element_value( rule.elements );
+ jQuery( element_value ).each( function ( i, item ) {
+ if (
+ parseFloat( item ) >
+ parseFloat( rule.element_values )
+ ) {
+ ppom_rules_matched++;
+ }
+ } );
+ } else if (
+ parseFloat( ppom_get_element_value( rule.elements ) ) >
+ parseFloat( rule.element_values )
+ ) {
+ ppom_rules_matched++;
+ }
+ break;
+
+ case 'less than':
+ if ( element_type === 'checkbox' ) {
+ var element_value = ppom_get_element_value( rule.elements );
+ jQuery( element_value ).each( function ( i, item ) {
+ if (
+ parseFloat( item ) <
+ parseFloat( rule.element_values )
+ ) {
+ ppom_rules_matched++;
+ }
+ } );
+ } else if (
+ parseFloat( ppom_get_element_value( rule.elements ) ) <
+ parseFloat( rule.element_values )
+ ) {
+ ppom_rules_matched++;
+ }
+ break;
+ }
+ } );
+
+ return ppom_rules_matched;
}
-// Getting rule element value
-function ppom_get_element_value(field_name) {
-
- var element_type = ppom_get_field_type_by_id(field_name);
- var value_found = '';
- var value_found_cb = [];
-
- switch (element_type) {
-
- case 'select':
- value_found = jQuery('select[name="ppom[fields][' + field_name + ']"]').val();
- break;
-
- case 'radio':
- value_found = jQuery('input[name="ppom[fields][' + field_name + ']"]:checked').val();
- break;
-
- case 'checkbox':
- jQuery('input[name="ppom[fields][' + field_name + '][]"]:checked').each(function(i) {
- value_found_cb[i] = jQuery(this).val();
- });
- break;
-
- case 'image':
- // value_found = jQuery('input[name="ppom[fields]['+field_name+'][]"]:checked').attr('data-label');
- jQuery('input[name="ppom[fields][' + field_name + '][]"]:checked').each(function(i) {
- value_found_cb[i] = jQuery(this).attr('data-label');
- });
- break;
-
- case 'imageselect':
- value_found = jQuery('input[name="ppom[fields][' + field_name + ']"]:checked').attr('data-title');
- break;
-
- }
-
- if (element_type === 'checkbox' || element_type === 'image') {
- return value_found_cb;
- }
-
- return value_found;
+// Normalize legacy field values before comparing them against rule operators.
+function ppom_get_element_value( field_name ) {
+ const element_type = ppom_get_field_type_by_id( field_name );
+ let value_found = '';
+ const value_found_cb = [];
+
+ switch ( element_type ) {
+ case 'select':
+ value_found = jQuery(
+ 'select[name="ppom[fields][' + field_name + ']"]'
+ ).val();
+ break;
+
+ case 'radio':
+ value_found = jQuery(
+ 'input[name="ppom[fields][' + field_name + ']"]:checked'
+ ).val();
+ break;
+
+ case 'checkbox':
+ jQuery(
+ 'input[name="ppom[fields][' + field_name + '][]"]:checked'
+ ).each( function ( i ) {
+ value_found_cb[ i ] = jQuery( this ).val();
+ } );
+ break;
+
+ case 'image':
+ // value_found = jQuery('input[name="ppom[fields]['+field_name+'][]"]:checked').attr('data-label');
+ jQuery(
+ 'input[name="ppom[fields][' + field_name + '][]"]:checked'
+ ).each( function ( i ) {
+ value_found_cb[ i ] = jQuery( this ).attr( 'data-label' );
+ } );
+ break;
+
+ case 'imageselect':
+ value_found = jQuery(
+ 'input[name="ppom[fields][' + field_name + ']"]:checked'
+ ).attr( 'data-title' );
+ break;
+ }
+
+ if ( element_type === 'checkbox' || element_type === 'image' ) {
+ return value_found_cb;
+ }
+
+ return value_found;
}
diff --git a/js/ppom-modal.js b/js/ppom-modal.js
index 8fd17c67..0a723785 100644
--- a/js/ppom-modal.js
+++ b/js/ppom-modal.js
@@ -7,787 +7,890 @@
* Under MIT License
*/
-!(function(root, factory) {
- if (typeof define === 'function' && define.amd) {
- define(['jquery'], function($) {
- return factory(root, $);
- });
- }
- else if (typeof exports === 'object') {
- factory(root, require('jquery'));
- }
- else {
- factory(root, root.jQuery || root.Zepto);
- }
-})(this, function(global, $) {
-
- 'use strict';
-
- /**
- * Name of the plugin
- * @private
- * @const
- * @type {String}
- */
- var PLUGIN_NAME = 'ppom_modal';
-
- /**
- * Namespace for CSS and events
- * @private
- * @const
- * @type {String}
- */
- var NAMESPACE = global.REMODAL_GLOBALS && global.REMODAL_GLOBALS.NAMESPACE || PLUGIN_NAME;
-
- /**
- * Animationstart event with vendor prefixes
- * @private
- * @const
- * @type {String}
- */
- var ANIMATIONSTART_EVENTS = $.map(
- ['animationstart', 'webkitAnimationStart', 'MSAnimationStart', 'oAnimationStart'],
-
- function(eventName) {
- return eventName + '.' + NAMESPACE;
- }
-
- ).join(' ');
-
- /**
- * Animationend event with vendor prefixes
- * @private
- * @const
- * @type {String}
- */
- var ANIMATIONEND_EVENTS = $.map(
- ['animationend', 'webkitAnimationEnd', 'MSAnimationEnd', 'oAnimationEnd'],
-
- function(eventName) {
- return eventName + '.' + NAMESPACE;
- }
-
- ).join(' ');
-
- /**
- * Default settings
- * @private
- * @const
- * @type {Object}
- */
- var DEFAULTS = $.extend({
- hashTracking: true,
- closeOnConfirm: true,
- closeOnCancel: true,
- closeOnEscape: true,
- closeOnOutsideClick: true,
- modifier: '',
- appendTo: ''
- }, global.REMODAL_GLOBALS && global.REMODAL_GLOBALS.DEFAULTS);
-
- /**
- * States of the Remodal
- * @private
- * @const
- * @enum {String}
- */
- var STATES = {
- CLOSING: 'closing',
- CLOSED: 'closed',
- OPENING: 'opening',
- OPENED: 'opened'
- };
-
- /**
- * Reasons of the state change.
- * @private
- * @const
- * @enum {String}
- */
- var STATE_CHANGE_REASONS = {
- CONFIRMATION: 'confirmation',
- CANCELLATION: 'cancellation'
- };
-
- /**
- * Is animation supported?
- * @private
- * @const
- * @type {Boolean}
- */
- var IS_ANIMATION = (function() {
- var style = document.createElement('div').style;
-
- return style.animationName !== undefined ||
- style.WebkitAnimationName !== undefined ||
- style.MozAnimationName !== undefined ||
- style.msAnimationName !== undefined ||
- style.OAnimationName !== undefined;
- })();
-
- /**
- * Is iOS?
- * @private
- * @const
- * @type {Boolean}
- */
- var IS_IOS = /iPad|iPhone|iPod/.test(navigator.platform);
-
- /**
- * Current modal
- * @private
- * @type {Remodal}
- */
- var current;
-
- /**
- * Scrollbar position
- * @private
- * @type {Number}
- */
- var scrollTop;
-
- /**
- * Returns an animation duration
- * @private
- * @param {jQuery} $elem
- * @returns {Number}
- */
- function getAnimationDuration($elem) {
- if (
- IS_ANIMATION &&
- $elem.css('animation-name') === 'none' &&
- $elem.css('-webkit-animation-name') === 'none' &&
- $elem.css('-moz-animation-name') === 'none' &&
- $elem.css('-o-animation-name') === 'none' &&
- $elem.css('-ms-animation-name') === 'none'
- ) {
- return 0;
- }
-
- var duration = $elem.css('animation-duration') ||
- $elem.css('-webkit-animation-duration') ||
- $elem.css('-moz-animation-duration') ||
- $elem.css('-o-animation-duration') ||
- $elem.css('-ms-animation-duration') ||
- '0s';
-
- var delay = $elem.css('animation-delay') ||
- $elem.css('-webkit-animation-delay') ||
- $elem.css('-moz-animation-delay') ||
- $elem.css('-o-animation-delay') ||
- $elem.css('-ms-animation-delay') ||
- '0s';
-
- var iterationCount = $elem.css('animation-iteration-count') ||
- $elem.css('-webkit-animation-iteration-count') ||
- $elem.css('-moz-animation-iteration-count') ||
- $elem.css('-o-animation-iteration-count') ||
- $elem.css('-ms-animation-iteration-count') ||
- '1';
-
- var max;
- var len;
- var num;
- var i;
-
- duration = duration.split(', ');
- delay = delay.split(', ');
- iterationCount = iterationCount.split(', ');
-
- // The 'duration' size is the same as the 'delay' size
- for (i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY; i < len; i++) {
- num = parseFloat(duration[i]) * parseInt(iterationCount[i], 10) + parseFloat(delay[i]);
-
- if (num > max) {
- max = num;
- }
- }
-
- return max;
- }
-
- /**
- * Returns a scrollbar width
- * @private
- * @returns {Number}
- */
- function getScrollbarWidth() {
- if ($(document).height() <= $(window).height()) {
- return 0;
- }
-
- var outer = document.createElement('div');
- var inner = document.createElement('div');
- var widthNoScroll;
- var widthWithScroll;
-
- outer.style.visibility = 'hidden';
- outer.style.width = '100px';
- document.body.appendChild(outer);
-
- widthNoScroll = outer.offsetWidth;
-
- // Force scrollbars
- outer.style.overflow = 'scroll';
-
- // Add inner div
- inner.style.width = '100%';
- outer.appendChild(inner);
-
- widthWithScroll = inner.offsetWidth;
-
- // Remove divs
- outer.parentNode.removeChild(outer);
-
- return widthNoScroll - widthWithScroll;
- }
-
- /**
- * Locks the screen
- * @private
- */
- function lockScreen() {
- if (IS_IOS) {
- return;
- }
-
- var $html = $('html');
- var lockedClass = namespacify('is-locked');
- var paddingRight;
- var $body;
-
- if (!$html.hasClass(lockedClass)) {
- $body = $(document.body);
-
- // Zepto does not support '-=', '+=' in the `css` method
- paddingRight = parseInt($body.css('padding-right'), 10) + getScrollbarWidth();
-
- $body.css('padding-right', paddingRight + 'px');
- $html.addClass(lockedClass);
- }
- }
-
- /**
- * Unlocks the screen
- * @private
- */
- function unlockScreen() {
- if (IS_IOS) {
- return;
- }
-
- var $html = $('html');
- var lockedClass = namespacify('is-locked');
- var paddingRight;
- var $body;
-
- if ($html.hasClass(lockedClass)) {
- $body = $(document.body);
-
- // Zepto does not support '-=', '+=' in the `css` method
- paddingRight = parseInt($body.css('padding-right'), 10) - getScrollbarWidth();
-
- $body.css('padding-right', paddingRight + 'px');
- $html.removeClass(lockedClass);
- }
- }
-
- /**
- * Sets a state for an instance
- * @private
- * @param {Remodal} instance
- * @param {STATES} state
- * @param {Boolean} isSilent If true, Remodal does not trigger events
- * @param {String} Reason of a state change.
- */
- function setState(instance, state, isSilent, reason) {
-
- var newState = namespacify('is', state);
- var allStates = [namespacify('is', STATES.CLOSING),
- namespacify('is', STATES.OPENING),
- namespacify('is', STATES.CLOSED),
- namespacify('is', STATES.OPENED)
- ].join(' ');
-
- instance.$bg
- .removeClass(allStates)
- .addClass(newState);
-
- instance.$overlay
- .removeClass(allStates)
- .addClass(newState);
-
- instance.$wrapper
- .removeClass(allStates)
- .addClass(newState);
-
- instance.$modal
- .removeClass(allStates)
- .addClass(newState);
-
- instance.state = state;
- !isSilent && instance.$modal.trigger({
- type: state,
- reason: reason
- }, [{ reason: reason }]);
- }
-
- /**
- * Synchronizes with the animation
- * @param {Function} doBeforeAnimation
- * @param {Function} doAfterAnimation
- * @param {Remodal} instance
- */
- function syncWithAnimation(doBeforeAnimation, doAfterAnimation, instance) {
- var runningAnimationsCount = 0;
-
- var handleAnimationStart = function(e) {
- if (e.target !== this) {
- return;
- }
-
- runningAnimationsCount++;
- };
-
- var handleAnimationEnd = function(e) {
- if (e.target !== this) {
- return;
- }
-
- if (--runningAnimationsCount === 0) {
-
- // Remove event listeners
- $.each(['$bg', '$overlay', '$wrapper', '$modal'], function(index, elemName) {
- instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);
- });
-
- doAfterAnimation();
- }
- };
-
- $.each(['$bg', '$overlay', '$wrapper', '$modal'], function(index, elemName) {
- instance[elemName]
- .on(ANIMATIONSTART_EVENTS, handleAnimationStart)
- .on(ANIMATIONEND_EVENTS, handleAnimationEnd);
- });
-
- doBeforeAnimation();
-
- // If the animation is not supported by a browser or its duration is 0
- if (
- getAnimationDuration(instance.$bg) === 0 &&
- getAnimationDuration(instance.$overlay) === 0 &&
- getAnimationDuration(instance.$wrapper) === 0 &&
- getAnimationDuration(instance.$modal) === 0
- ) {
-
- // Remove event listeners
- $.each(['$bg', '$overlay', '$wrapper', '$modal'], function(index, elemName) {
- instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);
- });
-
- doAfterAnimation();
- }
- }
-
- /**
- * Closes immediately
- * @private
- * @param {Remodal} instance
- */
- function halt(instance) {
- if (instance.state === STATES.CLOSED) {
- return;
- }
-
- $.each(['$bg', '$overlay', '$wrapper', '$modal'], function(index, elemName) {
- instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);
- });
-
- instance.$bg.removeClass(instance.settings.modifier);
- instance.$overlay.removeClass(instance.settings.modifier).hide();
- instance.$wrapper.hide();
- unlockScreen();
- setState(instance, STATES.CLOSED, true);
- }
-
- /**
- * Parses a string with options
- * @private
- * @param str
- * @returns {Object}
- */
- function parseOptions(str) {
- var obj = {};
- var arr;
- var len;
- var val;
- var i;
-
- // Remove spaces before and after delimiters
- str = str.replace(/\s*:\s*/g, ':').replace(/\s*,\s*/g, ',');
-
- // Parse a string
- arr = str.split(',');
- for (i = 0, len = arr.length; i < len; i++) {
- arr[i] = arr[i].split(':');
- val = arr[i][1];
-
- // Convert a string value if it is like a boolean
- if (typeof val === 'string' || val instanceof String) {
- val = val === 'true' || (val === 'false' ? false : val);
- }
-
- // Convert a string value if it is like a number
- if (typeof val === 'string' || val instanceof String) {
- val = !isNaN(val) ? +val : val;
- }
-
- obj[arr[i][0]] = val;
- }
-
- return obj;
- }
-
- /**
- * Generates a string separated by dashes and prefixed with NAMESPACE
- * @private
- * @param {...String}
- * @returns {String}
- */
- function namespacify() {
- var result = NAMESPACE;
-
- for (var i = 0; i < arguments.length; ++i) {
- result += '-' + arguments[i];
- }
-
- return result;
- }
-
- /**
- * Handles the hashchange event
- * @private
- * @listens hashchange
- */
- function handleHashChangeEvent() {
- var id = location.hash.replace('#', '');
- var instance;
- var $elem;
-
- if (!id) {
-
- // Check if we have currently opened modal and animation was completed
- if (current && current.state === STATES.OPENED && current.settings.hashTracking) {
- current.close();
- }
- }
- else {
-
- // Catch syntax error if your hash is bad
- try {
- $elem = $(
- '[data-' + PLUGIN_NAME + '-id="' + id + '"]'
- );
- }
- catch (err) {}
-
- if ($elem && $elem.length) {
- instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];
-
- if (instance && instance.settings.hashTracking) {
- instance.open();
- }
- }
-
- }
- }
-
- /**
- * Remodal constructor
- * @constructor
- * @param {jQuery} $modal
- * @param {Object} options
- */
- function Remodal($modal, options) {
- // var $body = $(document.body);
- var $body = $modal.parent();
- var $appendTo = $body;
- var remodal = this;
-
- remodal.settings = $.extend({}, DEFAULTS, options);
- remodal.index = $[PLUGIN_NAME].lookup.push(remodal) - 1;
- remodal.state = STATES.CLOSED;
-
- remodal.$overlay = $('.' + namespacify('overlay'));
-
- if (remodal.settings.appendTo !== null && remodal.settings.appendTo.length) {
- $appendTo = $(remodal.settings.appendTo);
- }
-
- if (!remodal.$overlay.length) {
- remodal.$overlay = $('
').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide();
- $appendTo.append(remodal.$overlay);
- }
-
- remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED));
-
- remodal.$modal = $modal
- .addClass(
- NAMESPACE + ' ' +
- namespacify('is-initialized') + ' ' +
- remodal.settings.modifier + ' ' +
- namespacify('is', STATES.CLOSED))
- .attr('tabindex', '-1');
-
- remodal.$wrapper = $('
')
- .addClass(
- namespacify('wrapper') + ' ' +
- remodal.settings.modifier + ' ' +
- namespacify('is', STATES.CLOSED))
- .hide()
- .append(remodal.$modal);
- $appendTo.append(remodal.$wrapper);
-
- // Add the event listener for the close button
- remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="close"]', function(e) {
- e.preventDefault();
-
- remodal.close();
- });
-
- // Add the event listener for the cancel button
- remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="cancel"]', function(e) {
- e.preventDefault();
-
- remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION);
-
- if (remodal.settings.closeOnCancel) {
- remodal.close(STATE_CHANGE_REASONS.CANCELLATION);
- }
- });
-
- // Add the event listener for the confirm button
- remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="confirm"]', function(e) {
- e.preventDefault();
-
- remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION);
-
- if (remodal.settings.closeOnConfirm) {
- remodal.close(STATE_CHANGE_REASONS.CONFIRMATION);
- }
- });
-
- // Add the event listener for the overlay
- remodal.$wrapper.on('click.' + NAMESPACE, function(e) {
- var $target = $(e.target);
-
- if (!$target.hasClass(namespacify('wrapper'))) {
- return;
- }
-
- if (remodal.settings.closeOnOutsideClick) {
- remodal.close();
- }
- });
- }
-
- /**
- * Opens a modal window
- * @public
- */
- Remodal.prototype.open = function() {
- var remodal = this;
- var id;
-
- // Check if the animation was completed
- if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) {
- return;
- }
-
- id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id');
-
- if (id && remodal.settings.hashTracking) {
- scrollTop = $(window).scrollTop();
- location.hash = id;
- }
-
- if (current && current !== remodal) {
- halt(current);
- }
-
- current = remodal;
- lockScreen();
- remodal.$bg.addClass(remodal.settings.modifier);
- remodal.$overlay.addClass(remodal.settings.modifier).show();
- remodal.$wrapper.show().scrollTop(0);
- remodal.$modal.focus();
-
- syncWithAnimation(
- function() {
- setState(remodal, STATES.OPENING);
- },
-
- function() {
- setState(remodal, STATES.OPENED);
- },
-
- remodal);
- };
-
- /**
- * Closes a modal window
- * @public
- * @param {String} reason
- */
- Remodal.prototype.close = function(reason) {
- var remodal = this;
-
- // Check if the animation was completed
- if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) {
- return;
- }
-
- if (
- remodal.settings.hashTracking &&
- remodal.$modal.attr('data-' + PLUGIN_NAME + '-id') === location.hash.substr(1)
- ) {
- location.hash = '';
- $(window).scrollTop(scrollTop);
- }
-
- syncWithAnimation(
- function() {
- setState(remodal, STATES.CLOSING, false, reason);
- },
-
- function() {
- remodal.$bg.removeClass(remodal.settings.modifier);
- remodal.$overlay.removeClass(remodal.settings.modifier).hide();
- remodal.$wrapper.hide();
- unlockScreen();
-
- setState(remodal, STATES.CLOSED, false, reason);
- },
-
- remodal);
- };
-
- /**
- * Returns a current state of a modal
- * @public
- * @returns {STATES}
- */
- Remodal.prototype.getState = function() {
- return this.state;
- };
-
- /**
- * Destroys a modal
- * @public
- */
- Remodal.prototype.destroy = function() {
- var lookup = $[PLUGIN_NAME].lookup;
- var instanceCount;
-
- halt(this);
- this.$wrapper.remove();
-
- delete lookup[this.index];
- instanceCount = $.grep(lookup, function(instance) {
- return !!instance;
- }).length;
-
- if (instanceCount === 0) {
- this.$overlay.remove();
- this.$bg.removeClass(
- namespacify('is', STATES.CLOSING) + ' ' +
- namespacify('is', STATES.OPENING) + ' ' +
- namespacify('is', STATES.CLOSED) + ' ' +
- namespacify('is', STATES.OPENED));
- }
- };
-
- /**
- * Special plugin object for instances
- * @public
- * @type {Object}
- */
- $[PLUGIN_NAME] = {
- lookup: []
- };
-
- /**
- * Plugin constructor
- * @constructor
- * @param {Object} options
- * @returns {JQuery}
- */
- $.fn[PLUGIN_NAME] = function(opts) {
- var instance;
- var $elem;
-
- this.each(function(index, elem) {
- $elem = $(elem);
-
- if ($elem.data(PLUGIN_NAME) == null) {
- instance = new Remodal($elem, opts);
- $elem.data(PLUGIN_NAME, instance.index);
-
- if (
- instance.settings.hashTracking &&
- $elem.attr('data-' + PLUGIN_NAME + '-id') === location.hash.substr(1)
- ) {
- instance.open();
- }
- }
- else {
- instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];
- }
- });
-
- return instance;
- };
-
- $(document).ready(function() {
-
- // data-remodal-target opens a modal window with the special Id
- $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function(e) {
- e.preventDefault();
-
- var elem = e.currentTarget;
- var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target');
- var $target = $('[data-' + PLUGIN_NAME + '-id="' + id + '"]');
-
- $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open();
- });
-
- // Auto initialization of modal windows
- // They should have the 'remodal' class attribute
- // Also you can write the `data-remodal-options` attribute to pass params into the modal
- $(document).find('.' + NAMESPACE).each(function(i, container) {
- var $container = $(container);
- var options = $container.data(PLUGIN_NAME + '-options');
-
- if (!options) {
- options = {};
- }
- else if (typeof options === 'string' || options instanceof String) {
- options = parseOptions(options);
- }
-
- $container[PLUGIN_NAME](options);
- });
-
- // Handles the keydown event
- $(document).on('keydown.' + NAMESPACE, function(e) {
- if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) {
- current.close();
- }
- });
-
- // Handles the hashchange event
- $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);
- });
-});
+! ( function ( root, factory ) {
+ if ( typeof define === 'function' && define.amd ) {
+ define( [ 'jquery' ], function ( $ ) {
+ return factory( root, $ );
+ } );
+ } else if ( typeof exports === 'object' ) {
+ factory( root, require( 'jquery' ) );
+ } else {
+ factory( root, root.jQuery || root.Zepto );
+ }
+} )( this, function ( global, $ ) {
+ 'use strict';
+
+ /**
+ * Name of the plugin
+ * @private
+ * @constant
+ * @type {string}
+ */
+ const PLUGIN_NAME = 'ppom_modal';
+
+ /**
+ * Namespace for CSS and events
+ * @private
+ * @constant
+ * @type {string}
+ */
+ const NAMESPACE =
+ ( global.REMODAL_GLOBALS && global.REMODAL_GLOBALS.NAMESPACE ) ||
+ PLUGIN_NAME;
+
+ /**
+ * Animationstart event with vendor prefixes
+ * @private
+ * @constant
+ * @type {string}
+ */
+ const ANIMATIONSTART_EVENTS = $.map(
+ [
+ 'animationstart',
+ 'webkitAnimationStart',
+ 'MSAnimationStart',
+ 'oAnimationStart',
+ ],
+
+ function ( eventName ) {
+ return eventName + '.' + NAMESPACE;
+ }
+ ).join( ' ' );
+
+ /**
+ * Animationend event with vendor prefixes
+ * @private
+ * @constant
+ * @type {string}
+ */
+ const ANIMATIONEND_EVENTS = $.map(
+ [
+ 'animationend',
+ 'webkitAnimationEnd',
+ 'MSAnimationEnd',
+ 'oAnimationEnd',
+ ],
+
+ function ( eventName ) {
+ return eventName + '.' + NAMESPACE;
+ }
+ ).join( ' ' );
+
+ /**
+ * Default settings
+ * @private
+ * @constant
+ * @type {Object}
+ */
+ const DEFAULTS = $.extend(
+ {
+ hashTracking: true,
+ closeOnConfirm: true,
+ closeOnCancel: true,
+ closeOnEscape: true,
+ closeOnOutsideClick: true,
+ modifier: '',
+ appendTo: '',
+ },
+ global.REMODAL_GLOBALS && global.REMODAL_GLOBALS.DEFAULTS
+ );
+
+ /**
+ * States of the Remodal
+ * @private
+ * @constant
+ * @enum {string}
+ */
+ const STATES = {
+ CLOSING: 'closing',
+ CLOSED: 'closed',
+ OPENING: 'opening',
+ OPENED: 'opened',
+ };
+
+ /**
+ * Reasons of the state change.
+ * @private
+ * @constant
+ * @enum {string}
+ */
+ const STATE_CHANGE_REASONS = {
+ CONFIRMATION: 'confirmation',
+ CANCELLATION: 'cancellation',
+ };
+
+ /**
+ * Is animation supported?
+ * @private
+ * @constant
+ * @type {boolean}
+ */
+ const IS_ANIMATION = ( function () {
+ const style = document.createElement( 'div' ).style;
+
+ return (
+ style.animationName !== undefined ||
+ style.WebkitAnimationName !== undefined ||
+ style.MozAnimationName !== undefined ||
+ style.msAnimationName !== undefined ||
+ style.OAnimationName !== undefined
+ );
+ } )();
+
+ /**
+ * Is iOS?
+ * @private
+ * @constant
+ * @type {boolean}
+ */
+ const IS_IOS = /iPad|iPhone|iPod/.test( navigator.platform );
+
+ /**
+ * Current modal
+ * @private
+ * @type {Remodal}
+ */
+ let current;
+
+ /**
+ * Scrollbar position
+ * @private
+ * @type {number}
+ */
+ let scrollTop;
+
+ /**
+ * Returns an animation duration
+ * @private
+ * @param {jQuery} $elem
+ * @return {number}
+ */
+ function getAnimationDuration( $elem ) {
+ if (
+ IS_ANIMATION &&
+ $elem.css( 'animation-name' ) === 'none' &&
+ $elem.css( '-webkit-animation-name' ) === 'none' &&
+ $elem.css( '-moz-animation-name' ) === 'none' &&
+ $elem.css( '-o-animation-name' ) === 'none' &&
+ $elem.css( '-ms-animation-name' ) === 'none'
+ ) {
+ return 0;
+ }
+
+ let duration =
+ $elem.css( 'animation-duration' ) ||
+ $elem.css( '-webkit-animation-duration' ) ||
+ $elem.css( '-moz-animation-duration' ) ||
+ $elem.css( '-o-animation-duration' ) ||
+ $elem.css( '-ms-animation-duration' ) ||
+ '0s';
+
+ let delay =
+ $elem.css( 'animation-delay' ) ||
+ $elem.css( '-webkit-animation-delay' ) ||
+ $elem.css( '-moz-animation-delay' ) ||
+ $elem.css( '-o-animation-delay' ) ||
+ $elem.css( '-ms-animation-delay' ) ||
+ '0s';
+
+ let iterationCount =
+ $elem.css( 'animation-iteration-count' ) ||
+ $elem.css( '-webkit-animation-iteration-count' ) ||
+ $elem.css( '-moz-animation-iteration-count' ) ||
+ $elem.css( '-o-animation-iteration-count' ) ||
+ $elem.css( '-ms-animation-iteration-count' ) ||
+ '1';
+
+ let max;
+ let len;
+ let num;
+ let i;
+
+ duration = duration.split( ', ' );
+ delay = delay.split( ', ' );
+ iterationCount = iterationCount.split( ', ' );
+
+ // The 'duration' size is the same as the 'delay' size
+ for (
+ i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY;
+ i < len;
+ i++
+ ) {
+ num =
+ parseFloat( duration[ i ] ) *
+ parseInt( iterationCount[ i ], 10 ) +
+ parseFloat( delay[ i ] );
+
+ if ( num > max ) {
+ max = num;
+ }
+ }
+
+ return max;
+ }
+
+ /**
+ * Returns a scrollbar width
+ * @private
+ * @return {number}
+ */
+ function getScrollbarWidth() {
+ if ( $( document ).height() <= $( window ).height() ) {
+ return 0;
+ }
+
+ const outer = document.createElement( 'div' );
+ const inner = document.createElement( 'div' );
+ let widthNoScroll;
+ let widthWithScroll;
+
+ outer.style.visibility = 'hidden';
+ outer.style.width = '100px';
+ document.body.appendChild( outer );
+
+ widthNoScroll = outer.offsetWidth;
+
+ // Force scrollbars
+ outer.style.overflow = 'scroll';
+
+ // Add inner div
+ inner.style.width = '100%';
+ outer.appendChild( inner );
+
+ widthWithScroll = inner.offsetWidth;
+
+ // Remove divs
+ outer.parentNode.removeChild( outer );
+
+ return widthNoScroll - widthWithScroll;
+ }
+
+ /**
+ * Locks the screen
+ * @private
+ */
+ function lockScreen() {
+ if ( IS_IOS ) {
+ return;
+ }
+
+ const $html = $( 'html' );
+ const lockedClass = namespacify( 'is-locked' );
+ let paddingRight;
+ let $body;
+
+ if ( ! $html.hasClass( lockedClass ) ) {
+ $body = $( document.body );
+
+ // Zepto does not support '-=', '+=' in the `css` method
+ paddingRight =
+ parseInt( $body.css( 'padding-right' ), 10 ) +
+ getScrollbarWidth();
+
+ $body.css( 'padding-right', paddingRight + 'px' );
+ $html.addClass( lockedClass );
+ }
+ }
+
+ /**
+ * Unlocks the screen
+ * @private
+ */
+ function unlockScreen() {
+ if ( IS_IOS ) {
+ return;
+ }
+
+ const $html = $( 'html' );
+ const lockedClass = namespacify( 'is-locked' );
+ let paddingRight;
+ let $body;
+
+ if ( $html.hasClass( lockedClass ) ) {
+ $body = $( document.body );
+
+ // Zepto does not support '-=', '+=' in the `css` method
+ paddingRight =
+ parseInt( $body.css( 'padding-right' ), 10 ) -
+ getScrollbarWidth();
+
+ $body.css( 'padding-right', paddingRight + 'px' );
+ $html.removeClass( lockedClass );
+ }
+ }
+
+ /**
+ * Sets a state for an instance
+ * @private
+ * @param {Remodal} instance
+ * @param {STATES} state
+ * @param {boolean} isSilent If true, Remodal does not trigger events
+ * @param reason
+ * @param {string} Reason of a state change.
+ */
+ function setState( instance, state, isSilent, reason ) {
+ const newState = namespacify( 'is', state );
+ const allStates = [
+ namespacify( 'is', STATES.CLOSING ),
+ namespacify( 'is', STATES.OPENING ),
+ namespacify( 'is', STATES.CLOSED ),
+ namespacify( 'is', STATES.OPENED ),
+ ].join( ' ' );
+
+ instance.$bg.removeClass( allStates ).addClass( newState );
+
+ instance.$overlay.removeClass( allStates ).addClass( newState );
+
+ instance.$wrapper.removeClass( allStates ).addClass( newState );
+
+ instance.$modal.removeClass( allStates ).addClass( newState );
+
+ instance.state = state;
+ ! isSilent &&
+ instance.$modal.trigger(
+ {
+ type: state,
+ reason,
+ },
+ [ { reason } ]
+ );
+ }
+
+ /**
+ * Synchronizes with the animation
+ * @param {Function} doBeforeAnimation
+ * @param {Function} doAfterAnimation
+ * @param {Remodal} instance
+ */
+ function syncWithAnimation(
+ doBeforeAnimation,
+ doAfterAnimation,
+ instance
+ ) {
+ let runningAnimationsCount = 0;
+
+ const handleAnimationStart = function ( e ) {
+ if ( e.target !== this ) {
+ return;
+ }
+
+ runningAnimationsCount++;
+ };
+
+ const handleAnimationEnd = function ( e ) {
+ if ( e.target !== this ) {
+ return;
+ }
+
+ if ( --runningAnimationsCount === 0 ) {
+ // Remove event listeners
+ $.each(
+ [ '$bg', '$overlay', '$wrapper', '$modal' ],
+ function ( index, elemName ) {
+ instance[ elemName ].off(
+ ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS
+ );
+ }
+ );
+
+ doAfterAnimation();
+ }
+ };
+
+ $.each(
+ [ '$bg', '$overlay', '$wrapper', '$modal' ],
+ function ( index, elemName ) {
+ instance[ elemName ]
+ .on( ANIMATIONSTART_EVENTS, handleAnimationStart )
+ .on( ANIMATIONEND_EVENTS, handleAnimationEnd );
+ }
+ );
+
+ doBeforeAnimation();
+
+ // If the animation is not supported by a browser or its duration is 0
+ if (
+ getAnimationDuration( instance.$bg ) === 0 &&
+ getAnimationDuration( instance.$overlay ) === 0 &&
+ getAnimationDuration( instance.$wrapper ) === 0 &&
+ getAnimationDuration( instance.$modal ) === 0
+ ) {
+ // Remove event listeners
+ $.each(
+ [ '$bg', '$overlay', '$wrapper', '$modal' ],
+ function ( index, elemName ) {
+ instance[ elemName ].off(
+ ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS
+ );
+ }
+ );
+
+ doAfterAnimation();
+ }
+ }
+
+ /**
+ * Closes immediately
+ * @private
+ * @param {Remodal} instance
+ */
+ function halt( instance ) {
+ if ( instance.state === STATES.CLOSED ) {
+ return;
+ }
+
+ $.each(
+ [ '$bg', '$overlay', '$wrapper', '$modal' ],
+ function ( index, elemName ) {
+ instance[ elemName ].off(
+ ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS
+ );
+ }
+ );
+
+ instance.$bg.removeClass( instance.settings.modifier );
+ instance.$overlay.removeClass( instance.settings.modifier ).hide();
+ instance.$wrapper.hide();
+ unlockScreen();
+ setState( instance, STATES.CLOSED, true );
+ }
+
+ /**
+ * Parses a string with options
+ * @private
+ * @param str
+ * @return {Object}
+ */
+ function parseOptions( str ) {
+ const obj = {};
+ let arr;
+ let len;
+ let val;
+ let i;
+
+ // Remove spaces before and after delimiters
+ str = str.replace( /\s*:\s*/g, ':' ).replace( /\s*,\s*/g, ',' );
+
+ // Parse a string
+ arr = str.split( ',' );
+ for ( i = 0, len = arr.length; i < len; i++ ) {
+ arr[ i ] = arr[ i ].split( ':' );
+ val = arr[ i ][ 1 ];
+
+ // Convert a string value if it is like a boolean
+ if ( typeof val === 'string' || val instanceof String ) {
+ val = val === 'true' || ( val === 'false' ? false : val );
+ }
+
+ // Convert a string value if it is like a number
+ if ( typeof val === 'string' || val instanceof String ) {
+ val = ! isNaN( val ) ? +val : val;
+ }
+
+ obj[ arr[ i ][ 0 ] ] = val;
+ }
+
+ return obj;
+ }
+
+ /**
+ * Generates a string separated by dashes and prefixed with NAMESPACE
+ * @private
+ * @param {...string}
+ * @return {string}
+ */
+ function namespacify() {
+ let result = NAMESPACE;
+
+ for ( let i = 0; i < arguments.length; ++i ) {
+ result += '-' + arguments[ i ];
+ }
+
+ return result;
+ }
+
+ /**
+ * Handles the hashchange event
+ * @private
+ * @listens hashchange
+ */
+ function handleHashChangeEvent() {
+ const id = location.hash.replace( '#', '' );
+ let instance;
+ let $elem;
+
+ if ( ! id ) {
+ // Check if we have currently opened modal and animation was completed
+ if (
+ current &&
+ current.state === STATES.OPENED &&
+ current.settings.hashTracking
+ ) {
+ current.close();
+ }
+ } else {
+ // Catch syntax error if your hash is bad
+ try {
+ $elem = $( '[data-' + PLUGIN_NAME + '-id="' + id + '"]' );
+ } catch ( err ) {}
+
+ if ( $elem && $elem.length ) {
+ instance = $[ PLUGIN_NAME ].lookup[ $elem.data( PLUGIN_NAME ) ];
+
+ if ( instance && instance.settings.hashTracking ) {
+ instance.open();
+ }
+ }
+ }
+ }
+
+ /**
+ * Remodal constructor
+ * @class
+ * @param {jQuery} $modal
+ * @param {Object} options
+ */
+ function Remodal( $modal, options ) {
+ // var $body = $(document.body);
+ const $body = $modal.parent();
+ let $appendTo = $body;
+ const remodal = this;
+
+ remodal.settings = $.extend( {}, DEFAULTS, options );
+ remodal.index = $[ PLUGIN_NAME ].lookup.push( remodal ) - 1;
+ remodal.state = STATES.CLOSED;
+
+ remodal.$overlay = $( '.' + namespacify( 'overlay' ) );
+
+ if (
+ remodal.settings.appendTo !== null &&
+ remodal.settings.appendTo.length
+ ) {
+ $appendTo = $( remodal.settings.appendTo );
+ }
+
+ if ( ! remodal.$overlay.length ) {
+ remodal.$overlay = $( '
' )
+ .addClass(
+ namespacify( 'overlay' ) +
+ ' ' +
+ namespacify( 'is', STATES.CLOSED )
+ )
+ .hide();
+ $appendTo.append( remodal.$overlay );
+ }
+
+ remodal.$bg = $( '.' + namespacify( 'bg' ) ).addClass(
+ namespacify( 'is', STATES.CLOSED )
+ );
+
+ remodal.$modal = $modal
+ .addClass(
+ NAMESPACE +
+ ' ' +
+ namespacify( 'is-initialized' ) +
+ ' ' +
+ remodal.settings.modifier +
+ ' ' +
+ namespacify( 'is', STATES.CLOSED )
+ )
+ .attr( 'tabindex', '-1' );
+
+ remodal.$wrapper = $( '
' )
+ .addClass(
+ namespacify( 'wrapper' ) +
+ ' ' +
+ remodal.settings.modifier +
+ ' ' +
+ namespacify( 'is', STATES.CLOSED )
+ )
+ .hide()
+ .append( remodal.$modal );
+ $appendTo.append( remodal.$wrapper );
+
+ // Add the event listener for the close button
+ remodal.$wrapper.on(
+ 'click.' + NAMESPACE,
+ '[data-' + PLUGIN_NAME + '-action="close"]',
+ function ( e ) {
+ e.preventDefault();
+
+ remodal.close();
+ }
+ );
+
+ // Add the event listener for the cancel button
+ remodal.$wrapper.on(
+ 'click.' + NAMESPACE,
+ '[data-' + PLUGIN_NAME + '-action="cancel"]',
+ function ( e ) {
+ e.preventDefault();
+
+ remodal.$modal.trigger( STATE_CHANGE_REASONS.CANCELLATION );
+
+ if ( remodal.settings.closeOnCancel ) {
+ remodal.close( STATE_CHANGE_REASONS.CANCELLATION );
+ }
+ }
+ );
+
+ // Add the event listener for the confirm button
+ remodal.$wrapper.on(
+ 'click.' + NAMESPACE,
+ '[data-' + PLUGIN_NAME + '-action="confirm"]',
+ function ( e ) {
+ e.preventDefault();
+
+ remodal.$modal.trigger( STATE_CHANGE_REASONS.CONFIRMATION );
+
+ if ( remodal.settings.closeOnConfirm ) {
+ remodal.close( STATE_CHANGE_REASONS.CONFIRMATION );
+ }
+ }
+ );
+
+ // Add the event listener for the overlay
+ remodal.$wrapper.on( 'click.' + NAMESPACE, function ( e ) {
+ const $target = $( e.target );
+
+ if ( ! $target.hasClass( namespacify( 'wrapper' ) ) ) {
+ return;
+ }
+
+ if ( remodal.settings.closeOnOutsideClick ) {
+ remodal.close();
+ }
+ } );
+ }
+
+ /**
+ * Opens a modal window
+ * @public
+ */
+ Remodal.prototype.open = function () {
+ const remodal = this;
+ let id;
+
+ // Check if the animation was completed
+ if (
+ remodal.state === STATES.OPENING ||
+ remodal.state === STATES.CLOSING
+ ) {
+ return;
+ }
+
+ id = remodal.$modal.attr( 'data-' + PLUGIN_NAME + '-id' );
+
+ if ( id && remodal.settings.hashTracking ) {
+ scrollTop = $( window ).scrollTop();
+ location.hash = id;
+ }
+
+ if ( current && current !== remodal ) {
+ halt( current );
+ }
+
+ current = remodal;
+ lockScreen();
+ remodal.$bg.addClass( remodal.settings.modifier );
+ remodal.$overlay.addClass( remodal.settings.modifier ).show();
+ remodal.$wrapper.show().scrollTop( 0 );
+ remodal.$modal.focus();
+
+ syncWithAnimation(
+ function () {
+ setState( remodal, STATES.OPENING );
+ },
+
+ function () {
+ setState( remodal, STATES.OPENED );
+ },
+
+ remodal
+ );
+ };
+
+ /**
+ * Closes a modal window
+ * @public
+ * @param {string} reason
+ */
+ Remodal.prototype.close = function ( reason ) {
+ const remodal = this;
+
+ // Check if the animation was completed
+ if (
+ remodal.state === STATES.OPENING ||
+ remodal.state === STATES.CLOSING ||
+ remodal.state === STATES.CLOSED
+ ) {
+ return;
+ }
+
+ if (
+ remodal.settings.hashTracking &&
+ remodal.$modal.attr( 'data-' + PLUGIN_NAME + '-id' ) ===
+ location.hash.substr( 1 )
+ ) {
+ location.hash = '';
+ $( window ).scrollTop( scrollTop );
+ }
+
+ syncWithAnimation(
+ function () {
+ setState( remodal, STATES.CLOSING, false, reason );
+ },
+
+ function () {
+ remodal.$bg.removeClass( remodal.settings.modifier );
+ remodal.$overlay
+ .removeClass( remodal.settings.modifier )
+ .hide();
+ remodal.$wrapper.hide();
+ unlockScreen();
+
+ setState( remodal, STATES.CLOSED, false, reason );
+ },
+
+ remodal
+ );
+ };
+
+ /**
+ * Returns a current state of a modal
+ * @public
+ * @return {STATES}
+ */
+ Remodal.prototype.getState = function () {
+ return this.state;
+ };
+
+ /**
+ * Destroys a modal
+ * @public
+ */
+ Remodal.prototype.destroy = function () {
+ const lookup = $[ PLUGIN_NAME ].lookup;
+ let instanceCount;
+
+ halt( this );
+ this.$wrapper.remove();
+
+ delete lookup[ this.index ];
+ instanceCount = $.grep( lookup, function ( instance ) {
+ return !! instance;
+ } ).length;
+
+ if ( instanceCount === 0 ) {
+ this.$overlay.remove();
+ this.$bg.removeClass(
+ namespacify( 'is', STATES.CLOSING ) +
+ ' ' +
+ namespacify( 'is', STATES.OPENING ) +
+ ' ' +
+ namespacify( 'is', STATES.CLOSED ) +
+ ' ' +
+ namespacify( 'is', STATES.OPENED )
+ );
+ }
+ };
+
+ /**
+ * Special plugin object for instances
+ * @public
+ * @type {Object}
+ */
+ $[ PLUGIN_NAME ] = {
+ lookup: [],
+ };
+
+ /**
+ * Plugin constructor
+ * @class
+ * @param opts
+ * @param {Object} options
+ * @return {JQuery}
+ */
+ $.fn[ PLUGIN_NAME ] = function ( opts ) {
+ let instance;
+ let $elem;
+
+ this.each( function ( index, elem ) {
+ $elem = $( elem );
+
+ if ( $elem.data( PLUGIN_NAME ) == null ) {
+ instance = new Remodal( $elem, opts );
+ $elem.data( PLUGIN_NAME, instance.index );
+
+ if (
+ instance.settings.hashTracking &&
+ $elem.attr( 'data-' + PLUGIN_NAME + '-id' ) ===
+ location.hash.substr( 1 )
+ ) {
+ instance.open();
+ }
+ } else {
+ instance = $[ PLUGIN_NAME ].lookup[ $elem.data( PLUGIN_NAME ) ];
+ }
+ } );
+
+ return instance;
+ };
+
+ $( document ).ready( function () {
+ // data-remodal-target opens a modal window with the special Id
+ $( document ).on(
+ 'click',
+ '[data-' + PLUGIN_NAME + '-target]',
+ function ( e ) {
+ e.preventDefault();
+
+ const elem = e.currentTarget;
+ const id = elem.getAttribute(
+ 'data-' + PLUGIN_NAME + '-target'
+ );
+ const $target = $(
+ '[data-' + PLUGIN_NAME + '-id="' + id + '"]'
+ );
+
+ $[ PLUGIN_NAME ].lookup[ $target.data( PLUGIN_NAME ) ].open();
+ }
+ );
+
+ // Auto initialization of modal windows
+ // They should have the 'remodal' class attribute
+ // Also you can write the `data-remodal-options` attribute to pass params into the modal
+ $( document )
+ .find( '.' + NAMESPACE )
+ .each( function ( i, container ) {
+ const $container = $( container );
+ let options = $container.data( PLUGIN_NAME + '-options' );
+
+ if ( ! options ) {
+ options = {};
+ } else if (
+ typeof options === 'string' ||
+ options instanceof String
+ ) {
+ options = parseOptions( options );
+ }
+
+ $container[ PLUGIN_NAME ]( options );
+ } );
+
+ // Handles the keydown event
+ $( document ).on( 'keydown.' + NAMESPACE, function ( e ) {
+ if (
+ current &&
+ current.settings.closeOnEscape &&
+ current.state === STATES.OPENED &&
+ e.keyCode === 27
+ ) {
+ current.close();
+ }
+ } );
+
+ // Handles the hashchange event
+ $( window ).on( 'hashchange.' + NAMESPACE, handleHashChangeEvent );
+ } );
+} );
diff --git a/js/ppom-plusminus.js b/js/ppom-plusminus.js
index 12be5864..b632c92c 100644
--- a/js/ppom-plusminus.js
+++ b/js/ppom-plusminus.js
@@ -1,156 +1,163 @@
-(function ($) {
- $.fn.niceNumber = function(options) {
- var settings = $.extend({
- autoSize: true,
- autoSizeBuffer: 1,
- buttonDecrement: '-',
- buttonIncrement: "+",
- buttonPosition: 'around'
- }, options);
+( function ( $ ) {
+ $.fn.niceNumber = function ( options ) {
+ const settings = $.extend(
+ {
+ autoSize: true,
+ autoSizeBuffer: 1,
+ buttonDecrement: '-',
+ buttonIncrement: '+',
+ buttonPosition: 'around',
+ },
+ options
+ );
- return this.each(function(){
- var currentInput = this,
- $currentInput = $(currentInput),
- attrMax = null,
- attrMin = null;
+ return this.each( function () {
+ let currentInput = this,
+ $currentInput = $( currentInput ),
+ attrMax = null,
+ attrMin = null;
- // Handle max and min values
- if (
- typeof $currentInput.attr('max') !== typeof undefined
- && $currentInput.attr('max') !== false
- ) {
- attrMax = parseFloat($currentInput.attr('max'));
- }
+ // Handle max and min values
+ if (
+ typeof $currentInput.attr( 'max' ) !== typeof undefined &&
+ $currentInput.attr( 'max' ) !== false
+ ) {
+ attrMax = parseFloat( $currentInput.attr( 'max' ) );
+ }
- if (
- typeof $currentInput.attr('min') !== typeof undefined
- && $currentInput.attr('min') !== false
- ) {
- attrMin = parseFloat($currentInput.attr('min'));
- }
+ if (
+ typeof $currentInput.attr( 'min' ) !== typeof undefined &&
+ $currentInput.attr( 'min' ) !== false
+ ) {
+ attrMin = parseFloat( $currentInput.attr( 'min' ) );
+ }
- // if (isNaN(attrMax)) {
- // attrMax = 44;
- // console.log(attrMax);
- // }
+ // if (isNaN(attrMax)) {
+ // attrMax = 44;
+ // console.log(attrMax);
+ // }
- // if (isNaN(attrMin)) {
- // attrMin = 0;
- // console.log(attrMin);
- // }
+ // if (isNaN(attrMin)) {
+ // attrMin = 0;
+ // console.log(attrMin);
+ // }
- // Fix issue with initial value being < min
- //console.log(currentInput.value);
- if (
- attrMin
- && !currentInput.value
- ) {
- $currentInput.val(attrMin);
- }
+ // Fix issue with initial value being < min
+ //console.log(currentInput.value);
+ if ( attrMin && ! currentInput.value ) {
+ $currentInput.val( attrMin );
+ }
- // Generate container
- var $inputContainer = $('
',{
- class: 'ppom-number-plusminus'
- })
- .insertAfter(currentInput);
+ // Generate container
+ const $inputContainer = $( '
', {
+ class: 'ppom-number-plusminus',
+ } ).insertAfter( currentInput );
- // Generate interval (object so it is passed by reference)
- var interval = {};
+ // Generate interval (object so it is passed by reference)
+ const interval = {};
- // Generate buttons
- var $minusButton = $('
')
- .attr('type', 'button')
- .html(settings.buttonDecrement)
- .on('mousedown mouseup mouseleave', function(event){
- changeInterval(event.type, interval, function(){
- if (
- attrMin == null || isNaN(attrMin)
- || attrMin < parseFloat(currentInput.value)
- ) {
- currentInput.value--;
- }
- });
+ // Generate buttons
+ const $minusButton = $( '
' )
+ .attr( 'type', 'button' )
+ .html( settings.buttonDecrement )
+ .on( 'mousedown mouseup mouseleave', function ( event ) {
+ changeInterval( event.type, interval, function () {
+ if (
+ attrMin == null ||
+ isNaN( attrMin ) ||
+ attrMin < parseFloat( currentInput.value )
+ ) {
+ currentInput.value--;
+ }
+ } );
- // Trigger the input event here to avoid event spam
- if (
- event.type == 'mouseup'
- || event.type == 'mouseleave'
- ) {
- $currentInput.trigger('change');
- }
- });
+ // Trigger the input event here to avoid event spam
+ if (
+ event.type == 'mouseup' ||
+ event.type == 'mouseleave'
+ ) {
+ $currentInput.trigger( 'change' );
+ }
+ } );
- var $plusButton = $('
')
- .attr('type', 'button')
- .html(settings.buttonIncrement)
- .on('mousedown mouseup mouseleave', function(event){
- changeInterval(event.type, interval, function(){
- if (
- attrMax == null || isNaN(attrMax)
- || attrMax > parseFloat(currentInput.value)
- ) {
- currentInput.value++;
- }
- });
+ const $plusButton = $( '
' )
+ .attr( 'type', 'button' )
+ .html( settings.buttonIncrement )
+ .on( 'mousedown mouseup mouseleave', function ( event ) {
+ changeInterval( event.type, interval, function () {
+ if (
+ attrMax == null ||
+ isNaN( attrMax ) ||
+ attrMax > parseFloat( currentInput.value )
+ ) {
+ currentInput.value++;
+ }
+ } );
- // Trigger the input event here to avoid event spam
- if (
- event.type == 'mouseup'
- || event.type == 'mouseleave'
- ) {
- $currentInput.trigger('change');
- }
- });
+ // Trigger the input event here to avoid event spam
+ if (
+ event.type == 'mouseup' ||
+ event.type == 'mouseleave'
+ ) {
+ $currentInput.trigger( 'change' );
+ }
+ } );
- // Append elements
- switch (settings.buttonPosition) {
- case 'left':
- $minusButton.appendTo($inputContainer);
- $plusButton.appendTo($inputContainer);
- $currentInput.appendTo($inputContainer);
- break;
- case 'right':
- $currentInput.appendTo($inputContainer);
- $minusButton.appendTo($inputContainer);
- $plusButton.appendTo($inputContainer);
- break;
- case 'around':
- default:
- $minusButton.appendTo($inputContainer);
- $currentInput.appendTo($inputContainer);
- $plusButton.appendTo($inputContainer);
- break;
- }
+ // Append elements
+ switch ( settings.buttonPosition ) {
+ case 'left':
+ $minusButton.appendTo( $inputContainer );
+ $plusButton.appendTo( $inputContainer );
+ $currentInput.appendTo( $inputContainer );
+ break;
+ case 'right':
+ $currentInput.appendTo( $inputContainer );
+ $minusButton.appendTo( $inputContainer );
+ $plusButton.appendTo( $inputContainer );
+ break;
+ case 'around':
+ default:
+ $minusButton.appendTo( $inputContainer );
+ $currentInput.appendTo( $inputContainer );
+ $plusButton.appendTo( $inputContainer );
+ break;
+ }
- // Nicely size input
- if (settings.autoSize) {
- $currentInput.width(
- $currentInput.val().length+settings.autoSizeBuffer+"ch"
- );
- $currentInput.on('keyup input',function(){
- $currentInput.animate({
- 'width': $currentInput.val().length+settings.autoSizeBuffer+"ch"
- }, 200);
- });
- }
- });
- };
+ // Nicely size input
+ if ( settings.autoSize ) {
+ $currentInput.width(
+ $currentInput.val().length + settings.autoSizeBuffer + 'ch'
+ );
+ $currentInput.on( 'keyup input', function () {
+ $currentInput.animate(
+ {
+ width:
+ $currentInput.val().length +
+ settings.autoSizeBuffer +
+ 'ch',
+ },
+ 200
+ );
+ } );
+ }
+ } );
+ };
- function changeInterval(eventType, interval, callback) {
- if (eventType == "mousedown") {
- interval.timeout = setTimeout(function(){
- interval.actualInterval = setInterval(function(){
- callback();
- }, 100);
- }, 200);
- callback();
- } else {
- if (interval.timeout) {
- clearTimeout(interval.timeout);
- }
- if (interval.actualInterval) {
- clearInterval(interval.actualInterval);
- }
- }
- }
-}(jQuery));
+ function changeInterval( eventType, interval, callback ) {
+ if ( eventType == 'mousedown' ) {
+ interval.timeout = setTimeout( function () {
+ interval.actualInterval = setInterval( function () {
+ callback();
+ }, 100 );
+ }, 200 );
+ callback();
+ } else {
+ if ( interval.timeout ) {
+ clearTimeout( interval.timeout );
+ }
+ if ( interval.actualInterval ) {
+ clearInterval( interval.actualInterval );
+ }
+ }
+ }
+} )( jQuery );
diff --git a/js/ppom-simple-popup.js b/js/ppom-simple-popup.js
index 2cf07f6e..670c3e67 100644
--- a/js/ppom-simple-popup.js
+++ b/js/ppom-simple-popup.js
@@ -1,21 +1,30 @@
/*
- * jQuery Simple Popup Window Plugin 1.0
+ * PPOM frontend popup bridge.
+ *
+ * This wraps a lightweight popup pattern used by some frontend field flows and
+ * also bootstraps Tooltipster-based help tooltips when tooltip settings were
+ * localized for the current product form.
+ *
+ * @see ppom_setup_file_upload_input in js/file-upload.js
+ * @see imageTooltip in js/image-tooltip.js
*/
'use strict';
-(function($) {
-
- // Tooltip Init.
- var tooltipConfig = 'undefined' !== typeof ppom_tooltip_vars ? ppom_tooltip_vars : {};
- var tooltip_position = tooltipConfig.ppom_tooltip_position;
- var tooltip_trigger = tooltipConfig.ppom_tooltip_trigger;
- var tooltip_animation = tooltipConfig.ppom_tooltip_animation;
- var tooltip_maxwidth = tooltipConfig.ppom_tooltip_maxwidth;
- var tooltip_borderclr = tooltipConfig.ppom_tooltip_borderclr;
- var tooltip_bgclr = tooltipConfig.ppom_tooltip_bgclr;
- var tooltip_txtclr = tooltipConfig.ppom_tooltip_txtclr;
- var tooltip_interactive = (tooltipConfig.ppom_tooltip_interactive == 'yes') ? true : false;
+( function ( $ ) {
+ // Tooltipster settings are localized from PHP per product/form instance so
+ // the same script can respect store-specific trigger, width, and color rules.
+ const tooltipConfig =
+ 'undefined' !== typeof ppom_tooltip_vars ? ppom_tooltip_vars : {};
+ const tooltip_position = tooltipConfig.ppom_tooltip_position;
+ const tooltip_trigger = tooltipConfig.ppom_tooltip_trigger;
+ const tooltip_animation = tooltipConfig.ppom_tooltip_animation;
+ const tooltip_maxwidth = tooltipConfig.ppom_tooltip_maxwidth;
+ const tooltip_borderclr = tooltipConfig.ppom_tooltip_borderclr;
+ const tooltip_bgclr = tooltipConfig.ppom_tooltip_bgclr;
+ const tooltip_txtclr = tooltipConfig.ppom_tooltip_txtclr;
+ const tooltip_interactive =
+ tooltipConfig.ppom_tooltip_interactive == 'yes' ? true : false;
const tooltip_options = {
contentAsHTML: true,
@@ -27,11 +36,10 @@
maxWidth: tooltip_maxwidth,
tooltipBorderColor: tooltip_borderclr,
tooltipBGColor: tooltip_bgclr,
- tooltipContentColor: tooltip_txtclr
+ tooltipContentColor: tooltip_txtclr,
};
- if (tooltip_trigger != 'yes') {
-
+ if ( tooltip_trigger != 'yes' ) {
tooltip_options.triggerClose = {
mouseleave: true,
originClick: true,
@@ -42,9 +50,7 @@
mouseenter: true,
tap: true,
};
- }
- else {
-
+ } else {
tooltip_options.triggerClose = {
click: true,
tap: true,
@@ -55,113 +61,136 @@
tap: true,
};
}
- if ( $('[data-ppom-tooltip~=ppom_tooltip]').length > 0 ) {
- $('[data-ppom-tooltip~=ppom_tooltip]').ppom_tooltipster?.(tooltip_options);
+ // Tooltips are optional because some forms load this popup bridge only for
+ // modal behavior, while others use it to initialize tooltip-enabled inputs.
+ if ( $( '[data-ppom-tooltip~=ppom_tooltip]' ).length > 0 ) {
+ $( '[data-ppom-tooltip~=ppom_tooltip]' ).ppom_tooltipster?.(
+ tooltip_options
+ );
}
- // Plugin name and prefix
- var pluginName = 'megapopup';
- var prefix = 'ppom-popup';
+ // Plugin name and prefix
+ const pluginName = 'megapopup';
+ const prefix = 'ppom-popup';
+ // File-upload browse buttons need a refresh after hidden containers become
+ // visible inside a popup, otherwise Plupload can calculate stale positions.
function pluploadRefresh() {
- if( typeof uploaderInstances !== 'object' ) {
+ if ( typeof uploaderInstances !== 'object' ) {
return;
}
- const instances = Object.values(uploaderInstances);
+ const instances = Object.values( uploaderInstances );
- for( let i=0; i
').appendTo('body');
+ if ( modalBG.length == 0 ) {
+ modalBG = $(
+ '
'
+ ).appendTo( 'body' );
}
- // open popup
- modal.bind(prefix + ':open', function() {
-
- $('body').addClass(options.bodycontroller);
- modal.css({ 'display': 'block', });
+ // Opening only toggles classes/visibility; the popup contents are
+ // already rendered by PHP and may include live PPOM inputs/widgets.
+ modal.bind( prefix + ':open', function () {
+ $( 'body' ).addClass( options.bodycontroller );
+ modal.css( { display: 'block' } );
modalBG.fadeIn();
- modal.animate({
- "top": '0px',
- "opacity": 1
- }, 0);
-
- });
-
- // close popup
- modal.bind(prefix + ':close', function() {
-
- $('body').removeClass(options.bodycontroller);
+ modal.animate(
+ {
+ top: '0px',
+ opacity: 1,
+ },
+ 0
+ );
+ } );
+
+ // Closing keeps the modal in the DOM so reopening does not discard
+ // field state entered inside the popup-backed PPOM form controls.
+ modal.bind( prefix + ':close', function () {
+ $( 'body' ).removeClass( options.bodycontroller );
modalBG.fadeOut();
- modal.animate({
- "top": '0px',
- "opacity": 0
- }, 0, function() {
- modal.css({ 'display': 'none' });
- });
- });
+ modal.animate(
+ {
+ top: '0px',
+ opacity: 0,
+ },
+ 0,
+ function () {
+ modal.css( { display: 'none' } );
+ }
+ );
+ } );
//Open Modal Immediately
- modal.trigger(prefix + ':open');
+ modal.trigger( prefix + ':open' );
// close popup listner
- $('.' + options.popupcloseclass).bind('click.modalEvent', function(e) {
- modal.trigger(prefix + ':close');
- e.preventDefault();
- });
+ $( '.' + options.popupcloseclass ).bind(
+ 'click.modalEvent',
+ function ( e ) {
+ modal.trigger( prefix + ':close' );
+ e.preventDefault();
+ }
+ );
// Close popup on overlay click, but not when clicking inside the modal
- $('.ppom-enquiry-overlay, .ppom-popup-product-edit-overlay').bind('click.modalEvent', function(e) {
- if (!$(e.target).closest('.ppom-enquiry-modal, .ppom-popup-product-edit-modal').length) {
- modal.trigger(prefix + ':close');
+ $( '.ppom-enquiry-overlay, .ppom-popup-product-edit-overlay' ).bind(
+ 'click.modalEvent',
+ function ( e ) {
+ if (
+ ! $( e.target ).closest(
+ '.ppom-enquiry-modal, .ppom-popup-product-edit-modal'
+ ).length
+ ) {
+ modal.trigger( prefix + ':close' );
+ }
}
- });
+ );
// disable backgroundclickevent close
- if (options.backgroundclickevent) {
- modalBG.css({ "cursor": "pointer" })
- modalBG.bind('click.modalEvent', function() {
- modal.trigger(prefix + ':close')
- });
+ if ( options.backgroundclickevent ) {
+ modalBG.css( { cursor: 'pointer' } );
+ modalBG.bind( 'click.modalEvent', function () {
+ modal.trigger( prefix + ':close' );
+ } );
}
-
- });
- }
-
-})(jQuery);
+ } );
+ };
+} )( jQuery );
diff --git a/js/ppom-tooltip.js b/js/ppom-tooltip.js
index a93ba640..f71bfa0a 100644
--- a/js/ppom-tooltip.js
+++ b/js/ppom-tooltip.js
@@ -1,90 +1,97 @@
-"use strict";
-jQuery(function($){
-
- /*******************************************
- * PPOM Fields Desciption Tooltip JS Code *
- ********************************************/
+'use strict';
+/**
+ * Fallback tooltip renderer for PPOM helper icons.
+ *
+ * Some screens still use this lightweight tooltip instead of Tooltipster. It
+ * reads the native `title` attribute, temporarily moves that content into a
+ * positioned tooltip node, and restores the attribute on teardown.
+ */
+jQuery( function ( $ ) {
var target, tooltip, title, tip;
var targets = $( '[data-ppom-tooltip~=ppom_tooltip]' ),
- target = false,
- tooltip = false,
- title = false;
+ target = false,
+ tooltip = false,
+ title = false;
+
+ $( document ).on(
+ 'mouseenter',
+ '[data-ppom-tooltip~=ppom_tooltip]',
+ function () {
+ // for iphone double click issue
+ if ( navigator.userAgent.match( /(iPod|iPhone|iPad)/ ) ) {
+ $( this ).trigger( 'click' );
+ }
+
+ target = $( this );
+ tip = target.attr( 'title' );
+ tooltip = $( '
' );
+
+ if ( ! tip || tip == '' ) {
+ return false;
+ }
+
+ target.removeAttr( 'title' );
+ tooltip.css( 'opacity', 0 ).html( tip ).appendTo( 'body' );
+
+ const init_tooltip = function () {
+ if ( $( window ).width() < tooltip.outerWidth() * 1.5 ) {
+ tooltip.css( 'max-width', $( window ).width() / 2 );
+ } else {
+ tooltip.css( 'max-width', 340 );
+ }
+
+ var pos_left =
+ target.offset().left +
+ target.outerWidth() / 2 -
+ tooltip.outerWidth() / 2,
+ pos_top = target.offset().top - tooltip.outerHeight() - 20;
+
+ if ( pos_left < 0 ) {
+ pos_left =
+ target.offset().left + target.outerWidth() / 2 - 20;
+ tooltip.addClass( 'left' );
+ } else {
+ tooltip.removeClass( 'left' );
+ }
+
+ if ( pos_left + tooltip.outerWidth() > $( window ).width() ) {
+ pos_left =
+ target.offset().left -
+ tooltip.outerWidth() +
+ target.outerWidth() / 2 +
+ 20;
+ tooltip.addClass( 'right' );
+ } else {
+ tooltip.removeClass( 'right' );
+ }
+
+ if ( pos_top < 0 ) {
+ var pos_top = target.offset().top + target.outerHeight();
+ tooltip.addClass( 'top' );
+ } else {
+ tooltip.removeClass( 'top' );
+ }
- $(document).on('mouseenter', '[data-ppom-tooltip~=ppom_tooltip]', function(){
+ tooltip
+ .css( { left: pos_left, top: pos_top } )
+ .animate( { top: '+=10', opacity: 1 }, 50 );
+ };
- // for iphone double click issue
- if(navigator.userAgent.match(/(iPod|iPhone|iPad)/)){
- $(this).trigger('click');
- }
+ init_tooltip();
+ $( window ).resize( init_tooltip );
+ const remove_tooltip = function () {
+ tooltip.animate( { top: '-=10', opacity: 0 }, 50, function () {
+ $( this ).remove();
+ } );
- target = $( this );
- tip = target.attr( 'title' );
- tooltip = $( '
' );
-
- if( !tip || tip == '' )
- return false;
-
- target.removeAttr( 'title' );
- tooltip.css( 'opacity', 0 )
- .html( tip )
- .appendTo( 'body' );
-
- var init_tooltip = function()
- {
- if( $( window ).width() < tooltip.outerWidth() * 1.5 )
- tooltip.css( 'max-width', $( window ).width() / 2 );
- else
- tooltip.css( 'max-width', 340 );
-
- var pos_left = target.offset().left + ( target.outerWidth() / 2 ) - ( tooltip.outerWidth() / 2 ),
- pos_top = target.offset().top - tooltip.outerHeight() - 20;
-
- if( pos_left < 0 )
- {
- pos_left = target.offset().left + target.outerWidth() / 2 - 20;
- tooltip.addClass( 'left' );
- }
- else
- tooltip.removeClass( 'left' );
-
- if( pos_left + tooltip.outerWidth() > $( window ).width() )
- {
- pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;
- tooltip.addClass( 'right' );
- }
- else
- tooltip.removeClass( 'right' );
-
- if( pos_top < 0 )
- {
- var pos_top = target.offset().top + target.outerHeight();
- tooltip.addClass( 'top' );
- }
- else
- tooltip.removeClass( 'top' );
-
- tooltip.css( { left: pos_left, top: pos_top } )
- .animate( { top: '+=10', opacity: 1 }, 50 );
- };
-
- init_tooltip();
- $( window ).resize( init_tooltip );
-
- var remove_tooltip = function()
- {
- tooltip.animate( { top: '-=10', opacity: 0 }, 50, function()
- {
- $( this ).remove();
- });
-
- target.attr( 'title', tip );
- };
-
- target.bind( 'mouseleave', remove_tooltip );
- tooltip.bind( 'click touchmove', remove_tooltip );
- $('body').bind( 'touchmove', remove_tooltip );
- });
+ target.attr( 'title', tip );
+ };
-});
\ No newline at end of file
+ target.bind( 'mouseleave', remove_tooltip );
+ tooltip.bind( 'click touchmove', remove_tooltip );
+ $( 'body' ).bind( 'touchmove', remove_tooltip );
+ }
+ );
+} );
diff --git a/js/ppom-validation.js b/js/ppom-validation.js
index 7b1ab208..126b8740 100644
--- a/js/ppom-validation.js
+++ b/js/ppom-validation.js
@@ -1,48 +1,52 @@
-"use strict"
-
-jQuery(function($){
-
-// console.log('loaded cart');
-
- var ppom_cart_validated = false;
-
- if($.blockUI !== undefined){
- $.blockUI.defaults.message = "";
- }
-
- $('form.cart').on('submit', function(e) {
-
- if( ppom_cart_validated ) return true;
-
- e.preventDefault();
-
- // Removing validation div
- $(".ppom-ajax-validation").remove();
- $('form.cart').block();
-
- var data = $(this).serialize();
- data = data+'&action=ppom_ajax_validation';
- data = data+'&ppom_nonce='+ppom_input_vars.ppom_validate_nonce;
-
- $.post(ppom_input_vars.ajaxurl, data, function( notices ) {
-
- $('form.cart').unblock();
- if( notices.status == 'error' ) {
-
- var show_notice = $('
')
- .addClass('woocommerce-notices-wrapper ppom-ajax-validation')
- .css('clear','both')
- .css('margin-top', '5px')
- .html(notices.message)
- .appendTo('form.cart');
-
- } else {
-
- ppom_cart_validated = true;
- $('button[name="add-to-cart"]').trigger('click');
- }
-
- });
-
- });
-});
\ No newline at end of file
+'use strict';
+
+/**
+ * AJAX product-form validation before WooCommerce submits add-to-cart.
+ *
+ * The server still owns validation. This script performs a preflight request so
+ * PPOM can show validation notices inline without losing the current form state.
+ */
+jQuery( function ( $ ) {
+ // console.log('loaded cart');
+
+ let ppom_cart_validated = false;
+
+ if ( $.blockUI !== undefined ) {
+ $.blockUI.defaults.message = '';
+ }
+
+ $( 'form.cart' ).on( 'submit', function ( e ) {
+ if ( ppom_cart_validated ) {
+ return true;
+ }
+
+ // Stop the first native submit, ask PHP to validate the serialized PPOM
+ // payload, then re-trigger add-to-cart only after the response is clean.
+ e.preventDefault();
+
+ // Removing validation div
+ $( '.ppom-ajax-validation' ).remove();
+ $( 'form.cart' ).block();
+
+ let data = $( this ).serialize();
+ data = data + '&action=ppom_ajax_validation';
+ data = data + '&ppom_nonce=' + ppom_input_vars.ppom_validate_nonce;
+
+ $.post( ppom_input_vars.ajaxurl, data, function ( notices ) {
+ $( 'form.cart' ).unblock();
+ if ( notices.status == 'error' ) {
+ const show_notice = $( '
' )
+ .addClass(
+ 'woocommerce-notices-wrapper ppom-ajax-validation'
+ )
+ .css( 'clear', 'both' )
+ .css( 'margin-top', '5px' )
+ .html( notices.message )
+ .appendTo( 'form.cart' );
+ } else {
+ ppom_cart_validated = true;
+ $( 'button[name="add-to-cart"]' ).trigger( 'click' );
+ }
+ } );
+ } );
+} );
diff --git a/js/ppom.inputs.js b/js/ppom.inputs.js
index 19d33869..6a364a9f 100644
--- a/js/ppom.inputs.js
+++ b/js/ppom.inputs.js
@@ -1,451 +1,590 @@
/**
- * PPOM input scripts
- **/
+ * Frontend field bootstrapper for PPOM inputs.
+ *
+ * PHP localizes each field definition into `ppom_input_vars.ppom_inputs`; this
+ * file hydrates those definitions into live widgets on the product page. It is
+ * the bridge between rendered markup and the other frontend subsystems such as
+ * pricing, conditional logic, and file uploads.
+ *
+ * @see ppom_update_option_prices in js/price/ppom-price.js
+ * @see ppom_update_option_prices in js/price/ppom-price-v2.js
+ * @see ppom_check_conditions in js/ppom-conditions-v2.js
+ * @see ppom_setup_file_upload_input in js/file-upload.js
+ */
-"use strict"
+/**
+ * Minimal shape of a localized PPOM field as consumed by the frontend scripts.
+ *
+ * PHP sends richer metadata, but these are the keys repeatedly used across the
+ * field bootstrapper, price engines, and condition/upload helpers.
+ *
+ * @typedef {{
+ * data_name: string,
+ * type: string,
+ * title?: string,
+ * field_type?: string,
+ * input_mask?: string,
+ * discount_type?: string,
+ * options?: Array
| string,
+ * images?: Array,
+ * audio?: Array
+ * }} PPOMLocalizedFieldMeta
+ */
+
+'use strict';
/* global ppom_input_vars */
-var ppom_bulkquantity_meta = [];
-var ppom_pricematrix_discount_type = '';
-
-jQuery(function($) {
-
- // Tooltip Init
- // $('.ppom-tooltip').powerTip({
- // placement: 'n',
- // smartPlacement: true,
- // mouseOnToPopup: true
- // });
-
- // Remove Emoji from text input
- // $('.ppom-wrapper').on('input keyup', 'input[type="text"]', function(e) {
-
- // const input_val = $(this).val();
- // const new_val = input_val.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, '');
- // $(this).val(new_val);
- // });
-
-
-
- // $('[data-toggle="tooltip"]').tooltip({container:'body', trigger:'hover'});
- var wc_cart_button = jQuery('form.cart').find('button[name="add-to-cart"]');
- var wc_cart_form = jQuery('form.cart');
-
- // Measure
- $('.ppom-measure').on('change', '.ppom-measure-unit', function(e) {
-
- e.preventDefault();
- // console.log($(this).text());
-
- $(this).closest('.ppom-measure').find('.ppom-measure-input').trigger('change');
- });
-
- // Disable ajax add to cart
- wc_cart_button.removeClass("ajax_add_to_cart")
-
- // Range slider updated
- $(document).on('ppom_range_slider_updated', function(e) {
-
- // console.log(wc_product_qty);
- $('form.cart').find('input[name="quantity"]').val(e.qty);
- // wc_product_qty.val(e.qty);
- ppom_update_option_prices();
- });
-
- // move modals to body bottom
- if ($('.ppom-modals').length > 0) {
- $('.ppom-modals').appendTo('body');
- }
-
- ppom_init_js_for_ppom_fields(ppom_input_vars.ppom_inputs);
-
-});
-
-// JS Init PPOM Inputs
-function ppom_init_js_for_ppom_fields(ppom_fields) {
- if( ppom_input_vars.sp_force_display_block === 'on' ){
- // Fixed the form button issue
- if (ppom_fields && ppom_fields.length > 0) {
- const css_type = jQuery('form.cart').css('display');
- if (css_type === 'flex') {
- jQuery('form.cart').addClass('ppom-flex-controller');
- }
- }
- }
-
- jQuery.each(ppom_fields, function(index, input) {
-
- var InputSelector = jQuery("#" + input.data_name);
-
- // Applying JS on inputs
- switch (input.type) {
-
- // masking
- case 'text':
- if (input.input_mask == undefined || input.input_mask == '') break;
- InputSelector.inputmask();
- if (input.type === 'text' &&
- input.input_mask !== '' &&
- input.use_regex !== 'on') {
- InputSelector.inputmask(input.input_mask);
- }
- break;
-
-
- // only allow numbers and periods in number fields
- case "number":
- InputSelector.on("keydown keyup keypress", function(event) {
- if (event.key === "Backspace" || event.key === "Delete" || event.key === "Tab" ||
- (event.ctrlKey === true && event.key === "a") ||
- (event.ctrlKey === true && event.key === "x") ||
- (event.ctrlKey === true && event.key === "Backspace") ||
- (event.which >= 48 && event.which <= 57) ||
- (event.which >= 96 && event.which <= 105) ||
- (event.key === "." && $(this).val().indexOf(".") <= 1)) {
- // think happy thoughts :-)
- }
- else { event.preventDefault(); }
- }).on("focus blur", function() {
- if (typeof InputSelector.attr("max") !== 'undefined') {
- if (parseFloat(InputSelector.val()) > parseFloat(InputSelector.attr("max"))) {
- InputSelector.val(InputSelector.attr("max"));
- }
- }
- });
- break;
-
- case 'date':
- if (input.jquery_dp === 'on') {
-
- InputSelector.datepicker("destroy");
- InputSelector.datepicker({
- changeMonth: true,
- changeYear: true,
- dateFormat: input.date_formats.ppom_js_stripSlashes(),
- yearRange: input.year_range
- });
-
- if( typeof input.min_date !== 'undefined' && input.min_date.trim().length > 0){
- var min_date = input.min_date.trim();
- InputSelector.datepicker('option', 'minDate', min_date);
- }
-
- if ( typeof input.past_dates !== 'undefined' ) {
- if( input.past_dates === 'on' ){
- InputSelector.datepicker('option', 'minDate', 0);
- }
- }
-
- if ( typeof input.max_date !== 'undefined' ) {
- var max_date = input.max_date.trim();
- InputSelector.datepicker('option', 'maxDate', max_date);
- }
-
- if ( typeof input.no_weekends !== 'undefined' && input.no_weekends === 'on' ) {
- InputSelector.datepicker('option', 'beforeShowDay', jQuery.datepicker.noWeekends);
- }
-
- if( typeof input.default_value !== 'undefined' && input.default_value.trim().length > 0 ){
- var default_date = input.default_value.trim();
- InputSelector.datepicker('option', 'defaultDate', default_date);
- InputSelector.datepicker('setDate', default_date);
- }
-
- if( typeof input.first_day_of_week !== 'undefined' && input.first_day_of_week.trim().length > 0 ){
- var first_day_of_week = input.first_day_of_week.trim();
- InputSelector.datepicker('option', 'firstDay', first_day_of_week);
- }
- }
- break;
-
- case 'image':
-
- var img_id = input.data_name;
- // Image Tooltip
- if (input.show_popup === 'on' && !ppom_input_vars.is_mobile) {
- jQuery('.ppom-zoom-' + img_id).imageTooltip();
- }
-
- document.querySelectorAll('.ppom-image-select').forEach( ( /** @type{HTMLDivElement} */ container ) => {
-
- /**
- * @type {HTMLInputElement[]} Holds the selected images.
- */
- const selectedImgs = [];
-
- /**
- * @type {HTMLInputElement[]} The available images to select.
- */
- const imgsInput = Array.from(container.querySelectorAll('.ppom-input.pre_upload_image input'));
-
- for ( const imgInput of imgsInput ) {
- const multiple = imgInput.dataset.allowMultiple || false;
- const maxImgSelection = parseInt( imgInput.dataset?.maxSelection ?? '-1' );
-
- imgInput.addEventListener('click', (e) => {
- if ( !e.target.checked ) {
- return;
- }
-
- if ( ! multiple ) {
- // Uncheck other inputs.
- imgsInput.filter( i => i !== imgInput).forEach( i => {
- i.checked = false;
- });
- } else if ( 0 < maxImgSelection ) {
- // Uncheck oldest checked image.
- selectedImgs.push( imgInput );
- while( selectedImgs.length > maxImgSelection ) {
- const oldestImgSelected = selectedImgs.shift();
- if ( oldestImgSelected ) {
- oldestImgSelected.checked = false;
- }
- }
- }
- });
- }
- });
-
- // Data Tooltip
- // $(".pre_upload_image").tooltip({container: 'body'});
- break;
- // date_range
- case 'daterange':
-
- InputSelector.daterangepicker({
- autoApply: (input.auto_apply == 'on') ? true : false,
- locale: {
- format: (input.date_formats !== '') ? input.date_formats : "YYYY-MM-DD"
- },
- showDropdowns: (input.drop_down == 'on') ? true : false,
- showWeekNumbers: (input.show_weeks == 'on') ? true : false,
- timePicker: (input.time_picker == 'on') ? true : false,
- timePickerIncrement: (input.tp_increment !== '') ? parseInt(input.tp_increment) : '',
- timePicker24Hour: (input.tp_24hours == 'on') ? true : false,
- timePickerSeconds: (input.tp_seconds == 'on') ? true : false,
- drops: (input.open_style !== '') ? input.open_style : 'down',
- startDate: (input.start_date == '') ? false : input.start_date,
- endDate: (input.end_date == '') ? false : input.end_date,
- minDate: (input.min_date == '') ? false : input.min_date,
- maxDate: (input.max_date == '') ? false : input.max_date,
- });
- break;
-
- // color: iris
- case 'color':
-
- InputSelector.css('background-color', input.default_color);
- var iris_options = {
- 'palettes': ppom_get_palette_setting(input),
- 'hide': input.show_onload == 'on' ? false : true,
- 'color': input.default_color,
- 'mode': input.palettes_mode != '' ? input.palettes_mode : 'hsv',
- 'width': input.palettes_width != '' ? input.palettes_width : 200,
- change: function(event, ui) {
-
- InputSelector.css('background-color', ui.color.toString());
- InputSelector.css('color', '#fff');
-
- // Getting Color Code for update price
- InputSelector.val(ui.color.toString())
- if (typeof ppomPrice != "undefined") {
-
- ppomPrice.init();
- }
- }
- }
-
-
- InputSelector.iris(iris_options);
-
- // Following script is added to close picker
- // when color is picked
- jQuery(document).click(function(e) {
- if (!jQuery(e.target).is(".ppom-input.color, .iris-picker, .iris-picker-inner")) {
- jQuery('.ppom-input.color').iris('hide');
- return e;
- }
- });
-
- jQuery('.ppom-input.color').click(function(event) {
- jQuery('.ppom-input.color').iris('hide');
- jQuery(this).iris('show');
- return event;
- });
- break;
-
- // Palettes
- case 'palettes':
-
- const max_selected = parseInt(input.max_selected) || undefined;
- if (!max_selected) break;
-
- jQuery(document).on('click', `.ppom-palettes-${input.data_name} input.ppom-input`, function(e) {
- if (jQuery(`.ppom-palettes-${input.data_name} input.ppom-input:checked`).length > max_selected) {
- alert(`You can only select a maximum of ${max_selected} ${input.title} colors`);
- e.preventDefault();
- // return false;
- }
- });
- break;
- // Bulk quantity
- case 'bulkquantity':
-
- setTimeout(function() { jQuery('.quantity.buttons_added').hide(); }, 50);
- jQuery('form.cart').find('.quantity').hide();
-
- // setting formatter
- /*if ($('form.cart').closest('div').find('.price').length > 0){
+// Runtime caches shared by bulk quantity and price-matrix widgets.
+const ppom_bulkquantity_meta = [];
+let ppom_pricematrix_discount_type = '';
+
+jQuery( function ( $ ) {
+ // Boot the product-form behaviors once WooCommerce and PPOM markup exist.
+ // Tooltip Init
+ // $('.ppom-tooltip').powerTip({
+ // placement: 'n',
+ // smartPlacement: true,
+ // mouseOnToPopup: true
+ // });
+
+ // Remove Emoji from text input
+ // $('.ppom-wrapper').on('input keyup', 'input[type="text"]', function(e) {
+
+ // const input_val = $(this).val();
+ // const new_val = input_val.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, '');
+ // $(this).val(new_val);
+ // });
+
+ // $('[data-toggle="tooltip"]').tooltip({container:'body', trigger:'hover'});
+ const wc_cart_button = jQuery( 'form.cart' ).find(
+ 'button[name="add-to-cart"]'
+ );
+ const wc_cart_form = jQuery( 'form.cart' );
+
+ // Measure
+ $( '.ppom-measure' ).on( 'change', '.ppom-measure-unit', function ( e ) {
+ e.preventDefault();
+ // console.log($(this).text());
+
+ $( this )
+ .closest( '.ppom-measure' )
+ .find( '.ppom-measure-input' )
+ .trigger( 'change' );
+ } );
+
+ // Disable ajax add to cart
+ wc_cart_button.removeClass( 'ajax_add_to_cart' );
+
+ // Range slider updated
+ $( document ).on( 'ppom_range_slider_updated', function ( e ) {
+ // console.log(wc_product_qty);
+ $( 'form.cart' ).find( 'input[name="quantity"]' ).val( e.qty );
+ // wc_product_qty.val(e.qty);
+ ppom_update_option_prices();
+ } );
+
+ // move modals to body bottom
+ if ( $( '.ppom-modals' ).length > 0 ) {
+ $( '.ppom-modals' ).appendTo( 'body' );
+ }
+
+ ppom_init_js_for_ppom_fields( ppom_input_vars.ppom_inputs );
+} );
+
+/**
+ * Hydrate each localized field definition with the JS behavior its type needs.
+ *
+ * @param {PPOMLocalizedFieldMeta[]} ppom_fields
+ * @return {void}
+ */
+function ppom_init_js_for_ppom_fields( ppom_fields ) {
+ if ( ppom_input_vars.sp_force_display_block === 'on' ) {
+ // Fixed the form button issue
+ if ( ppom_fields && ppom_fields.length > 0 ) {
+ const css_type = jQuery( 'form.cart' ).css( 'display' );
+ if ( css_type === 'flex' ) {
+ jQuery( 'form.cart' ).addClass( 'ppom-flex-controller' );
+ }
+ }
+ }
+
+ jQuery.each( ppom_fields, function ( index, input ) {
+ const InputSelector = jQuery( '#' + input.data_name );
+
+ // Applying JS on inputs
+ switch ( input.type ) {
+ // masking
+ case 'text':
+ if ( input.input_mask == undefined || input.input_mask == '' ) {
+ break;
+ }
+ InputSelector.inputmask();
+ if (
+ input.type === 'text' &&
+ input.input_mask !== '' &&
+ input.use_regex !== 'on'
+ ) {
+ InputSelector.inputmask( input.input_mask );
+ }
+ break;
+
+ // only allow numbers and periods in number fields
+ case 'number':
+ InputSelector.on( 'keydown keyup keypress', function ( event ) {
+ if (
+ event.key === 'Backspace' ||
+ event.key === 'Delete' ||
+ event.key === 'Tab' ||
+ ( event.ctrlKey === true && event.key === 'a' ) ||
+ ( event.ctrlKey === true && event.key === 'x' ) ||
+ ( event.ctrlKey === true &&
+ event.key === 'Backspace' ) ||
+ ( event.which >= 48 && event.which <= 57 ) ||
+ ( event.which >= 96 && event.which <= 105 ) ||
+ ( event.key === '.' &&
+ $( this ).val().indexOf( '.' ) <= 1 )
+ ) {
+ // think happy thoughts :-)
+ } else {
+ event.preventDefault();
+ }
+ } ).on( 'focus blur', function () {
+ if ( typeof InputSelector.attr( 'max' ) !== 'undefined' ) {
+ if (
+ parseFloat( InputSelector.val() ) >
+ parseFloat( InputSelector.attr( 'max' ) )
+ ) {
+ InputSelector.val( InputSelector.attr( 'max' ) );
+ }
+ }
+ } );
+ break;
+
+ case 'date':
+ if ( input.jquery_dp === 'on' ) {
+ InputSelector.datepicker( 'destroy' );
+ InputSelector.datepicker( {
+ changeMonth: true,
+ changeYear: true,
+ dateFormat: input.date_formats.ppom_js_stripSlashes(),
+ yearRange: input.year_range,
+ } );
+
+ if (
+ typeof input.min_date !== 'undefined' &&
+ input.min_date.trim().length > 0
+ ) {
+ const min_date = input.min_date.trim();
+ InputSelector.datepicker(
+ 'option',
+ 'minDate',
+ min_date
+ );
+ }
+
+ if ( typeof input.past_dates !== 'undefined' ) {
+ if ( input.past_dates === 'on' ) {
+ InputSelector.datepicker( 'option', 'minDate', 0 );
+ }
+ }
+
+ if ( typeof input.max_date !== 'undefined' ) {
+ const max_date = input.max_date.trim();
+ InputSelector.datepicker(
+ 'option',
+ 'maxDate',
+ max_date
+ );
+ }
+
+ if (
+ typeof input.no_weekends !== 'undefined' &&
+ input.no_weekends === 'on'
+ ) {
+ InputSelector.datepicker(
+ 'option',
+ 'beforeShowDay',
+ jQuery.datepicker.noWeekends
+ );
+ }
+
+ if (
+ typeof input.default_value !== 'undefined' &&
+ input.default_value.trim().length > 0
+ ) {
+ const default_date = input.default_value.trim();
+ InputSelector.datepicker(
+ 'option',
+ 'defaultDate',
+ default_date
+ );
+ InputSelector.datepicker( 'setDate', default_date );
+ }
+
+ if (
+ typeof input.first_day_of_week !== 'undefined' &&
+ input.first_day_of_week.trim().length > 0
+ ) {
+ const first_day_of_week =
+ input.first_day_of_week.trim();
+ InputSelector.datepicker(
+ 'option',
+ 'firstDay',
+ first_day_of_week
+ );
+ }
+ }
+ break;
+
+ case 'image':
+ var img_id = input.data_name;
+ // Image Tooltip
+ if (
+ input.show_popup === 'on' &&
+ ! ppom_input_vars.is_mobile
+ ) {
+ jQuery( '.ppom-zoom-' + img_id ).imageTooltip();
+ }
+
+ document
+ .querySelectorAll( '.ppom-image-select' )
+ .forEach( ( /** @type{HTMLDivElement} */ container ) => {
+ /**
+ * @type {HTMLInputElement[]} Holds the selected images.
+ */
+ const selectedImgs = [];
+
+ /**
+ * @type {HTMLInputElement[]} The available images to select.
+ */
+ const imgsInput = Array.from(
+ container.querySelectorAll(
+ '.ppom-input.pre_upload_image input'
+ )
+ );
+
+ for ( const imgInput of imgsInput ) {
+ const multiple =
+ imgInput.dataset.allowMultiple || false;
+ const maxImgSelection = parseInt(
+ imgInput.dataset?.maxSelection ?? '-1'
+ );
+
+ imgInput.addEventListener( 'click', ( e ) => {
+ if ( ! e.target.checked ) {
+ return;
+ }
+
+ if ( ! multiple ) {
+ // Uncheck other inputs.
+ imgsInput
+ .filter( ( i ) => i !== imgInput )
+ .forEach( ( i ) => {
+ i.checked = false;
+ } );
+ } else if ( 0 < maxImgSelection ) {
+ // Uncheck oldest checked image.
+ selectedImgs.push( imgInput );
+ while (
+ selectedImgs.length > maxImgSelection
+ ) {
+ const oldestImgSelected =
+ selectedImgs.shift();
+ if ( oldestImgSelected ) {
+ oldestImgSelected.checked = false;
+ }
+ }
+ }
+ } );
+ }
+ } );
+
+ // Data Tooltip
+ // $(".pre_upload_image").tooltip({container: 'body'});
+ break;
+ // date_range
+ case 'daterange':
+ InputSelector.daterangepicker( {
+ autoApply: input.auto_apply == 'on' ? true : false,
+ locale: {
+ format:
+ input.date_formats !== ''
+ ? input.date_formats
+ : 'YYYY-MM-DD',
+ },
+ showDropdowns: input.drop_down == 'on' ? true : false,
+ showWeekNumbers: input.show_weeks == 'on' ? true : false,
+ timePicker: input.time_picker == 'on' ? true : false,
+ timePickerIncrement:
+ input.tp_increment !== ''
+ ? parseInt( input.tp_increment )
+ : '',
+ timePicker24Hour: input.tp_24hours == 'on' ? true : false,
+ timePickerSeconds: input.tp_seconds == 'on' ? true : false,
+ drops: input.open_style !== '' ? input.open_style : 'down',
+ startDate:
+ input.start_date == '' ? false : input.start_date,
+ endDate: input.end_date == '' ? false : input.end_date,
+ minDate: input.min_date == '' ? false : input.min_date,
+ maxDate: input.max_date == '' ? false : input.max_date,
+ } );
+ break;
+
+ // color: iris
+ case 'color':
+ InputSelector.css( 'background-color', input.default_color );
+ var iris_options = {
+ palettes: ppom_get_palette_setting( input ),
+ hide: input.show_onload == 'on' ? false : true,
+ color: input.default_color,
+ mode:
+ input.palettes_mode != '' ? input.palettes_mode : 'hsv',
+ width:
+ input.palettes_width != '' ? input.palettes_width : 200,
+ change( event, ui ) {
+ InputSelector.css(
+ 'background-color',
+ ui.color.toString()
+ );
+ InputSelector.css( 'color', '#fff' );
+
+ // Getting Color Code for update price
+ InputSelector.val( ui.color.toString() );
+ if ( typeof ppomPrice !== 'undefined' ) {
+ ppomPrice.init();
+ }
+ },
+ };
+
+ InputSelector.iris( iris_options );
+
+ // Following script is added to close picker
+ // when color is picked
+ jQuery( document ).click( function ( e ) {
+ if (
+ ! jQuery( e.target ).is(
+ '.ppom-input.color, .iris-picker, .iris-picker-inner'
+ )
+ ) {
+ jQuery( '.ppom-input.color' ).iris( 'hide' );
+ return e;
+ }
+ } );
+
+ jQuery( '.ppom-input.color' ).click( function ( event ) {
+ jQuery( '.ppom-input.color' ).iris( 'hide' );
+ jQuery( this ).iris( 'show' );
+ return event;
+ } );
+ break;
+
+ // Palettes
+ case 'palettes':
+ const max_selected =
+ parseInt( input.max_selected ) || undefined;
+ if ( ! max_selected ) {
+ break;
+ }
+
+ jQuery( document ).on(
+ 'click',
+ `.ppom-palettes-${ input.data_name } input.ppom-input`,
+ function ( e ) {
+ if (
+ jQuery(
+ `.ppom-palettes-${ input.data_name } input.ppom-input:checked`
+ ).length > max_selected
+ ) {
+ alert(
+ `You can only select a maximum of ${ max_selected } ${ input.title } colors`
+ );
+ e.preventDefault();
+ // return false;
+ }
+ }
+ );
+ break;
+ // Bulk quantity
+ case 'bulkquantity':
+ setTimeout( function () {
+ jQuery( '.quantity.buttons_added' ).hide();
+ }, 50 );
+ jQuery( 'form.cart' ).find( '.quantity' ).hide();
+
+ // setting formatter
+ /*if ($('form.cart').closest('div').find('.price').length > 0){
wc_price_DOM = $('form.cart').closest('div').find('.price');
}*/
- ppom_bulkquantity_meta[input.data_name] = input.options;
-
- var min_quantity_value = jQuery(`.ppom-bulkquantity-qty.${input.data_name}`).val();
-
- // Starting value
- ppom_bulkquantity_price_manager(min_quantity_value, input.data_name);
- break;
-
- case 'pricematrix':
-
- ppom_pricematrix_discount_type = input.discount_type;
-
- if (input.show_slider === 'on' && jQuery('.ppom-range-slide').length > 0) {
- var slider = new Slider('.ppom-range-slide', {
- formatter: function(value) {
- jQuery.event.trigger({
- type: "ppom_range_slider_updated",
- qty: value,
- time: new Date()
- });
- return ppom_input_vars.text_quantity + ": " + value;
- }
- });
- }
-
- jQuery('.ppom-range-bs-slider').on('change', function(e) {
- jQuery.event.trigger({
- type: "ppom_range_slider_updated",
- qty: jQuery(this).val(),
- time: new Date()
- });
- });
- break;
- case 'quantities':
- var enable_plusminus = input.enable_plusminus;
- var field_selectot = jQuery('.ppom-input-' + input.data_name);
- if (enable_plusminus == 'on') {
- jQuery('.ppom-quantity', field_selectot).niceNumber();
- }
- break;
-
- }
-
-
- });
+ ppom_bulkquantity_meta[ input.data_name ] = input.options;
+
+ var min_quantity_value = jQuery(
+ `.ppom-bulkquantity-qty.${ input.data_name }`
+ ).val();
+
+ // Starting value
+ ppom_bulkquantity_price_manager(
+ min_quantity_value,
+ input.data_name
+ );
+ break;
+
+ case 'pricematrix':
+ ppom_pricematrix_discount_type = input.discount_type;
+
+ if (
+ input.show_slider === 'on' &&
+ jQuery( '.ppom-range-slide' ).length > 0
+ ) {
+ const slider = new Slider( '.ppom-range-slide', {
+ formatter( value ) {
+ jQuery.event.trigger( {
+ type: 'ppom_range_slider_updated',
+ qty: value,
+ time: new Date(),
+ } );
+ return ppom_input_vars.text_quantity + ': ' + value;
+ },
+ } );
+ }
+
+ jQuery( '.ppom-range-bs-slider' ).on( 'change', function ( e ) {
+ jQuery.event.trigger( {
+ type: 'ppom_range_slider_updated',
+ qty: jQuery( this ).val(),
+ time: new Date(),
+ } );
+ } );
+ break;
+ case 'quantities':
+ var enable_plusminus = input.enable_plusminus;
+ var field_selectot = jQuery( '.ppom-input-' + input.data_name );
+ if ( enable_plusminus == 'on' ) {
+ jQuery( '.ppom-quantity', field_selectot ).niceNumber();
+ }
+ break;
+ }
+ } );
}
-
-
-function ppom_get_palette_setting(input) {
-
- var palettes_setting = false;
- // first check if palettes is on
- if (input.show_palettes === 'on') {
- palettes_setting = true;
- }
- if (palettes_setting && input.palettes_colors !== '') {
- palettes_setting = input.palettes_colors.split(',');
- }
-
- return palettes_setting;
+function ppom_get_palette_setting( input ) {
+ let palettes_setting = false;
+ // first check if palettes is on
+ if ( input.show_palettes === 'on' ) {
+ palettes_setting = true;
+ }
+ if ( palettes_setting && input.palettes_colors !== '' ) {
+ palettes_setting = input.palettes_colors.split( ',' );
+ }
+
+ return palettes_setting;
}
-function ppom_get_field_type_by_id(field_id) {
-
- var field_type = '';
- jQuery.each(ppom_input_vars.ppom_inputs, function(i, field) {
-
- if (field.data_name === field_id) {
- field_type = field.field_type;
- return;
- }
- });
-
- return field_type;
+/**
+ * Shared field lookup used by pricing, conditions, and file upload helpers.
+ *
+ * @param {string} field_id
+ * @return {string}
+ */
+function ppom_get_field_type_by_id( field_id ) {
+ let field_type = '';
+ jQuery.each( ppom_input_vars.ppom_inputs, function ( i, field ) {
+ if ( field.data_name === field_id ) {
+ field_type = field.field_type;
+ }
+ } );
+
+ return field_type;
}
-// Get all field meta by id
-function ppom_get_field_meta_by_id(field_id) {
-
- var field_meta = '';
- jQuery.each(ppom_input_vars.ppom_inputs, function(i, field) {
-
- if (field.data_name === field_id) {
- field_meta = field;
- return;
- }
- });
-
- return field_meta;
+/**
+ * Return the full localized field definition for a given data_name.
+ *
+ * @param {string} field_id
+ * @return {PPOMLocalizedFieldMeta|string}
+ */
+function ppom_get_field_meta_by_id( field_id ) {
+ let field_meta = '';
+ jQuery.each( ppom_input_vars.ppom_inputs, function ( i, field ) {
+ if ( field.data_name === field_id ) {
+ field_meta = field;
+ }
+ } );
+
+ return field_meta;
}
-function ppom_get_field_meta_by_type(type) {
-
- var field_meta = Array();
- jQuery.each(ppom_input_vars.ppom_inputs, function(i, field) {
-
- if (field.type === type) {
- field_meta.push(field);
- return;
- }
- });
-
- return field_meta;
+/**
+ * Some flows need all fields of a given type, for example cropper/file setup.
+ *
+ * @param {string} type
+ * @return {PPOMLocalizedFieldMeta[]}
+ */
+function ppom_get_field_meta_by_type( type ) {
+ const field_meta = Array();
+ jQuery.each( ppom_input_vars.ppom_inputs, function ( i, field ) {
+ if ( field.type === type ) {
+ field_meta.push( field );
+ }
+ } );
+
+ return field_meta;
}
-function ppom_bq_qty_changed(qty, data_name, context) {
- if( context === 'range' ) {
- // update the quantity too.
- jQuery(`.ppom-bulkquantity-qty.${data_name}`).val(qty);
- }else if( context === 'number' ) {
- // update slider too.
- jQuery(`input[type=range].${data_name}`).val(qty);
- }
-
- ppom_bulkquantity_price_manager(qty, data_name)
+// Keep the range and number UIs for bulkquantity in sync before recalculating.
+function ppom_bq_qty_changed( qty, data_name, context ) {
+ if ( context === 'range' ) {
+ // update the quantity too.
+ jQuery( `.ppom-bulkquantity-qty.${ data_name }` ).val( qty );
+ } else if ( context === 'number' ) {
+ // update slider too.
+ jQuery( `input[type=range].${ data_name }` ).val( qty );
+ }
+
+ ppom_bulkquantity_price_manager( qty, data_name );
}
-function ppom_bulkquantity_price_manager(quantity, data_name) {
- var ppom_base_price = 0;
- jQuery.each(JSON.parse(ppom_bulkquantity_meta[data_name]), function(idx, obj) {
-
- var qty_range = obj['Quantity Range'].split('-');
- var qty_range_from = qty_range[0];
- var qty_range_to = qty_range[1];
-
- if (quantity >= parseInt(qty_range_from) && quantity <= parseInt(qty_range_to)) {
-
- // Setting Initial Price to 0 and taking base price
- ppom_base_price = (obj['Base Price'] == undefined || obj['Base Price'] == '') ? 0 : obj['Base Price'];
- jQuery(`.ppom-bulkquantity-options.${data_name} option:selected`).attr('data-baseprice', ppom_base_price);
-
- // Taking selected variation price
- var variation = jQuery('.ppom-bulkquantity-options').val();
- var var_price = obj[variation];
- jQuery(`.ppom-bulkquantity-options.${data_name} option:selected`).attr('data-price', var_price);
-
- return false;
- }
-
- });
-
- ppom_update_option_prices();
+// Resolve the active bulkquantity row into price/base-price attributes expected
+// by the legacy and modern price preview engines.
+function ppom_bulkquantity_price_manager( quantity, data_name ) {
+ let ppom_base_price = 0;
+ jQuery.each(
+ JSON.parse( ppom_bulkquantity_meta[ data_name ] ),
+ function ( idx, obj ) {
+ const qty_range = obj[ 'Quantity Range' ].split( '-' );
+ const qty_range_from = qty_range[ 0 ];
+ const qty_range_to = qty_range[ 1 ];
+
+ if (
+ quantity >= parseInt( qty_range_from ) &&
+ quantity <= parseInt( qty_range_to )
+ ) {
+ // Setting Initial Price to 0 and taking base price
+ ppom_base_price =
+ obj[ 'Base Price' ] == undefined ||
+ obj[ 'Base Price' ] == ''
+ ? 0
+ : obj[ 'Base Price' ];
+ jQuery(
+ `.ppom-bulkquantity-options.${ data_name } option:selected`
+ ).attr( 'data-baseprice', ppom_base_price );
+
+ // Taking selected variation price
+ const variation = jQuery( '.ppom-bulkquantity-options' ).val();
+ const var_price = obj[ variation ];
+ jQuery(
+ `.ppom-bulkquantity-options.${ data_name } option:selected`
+ ).attr( 'data-price', var_price );
+
+ return false;
+ }
+ }
+ );
+
+ ppom_update_option_prices();
}
-
-String.prototype.ppom_js_stripSlashes = function() {
- return this.replace(/\\(.)/mg, "$1");
-}
+String.prototype.ppom_js_stripSlashes = function () {
+ return this.replace( /\\(.)/gm, '$1' );
+};
diff --git a/js/price/ppom-price-v2.js b/js/price/ppom-price-v2.js
index a3d31776..f1da33bc 100644
--- a/js/price/ppom-price-v2.js
+++ b/js/price/ppom-price-v2.js
@@ -1,674 +1,721 @@
/**
- import $ from "jquery";
-**/
+ * Modern PPOM price preview engine.
+ *
+ * This script converts localized field metadata plus the current DOM state into
+ * normalized price objects and rebuilds the live price table shown on the
+ * product form. Cart and checkout totals are still recalculated server-side;
+ * this layer exists to keep the storefront preview in sync.
+ *
+ * @see js/price/ppom-price.js
+ * @see ppom_init_js_for_ppom_fields in js/ppom.inputs.js
+ */
const $ = jQuery;
+/**
+ * Minimal field metadata used by the modern price engine.
+ *
+ * @typedef {{
+ * data_name: string,
+ * type: string,
+ * title?: string,
+ * price?: string,
+ * file_cost?: string,
+ * onetime?: string,
+ * default_price?: string,
+ * discount?: string,
+ * options?: Array,
+ * images?: Array,
+ * audio?: Array
+ * }} PPOMPriceFieldMeta
+ */
/**
- NMedia Helper Object
-**/
+ * Shared helpers for formatting, quantity lookups, and field metadata access.
+ *
+ * This object keeps the newer class-based price engine compatible with the
+ * rest of the older PPOM frontend code that still calls global helpers.
+ */
const nmh = {
-
- show_console: true,
- working_dom: 'loading-data',
- decimal_separator: ppom_input_vars.wc_decimal_sep,
- no_of_decimal: ppom_input_vars.wc_no_decimal,
- thousand_sep: ppom_input_vars.wc_thousand_sep,
- fields_meta: ppom_input_vars.field_meta,
- input_selector: $('.ppom-input'),
- dom_product_qty: $('form.cart').find('input[name="quantity"]'),
-
- l: function(a, b) {
- this.show_console && console.log(a, b);
- },
-
- strip_slashes: function(s) {
- if (s !== undefined) { return s.replace(/\\/g, ''); }
- },
-
- working: function(m) {
- $("#" + this.working_dom).html(m);
- },
-
- percentage: function(num, per) {
- // console.log(per);
- per = per.replace('%', '');
- return (Number(num) / 100) * per;
- },
-
- get_product_qty: function() {
-
- const quantity = this.dom_product_qty.val() || 0;
- return parseInt(quantity);
- },
-
- get_formatted_price: function(price) {
-
- const is_positive = price > 0;
- let price_cloner = $("#ppom-price-cloner").clone();
-
- // adding separator and decimal place
- let formatted_price = Math.abs(parseFloat(price));
- formatted_price = formatted_price.toFixed(this.no_of_decimal);
- formatted_price = formatted_price.toString().replace('.', this.decimal_separator);
- formatted_price = this.add_thousand_separator(formatted_price);
-
- price_cloner.find('.ppom-price').html(formatted_price);
-
- // Adding (-) symbol
- if (!is_positive) price_cloner.prepend('-');
-
- return $(price_cloner).html();
- },
-
- add_thousand_separator: function(p) {
-
- var rx = /(\d+)(\d{3})/;
-
- return String(p).replace(/^\d+/, function(w) {
- if (this.thousand_sep) {
- while (rx.test(w)) {
- w = w.replace(rx, '$1' + this.thousand_sep + '$2');
- }
- }
- return w;
- });
- },
-
- error: function(field_id) {
- let t = true;
-
- if (field_id === undefined) {
- this.l('Input dataname not found');
- t = false;
- }
- return t;
- },
-
- ppom_get_quantity: function(option) {
-
- let qty = this.get_product_qty();
-
- switch (option.apply) {
- case 'fixed':
- qty = 1;
- break;
- }
- return qty;
- },
+ show_console: true,
+ working_dom: 'loading-data',
+ decimal_separator: ppom_input_vars.wc_decimal_sep,
+ no_of_decimal: ppom_input_vars.wc_no_decimal,
+ thousand_sep: ppom_input_vars.wc_thousand_sep,
+ fields_meta: ppom_input_vars.field_meta,
+ input_selector: $( '.ppom-input' ),
+ dom_product_qty: $( 'form.cart' ).find( 'input[name="quantity"]' ),
+
+ l( a, b ) {
+ this.show_console && console.log( a, b );
+ },
+
+ strip_slashes( s ) {
+ if ( s !== undefined ) {
+ return s.replace( /\\/g, '' );
+ }
+ },
+
+ working( m ) {
+ $( '#' + this.working_dom ).html( m );
+ },
+
+ percentage( num, per ) {
+ // console.log(per);
+ per = per.replace( '%', '' );
+ return ( Number( num ) / 100 ) * per;
+ },
+
+ get_product_qty() {
+ const quantity = this.dom_product_qty.val() || 0;
+ return parseInt( quantity );
+ },
+
+ get_formatted_price( price ) {
+ const is_positive = price > 0;
+ const price_cloner = $( '#ppom-price-cloner' ).clone();
+
+ // adding separator and decimal place
+ let formatted_price = Math.abs( parseFloat( price ) );
+ formatted_price = formatted_price.toFixed( this.no_of_decimal );
+ formatted_price = formatted_price
+ .toString()
+ .replace( '.', this.decimal_separator );
+ formatted_price = this.add_thousand_separator( formatted_price );
+
+ price_cloner.find( '.ppom-price' ).html( formatted_price );
+
+ // Adding (-) symbol
+ if ( ! is_positive ) {
+ price_cloner.prepend( '-' );
+ }
+
+ return $( price_cloner ).html();
+ },
+
+ add_thousand_separator( p ) {
+ const rx = /(\d+)(\d{3})/;
+
+ return String( p ).replace( /^\d+/, function ( w ) {
+ if ( this.thousand_sep ) {
+ while ( rx.test( w ) ) {
+ w = w.replace( rx, '$1' + this.thousand_sep + '$2' );
+ }
+ }
+ return w;
+ } );
+ },
+
+ error( field_id ) {
+ let t = true;
+
+ if ( field_id === undefined ) {
+ this.l( 'Input dataname not found' );
+ t = false;
+ }
+ return t;
+ },
+
+ ppom_get_quantity( option ) {
+ let qty = this.get_product_qty();
+
+ switch ( option.apply ) {
+ case 'fixed':
+ qty = 1;
+ break;
+ }
+ return qty;
+ },
};
-
/**
- DOM Manipulation
-**/
+ * Small DOM adapter used to normalize how the price engine reads field values.
+ */
const ppom_input = {
- dom: {},
-
- init: function(dom) {
- this.dom = dom;
- return this;
- },
-
- dataname: function() {
-
- let Field_id = $(this.dom).attr('data-data_name');
-
- if (Field_id == undefined) {
- Field_id = $(this.dom).attr('data-dataname');
- }
-
- return Field_id;
- },
-
- type: function() {
- return this.dom.type;
- },
-
- value: function() {
- let v = $(this.dom).val();
- if (this.type() === 'checkbox' || this.type() === 'radio') {
- v = $(this.dom).is(':checked') ? v : '';
- }
- return v;
- },
+ dom: {},
+
+ init( dom ) {
+ this.dom = dom;
+ return this;
+ },
+
+ dataname() {
+ let Field_id = $( this.dom ).attr( 'data-data_name' );
+
+ if ( Field_id == undefined ) {
+ Field_id = $( this.dom ).attr( 'data-dataname' );
+ }
+
+ return Field_id;
+ },
+
+ type() {
+ return this.dom.type;
+ },
+
+ value() {
+ let v = $( this.dom ).val();
+ if ( this.type() === 'checkbox' || this.type() === 'radio' ) {
+ v = $( this.dom ).is( ':checked' ) ? v : '';
+ }
+ return v;
+ },
};
-
/**
- Build OptionPrice Class
-**/
+ * Canonical client-side representation of a priced PPOM field selection.
+ *
+ * Specialized field types inherit from this class so the price table can treat
+ * them uniformly regardless of whether the source was a checkbox, upload,
+ * quantity row, or price matrix.
+ */
class PPOM_Price_Class {
-
- constructor(field, value) {
-
- this.field = field;
-
- //parse for image/audio input
- this.value = this.get_value(value);
-
- // Object Destructruing
- const {
- type: ppom_type,
- title: price_label,
- data_name,
- } = this.field;
-
- this.dataname = data_name;
- this.type = ppom_type;
- this.label = price_label;
- this.label_val = this.get_label_value();
- this.options = this.get_options();
- this.id = this.get_id();
- this.has_percent = this.get_has_percent();
- this.price = Number(this.get_price());
- this.formatted_price = nmh.get_formatted_price(this.price);
- this.apply = this.get_apply();
- this.is_positive = this.price > 0 ? true : false;
-
- //console.log('PPOM Fields', this.field);
- }
-
-
- get_id() {
-
- let id = this.dataname;
-
- if (this.options && this.options.length > 0) {
-
- const option_found = this.options.find(o => o.price !== 0 && nmh.strip_slashes(o.title) === this.value);
-
-
- if (option_found) {
- id = this.dataname + '_' + option_found.id;
- }
- }
- return id;
- }
-
- get_label_value() {
-
- let value_label = '';
-
- switch (this.type) {
- case 'file':
- case 'cropper':
- value_label = this.label;
- break;
-
- // case 'pricematrix':
-
- // //console.log('pricematrix label', this.value);
- // $.each(this.value, (range, meta) => {
- // value_label = `${this.label} [${meta.label}]`;
- // });
- // break;
-
- default:
- value_label = `${this.label} [${this.value}]`;
- }
-
- return value_label;
- }
-
- get_price() {
-
- const price_key = this.type == 'cropper' || this.type == 'file' ? 'file_cost' : 'price';
-
- let p = this.field[price_key] || '';
- // If Field Have Options
- if (this.options && this.options.length > 0) {
-
- const priced = this.options.find(o => o.price !== '' && (nmh.strip_slashes(o.title) === this.value || nmh.strip_slashes(o.id) === this.value));
- if (priced) {
-
- if (this.has_percent) {
- p = nmh.percentage(ppomPrice.base_price, priced.price);
- }
- else {
- p = priced.price;
- }
- }
- }
- return p;
- }
-
- get_apply() {
- const { onetime } = this.field;
- return onetime == 'on' ? 'fixed' : 'variable';
- }
-
- get_value(value) {
-
- const { type } = this.field;
-
- switch (type) {
- case 'audio':
- value = JSON.parse(value);
- value = value.title;
- break;
- case 'image':
- value = JSON.parse(value);
- value = value.image_id;
- break;
- case 'pricematrix':
- value = JSON.parse(value);
- break;
- }
- return value;
- }
-
- get_options() {
-
- const { options, images, audio } = this.field;
-
- let field_options = options || images || audio || [];
- if (field_options) {
- // set option.title field for title
- field_options.map(fo => fo.title = fo.option || fo.title);
-
- }
-
- return field_options;
- }
-
- get_has_percent() {
- const p = this.get_price();
- return typeof p == "string" && p.includes("%");
- }
+ /**
+ * @param {PPOMPriceFieldMeta} field
+ * @param {string} value
+ */
+ constructor( field, value ) {
+ this.field = field;
+
+ //parse for image/audio input
+ this.value = this.get_value( value );
+
+ // Object Destructruing
+ const { type: ppom_type, title: price_label, data_name } = this.field;
+
+ this.dataname = data_name;
+ this.type = ppom_type;
+ this.label = price_label;
+ this.label_val = this.get_label_value();
+ this.options = this.get_options();
+ this.id = this.get_id();
+ this.has_percent = this.get_has_percent();
+ this.price = Number( this.get_price() );
+ this.formatted_price = nmh.get_formatted_price( this.price );
+ this.apply = this.get_apply();
+ this.is_positive = this.price > 0 ? true : false;
+
+ //console.log('PPOM Fields', this.field);
+ }
+
+ get_id() {
+ let id = this.dataname;
+
+ if ( this.options && this.options.length > 0 ) {
+ const option_found = this.options.find(
+ ( o ) =>
+ o.price !== 0 && nmh.strip_slashes( o.title ) === this.value
+ );
+
+ if ( option_found ) {
+ id = this.dataname + '_' + option_found.id;
+ }
+ }
+ return id;
+ }
+
+ get_label_value() {
+ let value_label = '';
+
+ switch ( this.type ) {
+ case 'file':
+ case 'cropper':
+ value_label = this.label;
+ break;
+
+ // case 'pricematrix':
+
+ // //console.log('pricematrix label', this.value);
+ // $.each(this.value, (range, meta) => {
+ // value_label = `${this.label} [${meta.label}]`;
+ // });
+ // break;
+
+ default:
+ value_label = `${ this.label } [${ this.value }]`;
+ }
+
+ return value_label;
+ }
+
+ get_price() {
+ const price_key =
+ this.type == 'cropper' || this.type == 'file'
+ ? 'file_cost'
+ : 'price';
+
+ let p = this.field[ price_key ] || '';
+ // If Field Have Options
+ if ( this.options && this.options.length > 0 ) {
+ const priced = this.options.find(
+ ( o ) =>
+ o.price !== '' &&
+ ( nmh.strip_slashes( o.title ) === this.value ||
+ nmh.strip_slashes( o.id ) === this.value )
+ );
+ if ( priced ) {
+ if ( this.has_percent ) {
+ p = nmh.percentage( ppomPrice.base_price, priced.price );
+ } else {
+ p = priced.price;
+ }
+ }
+ }
+ return p;
+ }
+
+ get_apply() {
+ const { onetime } = this.field;
+ return onetime == 'on' ? 'fixed' : 'variable';
+ }
+
+ get_value( value ) {
+ const { type } = this.field;
+
+ switch ( type ) {
+ case 'audio':
+ value = JSON.parse( value );
+ value = value.title;
+ break;
+ case 'image':
+ value = JSON.parse( value );
+ value = value.image_id;
+ break;
+ case 'pricematrix':
+ value = JSON.parse( value );
+ break;
+ }
+ return value;
+ }
+
+ get_options() {
+ const { options, images, audio } = this.field;
+
+ const field_options = options || images || audio || [];
+ if ( field_options ) {
+ // set option.title field for title
+ field_options.map( ( fo ) => ( fo.title = fo.option || fo.title ) );
+ }
+
+ return field_options;
+ }
+
+ get_has_percent() {
+ const p = this.get_price();
+ return typeof p === 'string' && p.includes( '%' );
+ }
}
-
/**
- Render price table
-**/
+ * Renders the live option-price table that sits under the product form.
+ *
+ * The renderer is intentionally presentation-focused; price discovery happens
+ * in `ppomPrice`, then this object decides how to display the resulting rows.
+ */
const PPOM_Price_Table = {
-
- price_container: $('#ppom-price-container'),
- show_value_in_label: true,
- base_price_label: ppom_input_vars.product_base_label,
- total_price_label: ppom_input_vars.total_without_fixed_label,
- total_price: 0,
- row_index: 0,
-
- init: function(ppom_prices) {
-
- //reset price table
- this.price_container.html('');
- this.total_price = 0;
- this.row_index = 0;
- this.show_base_price = this.enable_base_price();
-
- // init table
- this.table_container = $('').addClass('table table-striped').appendTo(this.price_container).css('width', '100%');
-
- // console.log('Price Table', ppom_prices);
-
- ppom_prices.map((option, i) => {
-
- const row_class = `ppom-${option.type}-${option.apply}`;
-
- const p_row = $(' ')
- .addClass('ppom-option-option-list')
- .addClass(option.dataname)
- .addClass(row_class)
- .attr('data-option_id', option.id)
- .attr('data-data_name', option.dataname)
- .hide()
- .appendTo(this.table_container);
-
- let quantitify = true;
- switch (option.apply) {
- case 'fixed':
- quantitify = false;
- break;
- }
-
- const context = option.has_discount ? 'option_discount' : 'option_price';
-
- const price_calculate = this.price_with_product_qty(option, context);
-
- const label = this.show_value_in_label ? this.label_val(option, quantitify) : this.simple_label(option, quantitify);
-
- this.add_row(label, nmh.get_formatted_price(price_calculate), p_row);
-
- this.total_price += price_calculate;
-
- $.event.trigger({
- type: "ppom_option_price_added",
- option: option,
- price: price_calculate,
- time: new Date()
- });
- });
-
- // Base/Product Price
- if (this.show_base_price) {
-
- const row = $(' ')
- .addClass('ppom-product-price')
- .addClass('ppom-product-base-price') // legacy
- .hide()
- .appendTo(this.table_container);
-
- const price = nmh.get_formatted_price(ppomPrice.base_price);
- const price_calculate = this.price_with_product_qty(ppomPrice, 'product_price');
- const label = `${this.base_price_label} ${price} x ${nmh.get_product_qty()}`;
-
- // const label = this.base_price_label;
- this.add_row(label, nmh.get_formatted_price(price_calculate), row);
-
- this.total_price += Number(price_calculate);
- }
-
- // TOTAL
- const row_total = $(' ')
- .addClass('ppom-total-price')
- .addClass('ppom-total-without-fixed') // legacy
- .hide()
- .appendTo(this.table_container);
-
- const label = `${this.total_price_label} `;
- const price = `${nmh.get_formatted_price(this.total_price)} `;
- this.add_row(label, price, row_total);
- },
-
- add_row: function(label, price, row) {
-
- const p_label = $(' ')
- .html(label)
- .addClass('ppom-label-item')
- .appendTo(row);
-
- const p_price = $(' ')
- .html(price)
- .addClass('ppom-price-item')
- .appendTo(row);
-
- // Animate
- row.delay(this.row_index * 100).show();
- this.row_index++;
- },
-
- price_with_product_qty: function(option, context) {
-
- let price = 0;
- switch (context) {
- case 'option_price':
- price = option.price * nmh.ppom_get_quantity(option);
- break;
-
- case 'option_discount':
- price = option.price * nmh.ppom_get_quantity(option);
- break;
-
- case 'product_price':
- price = option.base_price * nmh.ppom_get_quantity(option);
- break;
- }
-
- return price;
- },
-
- label_val: function(option, quantitify) {
- //console.log('price formated', option.formatted_price);
- let label = `${option.label_val} ${option.formatted_price} x ${nmh.get_product_qty()}`;
-
- if (!quantitify) { label = option.label_val; }
-
- return label;
- },
-
- simple_label: function(option, quantitify) {
-
- let label = `${option.label} ${option.formatted_price} x ${nmh.get_product_qty()}`;
-
- if (!quantitify) { label = option.label; }
-
- return label;
- },
-
- enable_base_price: function() {
-
- let is_base_price = true;
-
- nmh.fields_meta.map((meta, index) => {
- // console.log(meta);
- if (meta.type == "pricematrix" && meta.discount !== 'on') {
- is_base_price = false;
- }
- });
- return is_base_price;
- },
+ price_container: $( '#ppom-price-container' ),
+ show_value_in_label: true,
+ base_price_label: ppom_input_vars.product_base_label,
+ total_price_label: ppom_input_vars.total_without_fixed_label,
+ total_price: 0,
+ row_index: 0,
+
+ init( ppom_prices ) {
+ //reset price table
+ this.price_container.html( '' );
+ this.total_price = 0;
+ this.row_index = 0;
+ this.show_base_price = this.enable_base_price();
+
+ // init table
+ this.table_container = $( '' )
+ .addClass( 'table table-striped' )
+ .appendTo( this.price_container )
+ .css( 'width', '100%' );
+
+ // console.log('Price Table', ppom_prices);
+
+ ppom_prices.map( ( option, i ) => {
+ const row_class = `ppom-${ option.type }-${ option.apply }`;
+
+ const p_row = $( ' ' )
+ .addClass( 'ppom-option-option-list' )
+ .addClass( option.dataname )
+ .addClass( row_class )
+ .attr( 'data-option_id', option.id )
+ .attr( 'data-data_name', option.dataname )
+ .hide()
+ .appendTo( this.table_container );
+
+ let quantitify = true;
+ switch ( option.apply ) {
+ case 'fixed':
+ quantitify = false;
+ break;
+ }
+
+ const context = option.has_discount
+ ? 'option_discount'
+ : 'option_price';
+
+ const price_calculate = this.price_with_product_qty(
+ option,
+ context
+ );
+
+ const label = this.show_value_in_label
+ ? this.label_val( option, quantitify )
+ : this.simple_label( option, quantitify );
+
+ this.add_row(
+ label,
+ nmh.get_formatted_price( price_calculate ),
+ p_row
+ );
+
+ this.total_price += price_calculate;
+
+ $.event.trigger( {
+ type: 'ppom_option_price_added',
+ option,
+ price: price_calculate,
+ time: new Date(),
+ } );
+ } );
+
+ // Base/Product Price
+ if ( this.show_base_price ) {
+ const row = $( ' ' )
+ .addClass( 'ppom-product-price' )
+ .addClass( 'ppom-product-base-price' ) // legacy
+ .hide()
+ .appendTo( this.table_container );
+
+ const price = nmh.get_formatted_price( ppomPrice.base_price );
+ const price_calculate = this.price_with_product_qty(
+ ppomPrice,
+ 'product_price'
+ );
+ const label = `${
+ this.base_price_label
+ } ${ price } x ${ nmh.get_product_qty() }`;
+
+ // const label = this.base_price_label;
+ this.add_row(
+ label,
+ nmh.get_formatted_price( price_calculate ),
+ row
+ );
+
+ this.total_price += Number( price_calculate );
+ }
+
+ // TOTAL
+ const row_total = $( ' ' )
+ .addClass( 'ppom-total-price' )
+ .addClass( 'ppom-total-without-fixed' ) // legacy
+ .hide()
+ .appendTo( this.table_container );
+
+ const label = `${ this.total_price_label } `;
+ const price = `${ nmh.get_formatted_price(
+ this.total_price
+ ) } `;
+ this.add_row( label, price, row_total );
+ },
+
+ add_row( label, price, row ) {
+ const p_label = $( ' ' )
+ .html( label )
+ .addClass( 'ppom-label-item' )
+ .appendTo( row );
+
+ const p_price = $( ' ' )
+ .html( price )
+ .addClass( 'ppom-price-item' )
+ .appendTo( row );
+
+ // Animate
+ row.delay( this.row_index * 100 ).show();
+ this.row_index++;
+ },
+
+ price_with_product_qty( option, context ) {
+ let price = 0;
+ switch ( context ) {
+ case 'option_price':
+ price = option.price * nmh.ppom_get_quantity( option );
+ break;
+
+ case 'option_discount':
+ price = option.price * nmh.ppom_get_quantity( option );
+ break;
+
+ case 'product_price':
+ price = option.base_price * nmh.ppom_get_quantity( option );
+ break;
+ }
+
+ return price;
+ },
+
+ label_val( option, quantitify ) {
+ //console.log('price formated', option.formatted_price);
+ let label = `${ option.label_val } ${
+ option.formatted_price
+ } x ${ nmh.get_product_qty() }`;
+
+ if ( ! quantitify ) {
+ label = option.label_val;
+ }
+
+ return label;
+ },
+
+ simple_label( option, quantitify ) {
+ let label = `${ option.label } ${
+ option.formatted_price
+ } x ${ nmh.get_product_qty() }`;
+
+ if ( ! quantitify ) {
+ label = option.label;
+ }
+
+ return label;
+ },
+
+ enable_base_price() {
+ let is_base_price = true;
+
+ nmh.fields_meta.map( ( meta, index ) => {
+ // console.log(meta);
+ if ( meta.type == 'pricematrix' && meta.discount !== 'on' ) {
+ is_base_price = false;
+ }
+ } );
+ return is_base_price;
+ },
};
-
/**
- Fields Price Handler Object
-**/
+ * Collects the active field selections and turns them into priced objects.
+ *
+ * Every relevant change event funnels back here so the price preview, hidden
+ * WooCommerce payload, and extension hooks stay consistent.
+ */
const ppomPrice = {
-
- meta: [],
- field_prices: [],
- ppom_type: '', //ppom input type
-
- init: function() {
-
- this.base_price = this.get_base_price();
-
- // reset field_prices
- this.field_prices = [];
-
- let list = document.querySelectorAll(".ppom-input, .ppom-quantity");
-
- //convert to array
- list = Array.from(list);
-
- list.map((elem, index) => {
-
- // binding events
- const input = ppom_input.init(elem);
-
- this.set_ppom_type(input.dataname());
-
- const has_value = input.value() || false;
- const field_meta = this.meta.find(m => m.data_name === input.dataname());
-
- if (has_value && field_meta) {
-
- let ppom_price = new PPOM_Price_Class(field_meta, input.value());
-
- /**
- ** Filter/third party addons/plugin to update price object
- ** Example: https://gist.github.com/nmedia82/e2bcc4e9db4f8acc4cfb8bf29962bc19
- **/
- if (window['ppom_get_price_' + this.ppom_type] != undefined) {
- ppom_price = window['ppom_get_price_' + this.ppom_type](ppom_price, field_meta, input.value());
- }
-
- this.update_price(ppom_price);
- PPOM_Price_Table.init(this.field_prices);
- }
- });
- return this;
- },
-
- load_data: function() {
-
- this.meta = nmh.fields_meta;
-
- // Load Init
- this.init();
- },
-
- // Get ppom input type from meta by datame
- set_ppom_type: function(dataname) {
-
- if (nmh.error(dataname)) {
- const meta_found = this.meta.find(m => m.data_name === dataname);
- this.ppom_type = meta_found.type != '' ? meta_found.type : '';
- }
- },
-
- update_price: function(ppom_price) {
-
- // filter only those option which have prices
- let field_prices = this.field_prices.filter(f => f.id !== ppom_price.id);
-
- // If price found
- if (ppom_price && ppom_price.price != 0)
- field_prices = [...field_prices, ppom_price];
-
- this.field_prices = field_prices;
-
- $.event.trigger({
- type: "ppom_option_price_updated",
- ppom_price: ppom_price,
- time: new Date()
- });
- },
-
- get_base_price: function() {
- return ppom_input_vars.wc_product_price;
- },
+ /** @type {PPOMPriceFieldMeta[]} */
+ meta: [],
+ /** @type {PPOM_Price_Class[]} */
+ field_prices: [],
+ ppom_type: '', //ppom input type
+
+ init() {
+ this.base_price = this.get_base_price();
+
+ // reset field_prices
+ this.field_prices = [];
+
+ let list = document.querySelectorAll( '.ppom-input, .ppom-quantity' );
+
+ //convert to array
+ list = Array.from( list );
+
+ list.map( ( elem, index ) => {
+ // binding events
+ const input = ppom_input.init( elem );
+
+ this.set_ppom_type( input.dataname() );
+
+ const has_value = input.value() || false;
+ const field_meta = this.meta.find(
+ ( m ) => m.data_name === input.dataname()
+ );
+
+ if ( has_value && field_meta ) {
+ let ppom_price = new PPOM_Price_Class(
+ field_meta,
+ input.value()
+ );
+
+ /**
+ ** Filter/third party addons/plugin to update price object
+ ** Example: https://gist.github.com/nmedia82/e2bcc4e9db4f8acc4cfb8bf29962bc19
+ */
+ if (
+ window[ 'ppom_get_price_' + this.ppom_type ] != undefined
+ ) {
+ ppom_price = window[ 'ppom_get_price_' + this.ppom_type ](
+ ppom_price,
+ field_meta,
+ input.value()
+ );
+ }
+
+ this.update_price( ppom_price );
+ PPOM_Price_Table.init( this.field_prices );
+ }
+ } );
+ return this;
+ },
+
+ load_data() {
+ this.meta = nmh.fields_meta;
+
+ // Load Init
+ this.init();
+ },
+
+ // Get ppom input type from meta by datame
+ set_ppom_type( dataname ) {
+ if ( nmh.error( dataname ) ) {
+ const meta_found = this.meta.find(
+ ( m ) => m.data_name === dataname
+ );
+ this.ppom_type = meta_found.type != '' ? meta_found.type : '';
+ }
+ },
+
+ update_price( ppom_price ) {
+ // filter only those option which have prices
+ let field_prices = this.field_prices.filter(
+ ( f ) => f.id !== ppom_price.id
+ );
+
+ // If price found
+ if ( ppom_price && ppom_price.price != 0 ) {
+ field_prices = [ ...field_prices, ppom_price ];
+ }
+
+ this.field_prices = field_prices;
+
+ $.event.trigger( {
+ type: 'ppom_option_price_updated',
+ ppom_price,
+ time: new Date(),
+ } );
+ },
+
+ get_base_price() {
+ return ppom_input_vars.wc_product_price;
+ },
};
-
-/*
- **========== PriceMatrix Input Prices Handle ===========
- */
+// Specializes the generic price object for range-based price matrix rules.
class PPOM_PriceMatrix_Class extends PPOM_Price_Class {
-
- constructor(field, value) {
- super(field, value);
- this.label = this.get_label_value();
- this.has_percent = this.get_has_percent();
- this.has_discount = field.discount === 'on' ? true : false;
- // console.log("Value", value);
- }
-
- get_price() {
-
- let p = 0;
-
- if (this.get_pricematrix_meta().price) {
-
- if (this.has_percent) {
- p = nmh.percentage(ppomPrice.base_price, this.get_pricematrix_meta().percent);
- }
- else {
- p = this.get_pricematrix_meta().price;
- }
- }
-
- const has_discount = this.field.discount === 'on' ? true : false;
- return has_discount ? p * -1 : p;
- }
-
- get_label_value() {
-
- return `${this.field.title} [${this.get_pricematrix_meta().label}]`;
- }
-
- get_pricematrix_meta() {
-
- let matrix_obj = {};
- $.each(this.value, (range, meta) => {
-
- const range_break = range.split("-");
-
- let range_from = parseInt(range_break[0]);
- let range_to = parseInt(range_break[1]);
- const product_qty = nmh.get_product_qty();
-
- if (product_qty >= range_from && product_qty <= range_to) {
- matrix_obj = meta;
- }
- });
- return matrix_obj;
- }
-
- get_has_percent() {
- // console.log(this.get_pricematrix_meta().percent);
- // const p = this.get_price();
- return this.get_pricematrix_meta().percent && true;
- }
+ constructor( field, value ) {
+ super( field, value );
+ this.label = this.get_label_value();
+ this.has_percent = this.get_has_percent();
+ this.has_discount = field.discount === 'on' ? true : false;
+ // console.log("Value", value);
+ }
+
+ get_price() {
+ let p = 0;
+
+ if ( this.get_pricematrix_meta().price ) {
+ if ( this.has_percent ) {
+ p = nmh.percentage(
+ ppomPrice.base_price,
+ this.get_pricematrix_meta().percent
+ );
+ } else {
+ p = this.get_pricematrix_meta().price;
+ }
+ }
+
+ const has_discount = this.field.discount === 'on' ? true : false;
+ return has_discount ? p * -1 : p;
+ }
+
+ get_label_value() {
+ return `${ this.field.title } [${ this.get_pricematrix_meta().label }]`;
+ }
+
+ get_pricematrix_meta() {
+ let matrix_obj = {};
+ $.each( this.value, ( range, meta ) => {
+ const range_break = range.split( '-' );
+
+ const range_from = parseInt( range_break[ 0 ] );
+ const range_to = parseInt( range_break[ 1 ] );
+ const product_qty = nmh.get_product_qty();
+
+ if ( product_qty >= range_from && product_qty <= range_to ) {
+ matrix_obj = meta;
+ }
+ } );
+ return matrix_obj;
+ }
+
+ get_has_percent() {
+ // console.log(this.get_pricematrix_meta().percent);
+ // const p = this.get_price();
+ return this.get_pricematrix_meta().percent && true;
+ }
}
+function ppom_get_price_pricematrix( price_obj, field_meta, value ) {
+ const field_price = new PPOM_PriceMatrix_Class( field_meta, value );
-function ppom_get_price_pricematrix(price_obj, field_meta, value) {
-
- const field_price = new PPOM_PriceMatrix_Class(field_meta, value);
-
- return field_price;
+ return field_price;
}
-// For Variation Quantity
+// Specializes the generic price object for quantity rows that carry unit prices.
class PPOM_variationQuantity_Class extends PPOM_Price_Class {
-
- constructor(field, value) {
- super(field, value);
- }
-
- get_price() {
-
- let p = this.field.default_price || '';
-
-
- if (p) {
- p = Number(this.value) * p;
- }
-
- // if options found
- if (this.field.options && this.field.options.length > 0) {
- // const option_title = o.option || o.title;
-
- const priced = this.field.options.find(o => o.price !== '' &&
- (nmh.strip_slashes(o.title) === this.value || nmh.strip_slashes(o.id) === this.value)
- );
-
- if (priced) {
-
- p = priced.price * Number(this.value);
-
- }
- }
-
- return p;
- }
+ constructor( field, value ) {
+ super( field, value );
+ }
+
+ get_price() {
+ let p = this.field.default_price || '';
+
+ if ( p ) {
+ p = Number( this.value ) * p;
+ }
+
+ // if options found
+ if ( this.field.options && this.field.options.length > 0 ) {
+ // const option_title = o.option || o.title;
+
+ const priced = this.field.options.find(
+ ( o ) =>
+ o.price !== '' &&
+ ( nmh.strip_slashes( o.title ) === this.value ||
+ nmh.strip_slashes( o.id ) === this.value )
+ );
+
+ if ( priced ) {
+ p = priced.price * Number( this.value );
+ }
+ }
+
+ return p;
+ }
}
-
//Filter function
-function ppom_get_price_quantities(price_obj, field_meta, value) {
-
- const field_price = new PPOM_variationQuantity_Class(field_meta, value);
- //console.log("Value",field_price);
+function ppom_get_price_quantities( price_obj, field_meta, value ) {
+ const field_price = new PPOM_variationQuantity_Class( field_meta, value );
+ //console.log("Value",field_price);
- return field_price;
+ return field_price;
}
-
-
-/*
- **========== PPOM Price INITs ===========
- * 1- Run PPOM Price Init
- * 2- Event Listeners
- */
+// Keep the modern engine wired into the legacy event-driven PPOM frontend.
ppomPrice.load_data();
-const ppom_event_handler = selector => {
-
- selector.on('change keyup', (currentTarget) => {
- ppomPrice.init();
- });
+const ppom_event_handler = ( selector ) => {
+ selector.on( 'change keyup', ( currentTarget ) => {
+ ppomPrice.init();
+ } );
};
// Event Listeners
-ppom_event_handler(nmh.input_selector);
-ppom_event_handler(nmh.dom_product_qty);
+ppom_event_handler( nmh.input_selector );
+ppom_event_handler( nmh.dom_product_qty );
-// Legacy price init function
+// Preserve the legacy global API because several other scripts still call it.
function ppom_update_option_prices() {
- ppomPrice.init();
+ ppomPrice.init();
}
diff --git a/js/price/ppom-price.js b/js/price/ppom-price.js
index 9c889aa3..2c6319ed 100644
--- a/js/price/ppom-price.js
+++ b/js/price/ppom-price.js
@@ -1,975 +1,1223 @@
-"use strict"
-
-var PPOMWrapper = jQuery('body.woocommerce, body.woocommerce-js');
-var ppomPriceListContainer = '';
-var ppomPriceListContainerRow = '';
+/**
+ * Legacy PPOM price preview engine.
+ *
+ * Older templates render pricing hints directly as data attributes on DOM
+ * inputs. This file scans those inputs, builds the hidden `ppom_option_price`
+ * payload consumed later in WooCommerce/cart hooks, and renders the visible
+ * price summary for legacy mode.
+ */
+'use strict';
+
+const PPOMWrapper = jQuery( 'body.woocommerce, body.woocommerce-js' );
+let ppomPriceListContainer = '';
+let ppomPriceListContainerRow = '';
// Quantity update capture/update price change
-var wc_product_qty = jQuery('form.cart').find('input[name="quantity"]');
-var ppom_product_base_price = ppom_input_vars.wc_product_price;
-
-jQuery(function($) {
-
- $(window).on('load', function() {
- ppom_update_option_prices();
- });
-
- // If quantity is changing with some -/+ elements
- $("form.cart .quantity").on('click', function(e) {
- e.preventDefault();
- ppom_update_option_prices();
- });
-
- wc_product_qty.on('change keyup', function(e) {
-
- ppom_update_option_prices();
-
-
- $.event.trigger({
- type: "ppom_wc_qty_updated",
- qty: ppom_get_order_quantity(),
- time: new Date()
- });
- });
-
-
- PPOMWrapper.on('change', 'select,input:checkbox,input:radio, input:text', function(e) {
-
- ppom_update_option_prices();
- });
-
- PPOMWrapper.on('keyup change', 'input:text.ppom-priced', function(e) {
- ppom_update_option_prices();
- });
-
-
- // quantities input changes
- if ($('.ppom-input-quantities').length > 0) {
- PPOMWrapper.on('click change keyup', 'input.ppom-quantity', function() {
-
- ppom_update_option_prices();
- });
- }
-
- if ($('.ppom-input-quantities').length > 0) {
- PPOMWrapper.on('change', 'input.ppom-quantity', function() {
-
- const dataname = $(this).closest('.ppom-field-wrapper').attr('data-data_name');
-
- const _is_valid = ppom_quantities_min_max(dataname);
- if (_is_valid) {
- $(this).val(0);
- ppom_quantities_min_max(dataname);
- }
- });
- // $("input.ppom-quantity").trigger("change");
- }
-
- // WC Variation Quantity Change event
- $(".ppom-wcvq-input").on('keyup change', function() {
- // console.log('text')
- ppom_update_option_prices();
- });
-
- // Woocommmerce vartiation update events
- PPOMWrapper.on("show_variation", ".single_variation_wrap", function(event, variation) {
- // Fired when the user selects all the required dropdowns / attributes
- // and a final variation is selected / shown
- // console.log(variation);
- var variation_price = variation.display_price;
-
- // WholeSale Price
- if (variation.wholesale_price !== undefined) {
- variation_price = variation.wholesale_price;
- }
-
- $(".ppom-variable-option.ppom-option-has-percent").each(function(i, option) {
-
- var option_percent = $(option).attr('data-percent');
- var option_price = ppom_get_amount_after_percentage(variation_price, option_percent);
- $(option).attr('data-price', option_price);
- });
-
- ppom_product_base_price = variation_price;
- ppom_update_variation_quatity(variation_price);
- ppom_update_option_prices();
- });
-
-
- $(".single_variation_wrap").on("hide_variation", function(event, variation) {
- // Fired when the user selects all the required dropdowns / attributes
- // and a final variation is selected / shown
-
- $(".ppom-variable-option.ppom-option-has-percent").each(function(i, option) {
-
- $(option).attr('data-price', 0);
- });
-
- ppom_product_base_price = 0;
- ppom_update_option_prices();
- });
-
-
- // Measue input creating price-checkbox on change
- PPOMWrapper.on('click change keyup', '.ppom-measure-input', function() {
-
- var data_name = $(this).attr('id');
- var m_qty = $(this).val();
-
- // console.log(data_name);
- $('input:radio[name="ppom[unit][' + data_name + ']"]:checked').attr('data-qty', m_qty);
- ppom_update_option_prices();
- });
-
-
- // Delete option from price table
- // Since 16.4
- $(document).on('click', '.ppom-delete-option-table', function(e) {
-
- var field_name = $(this).closest('tr').attr('data-data_name');
- var option_id = $(this).closest('tr').attr('data-option_id');
- if (field_name) {
- ppom_delete_option_from_price_table(field_name, option_id);
- }
- });
-});
-
-
+const wc_product_qty = jQuery( 'form.cart' ).find( 'input[name="quantity"]' );
+let ppom_product_base_price = ppom_input_vars.wc_product_price;
+
+jQuery( function ( $ ) {
+ // Rebuild the preview immediately so defaults and preselected values show up.
+ ppom_update_option_prices();
+
+ // If quantity is changing with some -/+ elements
+ $( 'form.cart .quantity' ).on( 'click', function ( e ) {
+ e.preventDefault();
+ ppom_update_option_prices();
+ } );
+
+ wc_product_qty.on( 'change keyup', function ( e ) {
+ ppom_update_option_prices();
+
+ $.event.trigger( {
+ type: 'ppom_wc_qty_updated',
+ qty: ppom_get_order_quantity(),
+ time: new Date(),
+ } );
+ } );
+
+ PPOMWrapper.on(
+ 'change',
+ 'select,input:checkbox,input:radio, input:text',
+ function ( e ) {
+ ppom_update_option_prices();
+ }
+ );
+
+ PPOMWrapper.on( 'keyup change', 'input:text.ppom-priced', function ( e ) {
+ ppom_update_option_prices();
+ } );
+
+ // quantities input changes
+ if ( $( '.ppom-input-quantities' ).length > 0 ) {
+ PPOMWrapper.on(
+ 'click change keyup',
+ 'input.ppom-quantity',
+ function () {
+ ppom_update_option_prices();
+ }
+ );
+ }
+
+ if ( $( '.ppom-input-quantities' ).length > 0 ) {
+ PPOMWrapper.on( 'change', 'input.ppom-quantity', function () {
+ const dataname = $( this )
+ .closest( '.ppom-field-wrapper' )
+ .attr( 'data-data_name' );
+
+ const _is_valid = ppom_quantities_min_max( dataname );
+ if ( _is_valid ) {
+ $( this ).val( 0 );
+ ppom_quantities_min_max( dataname );
+ }
+ } );
+ // $("input.ppom-quantity").trigger("change");
+ }
+
+ // WC Variation Quantity Change event
+ $( '.ppom-wcvq-input' ).on( 'keyup change', function () {
+ // console.log('text')
+ ppom_update_option_prices();
+ } );
+
+ // Woocommmerce vartiation update events
+ PPOMWrapper.on(
+ 'show_variation',
+ '.single_variation_wrap',
+ function ( event, variation ) {
+ // Fired when the user selects all the required dropdowns / attributes
+ // and a final variation is selected / shown
+ // console.log(variation);
+ let variation_price = variation.display_price;
+
+ // WholeSale Price
+ if ( variation.wholesale_price !== undefined ) {
+ variation_price = variation.wholesale_price;
+ }
+
+ $( '.ppom-variable-option.ppom-option-has-percent' ).each(
+ function ( i, option ) {
+ const option_percent = $( option ).attr( 'data-percent' );
+ const option_price = ppom_get_amount_after_percentage(
+ variation_price,
+ option_percent
+ );
+ $( option ).attr( 'data-price', option_price );
+ }
+ );
+
+ ppom_product_base_price = variation_price;
+ ppom_update_variation_quatity( variation_price );
+ ppom_update_option_prices();
+ }
+ );
+
+ $( '.single_variation_wrap' ).on(
+ 'hide_variation',
+ function ( event, variation ) {
+ // Fired when the user selects all the required dropdowns / attributes
+ // and a final variation is selected / shown
+
+ $( '.ppom-variable-option.ppom-option-has-percent' ).each(
+ function ( i, option ) {
+ $( option ).attr( 'data-price', 0 );
+ }
+ );
+
+ ppom_product_base_price = 0;
+ ppom_update_option_prices();
+ }
+ );
+
+ // Measue input creating price-checkbox on change
+ PPOMWrapper.on( 'click change keyup', '.ppom-measure-input', function () {
+ const data_name = $( this ).attr( 'id' );
+ const m_qty = $( this ).val();
+
+ // console.log(data_name);
+ $( 'input:radio[name="ppom[unit][' + data_name + ']"]:checked' ).attr(
+ 'data-qty',
+ m_qty
+ );
+ ppom_update_option_prices();
+ } );
+
+ // Delete option from price table
+ // Since 16.4
+ $( document ).on( 'click', '.ppom-delete-option-table', function ( e ) {
+ const field_name = $( this ).closest( 'tr' ).attr( 'data-data_name' );
+ const option_id = $( this ).closest( 'tr' ).attr( 'data-option_id' );
+ if ( field_name ) {
+ ppom_delete_option_from_price_table( field_name, option_id );
+ }
+ } );
+} );
+
+// Main legacy rebuild pass: normalize selections, refresh hidden payloads, and
+// redraw the price table exactly as the PHP cart hooks expect to receive them.
function ppom_update_option_prices() {
-
- if (ppom_input_vars.show_option_price == 'hide') {
-
- jQuery("#ppom-price-container").hide();
- }
-
- var ppom_option_total = 0;
- var ppom_total_discount = 0;
- var productBasePrice = 0;
-
- var ppom_all_option_prices = ppom_update_get_prices();
- // Flags
- var ppom_has_variable = false;
- var ppom_has_onetime = false;
- var ppom_has_matrix = false;
- var ppom_has_priced_quantities = false; // variation quantities
- var ppom_show_base_price = true;
- var show_option_price_indivisually = ppom_input_vars.show_option_price == 'all_option' ? true : false;
- var show_per_unit_price = false;
- // unlink order quantity controlled by variation quantities
- var unlink_order_qty = false;
-
- // console.log(ppom_all_option_prices);
-
-
- // Set hidden input
- jQuery("#ppom_option_price").val(JSON.stringify(ppom_all_option_prices));
-
- var ppomPriceContainer = jQuery("#ppom-price-container");
- // Reset container
- ppomPriceContainer.html('');
-
- /*ppomPriceListContainer = jQuery('')
+ if ( ppom_input_vars.show_option_price == 'hide' ) {
+ jQuery( '#ppom-price-container' ).hide();
+ }
+
+ let ppom_option_total = 0;
+ let ppom_total_discount = 0;
+ let productBasePrice = 0;
+
+ const ppom_all_option_prices = ppom_update_get_prices();
+ // Flags
+ let ppom_has_variable = false;
+ let ppom_has_onetime = false;
+ let ppom_has_matrix = false;
+ let ppom_has_priced_quantities = false; // variation quantities
+ let ppom_show_base_price = true;
+ const show_option_price_indivisually =
+ ppom_input_vars.show_option_price == 'all_option' ? true : false;
+ let show_per_unit_price = false;
+ // unlink order quantity controlled by variation quantities
+ let unlink_order_qty = false;
+
+ // console.log(ppom_all_option_prices);
+
+ // Set hidden input
+ jQuery( '#ppom_option_price' ).val(
+ JSON.stringify( ppom_all_option_prices )
+ );
+
+ const ppomPriceContainer = jQuery( '#ppom-price-container' );
+ // Reset container
+ ppomPriceContainer.html( '' );
+
+ /*ppomPriceListContainer = jQuery('')
.addClass('ppom-option-price-list')
.appendTo(ppomPriceContainer);*/
- ppomPriceListContainer = jQuery('')
- .addClass('table table-striped')
- .appendTo(ppomPriceContainer)
- .css('width', '100%');
-
-
-
- /** ====== Matrix Price =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- // console.log(option);
-
- // Updating flash in first loop
- if (option.apply == 'variable') ppom_has_variable = true;
- if (option.apply == 'onetime') ppom_has_onetime = true;
-
- // Sum only variable prices
- if (option.apply !== 'matrix') return;
-
-
-
- ppom_has_matrix = true;
- ppom_show_base_price = false;
- if (ppom_input_vars.show_price_per_unit)
- show_per_unit_price = true;
-
- var price_tag = ppom_get_wc_price(option.price);
-
- var option_label_with_qty = option.label + ' [ ' + jQuery(price_tag).html() + ' x ' + ppom_get_order_quantity() + ']';
- // console.log(option);
-
- // option.apply = 'matrix-fixed';
- if (option.matrix_fixed) {
- var matrix_price = parseFloat(option.price) * 1;
- }
- else {
- var matrix_price = parseFloat(option.price) * ppom_get_order_quantity();
- }
-
- ppom_add_price_item_in_table(option_label_with_qty, matrix_price, 'ppom-matrix-price');
-
- // Totals the options
- // ppom_option_total += parseFloat(matrix_price);
- // Set productBasePrice as matrix found
- productBasePrice = matrix_price;
-
- });
- /** ====== Matrix Price=========== ***/
-
- /** ====== Variation quantities =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- // Sum only variable prices
- if (option.apply !== 'quantities') return;
-
- // If Matrix price found then do not calculate each option prices
- if (ppom_has_matrix) return;
-
- // console.log(option);
-
- if (option.include === 'on') {
- ppom_has_priced_quantities = true;
- }
-
- if (option.unlink_qty === 'on') {
- unlink_order_qty = true;
- }
-
-
- // console.log('max price', option);
-
- // wc_product_qty.val(1);
-
- // since v18.0 if no price set, no need to use base price
- if (option.price == '' || option.price == 0) return;
-
- var variation_price = option.price;
-
- var option_price_with_qty = parseFloat(option.quantity) * parseFloat(variation_price);
- if( unlink_order_qty ) {
- option_price_with_qty *= ppom_get_order_quantity();
- }
- // Totals the options
- ppom_option_total += option_price_with_qty;
-
- if (!show_option_price_indivisually) return;
-
- var price_tag = ppom_get_wc_price(variation_price);
- var option_label_with_qty = option.label + ' ' + jQuery(price_tag).html() + ' x ' + option.quantity;
-
- ppom_add_price_item_in_table(option_label_with_qty, option_price_with_qty, 'ppom-quantities-price');
-
-
- });
- /** ====== Variation quantities =========== ***/
-
-
- /** ====== WC Variation quantities Addon =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- // Sum only variable prices
- if (option.apply !== 'wc_variation_quantities') return;
-
- // do not include baseprice when wcvq
- ppom_show_base_price = false;
-
- if (option.include === 'on') {
- ppom_has_priced_quantities = true;
- }
-
- // since v18.0 if no price set, no need to use base price
- if (option.price == '' || option.price == 0) return;
-
- var variation_price = option.price;
- var option_price_with_qty = parseFloat(option.quantity) * parseFloat(variation_price);
- // Totals the options
- ppom_option_total += option_price_with_qty;
-
- // if (!show_option_price_indivisually) return;
- //console.log(option);
-
- var price_tag = ppom_get_wc_price(variation_price);
- var option_label_with_qty = option.label + ' ' + jQuery(price_tag).html() + ' x ' + option.quantity;
-
- ppom_add_price_item_in_table(option_label_with_qty, option_price_with_qty, 'ppom-quantities-price');
-
-
- });
- /** ====== Variation quantities Addon=========== ***/
-
-
- /** ====== Bulkquantity Addon =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- // Sum only variable prices
- if (option.apply !== 'bulkquantity') return;
-
- if (option.include !== 'on') {
- ppom_show_base_price = false;
- }
-
- var quantity = option.quantity;
-
- // console.log(option);
- var option_label_with_qty = option.label + ' ' + ppom_get_formatted_price(option.price) + ' x ' + quantity;
-
- var option_price_with_qty = parseFloat(quantity) * parseFloat(option.price);
- ppom_add_price_item_in_table(option_label_with_qty, option_price_with_qty, 'ppom-bulkquantity-price');
- ppom_option_total += option_price_with_qty;
-
- // Base price
- var base_price_tag = ppom_get_wc_price(option.base);
- var base_label = ppom_input_vars.product_base_label + ' ' + jQuery(base_price_tag).html() + ' x ' + quantity;
- var lineBaseTotal = parseFloat(option.base) * quantity;
- ppom_add_price_item_in_table(base_label, lineBaseTotal, 'ppom-bulkquantity-baseprice');
- ppom_option_total += lineBaseTotal;
-
- });
- /** ====== Bulkquantity Addon =========== ***/
-
- /** ====== Event Calendar Add-on =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- // Sum only variable prices
- if (option.apply !== 'eventcalendar') return;
-
- // If Matrix price found then do not calculate each option prices
- if (ppom_has_matrix) return;
-
- // wc_product_qty.val(1);
-
- // since v18.0 if no price set, no need to use base price
- if (option.price == '' || option.price == 0) return;
-
- var variation_price = option.price;
- var option_price_with_qty = parseFloat(option.quantity) * parseFloat(variation_price);
- // console.log(option_price_with_qty);
- // Totals the options
- ppom_option_total += option_price_with_qty;
-
- if (!show_option_price_indivisually) return;
-
- var price_tag = ppom_get_wc_price(variation_price);
- var option_label_with_qty = option.label + ' ' + jQuery(price_tag).html() + ' x ' + option.quantity;
-
- ppom_add_price_item_in_table(option_label_with_qty, option_price_with_qty, 'ppom-eventcalendar-price');
- });
- /** ====== Event Calendar Add-on =========== ***/
-
-
- /** ====== Options price variable =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- if (option.apply !== 'variable') return;
-
- var option_price_with_qty = ppom_get_order_quantity() * parseFloat(option.price);
- // Totals the options
- ppom_option_total += option_price_with_qty;
-
- // Check if to shos options or not
- if (!show_option_price_indivisually) return;
- var price_tag = ppom_get_wc_price(option.price);
-
- var option_label_with_qty = option.label + ' ' + jQuery(price_tag).html() + ' x ' + ppom_get_order_quantity();
-
-
- ppom_add_price_item_in_table(option_label_with_qty, option_price_with_qty, 'ppom-variable-price', '', option);
-
- });
- /** ====== Options price variable =========== ***/
-
- /** ====== Options price onetime/fixed =========== ***/
-
- // Heading Fixed Fee
- // Deprecated - Should be removed soon.
- if (ppom_has_onetime) {
- ppom_add_price_item_in_table(ppom_input_vars.fixed_fee_heading, '', 'ppom-fixed-fee-heading');
- }
-
- jQuery(ppom_all_option_prices).each(function(i, option) {
- // Sum only variable prices
- if (option.apply !== 'onetime') return;
- var option_label_with_qty = option.label
-
- ppom_add_price_item_in_table(option_label_with_qty, option.price, 'ppom-fixed-price', '', option);
-
- // Totals the options
- ppom_option_total += parseFloat(option.price);
-
- });
- /** ====== Options price onetime/fixed=========== ***/
-
-
- /** ====== Options total price =========== ***/
- if (ppom_has_variable) {
- ppom_add_price_item_in_table(ppom_input_vars.option_total_label, ppom_option_total, 'ppom-option-total-price');
- }
- /** ====== Options total price =========== ***/
-
-
- /** ====== Fixed Price Addon =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
- // Sum only variable prices
- if (option.apply !== 'fixedprice') return;
- ppom_product_base_price = option.unitprice;
- ppom_set_order_quantity(option.quantity);
- });
-
-
- /** ====== Hide Product total price is zero ===== **/
-
- if (ppom_product_base_price == 0) {
- ppom_show_base_price = false;
- }
- /** ====== Hide Product total price is zero ===== **/
-
-
- /** ====== Product base price =========== ***/
-
- if (ppom_show_base_price) {
- //console.log(ppom_show_base_price);
-
- var price_tag = ppom_get_wc_price(ppom_product_base_price);
-
- // if variation quantities has price
- var product_qty = ppom_get_order_quantity();
- if (ppom_has_priced_quantities && product_qty > 0 && !unlink_order_qty) {
- product_qty = 1;
- }
- // console.log('price_tag', price_tag);
- var product_base_label = ppom_input_vars.product_base_label + ' ' + jQuery(price_tag).html() + ' x ' + product_qty;
- productBasePrice = product_qty * parseFloat(ppom_product_base_price);
- ppom_add_price_item_in_table(product_base_label, productBasePrice, 'ppom-product-base-price');
- }
- /** ====== Product base price =========== ***/
-
-
- /** ====== Apply Discounts =========== ***/
- jQuery(ppom_all_option_prices).each(function(i, option) {
-
- if (option.apply !== 'matrix_discount') return;
-
- var is_percent = (option.percent !== '') ? true : false;
-
- if (ppom_input_vars.show_price_per_unit)
- show_per_unit_price = true;
-
- if (is_percent) {
- var option_label_with_qty = ppom_input_vars.total_discount_label + ' (' + option.percent + ')';
- }
- else {
- var price_tag = ppom_get_wc_price(option.price);
- var option_label_with_qty = ppom_input_vars.total_discount_label + ' ' + price_tag.html();
- }
-
-
- if (is_percent) {
- if (ppom_pricematrix_discount_type === "base") {
- // if discount apply on base
- var total_item_price = productBasePrice;
- }
- else {
- var total_item_price = parseFloat(productBasePrice) + parseFloat(ppom_option_total);
- }
-
- var discount_percent = ppom_get_formatted_price(parseFloat(option.percent));
- // ppom_total_discount += ppom_get_formatted_price(parseFloat(discount_percent/100) * parseFloat(total_item_price));
- ppom_total_discount = parseFloat((parseFloat(option.percent) / 100) * (total_item_price));
-
- }
- else {
- ppom_total_discount += option.price;
- }
-
- ppom_add_price_item_in_table(option_label_with_qty, ppom_total_discount, 'ppom-discount-price');
-
- // Totals the options
- // ppom_option_total += parseFloat(option.price);
-
- });
- /** ====== Apply Discounts =========== ***/
-
-
-
- // console.log('total_discount '+ppom_total_discount);
- // console.log('baseprice '+parseFloat(productBasePrice));
- // console.log('option_total '+parseFloat(ppom_option_total));
-
- /*productBasePrice = productBasePrice || 0;
+ ppomPriceListContainer = jQuery( '' )
+ .addClass( 'table table-striped' )
+ .appendTo( ppomPriceContainer )
+ .css( 'width', '100%' );
+
+ /** ====== Matrix Price =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // console.log(option);
+
+ // Updating flash in first loop
+ if ( option.apply == 'variable' ) {
+ ppom_has_variable = true;
+ }
+ if ( option.apply == 'onetime' ) {
+ ppom_has_onetime = true;
+ }
+
+ // Sum only variable prices
+ if ( option.apply !== 'matrix' ) {
+ return;
+ }
+
+ ppom_has_matrix = true;
+ ppom_show_base_price = false;
+ if ( ppom_input_vars.show_price_per_unit ) {
+ show_per_unit_price = true;
+ }
+
+ const price_tag = ppom_get_wc_price( option.price );
+
+ const option_label_with_qty =
+ option.label +
+ ' [ ' +
+ jQuery( price_tag ).html() +
+ ' x ' +
+ ppom_get_order_quantity() +
+ ']';
+ // console.log(option);
+
+ // option.apply = 'matrix-fixed';
+ if ( option.matrix_fixed ) {
+ var matrix_price = parseFloat( option.price ) * 1;
+ } else {
+ var matrix_price =
+ parseFloat( option.price ) * ppom_get_order_quantity();
+ }
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ matrix_price,
+ 'ppom-matrix-price'
+ );
+
+ // Totals the options
+ // ppom_option_total += parseFloat(matrix_price);
+ // Set productBasePrice as matrix found
+ productBasePrice = matrix_price;
+ } );
+ /** ====== Matrix Price=========== */
+
+ /** ====== Variation quantities =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'quantities' ) {
+ return;
+ }
+
+ // If Matrix price found then do not calculate each option prices
+ if ( ppom_has_matrix ) {
+ return;
+ }
+
+ // console.log(option);
+
+ if ( option.include === 'on' ) {
+ ppom_has_priced_quantities = true;
+ }
+
+ if ( option.unlink_qty === 'on' ) {
+ unlink_order_qty = true;
+ }
+
+ // console.log('max price', option);
+
+ // wc_product_qty.val(1);
+
+ // since v18.0 if no price set, no need to use base price
+ if ( option.price == '' || option.price == 0 ) {
+ return;
+ }
+
+ const variation_price = option.price;
+
+ let option_price_with_qty =
+ parseFloat( option.quantity ) * parseFloat( variation_price );
+ if ( unlink_order_qty ) {
+ option_price_with_qty *= ppom_get_order_quantity();
+ }
+ // Totals the options
+ ppom_option_total += option_price_with_qty;
+
+ if ( ! show_option_price_indivisually ) {
+ return;
+ }
+
+ const price_tag = ppom_get_wc_price( variation_price );
+ const option_label_with_qty =
+ option.label +
+ ' ' +
+ jQuery( price_tag ).html() +
+ ' x ' +
+ option.quantity;
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ option_price_with_qty,
+ 'ppom-quantities-price'
+ );
+ } );
+ /** ====== Variation quantities =========== */
+
+ /** ====== WC Variation quantities Addon =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'wc_variation_quantities' ) {
+ return;
+ }
+
+ // do not include baseprice when wcvq
+ ppom_show_base_price = false;
+
+ if ( option.include === 'on' ) {
+ ppom_has_priced_quantities = true;
+ }
+
+ // since v18.0 if no price set, no need to use base price
+ if ( option.price == '' || option.price == 0 ) {
+ return;
+ }
+
+ const variation_price = option.price;
+ const option_price_with_qty =
+ parseFloat( option.quantity ) * parseFloat( variation_price );
+ // Totals the options
+ ppom_option_total += option_price_with_qty;
+
+ // if (!show_option_price_indivisually) return;
+ //console.log(option);
+
+ const price_tag = ppom_get_wc_price( variation_price );
+ const option_label_with_qty =
+ option.label +
+ ' ' +
+ jQuery( price_tag ).html() +
+ ' x ' +
+ option.quantity;
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ option_price_with_qty,
+ 'ppom-quantities-price'
+ );
+ } );
+ /** ====== Variation quantities Addon=========== */
+
+ /** ====== Bulkquantity Addon =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'bulkquantity' ) {
+ return;
+ }
+
+ if ( option.include !== 'on' ) {
+ ppom_show_base_price = false;
+ }
+
+ const quantity = option.quantity;
+
+ // console.log(option);
+ const option_label_with_qty =
+ option.label +
+ ' ' +
+ ppom_get_formatted_price( option.price ) +
+ ' x ' +
+ quantity;
+
+ const option_price_with_qty =
+ parseFloat( quantity ) * parseFloat( option.price );
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ option_price_with_qty,
+ 'ppom-bulkquantity-price'
+ );
+ ppom_option_total += option_price_with_qty;
+
+ // Base price
+ const base_price_tag = ppom_get_wc_price( option.base );
+ const base_label =
+ ppom_input_vars.product_base_label +
+ ' ' +
+ jQuery( base_price_tag ).html() +
+ ' x ' +
+ quantity;
+ const lineBaseTotal = parseFloat( option.base ) * quantity;
+ ppom_add_price_item_in_table(
+ base_label,
+ lineBaseTotal,
+ 'ppom-bulkquantity-baseprice'
+ );
+ ppom_option_total += lineBaseTotal;
+ } );
+ /** ====== Bulkquantity Addon =========== */
+
+ /** ====== Event Calendar Add-on =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'eventcalendar' ) {
+ return;
+ }
+
+ // If Matrix price found then do not calculate each option prices
+ if ( ppom_has_matrix ) {
+ return;
+ }
+
+ // wc_product_qty.val(1);
+
+ // since v18.0 if no price set, no need to use base price
+ if ( option.price == '' || option.price == 0 ) {
+ return;
+ }
+
+ const variation_price = option.price;
+ const option_price_with_qty =
+ parseFloat( option.quantity ) * parseFloat( variation_price );
+ // console.log(option_price_with_qty);
+ // Totals the options
+ ppom_option_total += option_price_with_qty;
+
+ if ( ! show_option_price_indivisually ) {
+ return;
+ }
+
+ const price_tag = ppom_get_wc_price( variation_price );
+ const option_label_with_qty =
+ option.label +
+ ' ' +
+ jQuery( price_tag ).html() +
+ ' x ' +
+ option.quantity;
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ option_price_with_qty,
+ 'ppom-eventcalendar-price'
+ );
+ } );
+ /** ====== Event Calendar Add-on =========== */
+
+ /** ====== Options price variable =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ if ( option.apply !== 'variable' ) {
+ return;
+ }
+
+ const option_price_with_qty =
+ ppom_get_order_quantity() * parseFloat( option.price );
+ // Totals the options
+ ppom_option_total += option_price_with_qty;
+
+ // Check if to shos options or not
+ if ( ! show_option_price_indivisually ) {
+ return;
+ }
+ const price_tag = ppom_get_wc_price( option.price );
+
+ const option_label_with_qty =
+ option.label +
+ ' ' +
+ jQuery( price_tag ).html() +
+ ' x ' +
+ ppom_get_order_quantity();
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ option_price_with_qty,
+ 'ppom-variable-price',
+ '',
+ option
+ );
+ } );
+ /** ====== Options price variable =========== */
+
+ /** ====== Options price onetime/fixed =========== */
+
+ // Heading Fixed Fee
+ // Deprecated - Should be removed soon.
+ if ( ppom_has_onetime ) {
+ ppom_add_price_item_in_table(
+ ppom_input_vars.fixed_fee_heading,
+ '',
+ 'ppom-fixed-fee-heading'
+ );
+ }
+
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'onetime' ) {
+ return;
+ }
+ const option_label_with_qty = option.label;
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ option.price,
+ 'ppom-fixed-price',
+ '',
+ option
+ );
+
+ // Totals the options
+ ppom_option_total += parseFloat( option.price );
+ } );
+ /** ====== Options price onetime/fixed=========== */
+
+ /** ====== Options total price =========== */
+ if ( ppom_has_variable ) {
+ ppom_add_price_item_in_table(
+ ppom_input_vars.option_total_label,
+ ppom_option_total,
+ 'ppom-option-total-price'
+ );
+ }
+ /** ====== Options total price =========== */
+
+ /** ====== Fixed Price Addon =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'fixedprice' ) {
+ return;
+ }
+ ppom_product_base_price = option.unitprice;
+ ppom_set_order_quantity( option.quantity );
+ } );
+
+ /** ====== Hide Product total price is zero ===== */
+
+ if ( ppom_product_base_price == 0 ) {
+ ppom_show_base_price = false;
+ }
+ /** ====== Hide Product total price is zero ===== */
+
+ /** ====== Product base price =========== */
+
+ if ( ppom_show_base_price ) {
+ //console.log(ppom_show_base_price);
+
+ const price_tag = ppom_get_wc_price( ppom_product_base_price );
+
+ // if variation quantities has price
+ let product_qty = ppom_get_order_quantity();
+ if (
+ ppom_has_priced_quantities &&
+ product_qty > 0 &&
+ ! unlink_order_qty
+ ) {
+ product_qty = 1;
+ }
+ // console.log('price_tag', price_tag);
+ const product_base_label =
+ ppom_input_vars.product_base_label +
+ ' ' +
+ jQuery( price_tag ).html() +
+ ' x ' +
+ product_qty;
+ productBasePrice = product_qty * parseFloat( ppom_product_base_price );
+ ppom_add_price_item_in_table(
+ product_base_label,
+ productBasePrice,
+ 'ppom-product-base-price'
+ );
+ }
+ /** ====== Product base price =========== */
+
+ /** ====== Apply Discounts =========== */
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ if ( option.apply !== 'matrix_discount' ) {
+ return;
+ }
+
+ const is_percent = option.percent !== '' ? true : false;
+
+ if ( ppom_input_vars.show_price_per_unit ) {
+ show_per_unit_price = true;
+ }
+
+ if ( is_percent ) {
+ var option_label_with_qty =
+ ppom_input_vars.total_discount_label +
+ ' (' +
+ option.percent +
+ ')';
+ } else {
+ const price_tag = ppom_get_wc_price( option.price );
+ var option_label_with_qty =
+ ppom_input_vars.total_discount_label + ' ' + price_tag.html();
+ }
+
+ if ( is_percent ) {
+ if ( ppom_pricematrix_discount_type === 'base' ) {
+ // if discount apply on base
+ var total_item_price = productBasePrice;
+ } else {
+ var total_item_price =
+ parseFloat( productBasePrice ) +
+ parseFloat( ppom_option_total );
+ }
+
+ const discount_percent = ppom_get_formatted_price(
+ parseFloat( option.percent )
+ );
+ // ppom_total_discount += ppom_get_formatted_price(parseFloat(discount_percent/100) * parseFloat(total_item_price));
+ ppom_total_discount = parseFloat(
+ ( parseFloat( option.percent ) / 100 ) * total_item_price
+ );
+ } else {
+ ppom_total_discount += option.price;
+ }
+
+ ppom_add_price_item_in_table(
+ option_label_with_qty,
+ ppom_total_discount,
+ 'ppom-discount-price'
+ );
+
+ // Totals the options
+ // ppom_option_total += parseFloat(option.price);
+ } );
+ /** ====== Apply Discounts =========== */
+
+ // console.log('total_discount '+ppom_total_discount);
+ // console.log('baseprice '+parseFloat(productBasePrice));
+ // console.log('option_total '+parseFloat(ppom_option_total));
+
+ /*productBasePrice = productBasePrice || 0;
ppom_option_total = ppom_option_total || 0;
ppom_total_discount = ppom_total_discount || 0;*/
- /** ====== Total without fixed/onetime fee =========== ***/
- var ppom_total_price = ppom_calculate_totals(ppom_total_discount, productBasePrice, ppom_option_total);
- var total_price_label = ppom_input_vars.total_without_fixed_label;
- // console.log(ppom_total_price);
-
- /** ====== Measures ===================**/
- var ppom_measure_quantity = 1;
- var ppom_measure_input_found = false;
- jQuery(ppom_all_option_prices).each(function(i, option) {
- // Sum only variable prices
- if (option.apply !== 'measure') return;
- ppom_show_base_price = false;
-
- ppom_measure_input_found = true;
-
- const multiplier = parseFloat(option?.price_multiplier ?? '1' );
- const priceMultiplier = ! Number.isNaN(multiplier) ? multiplier : 1;
-
- if (option.use_units === 'no') {
- const option_qty = option.qty == '' ? 0 : parseFloat(option.qty);
- ppom_measure_quantity = option_qty * ppom_measure_quantity * priceMultiplier;
- }
- else {
- ppom_total_price += parseFloat(option.price) * priceMultiplier * parseFloat(option.qty) * ppom_get_order_quantity();
- }
- });
-
- // If measured input has quantities
- if (ppom_measure_input_found) {
- ppom_total_price = productBasePrice * parseFloat(ppom_measure_quantity) + ppom_option_total;
- }
-
- var per_unit_price = parseFloat(ppom_total_price / ppom_get_order_quantity());
- var per_unit_label = '';
-
- // console.log(show_per_unit_price);
- if (show_per_unit_price && ppom_get_order_quantity() > 0) {
- per_unit_label = ' (' + ppom_get_wc_price(per_unit_price).html() + ' / ' + ppom_input_vars.per_unit_label + ')';
- }
-
- /** ====== Total without fixed/onetime fee =========== ***/
- if (ppom_input_vars.tax_prefix) {
- per_unit_label += " " + ppom_input_vars.tax_prefix;
- }
- ppom_add_price_item_in_table(total_price_label, ppom_total_price, 'ppom-total-without-fixed', per_unit_label);
-
+ /** ====== Total without fixed/onetime fee =========== */
+ let ppom_total_price = ppom_calculate_totals(
+ ppom_total_discount,
+ productBasePrice,
+ ppom_option_total
+ );
+ const total_price_label = ppom_input_vars.total_without_fixed_label;
+ // console.log(ppom_total_price);
+
+ /** ====== Measures ===================*/
+ let ppom_measure_quantity = 1;
+ let ppom_measure_input_found = false;
+ jQuery( ppom_all_option_prices ).each( function ( i, option ) {
+ // Sum only variable prices
+ if ( option.apply !== 'measure' ) {
+ return;
+ }
+ ppom_show_base_price = false;
+
+ ppom_measure_input_found = true;
+
+ const multiplier = parseFloat( option?.price_multiplier ?? '1' );
+ const priceMultiplier = ! Number.isNaN( multiplier ) ? multiplier : 1;
+
+ if ( option.use_units === 'no' ) {
+ const option_qty = option.qty == '' ? 0 : parseFloat( option.qty );
+ ppom_measure_quantity =
+ option_qty * ppom_measure_quantity * priceMultiplier;
+ } else {
+ ppom_total_price +=
+ parseFloat( option.price ) *
+ priceMultiplier *
+ parseFloat( option.qty ) *
+ ppom_get_order_quantity();
+ }
+ } );
+
+ // If measured input has quantities
+ if ( ppom_measure_input_found ) {
+ ppom_total_price =
+ productBasePrice * parseFloat( ppom_measure_quantity ) +
+ ppom_option_total;
+ }
+
+ const per_unit_price = parseFloat(
+ ppom_total_price / ppom_get_order_quantity()
+ );
+ let per_unit_label = '';
+
+ // console.log(show_per_unit_price);
+ if ( show_per_unit_price && ppom_get_order_quantity() > 0 ) {
+ per_unit_label =
+ ' (' +
+ ppom_get_wc_price( per_unit_price ).html() +
+ ' / ' +
+ ppom_input_vars.per_unit_label +
+ ')';
+ }
+
+ /** ====== Total without fixed/onetime fee =========== */
+ if ( ppom_input_vars.tax_prefix ) {
+ per_unit_label += ' ' + ppom_input_vars.tax_prefix;
+ }
+ ppom_add_price_item_in_table(
+ total_price_label,
+ ppom_total_price,
+ 'ppom-total-without-fixed',
+ per_unit_label
+ );
}
-
-function ppom_calculate_totals(ppom_total_discount, productBasePrice, ppom_option_total) {
-
- var totals = (parseFloat(productBasePrice) + parseFloat(ppom_option_total)) - parseFloat(ppom_total_discount);
- return totals;
+function ppom_calculate_totals(
+ ppom_total_discount,
+ productBasePrice,
+ ppom_option_total
+) {
+ const totals =
+ parseFloat( productBasePrice ) +
+ parseFloat( ppom_option_total ) -
+ parseFloat( ppom_total_discount );
+ return totals;
}
-// Adding TDs item in price container
-function ppom_add_price_item_in_table(label, price, item_class, append_to_price, option) {
-
- var formatted_price = '';
- var row_id = '';
- var row_data_name = '';
- if (option !== undefined) {
- row_id = option.option_id;
- row_data_name = option.data_name;
- }
-
- if (price == 0) return;
-
- if (price !== '') {
- if (item_class === 'ppom-discount-price') {
- formatted_price = ppom_get_wc_price(price, true);
- }
- else {
- formatted_price = ppom_get_wc_price(price);
- }
- }
-
- if (append_to_price !== undefined) {
- formatted_price = formatted_price.html() + append_to_price;
- }
-
- ppomPriceListContainerRow = jQuery(' ')
- .addClass('ppom-option-price-list')
- .attr('data-option_id', row_id)
- .attr('data-data_name', row_data_name)
- .appendTo(ppomPriceListContainer);
-
- if (item_class) {
- ppomPriceListContainerRow.addClass(item_class);
- }
-
- // Delete Option
- if (row_data_name) {
- label = ' ' + label;
- }
-
- // Label Item
- var totalWithoutFixedLabel = jQuery(' ')
- .html(label)
- .addClass('ppom-label-item')
- .appendTo(ppomPriceListContainerRow);
-
- if (price === '') {
- totalWithoutFixedLabel.attr('colspan', '2');
- }
- else {
-
- // Price Item
- var totalWithoutFixedLabel = jQuery(' ')
- .html(formatted_price)
- .addClass('ppom-price-item')
- .appendTo(ppomPriceListContainerRow);
- }
-
- jQuery.event.trigger({
- type: "ppom_option_price_added",
- price: price,
- item: item_class,
- time: new Date()
- });
+// Render a single row in the legacy price table and emit the historic hook.
+function ppom_add_price_item_in_table(
+ label,
+ price,
+ item_class,
+ append_to_price,
+ option
+) {
+ let formatted_price = '';
+ let row_id = '';
+ let row_data_name = '';
+ if ( option !== undefined ) {
+ row_id = option.option_id;
+ row_data_name = option.data_name;
+ }
+
+ if ( price == 0 ) {
+ return;
+ }
+
+ if ( price !== '' ) {
+ if ( item_class === 'ppom-discount-price' ) {
+ formatted_price = ppom_get_wc_price( price, true );
+ } else {
+ formatted_price = ppom_get_wc_price( price );
+ }
+ }
+
+ if ( append_to_price !== undefined ) {
+ formatted_price = formatted_price.html() + append_to_price;
+ }
+
+ ppomPriceListContainerRow = jQuery( ' ' )
+ .addClass( 'ppom-option-price-list' )
+ .attr( 'data-option_id', row_id )
+ .attr( 'data-data_name', row_data_name )
+ .appendTo( ppomPriceListContainer );
+
+ if ( item_class ) {
+ ppomPriceListContainerRow.addClass( item_class );
+ }
+
+ // Delete Option
+ if ( row_data_name ) {
+ label =
+ ' ' +
+ label;
+ }
+
+ // Label Item
+ var totalWithoutFixedLabel = jQuery( ' ' )
+ .html( label )
+ .addClass( 'ppom-label-item' )
+ .appendTo( ppomPriceListContainerRow );
+
+ if ( price === '' ) {
+ totalWithoutFixedLabel.attr( 'colspan', '2' );
+ } else {
+ // Price Item
+ var totalWithoutFixedLabel = jQuery( ' ' )
+ .html( formatted_price )
+ .addClass( 'ppom-price-item' )
+ .appendTo( ppomPriceListContainerRow );
+ }
+
+ jQuery.event.trigger( {
+ type: 'ppom_option_price_added',
+ price,
+ item: item_class,
+ time: new Date(),
+ } );
}
// Adding Li item in price container
-function ppom_add_price_item_in_list(label, price, item_class) {
-
- var item_class = item_class || '';
-
- var ppomListItem = jQuery(' ')
- .addClass(item_class)
- .appendTo(ppomPriceListContainer);
- // Label Item
- var totalWithoutFixedLabel = jQuery(' ')
- .html(label)
- .addClass('ppom-label-item')
- .appendTo(ppomListItem);
-
- // Price Item
- var totalWithoutFixedLabel = jQuery(' ')
- .html(price)
- .addClass('ppom-price-item')
- .appendTo(ppomListItem);
+function ppom_add_price_item_in_list( label, price, item_class ) {
+ var item_class = item_class || '';
+
+ const ppomListItem = jQuery( ' ' )
+ .addClass( item_class )
+ .appendTo( ppomPriceListContainer );
+ // Label Item
+ var totalWithoutFixedLabel = jQuery( ' ' )
+ .html( label )
+ .addClass( 'ppom-label-item' )
+ .appendTo( ppomListItem );
+
+ // Price Item
+ var totalWithoutFixedLabel = jQuery( ' ' )
+ .html( price )
+ .addClass( 'ppom-price-item' )
+ .appendTo( ppomListItem );
}
-function ppom_get_wc_price(price, is_discount) {
-
- var do_discount = is_discount || false;
- var wcPriceWithCurrency = jQuery("#ppom-price-cloner").clone().removeAttr('id');
- var is_negative = parseFloat(price) < 0;
+function ppom_get_wc_price( price, is_discount ) {
+ const do_discount = is_discount || false;
+ const wcPriceWithCurrency = jQuery( '#ppom-price-cloner' )
+ .clone()
+ .removeAttr( 'id' );
+ const is_negative = parseFloat( price ) < 0;
- if (is_negative) {
- price = Math.abs(price);
- }
+ if ( is_negative ) {
+ price = Math.abs( price );
+ }
- var ppom_formatted_price = ppom_get_formatted_price(price);
+ const ppom_formatted_price = ppom_get_formatted_price( price );
- wcPriceWithCurrency.find('.ppom-price').html(ppom_formatted_price);
+ wcPriceWithCurrency.find( '.ppom-price' ).html( ppom_formatted_price );
- // Adding (-) symbol
- if (do_discount || is_negative) {
- wcPriceWithCurrency.prepend('-');
- }
- return wcPriceWithCurrency;
+ // Adding (-) symbol
+ if ( do_discount || is_negative ) {
+ wcPriceWithCurrency.prepend( '-' );
+ }
+ return wcPriceWithCurrency;
}
+// Scan every rendered PPOM input and normalize the chosen values into the
+// `ppom_option_price` shape that frontend previews and PHP cart logic share.
function ppom_update_get_prices() {
-
- var options_price_added = [];
-
- PPOMWrapper.find('select,input:checkbox,input:radio,input:text').each(function(i, input) {
-
- // if fielld is hidden
- if (jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide')) return;
-
- // if fixedprice (addon) then return
- if( jQuery(this).hasClass('fixedprice') ) return;
- // if (jQuery("option:selected", this).attr('data-unitprice') !== undefined) return;
- // if( jQuery("option:selected", this).attr('data-price') === undefined ) return;
-
-
- var selected_option_price = jQuery("option:selected", this).attr('data-price') || 0;
- var selected_option_label = jQuery("option:selected", this).attr('data-label');
- var selected_option_title = jQuery("option:selected", this).attr('data-title');
- var selected_option_apply = jQuery("option:selected", this).attr('data-onetime') !== 'on' ? 'variable' : 'onetime';
- var selected_option_taxable = jQuery("option:selected", this).attr('data-taxable');
- var selected_option_without_tax = jQuery("option:selected", this).attr('data-without_tax');
- var selected_option_optionid = jQuery("option:selected", this).attr('data-optionid');
- var selected_option_data_name = jQuery("option:selected", this).attr('data-data_name');
-
- var checked_option_price = jQuery(this).attr('data-price') || 0;
- var checked_option_label = jQuery(this).attr('data-label');
- var checked_option_title = jQuery(this).attr('data-title');
- var checked_option_apply = jQuery(this).attr('data-onetime') !== 'on' ? 'variable' : 'onetime';
- var checked_option_taxable = jQuery(this).attr('data-taxable');
- var checked_option_without_tax = jQuery(this).attr('data-without_tax');
- var checked_option_optionid = jQuery(this).attr('data-optionid');
- var checked_option_data_name = jQuery(this).attr('data-data_name');
-
-
- // apply now being added from data-attribute for new prices
- if (jQuery(this).attr('data-apply') !== undefined) {
- checked_option_apply = jQuery(this).attr('data-apply');
- selected_option_apply = jQuery(this).attr('data-apply');
- }
-
-
- var does_option_has_price = true;
-
- if ((checked_option_price == undefined || checked_option_price == '') &&
- (selected_option_price == undefined || selected_option_price == '')) {
- return;
- }
-
- var option_price = {};
- if (jQuery(this).prop("checked")) {
-
-
- if (checked_option_title !== undefined) {
- option_price.label = checked_option_title + ' ' + checked_option_label;
- }
- else {
- option_price.label = checked_option_label;
- }
- option_price.price = checked_option_price;
- option_price.apply = checked_option_apply;
-
- option_price.product_title = ppom_input_vars.product_title;
- option_price.taxable = checked_option_taxable;
- option_price.without_tax = checked_option_without_tax;
- option_price.option_id = checked_option_optionid;
- option_price.data_name = checked_option_data_name;
-
- // More data attributes
- if (checked_option_apply === 'measure') {
- option_price.qty = jQuery(this).attr('data-qty');
- option_price.use_units = jQuery(this).attr('data-use_units');
- option_price.price_multiplier = jQuery(this).attr('data-price-multiplier');
- }
-
- // console.log(option_price);
-
- options_price_added.push(option_price);
-
- }
- else if (selected_option_price !== undefined && is_option_calculatable(this) && jQuery(this).data('type') !== 'text') {
-
- if (selected_option_title !== undefined) {
- option_price.label = selected_option_title + ' ' + selected_option_label;
- }
- else {
- option_price.label = selected_option_label;
- }
- option_price.price = selected_option_price;
- option_price.apply = selected_option_apply;
-
- option_price.product_title = ppom_input_vars.product_title;
- option_price.taxable = selected_option_taxable;
- option_price.without_tax = selected_option_without_tax;
- option_price.option_id = selected_option_optionid;
- option_price.data_name = selected_option_data_name;
-
- options_price_added.push(option_price);
- }
- else if (jQuery(this).data('type') == 'text' && jQuery(this).val() !== '') {
-
-
- // console.log(checked_option_price);
- checked_option_title = checked_option_title + ' ' +
- ppom_get_formatted_price(checked_option_price);
-
- option_price.label = checked_option_title;
- option_price.price = checked_option_price;
- option_price.apply = checked_option_apply;
-
- option_price.product_title = ppom_input_vars.product_title;
- option_price.taxable = checked_option_taxable;
- option_price.without_tax = '';
-
- options_price_added.push(option_price);
- // console.log(jQuery(this));
- }
-
- });
-
-
- // Price matrix
- var ppom_pricematrix = jQuery(".ppom_pricematrix.active").val();
-
- // if conditionally hidden
- if (jQuery(".ppom_pricematrix.active").closest('.ppom-field-wrapper').hasClass('ppom-c-hide')) {
- ppom_pricematrix = undefined;
- }
-
- var ppom_pricematrix_discount = jQuery(".ppom_pricematrix.active").attr('data-discount');
- var ppom_pricematrix_id = jQuery(".ppom_pricematrix.active").data('dataname');
- var ppom_matrix_array = Array();
- var apply_as_discount = ppom_pricematrix_discount == 'on' ? true : false;
-
- if (ppom_pricematrix !== undefined) {
- jQuery.each(JSON.parse(ppom_pricematrix), function(range, meta) {
- var option_price = {};
-
- var range_break = range.split("-");
- var range_from = parseInt(range_break[0]);
- var range_to = parseInt(range_break[1]);
- var product_qty = ppom_get_order_quantity();
-
- // console.log(range, meta);
-
- if (product_qty >= range_from && product_qty <= range_to) {
-
- option_price.label = meta.label;
- option_price.price = meta.price;
- option_price.percent = meta.percent;
- option_price.range = range;
- option_price.apply = (apply_as_discount) ? 'matrix_discount' : 'matrix';
- option_price.data_name = ppom_pricematrix_id;
- option_price.matrix_fixed = meta.matrix_fixed == 'on' ? true : false;
- options_price_added.push(option_price);
- }
-
- });
- }
-
- // Variation quantities
- var ppom_quantities_qty = 0;
- jQuery('.ppom-input-quantities').each(function() {
-
- // console.log(jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide'));
- if (jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide')) {
- // Resetting quantity to one
- // wc_product_qty.val(1);
- return;
- }
-
- jQuery(this).find('.ppom-quantity').each(function() {
-
-
- var option_price = {};
-
- option_price.price = jQuery(this).attr('data-price');
- option_price.label = jQuery(this).attr('data-label');
- option_price.quantity = (jQuery(this).val() === '') ? 0 : jQuery(this).val();
- option_price.include = jQuery(this).attr('data-includeprice');
- option_price.apply = 'quantities';
- option_price.usebase_price = jQuery(this).attr('data-usebase_price');
- option_price.unlink_qty = jQuery(this).attr('data-unlink_qty');
-
- options_price_added.push(option_price);
-
- if( option_price.unlink_qty !== 'on' ){
- ppom_quantities_qty += parseInt(option_price.quantity);
- ppom_set_order_quantity(ppom_quantities_qty);
- }
- });
- });
-
-
- // WC Variation Quantity Addon
- var ppom_wcvq = 0;
- jQuery('.ppom-wcvq-input').each(function() {
-
-
- var option_price = {};
-
- option_price.price = jQuery(this).attr('data-price');
-
- option_price.label = jQuery(this).attr('data-label');
- option_price.quantity = (jQuery(this).val() === '') ? 0 : jQuery(this).val();
- option_price.include = jQuery(this).attr('data-includeprice');
- option_price.apply = 'wc_variation_quantities';
- ppom_wcvq += parseInt(option_price.quantity);
-
- options_price_added.push(option_price);
- ppom_set_order_quantity(ppom_wcvq);
- });
-
-
-
- // Bulkquantity
- jQuery('.bulkquantity').each(function() {
-
- // console.log(jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide'));
- if (jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide')) {
- // Resetting quantity to one
- // wc_product_qty.val(1);
- return;
- }
-
- var option_price = {};
-
-
- // var ppom_bq_container = jQuery('#ppom-input-bulkquantity');
-
- option_price.price = jQuery(this).find('.ppom-bulkquantity-options option:selected').attr('data-price');
- option_price.base = jQuery(this).find('.ppom-bulkquantity-options option:selected').attr('data-baseprice');
- option_price.label = jQuery(this).find('.ppom-bulkquantity-options option:selected').attr('data-label');
- option_price.quantity = jQuery(this).find('.ppom-bulkquantity-qty').val();
- option_price.include = jQuery(this).find('.ppom-bulkquantity-options').attr('data-includeprice');
- option_price.apply = 'bulkquantity';
- //console.log(jQuery(this));
- options_price_added.push(option_price);
- ppom_set_order_quantity(option_price.quantity);
-
- });
-
- // Fixedprice addon
- if (jQuery('.ppom-input-fixedprice').length > 0) {
-
- var option_price = {};
-
- var ppom_fp_container = jQuery('.ppom-input-fixedprice.ppom-unlocked');
- var view_type = ppom_fp_container.attr('data-input');
- var selector = view_type == 'select' ? 'select option:selected' : 'input[type="radio"]:checked';
-
- option_price.price = ppom_fp_container.find(selector).attr('data-price') || 0;
- option_price.unitprice = ppom_fp_container.find(selector).attr('data-unitprice') || 0;
- option_price.label = ppom_fp_container.find(selector).attr('data-label') || '';
- option_price.quantity = ppom_fp_container.find(selector).attr('data-qty') || 0;
- // option_price.include = jQuery(this).attr('data-includeprice');
- option_price.apply = 'fixedprice';
- options_price_added.push(option_price);
-
- }
-
-
- // Event Calendar Add-on
- var ppom_quantities_qty = 0;
- jQuery('.ppom-input-eventcalendar').each(function() {
-
- // Checking if quantities is hidden
- if (jQuery(this).hasClass('ppom-locked')) {
- // Resetting quantity to one
- wc_product_qty.val(1);
- return;
- }
-
- jQuery(this).find('.ppom-eventcalendar').each(function() {
-
-
- var option_price = {};
-
- option_price.price = jQuery(this).attr('data-price');
- option_price.label = jQuery(this).attr('data-label');
- option_price.quantity = (jQuery(this).val() === '') ? 0 : jQuery(this).val();
- option_price.include = '';
- option_price.apply = 'eventcalendar';
- ppom_quantities_qty += parseInt(option_price.quantity);
-
- // console.log(ppom_quantities_qty);
- options_price_added.push(option_price);
- ppom_set_order_quantity(ppom_quantities_qty);
- });
- });
-
- // console.log(options_price_added);
- return options_price_added;
+ const options_price_added = [];
+
+ PPOMWrapper.find( 'select,input:checkbox,input:radio,input:text' ).each(
+ function ( i, input ) {
+ // if fielld is hidden
+ if (
+ jQuery( this )
+ .closest( '.ppom-field-wrapper' )
+ .hasClass( 'ppom-c-hide' )
+ ) {
+ return;
+ }
+
+ // if fixedprice (addon) then return
+ if ( jQuery( this ).hasClass( 'fixedprice' ) ) {
+ return;
+ }
+ // if (jQuery("option:selected", this).attr('data-unitprice') !== undefined) return;
+ // if( jQuery("option:selected", this).attr('data-price') === undefined ) return;
+
+ const selected_option_price =
+ jQuery( 'option:selected', this ).attr( 'data-price' ) || 0;
+ const selected_option_label = jQuery(
+ 'option:selected',
+ this
+ ).attr( 'data-label' );
+ const selected_option_title = jQuery(
+ 'option:selected',
+ this
+ ).attr( 'data-title' );
+ let selected_option_apply =
+ jQuery( 'option:selected', this ).attr( 'data-onetime' ) !==
+ 'on'
+ ? 'variable'
+ : 'onetime';
+ const selected_option_taxable = jQuery(
+ 'option:selected',
+ this
+ ).attr( 'data-taxable' );
+ const selected_option_without_tax = jQuery(
+ 'option:selected',
+ this
+ ).attr( 'data-without_tax' );
+ const selected_option_optionid = jQuery(
+ 'option:selected',
+ this
+ ).attr( 'data-optionid' );
+ const selected_option_data_name = jQuery(
+ 'option:selected',
+ this
+ ).attr( 'data-data_name' );
+
+ const checked_option_price =
+ jQuery( this ).attr( 'data-price' ) || 0;
+ const checked_option_label = jQuery( this ).attr( 'data-label' );
+ let checked_option_title = jQuery( this ).attr( 'data-title' );
+ let checked_option_apply =
+ jQuery( this ).attr( 'data-onetime' ) !== 'on'
+ ? 'variable'
+ : 'onetime';
+ const checked_option_taxable =
+ jQuery( this ).attr( 'data-taxable' );
+ const checked_option_without_tax =
+ jQuery( this ).attr( 'data-without_tax' );
+ const checked_option_optionid =
+ jQuery( this ).attr( 'data-optionid' );
+ const checked_option_data_name =
+ jQuery( this ).attr( 'data-data_name' );
+
+ // apply now being added from data-attribute for new prices
+ if ( jQuery( this ).attr( 'data-apply' ) !== undefined ) {
+ checked_option_apply = jQuery( this ).attr( 'data-apply' );
+ selected_option_apply = jQuery( this ).attr( 'data-apply' );
+ }
+
+ const does_option_has_price = true;
+
+ if (
+ ( checked_option_price == undefined ||
+ checked_option_price == '' ) &&
+ ( selected_option_price == undefined ||
+ selected_option_price == '' )
+ ) {
+ return;
+ }
+
+ const option_price = {};
+ if ( jQuery( this ).prop( 'checked' ) ) {
+ if ( checked_option_title !== undefined ) {
+ option_price.label =
+ checked_option_title + ' ' + checked_option_label;
+ } else {
+ option_price.label = checked_option_label;
+ }
+ option_price.price = checked_option_price;
+ option_price.apply = checked_option_apply;
+
+ option_price.product_title = ppom_input_vars.product_title;
+ option_price.taxable = checked_option_taxable;
+ option_price.without_tax = checked_option_without_tax;
+ option_price.option_id = checked_option_optionid;
+ option_price.data_name = checked_option_data_name;
+
+ // More data attributes
+ if ( checked_option_apply === 'measure' ) {
+ option_price.qty = jQuery( this ).attr( 'data-qty' );
+ option_price.use_units =
+ jQuery( this ).attr( 'data-use_units' );
+ option_price.price_multiplier = jQuery( this ).attr(
+ 'data-price-multiplier'
+ );
+ }
+
+ // console.log(option_price);
+
+ options_price_added.push( option_price );
+ } else if (
+ selected_option_price !== undefined &&
+ is_option_calculatable( this ) &&
+ jQuery( this ).data( 'type' ) !== 'text'
+ ) {
+ if ( selected_option_title !== undefined ) {
+ option_price.label =
+ selected_option_title + ' ' + selected_option_label;
+ } else {
+ option_price.label = selected_option_label;
+ }
+ option_price.price = selected_option_price;
+ option_price.apply = selected_option_apply;
+
+ option_price.product_title = ppom_input_vars.product_title;
+ option_price.taxable = selected_option_taxable;
+ option_price.without_tax = selected_option_without_tax;
+ option_price.option_id = selected_option_optionid;
+ option_price.data_name = selected_option_data_name;
+
+ options_price_added.push( option_price );
+ } else if (
+ jQuery( this ).data( 'type' ) == 'text' &&
+ jQuery( this ).val() !== ''
+ ) {
+ // console.log(checked_option_price);
+ checked_option_title =
+ checked_option_title +
+ ' ' +
+ ppom_get_formatted_price( checked_option_price );
+
+ option_price.label = checked_option_title;
+ option_price.price = checked_option_price;
+ option_price.apply = checked_option_apply;
+
+ option_price.product_title = ppom_input_vars.product_title;
+ option_price.taxable = checked_option_taxable;
+ option_price.without_tax = '';
+
+ options_price_added.push( option_price );
+ // console.log(jQuery(this));
+ }
+ }
+ );
+
+ // Price matrix
+ let ppom_pricematrix = jQuery( '.ppom_pricematrix.active' ).val();
+
+ // if conditionally hidden
+ if (
+ jQuery( '.ppom_pricematrix.active' )
+ .closest( '.ppom-field-wrapper' )
+ .hasClass( 'ppom-c-hide' )
+ ) {
+ ppom_pricematrix = undefined;
+ }
+
+ const ppom_pricematrix_discount = jQuery( '.ppom_pricematrix.active' ).attr(
+ 'data-discount'
+ );
+ const ppom_pricematrix_id = jQuery( '.ppom_pricematrix.active' ).data(
+ 'dataname'
+ );
+ const ppom_matrix_array = Array();
+ const apply_as_discount = ppom_pricematrix_discount == 'on' ? true : false;
+
+ if ( ppom_pricematrix !== undefined ) {
+ jQuery.each( JSON.parse( ppom_pricematrix ), function ( range, meta ) {
+ const option_price = {};
+
+ const range_break = range.split( '-' );
+ const range_from = parseInt( range_break[ 0 ] );
+ const range_to = parseInt( range_break[ 1 ] );
+ const product_qty = ppom_get_order_quantity();
+
+ // console.log(range, meta);
+
+ if ( product_qty >= range_from && product_qty <= range_to ) {
+ option_price.label = meta.label;
+ option_price.price = meta.price;
+ option_price.percent = meta.percent;
+ option_price.range = range;
+ option_price.apply = apply_as_discount
+ ? 'matrix_discount'
+ : 'matrix';
+ option_price.data_name = ppom_pricematrix_id;
+ option_price.matrix_fixed =
+ meta.matrix_fixed == 'on' ? true : false;
+ options_price_added.push( option_price );
+ }
+ } );
+ }
+
+ // Variation quantities
+ var ppom_quantities_qty = 0;
+ jQuery( '.ppom-input-quantities' ).each( function () {
+ // console.log(jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide'));
+ if (
+ jQuery( this )
+ .closest( '.ppom-field-wrapper' )
+ .hasClass( 'ppom-c-hide' )
+ ) {
+ // Resetting quantity to one
+ // wc_product_qty.val(1);
+ return;
+ }
+
+ jQuery( this )
+ .find( '.ppom-quantity' )
+ .each( function () {
+ const option_price = {};
+
+ option_price.price = jQuery( this ).attr( 'data-price' );
+ option_price.label = jQuery( this ).attr( 'data-label' );
+ option_price.quantity =
+ jQuery( this ).val() === '' ? 0 : jQuery( this ).val();
+ option_price.include =
+ jQuery( this ).attr( 'data-includeprice' );
+ option_price.apply = 'quantities';
+ option_price.usebase_price =
+ jQuery( this ).attr( 'data-usebase_price' );
+ option_price.unlink_qty =
+ jQuery( this ).attr( 'data-unlink_qty' );
+
+ options_price_added.push( option_price );
+
+ if ( option_price.unlink_qty !== 'on' ) {
+ ppom_quantities_qty += parseInt( option_price.quantity );
+ ppom_set_order_quantity( ppom_quantities_qty );
+ }
+ } );
+ } );
+
+ // WC Variation Quantity Addon
+ let ppom_wcvq = 0;
+ jQuery( '.ppom-wcvq-input' ).each( function () {
+ const option_price = {};
+
+ option_price.price = jQuery( this ).attr( 'data-price' );
+
+ option_price.label = jQuery( this ).attr( 'data-label' );
+ option_price.quantity =
+ jQuery( this ).val() === '' ? 0 : jQuery( this ).val();
+ option_price.include = jQuery( this ).attr( 'data-includeprice' );
+ option_price.apply = 'wc_variation_quantities';
+ ppom_wcvq += parseInt( option_price.quantity );
+
+ options_price_added.push( option_price );
+ ppom_set_order_quantity( ppom_wcvq );
+ } );
+
+ // Bulkquantity
+ jQuery( '.bulkquantity' ).each( function () {
+ // console.log(jQuery(this).closest('.ppom-field-wrapper').hasClass('ppom-c-hide'));
+ if (
+ jQuery( this )
+ .closest( '.ppom-field-wrapper' )
+ .hasClass( 'ppom-c-hide' )
+ ) {
+ // Resetting quantity to one
+ // wc_product_qty.val(1);
+ return;
+ }
+
+ const option_price = {};
+
+ // var ppom_bq_container = jQuery('#ppom-input-bulkquantity');
+
+ option_price.price = jQuery( this )
+ .find( '.ppom-bulkquantity-options option:selected' )
+ .attr( 'data-price' );
+ option_price.base = jQuery( this )
+ .find( '.ppom-bulkquantity-options option:selected' )
+ .attr( 'data-baseprice' );
+ option_price.label = jQuery( this )
+ .find( '.ppom-bulkquantity-options option:selected' )
+ .attr( 'data-label' );
+ option_price.quantity = jQuery( this )
+ .find( '.ppom-bulkquantity-qty' )
+ .val();
+ option_price.include = jQuery( this )
+ .find( '.ppom-bulkquantity-options' )
+ .attr( 'data-includeprice' );
+ option_price.apply = 'bulkquantity';
+ //console.log(jQuery(this));
+ options_price_added.push( option_price );
+ ppom_set_order_quantity( option_price.quantity );
+ } );
+
+ // Fixedprice addon
+ if ( jQuery( '.ppom-input-fixedprice' ).length > 0 ) {
+ const option_price = {};
+
+ const ppom_fp_container = jQuery(
+ '.ppom-input-fixedprice.ppom-unlocked'
+ );
+ const view_type = ppom_fp_container.attr( 'data-input' );
+ const selector =
+ view_type == 'select'
+ ? 'select option:selected'
+ : 'input[type="radio"]:checked';
+
+ option_price.price =
+ ppom_fp_container.find( selector ).attr( 'data-price' ) || 0;
+ option_price.unitprice =
+ ppom_fp_container.find( selector ).attr( 'data-unitprice' ) || 0;
+ option_price.label =
+ ppom_fp_container.find( selector ).attr( 'data-label' ) || '';
+ option_price.quantity =
+ ppom_fp_container.find( selector ).attr( 'data-qty' ) || 0;
+ // option_price.include = jQuery(this).attr('data-includeprice');
+ option_price.apply = 'fixedprice';
+ options_price_added.push( option_price );
+ }
+
+ // Event Calendar Add-on
+ var ppom_quantities_qty = 0;
+ jQuery( '.ppom-input-eventcalendar' ).each( function () {
+ // Checking if quantities is hidden
+ if ( jQuery( this ).hasClass( 'ppom-locked' ) ) {
+ // Resetting quantity to one
+ wc_product_qty.val( 1 );
+ return;
+ }
+
+ jQuery( this )
+ .find( '.ppom-eventcalendar' )
+ .each( function () {
+ const option_price = {};
+
+ option_price.price = jQuery( this ).attr( 'data-price' );
+ option_price.label = jQuery( this ).attr( 'data-label' );
+ option_price.quantity =
+ jQuery( this ).val() === '' ? 0 : jQuery( this ).val();
+ option_price.include = '';
+ option_price.apply = 'eventcalendar';
+ ppom_quantities_qty += parseInt( option_price.quantity );
+
+ // console.log(ppom_quantities_qty);
+ options_price_added.push( option_price );
+ ppom_set_order_quantity( ppom_quantities_qty );
+ } );
+ } );
+
+ // console.log(options_price_added);
+ return options_price_added;
}
-function ppom_get_formatted_price(price) {
- var no_of_decimal = ppom_input_vars.wc_no_decimal || 2;
- var thousand_sep = ppom_input_vars.wc_thousand_sep || ',';
- var decimal_separator = ppom_input_vars.wc_decimal_sep || '.';
+function ppom_get_formatted_price( price ) {
+ const no_of_decimal = ppom_input_vars.wc_no_decimal || 2;
+ const thousand_sep = ppom_input_vars.wc_thousand_sep || ',';
+ var decimal_separator = ppom_input_vars.wc_decimal_sep || '.';
- var formatted_price = accounting.formatNumber(price, no_of_decimal, thousand_sep, decimal_separator);
+ const formatted_price = accounting.formatNumber(
+ price,
+ no_of_decimal,
+ thousand_sep,
+ decimal_separator
+ );
- var decimal_separator = ppom_input_vars.wc_decimal_sep;
+ var decimal_separator = ppom_input_vars.wc_decimal_sep;
- return formatted_price;
+ return formatted_price;
}
// Return formatted price with decimal and seperator
@@ -1000,165 +1248,163 @@ function ppom_get_formatted_price(price) {
// });
// }
-
// sometime options should not be calculated like in case of bulkquantity
-function is_option_calculatable(selector) {
-
- var option_calculatable = true;
- if (jQuery(selector).attr('data-type') === 'bulkquantity') {
- option_calculatable = false;
- }
+function is_option_calculatable( selector ) {
+ let option_calculatable = true;
+ if ( jQuery( selector ).attr( 'data-type' ) === 'bulkquantity' ) {
+ option_calculatable = false;
+ }
- return option_calculatable;
+ return option_calculatable;
}
// Return quantity
function ppom_get_order_quantity() {
-
- var quantity = ppom_input_vars.is_shortcode === 'yes' ? 1 : wc_product_qty.val();
- quantity = quantity || 1;
- return parseInt(quantity);
-
+ let quantity =
+ ppom_input_vars.is_shortcode === 'yes' ? 1 : wc_product_qty.val();
+ quantity = quantity || 1;
+ return parseInt( quantity );
}
// Set quantity
-function ppom_set_order_quantity(qty) {
- wc_product_qty.val(qty);
- // for some theme issue
- jQuery('form.cart').find('input[name="quantity"]').val(qty);
+function ppom_set_order_quantity( qty ) {
+ wc_product_qty.val( qty );
+ // for some theme issue
+ jQuery( 'form.cart' ).find( 'input[name="quantity"]' ).val( qty );
}
-// Deleting option from price table
-function ppom_delete_option_from_price_table(field_name, option_id) {
-
- var field_type = ppom_get_field_type_by_id(field_name);
-
- // get product id
- var product_id = ppom_input_vars.product_id;
- var opt_id = product_id + '-' + field_name + '-' + option_id;
-
- switch (field_type) {
-
- case 'palettes':
- case 'radio':
- case 'checkbox':
- jQuery("#" + opt_id).prop('checked', false);
- ppom_update_option_prices();
- break;
-
- case 'select':
- jQuery("#" + field_name).val('');
- ppom_update_option_prices();
- break;
-
- case 'image':
- jQuery("#" + option_id).prop('checked', false);
- ppom_update_option_prices();
- break;
- }
-
- jQuery(`.ppom-input[data-data_name="${field_name}"]`).trigger('change');
+// The summary table can also remove selections, so mirror that back into the
+// original form control and let the regular change listeners recompute prices.
+function ppom_delete_option_from_price_table( field_name, option_id ) {
+ const field_type = ppom_get_field_type_by_id( field_name );
+
+ // get product id
+ const product_id = ppom_input_vars.product_id;
+ const opt_id = product_id + '-' + field_name + '-' + option_id;
+
+ switch ( field_type ) {
+ case 'palettes':
+ case 'radio':
+ case 'checkbox':
+ jQuery( '#' + opt_id ).prop( 'checked', false );
+ ppom_update_option_prices();
+ break;
+
+ case 'select':
+ jQuery( '#' + field_name ).val( '' );
+ ppom_update_option_prices();
+ break;
+
+ case 'image':
+ jQuery( '#' + option_id ).prop( 'checked', false );
+ ppom_update_option_prices();
+ break;
+ }
+
+ jQuery( `.ppom-input[data-data_name="${ field_name }"]` ).trigger(
+ 'change'
+ );
}
-// Update variation quantity price if baseprice is set = yes
-function ppom_update_variation_quatity(price) {
-
- jQuery('input.ppom-quantity').each(function(i, q) {
-
- if (jQuery(q).attr('data-usebase_price') == 'yes') {
- jQuery(q).attr('data-price', price);
- }
- });
+// Variation-quantity rows can derive their unit price from the selected base
+// WooCommerce variation, so this refresh runs whenever variation prices change.
+function ppom_update_variation_quatity( price ) {
+ jQuery( 'input.ppom-quantity' ).each( function ( i, q ) {
+ if ( jQuery( q ).attr( 'data-usebase_price' ) == 'yes' ) {
+ jQuery( q ).attr( 'data-price', price );
+ }
+ } );
}
// Return ammount after apply percent
-function ppom_get_amount_after_percentage(base_amount, percent) {
-
- base_amount = parseFloat(base_amount);
- var percent_amount = 0;
- percent = percent.substr(0, percent.length - 1);
- percent_amount = (parseFloat(percent) / 100) * base_amount;
-
- return percent_amount;
+function ppom_get_amount_after_percentage( base_amount, percent ) {
+ base_amount = parseFloat( base_amount );
+ let percent_amount = 0;
+ percent = percent.substr( 0, percent.length - 1 );
+ percent_amount = ( parseFloat( percent ) / 100 ) * base_amount;
+ return percent_amount;
}
// Buil price object of given ppom input
-function ppom_build_input_price_meta(field_dataname) {
-
- var field_meta = ppom_get_field_meta_by_id(field_dataname);
- var field_type = field_meta['type'] || '';
-
- if (!field_meta) return '';
-
- var ppom_field_price = {};
- var apply = field_meta['onetime'] === 'on' ? 'onetime' : 'variable';
-
- switch (field_type) {
- case 'text':
-
- ppom_field_price = {
- product_title: ppom_input_vars.product_title,
- taxable: field_meta['taxable'] || '',
- without_tax: field_meta['without_tax'] || '',
- data_name: field_dataname,
- price: field_meta['price'] || 0,
- apply: apply,
- }
- break;
-
- default:
- // code
- }
-
- //console.log(ppom_field_price);
-
- /*option_price.product_title = ppom_input_vars.product_title;
+function ppom_build_input_price_meta( field_dataname ) {
+ const field_meta = ppom_get_field_meta_by_id( field_dataname );
+ const field_type = field_meta.type || '';
+
+ if ( ! field_meta ) {
+ return '';
+ }
+
+ let ppom_field_price = {};
+ const apply = field_meta.onetime === 'on' ? 'onetime' : 'variable';
+
+ switch ( field_type ) {
+ case 'text':
+ ppom_field_price = {
+ product_title: ppom_input_vars.product_title,
+ taxable: field_meta.taxable || '',
+ without_tax: field_meta.without_tax || '',
+ data_name: field_dataname,
+ price: field_meta.price || 0,
+ apply,
+ };
+ break;
+
+ default:
+ // code
+ }
+
+ //console.log(ppom_field_price);
+
+ /*option_price.product_title = ppom_input_vars.product_title;
option_price.taxable = checked_option_taxable;
option_price.without_tax = checked_option_without_tax;
option_price.data_name = checked_option_data_name;
option_price.price = checked_option_price;
option_price.apply = checked_option_apply;*/
-
}
-function ppom_quantities_min_max(dataname) {
-
- let ppomInputWrapper = jQuery(".ppom-input-" + dataname);
- let list = jQuery('.ppom-quantity', ppomInputWrapper);
-
- //convert to array
- list = Array.from(list);
-
- let totalQty = 0;
- let min_qty = '';
- let max_qty = '';
- let _input = '';
- let _return = false;
-
- list.map((elem, index) => {
- _input = jQuery(elem);
- let QTY = parseInt(_input.val()) || 0;
- min_qty = parseInt(_input.attr('data-min')) || 0;
- max_qty = parseInt(_input.attr('data-max')) || 0;
-
- if (isNaN(QTY)) { return false; }
-
- totalQty += QTY;
- // console.log(totalQty);
- });
-
- if (min_qty > totalQty) {
- jQuery('form.cart').find('button[name="add-to-cart"]').prop('disabled', true);
- }
- else if (max_qty < totalQty && max_qty != 0) {
- alert('Maximum ' + max_qty + ' allowed');
- ppom_update_option_prices();
- _return = true;
- }
- else {
- jQuery('form.cart').find('button[name="add-to-cart"]').prop('disabled', false);
- }
-
- return _return;
+// Quantity-type fields can disable add to cart until their aggregate rules pass.
+function ppom_quantities_min_max( dataname ) {
+ const ppomInputWrapper = jQuery( '.ppom-input-' + dataname );
+ let list = jQuery( '.ppom-quantity', ppomInputWrapper );
+
+ //convert to array
+ list = Array.from( list );
+
+ let totalQty = 0;
+ let min_qty = '';
+ let max_qty = '';
+ let _input = '';
+ let _return = false;
+
+ list.map( ( elem, index ) => {
+ _input = jQuery( elem );
+ const QTY = parseInt( _input.val() ) || 0;
+ min_qty = parseInt( _input.attr( 'data-min' ) ) || 0;
+ max_qty = parseInt( _input.attr( 'data-max' ) ) || 0;
+
+ if ( isNaN( QTY ) ) {
+ return false;
+ }
+
+ totalQty += QTY;
+ // console.log(totalQty);
+ } );
+
+ if ( min_qty > totalQty ) {
+ jQuery( 'form.cart' )
+ .find( 'button[name="add-to-cart"]' )
+ .prop( 'disabled', true );
+ } else if ( max_qty < totalQty && max_qty != 0 ) {
+ alert( 'Maximum ' + max_qty + ' allowed' );
+ ppom_update_option_prices();
+ _return = true;
+ } else {
+ jQuery( 'form.cart' )
+ .find( 'button[name="add-to-cart"]' )
+ .prop( 'disabled', false );
+ }
+
+ return _return;
}
diff --git a/js/validate.js b/js/validate.js
index 24395990..568df7c5 100644
--- a/js/validate.js
+++ b/js/validate.js
@@ -3,215 +3,286 @@
* @Since version 24.2
* By: Najeeb Ahmad
* Date: January 19, 2022
- **/
-
+ */
+
/*global jQuery ppom_get_element_value ppom_input_vars*/
-
+
const PPOM_Validate = {
-
- field_meta: ppom_input_vars.field_meta.filter(f => f.required === "on" || f.type === 'quantities' ),
- passed: true,
- $ppom_input: jQuery('.ppom-input.ppom-required'),
- $ppom_input_texts: jQuery('.ppom-input.ppom-required.text, .ppom-input.ppom-required.email, .ppom-input.ppom-required.number,.ppom-input.ppom-required.quantityoption,.ppom-measure-input'),
-
- init : async () => {
-
- jQuery(document).bind('ppom_uploaded_file_removed', async function(e) {
- PPOM_Validate.validate_data()
- .then(PPOM_Validate.enable_button, PPOM_Validate.disable_button);
- });
-
- jQuery(document).bind('ppom_field_shown', async function(e) {
- PPOM_Validate.validate_data()
- .then(PPOM_Validate.enable_button, PPOM_Validate.disable_button);
- });
-
- jQuery(document).bind('ppom_field_hidden', async function(e) {
- PPOM_Validate.validate_data()
- .then(PPOM_Validate.enable_button, PPOM_Validate.disable_button);
- });
-
- jQuery(document).on('change', PPOM_Validate.$ppom_input, async function(e){
- PPOM_Validate.validate_data()
- .then(PPOM_Validate.enable_button, PPOM_Validate.disable_button);
- });
-
- // keyup events for texts input e.g: text,email,number
- PPOM_Validate.$ppom_input_texts.keyup(async function(e){
- PPOM_Validate.validate_data()
- .then(PPOM_Validate.enable_button, PPOM_Validate.disable_button);
- });
-
- PPOM_Validate.validate_data()
- .then(PPOM_Validate.enable_button, PPOM_Validate.disable_button);
-
- },
-
- validate_data: () => {
-
- return new Promise( function(resolve, reject){
-
- const invalid_fields = PPOM_Validate.field_meta.filter(f => !PPOM_Validate.field_has_valid_data(f) && !PPOM_Validate.is_field_hidden(f.data_name))
- const validate_result = invalid_fields.length > 0 ? false : true;
- //console.log(invalid_fields);
-
- return validate_result ? resolve() : reject(invalid_fields);
- });
- },
-
- is_field_hidden: (data_name) => {
-
- // console.log(data_name, jQuery(`.ppom-field-wrapper.${data_name}.ppom-c-hide`).length > 0);
- return jQuery(`.ppom-field-wrapper.${data_name}.ppom-c-hide`).length > 0;
- },
-
- /**
+ field_meta: ppom_input_vars.field_meta.filter(
+ ( f ) => f.required === 'on' || f.type === 'quantities'
+ ),
+ passed: true,
+ $ppom_input: jQuery( '.ppom-input.ppom-required' ),
+ $ppom_input_texts: jQuery(
+ '.ppom-input.ppom-required.text, .ppom-input.ppom-required.email, .ppom-input.ppom-required.number,.ppom-input.ppom-required.quantityoption,.ppom-measure-input'
+ ),
+
+ init: async () => {
+ jQuery( document ).bind(
+ 'ppom_uploaded_file_removed',
+ async function ( e ) {
+ PPOM_Validate.validate_data().then(
+ PPOM_Validate.enable_button,
+ PPOM_Validate.disable_button
+ );
+ }
+ );
+
+ jQuery( document ).bind( 'ppom_field_shown', async function ( e ) {
+ PPOM_Validate.validate_data().then(
+ PPOM_Validate.enable_button,
+ PPOM_Validate.disable_button
+ );
+ } );
+
+ jQuery( document ).bind( 'ppom_field_hidden', async function ( e ) {
+ PPOM_Validate.validate_data().then(
+ PPOM_Validate.enable_button,
+ PPOM_Validate.disable_button
+ );
+ } );
+
+ jQuery( document ).on(
+ 'change',
+ PPOM_Validate.$ppom_input,
+ async function ( e ) {
+ PPOM_Validate.validate_data().then(
+ PPOM_Validate.enable_button,
+ PPOM_Validate.disable_button
+ );
+ }
+ );
+
+ // keyup events for texts input e.g: text,email,number
+ PPOM_Validate.$ppom_input_texts.keyup( async function ( e ) {
+ PPOM_Validate.validate_data().then(
+ PPOM_Validate.enable_button,
+ PPOM_Validate.disable_button
+ );
+ } );
+
+ PPOM_Validate.validate_data().then(
+ PPOM_Validate.enable_button,
+ PPOM_Validate.disable_button
+ );
+ },
+
+ validate_data: () => {
+ return new Promise( function ( resolve, reject ) {
+ const invalid_fields = PPOM_Validate.field_meta.filter(
+ ( f ) =>
+ ! PPOM_Validate.field_has_valid_data( f ) &&
+ ! PPOM_Validate.is_field_hidden( f.data_name )
+ );
+ const validate_result = invalid_fields.length > 0 ? false : true;
+ //console.log(invalid_fields);
+
+ return validate_result ? resolve() : reject( invalid_fields );
+ } );
+ },
+
+ is_field_hidden: ( data_name ) => {
+ // console.log(data_name, jQuery(`.ppom-field-wrapper.${data_name}.ppom-c-hide`).length > 0);
+ return (
+ jQuery( `.ppom-field-wrapper.${ data_name }.ppom-c-hide` ).length >
+ 0
+ );
+ },
+
+ /**
* When a variation is hidden.
+ * @param invalid_fields
*/
- disable_button: (invalid_fields) => {
- const $form = jQuery('form.cart');
+ disable_button: ( invalid_fields ) => {
+ const $form = jQuery( 'form.cart' );
$form
.find( '.single_add_to_cart_button' )
.removeClass( 'wc-variation-is-unavailable' )
.addClass( 'disabled wc-variation-selection-needed' )
- .prop('disabled', true);
+ .prop( 'disabled', true );
$form
.find( '.woocommerce-variation-add-to-cart' )
.removeClass( 'woocommerce-variation-add-to-cart-enabled' )
.addClass( 'woocommerce-variation-add-to-cart-disabled' )
- .prop('disabled', true);
-
- // console.log('disabled', invalid_fields);
- PPOM_Validate.show_errors(invalid_fields);
+ .prop( 'disabled', true );
+
+ // console.log('disabled', invalid_fields);
+ PPOM_Validate.show_errors( invalid_fields );
},
-
+
enable_button: () => {
- const $form = jQuery('form.cart');
+ const $form = jQuery( 'form.cart' );
$form
.find( '.single_add_to_cart_button' )
- .removeClass( 'disabled wc-variation-selection-needed wc-variation-is-unavailable' )
- .prop('disabled', false);
+ .removeClass(
+ 'disabled wc-variation-selection-needed wc-variation-is-unavailable'
+ )
+ .prop( 'disabled', false );
$form
.find( '.woocommerce-variation-add-to-cart' )
.removeClass( 'woocommerce-variation-add-to-cart-disabled' )
.addClass( 'woocommerce-variation-add-to-cart-enabled' )
- .prop('disabled', false);
-
- //hide error
- jQuery('#ppom-error-container').html('');
+ .prop( 'disabled', false );
+
+ //hide error
+ jQuery( '#ppom-error-container' ).html( '' );
+ },
+
+ show_errors: ( invalid_fields ) => {
+ //console.log(invalid_fields);
+ const $container = jQuery( '#ppom-error-container' ).html( '' );
+ const $ul_container = jQuery( '' )
+ .addClass( 'woocommerce-error' )
+ .appendTo( $container );
+ invalid_fields.forEach( ( f ) =>
+ $ul_container.append(
+ `${ PPOM_Validate.get_message( f ) } `
+ )
+ );
+ },
+
+ get_message( field_meta ) {
+ return field_meta.error_message !== ''
+ ? field_meta.error_message
+ : `${ field_meta.title } ${ ppom_input_vars.validate_msg }`;
+ },
+
+ field_has_valid_data( field ) {
+ const data_name = field.data_name;
+ let ppom_type = PPOM_Validate.get_input_dom_type( data_name );
+ if (
+ field.type === 'imageselect' ||
+ field.type === 'quantities' ||
+ field.type === 'fonts'
+ ) {
+ ppom_type = field.type;
+ }
+
+ let element_value = '';
+ // console.log(field, ppom_type);
+
+ switch ( ppom_type ) {
+ case 'switcher':
+ case 'radio':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).length;
+ return element_value !== 0;
+ break;
+ case 'palettes':
+ case 'checkbox':
+ element_value = jQuery(
+ 'input[name="ppom[fields][' + data_name + '][]"]:checked'
+ ).length;
+ if (
+ ( field.min_checked &&
+ element_value < Number( field.min_checked ) ) ||
+ ( field.max_checked &&
+ element_value > Number( field.max_checked ) )
+ ) {
+ // console.log('no ok');
+ return false;
+ }
+ return element_value !== 0;
+
+ break;
+ case 'quantities':
+ var all_quantities = jQuery(
+ `input.ppom-quantity[data-data_name="${ data_name }"]`
+ );
+ var total_q = 0;
+ jQuery.each( all_quantities, function ( i, item ) {
+ total_q += Number( jQuery( item ).val() );
+ } );
+ if (
+ ( field.min_qty && total_q < Number( field.min_qty ) ) ||
+ ( field.max_qty && total_q > Number( field.max_qty ) )
+ ) {
+ return false;
+ }
+ return true;
+
+ case 'image':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).length;
+ if (
+ ( field.min_checked &&
+ element_value < Number( field.min_checked ) ) ||
+ ( field.max_checked &&
+ element_value > Number( field.max_checked ) )
+ ) {
+ // console.log('no ok');
+ return false;
+ }
+ return element_value !== 0;
+
+ break;
+ case 'imageselect':
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).length;
+ // element_value = 0;
+ return element_value !== 0;
+ break;
+ case 'fonts':
+ element_value = jQuery(
+ `#ppom-font-picker-${ data_name }`
+ ).data( 'fontfamily' );
+ // element_value = 0;
+ return element_value !== undefined;
+ break;
+ case 'fixedprice':
+ var render_type = jQuery( `.ppom-input-${ data_name }` ).attr(
+ 'data-input'
+ );
+ if ( render_type == 'radio' ) {
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]:checked`
+ ).length;
+ } else {
+ element_value = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val().length;
+ }
+ return element_value !== 0;
+ break;
+ case 'measure':
+ element_value =
+ jQuery( `#${ data_name }` ).val() != null
+ ? jQuery( `#${ data_name }` ).val().length
+ : 0;
+ return element_value !== 0;
+ break;
+
+ default:
+ element_value =
+ jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val() != null
+ ? jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ ).val().length
+ : 0;
+ return element_value !== 0;
+ break;
+ }
},
-
- show_errors: (invalid_fields) => {
- //console.log(invalid_fields);
- const $container = jQuery('#ppom-error-container').html('');
- const $ul_container = jQuery('').addClass('woocommerce-error').appendTo($container);
- invalid_fields.map(f => $ul_container.append( `${PPOM_Validate.get_message(f)} `) );
+
+ text_events( e ) {
+ console.log( e.target );
},
-
- get_message(field_meta){
-
- return field_meta.error_message !== "" ? field_meta.error_message : `${field_meta.title} ${ppom_input_vars.validate_msg}`;
+
+ get_input_dom_type( data_name ) {
+ // const field_obj = jQuery(`input[name="ppom[fields][${data_name}]"], input[name="ppom[fields][${data_name}[]]"], select[name="ppom[fields][${data_name}]"]`);
+ const field_obj = jQuery(
+ `.ppom-input[data-data_name="${ data_name }"]`
+ );
+ const ppom_type = field_obj
+ .closest( '.ppom-field-wrapper' )
+ .data( 'type' );
+ return ppom_type;
},
-
- field_has_valid_data(field) {
-
- const data_name = field.data_name;
- var ppom_type = PPOM_Validate.get_input_dom_type(data_name);
- if( field.type === 'imageselect' || field.type === 'quantities' || field.type === 'fonts' ) {
- ppom_type = field.type;
- }
-
- let element_value = '';
- // console.log(field, ppom_type);
-
- switch (ppom_type) {
- case 'switcher':
- case 'radio':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).length;
- return element_value !== 0;
- break;
- case 'palettes':
- case 'checkbox':
- element_value = jQuery('input[name="ppom[fields][' + data_name + '][]"]:checked').length;
- if( (field.min_checked && element_value < Number(field.min_checked) ) ||
- (field.max_checked && element_value > Number(field.max_checked) )
- ){
- // console.log('no ok');
- return false;
- }else{
- return element_value !== 0;
- }
- break;
- case 'quantities':
- var all_quantities = jQuery(`input.ppom-quantity[data-data_name="${data_name}"]`);
- var total_q = 0;
- jQuery.each(all_quantities, function(i, item){
- total_q += Number(jQuery(item).val());
- });
- if( (field.min_qty && total_q < Number(field.min_qty) ) ||
- (field.max_qty && total_q > Number(field.max_qty) )
- ){
- return false;
- }else{
- return true;
- }
-
- case 'image':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).length;
- if( (field.min_checked && element_value < Number(field.min_checked) ) ||
- (field.max_checked && element_value > Number(field.max_checked) )
- ){
- // console.log('no ok');
- return false;
- }else{
- return element_value !== 0;
- }
- break;
- case 'imageselect':
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).length;
- // element_value = 0;
- return element_value !== 0;
- break;
- case 'fonts':
- element_value = jQuery(`#ppom-font-picker-${data_name}`).data('fontfamily')
- // element_value = 0;
- return element_value !== undefined;
- break;
- case 'fixedprice':
- var render_type = jQuery(`.ppom-input-${data_name}`).attr('data-input');
- if( render_type == 'radio' ){
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]:checked`).length;
- }else{
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]`).val().length;
- }
- return element_value !== 0;
- break;
- case 'measure':
- element_value = jQuery(`#${data_name}`).val() != null ? jQuery(`#${data_name}`).val().length : 0;
- return element_value !== 0;
- break;
-
- default:
- element_value = jQuery(`.ppom-input[data-data_name="${data_name}"]`).val() != null ? jQuery(`.ppom-input[data-data_name="${data_name}"]`).val().length : 0;
- return element_value !== 0;
- break;
- }
-
- },
-
-
- text_events(e) {
- console.log(e.target)
- },
-
- get_input_dom_type(data_name) {
-
- // const field_obj = jQuery(`input[name="ppom[fields][${data_name}]"], input[name="ppom[fields][${data_name}[]]"], select[name="ppom[fields][${data_name}]"]`);
- const field_obj = jQuery(`.ppom-input[data-data_name="${data_name}"]`);
- const ppom_type = field_obj.closest('.ppom-field-wrapper').data('type');
- return ppom_type;
- }
-
-}
-
-PPOM_Validate.init();
\ No newline at end of file
+};
+
+PPOM_Validate.init();
diff --git a/package-lock.json b/package-lock.json
index f91b792f..7899572a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,21 +1,22 @@
{
"name": "woocommerce-product-addon",
- "version": "33.0.8",
+ "version": "33.0.18",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "woocommerce-product-addon",
- "version": "33.0.8",
+ "version": "33.0.18",
"license": "GPL-2.0+",
"devDependencies": {
- "@playwright/test": "^1.48.0",
+ "@playwright/test": "^1.58.2",
"@semantic-release/changelog": "^6.0.1",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@wordpress/e2e-test-utils-playwright": "^1.9.0",
- "@wordpress/env": "^10.9.0",
- "@wordpress/scripts": "27.9.0",
+ "@wordpress/env": "^11.2.0",
+ "@wordpress/eslint-plugin": "^24.4.0",
+ "@wordpress/scripts": "31.7.0",
"conventional-changelog-simple-preset": "^1.0.20",
"grunt": "^1.5.3",
"grunt-version": "^3.0.0",
@@ -41,14 +42,37 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@asamuzakjp/css-color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.3",
+ "@csstools/css-color-parser": "^3.0.9",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "lru-cache": "^10.4.3"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@babel/code-frame": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
- "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.25.7",
- "picocolors": "^1.0.0"
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
},
"engines": {
"node": ">=6.9.0"
@@ -94,10 +118,11 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.8.tgz",
- "integrity": "sha512-Po3VLMN7fJtv0nsOjBDSbO1J71UhzShE9MuOSkWEV9IZQXzhZklYtzKZ8ZD/Ij3a0JBv1AG3Ny2L3jvAHQVOGg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -278,10 +303,11 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
- "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -356,10 +382,11 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
- "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -400,92 +427,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/highlight": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
- "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.25.7",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/parser": {
"version": "7.25.8",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz",
@@ -643,6 +584,32 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-syntax-import-assertions": {
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz",
@@ -659,12 +626,13 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz",
- "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1564,6 +1532,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
"integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.25.7",
"@babel/helper-plugin-utils": "^7.25.7",
@@ -1936,131 +1905,360 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "node_modules/@cacheable/memory": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.8.tgz",
+ "integrity": "sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==",
"dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.1.90"
+ "license": "MIT",
+ "dependencies": {
+ "@cacheable/utils": "^2.4.0",
+ "@keyv/bigmap": "^1.3.1",
+ "hookified": "^1.15.1",
+ "keyv": "^5.6.0"
}
},
- "node_modules/@csstools/selector-specificity": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
- "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
+ "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz",
+ "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==",
"dev": true,
- "engines": {
- "node": "^14 || ^16 || >=18"
+ "license": "MIT",
+ "dependencies": {
+ "hashery": "^1.4.0",
+ "hookified": "^1.15.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "engines": {
+ "node": ">= 18"
},
"peerDependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "keyv": "^5.6.0"
}
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "node_modules/@cacheable/memory/node_modules/keyv": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
"dev": true,
- "engines": {
- "node": ">=10.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@keyv/serialize": "^1.1.1"
}
},
- "node_modules/@es-joy/jsdoccomment": {
- "version": "0.41.0",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
- "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==",
+ "node_modules/@cacheable/utils": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.0.tgz",
+ "integrity": "sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "comment-parser": "1.4.1",
- "esquery": "^1.5.0",
- "jsdoc-type-pratt-parser": "~4.0.0"
- },
- "engines": {
- "node": ">=16"
+ "hashery": "^1.5.0",
+ "keyv": "^5.6.0"
}
},
- "node_modules/@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==",
+ "node_modules/@cacheable/utils/node_modules/keyv": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ "@keyv/serialize": "^1.1.1"
}
},
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
+ "optional": true,
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "node": ">=0.1.90"
}
},
- "node_modules/@eslint-community/regexpp": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
- "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
+ "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ "node": ">=18"
}
},
- "node_modules/@eslint/eslintrc": {
+ "node_modules/@csstools/css-calc": {
"version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
"dev": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "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"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=18"
},
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@eslint/eslintrc/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
+ "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
+ "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1"
+ }
+ },
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@dual-bundle/import-meta-resolve": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz",
+ "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/JounQin"
+ }
+ },
+ "node_modules/@emnapi/core": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz",
+ "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz",
+ "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz",
+ "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@es-joy/jsdoccomment": {
+ "version": "0.41.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
+ "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==",
+ "dev": true,
+ "dependencies": {
+ "comment-parser": "1.4.1",
+ "esquery": "^1.5.0",
+ "jsdoc-type-pratt-parser": "~4.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@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==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.11.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
+ "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "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"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
"integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
@@ -2120,19 +2318,114 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@formatjs/ecma402-abstract": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz",
+ "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/intl-localematcher": "0.6.2",
+ "decimal.js": "^10.4.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/fast-memoize": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz",
+ "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/icu-messageformat-parser": {
+ "version": "2.11.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz",
+ "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/icu-skeleton-parser": "1.8.16",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/icu-skeleton-parser": {
+ "version": "1.8.16",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz",
+ "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/intl-localematcher": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz",
+ "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@hapi/address": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz",
+ "integrity": "sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^11.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@hapi/formula": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz",
+ "integrity": "sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "dev": true
+ "version": "11.0.7",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz",
+ "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/pinpoint": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz",
+ "integrity": "sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/tlds": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.6.tgz",
+ "integrity": "sha512-xdi7A/4NZokvV0ewovme3aUO5kQhW9pQ2YD1hRqZGhhSi5rBv4usHYidVocXSi9eihYsznZxLtAiEYYUL6VBGw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=14.0.0"
+ }
},
"node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz",
+ "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@hapi/hoek": "^9.0.0"
+ "@hapi/hoek": "^11.0.2"
}
},
"node_modules/@humanwhocodes/config-array": {
@@ -2192,2409 +2485,6657 @@
"deprecated": "Use @eslint/object-schema instead",
"dev": true
},
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "node_modules/@inquirer/ansi": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz",
+ "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==",
"dev": true,
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "node_modules/@inquirer/checkbox": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz",
+ "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/ansi": "^1.0.2",
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/figures": "^1.0.15",
+ "@inquirer/type": "^3.0.10",
+ "yoctocolors-cjs": "^2.1.3"
+ },
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "node_modules/@inquirer/confirm": {
+ "version": "5.1.21",
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz",
+ "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/type": "^3.0.10"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "node_modules/@inquirer/core": {
+ "version": "10.3.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz",
+ "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
+ "@inquirer/ansi": "^1.0.2",
+ "@inquirer/figures": "^1.0.15",
+ "@inquirer/type": "^3.0.10",
+ "cli-width": "^4.1.0",
+ "mute-stream": "^2.0.0",
+ "signal-exit": "^4.1.0",
+ "wrap-ansi": "^6.2.0",
+ "yoctocolors-cjs": "^2.1.3"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
},
"peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ "@types/node": ">=18"
},
"peerDependenciesMeta": {
- "node-notifier": {
+ "@types/node": {
"optional": true
}
}
},
- "node_modules/@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "node_modules/@inquirer/core/node_modules/mute-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
+ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
"dev": true,
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
+ "license": "ISC",
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.17.0 || >=20.5.0"
}
},
- "node_modules/@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "node_modules/@inquirer/core/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
- "dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- },
+ "license": "ISC",
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "node_modules/@inquirer/core/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "jest-get-type": "^29.6.3"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "node_modules/@inquirer/editor": {
+ "version": "4.2.23",
+ "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz",
+ "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/external-editor": "^1.0.3",
+ "@inquirer/type": "^3.0.10"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "node_modules/@inquirer/expand": {
+ "version": "4.0.23",
+ "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz",
+ "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/type": "^3.0.10",
+ "yoctocolors-cjs": "^2.1.3"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "node_modules/@inquirer/external-editor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz",
+ "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
+ "chardet": "^2.1.1",
+ "iconv-lite": "^0.7.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
},
"peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ "@types/node": ">=18"
},
"peerDependenciesMeta": {
- "node-notifier": {
+ "@types/node": {
"optional": true
}
}
},
- "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
- "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
+ "node_modules/@inquirer/external-editor/node_modules/iconv-lite": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@istanbuljs/schema": "^0.1.3",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
- "node_modules/@jest/reporters/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@inquirer/figures": {
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz",
+ "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
- },
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=18"
}
},
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "node_modules/@inquirer/input": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz",
+ "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sinclair/typebox": "^0.27.8"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/type": "^3.0.10"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "node_modules/@inquirer/number": {
+ "version": "3.0.23",
+ "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz",
+ "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/type": "^3.0.10"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "node_modules/@inquirer/password": {
+ "version": "4.0.23",
+ "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz",
+ "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
+ "@inquirer/ansi": "^1.0.2",
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/type": "^3.0.10"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "node_modules/@inquirer/prompts": {
+ "version": "7.10.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz",
+ "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
+ "@inquirer/checkbox": "^4.3.2",
+ "@inquirer/confirm": "^5.1.21",
+ "@inquirer/editor": "^4.2.23",
+ "@inquirer/expand": "^4.0.23",
+ "@inquirer/input": "^4.3.1",
+ "@inquirer/number": "^3.0.23",
+ "@inquirer/password": "^4.0.23",
+ "@inquirer/rawlist": "^4.1.11",
+ "@inquirer/search": "^3.2.2",
+ "@inquirer/select": "^4.4.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "node_modules/@inquirer/rawlist": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz",
+ "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/type": "^3.0.10",
+ "yoctocolors-cjs": "^2.1.3"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "node_modules/@inquirer/search": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz",
+ "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/figures": "^1.0.15",
+ "@inquirer/type": "^3.0.10",
+ "yoctocolors-cjs": "^2.1.3"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "node_modules/@inquirer/select": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz",
+ "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "@inquirer/ansi": "^1.0.2",
+ "@inquirer/core": "^10.3.2",
+ "@inquirer/figures": "^1.0.15",
+ "@inquirer/type": "^3.0.10",
+ "yoctocolors-cjs": "^2.1.3"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "node_modules/@inquirer/type": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz",
+ "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
}
},
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
"engines": {
- "node": ">=6.0.0"
+ "node": ">=12"
}
},
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@kwsites/file-exists": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz",
- "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==",
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "debug": "^4.1.1"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@kwsites/promise-deferred": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz",
- "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==",
- "dev": true
- },
- "node_modules/@leichtgewicht/ip-codec": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
- "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
- "dev": true
- },
- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
- "version": "5.1.1-v1",
- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
- "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eslint-scope": "5.1.1"
+ "ansi-regex": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/@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==",
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">= 8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/@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==",
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
"engines": {
- "node": ">= 8"
+ "node": ">=8"
}
},
- "node_modules/@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==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
"engines": {
- "node": ">= 8"
+ "node": ">=6"
}
},
- "node_modules/@octokit/auth-token": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz",
- "integrity": "sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ==",
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
- "dependencies": {
- "@octokit/types": "^6.0.3"
- },
"engines": {
- "node": ">= 14"
+ "node": ">=8"
}
},
- "node_modules/@octokit/core": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.4.tgz",
- "integrity": "sha512-sUpR/hc4Gc7K34o60bWC7WUH6Q7T6ftZ2dUmepSyJr9PRF76/qqkWjE2SOEzCqLA5W83SaISymwKtxks+96hPQ==",
+ "node_modules/@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
"dev": true,
"dependencies": {
- "@octokit/auth-token": "^3.0.0",
- "@octokit/graphql": "^5.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^6.0.3",
- "before-after-hook": "^2.2.0",
- "universal-user-agent": "^6.0.0"
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@octokit/endpoint": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz",
- "integrity": "sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ==",
+ "node_modules/@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
"dev": true,
"dependencies": {
- "@octokit/types": "^6.0.3",
- "is-plain-object": "^5.0.0",
- "universal-user-agent": "^6.0.0"
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "node_modules/@octokit/endpoint/node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@octokit/graphql": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz",
- "integrity": "sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ==",
+ "node_modules/@jest/environment-jsdom-abstract": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.3.0.tgz",
+ "integrity": "sha512-0hNFs5N6We3DMCwobzI0ydhkY10sT1tZSC0AAiy+0g2Dt/qEWgrcV5BrMxPczhe41cxW4qm6X+jqZaUdpZIajA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^6.0.3",
- "universal-user-agent": "^6.0.0"
+ "@jest/environment": "30.3.0",
+ "@jest/fake-timers": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@types/jsdom": "^21.1.7",
+ "@types/node": "*",
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0"
},
"engines": {
- "node": ">= 14"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "canvas": "^3.0.0",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
}
},
- "node_modules/@octokit/openapi-types": {
- "version": "12.11.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz",
- "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==",
- "dev": true
- },
- "node_modules/@octokit/plugin-paginate-rest": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.1.0.tgz",
- "integrity": "sha512-+cfc40pMzWcLkoDcLb1KXqjX0jTGYXjKuQdFQDc6UAknISJHnZTiBqld6HDwRJvD4DsouDKrWXNbNV0lE/3AXA==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/environment": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz",
+ "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^6.41.0"
+ "@jest/fake-timers": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "jest-mock": "30.3.0"
},
"engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "@octokit/core": ">=4"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@octokit/plugin-request-log": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
- "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/fake-timers": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz",
+ "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==",
"dev": true,
- "peerDependencies": {
- "@octokit/core": ">=3"
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.3.0",
+ "@sinonjs/fake-timers": "^15.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.3.0",
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.2.0.tgz",
- "integrity": "sha512-PZ+yfkbZAuRUtqu6Y191/V3eM0KBPx+Yq7nh+ONPdpm3EX4pd5UnK2y2XgO/0AtNum5a4aJCDjqsDuUZ2hWRXw==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/types": "^6.41.0",
- "deprecation": "^2.3.1"
+ "@sinclair/typebox": "^0.34.0"
},
"engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "@octokit/core": ">=3"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@octokit/request": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz",
- "integrity": "sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/types": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+ "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/endpoint": "^7.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^6.16.1",
- "is-plain-object": "^5.0.0",
- "node-fetch": "^2.6.7",
- "universal-user-agent": "^6.0.0"
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
},
"engines": {
- "node": ">= 14"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@octokit/request-error": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz",
- "integrity": "sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@sinclair/typebox": {
+ "version": "0.34.48",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+ "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@sinonjs/fake-timers": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz",
+ "integrity": "sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@octokit/types": "^6.0.3",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- },
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 14"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@octokit/request/node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/ci-info": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
+ "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/@octokit/rest": {
- "version": "19.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.3.tgz",
- "integrity": "sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-message-util": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+ "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/core": "^4.0.0",
- "@octokit/plugin-paginate-rest": "^3.0.0",
- "@octokit/plugin-request-log": "^1.0.4",
- "@octokit/plugin-rest-endpoint-methods": "^6.0.0"
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.3.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.3",
+ "pretty-format": "30.3.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
},
"engines": {
- "node": ">= 14"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@octokit/types": {
- "version": "6.41.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz",
- "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-mock": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+ "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@octokit/openapi-types": "^12.11.0"
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "jest-util": "30.3.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@parcel/watcher": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz",
- "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==",
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-util": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+ "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "detect-libc": "^1.0.3",
- "is-glob": "^4.0.3",
- "micromatch": "^4.0.5",
- "node-addon-api": "^7.0.0"
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.3"
},
"engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.4.1",
- "@parcel/watcher-darwin-arm64": "2.4.1",
- "@parcel/watcher-darwin-x64": "2.4.1",
- "@parcel/watcher-freebsd-x64": "2.4.1",
- "@parcel/watcher-linux-arm-glibc": "2.4.1",
- "@parcel/watcher-linux-arm64-glibc": "2.4.1",
- "@parcel/watcher-linux-arm64-musl": "2.4.1",
- "@parcel/watcher-linux-x64-glibc": "2.4.1",
- "@parcel/watcher-linux-x64-musl": "2.4.1",
- "@parcel/watcher-win32-arm64": "2.4.1",
- "@parcel/watcher-win32-ia32": "2.4.1",
- "@parcel/watcher-win32-x64": "2.4.1"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz",
- "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "MIT",
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=12"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz",
- "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/pretty-format": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+ "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
"dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz",
- "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "dependencies": {
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@parcel/watcher-freebsd-x64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz",
- "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "dependencies": {
+ "jest-get-type": "^29.6.3"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@parcel/watcher-linux-arm-glibc": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz",
- "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@parcel/watcher-linux-arm64-glibc": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz",
- "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@parcel/watcher-linux-arm64-musl": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz",
- "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@jest/pattern": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz",
+ "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.1"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@parcel/watcher-linux-x64-glibc": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz",
- "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jest/pattern/node_modules/jest-regex-util": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz",
+ "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "MIT",
"engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/@parcel/watcher-linux-x64-musl": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz",
- "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "node_modules/@parcel/watcher-win32-arm64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz",
- "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "dependencies": {
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/@parcel/watcher-win32-ia32": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz",
- "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/@jest/reporters/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "bin": {
+ "semver": "bin/semver.js"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/@parcel/watcher-win32-x64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz",
- "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@pkgr/core": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
- "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ "node_modules/@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
},
- "funding": {
- "url": "https://opencollective.com/unts"
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@playwright/test": {
- "version": "1.48.0",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.48.0.tgz",
- "integrity": "sha512-W5lhqPUVPqhtc/ySvZI5Q8X2ztBOUgZ8LbAFy0JQgrXZs2xaILrUcNO3rQjwbLPfGK13+rZsDa1FpG+tqYkT5w==",
+ "node_modules/@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
"dev": true,
"dependencies": {
- "playwright": "1.48.0"
- },
- "bin": {
- "playwright": "cli.js"
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
},
"engines": {
- "node": ">=18"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
- "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
"dev": true,
"dependencies": {
- "ansi-html": "^0.0.9",
- "core-js-pure": "^3.23.3",
- "error-stack-parser": "^2.0.6",
- "html-entities": "^2.1.0",
- "loader-utils": "^2.0.4",
- "schema-utils": "^4.2.0",
- "source-map": "^0.7.3"
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
},
"engines": {
- "node": ">= 10.13"
- },
- "peerDependencies": {
- "@types/webpack": "4.x || 5.x",
- "react-refresh": ">=0.10.0 <1.0.0",
- "sockjs-client": "^1.4.0",
- "type-fest": ">=0.17.0 <5.0.0",
- "webpack": ">=4.43.0 <6.0.0",
- "webpack-dev-server": "3.x || 4.x || 5.x",
- "webpack-hot-middleware": "2.x",
- "webpack-plugin-serve": "0.x || 1.x"
- },
- "peerDependenciesMeta": {
- "@types/webpack": {
- "optional": true
- },
- "sockjs-client": {
- "optional": true
- },
- "type-fest": {
- "optional": true
- },
- "webpack-dev-server": {
- "optional": true
- },
- "webpack-hot-middleware": {
- "optional": true
- },
- "webpack-plugin-serve": {
- "optional": true
- }
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@polka/url": {
- "version": "1.0.0-next.28",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
- "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
- "dev": true
- },
- "node_modules/@puppeteer/browsers": {
- "version": "1.4.6",
- "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz",
- "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==",
+ "node_modules/@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
"dev": true,
"dependencies": {
- "debug": "4.3.4",
- "extract-zip": "2.0.1",
- "progress": "2.0.3",
- "proxy-agent": "6.3.0",
- "tar-fs": "3.0.4",
- "unbzip2-stream": "1.4.3",
- "yargs": "17.7.1"
- },
- "bin": {
- "browsers": "lib/cjs/main-cli.js"
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
},
"engines": {
- "node": ">=16.3.0"
- },
- "peerDependencies": {
- "typescript": ">= 4.7.4"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@puppeteer/browsers/node_modules/extract-zip": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
- "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
"dependencies": {
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- },
- "bin": {
- "extract-zip": "cli.js"
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
},
"engines": {
- "node": ">= 10.17.0"
- },
- "optionalDependencies": {
- "@types/yauzl": "^2.9.1"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@puppeteer/browsers/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
"dependencies": {
- "pump": "^3.0.0"
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6.0.0"
}
},
- "node_modules/@puppeteer/browsers/node_modules/tar-fs": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
- "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
- "dependencies": {
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^3.1.5"
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@puppeteer/browsers/node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
- "dependencies": {
- "b4a": "^1.6.4",
- "fast-fifo": "^1.2.0",
- "streamx": "^2.15.0"
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@puppeteer/browsers/node_modules/yargs": {
- "version": "17.7.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
- "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
"dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
- "node_modules/@rtsao/scc": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
- "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true
},
- "node_modules/@semantic-release/changelog": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz",
- "integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==",
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
"dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "fs-extra": "^9.0.0",
- "lodash": "^4.17.4"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@semantic-release/commit-analyzer": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz",
- "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==",
+ "node_modules/@keyv/serialize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
+ "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@kwsites/file-exists": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz",
+ "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==",
"dev": true,
"dependencies": {
- "conventional-changelog-angular": "^5.0.0",
- "conventional-commits-filter": "^2.0.0",
- "conventional-commits-parser": "^3.2.3",
- "debug": "^4.0.0",
- "import-from": "^4.0.0",
- "lodash": "^4.17.4",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0-beta.1"
+ "debug": "^4.1.1"
}
},
- "node_modules/@semantic-release/error": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz",
- "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==",
- "dev": true,
- "engines": {
- "node": ">=14.17"
- }
+ "node_modules/@kwsites/promise-deferred": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz",
+ "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==",
+ "dev": true
},
- "node_modules/@semantic-release/exec": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-6.0.3.tgz",
- "integrity": "sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==",
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
+ "dev": true
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
+ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==",
"dev": true,
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "debug": "^4.0.0",
- "execa": "^5.0.0",
- "lodash": "^4.17.4",
- "parse-json": "^5.0.0"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0"
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.10.0"
}
},
- "node_modules/@semantic-release/git": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
- "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "debug": "^4.0.0",
- "dir-glob": "^3.0.0",
- "execa": "^5.0.0",
- "lodash": "^4.17.4",
- "micromatch": "^4.0.0",
- "p-reduce": "^2.0.0"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0"
+ "eslint-scope": "5.1.1"
}
},
- "node_modules/@semantic-release/github": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.5.tgz",
- "integrity": "sha512-9pGxRM3gv1hgoZ/muyd4pWnykdIUVfCiev6MXE9lOyGQof4FQy95GFE26nDcifs9ZG7bBzV8ue87bo/y1zVf0g==",
+ "node_modules/@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==",
"dev": true,
"dependencies": {
- "@octokit/rest": "^19.0.0",
- "@semantic-release/error": "^2.2.0",
- "aggregate-error": "^3.0.0",
- "bottleneck": "^2.18.1",
- "debug": "^4.0.0",
- "dir-glob": "^3.0.0",
- "fs-extra": "^10.0.0",
- "globby": "^11.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "issue-parser": "^6.0.0",
- "lodash": "^4.17.4",
- "mime": "^3.0.0",
- "p-filter": "^2.0.0",
- "p-retry": "^4.0.0",
- "url-join": "^4.0.0"
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
},
"engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0-beta.1"
+ "node": ">= 8"
}
},
- "node_modules/@semantic-release/github/node_modules/@semantic-release/error": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz",
- "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
- "dev": true
- },
- "node_modules/@semantic-release/github/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "node_modules/@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==",
"dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
"engines": {
- "node": ">=12"
+ "node": ">= 8"
}
},
- "node_modules/@semantic-release/npm": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.1.tgz",
- "integrity": "sha512-I5nVZklxBzfMFwemhRNbSrkiN/dsH3c7K9+KSk6jUnq0rdLFUuJt7EBsysq4Ir3moajQgFkfEryEHPqiKJj20g==",
+ "node_modules/@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==",
"dev": true,
"dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "execa": "^5.0.0",
- "fs-extra": "^10.0.0",
- "lodash": "^4.17.15",
- "nerf-dart": "^1.0.0",
- "normalize-url": "^6.0.0",
- "npm": "^8.3.0",
- "rc": "^1.2.8",
- "read-pkg": "^5.0.0",
- "registry-auth-token": "^4.0.0",
- "semver": "^7.1.2",
- "tempy": "^1.0.0"
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
},
"engines": {
- "node": ">=16 || ^14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=19.0.0"
+ "node": ">= 8"
}
},
- "node_modules/@semantic-release/npm/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "node_modules/@octokit/app": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/app/-/app-14.1.0.tgz",
+ "integrity": "sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "@octokit/auth-app": "^6.0.0",
+ "@octokit/auth-unauthenticated": "^5.0.0",
+ "@octokit/core": "^5.0.0",
+ "@octokit/oauth-app": "^6.0.0",
+ "@octokit/plugin-paginate-rest": "^9.0.0",
+ "@octokit/types": "^12.0.0",
+ "@octokit/webhooks": "^12.0.4"
},
"engines": {
- "node": ">=12"
+ "node": ">= 18"
}
},
- "node_modules/@semantic-release/npm/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
+ "node_modules/@octokit/app/node_modules/@octokit/auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
},
- "node_modules/@semantic-release/npm/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/@octokit/app/node_modules/@octokit/core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz",
+ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "yallist": "^4.0.0"
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.1.0",
+ "@octokit/request": "^8.4.1",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">= 18"
}
},
- "node_modules/@semantic-release/npm/node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "node_modules/@octokit/app/node_modules/@octokit/core/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
"dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
+ "license": "MIT"
},
- "node_modules/@semantic-release/npm/node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "node_modules/@octokit/app/node_modules/@octokit/core/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
- "bin": {
- "semver": "bin/semver"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@semantic-release/npm/node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "node_modules/@octokit/app/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 18"
}
},
- "node_modules/@semantic-release/npm/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "node_modules/@octokit/app/node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@octokit/app/node_modules/@octokit/endpoint/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@octokit/app/node_modules/@octokit/graphql": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz",
+ "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request": "^8.4.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">= 18"
}
},
- "node_modules/@semantic-release/npm/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "node_modules/@octokit/app/node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "MIT"
+ },
+ "node_modules/@octokit/app/node_modules/@octokit/graphql/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@semantic-release/npm/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "node_modules/@octokit/app/node_modules/@octokit/openapi-types": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@semantic-release/release-notes-generator": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz",
- "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==",
+ "node_modules/@octokit/app/node_modules/@octokit/plugin-paginate-rest": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz",
+ "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "conventional-changelog-angular": "^5.0.0",
- "conventional-changelog-writer": "^5.0.0",
- "conventional-commits-filter": "^2.0.0",
- "conventional-commits-parser": "^3.2.3",
- "debug": "^4.0.0",
- "get-stream": "^6.0.0",
- "import-from": "^4.0.0",
- "into-stream": "^6.0.0",
- "lodash": "^4.17.4",
- "read-pkg-up": "^7.0.0"
+ "@octokit/types": "^12.6.0"
},
"engines": {
- "node": ">=14.17"
+ "node": ">= 18"
},
"peerDependencies": {
- "semantic-release": ">=18.0.0-beta.1"
+ "@octokit/core": "5"
}
},
- "node_modules/@sentry/core": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz",
- "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==",
+ "node_modules/@octokit/app/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/hub": "6.19.7",
- "@sentry/minimal": "6.19.7",
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "tslib": "^1.9.3"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 18"
}
},
- "node_modules/@sentry/core/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sentry/hub": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz",
- "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==",
+ "node_modules/@octokit/app/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "tslib": "^1.9.3"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 18"
}
},
- "node_modules/@sentry/hub/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "node_modules/@octokit/app/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@sentry/minimal": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz",
- "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==",
+ "node_modules/@octokit/app/node_modules/@octokit/request-error/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/hub": "6.19.7",
- "@sentry/types": "6.19.7",
- "tslib": "^1.9.3"
- },
- "engines": {
- "node": ">=6"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@sentry/minimal/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "node_modules/@octokit/app/node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@sentry/node": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz",
- "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==",
+ "node_modules/@octokit/app/node_modules/@octokit/request/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/core": "6.19.7",
- "@sentry/hub": "6.19.7",
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "cookie": "^0.4.1",
- "https-proxy-agent": "^5.0.0",
- "lru_map": "^0.3.3",
- "tslib": "^1.9.3"
- },
- "engines": {
- "node": ">=6"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@sentry/node/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sentry/types": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz",
- "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==",
+ "node_modules/@octokit/app/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^20.0.0"
}
},
- "node_modules/@sentry/utils": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz",
- "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==",
+ "node_modules/@octokit/auth-app": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.4.tgz",
+ "integrity": "sha512-QkXkSOHZK4dA5oUqY5Dk3S+5pN2s1igPjEASNQV8/vgJgW034fQWR16u7VsNOK/EljA00eyjYF5mWNxWKWhHRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/types": "6.19.7",
- "tslib": "^1.9.3"
+ "@octokit/auth-oauth-app": "^7.1.0",
+ "@octokit/auth-oauth-user": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.3.1",
+ "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1",
+ "universal-github-app-jwt": "^1.1.2",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 18"
}
},
- "node_modules/@sentry/utils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "node_modules/@octokit/auth-app/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@hapi/hoek": "^9.0.0"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
+ "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "node_modules/@octokit/auth-app/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
- "engines": {
- "node": ">=10"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
- "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "node_modules/@octokit/auth-app/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "type-detect": "4.0.8"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "node_modules/@octokit/auth-app/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sinonjs/commons": "^3.0.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
- "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
+ "node_modules/@octokit/auth-app/node_modules/lru-cache": {
+ "name": "@wolfy1339/lru-cache",
+ "version": "11.0.2-patch.1",
+ "resolved": "https://registry.npmjs.org/@wolfy1339/lru-cache/-/lru-cache-11.0.2-patch.1.tgz",
+ "integrity": "sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "18 >=18.20 || 20 || >=22"
}
},
- "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
- "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
+ "node_modules/@octokit/auth-oauth-app": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz",
+ "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^6.1.0",
+ "@octokit/auth-oauth-user": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
+ "@types/btoa-lite": "^1.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
- "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
- "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "license": "MIT"
},
- "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
- "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
- "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
- "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
+ "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@svgr/babel-plugin-transform-svg-component": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
- "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
+ "node_modules/@octokit/auth-oauth-device": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz",
+ "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==",
"dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/oauth-methods": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@svgr/babel-preset": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
- "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
- "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
- "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
- "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
- "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
- "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
- "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
- "@svgr/babel-plugin-transform-svg-component": "8.0.0"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 18"
}
},
- "node_modules/@svgr/core": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
- "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.21.3",
- "@svgr/babel-preset": "8.1.0",
- "camelcase": "^6.2.0",
- "cosmiconfig": "^8.1.3",
- "snake-case": "^3.0.4"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "node": ">= 18"
}
},
- "node_modules/@svgr/hast-util-to-babel-ast": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
- "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.21.3",
- "entities": "^4.4.0"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "node": ">= 18"
}
},
- "node_modules/@svgr/plugin-jsx": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
- "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
+ "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.21.3",
- "@svgr/babel-preset": "8.1.0",
- "@svgr/hast-util-to-babel-ast": "8.0.0",
- "svg-parser": "^2.0.4"
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@octokit/auth-oauth-user": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz",
+ "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^6.1.0",
+ "@octokit/oauth-methods": "^4.1.0",
+ "@octokit/request": "^8.3.1",
+ "@octokit/types": "^13.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@svgr/core": "*"
+ "node": ">= 18"
}
},
- "node_modules/@svgr/plugin-svgo": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
- "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cosmiconfig": "^8.1.3",
- "deepmerge": "^4.3.1",
- "svgo": "^3.0.2"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@svgr/core": "*"
+ "node": ">= 18"
}
},
- "node_modules/@svgr/webpack": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
- "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.21.3",
- "@babel/plugin-transform-react-constant-elements": "^7.21.3",
- "@babel/preset-env": "^7.20.2",
- "@babel/preset-react": "^7.18.6",
- "@babel/preset-typescript": "^7.21.0",
- "@svgr/core": "8.1.0",
- "@svgr/plugin-jsx": "8.1.0",
- "@svgr/plugin-svgo": "8.1.0"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
+ "node": ">= 18"
}
},
- "node_modules/@szmarczak/http-timer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "defer-to-connect": "^2.0.0"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
},
"engines": {
- "node": ">=10"
+ "node": ">= 18"
}
},
- "node_modules/@tannin/compile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz",
- "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==",
+ "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@tannin/evaluate": "^1.2.0",
- "@tannin/postfix": "^1.1.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@tannin/evaluate": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz",
- "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==",
- "dev": true
- },
- "node_modules/@tannin/plural-forms": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz",
- "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==",
+ "node_modules/@octokit/auth-token": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz",
+ "integrity": "sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ==",
"dev": true,
"dependencies": {
- "@tannin/compile": "^1.1.0"
+ "@octokit/types": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@tannin/postfix": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz",
- "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==",
- "dev": true
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+ "node_modules/@octokit/auth-unauthenticated": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz",
+ "integrity": "sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^12.0.0"
+ },
"engines": {
- "node": ">= 10"
+ "node": ">= 18"
}
},
- "node_modules/@tootallnate/quickjs-emscripten": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
- "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
- "dev": true
+ "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/openapi-types": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@trysound/sax": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
- "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
"engines": {
- "node": ">=10.13.0"
+ "node": ">= 18"
}
},
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
"dev": true,
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
+ "license": "MIT"
},
- "node_modules/@types/babel__generator": {
- "version": "7.6.8",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
- "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.0.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
+ "@octokit/openapi-types": "^20.0.0"
}
},
- "node_modules/@types/babel__traverse": {
- "version": "7.20.6",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
- "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
+ "node_modules/@octokit/core": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.4.tgz",
+ "integrity": "sha512-sUpR/hc4Gc7K34o60bWC7WUH6Q7T6ftZ2dUmepSyJr9PRF76/qqkWjE2SOEzCqLA5W83SaISymwKtxks+96hPQ==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.20.7"
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/graphql": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^6.0.3",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@types/body-parser": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
- "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "node_modules/@octokit/endpoint": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz",
+ "integrity": "sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ==",
"dev": true,
"dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
+ "@octokit/types": "^6.0.3",
+ "is-plain-object": "^5.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@types/bonjour": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
- "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
+ "node_modules/@octokit/endpoint/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
- "dependencies": {
- "@types/node": "*"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/@types/cacheable-request": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
- "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
+ "node_modules/@octokit/graphql": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz",
+ "integrity": "sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ==",
"dev": true,
"dependencies": {
- "@types/http-cache-semantics": "*",
- "@types/keyv": "^3.1.4",
- "@types/node": "*",
- "@types/responselike": "^1.0.0"
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^6.0.3",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "node_modules/@octokit/oauth-app": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-6.1.0.tgz",
+ "integrity": "sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*"
+ "@octokit/auth-oauth-app": "^7.0.0",
+ "@octokit/auth-oauth-user": "^4.0.0",
+ "@octokit/auth-unauthenticated": "^5.0.0",
+ "@octokit/core": "^5.0.0",
+ "@octokit/oauth-authorization-url": "^6.0.2",
+ "@octokit/oauth-methods": "^4.0.0",
+ "@types/aws-lambda": "^8.10.83",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/connect-history-api-fallback": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
- "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
"dev": true,
- "dependencies": {
- "@types/express-serve-static-core": "*",
- "@types/node": "*"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "dev": true
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz",
+ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.1.0",
+ "@octokit/request": "^8.4.1",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
},
- "node_modules/@types/express": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/express-serve-static-core": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz",
- "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==",
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/graphql": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz",
+ "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
+ "@octokit/request": "^8.4.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/express/node_modules/@types/express-serve-static-core": {
- "version": "4.19.6",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
- "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/minimatch": "*",
- "@types/node": "*"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/graceful-fs": {
- "version": "4.1.9",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "node_modules/@octokit/oauth-app/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
- "dev": true
+ "node_modules/@octokit/oauth-authorization-url": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz",
+ "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
},
- "node_modules/@types/http-errors": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
- "dev": true
+ "node_modules/@octokit/oauth-methods": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz",
+ "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/oauth-authorization-url": "^6.0.2",
+ "@octokit/request": "^8.3.1",
+ "@octokit/request-error": "^5.1.0",
+ "@octokit/types": "^13.0.0",
+ "btoa-lite": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
},
- "node_modules/@types/http-proxy": {
- "version": "1.17.15",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
- "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*"
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
- "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "dev": true
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
- "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/istanbul-lib-coverage": "*"
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
- "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/istanbul-lib-report": "*"
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
+ "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*",
- "@types/tough-cookie": "*",
- "parse5": "^7.0.0"
+ "@octokit/openapi-types": "^24.2.0"
}
},
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
- },
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "node_modules/@octokit/openapi-types": {
+ "version": "12.11.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz",
+ "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==",
"dev": true
},
- "node_modules/@types/keyv": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
- "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+ "node_modules/@octokit/plugin-paginate-rest": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.1.0.tgz",
+ "integrity": "sha512-+cfc40pMzWcLkoDcLb1KXqjX0jTGYXjKuQdFQDc6UAknISJHnZTiBqld6HDwRJvD4DsouDKrWXNbNV0lE/3AXA==",
"dev": true,
"dependencies": {
- "@types/node": "*"
+ "@octokit/types": "^6.41.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=4"
}
},
- "node_modules/@types/mdast": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
- "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "node_modules/@octokit/plugin-request-log": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
+ "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
+ "dev": true,
+ "peerDependencies": {
+ "@octokit/core": ">=3"
+ }
+ },
+ "node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.2.0.tgz",
+ "integrity": "sha512-PZ+yfkbZAuRUtqu6Y191/V3eM0KBPx+Yq7nh+ONPdpm3EX4pd5UnK2y2XgO/0AtNum5a4aJCDjqsDuUZ2hWRXw==",
"dev": true,
"dependencies": {
- "@types/unist": "*"
+ "@octokit/types": "^6.41.0",
+ "deprecation": "^2.3.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=3"
}
},
- "node_modules/@types/mime": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
- "dev": true
+ "node_modules/@octokit/request": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz",
+ "integrity": "sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/endpoint": "^7.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^6.16.1",
+ "is-plain-object": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
},
- "node_modules/@types/minimatch": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
- "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
- "dev": true
+ "node_modules/@octokit/request-error": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz",
+ "integrity": "sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/types": "^6.0.3",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
},
- "node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
- "dev": true
+ "node_modules/@octokit/request/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/@types/node": {
- "version": "22.7.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
- "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
+ "node_modules/@octokit/rest": {
+ "version": "19.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.3.tgz",
+ "integrity": "sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==",
"dev": true,
"dependencies": {
- "undici-types": "~6.19.2"
+ "@octokit/core": "^4.0.0",
+ "@octokit/plugin-paginate-rest": "^3.0.0",
+ "@octokit/plugin-request-log": "^1.0.4",
+ "@octokit/plugin-rest-endpoint-methods": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
}
},
- "node_modules/@types/node-forge": {
- "version": "1.3.11",
- "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
- "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "node_modules/@octokit/types": {
+ "version": "6.41.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz",
+ "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==",
"dev": true,
"dependencies": {
- "@types/node": "*"
+ "@octokit/openapi-types": "^12.11.0"
}
},
- "node_modules/@types/normalize-package-data": {
+ "node_modules/@octokit/webhooks": {
+ "version": "12.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.3.2.tgz",
+ "integrity": "sha512-exj1MzVXoP7xnAcAB3jZ97pTvVPkQF9y6GA/dvYC47HV7vLv+24XRS6b/v/XnyikpEuvMhugEXdGtAlU086WkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/webhooks-methods": "^4.1.0",
+ "@octokit/webhooks-types": "7.6.1",
+ "aggregate-error": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/webhooks-methods": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz",
+ "integrity": "sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/webhooks-types": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.6.1.tgz",
+ "integrity": "sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@octokit/webhooks/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@octokit/webhooks/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/webhooks/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@opentelemetry/api-logs": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz",
+ "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/context-async-hooks": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz",
+ "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/core": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz",
+ "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz",
+ "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.57.2",
+ "@types/shimmer": "^1.2.0",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-amqplib": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz",
+ "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-connect": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz",
+ "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/connect": "3.4.38"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-dataloader": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz",
+ "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-express": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz",
+ "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-fs": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz",
+ "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-generic-pool": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz",
+ "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-graphql": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz",
+ "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-hapi": {
+ "version": "0.45.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz",
+ "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-http": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.2.tgz",
+ "integrity": "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/instrumentation": "0.57.2",
+ "@opentelemetry/semantic-conventions": "1.28.0",
+ "forwarded-parse": "2.1.2",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-ioredis": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz",
+ "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-kafkajs": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz",
+ "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-knex": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz",
+ "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-koa": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz",
+ "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-lru-memoizer": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz",
+ "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mongodb": {
+ "version": "0.52.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz",
+ "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mongoose": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz",
+ "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mysql": {
+ "version": "0.45.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz",
+ "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/mysql": "2.15.26"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mysql2": {
+ "version": "0.45.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz",
+ "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-pg": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz",
+ "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.26.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1",
+ "@types/pg": "8.6.1",
+ "@types/pg-pool": "2.0.6"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-redis-4": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz",
+ "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-tedious": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz",
+ "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/tedious": "^4.0.14"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-undici": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz",
+ "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.7.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@opentelemetry/redis-common": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz",
+ "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/resources": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz",
+ "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz",
+ "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/resources": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz",
+ "integrity": "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sql-common": {
+ "version": "0.40.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz",
+ "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz",
+ "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^2.0.3",
+ "is-glob": "^4.0.3",
+ "node-addon-api": "^7.0.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.6",
+ "@parcel/watcher-darwin-arm64": "2.5.6",
+ "@parcel/watcher-darwin-x64": "2.5.6",
+ "@parcel/watcher-freebsd-x64": "2.5.6",
+ "@parcel/watcher-linux-arm-glibc": "2.5.6",
+ "@parcel/watcher-linux-arm-musl": "2.5.6",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.6",
+ "@parcel/watcher-linux-arm64-musl": "2.5.6",
+ "@parcel/watcher-linux-x64-glibc": "2.5.6",
+ "@parcel/watcher-linux-x64-musl": "2.5.6",
+ "@parcel/watcher-win32-arm64": "2.5.6",
+ "@parcel/watcher-win32-ia32": "2.5.6",
+ "@parcel/watcher-win32-x64": "2.5.6"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
+ "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
+ "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz",
+ "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz",
+ "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz",
+ "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz",
+ "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz",
+ "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz",
+ "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz",
+ "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz",
+ "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz",
+ "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz",
+ "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz",
+ "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/@paulirish/trace_engine": {
+ "version": "0.0.59",
+ "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.59.tgz",
+ "integrity": "sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "legacy-javascript": "latest",
+ "third-party-web": "latest"
+ }
+ },
+ "node_modules/@php-wasm/cli-util": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/cli-util/-/cli-util-3.1.13.tgz",
+ "integrity": "sha512-vDFDAEmAYHoC/XQZ7/wfQPgOIuPOvFSXBebRQ8S+6ABcDgKbjylQqyXZej4z0sh7n4IJ6ebS1H/vRPywPOK2kw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/util": "3.1.13",
+ "fast-xml-parser": "^5.5.1",
+ "jsonc-parser": "3.3.1"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/cli-util/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@php-wasm/logger": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-3.1.13.tgz",
+ "integrity": "sha512-8wYZtN+9dNvGSf3ttUDEaNDvU680W+FmCFcpXo4U8JLnsySbRivN8RD6lAedJnSpxgXUV83zwlXV2dybK8awVQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/node-polyfills": "3.1.13"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-3.1.13.tgz",
+ "integrity": "sha512-jrNz8C9msy59/X6nJh1JTZvvJZ/wIA2HHUDWYe6sRbMDkvi0CdHnYGAk2g33GMnOwvWFCiQRrDvU/dCcSmCfHw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/cli-util": "3.1.13",
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node-7-4": "3.1.13",
+ "@php-wasm/node-8-0": "3.1.13",
+ "@php-wasm/node-8-1": "3.1.13",
+ "@php-wasm/node-8-2": "3.1.13",
+ "@php-wasm/node-8-3": "3.1.13",
+ "@php-wasm/node-8-4": "3.1.13",
+ "@php-wasm/node-8-5": "3.1.13",
+ "@php-wasm/node-polyfills": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "@wp-playground/common": "3.1.13",
+ "express": "4.22.0",
+ "fast-xml-parser": "^5.5.1",
+ "fs-ext-extra-prebuilt": "2.2.7",
+ "ini": "4.1.2",
+ "jsonc-parser": "3.3.1",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3",
+ "yargs": "17.7.2"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-7-4": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-7-4/-/node-7-4-3.1.13.tgz",
+ "integrity": "sha512-LerA9TcAEKntZYKYPqfPvB39GwLzu8MzsAN/frTzBaSo5ybyLXfccRmvUsrg40m1+bl3zE5agOm77CjbPJ4SEA==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-7-4/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-7-4/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-8-0": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-8-0/-/node-8-0-3.1.13.tgz",
+ "integrity": "sha512-7bdkE0KY9Q7taICadOacA0L1GjZ7Pgdrl2kH3Tnp5SWmkTgpcEQTBJJS8XUNo6cGRprw8+z5fJqBNDCpqaIzCg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-8-0/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-8-0/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-8-1": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-8-1/-/node-8-1-3.1.13.tgz",
+ "integrity": "sha512-mdtR4oX0OgD+A+vJejJorBKvoSf73sfxl7A4kVMVnV+VEjFGH+QVlSzkRA3j9szXscZKzdTTeE3bECmrV8jh/w==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-8-1/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-8-1/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-8-2": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-8-2/-/node-8-2-3.1.13.tgz",
+ "integrity": "sha512-WoBox5LktTQm6mM2UvTRiSxCyYvdsSUOLuSC/djy17JSxkfyFom/YczbSfzpOz4mNBb/4uNecoHd8ARxMjYWCg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-8-2/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-8-2/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-8-3": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-8-3/-/node-8-3-3.1.13.tgz",
+ "integrity": "sha512-SIYOCE87jBqIh4bKId8DvsrQJxY0o9386aZcQBqhH+YRNnpsGKxL1jUeSjYdQy+aJj8CnfVxRKxaed36E54KMw==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-8-3/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-8-3/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-8-4": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-8-4/-/node-8-4-3.1.13.tgz",
+ "integrity": "sha512-iQvfRXmVVNaRMxbaOoSdqi0eBm5eljuwHK+C1sz5SfoxcXwe8gszLk04q9n9kK/95UO3PIh55YZwWFOraOLgDA==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-8-4/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-8-4/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-8-5": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-8-5/-/node-8-5-3.1.13.tgz",
+ "integrity": "sha512-ob35CoY12XPI0rj6igoiwZS9/WtFjJrcjK1Mxh2vUXcvqRUeQ6x390KWRhTjsldG7HxrmES9T61x5I8M3M0Mlg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/node-8-5/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node-8-5/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/node-polyfills": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-3.1.13.tgz",
+ "integrity": "sha512-X1MAroRlVkvF40EcNcB9SZL9NRZJSFOKvL/oD5fsvKxcPN45d4IP27aD3ZtkJx4sm3tTD3bD9W/HDt0Phs82Bg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later"
+ },
+ "node_modules/@php-wasm/node/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/node/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@php-wasm/node/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@php-wasm/progress": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.1.13.tgz",
+ "integrity": "sha512-yL9ny4/1EXIig9v4cB1gtZ+RBUJy+OaJ13D0+VyhY7/c5G3doA3VkxeCxv1qkaWIcvmqY2zBGRmPsBJp5L52vA==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node-polyfills": "3.1.13"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/scopes": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-3.1.13.tgz",
+ "integrity": "sha512-Zf69PJ5qXdOEPpj5glxQuV/fyXP4CKLdPfePGcnx36MiDyfaK0x+GT0yBdOjhFGB7HK32cy4eJPiErvbYZppuQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/stream-compression": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-3.1.13.tgz",
+ "integrity": "sha512-ScBZJrBYumtIWowuhge3gmUGOrHsTl5SY6Ih6zYdoujULTv0hGrkX50An8G7qiwl8ym3vzv0VaxSYX+jjgIUPQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/node-polyfills": "3.1.13",
+ "@php-wasm/util": "3.1.13"
+ }
+ },
+ "node_modules/@php-wasm/universal": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-3.1.13.tgz",
+ "integrity": "sha512-1SzLlvDPb0hDp3pHBGofSxGVQMTED3r3WOC0bD7uYgNkd3hj9TOnJ6vl0llgjadxZLld5d2NRWwDydPwD6LXPg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node-polyfills": "3.1.13",
+ "@php-wasm/progress": "3.1.13",
+ "@php-wasm/stream-compression": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "ini": "4.1.2"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/universal/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/util": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-3.1.13.tgz",
+ "integrity": "sha512-jGUWzZV2A2tNggAoIUhKWOXBw9+03zb9jF+R3c/nsvyd2NdVxUBWb6Q/mVk2syo+KfSuelsJkksohBNXn9PQBQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/web-service-worker": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-3.1.13.tgz",
+ "integrity": "sha512-5p0hNQrZgAnuSWMyPQyhs32gU7nSWJU+q5KNAGvfs77UhZVsVSK0irfTYQbmKsmAPlS5QoNmQXpUCw8fNH9U5w==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/scopes": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "ini": "4.1.2"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/web-service-worker/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/xdebug-bridge": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@php-wasm/xdebug-bridge/-/xdebug-bridge-3.1.13.tgz",
+ "integrity": "sha512-8tS4b1O0FdCs1hvvby6Zio0uxHm2oMZ36w4fdHxRqsWlYd6UI+z46FTtQeoPIANfTDc9cHQ3SmxfhFH6MMZ02Q==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "@wp-playground/common": "3.1.13",
+ "express": "4.22.0",
+ "fast-xml-parser": "^5.5.1",
+ "fs-ext-extra-prebuilt": "2.2.7",
+ "ini": "4.1.2",
+ "jsonc-parser": "3.3.1",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3",
+ "xml2js": "0.6.2",
+ "yargs": "17.7.2"
+ },
+ "bin": {
+ "xdebug-bridge": "xdebug-bridge.js"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@php-wasm/xdebug-bridge/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@php-wasm/xdebug-bridge/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@php-wasm/xdebug-bridge/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@pkgr/core": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
+ "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/@playwright/test": {
+ "version": "1.58.2",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz",
+ "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "playwright": "1.58.2"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
+ "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-html": "^0.0.9",
+ "core-js-pure": "^3.23.3",
+ "error-stack-parser": "^2.0.6",
+ "html-entities": "^2.1.0",
+ "loader-utils": "^2.0.4",
+ "schema-utils": "^4.2.0",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">= 10.13"
+ },
+ "peerDependencies": {
+ "@types/webpack": "4.x || 5.x",
+ "react-refresh": ">=0.10.0 <1.0.0",
+ "sockjs-client": "^1.4.0",
+ "type-fest": ">=0.17.0 <5.0.0",
+ "webpack": ">=4.43.0 <6.0.0",
+ "webpack-dev-server": "3.x || 4.x || 5.x",
+ "webpack-hot-middleware": "2.x",
+ "webpack-plugin-serve": "0.x || 1.x"
+ },
+ "peerDependenciesMeta": {
+ "@types/webpack": {
+ "optional": true
+ },
+ "sockjs-client": {
+ "optional": true
+ },
+ "type-fest": {
+ "optional": true
+ },
+ "webpack-dev-server": {
+ "optional": true
+ },
+ "webpack-hot-middleware": {
+ "optional": true
+ },
+ "webpack-plugin-serve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.28",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
+ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
+ "dev": true
+ },
+ "node_modules/@prisma/instrumentation": {
+ "version": "6.11.1",
+ "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz",
+ "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.8"
+ }
+ },
+ "node_modules/@puppeteer/browsers": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz",
+ "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "debug": "^4.4.0",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.6.3",
+ "tar-fs": "^3.0.6",
+ "unbzip2-stream": "^1.4.3",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@puppeteer/browsers/node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/@puppeteer/browsers/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@puppeteer/browsers/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "dev": true
+ },
+ "node_modules/@semantic-release/changelog": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz",
+ "integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==",
+ "dev": true,
+ "dependencies": {
+ "@semantic-release/error": "^3.0.0",
+ "aggregate-error": "^3.0.0",
+ "fs-extra": "^9.0.0",
+ "lodash": "^4.17.4"
+ },
+ "engines": {
+ "node": ">=14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=18.0.0"
+ }
+ },
+ "node_modules/@semantic-release/commit-analyzer": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz",
+ "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-angular": "^5.0.0",
+ "conventional-commits-filter": "^2.0.0",
+ "conventional-commits-parser": "^3.2.3",
+ "debug": "^4.0.0",
+ "import-from": "^4.0.0",
+ "lodash": "^4.17.4",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=18.0.0-beta.1"
+ }
+ },
+ "node_modules/@semantic-release/error": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz",
+ "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/@semantic-release/exec": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-6.0.3.tgz",
+ "integrity": "sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==",
+ "dev": true,
+ "dependencies": {
+ "@semantic-release/error": "^3.0.0",
+ "aggregate-error": "^3.0.0",
+ "debug": "^4.0.0",
+ "execa": "^5.0.0",
+ "lodash": "^4.17.4",
+ "parse-json": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=18.0.0"
+ }
+ },
+ "node_modules/@semantic-release/git": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
+ "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
+ "dev": true,
+ "dependencies": {
+ "@semantic-release/error": "^3.0.0",
+ "aggregate-error": "^3.0.0",
+ "debug": "^4.0.0",
+ "dir-glob": "^3.0.0",
+ "execa": "^5.0.0",
+ "lodash": "^4.17.4",
+ "micromatch": "^4.0.0",
+ "p-reduce": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=18.0.0"
+ }
+ },
+ "node_modules/@semantic-release/github": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.5.tgz",
+ "integrity": "sha512-9pGxRM3gv1hgoZ/muyd4pWnykdIUVfCiev6MXE9lOyGQof4FQy95GFE26nDcifs9ZG7bBzV8ue87bo/y1zVf0g==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/rest": "^19.0.0",
+ "@semantic-release/error": "^2.2.0",
+ "aggregate-error": "^3.0.0",
+ "bottleneck": "^2.18.1",
+ "debug": "^4.0.0",
+ "dir-glob": "^3.0.0",
+ "fs-extra": "^10.0.0",
+ "globby": "^11.0.0",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "issue-parser": "^6.0.0",
+ "lodash": "^4.17.4",
+ "mime": "^3.0.0",
+ "p-filter": "^2.0.0",
+ "p-retry": "^4.0.0",
+ "url-join": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=18.0.0-beta.1"
+ }
+ },
+ "node_modules/@semantic-release/github/node_modules/@semantic-release/error": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz",
+ "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
+ "dev": true
+ },
+ "node_modules/@semantic-release/github/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@semantic-release/npm": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.1.tgz",
+ "integrity": "sha512-I5nVZklxBzfMFwemhRNbSrkiN/dsH3c7K9+KSk6jUnq0rdLFUuJt7EBsysq4Ir3moajQgFkfEryEHPqiKJj20g==",
+ "dev": true,
+ "dependencies": {
+ "@semantic-release/error": "^3.0.0",
+ "aggregate-error": "^3.0.0",
+ "execa": "^5.0.0",
+ "fs-extra": "^10.0.0",
+ "lodash": "^4.17.15",
+ "nerf-dart": "^1.0.0",
+ "normalize-url": "^6.0.0",
+ "npm": "^8.3.0",
+ "rc": "^1.2.8",
+ "read-pkg": "^5.0.0",
+ "registry-auth-token": "^4.0.0",
+ "semver": "^7.1.2",
+ "tempy": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16 || ^14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=19.0.0"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "node_modules/@semantic-release/npm/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@semantic-release/npm/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@semantic-release/release-notes-generator": {
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz",
+ "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-angular": "^5.0.0",
+ "conventional-changelog-writer": "^5.0.0",
+ "conventional-commits-filter": "^2.0.0",
+ "conventional-commits-parser": "^3.2.3",
+ "debug": "^4.0.0",
+ "get-stream": "^6.0.0",
+ "import-from": "^4.0.0",
+ "into-stream": "^6.0.0",
+ "lodash": "^4.17.4",
+ "read-pkg-up": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14.17"
+ },
+ "peerDependencies": {
+ "semantic-release": ">=18.0.0-beta.1"
+ }
+ },
+ "node_modules/@sentry/node-core": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-9.47.1.tgz",
+ "integrity": "sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "9.47.1",
+ "@sentry/opentelemetry": "9.47.1",
+ "import-in-the-middle": "^1.14.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/core": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/instrumentation": ">=0.57.1 <1",
+ "@opentelemetry/resources": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/semantic-conventions": "^1.34.0"
+ }
+ },
+ "node_modules/@sentry/node-core/node_modules/@sentry/core": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz",
+ "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/opentelemetry": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-9.47.1.tgz",
+ "integrity": "sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "9.47.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/core": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/semantic-conventions": "^1.34.0"
+ }
+ },
+ "node_modules/@sentry/opentelemetry/node_modules/@sentry/core": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz",
+ "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@standard-schema/spec": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stylistic/stylelint-plugin": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz",
+ "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1",
+ "@csstools/media-query-list-parser": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.41",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "engines": {
+ "node": "^18.12 || >=20.9"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.0"
+ }
+ },
+ "node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
+ "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
+ "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
+ "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
+ "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
+ "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
+ "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-preset": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
+ "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
+ "dev": true,
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
+ "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
+ "@svgr/babel-plugin-transform-svg-component": "8.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/core": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
+ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^8.1.3",
+ "snake-case": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
+ "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.21.3",
+ "entities": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/plugin-jsx": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
+ "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "@svgr/hast-util-to-babel-ast": "8.0.0",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
+ "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
+ "dev": true,
+ "dependencies": {
+ "cosmiconfig": "^8.1.3",
+ "deepmerge": "^4.3.1",
+ "svgo": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/webpack": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
+ "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.21.3",
+ "@babel/preset-env": "^7.20.2",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.21.0",
+ "@svgr/core": "8.1.0",
+ "@svgr/plugin-jsx": "8.1.0",
+ "@svgr/plugin-svgo": "8.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
+ "dev": true,
+ "dependencies": {
+ "defer-to-connect": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@tootallnate/once": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tootallnate/quickjs-emscripten": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
+ "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
+ "dev": true
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@types/aws-lambda": {
+ "version": "8.10.161",
+ "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.161.tgz",
+ "integrity": "sha512-rUYdp+MQwSFocxIOcSsYSF3YYYC/uUpMbCY/mbO21vGqfrEYvNSoPyKYDj6RhXXpPfS0KstW9RwG3qXh9sL7FQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
+ "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "dev": true,
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/bonjour": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
+ "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/btoa-lite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.2.tgz",
+ "integrity": "sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/cacheable-request": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
+ "dev": true,
+ "dependencies": {
+ "@types/http-cache-semantics": "*",
+ "@types/keyv": "^3.1.4",
+ "@types/node": "*",
+ "@types/responselike": "^1.0.0"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect-history-api-fallback": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
+ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+ "dev": true,
+ "dependencies": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/eslint": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz",
+ "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/express/node_modules/@types/express-serve-static-core": {
+ "version": "4.19.6",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
+ "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
+ "dev": true
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true
+ },
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.15",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
+ "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/jsdom": {
+ "version": "21.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "parse5": "^7.0.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "node_modules/@types/jsonwebtoken": {
+ "version": "9.0.10",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz",
+ "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/keyv": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/mdast": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
+ "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "dev": true
+ },
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mysql": {
+ "version": "2.15.26",
+ "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz",
+ "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.19.37",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.37.tgz",
+ "integrity": "sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/node-forge": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
+ "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/normalize-package-data": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
"dev": true
},
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
+ "node_modules/@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "node_modules/@types/pg": {
+ "version": "8.6.1",
+ "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz",
+ "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "pg-protocol": "*",
+ "pg-types": "^2.2.0"
+ }
+ },
+ "node_modules/@types/pg-pool": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz",
+ "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/pg": "*"
+ }
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.16",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz",
+ "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==",
+ "dev": true
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.28",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz",
+ "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
+ },
+ "node_modules/@types/responselike": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
+ "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
+ "dev": true
+ },
+ "node_modules/@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+ "dev": true
+ },
+ "node_modules/@types/send": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "dev": true,
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-index": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
+ "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+ "dev": true,
+ "dependencies": {
+ "@types/express": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "dev": true,
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/shimmer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz",
+ "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/sockjs": {
+ "version": "0.3.36",
+ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
+ "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/source-list-map": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
+ "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true
+ },
+ "node_modules/@types/tapable": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
+ "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/@types/tedious": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz",
+ "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/uglify-js": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
+ "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@types/uglify-js/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
+ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
+ "dev": true
+ },
+ "node_modules/@types/webpack": {
+ "version": "4.41.39",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.39.tgz",
+ "integrity": "sha512-otxUJvoi6FbBq/64gGH34eblpKLgdi+gf08GaAh8Bx6So0ZZic028Ev/SUxD22gbthMKCkeeiXEat1kHLDJfYg==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tapable": "^1",
+ "@types/uglify-js": "*",
+ "@types/webpack-sources": "*",
+ "anymatch": "^3.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/@types/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.7.3"
+ }
+ },
+ "node_modules/@types/webpack/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@types/ws": {
+ "version": "8.5.12",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
+ "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+ "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "dev": true,
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
+ "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/type-utils": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
+ "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "dev": true,
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
+ "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@unrs/resolver-binding-android-arm-eabi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
+ "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-android-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz",
+ "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz",
+ "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz",
+ "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz",
+ "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz",
+ "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz",
+ "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz",
+ "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz",
+ "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz",
+ "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz",
+ "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz",
+ "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz",
+ "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz",
+ "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz",
+ "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz",
+ "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@napi-rs/wasm-runtime": "^0.2.11"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz",
+ "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz",
+ "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz",
+ "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
},
- "node_modules/@types/qs": {
- "version": "6.9.16",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz",
- "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==",
- "dev": true
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
},
- "node_modules/@types/range-parser": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
- "dev": true
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webpack-cli/configtest": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@webpack-cli/info": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@webpack-cli/serve": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default": {
+ "version": "8.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.42.0.tgz",
+ "integrity": "sha512-/WC38ZuGsLYF7yXyqzMwgcKBB49sE94SymXTmSwwHpglJ1CaLpcrI7LcUdqsz1M7YbkUHN/2UgvqWe/E95Fm/w==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@babel/core": "7.25.7",
+ "@babel/plugin-syntax-import-attributes": "7.26.0",
+ "@babel/plugin-transform-react-jsx": "7.25.7",
+ "@babel/plugin-transform-runtime": "7.25.7",
+ "@babel/preset-env": "7.25.7",
+ "@babel/preset-typescript": "7.25.7",
+ "@wordpress/browserslist-config": "^6.42.0",
+ "@wordpress/warning": "^3.42.0",
+ "browserslist": "^4.21.10",
+ "core-js": "^3.31.0",
+ "react": "^18.3.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/core": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-env": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz",
+ "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.25.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.7",
+ "@babel/plugin-transform-async-to-generator": "^7.25.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-class-static-block": "^7.25.7",
+ "@babel/plugin-transform-classes": "^7.25.7",
+ "@babel/plugin-transform-computed-properties": "^7.25.7",
+ "@babel/plugin-transform-destructuring": "^7.25.7",
+ "@babel/plugin-transform-dotall-regex": "^7.25.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-dynamic-import": "^7.25.7",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.7",
+ "@babel/plugin-transform-for-of": "^7.25.7",
+ "@babel/plugin-transform-function-name": "^7.25.7",
+ "@babel/plugin-transform-json-strings": "^7.25.7",
+ "@babel/plugin-transform-literals": "^7.25.7",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.7",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.7",
+ "@babel/plugin-transform-modules-amd": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.7",
+ "@babel/plugin-transform-modules-umd": "^7.25.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-new-target": "^7.25.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7",
+ "@babel/plugin-transform-numeric-separator": "^7.25.7",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.7",
+ "@babel/plugin-transform-object-super": "^7.25.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.7",
+ "@babel/plugin-transform-property-literals": "^7.25.7",
+ "@babel/plugin-transform-regenerator": "^7.25.7",
+ "@babel/plugin-transform-reserved-words": "^7.25.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.7",
+ "@babel/plugin-transform-spread": "^7.25.7",
+ "@babel/plugin-transform-sticky-regex": "^7.25.7",
+ "@babel/plugin-transform-template-literals": "^7.25.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.38.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@wordpress/base-styles": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.18.0.tgz",
+ "integrity": "sha512-c9C8gE49uFsR6S8zmfhH8xFR8FrrkpO289sscv5jRABHeH21irwP/yGuEbkJiUqIqV9Rm2+HbQay4+F5M8DYfA==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/browserslist-config": {
+ "version": "6.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.42.0.tgz",
+ "integrity": "sha512-nof8KS4I8lqopdIaAa+Cqz6UtM3x09MpeAH2JWsP2GcczPudClCju67unQGVgsHKXJqAjYtFpx4GfVYn+Rtr/w==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/dependency-extraction-webpack-plugin": {
+ "version": "6.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.42.0.tgz",
+ "integrity": "sha512-C00CqmuCHbKRsh7zXD0jlSnPhuW6nVF02xxkqXXX9AEo1FkvYhaBdQ1Plas1V+fuk47+lIktPg04FiaX6J4Tlg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "json2php": "^0.0.7"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json2php": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
+ "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
+ "dev": true,
+ "license": "BSD"
+ },
+ "node_modules/@wordpress/e2e-test-utils-playwright": {
+ "version": "1.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.42.0.tgz",
+ "integrity": "sha512-IN5OK4QTymZxnUzOswK52y/YfHecmiMh+09LcVglxfqHecFgRqd40j1BcNv/7oFIlah6jRO74zC0bqKXX5fw/w==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "change-case": "^4.1.2",
+ "get-port": "^5.1.1",
+ "lighthouse": "^12.2.2",
+ "mime": "^3.0.0",
+ "web-vitals": "^4.2.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@playwright/test": ">=1",
+ "@types/node": "^20.17.10"
+ }
},
- "node_modules/@types/responselike": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
- "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@puppeteer/browsers": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz",
+ "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@types/node": "*"
+ "debug": "^4.4.3",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.7.4",
+ "tar-fs": "^3.1.1",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
- },
- "node_modules/@types/semver": {
- "version": "7.5.8",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
- "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true
- },
- "node_modules/@types/send": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
- "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@sentry/core": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz",
+ "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==",
"dev": true,
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@types/serve-index": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
- "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@sentry/node": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.47.1.tgz",
+ "integrity": "sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/express": "*"
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1",
+ "@opentelemetry/core": "^1.30.1",
+ "@opentelemetry/instrumentation": "^0.57.2",
+ "@opentelemetry/instrumentation-amqplib": "^0.46.1",
+ "@opentelemetry/instrumentation-connect": "0.43.1",
+ "@opentelemetry/instrumentation-dataloader": "0.16.1",
+ "@opentelemetry/instrumentation-express": "0.47.1",
+ "@opentelemetry/instrumentation-fs": "0.19.1",
+ "@opentelemetry/instrumentation-generic-pool": "0.43.1",
+ "@opentelemetry/instrumentation-graphql": "0.47.1",
+ "@opentelemetry/instrumentation-hapi": "0.45.2",
+ "@opentelemetry/instrumentation-http": "0.57.2",
+ "@opentelemetry/instrumentation-ioredis": "0.47.1",
+ "@opentelemetry/instrumentation-kafkajs": "0.7.1",
+ "@opentelemetry/instrumentation-knex": "0.44.1",
+ "@opentelemetry/instrumentation-koa": "0.47.1",
+ "@opentelemetry/instrumentation-lru-memoizer": "0.44.1",
+ "@opentelemetry/instrumentation-mongodb": "0.52.0",
+ "@opentelemetry/instrumentation-mongoose": "0.46.1",
+ "@opentelemetry/instrumentation-mysql": "0.45.1",
+ "@opentelemetry/instrumentation-mysql2": "0.45.2",
+ "@opentelemetry/instrumentation-pg": "0.51.1",
+ "@opentelemetry/instrumentation-redis-4": "0.46.1",
+ "@opentelemetry/instrumentation-tedious": "0.18.1",
+ "@opentelemetry/instrumentation-undici": "0.10.1",
+ "@opentelemetry/resources": "^1.30.1",
+ "@opentelemetry/sdk-trace-base": "^1.30.1",
+ "@opentelemetry/semantic-conventions": "^1.34.0",
+ "@prisma/instrumentation": "6.11.1",
+ "@sentry/core": "9.47.1",
+ "@sentry/node-core": "9.47.1",
+ "@sentry/opentelemetry": "9.47.1",
+ "import-in-the-middle": "^1.14.2",
+ "minimatch": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@types/serve-static": {
- "version": "1.15.7",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
- "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/chrome-launcher": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.1.tgz",
+ "integrity": "sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@types/http-errors": "*",
"@types/node": "*",
- "@types/send": "*"
+ "escape-string-regexp": "^4.0.0",
+ "is-wsl": "^2.2.0",
+ "lighthouse-logger": "^2.0.1"
+ },
+ "bin": {
+ "print-chrome-path": "bin/print-chrome-path.cjs"
+ },
+ "engines": {
+ "node": ">=12.13.0"
}
},
- "node_modules/@types/sockjs": {
- "version": "0.3.36",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
- "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/configstore": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz",
+ "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@types/node": "*"
+ "atomically": "^2.0.3",
+ "dot-prop": "^9.0.0",
+ "graceful-fs": "^4.2.11",
+ "xdg-basedir": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@types/source-list-map": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
- "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==",
- "dev": true
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
- "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
- "dev": true
- },
- "node_modules/@types/tapable": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
- "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==",
- "dev": true
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/csp_evaluator": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.5.tgz",
+ "integrity": "sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==",
+ "dev": true,
+ "license": "Apache-2.0"
},
- "node_modules/@types/tough-cookie": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
- "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
- "dev": true
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/devtools-protocol": {
+ "version": "0.0.1507524",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz",
+ "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "node_modules/@types/uglify-js": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
- "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/dot-prop": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz",
+ "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "source-map": "^0.6.1"
+ "type-fest": "^4.18.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@types/uglify-js/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
"dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
}
},
- "node_modules/@types/unist": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
- "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
- "dev": true
- },
- "node_modules/@types/webpack": {
- "version": "4.41.39",
- "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.39.tgz",
- "integrity": "sha512-otxUJvoi6FbBq/64gGH34eblpKLgdi+gf08GaAh8Bx6So0ZZic028Ev/SUxD22gbthMKCkeeiXEat1kHLDJfYg==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*",
- "@types/tapable": "^1",
- "@types/uglify-js": "*",
- "@types/webpack-sources": "*",
- "anymatch": "^3.0.0",
- "source-map": "^0.6.0"
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@types/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/intl-messageformat": {
+ "version": "10.7.18",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz",
+ "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@types/node": "*",
- "@types/source-list-map": "*",
- "source-map": "^0.7.3"
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/icu-messageformat-parser": "2.11.4",
+ "tslib": "^2.8.0"
}
},
- "node_modules/@types/webpack/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/lighthouse": {
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz",
+ "integrity": "sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==",
"dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@paulirish/trace_engine": "0.0.59",
+ "@sentry/node": "^9.28.1",
+ "axe-core": "^4.10.3",
+ "chrome-launcher": "^1.2.0",
+ "configstore": "^7.0.0",
+ "csp_evaluator": "1.1.5",
+ "devtools-protocol": "0.0.1507524",
+ "enquirer": "^2.3.6",
+ "http-link-header": "^1.1.1",
+ "intl-messageformat": "^10.5.3",
+ "jpeg-js": "^0.4.4",
+ "js-library-detector": "^6.7.0",
+ "lighthouse-logger": "^2.0.2",
+ "lighthouse-stack-packs": "1.12.2",
+ "lodash-es": "^4.17.21",
+ "lookup-closest-locale": "6.2.0",
+ "metaviewport-parser": "0.3.0",
+ "open": "^8.4.0",
+ "parse-cache-control": "1.0.1",
+ "puppeteer-core": "^24.17.1",
+ "robots-parser": "^3.0.1",
+ "speedline-core": "^1.4.3",
+ "third-party-web": "^0.27.0",
+ "tldts-icann": "^7.0.12",
+ "ws": "^7.0.0",
+ "yargs": "^17.3.1",
+ "yargs-parser": "^21.0.0"
+ },
+ "bin": {
+ "chrome-debug": "core/scripts/manual-chrome-launcher.js",
+ "lighthouse": "cli/index.js",
+ "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=18.16"
}
},
- "node_modules/@types/ws": {
- "version": "8.5.12",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
- "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/lighthouse-logger": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.2.tgz",
+ "integrity": "sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@types/node": "*"
+ "debug": "^4.4.1",
+ "marky": "^1.2.2"
}
},
- "node_modules/@types/yargs": {
- "version": "17.0.33",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
- "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/lighthouse-stack-packs": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz",
+ "integrity": "sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==",
"dev": true,
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
- "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
- "dev": true
+ "license": "Apache-2.0"
},
- "node_modules/@types/yauzl": {
- "version": "2.10.3",
- "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
- "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/puppeteer-core": {
+ "version": "24.40.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.40.0.tgz",
+ "integrity": "sha512-MWL3XbUCfVgGR0gRsidzT6oKJT2QydPLhMITU6HoVWiiv4gkb6gJi3pcdAa8q4HwjBTbqISOWVP4aJiiyUJvag==",
"dev": true,
- "optional": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@types/node": "*"
+ "@puppeteer/browsers": "2.13.0",
+ "chromium-bidi": "14.0.0",
+ "debug": "^4.4.3",
+ "devtools-protocol": "0.0.1581282",
+ "typed-query-selector": "^2.12.1",
+ "webdriver-bidi-protocol": "0.4.1",
+ "ws": "^8.19.0"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
- "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/puppeteer-core/node_modules/devtools-protocol": {
+ "version": "0.0.1581282",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz",
+ "integrity": "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==",
"dev": true,
- "dependencies": {
- "@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/type-utils": "6.21.0",
- "@typescript-eslint/utils": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.4",
- "natural-compare": "^1.4.0",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
- },
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/puppeteer-core/node_modules/ws": {
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
+ "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=10.0.0"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
- "eslint": "^7.0.0 || ^8.0.0"
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
- "typescript": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
"optional": true
}
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -4602,905 +9143,1173 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
- "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/third-party-web": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.27.0.tgz",
+ "integrity": "sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
+ "license": "MIT"
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
- "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0"
- },
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": ">=16"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
- "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/utils": "6.21.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=8.3.0"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
- "typescript": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
"optional": true
}
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
- "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/xdg-basedir": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
+ "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": ">=12"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
- "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+ "node_modules/@wordpress/element": {
+ "version": "6.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.42.0.tgz",
+ "integrity": "sha512-aSuifJL9MF0xrAynWSWxIuhgagJcVwSWrqIpLwX0DZasQ0LKsJe08SmuDe/z3sgOymGG6cOd/GHv0fLwQe8VFQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "9.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
+ "@types/react": "^18.3.27",
+ "@types/react-dom": "^18.3.1",
+ "@wordpress/escape-html": "^3.42.0",
+ "change-case": "^4.1.2",
+ "is-plain-object": "^5.0.0",
+ "react": "^18.3.0",
+ "react-dom": "^18.3.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@wordpress/element/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
- },
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=0.10.0"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
- "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "node_modules/@wordpress/env": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-11.2.0.tgz",
+ "integrity": "sha512-nypFE7APrPNjdukwTvfb95Tu56OdABksoycYHGPK8fid+OBx/8MnHgo4iESZoRm7ad6S287I3hH5p4pDNa1CRQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.12",
- "@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "@inquirer/prompts": "^7.2.0",
+ "@wp-playground/cli": "^3.0.48",
+ "chalk": "^4.0.0",
+ "copy-dir": "^1.3.0",
+ "cross-spawn": "^7.0.6",
+ "docker-compose": "^0.24.3",
+ "extract-zip": "^1.6.7",
+ "got": "^11.8.5",
+ "js-yaml": "^3.13.1",
+ "ora": "^4.0.2",
+ "rimraf": "^5.0.10",
+ "simple-git": "^3.5.0",
+ "yargs": "^17.3.0"
},
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "dev": true,
"bin": {
- "semver": "bin/semver.js"
+ "wp-env": "bin/wp-env"
},
"engines": {
- "node": ">=10"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
- "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "node_modules/@wordpress/env/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "eslint-visitor-keys": "^3.4.1"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
},
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/@wordpress/env/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.2"
+ },
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
- "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
- "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
- "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
- "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
- "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "node_modules/@wordpress/env/node_modules/rimraf": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
+ "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@xtuc/long": "4.2.2"
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
- "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
- "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
+ "node_modules/@wordpress/escape-html": {
+ "version": "3.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.42.0.tgz",
+ "integrity": "sha512-dykrMeKAxhwfEImrXfTqKREYGJP2qVIU8q3daUNyNLzrOdwhulAlBzUWXH9zYyY5qEQWrWsnjq4M9f77dO0p4w==",
"dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.12.1"
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
- "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+ "node_modules/@wordpress/eslint-plugin": {
+ "version": "24.4.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-24.4.0.tgz",
+ "integrity": "sha512-qh/2CWsXNpnC4ROxajh6T50WwwV87fIBkKliuBO1G0DMdxVwiXSDaLRqSxn+mOLAyw4q5VdlL4A5R8a/0UMjQw==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@xtuc/ieee754": "^1.2.0"
+ "@babel/eslint-parser": "7.25.7",
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
+ "@typescript-eslint/parser": "^6.4.1",
+ "@wordpress/babel-preset-default": "^8.42.0",
+ "@wordpress/prettier-config": "^4.42.0",
+ "@wordpress/theme": "^0.9.0",
+ "cosmiconfig": "^7.0.0",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-import-resolver-typescript": "^4.4.4",
+ "eslint-plugin-import": "^2.25.2",
+ "eslint-plugin-jest": "^27.4.3",
+ "eslint-plugin-jsdoc": "^46.4.6",
+ "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-plugin-playwright": "^0.15.3",
+ "eslint-plugin-prettier": "^5.0.0",
+ "eslint-plugin-react": "^7.27.0",
+ "eslint-plugin-react-hooks": "^4.3.0",
+ "globals": "^13.12.0",
+ "requireindex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7",
+ "eslint": ">=8",
+ "prettier": ">=3",
+ "typescript": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "prettier": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
- "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
"dev": true,
"dependencies": {
- "@xtuc/long": "4.2.2"
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
- "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
- "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/eslint-import-resolver-typescript": {
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz",
+ "integrity": "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.12.1",
- "@webassemblyjs/wasm-gen": "1.12.1",
- "@webassemblyjs/wasm-opt": "1.12.1",
- "@webassemblyjs/wasm-parser": "1.12.1",
- "@webassemblyjs/wast-printer": "1.12.1"
+ "debug": "^4.4.1",
+ "eslint-import-context": "^0.1.8",
+ "get-tsconfig": "^4.10.1",
+ "is-bun-module": "^2.0.0",
+ "stable-hash-x": "^0.2.0",
+ "tinyglobby": "^0.2.14",
+ "unrs-resolver": "^1.7.11"
+ },
+ "engines": {
+ "node": "^16.17.0 || >=18.6.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-import-resolver-typescript"
+ },
+ "peerDependencies": {
+ "eslint": "*",
+ "eslint-plugin-import": "*",
+ "eslint-plugin-import-x": "*"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-import": {
+ "optional": true
+ },
+ "eslint-plugin-import-x": {
+ "optional": true
+ }
}
},
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
- "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
- "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/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==",
"dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/wasm-gen": "1.12.1",
- "@webassemblyjs/wasm-parser": "1.12.1"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
- "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "engines": {
+ "node": ">= 6"
}
},
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
- "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
+ "node_modules/@wordpress/jest-console": {
+ "version": "8.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.42.0.tgz",
+ "integrity": "sha512-eLU7HO5VMt5LEIL+fTkuF8mcbLVNtTa0WXWZDcTPnPv4PSDH/QUGEJZ7QccF+cJ0Xj8np6G/xZWRs7VXlJYycg==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webpack-cli/configtest": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
- "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
- "dev": true,
+ "jest-matcher-utils": "^29.6.2",
+ "jest-mock": "^29.6.2"
+ },
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
+ "jest": ">=29"
}
},
- "node_modules/@webpack-cli/info": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
- "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "node_modules/@wordpress/jest-preset-default": {
+ "version": "12.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.42.0.tgz",
+ "integrity": "sha512-yTFeblOQORtQ77T4l2LqWf2IO4j65rpX2ekaQTR7cWKCbA/HOpuwK3LYHPN8Pq2gfXrCoNC68QEgGoi4i2oHAw==",
"dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@wordpress/jest-console": "^8.42.0",
+ "babel-jest": "29.7.0"
+ },
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
+ "@babel/core": ">=7",
+ "jest": ">=29"
}
},
- "node_modules/@webpack-cli/serve": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
- "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "node_modules/@wordpress/npm-package-json-lint-config": {
+ "version": "5.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.42.0.tgz",
+ "integrity": "sha512-Kjvf5M0NNwuAwsxKRY2hB16QJ7BPfd+NjDyYMlSCpzUXtg94Eo8DdzNnKcyZXVIQynKdQCDGLx84DN2wr60K3A==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- },
- "peerDependenciesMeta": {
- "webpack-dev-server": {
- "optional": true
- }
+ "npm-package-json-lint": ">=6.0.0"
}
},
- "node_modules/@wordpress/api-fetch": {
- "version": "6.55.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz",
- "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==",
+ "node_modules/@wordpress/postcss-plugins-preset": {
+ "version": "5.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.42.0.tgz",
+ "integrity": "sha512-hXCJdLX3R9bWp11DE90ZzTE+1jf/J9KlFkP3qHwZSY+5TP3hWb4HEvdnWSFkWDiBqlzFZK2SEvzheyMjPsq+3g==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0"
+ "@wordpress/base-styles": "^6.18.0",
+ "autoprefixer": "^10.4.20",
+ "postcss-import": "^16.1.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
}
},
- "node_modules/@wordpress/babel-plugin-import-jsx-pragma": {
- "version": "4.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz",
- "integrity": "sha512-hYxj2Uobxk86ctlfaJou9v13XqXZ30yx4ZwRNu5cH5/LWXe2MIXBTPv7dUk6wqN/qFOjsFvP9jCB0NsW6MnkrA==",
+ "node_modules/@wordpress/prettier-config": {
+ "version": "4.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.42.0.tgz",
+ "integrity": "sha512-YoOlVxDMZ02+Eg8N9OVItikOLnpLd6C4mi/QwJvlKS7b9sKAQe+ekBugj6y/9w1PkODhMM+Dvxj+dGWq/8TTyA==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "@babel/core": "^7.12.9"
- }
- },
- "node_modules/@wordpress/babel-preset-default": {
- "version": "7.42.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.42.0.tgz",
- "integrity": "sha512-AWSxWuEuzazt/nWomKiaVhYQeXuqxTniPCKhvks58wB3P4UXvSe3hRnO+nujz20IuxIk2xHT6x47HgpDZy30jw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-runtime": "^7.16.0",
- "@babel/preset-env": "^7.16.0",
- "@babel/preset-typescript": "^7.16.0",
- "@babel/runtime": "^7.16.0",
- "@wordpress/babel-plugin-import-jsx-pragma": "^4.41.0",
- "@wordpress/browserslist-config": "^5.41.0",
- "@wordpress/warning": "^2.58.0",
- "browserslist": "^4.21.10",
- "core-js": "^3.31.0",
- "react": "^18.3.0"
- },
- "engines": {
- "node": ">=14"
+ "prettier": ">=3"
}
},
- "node_modules/@wordpress/base-styles": {
- "version": "4.49.0",
- "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.49.0.tgz",
- "integrity": "sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==",
- "dev": true
- },
- "node_modules/@wordpress/browserslist-config": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz",
- "integrity": "sha512-J7ejzzDpPZddVIiq2YiK8J/pNTJDy3X1s+5ZtwkwklCxBMZJurxf9pEhtbaf7us0Q6c1j8Ubv7Fpx3lqk2ypxA==",
+ "node_modules/@wordpress/private-apis": {
+ "version": "1.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.42.0.tgz",
+ "integrity": "sha512-IDpyCszdnBECvkejn2vyGPHn4aWtROFq0yFaVGPAvYCadnlpWsQC0oJodppBOE7sftYiIDnTw6/rnv+mp29/Kg==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
- "node_modules/@wordpress/dependency-extraction-webpack-plugin": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-5.9.0.tgz",
- "integrity": "sha512-hXbCkbG1XES47t7hFSETRrLfaRSPyQPlCnhlCx7FfhYFD0wh1jVArApXX5dD+A6wTrayXX/a16MpfaNqE662XA==",
+ "node_modules/@wordpress/scripts": {
+ "version": "31.7.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-31.7.0.tgz",
+ "integrity": "sha512-Gat1EFwIPPH3qvpWeip85fCRFP20sk7RTlmqhumbdWR+nIjHK41lz3k2W4zHbneloo96f6coWLJz1dAtwj+lSg==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "json2php": "^0.0.7"
+ "@babel/core": "7.25.7",
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
+ "@svgr/webpack": "^8.0.1",
+ "@wordpress/babel-preset-default": "^8.42.0",
+ "@wordpress/browserslist-config": "^6.42.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "^6.42.0",
+ "@wordpress/e2e-test-utils-playwright": "^1.42.0",
+ "@wordpress/eslint-plugin": "^24.4.0",
+ "@wordpress/jest-preset-default": "^12.42.0",
+ "@wordpress/npm-package-json-lint-config": "^5.42.0",
+ "@wordpress/postcss-plugins-preset": "^5.42.0",
+ "@wordpress/prettier-config": "^4.42.0",
+ "@wordpress/stylelint-config": "^23.34.0",
+ "adm-zip": "^0.5.9",
+ "babel-jest": "29.7.0",
+ "babel-loader": "9.2.1",
+ "browserslist": "^4.21.10",
+ "chalk": "^4.0.0",
+ "check-node-version": "^4.1.0",
+ "copy-webpack-plugin": "^10.2.0",
+ "cross-spawn": "^7.0.6",
+ "css-loader": "^6.2.0",
+ "cssnano": "^6.0.1",
+ "cwd": "^0.10.0",
+ "dir-glob": "^3.0.1",
+ "eslint": "^8.57.1",
+ "expect-puppeteer": "^4.4.0",
+ "fast-glob": "^3.2.7",
+ "filenamify": "^4.2.0",
+ "jest": "^29.6.2",
+ "jest-dev-server": "^10.1.4",
+ "jest-environment-jsdom": "^30.2.0",
+ "jest-environment-node": "^29.6.2",
+ "json2php": "^0.0.9",
+ "markdownlint-cli": "^0.31.1",
+ "merge-deep": "^3.0.3",
+ "mini-css-extract-plugin": "^2.9.2",
+ "minimist": "^1.2.0",
+ "npm-package-json-lint": "^6.4.0",
+ "npm-packlist": "^3.0.0",
+ "postcss": "^8.4.5",
+ "postcss-loader": "^6.2.1",
+ "prettier": "npm:wp-prettier@3.0.3",
+ "puppeteer-core": "^23.10.1",
+ "react-refresh": "^0.14.0",
+ "read-pkg-up": "^7.0.1",
+ "resolve-bin": "^0.4.0",
+ "rtlcss": "^4.3.0",
+ "sass": "^1.54.0",
+ "sass-loader": "^16.0.3",
+ "schema-utils": "^4.2.0",
+ "source-map-loader": "^3.0.0",
+ "stylelint": "^16.8.2",
+ "terser-webpack-plugin": "^5.3.10",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.97.0",
+ "webpack-bundle-analyzer": "^4.9.1",
+ "webpack-cli": "^5.1.4",
+ "webpack-dev-server": "^4.15.1"
+ },
+ "bin": {
+ "wp-scripts": "bin/wp-scripts.js"
},
"engines": {
- "node": ">=18"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "webpack": "^5.0.0"
+ "@playwright/test": "^1.58.2",
+ "@wordpress/env": ">=10.0.0",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@wordpress/env": {
+ "optional": true
+ }
}
},
- "node_modules/@wordpress/e2e-test-utils-playwright": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.9.0.tgz",
- "integrity": "sha512-07k7LnkvEPIaMGgPvm+wgmBGAVI+pyH/jVXD3TEvKq2BLhZ7zUurV4RvOpiOs58rHvQOS+BzS+yXUwtXUrkQ4g==",
+ "node_modules/@wordpress/scripts/node_modules/@babel/core": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "change-case": "^4.1.2",
- "form-data": "^4.0.0",
- "get-port": "^5.1.1",
- "lighthouse": "^10.4.0",
- "mime": "^3.0.0",
- "web-vitals": "^4.2.1"
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
},
"engines": {
- "node": ">=18.12.0",
- "npm": ">=8.19.2"
+ "node": ">=6.9.0"
},
- "peerDependencies": {
- "@playwright/test": ">=1"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
}
},
- "node_modules/@wordpress/env": {
- "version": "10.9.0",
- "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.9.0.tgz",
- "integrity": "sha512-XS4dJY1jot25wNKnI8+wL1M4tHRIaiLW1ggwXQSyUUWinyG9kuyQA+jzIBnNGegy2pLgbSwTmovExHQNtfU2Hw==",
+ "node_modules/@wordpress/stylelint-config": {
+ "version": "23.34.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.34.0.tgz",
+ "integrity": "sha512-4WetpbMeyq27h1233huk12Jv5xthc4KDKMOZfDXKQl8wS6FX1NUlhEOxbe7k1u20ZQd2AvR71ucp3hOjnSw74A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chalk": "^4.0.0",
- "copy-dir": "^1.3.0",
- "docker-compose": "^0.24.3",
- "extract-zip": "^1.6.7",
- "got": "^11.8.5",
- "inquirer": "^7.1.0",
- "js-yaml": "^3.13.1",
- "ora": "^4.0.2",
- "rimraf": "^3.0.2",
- "simple-git": "^3.5.0",
- "terminal-link": "^2.0.0",
- "yargs": "^17.3.0"
- },
- "bin": {
- "wp-env": "bin/wp-env"
+ "@stylistic/stylelint-plugin": "^3.0.1",
+ "@wordpress/theme": "^0.9.0",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-config-recommended-scss": "^14.1.0"
},
"engines": {
"node": ">=18.12.0",
"npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.2",
+ "stylelint-scss": "^6.4.0"
}
},
- "node_modules/@wordpress/eslint-plugin": {
- "version": "18.1.0",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-18.1.0.tgz",
- "integrity": "sha512-5eGpXEwaZsKbEh9040nVr4ggmrpPmltP+Ie4iGruWvCme6ZIFYw70CyWEV8S102IkqjH/BaH6d+CWg8tN7sc/g==",
+ "node_modules/@wordpress/theme": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.9.0.tgz",
+ "integrity": "sha512-jxskNZVvWHIswQvWvswaNIAkBpXwdFcocBYxTWQnYgvb0QAEYsKsnqYMulZPrz/Dk4c+GF7ptwdLxb3rry9tcg==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/eslint-parser": "^7.16.0",
- "@typescript-eslint/eslint-plugin": "^6.4.1",
- "@typescript-eslint/parser": "^6.4.1",
- "@wordpress/babel-preset-default": "^7.42.0",
- "@wordpress/prettier-config": "^3.15.0",
- "cosmiconfig": "^7.0.0",
- "eslint-config-prettier": "^8.3.0",
- "eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jest": "^27.2.3",
- "eslint-plugin-jsdoc": "^46.4.6",
- "eslint-plugin-jsx-a11y": "^6.5.1",
- "eslint-plugin-playwright": "^0.15.3",
- "eslint-plugin-prettier": "^5.0.0",
- "eslint-plugin-react": "^7.27.0",
- "eslint-plugin-react-hooks": "^4.3.0",
- "globals": "^13.12.0",
- "requireindex": "^1.2.0"
+ "@wordpress/element": "^6.42.0",
+ "@wordpress/private-apis": "^1.42.0",
+ "colorjs.io": "^0.6.0",
+ "memize": "^2.1.0"
},
"engines": {
- "node": ">=14",
- "npm": ">=6.14.4"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "@babel/core": ">=7",
- "eslint": ">=8",
- "prettier": ">=3",
- "typescript": ">=4"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "stylelint": "^16.8.2"
},
"peerDependenciesMeta": {
- "prettier": {
- "optional": true
- },
- "typescript": {
+ "stylelint": {
"optional": true
}
}
},
- "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "node_modules/@wordpress/warning": {
+ "version": "3.42.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.42.0.tgz",
+ "integrity": "sha512-LMsbWI57IkVRoco+HTQezSzf3FW97AJH3QllwQdk+Ge5y2mJ2jkfIgwZP7uDeMozA1HVUAW+TgmybLloS9xHzg==",
"dev": true,
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=10"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
- "node_modules/@wordpress/eslint-plugin/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "node_modules/@wp-playground/blueprints": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-3.1.13.tgz",
+ "integrity": "sha512-7zOyZVgoiMLK7/MHfQaV1tSjWKHqcysVMEM1qoFz4tldPxJixAx6WsrtAyJYF1+V/nYmoUrb0GkjPTGUKmaJWg==",
+ "dev": true,
+ "dependencies": {
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node": "3.1.13",
+ "@php-wasm/node-polyfills": "3.1.13",
+ "@php-wasm/progress": "3.1.13",
+ "@php-wasm/scopes": "3.1.13",
+ "@php-wasm/stream-compression": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "@php-wasm/web-service-worker": "3.1.13",
+ "@wp-playground/common": "3.1.13",
+ "@wp-playground/storage": "3.1.13",
+ "@wp-playground/wordpress": "3.1.13",
+ "@zip.js/zip.js": "2.7.57",
+ "ajv": "8.12.0",
+ "async-lock": "1.4.1",
+ "clean-git-ref": "2.0.1",
+ "crc-32": "1.2.2",
+ "diff3": "0.0.4",
+ "express": "4.22.0",
+ "fast-xml-parser": "^5.5.1",
+ "fs-ext-extra-prebuilt": "2.2.7",
+ "ignore": "5.3.2",
+ "ini": "4.1.2",
+ "jsonc-parser": "3.3.1",
+ "minimisted": "2.0.1",
+ "octokit": "3.1.2",
+ "pako": "1.0.10",
+ "pify": "2.3.0",
+ "readable-stream": "3.6.2",
+ "sha.js": "2.4.12",
+ "simple-get": "4.0.1",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3",
+ "yargs": "17.7.2"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@wp-playground/blueprints/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@wordpress/eslint-plugin/node_modules/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==",
+ "node_modules/@wp-playground/blueprints/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@wordpress/eslint-plugin/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "node_modules/@wp-playground/blueprints/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/blueprints/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/blueprints/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=0.10.0"
}
},
- "node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
+ "node_modules/@wp-playground/blueprints/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.16.0"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=12"
+ "node": ">= 6"
}
},
- "node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
+ "node_modules/@wp-playground/blueprints/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"dev": true,
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
},
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
},
- "engines": {
- "node": ">=12"
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
- "node_modules/@wordpress/i18n/node_modules/gettext-parser": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
- "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
+ "node_modules/@wp-playground/cli": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@wp-playground/cli/-/cli-3.1.13.tgz",
+ "integrity": "sha512-XecEZ+4RNDjFJ6WJHmX5X4Z56i6jgHxlw6yVSA/7tRmtUFk9WAzigP0gw2Xnl693JMaYwWHgR98YatTgnPb6+w==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/cli-util": "3.1.13",
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node": "3.1.13",
+ "@php-wasm/progress": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "@php-wasm/xdebug-bridge": "3.1.13",
+ "@wp-playground/blueprints": "3.1.13",
+ "@wp-playground/common": "3.1.13",
+ "@wp-playground/storage": "3.1.13",
+ "@wp-playground/tools": "3.1.13",
+ "@wp-playground/wordpress": "3.1.13",
+ "@zip.js/zip.js": "2.7.57",
+ "ajv": "8.12.0",
+ "async-lock": "1.4.1",
+ "clean-git-ref": "2.0.1",
+ "crc-32": "1.2.2",
+ "diff3": "0.0.4",
+ "express": "4.22.0",
+ "fast-xml-parser": "^5.5.1",
+ "fs-ext-extra-prebuilt": "2.2.7",
+ "fs-extra": "11.1.1",
+ "ignore": "5.3.2",
+ "ini": "4.1.2",
+ "jsonc-parser": "3.3.1",
+ "minimisted": "2.0.1",
+ "octokit": "3.1.2",
+ "pako": "1.0.10",
+ "pify": "2.3.0",
+ "readable-stream": "3.6.2",
+ "sha.js": "2.4.12",
+ "simple-get": "4.0.1",
+ "tmp-promise": "3.0.3",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3",
+ "xml2js": "0.6.2",
+ "yargs": "17.7.2"
+ },
+ "bin": {
+ "wp-playground-cli": "wp-playground.js"
+ }
+ },
+ "node_modules/@wp-playground/cli/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "encoding": "^0.1.12",
- "safe-buffer": "^5.1.1"
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@wordpress/i18n/node_modules/sprintf-js": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
- "dev": true
- },
- "node_modules/@wordpress/jest-console": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz",
- "integrity": "sha512-/9PZJhyszdRX4mka7t1WzoooM+Q/DwC4jkNVtJxqci5lbL3Lrhy1cCJGCgMr1n/9w+zs7eLmExFBvV4v44iyNw==",
+ "node_modules/@wp-playground/cli/node_modules/fs-extra": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "jest-matcher-utils": "^29.6.2"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "jest": ">=29"
+ "node": ">=14.14"
}
},
- "node_modules/@wordpress/jest-preset-default": {
- "version": "11.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.29.0.tgz",
- "integrity": "sha512-7LA0ZS5t0Thn7xrdwPL3hLgjB9LKloneGhMwnnDUTgJP330lyfdDfJ+O6Lnz3iL+bg68mkA3AzrT9Fs9f3WKww==",
+ "node_modules/@wp-playground/cli/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
"dev": true,
- "dependencies": {
- "@wordpress/jest-console": "^7.29.0",
- "babel-jest": "^29.6.2"
- },
+ "license": "ISC",
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "@babel/core": ">=7",
- "jest": ">=29"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@wp-playground/cli/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/cli/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/cli/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/@wordpress/keycodes": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz",
- "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==",
+ "node_modules/@wp-playground/cli/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=12"
+ "node": ">= 6"
}
},
- "node_modules/@wordpress/npm-package-json-lint-config": {
- "version": "4.43.0",
- "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz",
- "integrity": "sha512-XSb7AdDC7yGTBVYeRM4oqmOygEB+/+tk7lobLIGDmlZJs+M3F/NUvQq0Vcas1pojq2fyPYTUwOlu81ga33fNwQ==",
+ "node_modules/@wp-playground/cli/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14"
+ "node": ">=10.0.0"
},
"peerDependencies": {
- "npm-package-json-lint": ">=6.0.0"
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
- "node_modules/@wordpress/postcss-plugins-preset": {
- "version": "4.42.0",
- "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.42.0.tgz",
- "integrity": "sha512-5xmKF7IUsqS5JcmJlHKHq7RaR6ZpaLj3n9c+X0X0/Oo7ZCIGp6WeDQngx13sH4NJoKXrZ9g4n1rbzhEKeo/Wtg==",
+ "node_modules/@wp-playground/common": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-3.1.13.tgz",
+ "integrity": "sha512-Z9bIxYdJOb5g3IlFKt389vncuG+ZPqTLV6ntb0jG5xjZE2JSda/oX3U+DHjUuqzzcyRTQJ61/dSVBuHsQy8S1A==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@wordpress/base-styles": "^4.49.0",
- "autoprefixer": "^10.2.5"
+ "@php-wasm/universal": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "ini": "4.1.2"
},
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
}
},
- "node_modules/@wordpress/prettier-config": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.15.0.tgz",
- "integrity": "sha512-exC2rkEioTt//AnzPRyaaFv8FNYIvamPDytNol5bKQ6Qh65QSdZZE9V+GtRCrIPL7/Bq6xba03XuRVxl9TjtJg==",
+ "node_modules/@wp-playground/common/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "prettier": ">=3"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@wordpress/scripts": {
- "version": "27.9.0",
- "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-27.9.0.tgz",
- "integrity": "sha512-ohiDHMnfTTBTi7qS7AVJZUi1dxwg0k3Aav1a8CzUoOE8YoT8tvMQ3W89H9XgqMgMTWUCdgTUBYLTJTivfVVbXQ==",
+ "node_modules/@wp-playground/storage": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@wp-playground/storage/-/storage-3.1.13.tgz",
+ "integrity": "sha512-XdwHi9d0Jjqc15WiEmEwilYEKbT2qcjibYCkDeHo8/571IqUokKs9Vt3wombVPTzT2FwUtyDJ72ykbS/Z1n6BQ==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@php-wasm/stream-compression": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "@zip.js/zip.js": "2.7.57",
+ "async-lock": "^1.4.1",
+ "clean-git-ref": "^2.0.1",
+ "crc-32": "^1.2.0",
+ "diff3": "0.0.3",
+ "ignore": "^5.1.4",
+ "ini": "4.1.2",
+ "minimisted": "^2.0.0",
+ "octokit": "3.1.2",
+ "pako": "^1.0.10",
+ "pify": "^4.0.1",
+ "readable-stream": "^3.4.0",
+ "sha.js": "^2.4.9",
+ "simple-get": "^4.0.1"
+ }
+ },
+ "node_modules/@wp-playground/storage/node_modules/diff3": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz",
+ "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/storage/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@wp-playground/storage/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/core": "^7.16.0",
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
- "@svgr/webpack": "^8.0.1",
- "@wordpress/babel-preset-default": "^7.42.0",
- "@wordpress/browserslist-config": "^5.41.0",
- "@wordpress/dependency-extraction-webpack-plugin": "^5.9.0",
- "@wordpress/e2e-test-utils-playwright": "^0.26.0",
- "@wordpress/eslint-plugin": "^18.1.0",
- "@wordpress/jest-preset-default": "^11.29.0",
- "@wordpress/npm-package-json-lint-config": "^4.43.0",
- "@wordpress/postcss-plugins-preset": "^4.42.0",
- "@wordpress/prettier-config": "^3.15.0",
- "@wordpress/stylelint-config": "^21.41.0",
- "adm-zip": "^0.5.9",
- "babel-jest": "^29.6.2",
- "babel-loader": "^8.2.3",
- "browserslist": "^4.21.10",
- "chalk": "^4.0.0",
- "check-node-version": "^4.1.0",
- "clean-webpack-plugin": "^3.0.0",
- "copy-webpack-plugin": "^10.2.0",
- "cross-spawn": "^5.1.0",
- "css-loader": "^6.2.0",
- "cssnano": "^6.0.1",
- "cwd": "^0.10.0",
- "dir-glob": "^3.0.1",
- "eslint": "^8.3.0",
- "expect-puppeteer": "^4.4.0",
- "fast-glob": "^3.2.7",
- "filenamify": "^4.2.0",
- "jest": "^29.6.2",
- "jest-dev-server": "^9.0.1",
- "jest-environment-jsdom": "^29.6.2",
- "jest-environment-node": "^29.6.2",
- "markdownlint-cli": "^0.31.1",
- "merge-deep": "^3.0.3",
- "mini-css-extract-plugin": "^2.5.1",
- "minimist": "^1.2.0",
- "npm-package-json-lint": "^6.4.0",
- "npm-packlist": "^3.0.0",
- "postcss": "^8.4.5",
- "postcss-loader": "^6.2.1",
- "prettier": "npm:wp-prettier@3.0.3",
- "puppeteer-core": "^13.2.0",
- "react-refresh": "^0.14.0",
- "read-pkg-up": "^7.0.1",
- "resolve-bin": "^0.4.0",
- "rtlcss-webpack-plugin": "^4.0.7",
- "sass": "^1.35.2",
- "sass-loader": "^12.1.0",
- "source-map-loader": "^3.0.0",
- "stylelint": "^14.2.0",
- "terser-webpack-plugin": "^5.3.9",
- "url-loader": "^4.1.1",
- "webpack": "^5.88.2",
- "webpack-bundle-analyzer": "^4.9.1",
- "webpack-cli": "^5.1.4",
- "webpack-dev-server": "^4.15.1"
- },
- "bin": {
- "wp-scripts": "bin/wp-scripts.js"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=18",
- "npm": ">=6.14.4"
- },
- "peerDependencies": {
- "@playwright/test": "^1.43.0",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
+ "node": ">= 6"
}
},
- "node_modules/@wordpress/scripts/node_modules/@wordpress/e2e-test-utils-playwright": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.26.0.tgz",
- "integrity": "sha512-4KFyQ3IsYIJaIvOQ1qhAHhRISs9abNToF/bktfMNxQiEJsmbNn7lq/IbaY+shqwdBWVg8TQtLcL4MpSl0ISaxQ==",
+ "node_modules/@wp-playground/tools": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@wp-playground/tools/-/tools-3.1.13.tgz",
+ "integrity": "sha512-fsonMWSvKvLr8bkusEsK13Wv8as+OCzQeshpafs1pn7JI9UCe8LN/cIi6leS9CLfKluzdydRUW843yTZ4xbIWg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@wp-playground/blueprints": "3.1.13",
+ "@zip.js/zip.js": "2.7.57",
+ "ajv": "8.12.0",
+ "async-lock": "1.4.1",
+ "clean-git-ref": "2.0.1",
+ "crc-32": "1.2.2",
+ "diff3": "0.0.4",
+ "express": "4.22.0",
+ "fast-xml-parser": "^5.5.1",
+ "fs-ext-extra-prebuilt": "2.2.7",
+ "ignore": "5.3.2",
+ "ini": "4.1.2",
+ "jsonc-parser": "3.3.1",
+ "minimisted": "2.0.1",
+ "octokit": "3.1.2",
+ "pako": "1.0.10",
+ "pify": "2.3.0",
+ "readable-stream": "3.6.2",
+ "sha.js": "2.4.12",
+ "simple-get": "4.0.1",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3",
+ "yargs": "17.7.2"
+ },
+ "engines": {
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
+ }
+ },
+ "node_modules/@wp-playground/tools/node_modules/ajv": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@wordpress/api-fetch": "^6.55.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/url": "^3.59.0",
- "change-case": "^4.1.2",
- "form-data": "^4.0.0",
- "get-port": "^5.1.1",
- "lighthouse": "^10.4.0",
- "mime": "^3.0.0",
- "web-vitals": "^3.5.0"
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
},
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@wp-playground/tools/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+ "dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "@playwright/test": ">=1"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/@wordpress/scripts/node_modules/web-vitals": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz",
- "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==",
- "dev": true
+ "node_modules/@wp-playground/tools/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@wordpress/stylelint-config": {
- "version": "21.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz",
- "integrity": "sha512-2wxFu8ICeRGF3Lxz7H7o2SU1u6pTI4mjuog39DgtCNb+v+f6yhgREDuNQEeti3Svb0rjj63AJ7r2CqLZk+EQIQ==",
+ "node_modules/@wp-playground/tools/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/tools/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@wp-playground/tools/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "stylelint-config-recommended": "^6.0.0",
- "stylelint-config-recommended-scss": "^5.0.2"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=14"
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@wp-playground/tools/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
},
"peerDependencies": {
- "stylelint": "^14.2"
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
- "node_modules/@wordpress/url": {
- "version": "3.59.0",
- "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz",
- "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==",
+ "node_modules/@wp-playground/wordpress": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-3.1.13.tgz",
+ "integrity": "sha512-ItR4fV0Khq+kdj3i40hh1xwcjnNsptx98d6rFV7q0cL7hnG3q6pOD3BPxZhU/KkxPHZlr2qqBEpGaiEXAEHrTw==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "remove-accents": "^0.5.0"
+ "@php-wasm/logger": "3.1.13",
+ "@php-wasm/node": "3.1.13",
+ "@php-wasm/universal": "3.1.13",
+ "@php-wasm/util": "3.1.13",
+ "@wp-playground/common": "3.1.13",
+ "express": "4.22.0",
+ "fast-xml-parser": "^5.5.1",
+ "fs-ext-extra-prebuilt": "2.2.7",
+ "ini": "4.1.2",
+ "jsonc-parser": "3.3.1",
+ "wasm-feature-detect": "1.8.0",
+ "ws": "8.18.3",
+ "yargs": "17.7.2"
},
"engines": {
- "node": ">=12"
+ "node": ">=20.10.0",
+ "npm": ">=10.2.3"
}
},
- "node_modules/@wordpress/warning": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz",
- "integrity": "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg==",
+ "node_modules/@wp-playground/wordpress/node_modules/ini": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=12"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@wp-playground/wordpress/node_modules/jsonc-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
+ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@wp-playground/wordpress/node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@zip.js/zip.js": {
+ "version": "2.7.57",
+ "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.57.tgz",
+ "integrity": "sha512-BtonQ1/jDnGiMed6OkV6rZYW78gLmLswkHOzyMrMb+CAR7CZO8phOHO6c2qw6qb1g1betN7kwEHhhZk30dv+NA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "bun": ">=0.7.0",
+ "deno": ">=1.0.0",
+ "node": ">=16.5.0"
+ }
},
"node_modules/abab": {
"version": "2.0.6",
@@ -5529,10 +10338,11 @@
}
},
"node_modules/acorn": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
- "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -5540,16 +10350,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
- },
"node_modules/acorn-import-attributes": {
"version": "1.9.5",
"resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
@@ -5559,6 +10359,19 @@
"acorn": "^8"
}
},
+ "node_modules/acorn-import-phases": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+ "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependencies": {
+ "acorn": "^8.14.0"
+ }
+ },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -5635,6 +10448,7 @@
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
"integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"ajv": ">=5.0.0"
}
@@ -6059,6 +10873,7 @@
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -6069,11 +10884,19 @@
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true
},
+ "node_modules/async-lock": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz",
+ "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/at-least-node": {
"version": "1.0.0",
@@ -6084,10 +10907,21 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/atomically": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.1.tgz",
+ "integrity": "sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "stubborn-fs": "^2.0.0",
+ "when-exit": "^2.1.4"
+ }
+ },
"node_modules/autoprefixer": {
- "version": "10.4.20",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
- "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
+ "version": "10.4.27",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz",
+ "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==",
"dev": true,
"funding": [
{
@@ -6103,12 +10937,12 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
- "caniuse-lite": "^1.0.30001646",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.1",
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001774",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
@@ -6137,22 +10971,24 @@
}
},
"node_modules/axe-core": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz",
- "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==",
+ "version": "4.11.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz",
+ "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==",
"dev": true,
+ "license": "MPL-2.0",
"engines": {
"node": ">=4"
}
},
"node_modules/axios": {
- "version": "1.7.7",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
- "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
+ "version": "1.13.6",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz",
+ "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
+ "follow-redirects": "^1.15.11",
+ "form-data": "^4.0.5",
"proxy-from-env": "^1.1.0"
}
},
@@ -6193,40 +11029,21 @@
}
},
"node_modules/babel-loader": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
- "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
+ "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.4",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
},
"engines": {
- "node": ">= 8.9"
+ "node": ">= 14.15.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0",
- "webpack": ">=2"
- }
- },
- "node_modules/babel-loader/node_modules/schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 8.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "@babel/core": "^7.12.0",
+ "webpack": ">=5"
}
},
"node_modules/babel-plugin-istanbul": {
@@ -6341,30 +11158,6 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/babel-runtime": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz",
- "integrity": "sha512-zeCYxDePWYAT/DfmQWIHsMSFW2vv45UIwIAMjGvQVsTd47RwsiRH0uK1yzyWZ7LDBKdhnGDPM6NYEO5CZyhPrg==",
- "dev": true,
- "dependencies": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.10.0"
- }
- },
- "node_modules/babel-runtime/node_modules/core-js": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
- "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
- "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
- "dev": true,
- "hasInstallScript": true
- },
- "node_modules/babel-runtime/node_modules/regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
- "dev": true
- },
"node_modules/bail": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
@@ -6382,11 +11175,101 @@
"dev": true
},
"node_modules/bare-events": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
- "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
+ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
"dev": true,
- "optional": true
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "bare-abort-controller": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-fs": {
+ "version": "4.5.6",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.6.tgz",
+ "integrity": "sha512-1QovqDrR80Pmt5HPAsMsXTCFcDYr+NSUKW6nd6WO5v0JBmnItc/irNRzm2KOQ5oZ69P37y+AMujNyNtG+1Rggw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ },
+ "engines": {
+ "bare": ">=1.16.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.0.tgz",
+ "integrity": "sha512-Dc9/SlwfxkXIGYhvMQNUtKaXCaGkZYGcd1vuNUUADVqzu4/vQfvnMkYYOUnt2VwQ2AqKr/8qAVFRtwETljgeFg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "bare": ">=1.14.0"
+ }
+ },
+ "node_modules/bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-os": "^3.0.1"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.11.0.tgz",
+ "integrity": "sha512-Y/+iQ49fL3rIn6w/AVxI/2+BRrpmzJvdWt5Jv8Za6Ngqc6V227c+pYjYYgLdpR3MwQ9ObVXD0ZrqoBztakM0rw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "streamx": "^2.25.0",
+ "teex": "^1.0.1"
+ },
+ "peerDependencies": {
+ "bare-abort-controller": "*",
+ "bare-buffer": "*",
+ "bare-events": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ },
+ "bare-buffer": {
+ "optional": true
+ },
+ "bare-events": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-url": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz",
+ "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-path": "^3.0.0"
+ }
},
"node_modules/base64-js": {
"version": "1.5.1",
@@ -6406,7 +11289,21 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.10",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz",
+ "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
"node_modules/basic-ftp": {
"version": "5.0.5",
@@ -6439,40 +11336,15 @@
}
},
"node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/bl/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
"engines": {
- "node": ">= 6"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/bluebird": {
@@ -6552,30 +11424,32 @@
"dev": true
},
"node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/browserslist": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
- "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
"dev": true,
"funding": [
{
@@ -6591,11 +11465,13 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001663",
- "electron-to-chromium": "^1.5.28",
- "node-releases": "^2.0.18",
- "update-browserslist-db": "^1.1.0"
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
},
"bin": {
"browserslist": "cli.js"
@@ -6613,6 +11489,13 @@
"node-int64": "^0.4.0"
}
},
+ "node_modules/btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -6632,6 +11515,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -6646,6 +11530,13 @@
"node": "*"
}
},
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -6673,6 +11564,20 @@
"node": ">= 0.8"
}
},
+ "node_modules/cacheable": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.4.tgz",
+ "integrity": "sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cacheable/memory": "^2.0.8",
+ "@cacheable/utils": "^2.4.0",
+ "hookified": "^1.15.0",
+ "keyv": "^5.6.0",
+ "qified": "^0.9.0"
+ }
+ },
"node_modules/cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
@@ -6715,17 +11620,58 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cacheable/node_modules/keyv": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
+ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ },
"node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
"es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@@ -6813,9 +11759,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001668",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz",
- "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==",
+ "version": "1.0.30001781",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+ "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
"dev": true,
"funding": [
{
@@ -6830,7 +11776,8 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/capital-case": {
"version": "1.0.4",
@@ -6942,10 +11889,11 @@
}
},
"node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz",
+ "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/check-node-version": {
"version": "4.2.1",
@@ -6981,10 +11929,11 @@
}
},
"node_modules/chokidar": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
- "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"readdirp": "^4.0.1"
},
@@ -6995,30 +11944,6 @@
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "node_modules/chrome-launcher": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
- "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "escape-string-regexp": "^4.0.0",
- "is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0"
- },
- "bin": {
- "print-chrome-path": "bin/print-chrome-path.js"
- },
- "engines": {
- "node": ">=12.13.0"
- }
- },
"node_modules/chrome-trace-event": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
@@ -7028,6 +11953,20 @@
"node": ">=6.0"
}
},
+ "node_modules/chromium-bidi": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz",
+ "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
+ },
"node_modules/ci-info": {
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
@@ -7049,6 +11988,13 @@
"integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==",
"dev": true
},
+ "node_modules/clean-git-ref": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz",
+ "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -7058,22 +12004,6 @@
"node": ">=6"
}
},
- "node_modules/clean-webpack-plugin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
- "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
- "dev": true,
- "dependencies": {
- "@types/webpack": "^4.4.31",
- "del": "^4.1.1"
- },
- "engines": {
- "node": ">=8.9.0"
- },
- "peerDependencies": {
- "webpack": "*"
- }
- },
"node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@@ -7114,12 +12044,13 @@
}
},
"node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">= 10"
+ "node": ">= 12"
}
},
"node_modules/cliui": {
@@ -7233,6 +12164,17 @@
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true
},
+ "node_modules/colorjs.io": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz",
+ "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/color"
+ }
+ },
"node_modules/colors": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
@@ -7247,6 +12189,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -7255,12 +12198,13 @@
}
},
"node_modules/commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=18"
}
},
"node_modules/comment-parser": {
@@ -7272,11 +12216,12 @@
"node": ">= 12.0.0"
}
},
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/compare-func": {
"version": "1.3.4",
@@ -7360,56 +12305,6 @@
"typedarray": "^0.0.6"
}
},
- "node_modules/configstore": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
- "dev": true,
- "dependencies": {
- "dot-prop": "^5.2.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^3.0.0",
- "unique-string": "^2.0.0",
- "write-file-atomic": "^3.0.0",
- "xdg-basedir": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/configstore/node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dev": true,
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/configstore/node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/configstore/node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
"node_modules/connect-history-api-fallback": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
@@ -7662,15 +12557,6 @@
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true
},
- "node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
@@ -7752,11 +12638,12 @@
}
},
"node_modules/core-js": {
- "version": "3.38.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
- "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
+ "version": "3.49.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz",
+ "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -7836,6 +12723,19 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "crc32": "bin/crc32.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/create-jest": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
@@ -7857,41 +12757,59 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "node-fetch": "2.6.7"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
+ "node_modules/cross-spawn/node_modules/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==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/cross-spawn/node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "node_modules/cross-spawn/node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/cross-spawn/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
+ "node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
},
"node_modules/crypto-random-string": {
"version": "2.0.0",
@@ -7931,12 +12849,6 @@
"coffee-script": "^1.10.0"
}
},
- "node_modules/csp_evaluator": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz",
- "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==",
- "dev": true
- },
"node_modules/css-declaration-sorter": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz",
@@ -7950,12 +12862,13 @@
}
},
"node_modules/css-functions-list": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz",
- "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz",
+ "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12 || >=16"
+ "node": ">=12"
}
},
"node_modules/css-loader": {
@@ -8167,35 +13080,33 @@
"integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
"dev": true
},
- "node_modules/cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true
- },
"node_modules/cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
+ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cssom": "~0.3.6"
+ "@asamuzakjp/css-color": "^3.2.0",
+ "rrweb-cssom": "^0.8.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cwd": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
"integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-pkg": "^0.1.2",
"fs-exists-sync": "^0.1.0"
@@ -8220,17 +13131,17 @@
}
},
"node_modules/data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/data-view-buffer": {
@@ -8312,12 +13223,13 @@
"dev": true
},
"node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -8360,10 +13272,11 @@
}
},
"node_modules/decimal.js": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
- "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
- "dev": true
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/decompress-response": {
"version": "6.0.0",
@@ -8549,79 +13462,12 @@
"node": ">= 14"
}
},
- "node_modules/del": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
- "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
- "dev": true,
- "dependencies": {
- "@types/glob": "^7.1.1",
- "globby": "^6.1.0",
- "is-path-cwd": "^2.0.0",
- "is-path-in-cwd": "^2.0.0",
- "p-map": "^2.0.0",
- "pify": "^4.0.1",
- "rimraf": "^2.6.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/del/node_modules/array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
- "dev": true,
- "dependencies": {
- "array-uniq": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
- "dev": true,
- "dependencies": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/globby/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -8661,15 +13507,14 @@
}
},
"node_modules/detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
- "bin": {
- "detect-libc": "bin/detect-libc.js"
- },
+ "license": "Apache-2.0",
+ "optional": true,
"engines": {
- "node": ">=0.10"
+ "node": ">=8"
}
},
"node_modules/detect-newline": {
@@ -8688,10 +13533,11 @@
"dev": true
},
"node_modules/devtools-protocol": {
- "version": "0.0.1155343",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz",
- "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==",
- "dev": true
+ "version": "0.0.1367902",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz",
+ "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/diff-sequences": {
"version": "29.6.3",
@@ -8702,6 +13548,13 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/diff3": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.4.tgz",
+ "integrity": "sha512-f1rQ7jXDn/3i37hdwRk9ohqcvLRH3+gEIgmA6qEM280WUOh7cOr3GXV8Jm5sPwUs46Nzl48SE8YNLGJoaLuodg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -8776,19 +13629,6 @@
}
]
},
- "node_modules/domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "deprecated": "Use your platform's native DOMException instead",
- "dev": true,
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
@@ -8840,6 +13680,21 @@
"node": ">=0.10.0"
}
},
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/duplexer": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
@@ -8871,6 +13726,23 @@
"url": "https://bevry.me/fund"
}
},
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/editions": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz",
@@ -8894,10 +13766,11 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.5.36",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz",
- "integrity": "sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==",
- "dev": true
+ "version": "1.5.325",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.325.tgz",
+ "integrity": "sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/emittery": {
"version": "0.13.1",
@@ -8966,13 +13839,14 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.17.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
- "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
+ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
+ "tapable": "^2.3.0"
},
"engines": {
"node": ">=10.13.0"
@@ -9017,6 +13891,16 @@
"node": ">=10.17"
}
},
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/envinfo": {
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
@@ -9120,13 +14004,11 @@
}
},
"node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"dev": true,
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -9186,16 +14068,18 @@
}
},
"node_modules/es-module-lexer": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
- "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
- "dev": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
+ "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/es-object-atoms": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
@@ -9204,14 +14088,16 @@
}
},
"node_modules/es-set-tostringtag": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
- "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.4",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
- "hasown": "^2.0.1"
+ "hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9369,6 +14255,31 @@
"eslint": ">=7.0.0"
}
},
+ "node_modules/eslint-import-context": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz",
+ "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-tsconfig": "^4.10.1",
+ "stable-hash-x": "^0.2.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-import-context"
+ },
+ "peerDependencies": {
+ "unrs-resolver": "^1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "unrs-resolver": {
+ "optional": true
+ }
+ }
+ },
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
@@ -9915,6 +14826,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10"
}
@@ -9935,20 +14847,6 @@
"concat-map": "0.0.1"
}
},
- "node_modules/eslint/node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -10062,27 +14960,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/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==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/eslint/node_modules/type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
@@ -10095,21 +14972,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/espree": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
@@ -10224,6 +15086,16 @@
"node": ">=0.8.x"
}
},
+ "node_modules/events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.7.0"
+ }
+ },
"node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -10247,56 +15119,6 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/execa/node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/execa/node_modules/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==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/execa/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/execa/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -10341,45 +15163,50 @@
"dev": true
},
"node_modules/express": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
- "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
+ "version": "4.22.0",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.0.tgz",
+ "integrity": "sha512-c2iPh3xp5vvCLgaHK03+mWLFPhox7j1LwyxcZwFVApEv5i0X+IjPpbT50SJJwwLpdBVfp45AkK/v+AFgv/XlfQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
+ "path-to-regexp": "~0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "~6.14.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
"setprototypeof": "1.2.0",
- "statuses": "2.0.1",
+ "statuses": "~2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/express/node_modules/cookie": {
@@ -10401,31 +15228,33 @@
}
},
"node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
- "node_modules/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "node_modules/express/node_modules/qs": {
+ "version": "6.14.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
+ "side-channel": "^1.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
"node_modules/extract-opts": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.4.0.tgz",
@@ -10492,16 +15321,17 @@
"dev": true
},
"node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "micromatch": "^4.0.8"
},
"engines": {
"node": ">=8.6.0"
@@ -10537,6 +15367,43 @@
"integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
"dev": true
},
+ "node_modules/fast-xml-builder": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz",
+ "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "path-expression-matcher": "^1.1.3"
+ }
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "5.5.9",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.9.tgz",
+ "integrity": "sha512-jldvxr1MC6rtiZKgrFnDSvT8xuH+eJqxqOBThUVjYrxssYTo1avZLGql5l0a0BAERR01CadYzZ83kVEkbyDg+g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "fast-xml-builder": "^1.1.4",
+ "path-expression-matcher": "^1.2.0",
+ "strnum": "^2.2.2"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
@@ -10648,10 +15515,11 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -10693,20 +15561,124 @@
"dev": true
},
"node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/yocto-queue": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
+ "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
},
"funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-file-up": {
@@ -10714,6 +15686,7 @@
"resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
"integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fs-exists-sync": "^0.1.0",
"resolve-dir": "^0.1.0"
@@ -10733,6 +15706,7 @@
"resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
"integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-file-up": "^0.1.2"
},
@@ -10741,14 +15715,15 @@
}
},
"node_modules/find-process": {
- "version": "1.4.7",
- "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz",
- "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==",
+ "version": "1.4.11",
+ "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.11.tgz",
+ "integrity": "sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chalk": "^4.0.0",
- "commander": "^5.1.0",
- "debug": "^4.1.1"
+ "chalk": "~4.1.2",
+ "commander": "^12.1.0",
+ "loglevel": "^1.9.2"
},
"bin": {
"find-process": "bin/find-process.js"
@@ -10882,15 +15857,16 @@
}
},
"node_modules/flatted": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
- "dev": true
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
+ "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
"dev": true,
"funding": [
{
@@ -10898,6 +15874,7 @@
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -10908,12 +15885,19 @@
}
},
"node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-callable": "^1.1.3"
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/for-in": {
@@ -10937,14 +15921,47 @@
"node": ">=0.10.0"
}
},
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/foreground-child/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/form-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
- "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
@@ -10960,16 +15977,24 @@
"node": ">= 0.6"
}
},
+ "node_modules/forwarded-parse": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz",
+ "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
},
"funding": {
- "type": "patreon",
+ "type": "github",
"url": "https://github.com/sponsors/rawify"
}
},
@@ -11012,21 +16037,30 @@
}
]
},
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
"node_modules/fs-exists-sync": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
"integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/fs-ext-extra-prebuilt": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/fs-ext-extra-prebuilt/-/fs-ext-extra-prebuilt-2.2.7.tgz",
+ "integrity": "sha512-Q7rayYRBDIvDF01HWOwSSjoaP+05N1g+o3BXL1Zf8Frw2JkjSmi4EtvCBITuW30l6hB2m2TW1pehdh8wyU/+gw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "nan": "^2.24.0"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
"node_modules/fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -11123,16 +16157,22 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -11162,6 +16202,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/get-stdin": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
@@ -11203,6 +16257,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.13.7",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz",
+ "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/get-uri": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz",
@@ -11336,7 +16403,8 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true
+ "dev": true,
+ "license": "BSD-2-Clause"
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "1.1.11",
@@ -11365,6 +16433,7 @@
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
"integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"global-prefix": "^0.1.4",
"is-windows": "^0.2.0"
@@ -11378,6 +16447,7 @@
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
"integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11387,6 +16457,7 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
"integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"homedir-polyfill": "^1.0.0",
"ini": "^1.3.4",
@@ -11402,6 +16473,7 @@
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
"integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11455,15 +16527,17 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"dev": true,
- "dependencies": {
- "get-intrinsic": "^1.1.3"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -11866,10 +16940,11 @@
}
},
"node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -11892,6 +16967,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/hashery": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz",
+ "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hookified": "^1.15.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -11944,6 +17032,13 @@
"node": "*"
}
},
+ "node_modules/hookified": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz",
+ "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -11987,15 +17082,16 @@
}
},
"node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "whatwg-encoding": "^2.0.0"
+ "whatwg-encoding": "^3.1.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/html-entities": {
@@ -12025,6 +17121,7 @@
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
"integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -12204,7 +17301,8 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "BSD-3-Clause"
},
"node_modules/ignore": {
"version": "5.3.2",
@@ -12256,10 +17354,11 @@
"dev": true
},
"node_modules/immutable": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
- "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==",
- "dev": true
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz",
+ "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/import-fresh": {
"version": "3.3.0",
@@ -12298,13 +17397,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "node_modules/import-in-the-middle": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz",
+ "integrity": "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "acorn": "^8.14.0",
+ "acorn-import-attributes": "^1.9.5",
+ "cjs-module-lexer": "^1.2.2",
+ "module-details-from-path": "^1.0.3"
}
},
"node_modules/import-local": {
@@ -12373,30 +17476,6 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
- "node_modules/inquirer": {
- "version": "7.3.3",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
- "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.19",
- "mute-stream": "0.0.8",
- "run-async": "^2.4.0",
- "rxjs": "^6.6.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/internal-slot": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
@@ -12417,22 +17496,6 @@
"integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==",
"dev": true
},
- "node_modules/intl-messageformat": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz",
- "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==",
- "dev": true,
- "dependencies": {
- "intl-messageformat-parser": "^1.8.1"
- }
- },
- "node_modules/intl-messageformat-parser": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz",
- "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==",
- "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser",
- "dev": true
- },
"node_modules/into-stream": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz",
@@ -12482,6 +17545,7 @@
"resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
"integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -12637,6 +17701,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-bun-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz",
+ "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.7.1"
+ }
+ },
+ "node_modules/is-bun-module/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -12854,6 +17941,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -12891,30 +17979,6 @@
"node": ">=6"
}
},
- "node_modules/is-path-in-cwd": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
- "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
- "dev": true,
- "dependencies": {
- "is-path-inside": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-in-cwd/node_modules/is-path-inside": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
- "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
- "dev": true,
- "dependencies": {
- "path-is-inside": "^1.0.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/is-path-inside": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
@@ -12952,7 +18016,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/is-regex": {
"version": "1.1.4",
@@ -13064,12 +18129,13 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "which-typed-array": "^1.1.14"
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -13078,12 +18144,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
"node_modules/is-unc-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
@@ -13101,6 +18161,7 @@
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -13324,6 +18385,22 @@
"node": ">= 0.4"
}
},
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
"node_modules/java-properties": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz",
@@ -13483,18 +18560,19 @@
}
},
"node_modules/jest-dev-server": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.2.tgz",
- "integrity": "sha512-Zc/JB0IlNNrpXkhBw+h86cGrde/Mey52KvF+FER2eyrtYJTHObOwW7Iarxm3rPyTKby5+3Y2QZtl8pRz/5GCxg==",
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.1.4.tgz",
+ "integrity": "sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"cwd": "^0.10.0",
"find-process": "^1.4.7",
"prompts": "^2.4.2",
- "spawnd": "^9.0.2",
+ "spawnd": "^10.1.4",
"tree-kill": "^1.2.2",
- "wait-on": "^7.2.0"
+ "wait-on": "^8.0.1"
},
"engines": {
"node": ">=16"
@@ -13544,25 +18622,21 @@
}
},
"node_modules/jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.3.0.tgz",
+ "integrity": "sha512-RLEOJy6ip1lpw0yqJ8tB3i88FC7VBz7i00Zvl2qF71IdxjS98gC9/0SPWYIBVXHm5hgCYK0PAlSlnHGGy9RoMg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
+ "@jest/environment": "30.3.0",
+ "@jest/environment-jsdom-abstract": "30.3.0",
+ "jsdom": "^26.1.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^3.0.0"
},
"peerDependenciesMeta": {
"canvas": {
@@ -13570,6 +18644,200 @@
}
}
},
+ "node_modules/jest-environment-jsdom/node_modules/@jest/environment": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz",
+ "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "30.3.0",
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "jest-mock": "30.3.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz",
+ "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.3.0",
+ "@sinonjs/fake-timers": "^15.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.3.0",
+ "jest-mock": "30.3.0",
+ "jest-util": "30.3.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.34.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/types": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz",
+ "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@sinclair/typebox": {
+ "version": "0.34.48",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz",
+ "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@sinonjs/fake-timers": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz",
+ "integrity": "sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/ci-info": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
+ "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-message-util": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz",
+ "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.3.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.3",
+ "pretty-format": "30.3.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-mock": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz",
+ "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "jest-util": "30.3.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-util": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz",
+ "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.3.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/pretty-format": {
+ "version": "30.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz",
+ "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
"node_modules/jest-environment-node": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
@@ -13946,16 +19214,22 @@
}
},
"node_modules/joi": {
- "version": "17.13.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
- "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "version": "18.1.1",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-18.1.1.tgz",
+ "integrity": "sha512-pJkBiPtNo+o0h19LfSvUN46Y5zY+ck99AtHwch9n2HqVLNRgP0ZMyIH8FRMoP+HV8hy/+AG99dXFfwpf83iZfQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
+ "@hapi/address": "^5.1.1",
+ "@hapi/formula": "^3.0.2",
+ "@hapi/hoek": "^11.0.7",
+ "@hapi/pinpoint": "^2.0.1",
+ "@hapi/tlds": "^1.1.1",
+ "@hapi/topo": "^6.0.2",
+ "@standard-schema/spec": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 20"
}
},
"node_modules/jpeg-js": {
@@ -14008,43 +19282,38 @@
}
},
"node_modules/jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
+ "version": "26.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
+ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssstyle": "^4.2.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.5.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
"is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
+ "nwsapi": "^2.2.16",
+ "parse5": "^7.2.1",
+ "rrweb-cssom": "^0.8.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
+ "tough-cookie": "^5.1.1",
+ "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.1.1",
+ "ws": "^8.18.0",
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^3.0.0"
},
"peerDependenciesMeta": {
"canvas": {
@@ -14052,6 +19321,44 @@
}
}
},
+ "node_modules/jsdom/node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/jsdom/node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/jsdom/node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
"node_modules/jsesc": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
@@ -14101,10 +19408,11 @@
"dev": true
},
"node_modules/json2php": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
- "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
- "dev": true
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz",
+ "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==",
+ "dev": true,
+ "license": "BSD"
},
"node_modules/json5": {
"version": "2.2.3",
@@ -14151,14 +19459,50 @@
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"dev": true,
"dependencies": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "bin": {
+ "JSONStream": "bin.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jsonwebtoken": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz",
+ "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jws": "^4.0.1",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^7.5.4"
},
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
"bin": {
- "JSONStream": "bin.js"
+ "semver": "bin/semver.js"
},
"engines": {
- "node": "*"
+ "node": ">=10"
}
},
"node_modules/jsx-ast-utils": {
@@ -14176,6 +19520,29 @@
"node": ">=4.0"
}
},
+ "node_modules/jwa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -14216,10 +19583,11 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
+ "version": "0.37.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
+ "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
@@ -14258,6 +19626,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/legacy-javascript": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/legacy-javascript/-/legacy-javascript-0.0.1.tgz",
+ "integrity": "sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -14357,234 +19732,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/lighthouse": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz",
- "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==",
- "dev": true,
- "dependencies": {
- "@sentry/node": "^6.17.4",
- "axe-core": "4.7.2",
- "chrome-launcher": "^0.15.2",
- "configstore": "^5.0.1",
- "csp_evaluator": "1.1.1",
- "devtools-protocol": "0.0.1155343",
- "enquirer": "^2.3.6",
- "http-link-header": "^1.1.1",
- "intl-messageformat": "^4.4.0",
- "jpeg-js": "^0.4.4",
- "js-library-detector": "^6.6.0",
- "lighthouse-logger": "^1.4.1",
- "lighthouse-stack-packs": "1.11.0",
- "lodash": "^4.17.21",
- "lookup-closest-locale": "6.2.0",
- "metaviewport-parser": "0.3.0",
- "open": "^8.4.0",
- "parse-cache-control": "1.0.1",
- "ps-list": "^8.0.0",
- "puppeteer-core": "^20.8.0",
- "robots-parser": "^3.0.0",
- "semver": "^5.3.0",
- "speedline-core": "^1.4.3",
- "third-party-web": "^0.23.3",
- "ws": "^7.0.0",
- "yargs": "^17.3.1",
- "yargs-parser": "^21.0.0"
- },
- "bin": {
- "chrome-debug": "core/scripts/manual-chrome-launcher.js",
- "lighthouse": "cli/index.js",
- "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js"
- },
- "engines": {
- "node": ">=16.16"
- }
- },
- "node_modules/lighthouse-logger": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
- "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
- "dev": true,
- "dependencies": {
- "debug": "^2.6.9",
- "marky": "^1.2.2"
- }
- },
- "node_modules/lighthouse-logger/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/lighthouse-logger/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/lighthouse-stack-packs": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz",
- "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/axe-core": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
- "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/lighthouse/node_modules/cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
- "dev": true,
- "dependencies": {
- "node-fetch": "^2.6.12"
- }
- },
- "node_modules/lighthouse/node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/lighthouse/node_modules/puppeteer-core": {
- "version": "20.9.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz",
- "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==",
- "dev": true,
- "dependencies": {
- "@puppeteer/browsers": "1.4.6",
- "chromium-bidi": "0.4.16",
- "cross-fetch": "4.0.0",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.1147663",
- "ws": "8.13.0"
- },
- "engines": {
- "node": ">=16.3.0"
- },
- "peerDependencies": {
- "typescript": ">= 4.7.4"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz",
- "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==",
- "dev": true,
- "dependencies": {
- "mitt": "3.0.0"
- },
- "peerDependencies": {
- "devtools-protocol": "*"
- }
- },
- "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": {
- "version": "0.0.1147663",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz",
- "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/lighthouse/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/lighthouse/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/lighthouse/node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "dev": true,
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/lilconfig": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
@@ -14776,12 +19923,17 @@
"dev": true
},
"node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz",
+ "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.11.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
"node_modules/loader-utils": {
@@ -14816,6 +19968,13 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
+ "node_modules/lodash-es": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
+ "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lodash.capitalize": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz",
@@ -14834,12 +19993,40 @@
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
"dev": true
},
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lodash.ismatch": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
"integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
"dev": true
},
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
@@ -14864,11 +20051,19 @@
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
"integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.uniq": {
"version": "4.5.0",
@@ -14887,6 +20082,7 @@
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -14898,6 +20094,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/loglevel": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz",
+ "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
"node_modules/longest-streak": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz",
@@ -14944,12 +20154,6 @@
"node": ">=8"
}
},
- "node_modules/lru_map": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
- "dev": true
- },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -14959,21 +20163,6 @@
"yallist": "^3.0.2"
}
},
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/make-iterator": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
@@ -15285,11 +20474,22 @@
"integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==",
"dev": true
},
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/mathml-tag-names": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
"integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -15462,10 +20662,11 @@
}
},
"node_modules/memize": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.0.tgz",
- "integrity": "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg==",
- "dev": true
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
+ "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/memorystream": {
"version": "0.3.1",
@@ -15481,6 +20682,7 @@
"resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
"integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/minimist": "^1.2.0",
"camelcase-keys": "^6.2.2",
@@ -15507,6 +20709,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
"integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -15519,6 +20722,7 @@
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
@@ -15677,12 +20881,13 @@
}
},
"node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "braces": "^3.0.2",
+ "braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {
@@ -15750,10 +20955,11 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz",
- "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==",
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.1.tgz",
+ "integrity": "sha512-k7G3Y5QOegl380tXmZ68foBRRjE9Ljavx835ObdvmZjQ639izvZD8CS7BkWw1qKPPzHsGL/JDhl0uyU1zc2rJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"schema-utils": "^4.0.0",
"tapable": "^2.2.1"
@@ -15831,11 +21037,32 @@
"node": ">=0.10.0"
}
},
+ "node_modules/minimisted": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz",
+ "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/mitt": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
- "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==",
- "dev": true
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/mixin-object": {
"version": "2.0.1",
@@ -15871,12 +21098,6 @@
"mkdirp": "bin/cmd.js"
}
},
- "node_modules/mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "dev": true
- },
"node_modules/modify-values": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
@@ -15886,6 +21107,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/module-details-from-path": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz",
+ "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/mrmime": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
@@ -15896,10 +21124,11 @@
}
},
"node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/multicast-dns": {
"version": "7.2.5",
@@ -15969,10 +21198,17 @@
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true
},
+ "node_modules/nan": {
+ "version": "2.26.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.26.2.tgz",
+ "integrity": "sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
"funding": [
{
@@ -15980,6 +21216,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -15987,6 +21224,22 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/napi-postinstall": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
+ "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "napi-postinstall": "lib/cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/napi-postinstall"
+ }
+ },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -16043,7 +21296,9 @@
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "optional": true
},
"node_modules/node-emoji": {
"version": "1.11.0",
@@ -16112,10 +21367,11 @@
"dev": true
},
"node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
- "dev": true
+ "version": "2.0.36",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
+ "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/node-wp-i18n": {
"version": "1.2.6",
@@ -16147,18 +21403,6 @@
"node": ">=10"
}
},
- "node_modules/node-wp-i18n/node_modules/tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dev": true,
- "dependencies": {
- "rimraf": "^3.0.0"
- },
- "engines": {
- "node": ">=8.17.0"
- }
- },
"node_modules/nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
@@ -16228,15 +21472,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/normalize-url": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
@@ -16428,6 +21663,7 @@
"resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz",
"integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.6",
"ajv-errors": "^1.0.1",
@@ -16459,13 +21695,15 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/npm-package-json-lint/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -16478,6 +21716,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
"integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=14.16"
},
@@ -18738,8 +23977,6 @@
},
"node_modules/npm/node_modules/postcss-selector-parser": {
"version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -19165,8 +24402,6 @@
},
"node_modules/npm/node_modules/string_decoder": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -19420,10 +24655,11 @@
}
},
"node_modules/nwsapi": {
- "version": "2.2.13",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz",
- "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==",
- "dev": true
+ "version": "2.2.23",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
+ "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/object-assign": {
"version": "4.1.1",
@@ -19441,10 +24677,11 @@
"dev": true
},
"node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -19622,12 +24859,322 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "dev": true
- },
+ "node_modules/obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true
+ },
+ "node_modules/octokit": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/octokit/-/octokit-3.1.2.tgz",
+ "integrity": "sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/app": "^14.0.2",
+ "@octokit/core": "^5.0.0",
+ "@octokit/oauth-app": "^6.0.0",
+ "@octokit/plugin-paginate-graphql": "^4.0.0",
+ "@octokit/plugin-paginate-rest": "^9.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^10.0.0",
+ "@octokit/plugin-retry": "^6.0.0",
+ "@octokit/plugin-throttling": "^8.0.0",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^12.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz",
+ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.1.0",
+ "@octokit/request": "^8.4.1",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/core/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/core/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/endpoint": {
+ "version": "9.0.6",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
+ "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/endpoint/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/graphql": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz",
+ "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request": "^8.4.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/graphql/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/openapi-types": {
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
+ "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-paginate-graphql": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.1.tgz",
+ "integrity": "sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=5"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-paginate-rest": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz",
+ "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^12.6.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz",
+ "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^12.6.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-retry": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.1.0.tgz",
+ "integrity": "sha512-WrO3bvq4E1Xh1r2mT9w6SDFg01gFmP81nIG77+p/MqW1JeXXgL++6umim3t6x0Zj5pZm3rXAN+0HEjmmdhIRig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^13.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "5"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-retry/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-retry/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/plugin-throttling": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz",
+ "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^12.2.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "^5.0.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/request": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
+ "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/endpoint": "^9.0.6",
+ "@octokit/request-error": "^5.1.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/request-error": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
+ "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.1.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/request-error/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
+ "version": "24.2.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
+ "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/octokit/node_modules/@octokit/request/node_modules/@octokit/types": {
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
+ "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^24.2.0"
+ }
+ },
+ "node_modules/octokit/node_modules/@octokit/types": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
+ "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^20.0.0"
+ }
+ },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -19988,32 +25535,31 @@
}
},
"node_modules/pac-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz",
+ "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@tootallnate/quickjs-emscripten": "^0.23.0",
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.2",
"debug": "^4.3.4",
"get-uri": "^6.0.1",
"http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.5",
+ "https-proxy-agent": "^7.0.6",
"pac-resolver": "^7.0.1",
- "socks-proxy-agent": "^8.0.4"
+ "socks-proxy-agent": "^8.0.5"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/pac-proxy-agent/node_modules/agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
- "dependencies": {
- "debug": "^4.3.4"
- },
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -20032,12 +25578,13 @@
}
},
"node_modules/pac-proxy-agent/node_modules/https-proxy-agent": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
- "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.2",
"debug": "4"
},
"engines": {
@@ -20057,6 +25604,20 @@
"node": ">= 14"
}
},
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/pako": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+ "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+ "dev": true,
+ "license": "(MIT AND Zlib)"
+ },
"node_modules/param-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
@@ -20154,17 +25715,31 @@
}
},
"node_modules/parse5": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
- "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "entities": "^4.4.0"
+ "entities": "^6.0.0"
},
"funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/parse5/node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -20203,6 +25778,22 @@
"node": ">=8"
}
},
+ "node_modules/path-expression-matcher": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.2.0.tgz",
+ "integrity": "sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -20212,12 +25803,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "dev": true
- },
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -20254,11 +25839,36 @@
"node": ">=0.10.0"
}
},
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
- "dev": true
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -20275,11 +25885,46 @@
"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
"dev": true
},
+ "node_modules/pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/pg-protocol": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz",
+ "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/picocolors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
- "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
- "dev": true
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -20474,12 +26119,13 @@
}
},
"node_modules/playwright": {
- "version": "1.48.0",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.0.tgz",
- "integrity": "sha512-qPqFaMEHuY/ug8o0uteYJSRfMGFikhUysk8ZvAtfKmUK3kc/6oNl/y3EczF8OFGYIi/Ex2HspMfzYArk6+XQSA==",
+ "version": "1.58.2",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz",
+ "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "playwright-core": "1.48.0"
+ "playwright-core": "1.58.2"
},
"bin": {
"playwright": "cli.js"
@@ -20492,10 +26138,11 @@
}
},
"node_modules/playwright-core": {
- "version": "1.48.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.0.tgz",
- "integrity": "sha512-RBvzjM9rdpP7UUFrQzRwR8L/xR4HyC1QXMzGYTbf1vjw25/ya9NRAVnXi/0fvFopjebvyPzsmoK58xxeEOaVvA==",
+ "version": "1.58.2",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz",
+ "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
@@ -20509,6 +26156,7 @@
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -20522,6 +26170,7 @@
"resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
"integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"irregular-plurals": "^3.2.0"
},
@@ -20542,9 +26191,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.47",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
- "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+ "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
"dev": true,
"funding": [
{
@@ -20560,9 +26209,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.1.0",
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
@@ -20667,6 +26317,24 @@
"postcss": "^8.4.31"
}
},
+ "node_modules/postcss-import": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.1.tgz",
+ "integrity": "sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
"node_modules/postcss-loader": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
@@ -20751,7 +26419,8 @@
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
"integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/postcss-merge-longhand": {
"version": "6.0.5",
@@ -21094,22 +26763,34 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz",
"integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/postcss-safe-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
- "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+ "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
+ "node": ">=18.0"
},
"peerDependencies": {
- "postcss": "^8.3.3"
+ "postcss": "^8.4.31"
}
},
"node_modules/postcss-scss": {
@@ -21131,6 +26812,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"engines": {
"node": ">=12.0"
},
@@ -21188,6 +26870,49 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
+ "node_modules/postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postgres-bytea": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
+ "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -21342,32 +27067,31 @@
}
},
"node_modules/proxy-agent": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
- "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
+ "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.2",
"debug": "^4.3.4",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.0",
+ "http-proxy-agent": "^7.0.1",
+ "https-proxy-agent": "^7.0.6",
"lru-cache": "^7.14.1",
- "pac-proxy-agent": "^7.0.0",
+ "pac-proxy-agent": "^7.1.0",
"proxy-from-env": "^1.1.0",
- "socks-proxy-agent": "^8.0.1"
+ "socks-proxy-agent": "^8.0.5"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/proxy-agent/node_modules/agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
- "dependencies": {
- "debug": "^4.3.4"
- },
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -21377,6 +27101,7 @@
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
"integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -21386,12 +27111,13 @@
}
},
"node_modules/proxy-agent/node_modules/https-proxy-agent": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
- "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.2",
"debug": "4"
},
"engines": {
@@ -21403,6 +27129,7 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
"integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -21413,30 +27140,6 @@
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true
},
- "node_modules/ps-list": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz",
- "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
"node_modules/pump": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
@@ -21457,88 +27160,45 @@
}
},
"node_modules/puppeteer-core": {
- "version": "13.7.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
- "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
+ "version": "23.11.1",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz",
+ "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "cross-fetch": "3.1.5",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.981744",
- "extract-zip": "2.0.1",
- "https-proxy-agent": "5.0.1",
- "pkg-dir": "4.2.0",
- "progress": "2.0.3",
- "proxy-from-env": "1.1.0",
- "rimraf": "3.0.2",
- "tar-fs": "2.1.1",
- "unbzip2-stream": "1.4.3",
- "ws": "8.5.0"
+ "@puppeteer/browsers": "2.6.1",
+ "chromium-bidi": "0.11.0",
+ "debug": "^4.4.0",
+ "devtools-protocol": "0.0.1367902",
+ "typed-query-selector": "^2.12.0",
+ "ws": "^8.18.0"
},
"engines": {
- "node": ">=10.18.1"
+ "node": ">=18"
}
},
- "node_modules/puppeteer-core/node_modules/devtools-protocol": {
- "version": "0.0.981744",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
- "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
- "dev": true
- },
- "node_modules/puppeteer-core/node_modules/extract-zip": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
- "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "node_modules/puppeteer-core/node_modules/chromium-bidi": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz",
+ "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- },
- "bin": {
- "extract-zip": "cli.js"
- },
- "engines": {
- "node": ">= 10.17.0"
+ "mitt": "3.0.1",
+ "zod": "3.23.8"
},
- "optionalDependencies": {
- "@types/yauzl": "^2.9.1"
+ "peerDependencies": {
+ "devtools-protocol": "*"
}
},
- "node_modules/puppeteer-core/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "node_modules/puppeteer-core/node_modules/zod": {
+ "version": "3.23.8",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
+ "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
"dev": true,
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
+ "license": "MIT",
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/puppeteer-core/node_modules/ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/colinhacks"
}
},
"node_modules/pure-rand": {
@@ -21568,6 +27228,26 @@
"teleport": ">=0.2.0"
}
},
+ "node_modules/qified": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/qified/-/qified-0.9.0.tgz",
+ "integrity": "sha512-4q61YgkHbY6gmwkqm0BsxyLDO3UYdrdiJTJ7JiaZb3xpW1duxn135SB7KqUEkCiuu5O4W+TtwEWP2VjmSRanvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hookified": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/qified/node_modules/hookified": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.1.0.tgz",
+ "integrity": "sha512-ootKng4eaxNxa7rx6FJv2YKef3DuhqbEj3l70oGXwddPQEEnISm50TEZQclqiLTAtilT2nu7TErtCO523hHkyg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/qs": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
@@ -21583,12 +27263,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true
- },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -21609,12 +27283,6 @@
}
]
},
- "node_modules/queue-tick": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
- "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
- "dev": true
- },
"node_modules/quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
@@ -21710,7 +27378,6 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"dev": true,
- "peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -21734,6 +27401,26 @@
"node": ">=0.10.0"
}
},
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/read-cache/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@@ -21901,12 +27588,13 @@
"dev": true
},
"node_modules/readdirp": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
- "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 14.16.0"
+ "node": ">= 14.18.0"
},
"funding": {
"type": "individual",
@@ -22106,12 +27794,6 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remove-accents": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
- "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
- "dev": true
- },
"node_modules/repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
@@ -22199,6 +27881,21 @@
"node": ">=0.10.0"
}
},
+ "node_modules/require-in-the-middle": {
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz",
+ "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.5",
+ "module-details-from-path": "^1.0.3",
+ "resolve": "^1.22.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
"node_modules/requirefresh": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/requirefresh/-/requirefresh-2.3.0.tgz",
@@ -22278,6 +27975,7 @@
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
"integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expand-tilde": "^1.2.2",
"global-modules": "^0.2.3"
@@ -22291,6 +27989,7 @@
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
"integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"os-homedir": "^1.0.1"
},
@@ -22307,6 +28006,16 @@
"node": ">=8"
}
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/resolve.exports": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
@@ -22385,84 +28094,30 @@
"node": ">=10.0.0"
}
},
+ "node_modules/rrweb-cssom": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/rtlcss": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz",
- "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz",
+ "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "find-up": "^5.0.0",
+ "escalade": "^3.1.1",
"picocolors": "^1.0.0",
- "postcss": "^8.3.11",
+ "postcss": "^8.4.21",
"strip-json-comments": "^3.1.1"
},
"bin": {
"rtlcss": "bin/rtlcss.js"
- }
- },
- "node_modules/rtlcss-webpack-plugin": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/rtlcss-webpack-plugin/-/rtlcss-webpack-plugin-4.0.7.tgz",
- "integrity": "sha512-ouSbJtgcLBBQIsMgarxsDnfgRqm/AS4BKls/mz/Xb6HSl+PdEzefTR+Wz5uWQx4odoX0g261Z7yb3QBz0MTm0g==",
- "dev": true,
- "dependencies": {
- "babel-runtime": "~6.25.0",
- "rtlcss": "^3.5.0"
- }
- },
- "node_modules/rtlcss/node_modules/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==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/rtlcss/node_modules/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==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/rtlcss/node_modules/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==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
+ "node": ">=12.0.0"
}
},
"node_modules/run-con": {
@@ -22513,23 +28168,15 @@
}
},
"node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
+ "tslib": "^2.1.0"
}
},
- "node_modules/rxjs/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
"node_modules/safe-array-concat": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
@@ -22609,14 +28256,14 @@
"dev": true
},
"node_modules/sass": {
- "version": "1.79.5",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz",
- "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==",
+ "version": "1.98.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz",
+ "integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@parcel/watcher": "^2.4.1",
"chokidar": "^4.0.0",
- "immutable": "^4.0.0",
+ "immutable": "^5.1.5",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
@@ -22624,33 +28271,36 @@
},
"engines": {
"node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
}
},
"node_modules/sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "version": "16.0.7",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.7.tgz",
+ "integrity": "sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "klona": "^2.0.4",
"neo-async": "^2.6.2"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"sass": "^1.3.0",
"sass-embedded": "*",
"webpack": "^5.0.0"
},
"peerDependenciesMeta": {
- "fibers": {
+ "@rspack/core": {
"optional": true
},
"node-sass": {
@@ -22661,14 +28311,28 @@
},
"sass-embedded": {
"optional": true
+ },
+ "webpack": {
+ "optional": true
}
}
},
+ "node_modules/sax": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
+ "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=11.0.0"
+ }
+ },
"node_modules/saxes": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
"integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"xmlchars": "^2.2.0"
},
@@ -22681,16 +28345,16 @@
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"dev": true,
- "peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
}
},
"node_modules/schema-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -22698,7 +28362,7 @@
"ajv-keywords": "^5.1.0"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 10.13.0"
},
"funding": {
"type": "opencollective",
@@ -23026,12 +28690,6 @@
"node": ">=4"
}
},
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"node_modules/sentence-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
@@ -23183,6 +28841,27 @@
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"dev": true
},
+ "node_modules/sha.js": {
+ "version": "2.4.12",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz",
+ "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==",
+ "dev": true,
+ "license": "(MIT AND BSD-3-Clause)",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1",
+ "to-buffer": "^1.2.0"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/shallow-clone": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz",
@@ -23249,16 +28928,81 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
"node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -23370,6 +29114,53 @@
"node": ">=4"
}
},
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
"node_modules/simple-git": {
"version": "3.27.0",
"resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.27.0.tgz",
@@ -23378,36 +29169,13 @@
"dependencies": {
"@kwsites/file-exists": "^1.1.1",
"@kwsites/promise-deferred": "^1.1.1",
- "debug": "^4.3.5"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/steveukx/git-js?sponsor=1"
- }
- },
- "node_modules/simple-git/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "debug": "^4.3.5"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/steveukx/git-js?sponsor=1"
}
},
- "node_modules/simple-git/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"node_modules/sirv": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
@@ -23457,6 +29225,7 @@
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -23515,12 +29284,13 @@
}
},
"node_modules/socks-proxy-agent": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz",
- "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==",
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
+ "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "agent-base": "^7.1.1",
+ "agent-base": "^7.1.2",
"debug": "^4.3.4",
"socks": "^2.8.3"
},
@@ -23529,13 +29299,11 @@
}
},
"node_modules/socks-proxy-agent/node_modules/agent-base": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
- "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
- "dependencies": {
- "debug": "^4.3.4"
- },
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -23617,10 +29385,11 @@
"dev": true
},
"node_modules/spawnd": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz",
- "integrity": "sha512-nl8DVHEDQ57IcKakzpjanspVChkMpGLuVwMR/eOn9cXE55Qr6luD2Kn06sA0ootRMdgrU4tInN6lA6ohTNvysw==",
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.1.4.tgz",
+ "integrity": "sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"signal-exit": "^4.1.0",
"tree-kill": "^1.2.2"
@@ -23634,6 +29403,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -23782,6 +29552,16 @@
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true
},
+ "node_modules/stable-hash-x": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz",
+ "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/stack-utils": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
@@ -23841,17 +29621,15 @@
}
},
"node_modules/streamx": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",
- "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==",
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz",
+ "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "events-universal": "^1.0.0",
"fast-fifo": "^1.3.2",
- "queue-tick": "^1.0.1",
"text-decoder": "^1.1.0"
- },
- "optionalDependencies": {
- "bare-events": "^2.2.0"
}
},
"node_modules/string_decoder": {
@@ -23896,6 +29674,29 @@
"node": ">=8"
}
},
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/string-width/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -24026,6 +29827,20 @@
"node": ">=8"
}
},
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-bom": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
@@ -24089,11 +29904,42 @@
"node": ">=0.8.0"
}
},
+ "node_modules/strnum": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.2.tgz",
+ "integrity": "sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/stubborn-fs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz",
+ "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "stubborn-utils": "^1.0.1"
+ }
+ },
+ "node_modules/stubborn-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz",
+ "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/style-search": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/stylehacks": {
"version": "6.1.1",
@@ -24112,119 +29958,331 @@
}
},
"node_modules/stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "version": "16.26.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz",
+ "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/stylelint"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-syntax-patches-for-csstree": "^1.0.19",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3",
+ "@csstools/selector-specificity": "^5.0.0",
+ "@dual-bundle/import-meta-resolve": "^4.2.1",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
- "css-functions-list": "^3.1.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "cosmiconfig": "^9.0.0",
+ "css-functions-list": "^3.2.3",
+ "css-tree": "^3.1.0",
+ "debug": "^4.4.3",
+ "fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^11.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
- "import-lazy": "^4.0.0",
+ "html-tags": "^3.3.1",
+ "ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
- "micromatch": "^4.0.5",
+ "meow": "^13.2.0",
+ "micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.5.6",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-safe-parser": "^7.0.1",
+ "postcss-selector-parser": "^7.1.0",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.2.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "table": "^6.9.0",
+ "write-file-atomic": "^5.0.1"
},
"bin": {
- "stylelint": "bin/stylelint.js"
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/stylelint"
+ "node": ">=18.12.0"
}
},
"node_modules/stylelint-config-recommended": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz",
- "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==",
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+ "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/stylelint"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.1.0"
+ }
+ },
+ "node_modules/stylelint-config-recommended-scss": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.1.0.tgz",
+ "integrity": "sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-scss": "^4.0.9",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-scss": "^6.4.0"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3.3",
+ "stylelint": "^16.6.1"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/stylelint-scss": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz",
+ "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.37.0",
+ "mdn-data": "^2.25.0",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-selector-parser": "^7.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.2"
+ }
+ },
+ "node_modules/stylelint-scss/node_modules/css-tree": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.27.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/stylelint-scss/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stylelint-scss/node_modules/mdn-data": {
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/stylelint-scss/node_modules/postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/stylelint/node_modules/@csstools/css-syntax-patches-for-csstree": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.1.tgz",
+ "integrity": "sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "peerDependencies": {
+ "css-tree": "^3.2.1"
+ },
+ "peerDependenciesMeta": {
+ "css-tree": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
+ "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/stylelint/node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/stylelint/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/stylelint/node_modules/balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/stylelint/node_modules/cosmiconfig": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz",
+ "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
"peerDependencies": {
- "stylelint": "^14.0.0"
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/stylelint-config-recommended-scss": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz",
- "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==",
+ "node_modules/stylelint/node_modules/css-tree": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-scss": "^4.0.2",
- "stylelint-config-recommended": "^6.0.0",
- "stylelint-scss": "^4.0.0"
+ "mdn-data": "2.27.1",
+ "source-map-js": "^1.2.1"
},
- "peerDependencies": {
- "stylelint": "^14.0.0"
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
- "node_modules/stylelint-scss": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz",
- "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==",
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz",
+ "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-media-query-parser": "^0.2.3",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-selector-parser": "^6.0.11",
- "postcss-value-parser": "^4.2.0"
- },
- "peerDependencies": {
- "stylelint": "^14.5.1 || ^15.0.0"
+ "flat-cache": "^6.1.20"
}
},
- "node_modules/stylelint/node_modules/balanced-match": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
- "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
- },
- "node_modules/stylelint/node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "node_modules/stylelint/node_modules/flat-cache": {
+ "version": "6.1.21",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.21.tgz",
+ "integrity": "sha512-2u7cJfSf7Th7NxEk/VzQjnPoglok2YCsevS7TSbJjcDQWJPbqUUnSYtriHSvtnq+fRZHy1s0ugk4ApnQyhPGoQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
- "engines": {
- "node": ">=10"
+ "cacheable": "^2.3.3",
+ "flatted": "^3.4.1",
+ "hookified": "^1.15.0"
}
},
"node_modules/stylelint/node_modules/global-modules": {
@@ -24232,6 +30290,7 @@
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"global-prefix": "^3.0.0"
},
@@ -24244,6 +30303,7 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ini": "^1.3.5",
"kind-of": "^6.0.2",
@@ -24253,31 +30313,125 @@
"node": ">=6"
}
},
+ "node_modules/stylelint/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/stylelint/node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/stylelint/node_modules/js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/stylelint/node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/stylelint/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "node_modules/stylelint/node_modules/mdn-data": {
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
"dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/stylelint/node_modules/meow": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/stylelint/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/stylelint/node_modules/supports-hyperlinks": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz",
+ "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
+ }
+ },
+ "node_modules/stylelint/node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/supports-color": {
@@ -24367,7 +30521,8 @@
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/synckit": {
"version": "0.9.2",
@@ -24386,10 +30541,11 @@
}
},
"node_modules/table": {
- "version": "6.8.2",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
- "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+ "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"ajv": "^8.0.1",
"lodash.truncate": "^4.4.2",
@@ -24402,10 +30558,11 @@
}
},
"node_modules/table/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -24421,66 +30578,59 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/tannin": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz",
- "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==",
"dev": true,
- "dependencies": {
- "@tannin/plural-forms": "^1.1.0"
- }
+ "license": "MIT"
},
"node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz",
+ "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
"node_modules/tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz",
+ "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
- "tar-stream": "^2.1.4"
+ "tar-stream": "^3.1.5"
+ },
+ "optionalDependencies": {
+ "bare-fs": "^4.0.1",
+ "bare-path": "^3.0.0"
}
},
"node_modules/tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz",
+ "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "engines": {
- "node": ">=6"
+ "b4a": "^1.6.4",
+ "bare-fs": "^4.5.5",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
}
},
- "node_modules/tar-stream/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "node_modules/teex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz",
+ "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "streamx": "^2.12.5"
}
},
"node_modules/temp-dir": {
@@ -24560,22 +30710,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/terser": {
"version": "5.34.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
@@ -24595,16 +30729,16 @@
}
},
"node_modules/terser-webpack-plugin": {
- "version": "5.3.10",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
- "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz",
+ "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.20",
+ "@jridgewell/trace-mapping": "^0.3.25",
"jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.26.0"
+ "schema-utils": "^4.3.0",
+ "terser": "^5.31.1"
},
"engines": {
"node": ">= 10.13.0"
@@ -24642,24 +30776,6 @@
"node": ">= 10.13.0"
}
},
- "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/terser-webpack-plugin/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -24896,25 +31012,118 @@
"node": ">=0.8.0"
}
},
- "node_modules/time-zone": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz",
- "integrity": "sha512-S5CjtVIkeBTnlsaZP3gjsTb78ClBe74sEcgEoBwAVUKnTRDAGqUtLLIZHMsIyqOWjt9DGQpLMMoD8ZKIfP2ddQ==",
+ "node_modules/time-zone": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz",
+ "integrity": "sha512-S5CjtVIkeBTnlsaZP3gjsTb78ClBe74sEcgEoBwAVUKnTRDAGqUtLLIZHMsIyqOWjt9DGQpLMMoD8ZKIfP2ddQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/tldts": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^6.1.86"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
+ }
+ },
+ "node_modules/tldts-core": {
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.27.tgz",
+ "integrity": "sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tldts-icann": {
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.27.tgz",
+ "integrity": "sha512-eSnMd1x/x/E/kRNyjP0wLmzxg0lcfBqPhKLAxtQ6Kd3pqZ0CM0Ty6K8HSFWXSSKokiGFzzdrypxgWOYiXDLwFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^7.0.27"
+ }
+ },
+ "node_modules/tldts/node_modules/tldts-core": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tmp": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=14.14"
}
},
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "node_modules/tmp-promise": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
+ "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "os-tmpdir": "~1.0.2"
- },
- "engines": {
- "node": ">=0.6.0"
+ "tmp": "^0.2.0"
}
},
"node_modules/tmpl": {
@@ -24923,6 +31132,21 @@
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
"dev": true
},
+ "node_modules/to-buffer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
+ "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "^2.0.5",
+ "safe-buffer": "^5.2.1",
+ "typed-array-buffer": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -24937,6 +31161,7 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -24963,39 +31188,29 @@
}
},
"node_modules/tough-cookie": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
- "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
+ "tldts": "^6.1.32"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/tough-cookie/node_modules/universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
+ "node": ">=16"
}
},
"node_modules/tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "punycode": "^2.1.1"
+ "punycode": "^2.3.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/traverse": {
@@ -25009,6 +31224,7 @@
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
"integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
"dev": true,
+ "license": "MIT",
"bin": {
"tree-kill": "cli.js"
}
@@ -25099,10 +31315,11 @@
}
},
"node_modules/tslib": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
- "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
- "dev": true
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -25187,14 +31404,15 @@
}
},
"node_modules/typed-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
- "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-typed-array": "^1.1.13"
+ "is-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -25259,21 +31477,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/typed-query-selector": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz",
+ "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"dev": true
},
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
"node_modules/typescript": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
@@ -25327,6 +31543,7 @@
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"buffer": "^5.2.1",
"through": "^2.3.8"
@@ -25361,10 +31578,11 @@
"dev": true
},
"node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "dev": true
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
@@ -25533,6 +31751,17 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/universal-github-app-jwt": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.2.0.tgz",
+ "integrity": "sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/jsonwebtoken": "^9.0.0",
+ "jsonwebtoken": "^9.0.2"
+ }
+ },
"node_modules/universal-user-agent": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
@@ -25557,10 +31786,45 @@
"node": ">= 0.8"
}
},
+ "node_modules/unrs-resolver": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
+ "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "napi-postinstall": "^0.3.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unrs-resolver"
+ },
+ "optionalDependencies": {
+ "@unrs/resolver-binding-android-arm-eabi": "1.11.1",
+ "@unrs/resolver-binding-android-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-x64": "1.11.1",
+ "@unrs/resolver-binding-freebsd-x64": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-musl": "1.11.1",
+ "@unrs/resolver-binding-wasm32-wasi": "1.11.1",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.11.1"
+ }
+ },
"node_modules/update-browserslist-db": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
- "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
"dev": true,
"funding": [
{
@@ -25576,9 +31840,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
"escalade": "^3.2.0",
- "picocolors": "^1.1.0"
+ "picocolors": "^1.1.1"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -25665,16 +31930,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -25699,12 +31954,6 @@
"uuid": "dist/bin/uuid"
}
},
- "node_modules/v8-compile-cache": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
- "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
- "dev": true
- },
"node_modules/v8-to-istanbul": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
@@ -25756,6 +32005,7 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
"integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -25823,28 +32073,30 @@
}
},
"node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "xml-name-validator": "^4.0.0"
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.5.tgz",
+ "integrity": "sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
+ "axios": "^1.12.1",
+ "joi": "^18.0.1",
"lodash": "^4.17.21",
"minimist": "^1.2.8",
- "rxjs": "^7.8.1"
+ "rxjs": "^7.8.2"
},
"bin": {
"wait-on": "bin/wait-on"
@@ -25853,15 +32105,6 @@
"node": ">=12.0.0"
}
},
- "node_modules/wait-on/node_modules/rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
"node_modules/walker": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
@@ -25871,11 +32114,19 @@
"makeerror": "1.0.12"
}
},
+ "node_modules/wasm-feature-detect": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.8.0.tgz",
+ "integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/watchpack": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
- "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz",
+ "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2"
@@ -25908,44 +32159,55 @@
"integrity": "sha512-/CFAm1mNxSmOj6i0Co+iGFJ58OS4NRGVP+AWS/l509uIK5a1bSoIVaHz/ZumpHTfHSZBpgrJ+wjfpAOrTHok5Q==",
"dev": true
},
+ "node_modules/webdriver-bidi-protocol": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz",
+ "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=12"
}
},
"node_modules/webpack": {
- "version": "5.95.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz",
- "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==",
+ "version": "5.105.4",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz",
+ "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/estree": "^1.0.5",
- "@webassemblyjs/ast": "^1.12.1",
- "@webassemblyjs/wasm-edit": "^1.12.1",
- "@webassemblyjs/wasm-parser": "^1.12.1",
- "acorn": "^8.7.1",
- "acorn-import-attributes": "^1.9.5",
- "browserslist": "^4.21.10",
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.8",
+ "@types/json-schema": "^7.0.15",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.16.0",
+ "acorn-import-phases": "^1.0.3",
+ "browserslist": "^4.28.1",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.17.1",
- "es-module-lexer": "^1.2.1",
+ "enhanced-resolve": "^5.20.0",
+ "es-module-lexer": "^2.0.0",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.2.11",
"json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
+ "loader-runner": "^4.3.1",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.10",
- "watchpack": "^2.4.1",
- "webpack-sources": "^3.2.3"
+ "schema-utils": "^4.3.3",
+ "tapable": "^2.3.0",
+ "terser-webpack-plugin": "^5.3.17",
+ "watchpack": "^2.5.1",
+ "webpack-sources": "^3.3.4"
},
"bin": {
"webpack": "bin/webpack.js"
@@ -26073,20 +32335,6 @@
"node": ">=14"
}
},
- "node_modules/webpack-cli/node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/webpack-cli/node_modules/interpret": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
@@ -26108,42 +32356,6 @@
"node": ">= 10.13.0"
}
},
- "node_modules/webpack-cli/node_modules/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==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/webpack-cli/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/webpack-cli/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/webpack-dev-middleware": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
@@ -26324,32 +32536,15 @@
}
},
"node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz",
+ "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.13.0"
}
},
- "node_modules/webpack/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/websocket-driver": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
@@ -26374,15 +32569,17 @@
}
},
"node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation",
"dev": true,
+ "license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-encoding/node_modules/iconv-lite": {
@@ -26390,6 +32587,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -26398,27 +32596,36 @@
}
},
"node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tr46": "^3.0.0",
+ "tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
+ "node_modules/when-exit": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz",
+ "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -26492,15 +32699,18 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
- "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "version": "1.1.20",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",
+ "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
"engines": {
@@ -26548,6 +32758,25 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -26588,29 +32817,46 @@
}
}
},
- "node_modules/xdg-basedir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "node_modules/xml2js": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
+ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
}
},
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/xtend": {
"version": "4.0.2",
@@ -26697,6 +32943,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/yoctocolors-cjs": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz",
+ "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
"node_modules/zwitch": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
diff --git a/package.json b/package.json
index 6da8e648..24863c97 100644
--- a/package.json
+++ b/package.json
@@ -10,13 +10,14 @@
"textdomain": "woocommerce-product-addon"
},
"devDependencies": {
- "@playwright/test": "^1.48.0",
+ "@playwright/test": "^1.58.2",
"@semantic-release/changelog": "^6.0.1",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@wordpress/e2e-test-utils-playwright": "^1.9.0",
- "@wordpress/env": "^10.9.0",
- "@wordpress/scripts": "27.9.0",
+ "@wordpress/env": "^11.2.0",
+ "@wordpress/eslint-plugin": "^24.4.0",
+ "@wordpress/scripts": "31.7.0",
"conventional-changelog-simple-preset": "^1.0.20",
"grunt": "^1.5.3",
"grunt-version": "^3.0.0",
@@ -36,11 +37,13 @@
"build:grunt": "grunt build",
"grunt": "grunt",
"wp-env": "wp-env",
- "env:after:setup": "bash ./bin/e2e-after-setup.sh",
"test:e2e": "wp-scripts test-playwright --config tests/e2e/playwright.config.js",
"test:e2e:debug": "wp-scripts test-playwright --config tests/e2e/playwright.config.js --ui",
- "test:unit:php:setup": "wp-env start",
+ "env:setup": "wp-env start",
"test:unit:php:setup:debug": "wp-env start --xdebug",
- "test:unit:php": "wp-env run --env-cwd='wp-content/plugins/woocommerce-product-addon' tests-wordpress vendor/bin/phpunit -c phpunit.xml --verbose"
+ "test:unit:php": "wp-env run --env-cwd='wp-content/plugins/woocommerce-product-addon' tests-wordpress vendor/bin/phpunit -c phpunit.xml --verbose",
+ "lint": "wp-scripts lint-js ./js/",
+ "lint:fix": "wp-scripts lint-js --fix ./js",
+ "format": "wp-scripts format ./js"
}
}
diff --git a/phpcs.baseline.xml b/phpcs.baseline.xml
new file mode 100644
index 00000000..e0d9c8c7
--- /dev/null
+++ b/phpcs.baseline.xml
@@ -0,0 +1,2710 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/phpcs.xml b/phpcs.xml
index 454adb3c..00a195ff 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -14,44 +14,57 @@
*.js
*.css
*.asset.php
- globals/google-fonts.php
+ globals/google-fonts.php
bin/*.php
-
-
-
+
+
includes/modules/elementor_booster/widgets/*.php
includes/modules/custom_layouts/elementor/custom_layout.php
+
+
+
+
+
+
+
+
+
+
+
+
includes/core/generic_style.php
- includes/modules/header_footer_grid/templates/components/page-header-html.php
+
+ includes/modules/header_footer_grid/templates/components/page-header-html.php
-
+
includes/modules/elementor_booster/widgets/*.php
-
-
+
+
-
+
-
-
+
+
-
+
\ No newline at end of file
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index 6de8f947..16aa9c22 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -1,6681 +1,7531 @@
parameters:
ignoreErrors:
-
- message: "#^Method PPOM_Changelog_Handler\\:\\:get_changelog\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Changelog_Handler\:\:get_changelog\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/changelog_handler.php
-
- message: "#^Method PPOM_Changelog_Handler\\:\\:parse_changelog\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Changelog_Handler\:\:parse_changelog\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/changelog_handler.php
-
- message: "#^Function ppom_load_free_options\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Changelog_Handler\:\:parse_md_and_clean\(\) should return string but returns string\|null\.$#'
+ identifier: return.type
count: 1
- path: backend/options.php
-
- -
- message: "#^Function ppom_load_pro_options\\(\\) has no return type specified\\.$#"
- count: 1
- path: backend/options.php
-
- -
- message: "#^Constant PPOM_PATH not found\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Constant PPOM_URL not found\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Function PPOMSETTINGS\\(\\) has no return type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Method PPOM_SettingsFramework\\:\\:_get\\(\\) has no return type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Method PPOM_SettingsFramework\\:\\:_get\\(\\) has parameter \\$key with no type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Method PPOM_SettingsFramework\\:\\:_get\\(\\) has parameter \\$type with no type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Method PPOM_SettingsFramework\\:\\:add_admin_menu\\(\\) has no return type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
-
- -
- message: "#^Method PPOM_SettingsFramework\\:\\:add_settings_tab\\(\\) has no return type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
+ path: backend/changelog_handler.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:add_settings_tab\\(\\) has parameter \\$settings_tabs with no type specified\\.$#"
- count: 1
- path: backend/settings-panel.class.php
+ message: '#^Parameter \#1 \$string of method PPOM_Changelog_Handler\:\:parse_md_and_clean\(\) expects string, string\|null given\.$#'
+ identifier: argument.type
+ count: 2
+ path: backend/changelog_handler.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:border_style\\(\\) has no return type specified\\.$#"
+ message: '#^Action callback returns string\|void but should not return anything\.$#'
+ identifier: return.void
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:css_editor_options\\(\\) has no return type specified\\.$#"
+ message: '#^Cannot access property \$id on WP_Screen\|null\.$#'
+ identifier: property.nonObject
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_css\\(\\) has no return type specified\\.$#"
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_css\\(\\) has parameter \\$settings_meta with no type specified\\.$#"
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_css_editor_output_css\\(\\) has no return type specified\\.$#"
+ message: '#^Function PPOMSETTINGS\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_css_editor_output_css\\(\\) has parameter \\$css_val with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:_get\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_css_editor_output_css\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:_get\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_typograpy_output_css\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:_get\(\) has parameter \$type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_typograpy_output_css\\(\\) has parameter \\$css_val with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:add_admin_menu\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:generate_typograpy_output_css\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:add_settings_tab\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_config\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:add_settings_tab\(\) has parameter \$settings_tabs with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_config\\(\\) has parameter \\$key with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:border_style\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_form_name\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:css_editor_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_form_name\\(\\) has parameter \\$id with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_css\(\) has parameter \$settings_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_css_editor_output_css\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_saved_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_css_editor_output_css\(\) has parameter \$css_val with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_saved_settings\\(\\) has parameter \\$default with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_css_editor_output_css\(\) has parameter \$settings with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_saved_settings\\(\\) has parameter \\$key with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_typograpy_output_css\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_typograpy_output_css\(\) has parameter \$css_val with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:get_styles\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:generate_typograpy_output_css\(\) has parameter \$settings with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:insert_at\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_config\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:insert_at\\(\\) has parameter \\$array with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_config\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:insert_at\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_form_name\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:insert_at\\(\\) has parameter \\$position with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_form_name\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:is_settings_page\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:load_inputs\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_saved_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:load_inputs\\(\\) has parameter \\$input_meta with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_saved_settings\(\) has parameter \$default with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:load_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_saved_settings\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:load_template\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_scripts\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:load_template\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:get_styles\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:load_template\\(\\) has parameter \\$variables with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:insert_at\(\) has parameter \$item with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:ppom_migrate_settings_panel\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:insert_at\(\) has parameter \$items with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_config\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:insert_at\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_panel\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:load_inputs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_panel\\(\\) has parameter \\$panels with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:load_inputs\(\) has parameter \$input_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_panel\\(\\) has parameter \\$tab_id with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:load_template\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_setting\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:load_template\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_setting\\(\\) has parameter \\$panel_id with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:load_template\(\) has parameter \$variables with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_setting\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_config\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_tabs\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_panel\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:register_tabs\\(\\) has parameter \\$tabs with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_panel\(\) has parameter \$panels with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:remove_admin_notices\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_panel\(\) has parameter \$tab_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:render_settings_panel\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_setting\(\) has parameter \$settings with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:reposition_array_element\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_tabs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:reposition_array_element\\(\\) has parameter \\$arr with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:register_tabs\(\) has parameter \$tabs with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:reposition_array_element\\(\\) has parameter \\$find with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:remove_admin_notices\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:reposition_array_element\\(\\) has parameter \\$move with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:reposition_array_element\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:save_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:reposition_array_element\(\) has parameter \$arr with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:set_localize_data\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:reposition_array_element\(\) has parameter \$find with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:set_localize_data\\(\\) has parameter \\$global_js_vars with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:reposition_array_element\(\) has parameter \$move with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:set_localize_data\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:set_localize_data\(\) has parameter \$global_js_vars with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:set_localize_data\\(\\) has parameter \\$js_vars with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:set_localize_data\(\) has parameter \$js_vars with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:set_localize_data\\(\\) has parameter \\$var_name with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:settings_position_controller\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:settings_position_controller\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:settings_position_controller\(\) has parameter \$settings with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:settings_position_controller\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Method PPOM_SettingsFramework\:\:typography_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Method PPOM_SettingsFramework\\:\\:typography_options\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#3 \$length of function array_splice expects int, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$assets_url has unknown class url as its type\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$assets_url has unknown class url as its type\.$#'
+ identifier: class.notFound
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$config type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$config type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$panels type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$panels type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$scripts_class has no type specified\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$scripts_class has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$settings_array type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$settings_array type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Property PPOM_SettingsFramework\\:\\:\\$tabs type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_SettingsFramework\:\:\$tabs type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Static property PPOM_SettingsFramework\\:\\:\\$assets_url \\(url\\) does not accept default value of type string\\.$#"
+ message: '#^Static property PPOM_SettingsFramework\:\:\$assets_url \(url\) does not accept default value of type string\.$#'
+ identifier: property.defaultValue
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Static property PPOM_SettingsFramework\\:\\:\\$assets_url \\(url\\) does not accept string\\.$#"
+ message: '#^Static property PPOM_SettingsFramework\:\:\$assets_url \(url\) does not accept string\.$#'
+ identifier: assign.propertyType
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Static property PPOM_SettingsFramework\\:\\:\\$saved_settings is never read, only written\\.$#"
+ message: '#^Static property PPOM_SettingsFramework\:\:\$saved_settings is never read, only written\.$#'
+ identifier: property.onlyWritten
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Variable \\$localize_data might not be defined\\.$#"
+ message: '#^Variable \$localize_data might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: backend/settings-panel.class.php
-
- message: "#^Offset 'is_available' on array\\{input_id\\: mixed\\} in isset\\(\\) does not exist\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, string\|false given\.$#'
+ identifier: argument.type
+ count: 2
path: backend/templates/admin-settings.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 8
path: backend/templates/admin-settings.php
-
- message: "#^Variable \\$tabs might not be defined\\.$#"
+ message: '#^Variable \$tabs might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: backend/templates/admin-settings.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: backend/templates/inputs/checkbox.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: backend/templates/inputs/color.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 4
path: backend/templates/inputs/css_editor.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: backend/templates/inputs/select.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: backend/templates/inputs/text.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: backend/templates/inputs/textarea.php
-
- message: "#^Variable \\$class_ins might not be defined\\.$#"
+ message: '#^Variable \$class_ins might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: backend/templates/inputs/typography.php
-
- message: "#^Callback expects 1 parameter, \\$accepted_args is set to 10\\.$#"
+ message: '#^Action callback returns string\|void but should not return anything\.$#'
+ identifier: return.void
count: 1
path: classes/admin.class.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
- count: 2
- path: classes/admin.class.php
-
- -
- message: "#^Function add_options_page invoked with 7 parameters, 4\\-6 required\\.$#"
+ message: '#^Callback expects 1 parameter, \$accepted_args is set to 10\.$#'
+ identifier: arguments.count
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:add_menu_pages\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
+ count: 2
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:add_settings_tab\\(\\) has no return type specified\\.$#"
+ message: '#^Function add_options_page invoked with 7 parameters, 4\-6 required\.$#'
+ identifier: arguments.count
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:add_settings_tab\\(\\) has parameter \\$settings_tabs with no type specified\\.$#"
+ message: '#^Loose comparison using \=\= between true and ''text'' will always evaluate to true\.$#'
+ identifier: equal.alwaysTrue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_db_field\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:add_settings_tab\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_products\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:add_settings_tab\(\) has parameter \$settings_tabs with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_wc_categories\\(\\) has parameter \\$current_values with no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:get_db_field\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_wc_categories\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:get_wc_categories\(\) has parameter \$current_values with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_wc_products\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:get_wc_categories\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_wc_tags\\(\\) has parameter \\$current_values with no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:get_wc_products\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:get_wc_tags\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:get_wc_tags\(\) has parameter \$current_values with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:load_admin_menu\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:get_wc_tags\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:menu_page_options\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:load_admin_menu\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_create_db_tables\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:menu_page_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_multi_select_role_setting\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:ppom_create_db_tables\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_multi_select_role_setting\\(\\) has parameter \\$value with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:ppom_multi_select_role_setting\(\) has parameter \$value with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_setting_wpml\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:ppom_setting_wpml\(\) has parameter \$option with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_setting_wpml\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:save_categories_and_tags\(\) has parameter \$categories with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_setting_wpml\\(\\) has parameter \\$raw_value with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:save_categories_and_tags\(\) has parameter \$tags with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_setting_wpml\\(\\) has parameter \\$value with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:set_legacy_user\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:ppom_tabs_custom_style\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:upgrade_to_pro_plugin_action\(\) has parameter \$actions with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:product_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct_Admin\:\:upgrade_to_pro_plugin_action\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:save_categories_and_tags\\(\\) has no return type specified\\.$#"
+ message: '#^Offset ''logo'' does not exist on string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:save_categories_and_tags\\(\\) has parameter \\$categories with no value type specified in iterable type array\\.$#"
+ message: '#^Offset ''menu_position'' does not exist on string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:save_categories_and_tags\\(\\) has parameter \\$tags with no value type specified in iterable type array\\.$#"
+ message: '#^Offset ''type'' on non\-empty\-array in isset\(\) always exists and is not nullable\.$#'
+ identifier: isset.offset
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:save_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#1 \$post_id of function delete_post_meta expects int, string given\.$#'
+ identifier: argument.type
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:set_legacy_user\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#1 \$post_id of function get_post_meta expects int, int\|false given\.$#'
+ identifier: argument.type
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:settings_tab\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$post_id of function get_post_meta expects int, string given\.$#'
+ identifier: argument.type
+ count: 2
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:upgrade_to_pro_plugin_action\\(\\) has parameter \\$actions with no value type specified in iterable type array\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$post_id of function update_post_meta expects int, string given\.$#'
+ identifier: argument.type
+ count: 3
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:upgrade_to_pro_plugin_action\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Parameter \#2 \$haystack of function in_array expects array, list\\|false given\.$#'
+ identifier: argument.type
count: 1
path: classes/admin.class.php
-
- message: "#^Method NM_PersonalizedProduct_Admin\\:\\:validate_plugin\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#5 \$callback of function add_menu_page expects ''''\|\(callable\(\)\: mixed\), array\{\$this\(NM_PersonalizedProduct_Admin\), mixed\} given\.$#'
+ identifier: argument.type
count: 1
path: classes/admin.class.php
-
- message: "#^Offset 'logo' does not exist on string\\.$#"
+ message: '#^Parameter \#5 \$callback of function add_options_page expects ''''\|\(callable\(\)\: mixed\), array\{\$this\(NM_PersonalizedProduct_Admin\), mixed\} given\.$#'
+ identifier: argument.type
count: 1
path: classes/admin.class.php
-
- message: "#^Offset 'menu_position' does not exist on string\\.$#"
+ message: '#^Parameter \#6 \$callback of function add_submenu_page expects ''''\|\(callable\(\)\: mixed\), array\{\$this\(NM_PersonalizedProduct_Admin\), mixed\} given\.$#'
+ identifier: argument.type
count: 1
path: classes/admin.class.php
-
- message: "#^Parameter \\#1 \\$post_id of function delete_post_meta expects int, string given\\.$#"
+ message: '#^Property NM_PersonalizedProduct_Admin\:\:\$menu_pages has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/admin.class.php
-
- message: "#^Parameter \\#1 \\$post_id of function get_post_meta expects int, string given\\.$#"
- count: 2
- path: classes/admin.class.php
-
- -
- message: "#^Parameter \\#1 \\$post_id of function update_post_meta expects int, string given\\.$#"
- count: 3
- path: classes/admin.class.php
-
- -
- message: "#^Property NM_PersonalizedProduct_Admin\\:\\:\\$menu_pages has no type specified\\.$#"
+ message: '#^Property NM_PersonalizedProduct_Admin\:\:\$plugin_meta \(string\) does not accept default value of type array\.$#'
+ identifier: property.defaultValue
count: 1
path: classes/admin.class.php
-
- message: "#^Property NM_PersonalizedProduct_Admin\\:\\:\\$plugin_meta \\(string\\) does not accept default value of type array\\.$#"
+ message: '#^Property NM_PersonalizedProduct_Admin\:\:\$plugin_scripts_admin has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/admin.class.php
-
- message: "#^Property NM_PersonalizedProduct_Admin\\:\\:\\$plugin_scripts_admin has no type specified\\.$#"
+ message: '#^Property NM_PersonalizedProduct_Admin\:\:\$plugin_settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/admin.class.php
-
- message: "#^Property NM_PersonalizedProduct_Admin\\:\\:\\$plugin_settings has no type specified\\.$#"
+ message: '#^Call to function method_exists\(\) with PPOM\\Attach\\ContainerView and ''render'' will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
count: 1
- path: classes/admin.class.php
+ path: classes/attach-popup/container-item.class.php
-
- message: "#^Method PPOM\\\\Attach\\\\ContainerItem\\:\\:__construct\\(\\) has parameter \\$id with no type specified\\.$#"
+ message: '#^Method PPOM\\Attach\\ContainerItem\:\:__construct\(\) has parameter \$id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/attach-popup/container-item.class.php
-
- message: "#^Method PPOM\\\\Attach\\\\ContainerItem\\:\\:__construct\\(\\) has parameter \\$renderer with no type specified\\.$#"
+ message: '#^Method PPOM\\Attach\\ContainerItem\:\:__construct\(\) has parameter \$renderer with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/attach-popup/container-item.class.php
-
- message: "#^Method PPOM\\\\Attach\\\\ContainerView\\:\\:set_id\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM\\Attach\\ContainerView\:\:set_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/attach-popup/container-view.class.php
-
- message: "#^Property PPOM\\\\Attach\\\\ContainerView\\:\\:\\$id has no type specified\\.$#"
+ message: '#^Property PPOM\\Attach\\ContainerView\:\:\$id has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/attach-popup/container-view.class.php
-
- message: "#^Method PPOM\\\\Attach\\\\SelectComponent\\:\\:get_select\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM\\Attach\\SelectComponent\:\:get_select\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/attach-popup/select-component.class.php
-
- message: "#^Method PPOM\\\\Attach\\\\SelectComponent\\:\\:set_select\\(\\) has parameter \\$select with no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM\\Attach\\SelectComponent\:\:render\(\) should return string but returns string\|false\.$#'
+ identifier: return.type
count: 1
path: classes/attach-popup/select-component.class.php
-
- message: "#^Property PPOM\\\\Attach\\\\SelectComponent\\:\\:\\$select \\(array\\{name\\: string, multiple\\: bool, isUsed\\: bool, options\\: array\\{value\\: string, label\\: string, selected\\: bool\\}\\}\\) does not accept default value of type array\\{\\}\\.$#"
+ message: '#^Method PPOM\\Attach\\SelectComponent\:\:set_select\(\) has parameter \$select with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/attach-popup/select-component.class.php
-
- message: "#^Cannot call method get_freemium_cfr_content\\(\\) on null\\.$#"
+ message: '#^Property PPOM\\Attach\\SelectComponent\:\:\$select \(array\{name\: string, multiple\: bool, isUsed\: bool, options\: array\{value\: string, label\: string, selected\: bool\}\}\) does not accept array\.$#'
+ identifier: assign.propertyType
count: 1
- path: classes/fields.class.php
-
- -
- message: "#^Constant PPOM_URL not found\\.$#"
- count: 21
- path: classes/fields.class.php
+ path: classes/attach-popup/select-component.class.php
-
- message: "#^Function PPOM_FIELDS_META\\(\\) has no return type specified\\.$#"
+ message: '#^Property PPOM\\Attach\\SelectComponent\:\:\$select \(array\{name\: string, multiple\: bool, isUsed\: bool, options\: array\{value\: string, label\: string, selected\: bool\}\}\) does not accept default value of type array\{\}\.$#'
+ identifier: property.defaultValue
count: 1
- path: classes/fields.class.php
+ path: classes/attach-popup/select-component.class.php
-
- message: "#^If condition is always true\\.$#"
- count: 1
+ message: '#^Argument of an invalid type array\\|string supplied for foreach, only iterables are supported\.$#'
+ identifier: foreach.nonIterable
+ count: 7
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Cannot call method get_freemium_cfr_content\(\) on null\.$#'
+ identifier: method.nonObject
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:load_script\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
+ count: 21
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:load_script\\(\\) has parameter \\$hook with no type specified\\.$#"
+ message: '#^Function PPOM_FIELDS_META\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:ppom_fields_tabs\\(\\) has no return type specified\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:ppom_fields_tabs\\(\\) has parameter \\$fields_type with no type specified\\.$#"
+ message: '#^Method PPOM_Fields_Meta\:\:ppom_fields_tabs\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_all_input_types\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Fields_Meta\:\:render_all_input_types\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_all_input_types\\(\\) has parameter \\$data with no type specified\\.$#"
+ message: '#^Method PPOM_Fields_Meta\:\:render_field_meta\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_all_input_types\\(\\) has parameter \\$field_index with no type specified\\.$#"
+ message: '#^Method PPOM_Fields_Meta\:\:render_field_meta\(\) has parameter \$save_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_all_input_types\\(\\) has parameter \\$fields_type with no type specified\\.$#"
+ message: '#^Method PPOM_Fields_Meta\:\:update_html_classes\(\) has parameter \$settings with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_all_input_types\\(\\) has parameter \\$name with no type specified\\.$#"
+ message: '#^Method PPOM_Fields_Meta\:\:update_html_classes\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_all_input_types\\(\\) has parameter \\$values with no type specified\\.$#"
+ message: '#^Offset ''visibility'' might not exist on non\-empty\-array\\|non\-falsy\-string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_field_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#1 \$encoded_string of function parse_str expects string, array\\|string given\.$#'
+ identifier: argument.type
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_field_meta\\(\\) has parameter \\$field_index with no type specified\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$input of function array_keys expects array, array\\|string given\.$#'
+ identifier: argument.type
+ count: 7
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_field_meta\\(\\) has parameter \\$field_meta with no type specified\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, \(float\|int\) given\.$#'
+ identifier: argument.type
+ count: 7
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_field_meta\\(\\) has parameter \\$fields_type with no type specified\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, array\|float\|int\|string\|false\|null given\.$#'
+ identifier: argument.type
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_field_meta\\(\\) has parameter \\$save_meta with no type specified\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int given\.$#'
+ identifier: argument.type
+ count: 2
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:render_field_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<1, max\> given\.$#'
+ identifier: argument.type
count: 1
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:update_html_classes\\(\\) has parameter \\$settings with no value type specified in iterable type array\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\|string given\.$#'
+ identifier: argument.type
+ count: 57
path: classes/fields.class.php
-
- message: "#^Method PPOM_Fields_Meta\\:\\:update_html_classes\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_html expects string, array\\|string given\.$#'
+ identifier: argument.type
+ count: 3
path: classes/fields.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, \\(float\\|int\\) given\\.$#"
- count: 7
+ message: '#^Parameter \#1 \.\.\.\$arg1 of function max expects non\-empty\-array, list\ given\.$#'
+ identifier: argument.type
+ count: 1
path: classes/fields.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int given\\.$#"
+ message: '#^Parameter \#2 \$haystack of function in_array expects array, array\\|string given\.$#'
+ identifier: argument.type
count: 2
path: classes/fields.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int\\<1, max\\> given\\.$#"
- count: 1
- path: classes/fields.class.php
-
- -
- message: "#^Parameter \\#3 \\$deps of function wp_enqueue_style expects array\\, string given\\.$#"
+ message: '#^Parameter \#3 \$deps of function wp_enqueue_style expects array\, string given\.$#'
+ identifier: argument.type
count: 1
path: classes/fields.class.php
-
- message: "#^Property PPOM_Fields_Meta\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property PPOM_Fields_Meta\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/fields.class.php
-
- message: "#^Result of static method PPOM_Freemium\\:\\:get_instance\\(\\) \\(void\\) is used\\.$#"
+ message: '#^Result of static method PPOM_Freemium\:\:get_instance\(\) \(void\) is used\.$#'
+ identifier: staticMethod.void
count: 1
path: classes/fields.class.php
-
- message: "#^Undefined variable\\: \\$value$#"
+ message: '#^Undefined variable\: \$value$#'
+ identifier: variable.undefined
count: 1
path: classes/fields.class.php
-
- message: "#^Variable \\$values in isset\\(\\) always exists and is not nullable\\.$#"
+ message: '#^Variable \$values in isset\(\) always exists and is not nullable\.$#'
+ identifier: isset.variable
count: 1
path: classes/fields.class.php
-
- message: "#^Cannot access property \\$fields on array\\.$#"
- count: 2
- path: classes/form.class.php
-
- -
- message: "#^Cannot access property \\$meta_id on array\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Class PPOM_Form constructor invoked with 0 parameters, 2 required\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:__construct\\(\\) has parameter \\$args with no type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:__construct\\(\\) has parameter \\$product with no type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:field_main_wrapper_classes\\(\\) has no return type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:field_main_wrapper_classes\\(\\) has parameter \\$meta with no type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:field_wrapper_width\\(\\) has no return type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:field_wrapper_width\\(\\) has parameter \\$input_meta with no type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:form_contents\\(\\) has no return type specified\\.$#"
- count: 1
- path: classes/form.class.php
-
- -
- message: "#^Method PPOM_Form\\:\\:get_field_default_value\\(\\) has invalid return type defual_value\\.$#"
+ message: '#^Method PPOM_Form\:\:__construct\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:get_field_default_value\\(\\) has parameter \\$data_name with no type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:__construct\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:get_field_default_value\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:field_main_wrapper_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:get_field_default_value\\(\\) has parameter \\$posted_values with no type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:field_main_wrapper_classes\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:field_wrapper_width\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:has_ppom_fields\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:field_wrapper_width\(\) has parameter \$input_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:ppom_fields_render\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:form_contents\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:render_input_template\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:get_field_default_value\(\) has invalid return type defual_value\.$#'
+ identifier: class.notFound
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:render_input_template\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:get_field_default_value\(\) has parameter \$data_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:render_input_template\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:get_field_default_value\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Form\\:\\:render_price_table_html\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Form\:\:get_field_default_value\(\) has parameter \$posted_values with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/form.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, float\\|int given\\.$#"
+ message: '#^Method PPOM_Form\:\:has_ppom_fields\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/form.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int\\<0, max\\> given\\.$#"
+ message: '#^Method PPOM_Form\:\:render_input_template\(\) has parameter \$meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/form.class.php
-
- message: "#^Property PPOM_Form\\:\\:\\$args type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Form\:\:render_price_table_html\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/form.class.php
-
- message: "#^Property PPOM_Form\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int given\.$#'
+ identifier: argument.type
count: 1
path: classes/form.class.php
-
- message: "#^Property PPOM_Form\\:\\:\\$ppom type has no value type specified in iterable type array\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<0, max\> given\.$#'
+ identifier: argument.type
count: 1
path: classes/form.class.php
-
- message: "#^Static property PPOM_Form\\:\\:\\$ppom \\(array\\) does not accept PPOM_Meta\\.$#"
+ message: '#^Property PPOM_Form\:\:\$args type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/form.class.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: classes/form.class.php
-
- message: "#^Method PPOM_Freemium\\:\\:add_locked_cfr_tab\\(\\) has parameter \\$tabs with no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Freemium\:\:add_locked_cfr_tab\(\) has parameter \$tabs with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/freemium.class.php
-
- message: "#^Method PPOM_Freemium\\:\\:add_locked_cfr_tab\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Freemium\:\:add_locked_cfr_tab\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/freemium.class.php
-
- message: "#^Method PPOM_Freemium\\:\\:get_instance\\(\\) with return type void returns mixed but should not return anything\\.$#"
+ message: '#^Method PPOM_Freemium\:\:get_freemium_cfr_content\(\) should return string but returns string\|false\.$#'
+ identifier: return.type
count: 1
path: classes/freemium.class.php
-
- message: "#^Method PPOM_Freemium\\:\\:get_pro_fields\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Freemium\:\:get_instance\(\) with return type void returns mixed but should not return anything\.$#'
+ identifier: return.void
count: 1
path: classes/freemium.class.php
-
- message: "#^Method PPOM_Freemium\\:\\:locked_cfr_register_form_elements\\(\\) has parameter \\$inputs with no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Freemium\:\:get_pro_fields\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/freemium.class.php
-
- message: "#^Method PPOM_Freemium\\:\\:locked_cfr_register_form_elements\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Freemium\:\:locked_cfr_register_form_elements\(\) has parameter \$inputs with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/freemium.class.php
-
- message: "#^Property PPOM_Freemium\\:\\:\\$instance has no type specified\\.$#"
+ message: '#^Method PPOM_Freemium\:\:locked_cfr_register_form_elements\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/freemium.class.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^Constant PPOM_URL not found\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^Function PPOM_FPP not found\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^If condition is always true\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:add_inline_css\\(\\) has no return type specified\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:add_inline_css\\(\\) has parameter \\$field_meta with no type specified\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:add_inline_css\\(\\) has parameter \\$type with no type specified\\.$#"
- count: 1
- path: classes/frontend-scripts.class.php
-
- -
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:get_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Property PPOM_Freemium\:\:\$instance has no type specified\.$#'
+ identifier: missingType.property
count: 1
- path: classes/frontend-scripts.class.php
+ path: classes/freemium.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:get_styles\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Access to an undefined property object\:\:\$ID\.$#'
+ identifier: property.notFound
+ count: 3
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:init\\(\\) has no return type specified\\.$#"
+ message: '#^Cannot call method get_title\(\) on WC_Product\|false\|null\.$#'
+ identifier: method.nonObject
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:load_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:load_scripts_by_product_id\\(\\) has no return type specified\\.$#"
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:load_scripts_by_product_id\\(\\) has parameter \\$display_location with no type specified\\.$#"
+ message: '#^Function PPOM_FPP not found\.$#'
+ identifier: function.notFound
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:load_scripts_by_product_id\\(\\) has parameter \\$ppom_id with no type specified\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:load_scripts_by_product_id\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Method PPOM_FRONTEND_SCRIPTS\:\:add_inline_css\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:set_localize_data\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_FRONTEND_SCRIPTS\:\:get_scripts\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:set_localize_data\\(\\) has parameter \\$global_js_vars with no type specified\\.$#"
+ message: '#^Method PPOM_FRONTEND_SCRIPTS\:\:get_styles\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:set_localize_data\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_FRONTEND_SCRIPTS\:\:set_localize_data\(\) has parameter \$global_js_vars with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:set_localize_data\\(\\) has parameter \\$js_vars with no type specified\\.$#"
+ message: '#^Method PPOM_FRONTEND_SCRIPTS\:\:set_localize_data\(\) has parameter \$js_vars with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:set_localize_data\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Parameter \#1 \$hook_name of function apply_filters expects non\-empty\-string, string given\.$#'
+ identifier: argument.type
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_FRONTEND_SCRIPTS\\:\\:set_localize_data\\(\\) has parameter \\$var_name with no type specified\\.$#"
- count: 1
+ message: '#^Parameter \#3 \$product of static method PPOM_FRONTEND_SCRIPTS\:\:set_localize_data\(\) expects WC_Product, WC_Product\|false\|null given\.$#'
+ identifier: argument.type
+ count: 5
path: classes/frontend-scripts.class.php
-
- message: "#^Property PPOM_FRONTEND_SCRIPTS\\:\\:\\$scripts_class has no type specified\\.$#"
+ message: '#^Property PPOM_FRONTEND_SCRIPTS\:\:\$scripts_class has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Property PPOM_FRONTEND_SCRIPTS\\:\\:\\$scripts_url has unknown class URL as its type\\.$#"
+ message: '#^Property PPOM_FRONTEND_SCRIPTS\:\:\$scripts_url has unknown class URL as its type\.$#'
+ identifier: class.notFound
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Static property PPOM_FRONTEND_SCRIPTS\\:\\:\\$scripts_class is unused\\.$#"
+ message: '#^Static property PPOM_FRONTEND_SCRIPTS\:\:\$scripts_class is unused\.$#'
+ identifier: property.unused
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Static property PPOM_FRONTEND_SCRIPTS\\:\\:\\$scripts_url \\(URL\\) does not accept default value of type string\\.$#"
+ message: '#^Static property PPOM_FRONTEND_SCRIPTS\:\:\$scripts_url \(URL\) does not accept default value of type string\.$#'
+ identifier: property.defaultValue
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Variable \\$localize_data might not be defined\\.$#"
+ message: '#^Variable \$localize_data might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: classes/frontend-scripts.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:__construct\\(\\) has parameter \\$input_meta with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:__construct\(\) has parameter \$input_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:__construct\\(\\) has parameter \\$input_type with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:__construct\(\) has parameter \$input_type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:audio_video\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:audio_video\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:checkbox_label_classes\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:checkbox_label_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:data_name\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:data_name\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:desc\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:desc\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:enable_tooltip\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:enable_tooltip\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:error_msg\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:error_msg\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:field_inner_wrapper_classes\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:field_inner_wrapper_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:field_label\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:field_label\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:field_label\\(\\) has parameter \\$asterisk with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:field_label\(\) has parameter \$asterisk with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:field_label\\(\\) has parameter \\$desc with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:field_label\(\) has parameter \$desc with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:field_label\\(\\) has parameter \\$tooltip with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:field_label\(\) has parameter \$tooltip with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:form_name\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:form_name\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:get_meta_value\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:get_meta_value\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:get_meta_value\\(\\) has parameter \\$default with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:get_meta_value\(\) has parameter \$default with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:get_meta_value\\(\\) has parameter \\$key with no type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:get_meta_value\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:images\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:images\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:input_classes\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:input_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:input_classes_array\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:input_classes_array\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:label_classes\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:label_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:options\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:placeholder\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:placeholder\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:radio_label_classes\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:radio_label_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:required\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:required\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:title\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:title\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Method PPOM_InputManager\\:\\:tooltip\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_InputManager\:\:tooltip\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input-meta.class.php
-
- message: "#^Property PPOM_InputManager\\:\\:\\$input_meta type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_InputManager\:\:\$input_meta type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/input-meta.class.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
- count: 1
- path: classes/input.class.php
-
- -
- message: "#^Function PPOM_Inputs\\(\\) has no return type specified\\.$#"
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: classes/input.class.php
-
- message: "#^If condition is always false\\.$#"
+ message: '#^Function PPOM_Inputs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:current_page_url\\(\\) has no return type specified\\.$#"
+ message: '#^If condition is always false\.$#'
+ identifier: if.alwaysFalse
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:get_addon\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:current_page_url\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:get_addon\\(\\) has parameter \\$type with no type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:get_addon\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:get_input\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:get_addon\(\) has parameter \$type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:get_input\\(\\) has parameter \\$type with no type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:get_input\(\) should return object\|null but return statement is missing\.$#'
+ identifier: return.missing
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:if_browser_is_ie\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:if_browser_is_ie\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input.class.php
-
- message: "#^Method PPOM_Inputs\\:\\:load_input_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Inputs\:\:load_input_scripts\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/input.class.php
-
- message: "#^PHPDoc tag @param has invalid value \\(\\)\\: Unexpected token \"\\\\n\\\\t \", expected type at offset 67$#"
+ message: '#^PHPDoc tag @param has invalid value \(\)\: Unexpected token "\\n\\t ", expected type at offset 67 on line 6$#'
+ identifier: phpDoc.parseError
count: 1
path: classes/input.class.php
-
- message: "#^Property PPOM_Inputs\\:\\:\\$input_scripts has no type specified\\.$#"
+ message: '#^Property PPOM_Inputs\:\:\$input_scripts has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/input.class.php
-
- message: "#^Property PPOM_Inputs\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property PPOM_Inputs\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/input.class.php
-
- message: "#^Property PPOM_Inputs\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property PPOM_Inputs\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/input.class.php
-
- message: "#^Method NM_Audio_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Audio_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.audio.php
-
- message: "#^Property NM_Audio_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Audio_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.audio.php
-
- message: "#^Property NM_Audio_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Audio_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.audio.php
-
- message: "#^Property NM_Audio_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Audio_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.audio.php
-
- message: "#^Property NM_Audio_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Audio_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.audio.php
-
- message: "#^Method NM_Checkbox_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Checkbox_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.checkbox.php
-
- message: "#^Property NM_Checkbox_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Checkbox_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.checkbox.php
-
- message: "#^Property NM_Checkbox_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Checkbox_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.checkbox.php
-
- message: "#^Property NM_Checkbox_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Checkbox_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.checkbox.php
-
- message: "#^Property NM_Checkbox_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Checkbox_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.checkbox.php
-
- message: "#^Method NM_Color_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Color_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.color.php
-
- message: "#^Property NM_Color_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Color_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.color.php
-
- message: "#^Property NM_Color_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Color_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.color.php
-
- message: "#^Property NM_Color_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Color_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.color.php
-
- message: "#^Property NM_Color_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Color_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.color.php
-
- message: "#^Method NM_Cropper_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Cropper_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.cropper.php
-
- message: "#^Property NM_Cropper_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Cropper_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.cropper.php
-
- message: "#^Property NM_Cropper_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Cropper_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.cropper.php
-
- message: "#^Property NM_Cropper_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Cropper_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.cropper.php
-
- message: "#^Property NM_Cropper_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Cropper_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.cropper.php
-
- message: "#^Method NM_Date_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Date_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.date.php
-
- message: "#^Property NM_Date_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Date_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.date.php
-
- message: "#^Property NM_Date_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Date_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.date.php
-
- message: "#^Property NM_Date_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Date_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.date.php
-
- message: "#^Property NM_Date_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Date_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.date.php
-
- message: "#^Method NM_Daterange_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Daterange_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.daterange.php
-
- message: "#^Property NM_Daterange_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Daterange_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.daterange.php
-
- message: "#^Property NM_Daterange_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Daterange_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.daterange.php
-
- message: "#^Property NM_Daterange_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Daterange_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.daterange.php
-
- message: "#^Property NM_Daterange_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Daterange_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.daterange.php
-
- message: "#^Method NM_Divider_wooproduct\\:\\:border_style\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Divider_wooproduct\:\:border_style\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Method NM_Divider_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Divider_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Method NM_Divider_wooproduct\\:\\:ppom_divider_style\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Divider_wooproduct\:\:ppom_divider_style\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Property NM_Divider_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Divider_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Property NM_Divider_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Divider_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Property NM_Divider_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Divider_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Property NM_Divider_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Divider_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.divider.php
-
- message: "#^Method NM_Email_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Email_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.email.php
-
- message: "#^Property NM_Email_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Email_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.email.php
-
- message: "#^Property NM_Email_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Email_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.email.php
-
- message: "#^Property NM_Email_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Email_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.email.php
-
- message: "#^Property NM_Email_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Email_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.email.php
-
- message: "#^Method NM_File_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_File_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.file.php
-
- message: "#^Property NM_File_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_File_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.file.php
-
- message: "#^Property NM_File_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_File_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.file.php
-
- message: "#^Property NM_File_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_File_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.file.php
-
- message: "#^Property NM_File_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_File_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.file.php
-
- message: "#^Method NM_Hidden_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Hidden_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.hidden.php
-
- message: "#^Property NM_Hidden_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Hidden_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.hidden.php
-
- message: "#^Property NM_Hidden_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Hidden_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.hidden.php
-
- message: "#^Property NM_Hidden_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Hidden_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.hidden.php
-
- message: "#^Property NM_Hidden_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Hidden_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.hidden.php
-
- message: "#^Method NM_Image_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Image_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.image.php
-
- message: "#^Property NM_Image_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Image_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.image.php
-
- message: "#^Property NM_Image_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Image_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.image.php
-
- message: "#^Property NM_Image_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Image_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.image.php
-
- message: "#^Property NM_Image_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Image_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.image.php
-
- message: "#^Method NM_Measure_wooproduct\\:\\:change_option_label\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Measure_wooproduct\:\:change_option_label\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Method NM_Measure_wooproduct\\:\\:change_option_label\\(\\) has parameter \\$label with no type specified\\.$#"
+ message: '#^Method NM_Measure_wooproduct\:\:change_option_label\(\) has parameter \$label with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Method NM_Measure_wooproduct\\:\\:change_option_label\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Method NM_Measure_wooproduct\:\:change_option_label\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Method NM_Measure_wooproduct\\:\\:change_option_label\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Method NM_Measure_wooproduct\:\:change_option_label\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Method NM_Measure_wooproduct\\:\\:change_option_label\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Method NM_Measure_wooproduct\:\:change_option_label\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Method NM_Measure_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Measure_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Property NM_Measure_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Measure_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Property NM_Measure_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Measure_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Property NM_Measure_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Measure_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Property NM_Measure_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Measure_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.measure.php
-
- message: "#^Method NM_Number_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Number_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.number.php
-
- message: "#^Property NM_Number_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Number_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.number.php
-
- message: "#^Property NM_Number_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Number_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.number.php
-
- message: "#^Property NM_Number_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Number_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.number.php
-
- message: "#^Property NM_Number_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Number_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.number.php
-
- message: "#^Method NM_Palettes_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Palettes_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.palettes.php
-
- message: "#^Property NM_Palettes_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Palettes_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.palettes.php
-
- message: "#^Property NM_Palettes_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Palettes_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.palettes.php
-
- message: "#^Property NM_Palettes_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Palettes_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.palettes.php
-
- message: "#^Property NM_Palettes_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Palettes_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.palettes.php
-
- message: "#^Method NM_PriceMatrix_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PriceMatrix_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.pricematrix.php
-
- message: "#^Property NM_PriceMatrix_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_PriceMatrix_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.pricematrix.php
-
- message: "#^Property NM_PriceMatrix_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_PriceMatrix_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.pricematrix.php
-
- message: "#^Property NM_PriceMatrix_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_PriceMatrix_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.pricematrix.php
-
- message: "#^Property NM_PriceMatrix_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_PriceMatrix_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.pricematrix.php
-
- message: "#^Method NM_Quantities_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Quantities_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.quantities.php
-
- message: "#^Method NM_Quantities_wooproduct\\:\\:variation_layout\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Quantities_wooproduct\:\:variation_layout\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.quantities.php
-
- message: "#^Property NM_Quantities_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Quantities_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.quantities.php
-
- message: "#^Property NM_Quantities_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Quantities_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.quantities.php
-
- message: "#^Property NM_Quantities_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Quantities_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.quantities.php
-
- message: "#^Property NM_Quantities_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Quantities_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.quantities.php
-
- message: "#^Method NM_Radio_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Radio_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.radio.php
-
- message: "#^Property NM_Radio_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Radio_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.radio.php
-
- message: "#^Property NM_Radio_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Radio_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.radio.php
-
- message: "#^Property NM_Radio_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Radio_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.radio.php
-
- message: "#^Property NM_Radio_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Radio_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.radio.php
-
- message: "#^Method NM_Section_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Section_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.section.php
-
- message: "#^Property NM_Section_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Section_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.section.php
-
- message: "#^Property NM_Section_wooproduct\\:\\:\\$is_section_stared has no type specified\\.$#"
+ message: '#^Property NM_Section_wooproduct\:\:\$is_section_stared has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.section.php
-
- message: "#^Property NM_Section_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Section_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.section.php
-
- message: "#^Property NM_Section_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Section_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.section.php
-
- message: "#^Property NM_Section_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Section_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.section.php
-
- message: "#^Method NM_Select_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Select_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.select.php
-
- message: "#^Property NM_Select_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Select_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.select.php
-
- message: "#^Property NM_Select_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Select_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.select.php
-
- message: "#^Property NM_Select_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Select_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.select.php
-
- message: "#^Property NM_Select_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Select_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.select.php
-
- message: "#^Method NM_Text_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Text_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.text.php
-
- message: "#^Property NM_Text_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Text_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.text.php
-
- message: "#^Property NM_Text_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Text_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.text.php
-
- message: "#^Property NM_Text_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Text_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.text.php
-
- message: "#^Property NM_Text_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Text_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.text.php
-
- message: "#^Method NM_Textarea_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Textarea_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.textarea.php
-
- message: "#^Property NM_Textarea_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Textarea_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.textarea.php
-
- message: "#^Property NM_Textarea_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Textarea_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.textarea.php
-
- message: "#^Property NM_Textarea_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Textarea_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.textarea.php
-
- message: "#^Property NM_Textarea_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Textarea_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.textarea.php
-
- message: "#^Method NM_Timezone_wooproduct\\:\\:get_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Timezone_wooproduct\:\:get_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/inputs/input.timezone.php
-
- message: "#^Property NM_Timezone_wooproduct\\:\\:\\$desc has no type specified\\.$#"
+ message: '#^Property NM_Timezone_wooproduct\:\:\$desc has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.timezone.php
-
- message: "#^Property NM_Timezone_wooproduct\\:\\:\\$plugin_meta has no type specified\\.$#"
+ message: '#^Property NM_Timezone_wooproduct\:\:\$plugin_meta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.timezone.php
-
- message: "#^Property NM_Timezone_wooproduct\\:\\:\\$settings has no type specified\\.$#"
+ message: '#^Property NM_Timezone_wooproduct\:\:\$settings has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.timezone.php
-
- message: "#^Property NM_Timezone_wooproduct\\:\\:\\$title has no type specified\\.$#"
+ message: '#^Property NM_Timezone_wooproduct\:\:\$title has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/inputs/input.timezone.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_ELEMENTOR\\:\\:init\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_ELEMENTOR\:\:init\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_ELEMENTOR\\:\\:init_widgets\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_ELEMENTOR\:\:init_widgets\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_ELEMENTOR\\:\\:instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_ELEMENTOR\:\:instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_ELEMENTOR\\:\\:is_compatible\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_ELEMENTOR\:\:is_compatible\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_ELEMENTOR\\:\\:load\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_ELEMENTOR\:\:load\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_ELEMENTOR\\:\\:widget_styles\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_ELEMENTOR\:\:widget_styles\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Property PPOM_ELEMENTOR\\:\\:\\$_instance has no type specified\\.$#"
+ message: '#^Property PPOM_ELEMENTOR\:\:\$_instance has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/integrations/elementor/elementor.class.php
-
- message: "#^Method PPOM_Elementor_Shortcode_Widget\\:\\:_register_controls\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Elementor_Shortcode_Widget\:\:_register_controls\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/shortcode-widget.php
-
- message: "#^Method PPOM_Elementor_Shortcode_Widget\\:\\:get_categories\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Elementor_Shortcode_Widget\:\:get_categories\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/integrations/elementor/shortcode-widget.php
-
- message: "#^Method PPOM_Elementor_Shortcode_Widget\\:\\:render\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Elementor_Shortcode_Widget\:\:render\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/integrations/elementor/shortcode-widget.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:__construct\\(\\) has parameter \\$input_meta with no type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:__construct\(\) has parameter \$input_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:__construct\\(\\) has parameter \\$input_type with no type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:__construct\(\) has parameter \$input_type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:data_name\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:data_name\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:desc\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:desc\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:field_label\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:field_label\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:input_classes_array\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:input_classes_array\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:options\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:required\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:required\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:title\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:title\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Method PPOM_Legacy_InputManager\\:\\:width\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Legacy_InputManager\:\:width\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Property PPOM_Legacy_InputManager\\:\\:\\$input_meta type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_Legacy_InputManager\:\:\$input_meta type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/legacy-meta.class.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
+ message: '#^Cannot call method has_cap\(\) on WP_Role\|null\.$#'
+ identifier: method.nonObject
+ count: 1
+ path: classes/plugin.class.php
+
+ -
+ message: '#^Cannot call method remove_cap\(\) on WP_Role\|null\.$#'
+ identifier: method.nonObject
+ count: 2
+ path: classes/plugin.class.php
+
+ -
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: classes/plugin.class.php
-
- message: "#^Filter callback return statement is missing\\.$#"
+ message: '#^Filter callback return statement is missing\.$#'
+ identifier: return.missing
count: 1
path: classes/plugin.class.php
-
- message: "#^If condition is always true\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 3
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:activate_plugin\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:activate_plugin\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: classes/plugin.class.php
+
+ -
+ message: '#^Method NM_PersonalizedProduct\:\:add_ppom_meta_panel\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:add_ppom_meta_panel\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:add_ppom_meta_tabs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:add_ppom_meta_tabs\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:add_ppom_meta_tabs\(\) has parameter \$default_tabs with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:add_ppom_meta_tabs\\(\\) has parameter \\$default_tabs with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:clone_product_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:clone_product_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:clone_product_meta\(\) has parameter \$meta_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:clone_product_meta\\(\\) has parameter \\$meta_id with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:deactivate_plugin\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:deactivate_plugin\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:duplicate_product_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:duplicate_product_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:duplicate_product_meta\(\) has parameter \$duplicate with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:duplicate_product_meta\\(\\) has parameter \\$duplicate with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:duplicate_product_meta\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:duplicate_product_meta\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:get_all_inputs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:get_all_inputs\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:get_license_category\(\) has parameter \$license_plan with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:get_license_category\\(\\) has parameter \\$license_plan with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:get_product_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:get_product_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:get_product_meta\(\) has parameter \$meta_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:get_product_meta\\(\\) has parameter \\$meta_id with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:get_product_meta_all\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:get_product_meta_all\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:input_classes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:input_classes\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:input_classes\(\) has parameter \$classes with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:input_classes\\(\\) has parameter \\$classes with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:input_classes\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:input_classes\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:loop_add_to_cart_text\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:loop_add_to_cart_text\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:loop_add_to_cart_text\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:loop_add_to_cart_text\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:loop_add_to_cart_text\(\) has parameter \$text with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:loop_add_to_cart_text\\(\\) has parameter \\$text with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:loop_add_to_cart_url\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:loop_add_to_cart_url\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:loop_add_to_cart_url\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:loop_add_to_cart_url\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:loop_add_to_cart_url\(\) has parameter \$url with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:loop_add_to_cart_url\\(\\) has parameter \\$url with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:nm_add_bulk_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:nm_add_bulk_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:nm_add_meta_notices\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:nm_add_meta_notices\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:nm_meta_bulk_action\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:nm_meta_bulk_action\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:ppom_attach_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:ppom_attach_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:ppom_decode_entities\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:ppom_decode_entities\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:ppom_decode_entities\(\) has parameter \$arr with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:ppom_decode_entities\\(\\) has parameter \\$arr with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:ppom_export_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:ppom_export_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:ppom_free_inputs\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:ppom_free_inputs\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:ppom_install_demo_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:ppom_install_demo_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:product_supports\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:product_supports\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:product_supports\(\) has parameter \$feature with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:product_supports\\(\\) has parameter \\$feature with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:product_supports\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:product_supports\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:product_supports\(\) has parameter \$support with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:product_supports\\(\\) has parameter \\$support with no type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:remove_ppom_menu_permission\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:remove_ppom_menu_permission\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:set_ppom_menu_permission\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:set_ppom_menu_permission\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:show_tooltip\(\) has parameter \$meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:show_tooltip\\(\\) has parameter \\$meta with no value type specified in iterable type array\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:show_wc_custom_message\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:show_wc_custom_message\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_PersonalizedProduct\:\:upgrade_database\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/plugin.class.php
-
- message: "#^Method NM_PersonalizedProduct\\:\\:upgrade_database\\(\\) has no return type specified\\.$#"
+ message: '#^PHPDoc tag @param has invalid value \(number Plan ID\.\)\: Unexpected token "Plan", expected variable at offset 79 on line 4$#'
+ identifier: phpDoc.parseError
count: 1
path: classes/plugin.class.php
-
- message: "#^PHPDoc tag @param has invalid value \\(number Plan ID\\.\\)\\: Unexpected token \"Plan\", expected variable at offset 79$#"
+ message: '#^Parameter \#1 \$location of function wp_redirect expects string, string\|false given\.$#'
+ identifier: argument.type
+ count: 2
+ path: classes/plugin.class.php
+
+ -
+ message: '#^Parameter \#1 \$post of function get_permalink expects int\|WP_Post, int\|string given\.$#'
+ identifier: argument.type
+ count: 2
+ path: classes/plugin.class.php
+
+ -
+ message: '#^Parameter \#2 \$callback of function add_filter expects callable\(\)\: mixed, ''ppom_adjust_price…'' given\.$#'
+ identifier: argument.type
count: 1
path: classes/plugin.class.php
-
- message: "#^Parameter \\#2 \\$callback of function add_filter expects callable\\(\\)\\: mixed, 'ppom_adjust_price…' given\\.$#"
+ message: '#^Parameter \#2 \$callback of function add_shortcode expects callable\(array\, string\|null, string\)\: string, ''ppom_hooks_render…'' given\.$#'
+ identifier: argument.type
count: 1
path: classes/plugin.class.php
-
- message: "#^Parameter \\#2 \\$version2 of function version_compare expects string, float given\\.$#"
+ message: '#^Parameter \#2 \$version2 of function version_compare expects string, float given\.$#'
+ identifier: argument.type
count: 2
path: classes/plugin.class.php
-
- message: "#^Property NM_PersonalizedProduct\\:\\:\\$inputs has no type specified\\.$#"
+ message: '#^Property NM_PersonalizedProduct\:\:\$inputs has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/plugin.class.php
-
- message: "#^Property NM_PersonalizedProduct\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property NM_PersonalizedProduct\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/plugin.class.php
-
- message: "#^Property NM_PersonalizedProduct\\:\\:\\$tbl_productmeta has no type specified\\.$#"
+ message: '#^Property NM_PersonalizedProduct\:\:\$tbl_productmeta has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/plugin.class.php
-
- message: "#^Cannot access property \\$dynamic_price_display on array\\.$#"
+ message: '#^Argument of an invalid type array\\|WP_Error supplied for foreach, only iterables are supported\.$#'
+ identifier: foreach.nonIterable
count: 1
path: classes/ppom.class.php
-
- message: "#^Cannot access property \\$productmeta_js on array\\.$#"
+ message: '#^Cannot access property \$dynamic_price_display on array\|object\.$#'
+ identifier: property.nonObject
count: 1
path: classes/ppom.class.php
-
- message: "#^Cannot access property \\$productmeta_name on array\\.$#"
+ message: '#^Cannot access property \$productmeta_name on array\|object\.$#'
+ identifier: property.nonObject
count: 1
path: classes/ppom.class.php
-
- message: "#^Cannot access property \\$productmeta_style on array\\.$#"
+ message: '#^Comparison operation "\<" between 0 and int\<1, max\> is always true\.$#'
+ identifier: smaller.alwaysTrue
count: 1
path: classes/ppom.class.php
-
- message: "#^Comparison operation \"\\<\" between 0 and int\\<1, max\\> is always true\\.$#"
+ message: '#^Method PPOM_Meta\:\:ajax_validation_enabled\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:__construct\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:all_ppom_with_categories\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:ajax_validation_enabled\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_fields\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:all_ppom_with_categories\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_fields_by_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_fields\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_fields_by_id\(\) has parameter \$ppom_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_fields_by_id\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_fields_by_id\\(\\) has parameter \\$ppom_id with no type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_instance\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_meta_id\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_instance\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_settings_by_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_meta_id\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:get_settings_by_id\(\) has parameter \$meta_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_meta_id\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:has_multiple_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_settings_by_id\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:has_unique_datanames\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:get_settings_by_id\\(\\) has parameter \\$meta_id with no type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:inline_css\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:has_multiple_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:inline_js\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:has_unique_datanames\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:is_exists\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:inline_css\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:meta_title\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:inline_js\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:ppom_has_category_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:is_exists\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:ppom_has_category_meta\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:meta_title\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:price_display\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:ppom_has_category_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Meta\:\:single_meta_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:ppom_has_category_meta\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Parameter \#1 \$post_id of function get_post_meta expects int, int\|null given\.$#'
+ identifier: argument.type
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:price_display\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#2 \$haystack of function in_array expects array, list\\|false given\.$#'
+ identifier: argument.type
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:settings\\(\\) has no return type specified\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$category_meta type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/ppom.class.php
-
- message: "#^Method PPOM_Meta\\:\\:single_meta_id\\(\\) has no return type specified\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$fields \(array\) does not accept array\|null\.$#'
+ identifier: assign.propertyType
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$category_meta type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$fields type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$fields type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$meta_id has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$meta_id has no type specified\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$ppom_categories_and_tags_row type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$ppom_categories_and_tags_row type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$ppom_settings \(array\|object\) does not accept object\|null\.$#'
+ identifier: assign.propertyType
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$ppom_settings type has no value type specified in iterable type array\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$ppom_settings type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$product_id has no type specified\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$product_id has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/ppom.class.php
-
- message: "#^Property PPOM_Meta\\:\\:\\$wc_product has no type specified\\.$#"
+ message: '#^Property PPOM_Meta\:\:\$wc_product has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/ppom.class.php
-
- message: "#^Constant PPOM_URL not found\\.$#"
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_script\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_script\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_script\\(\\) has parameter \\$deps with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_script\(\) has parameter \$deps with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_script\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_script\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_script\\(\\) has parameter \\$in_footer with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_script\(\) has parameter \$in_footer with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_script\\(\\) has parameter \\$path with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_script\(\) has parameter \$path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_script\\(\\) has parameter \\$version with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_script\(\) has parameter \$version with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_style\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_style\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_style\\(\\) has parameter \\$deps with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_style\(\) has parameter \$deps with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_style\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_style\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_style\\(\\) has parameter \\$media with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_style\(\) has parameter \$media with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_style\\(\\) has parameter \\$path with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_style\(\) has parameter \$path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:enqueue_style\\(\\) has parameter \\$version with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:enqueue_style\(\) has parameter \$version with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:get_url\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:get_url\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:get_version\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:get_version\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:init\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:init\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:inline_script\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:inline_script\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:inline_script\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:inline_script\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:inline_script\\(\\) has parameter \\$js with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:inline_script\(\) has parameter \$js with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:inline_style\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:inline_style\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:inline_style\\(\\) has parameter \\$css with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:inline_style\(\) has parameter \$css with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:inline_style\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:inline_style\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:localize_script\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:localize_script\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:localize_script\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:localize_script\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:localize_script\\(\\) has parameter \\$js_var_data with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:localize_script\(\) has parameter \$js_var_data with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:localize_script\\(\\) has parameter \\$js_var_name with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:localize_script\(\) has parameter \$js_var_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_script\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_script\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_script\\(\\) has parameter \\$deps with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_script\(\) has parameter \$deps with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_script\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_script\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_script\\(\\) has parameter \\$in_footer with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_script\(\) has parameter \$in_footer with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_script\\(\\) has parameter \\$path with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_script\(\) has parameter \$path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_script\\(\\) has parameter \\$version with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_script\(\) has parameter \$version with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_scripts\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_scripts\\(\\) has parameter \\$register_scripts with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_scripts\(\) has parameter \$register_scripts with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_style\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_style\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_style\\(\\) has parameter \\$deps with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_style\(\) has parameter \$deps with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_style\\(\\) has parameter \\$handle with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_style\(\) has parameter \$handle with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_style\\(\\) has parameter \\$media with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_style\(\) has parameter \$media with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_style\\(\\) has parameter \\$path with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_style\(\) has parameter \$path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_style\\(\\) has parameter \\$version with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_style\(\) has parameter \$version with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_styles\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_styles\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_SCRIPTS\\:\\:register_styles\\(\\) has parameter \\$register_styles with no type specified\\.$#"
+ message: '#^Method PPOM_SCRIPTS\:\:register_styles\(\) has parameter \$register_styles with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/scripts.class.php
-
- message: "#^Property PPOM_SCRIPTS\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property PPOM_SCRIPTS\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/scripts.class.php
-
- message: "#^Property PPOM_SCRIPTS\\:\\:\\$scripts_url has unknown class URL as its type\\.$#"
+ message: '#^Property PPOM_SCRIPTS\:\:\$scripts_url has unknown class URL as its type\.$#'
+ identifier: class.notFound
count: 1
path: classes/scripts.class.php
-
- message: "#^Static method PPOM_SCRIPTS\\:\\:register_style\\(\\) invoked with 6 parameters, 2\\-5 required\\.$#"
+ message: '#^Static method PPOM_SCRIPTS\:\:register_style\(\) invoked with 6 parameters, 2\-5 required\.$#'
+ identifier: arguments.count
count: 1
path: classes/scripts.class.php
-
- message: "#^Undefined variable\\: \\$has_rtl$#"
+ message: '#^Undefined variable\: \$has_rtl$#'
+ identifier: variable.undefined
count: 1
path: classes/scripts.class.php
-
- message: "#^Method PPOM_Survey\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Survey\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/survey.class.php
-
- message: "#^Method PPOM_Survey\\:\\:get_survey_metadata\\(\\) has parameter \\$data with no type specified\\.$#"
+ message: '#^Method PPOM_Survey\:\:get_survey_metadata\(\) has parameter \$data with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/survey.class.php
-
- message: "#^Method PPOM_Survey\\:\\:get_survey_metadata\\(\\) has parameter \\$page_slug with no type specified\\.$#"
+ message: '#^Method PPOM_Survey\:\:get_survey_metadata\(\) has parameter \$page_slug with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: classes/survey.class.php
-
- message: "#^Method PPOM_Survey\\:\\:get_survey_metadata\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Method PPOM_Survey\:\:get_survey_metadata\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: classes/survey.class.php
-
- message: "#^Method PPOM_Survey\\:\\:init\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Survey\:\:init\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: classes/survey.class.php
-
- message: "#^PHPDoc tag @var has invalid value \\(\\[PPOM_Survey\\]\\)\\: Unexpected token \"\\[\", expected type at offset 56$#"
+ message: '#^PHPDoc tag @var has invalid value \(\[PPOM_Survey\]\)\: Unexpected token "\[", expected type at offset 56 on line 4$#'
+ identifier: phpDoc.parseError
count: 1
path: classes/survey.class.php
-
- message: "#^Property PPOM_Survey\\:\\:\\$instance has no type specified\\.$#"
+ message: '#^Property PPOM_Survey\:\:\$instance has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: classes/survey.class.php
-
- message: "#^Access to an undefined property object\\:\\:\\$height\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Cannot access offset 'class' on true\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Cannot access offset 'message' on true\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_add_black_friday_data\\(\\) has parameter \\$configs with no value type specified in iterable type array\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_add_black_friday_data\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_admin_bar_menu\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_admin_delete_meta\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_admin_delete_selected_meta\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_admin_process_product_meta\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_admin_process_product_meta\\(\\) has parameter \\$post_id with no type specified\\.$#"
- count: 1
- path: inc/admin.php
-
- -
- message: "#^Function ppom_admin_product_meta_column\\(\\) has no return type specified\\.$#"
+ message: '#^Access to an undefined property object\:\:\$height\.$#'
+ identifier: property.notFound
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_product_meta_column\\(\\) has parameter \\$column with no type specified\\.$#"
+ message: '#^Cannot access offset ''class'' on true\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_product_meta_column\\(\\) has parameter \\$post_id with no type specified\\.$#"
+ message: '#^Cannot access offset ''message'' on true\.$#'
+ identifier: offsetAccess.nonOffsetAccessible
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_product_meta_metabox\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_add_black_friday_data\(\) has parameter \$configs with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_save_form_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_add_black_friday_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_show_notices\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_admin_product_meta_column\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_show_product_meta\\(\\) has parameter \\$columns with no value type specified in iterable type array\\.$#"
+ message: '#^Function ppom_admin_product_meta_column\(\) has parameter \$column with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_show_product_meta\\(\\) return type has no value type specified in iterable type array\\.$#"
+ message: '#^Function ppom_admin_product_meta_column\(\) has parameter \$post_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_simplify_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_admin_product_meta_metabox\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_simplify_meta\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_admin_show_notices\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_update_form_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_admin_show_product_meta\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_update_ppom_meta_only\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_admin_show_product_meta\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_update_ppom_meta_only\\(\\) has parameter \\$ppom_id with no type specified\\.$#"
+ message: '#^Function ppom_admin_simplify_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_admin_update_ppom_meta_only\\(\\) has parameter \\$ppom_meta with no type specified\\.$#"
+ message: '#^Function ppom_admin_simplify_meta\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_meta_list\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_admin_update_ppom_meta_only\(\) has parameter \$ppom_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/admin.php
-
- message: "#^Function ppom_meta_list\\(\\) has parameter \\$post with no type specified\\.$#"
+ message: '#^Parameter \#1 \$url of function esc_url_raw expects string, string\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/admin.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: inc/arrays.php
-
- message: "#^Constant PPOM_URL not found\\.$#"
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
count: 3
path: inc/arrays.php
-
- message: "#^Constant PPOM_WP_PLUGIN_DIR not found\\.$#"
+ message: '#^Constant PPOM_WP_PLUGIN_DIR not found\.$#'
+ identifier: constant.notFound
count: 3
path: inc/arrays.php
-
- message: "#^Function ppom_array_all_inputs\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_array_all_inputs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_addons_details\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_array_get_addons_details\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_js_input_vars\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_array_get_js_input_vars\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_js_input_vars\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Function ppom_array_get_js_input_vars\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_js_input_vars\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_array_get_js_input_vars\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_timezone_list\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_array_get_timezone_list\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_timezone_list\\(\\) has parameter \\$selected_regions with no type specified\\.$#"
+ message: '#^Function ppom_array_get_timezone_list\(\) has parameter \$selected_regions with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_get_timezone_list\\(\\) has parameter \\$show_time with no type specified\\.$#"
+ message: '#^Function ppom_array_get_timezone_list\(\) has parameter \$show_time with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_array_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_array_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_field_visibility_options\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_field_visibility_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_get_input_cols\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_input_cols\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_get_plugin_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_plugin_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_tax_label_display\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_tax_label_display\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/arrays.php
-
- message: "#^Parameter \\#1 \\$datetime of class DateTime constructor expects string, null given\\.$#"
+ message: '#^Parameter \#1 \$datetime of class DateTime constructor expects string, null given\.$#'
+ identifier: argument.type
count: 1
path: inc/arrays.php
-
- message: "#^Undefined variable\\: \\$ppom_id$#"
+ message: '#^Undefined variable\: \$ppom_id$#'
+ identifier: variable.undefined
count: 2
path: inc/arrays.php
-
- message: "#^Variable \\$ppom_id in empty\\(\\) is never defined\\.$#"
+ message: '#^Variable \$ppom_id in empty\(\) is never defined\.$#'
+ identifier: empty.variable
count: 1
path: inc/arrays.php
-
- message: "#^Function ppom_has_product_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_has_product_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/deprecated.php
-
- message: "#^Function ppom_has_product_meta\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_has_product_meta\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/deprecated.php
-
- message: "#^Constant PPOM_URL not found\\.$#"
+ message: '#^Cannot use array destructuring on array\\|false\.$#'
+ identifier: offsetAccess.nonArray
count: 2
path: inc/files.php
-
- message: "#^Function ppom_create_image_thumb\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
+ count: 2
path: inc/files.php
-
- message: "#^Function ppom_create_image_thumb\\(\\) has parameter \\$file_path with no type specified\\.$#"
+ message: '#^Function ppom_create_image_thumb\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_image_thumb\\(\\) has parameter \\$image_name with no type specified\\.$#"
+ message: '#^Function ppom_create_image_thumb\(\) has parameter \$file_path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_image_thumb\\(\\) has parameter \\$thumb_size with no type specified\\.$#"
+ message: '#^Function ppom_create_image_thumb\(\) has parameter \$image_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_thumb_for_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_create_image_thumb\(\) has parameter \$thumb_size with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_thumb_for_meta\\(\\) has parameter \\$cropped with no type specified\\.$#"
+ message: '#^Function ppom_create_thumb_for_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_thumb_for_meta\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Function ppom_create_thumb_for_meta\(\) has parameter \$cropped with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_thumb_for_meta\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_create_thumb_for_meta\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_create_thumb_for_meta\\(\\) has parameter \\$size with no type specified\\.$#"
+ message: '#^Function ppom_create_thumb_for_meta\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_delete_file\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_create_thumb_for_meta\(\) has parameter \$size with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_file_get_name\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_file_get_name\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_file_get_name\\(\\) has parameter \\$cart_item with no type specified\\.$#"
+ message: '#^Function ppom_file_get_name\(\) has parameter \$cart_item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_file_get_name\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Function ppom_file_get_name\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_file_get_name\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_file_get_name\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_files_removed_unused_images\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_files_removed_unused_images\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_files_setup_get_directory\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Function ppom_files_setup_get_directory\(\) should return string\|null but return statement is missing\.$#'
+ identifier: return.missing
+ count: 3
path: inc/files.php
-
- message: "#^Function ppom_files_setup_get_directory\\(\\) has parameter \\$sub_dir with no type specified\\.$#"
+ message: '#^Function ppom_files_uploaded_days_count\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_files_uploaded_days_count\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_files_uploaded_days_count\(\) has parameter \$date1 with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_files_uploaded_days_count\\(\\) has parameter \\$date1 with no type specified\\.$#"
+ message: '#^Function ppom_files_uploaded_days_count\(\) has parameter \$date2 with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_files_uploaded_days_count\\(\\) has parameter \\$date2 with no type specified\\.$#"
+ message: '#^Function ppom_get_croppie_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_croppie_options\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_croppie_options\(\) has parameter \$settings with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_croppie_options\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Function ppom_get_dir_path\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_dir_path\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_dir_path\(\) has parameter \$sub_dir with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_dir_path\\(\\) has parameter \\$sub_dir with no type specified\\.$#"
+ message: '#^Function ppom_get_dir_url\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_dir_url\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_dir_url\(\) has parameter \$thumb with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_dir_url\\(\\) has parameter \\$thumb with no type specified\\.$#"
+ message: '#^Function ppom_get_viewport_settings\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_file_download_url\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_viewport_settings\(\) has parameter \$settings with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_file_download_url\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Function ppom_is_file_image\(\) should return bool but returns string\|false\.$#'
+ identifier: return.type
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_file_download_url\\(\\) has parameter \\$order_id with no type specified\\.$#"
+ message: '#^Function ppom_save_data_url_to_image\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_file_download_url\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_save_data_url_to_image\(\) has parameter \$data with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_viewport_settings\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_save_data_url_to_image\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_get_viewport_settings\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Function ppom_uploaded_file_preview\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_save_data_url_to_image\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_uploaded_file_preview\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_save_data_url_to_image\\(\\) has parameter \\$data with no type specified\\.$#"
+ message: '#^Function ppom_uploaded_file_preview\(\) has parameter \$settings with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_save_data_url_to_image\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Left side of && is always true\.$#'
+ identifier: booleanAnd.leftAlwaysTrue
count: 1
path: inc/files.php
-
- message: "#^Function ppom_upload_file\\(\\) has no return type specified\\.$#"
+ message: '#^Method UploadFileErrors\:\:get_message_response\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/files.php
-
- message: "#^Function ppom_uploaded_file_preview\\(\\) has no return type specified\\.$#"
+ message: '#^Method UploadFileErrors\:\:get_message_response\(\) has parameter \$error_slug with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/files.php
-
- message: "#^Function ppom_uploaded_file_preview\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Parameter \#1 \$dir_handle of function closedir expects resource, resource\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/files.php
-
- message: "#^Function ppom_uploaded_file_preview\\(\\) has parameter \\$settings with no type specified\\.$#"
+ message: '#^Parameter \#1 \$dir_handle of function readdir expects resource, resource\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/files.php
-
- message: "#^Left side of && is always true\\.$#"
+ message: '#^Parameter \#2 \$start of function substr expects int, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/files.php
-
- message: "#^Method UploadFileErrors\\:\\:get_message_response\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#2 \$timestamp of function date expects int, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/files.php
-
- message: "#^Method UploadFileErrors\\:\\:get_message_response\\(\\) has parameter \\$error_slug with no type specified\\.$#"
+ message: '#^Parameter \#3 \$length of function substr expects int, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/files.php
-
- message: "#^Undefined variable\\: \\$viewport$#"
+ message: '#^Undefined variable\: \$viewport$#'
+ identifier: variable.undefined
count: 2
path: inc/files.php
-
- message: "#^Variable \\$dir_handle might not be defined\\.$#"
+ message: '#^Variable \$dir_handle might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: inc/files.php
-
- message: "#^Variable \\$viewport in empty\\(\\) is never defined\\.$#"
+ message: '#^Variable \$viewport in empty\(\) is never defined\.$#'
+ identifier: empty.variable
count: 2
path: inc/files.php
-
- message: "#^Call to function is_null\\(\\) with mixed will always evaluate to false\\.$#"
+ message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
count: 1
path: inc/functions.php
-
- message: "#^Call to function method_exists\\(\\) with 'WWP_Wholesale_Prices' and 'get_product…' will always evaluate to false\\.$#"
+ message: '#^Call to function is_array\(\) with list will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
count: 1
path: inc/functions.php
-
- message: "#^Call to static method getInstance\\(\\) on an unknown class WWP_Wholesale_Roles\\.$#"
+ message: '#^Call to function is_null\(\) with mixed will always evaluate to false\.$#'
+ identifier: function.impossibleType
count: 1
path: inc/functions.php
-
- message: "#^Call to static method getUserRoles\\(\\) on an unknown class WWP_Wholesale_Roles\\.$#"
+ message: '#^Call to function method_exists\(\) with ''WWP_Wholesale_Prices'' and ''get_product…'' will always evaluate to false\.$#'
+ identifier: function.impossibleType
count: 1
path: inc/functions.php
-
- message: "#^Call to static method get_product_wholesale_price_on_shop_v3\\(\\) on an unknown class WWP_Wholesale_Prices\\.$#"
+ message: '#^Call to static method getInstance\(\) on an unknown class WWP_Wholesale_Roles\.$#'
+ identifier: class.notFound
count: 1
path: inc/functions.php
-
- message: "#^Call to static method wwp_get_product_id\\(\\) on an unknown class WWP_Helper_Functions\\.$#"
+ message: '#^Call to static method getUserRoles\(\) on an unknown class WWP_Wholesale_Roles\.$#'
+ identifier: class.notFound
count: 1
path: inc/functions.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
- count: 2
+ message: '#^Call to static method get_product_wholesale_price_on_shop_v3\(\) on an unknown class WWP_Wholesale_Prices\.$#'
+ identifier: class.notFound
+ count: 1
path: inc/functions.php
-
- message: "#^Constant PPOM_URL not found\\.$#"
- count: 2
+ message: '#^Call to static method wwp_get_product_id\(\) on an unknown class WWP_Helper_Functions\.$#'
+ identifier: class.notFound
+ count: 1
path: inc/functions.php
-
- message: "#^Constant WOOCOMMERCE_VERSION not found\\.$#"
+ message: '#^Cannot assign offset ''images''\|''options'' to array\|string\.$#'
+ identifier: offsetAssign.dimType
count: 1
path: inc/functions.php
-
- message: "#^Else branch is unreachable because ternary operator condition is always true\\.$#"
+ message: '#^Cannot call method get_price\(\) on WC_Product\|false\|null\.$#'
+ identifier: method.nonObject
count: 1
path: inc/functions.php
-
- message: "#^Function nm_get_order_id\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
+ count: 2
path: inc/functions.php
-
- message: "#^Function nm_get_order_id\\(\\) has parameter \\$order with no type specified\\.$#"
- count: 1
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
+ count: 2
path: inc/functions.php
-
- message: "#^Function nm_wpml_register\\(\\) has no return type specified\\.$#"
+ message: '#^Constant WOOCOMMERCE_VERSION not found\.$#'
+ identifier: constant.notFound
count: 1
path: inc/functions.php
-
- message: "#^Function nm_wpml_register\\(\\) has parameter \\$domain with no type specified\\.$#"
+ message: '#^Function nm_get_order_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function nm_wpml_register\\(\\) has parameter \\$field_value with no type specified\\.$#"
+ message: '#^Function nm_get_order_id\(\) has parameter \$order with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_add_order_item_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function nm_wpml_register\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_add_order_item_meta\\(\\) has parameter \\$item_id with no type specified\\.$#"
+ message: '#^Function nm_wpml_register\(\) has parameter \$domain with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_add_order_item_meta\\(\\) has parameter \\$key with no type specified\\.$#"
+ message: '#^Function nm_wpml_register\(\) has parameter \$field_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_add_order_item_meta\\(\\) has parameter \\$val with no type specified\\.$#"
+ message: '#^Function ppom_add_order_item_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_attach_fields_to_product\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_add_order_item_meta\(\) has parameter \$item_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_attach_fields_to_product\\(\\) has parameter \\$ppom_meta_id with no type specified\\.$#"
+ message: '#^Function ppom_add_order_item_meta\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_attach_fields_to_product\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_add_order_item_meta\(\) has parameter \$val with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_convert_options_to_key_val\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_attach_fields_to_product\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_convert_options_to_key_val\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_attach_fields_to_product\(\) has parameter \$ppom_meta_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_convert_options_to_key_val\\(\\) has parameter \\$options with no type specified\\.$#"
+ message: '#^Function ppom_attach_fields_to_product\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_convert_options_to_key_val\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_convert_options_to_key_val\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_direct_access_not_allowed\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_convert_options_to_key_val\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_extract_matrix_by_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_convert_options_to_key_val\(\) has parameter \$options with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_extract_matrix_by_quantity\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_convert_options_to_key_val\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_extract_matrix_by_quantity\\(\\) has parameter \\$quantities_field with no type specified\\.$#"
+ message: '#^Function ppom_direct_access_not_allowed\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_extract_matrix_by_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_extract_matrix_by_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_field_has_stock\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_extract_matrix_by_quantity\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_field_has_stock\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_extract_matrix_by_quantity\(\) has parameter \$quantities_field with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_field_has_stock\\(\\) has parameter \\$value with no type specified\\.$#"
+ message: '#^Function ppom_extract_matrix_by_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_cart_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_field_has_stock\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_cart_meta\\(\\) has parameter \\$context with no type specified\\.$#"
+ message: '#^Function ppom_field_has_stock\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_cart_meta\\(\\) has parameter \\$ppom_cart_items with no type specified\\.$#"
+ message: '#^Function ppom_field_has_stock\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_cart_meta\\(\\) has parameter \\$ppom_meta_ids with no type specified\\.$#"
+ message: '#^Function ppom_generate_cart_meta\(\) has parameter \$ppom_cart_items with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_cart_meta\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_generate_cart_meta\(\) has parameter \$ppom_meta_ids with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_cart_meta\\(\\) has parameter \\$variation_id with no type specified\\.$#"
+ message: '#^Function ppom_generate_cart_meta\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_html_for_files\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_generate_html_for_files\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_html_for_files\\(\\) has parameter \\$file_names with no type specified\\.$#"
+ message: '#^Function ppom_generate_html_for_files\(\) has parameter \$file_names with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_html_for_files\\(\\) has parameter \\$input_type with no type specified\\.$#"
+ message: '#^Function ppom_generate_html_for_files\(\) has parameter \$input_type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_html_for_files\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_generate_html_for_files\(\) has parameter \$item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_html_for_images\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_generate_html_for_images\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_html_for_images\\(\\) has parameter \\$images with no type specified\\.$#"
+ message: '#^Function ppom_generate_html_for_images\(\) has parameter \$images with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_option_label\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_generate_option_label\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_option_label\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_generate_option_label\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_option_label\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_generate_option_label\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_generate_option_label\\(\\) has parameter \\$price with no type specified\\.$#"
+ message: '#^Function ppom_generate_option_label\(\) has parameter \$price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_all_editable_roles\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_all_editable_roles\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_cart_item_max_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_cart_item_max_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_cart_item_max_quantity\\(\\) has parameter \\$cart_item with no type specified\\.$#"
+ message: '#^Function ppom_get_cart_item_max_quantity\(\) has parameter \$cart_item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_conditional_data_attributes\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_conditional_data_attributes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_conditional_data_attributes\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_get_conditional_data_attributes\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_conditions_mode\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_conditions_mode\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_confirmed_dir_thumbs\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_confirmed_dir_thumbs\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_confirmed_dir_thumbs\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Function ppom_get_confirmed_dir_thumbs\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_confirmed_dir_thumbs\\(\\) has parameter \\$order_id with no type specified\\.$#"
+ message: '#^Function ppom_get_confirmed_dir_thumbs\(\) has parameter \$order_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_confirmed_dir_thumbs\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_get_confirmed_dir_thumbs\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_confirmed_dir_thumbs\\(\\) has parameter \\$thumb with no type specified\\.$#"
+ message: '#^Function ppom_get_confirmed_dir_thumbs\(\) has parameter \$thumb with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_current_user_role\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_current_user_role\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_date_formats\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_date_formats\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_editing_tools\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_editing_tools\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_editing_tools\\(\\) has parameter \\$editing_tools with no type specified\\.$#"
+ message: '#^Function ppom_get_editing_tools\(\) has parameter \$editing_tools with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_colum\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_field_colum\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_colum\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_get_field_colum\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_meta_by_dataname\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_field_meta_by_dataname\(\) has parameter \$ppom_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_meta_by_dataname\\(\\) has parameter \\$original_data_name with no type specified\\.$#"
+ message: '#^Function ppom_get_field_meta_by_dataname\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_meta_by_dataname\\(\\) has parameter \\$ppom_id with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_meta_by_dataname\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price\(\) has parameter \$field_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price\(\) has parameter \$option_label with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price_by_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price\\(\\) has parameter \\$option_label with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price_by_id\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price_by_id\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price_by_id\(\) has parameter \$ppom_meta_ids with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price_by_id\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_price_by_id\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price_by_id\\(\\) has parameter \\$ppom_meta_ids with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_weight_by_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_price_by_id\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_get_field_option_weight_by_id\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_weight_by_id\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_field_option_weight_by_id\(\) has parameter \$ppom_meta_ids with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_weight_by_id\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_get_filesize_in_kb\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_field_option_weight_by_id\\(\\) has parameter \\$ppom_meta_ids with no type specified\\.$#"
+ message: '#^Function ppom_get_filesize_in_kb\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_filesize_in_kb\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_option\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_filesize_in_kb\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Function ppom_get_option\(\) has parameter \$default_val with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_option\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_option\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_option\\(\\) has parameter \\$default_val with no type specified\\.$#"
+ message: '#^Function ppom_get_option_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_option\\(\\) has parameter \\$key with no type specified\\.$#"
+ message: '#^Function ppom_get_option_id\(\) has parameter \$field_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_option_id\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_option_id\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_option_id\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_get_price_including_tax\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_option_id\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_get_price_including_tax\(\) has parameter \$price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_including_tax\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_price_including_tax\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_including_tax\\(\\) has parameter \\$price with no type specified\\.$#"
+ message: '#^Function ppom_get_price_matrix_chunk\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_including_tax\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_get_price_matrix_chunk\(\) has parameter \$option_prices with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_matrix_chunk\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_price_matrix_chunk\(\) has parameter \$ppom_item_order_qty with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_matrix_chunk\\(\\) has parameter \\$option_prices with no type specified\\.$#"
+ message: '#^Function ppom_get_price_matrix_chunk\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_matrix_chunk\\(\\) has parameter \\$ppom_item_order_qty with no type specified\\.$#"
+ message: '#^Function ppom_get_price_mode\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_matrix_chunk\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_get_price_table_calculation\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_mode\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_price_table_location\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_table_calculation\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_pro_version\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_price_table_location\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_product_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_pro_version\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_product_id\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_id\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_product_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_id\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_get_product_price\(\) has parameter \$context with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_product_price\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_price\\(\\) has parameter \\$context with no type specified\\.$#"
+ message: '#^Function ppom_get_product_price\(\) has parameter \$variation_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_price\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_get_product_regular_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_price\\(\\) has parameter \\$variation_id with no type specified\\.$#"
+ message: '#^Function ppom_get_product_regular_price\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_regular_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_version\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_product_regular_price\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_has_field_by_type\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_get_version\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_has_field_by_type\(\) has parameter \$field_type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_has_field_by_type\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_has_field_by_type\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_has_field_by_type\\(\\) has parameter \\$field_type with no type specified\\.$#"
+ message: '#^Function ppom_has_posted_field_value\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_has_field_by_type\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_has_posted_field_value\(\) has parameter \$field with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_has_posted_field_value\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_has_posted_field_value\(\) has parameter \$posted_fields with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_has_posted_field_value\\(\\) has parameter \\$field with no type specified\\.$#"
+ message: '#^Function ppom_if_browser_is_ie\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_has_posted_field_value\\(\\) has parameter \\$posted_fields with no type specified\\.$#"
+ message: '#^Function ppom_is_api_enable\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_if_browser_is_ie\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_aviary_installed\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_api_enable\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_cart_quantity_updatable\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_aviary_installed\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_cart_quantity_updatable\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_cart_quantity_updatable\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_client_validation_enabled\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_cart_quantity_updatable\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_is_field_addon\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_client_validation_enabled\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_field_addon\(\) has parameter \$type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_addon\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_field_hidden_by_condition\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_addon\\(\\) has parameter \\$type with no type specified\\.$#"
+ message: '#^Function ppom_is_field_hidden_by_condition\(\) has parameter \$conditionally_hidden with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_hidden_by_condition\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_field_hidden_by_condition\(\) has parameter \$field_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_hidden_by_condition\\(\\) has parameter \\$conditionally_hidden with no type specified\\.$#"
+ message: '#^Function ppom_is_field_visible\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_hidden_by_condition\\(\\) has parameter \\$field_name with no type specified\\.$#"
+ message: '#^Function ppom_is_field_visible\(\) has parameter \$field with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_visible\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_legacy_mode\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_field_visible\\(\\) has parameter \\$field with no type specified\\.$#"
+ message: '#^Function ppom_is_mobile\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_legacy_mode\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_price_attached_with_fields\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_mobile\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_is_price_attached_with_fields\(\) has parameter \$fields_posted with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_price_attached_with_fields\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_load_bootstrap_css\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_is_price_attached_with_fields\\(\\) has parameter \\$fields_posted with no type specified\\.$#"
+ message: '#^Function ppom_load_file\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_bootstrap_css\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_load_file\(\) has parameter \$file_path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_file\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_load_file\(\) has parameter \$variables with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_file\\(\\) has parameter \\$file_path with no type specified\\.$#"
+ message: '#^Function ppom_load_fontawesome\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_file\\(\\) has parameter \\$variables with no type specified\\.$#"
+ message: '#^Function ppom_load_input_templates\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_fontawesome\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_load_input_templates\(\) has parameter \$template_path with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_input_templates\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_load_input_templates\(\) has parameter \$vars with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_input_templates\\(\\) has parameter \\$template_path with no type specified\\.$#"
+ message: '#^Function ppom_load_template\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_input_templates\\(\\) has parameter \\$vars with no type specified\\.$#"
+ message: '#^Function ppom_load_template\(\) has parameter \$file_name with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_template\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_load_template\(\) has parameter \$variables with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_template\\(\\) has parameter \\$file_name with no type specified\\.$#"
+ message: '#^Function ppom_make_meta_data\(\) has parameter \$cart_item with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_load_template\\(\\) has parameter \\$variables with no type specified\\.$#"
+ message: '#^Function ppom_make_meta_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_make_meta_data\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_meta_priced_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_make_meta_data\\(\\) has parameter \\$cart_item with no type specified\\.$#"
+ message: '#^Function ppom_meta_priced_options\(\) has parameter \$the_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_make_meta_data\\(\\) has parameter \\$context with no type specified\\.$#"
+ message: '#^Function ppom_option_has_stock\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_meta_priced_options\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_option_has_stock\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_meta_priced_options\\(\\) has parameter \\$the_meta with no type specified\\.$#"
+ message: '#^Function ppom_pa\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_option_has_stock\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_pa\(\) has parameter \$arr with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_option_has_stock\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_pa\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price\(\) has parameter \$price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_pa\\(\\) has parameter \\$arr with no type specified\\.$#"
+ message: '#^Function ppom_pro_is_installed\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_reset_cart_quantity_to_one\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_price\\(\\) has parameter \\$price with no type specified\\.$#"
+ message: '#^Function ppom_reset_cart_quantity_to_one\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_pro_is_installed\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_security_role\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_reset_cart_quantity_to_one\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_settings_link\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_reset_cart_quantity_to_one\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_settings_link\(\) has parameter \$links with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_security_role\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_settings_migrated\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_settings_link\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_translation_options\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_settings_link\\(\\) has parameter \\$links with no type specified\\.$#"
+ message: '#^Function ppom_translation_options\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_settings_migrated\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_wc_add_notice\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_translation_options\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_wc_add_notice\(\) has parameter \$string with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_translation_options\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_wc_add_notice\(\) has parameter \$type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_wc_add_notice\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_wpml_translate\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_wc_add_notice\\(\\) has parameter \\$string with no type specified\\.$#"
+ message: '#^Function ppom_wpml_translate\(\) has parameter \$domain with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_wc_add_notice\\(\\) has parameter \\$type with no type specified\\.$#"
+ message: '#^Function ppom_wpml_translate\(\) has parameter \$field_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_wpml_translate\\(\\) has no return type specified\\.$#"
+ message: '#^Offset ''images''\|''options'' might not exist on non\-empty\-array\|non\-falsy\-string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/functions.php
-
- message: "#^Function ppom_wpml_translate\\(\\) has parameter \\$domain with no type specified\\.$#"
- count: 1
+ message: '#^Offset ''options'' might not exist on non\-empty\-array\|non\-falsy\-string\.$#'
+ identifier: offsetAccess.notFound
+ count: 6
path: inc/functions.php
-
- message: "#^Function ppom_wpml_translate\\(\\) has parameter \\$field_value with no type specified\\.$#"
+ message: '#^Offset ''type'' might not exist on non\-empty\-array\|non\-falsy\-string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/functions.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int\\<0, max\\> given\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$product_id of function ppom_get_field_meta_by_dataname expects int, null given\.$#'
+ identifier: argument.type
+ count: 3
path: inc/functions.php
-
- message: "#^Parameter \\#2 \\$version2 of function version_compare expects string, float given\\.$#"
+ message: '#^Parameter \#1 \$str of function strtolower expects string, bool\|float\|int\|string given\.$#'
+ identifier: argument.type
count: 1
path: inc/functions.php
-
- message: "#^Undefined variable\\: \\$cart_item$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<0, max\> given\.$#'
+ identifier: argument.type
count: 1
path: inc/functions.php
-
- message: "#^Unreachable statement \\- code above always terminates\\.$#"
+ message: '#^Parameter \#2 \$pieces of function implode expects array, array\\|string given\.$#'
+ identifier: argument.type
count: 1
path: inc/functions.php
-
- message: "#^Variable \\$addon_type in isset\\(\\) is never defined\\.$#"
+ message: '#^Parameter \#2 \$version2 of function version_compare expects string, float given\.$#'
+ identifier: argument.type
count: 1
path: inc/functions.php
-
- message: "#^Variable \\$cart_item in empty\\(\\) is never defined\\.$#"
+ message: '#^Parameter \#3 \$length of function substr expects int, int\<0, max\>\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/functions.php
-
- message: "#^Variable \\$product_id might not be defined\\.$#"
+ message: '#^Undefined variable\: \$cart_item$#'
+ identifier: variable.undefined
count: 1
path: inc/functions.php
-
- message: "#^Access to an undefined property object\\:\\:\\$default_currency\\.$#"
+ message: '#^Unreachable statement \- code above always terminates\.$#'
+ identifier: deadCode.unreachable
count: 1
- path: inc/hooks.php
+ path: inc/functions.php
-
- message: "#^Access to an undefined property object\\:\\:\\$is_multiple_allowed\\.$#"
+ message: '#^Variable \$addon_type in isset\(\) is never defined\.$#'
+ identifier: isset.variable
count: 1
- path: inc/hooks.php
+ path: inc/functions.php
-
- message: "#^Call to an undefined method WC_Order_Item\\:\\:get_product_id\\(\\)\\.$#"
+ message: '#^Variable \$cart_item in empty\(\) is never defined\.$#'
+ identifier: empty.variable
count: 1
- path: inc/hooks.php
+ path: inc/functions.php
-
- message: "#^Call to an undefined method object\\:\\:back_convert\\(\\)\\.$#"
+ message: '#^Variable \$product_id might not be defined\.$#'
+ identifier: variable.undefined
count: 1
- path: inc/hooks.php
+ path: inc/functions.php
-
- message: "#^Call to an undefined method object\\:\\:get_currencies\\(\\)\\.$#"
+ message: '#^Access to an undefined property object\:\:\$default_currency\.$#'
+ identifier: property.notFound
count: 1
path: inc/hooks.php
-
- message: "#^Constant PPOM_URL not found\\.$#"
- count: 23
+ message: '#^Access to an undefined property object\:\:\$is_multiple_allowed\.$#'
+ identifier: property.notFound
+ count: 1
path: inc/hooks.php
-
- message: "#^Function PPOM_FP not found\\.$#"
+ message: '#^Call to an undefined method WC_Order_Item\:\:get_product_id\(\)\.$#'
+ identifier: method.notFound
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_check_theme_path\\(\\) has no return type specified\\.$#"
+ message: '#^Call to an undefined method object\:\:back_convert\(\)\.$#'
+ identifier: method.notFound
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_check_theme_path\\(\\) has parameter \\$full_path with no type specified\\.$#"
+ message: '#^Call to an undefined method object\:\:get_currencies\(\)\.$#'
+ identifier: method.notFound
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_check_theme_path\\(\\) has parameter \\$template_path with no type specified\\.$#"
+ message: '#^Call to function is_array\(\) with non\-empty\-array will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_check_theme_path\\(\\) has parameter \\$vars with no type specified\\.$#"
- count: 1
+ message: '#^Constant PPOM_URL not found\.$#'
+ identifier: constant.notFound
+ count: 23
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_checkbox_valided\\(\\) has no return type specified\\.$#"
+ message: '#^Function PPOM_FP not found\.$#'
+ identifier: function.notFound
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_checkbox_valided\\(\\) has parameter \\$field with no type specified\\.$#"
+ message: '#^Function ppom_hooks_check_theme_path\(\) has parameter \$vars with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_checkbox_valided\\(\\) has parameter \\$has_value with no type specified\\.$#"
+ message: '#^Function ppom_hooks_checkbox_valided\(\) has parameter \$field with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_checkbox_valided\\(\\) has parameter \\$posted_fields with no type specified\\.$#"
+ message: '#^Function ppom_hooks_checkbox_valided\(\) has parameter \$posted_fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_color_to_text_type\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_color_to_text_type\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_color_to_text_type\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Function ppom_hooks_color_to_text_type\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_color_to_text_type\\(\\) has parameter \\$attr with no type specified\\.$#"
+ message: '#^Function ppom_hooks_color_to_text_type\(\) has parameter \$attr with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_color_to_text_type\\(\\) has parameter \\$attr_value with no type specified\\.$#"
+ message: '#^Function ppom_hooks_color_to_text_type\(\) has parameter \$attr_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_option_json_to_string\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_convert_option_json_to_string\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_option_json_to_string\\(\\) has parameter \\$order with no type specified\\.$#"
+ message: '#^Function ppom_hooks_convert_option_json_to_string\(\) has parameter \$order with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_option_json_to_string\\(\\) has parameter \\$row with no type specified\\.$#"
+ message: '#^Function ppom_hooks_convert_option_json_to_string\(\) has parameter \$row with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_dom_option_id\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_price\\(\\) has parameter \\$option_price with no type specified\\.$#"
+ message: '#^Function ppom_hooks_dom_option_id\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_price_back\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_dom_option_id\(\) has parameter \$option_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_convert_price_back\\(\\) has parameter \\$price with no type specified\\.$#"
+ message: '#^Function ppom_hooks_hide_cart_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_dom_option_id\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_hide_cart_quantity\(\) has parameter \$classes with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_dom_option_id\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Function ppom_hooks_hide_cart_quantity\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_dom_option_id\\(\\) has parameter \\$option_id with no type specified\\.$#"
+ message: '#^Function ppom_hooks_input_args\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_format_order_value\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_input_args\(\) has parameter \$field_setting with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_format_order_value\\(\\) has parameter \\$display_value with no type specified\\.$#"
+ message: '#^Function ppom_hooks_input_args\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_format_order_value\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_hooks_input_main_wrapper_class\(\) has parameter \$classes_array with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_format_order_value\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_hooks_input_main_wrapper_class\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_hide_cart_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_input_wrapper_class\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_hide_cart_quantity\\(\\) has parameter \\$classes with no type specified\\.$#"
+ message: '#^Function ppom_hooks_input_wrapper_class_new\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_hide_cart_quantity\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_hooks_register_wpml\(\) has parameter \$meta_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_args\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_register_wpml\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_args\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_hooks_remove_admin_notices\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_args\\(\\) has parameter \\$field_setting with no type specified\\.$#"
+ message: '#^Function ppom_hooks_render_shortcode\(\) has parameter \$attr with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_args\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_hooks_render_shortcode\(\) should return string\|null but return statement is missing\.$#'
+ identifier: return.missing
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_main_wrapper_class\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Function ppom_hooks_render_shortcode\(\) should return string\|null but returns string\|false\.$#'
+ identifier: return.type
+ count: 2
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_main_wrapper_class\\(\\) has parameter \\$classes_array with no type specified\\.$#"
+ message: '#^Function ppom_hooks_save_cropped_image\(\) has parameter \$posted_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_main_wrapper_class\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_hooks_save_cropped_image\(\) has parameter \$ppom_fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_main_wrapper_class\\(\\) has parameter \\$wrapper_class with no type specified\\.$#"
+ message: '#^Function ppom_hooks_save_cropped_image\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_wrapper_class\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_search_in_order\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_wrapper_class\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_hooks_search_in_order\(\) has parameter \$search_fields with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_wrapper_class\\(\\) has parameter \\$input_wrapper_class with no type specified\\.$#"
+ message: '#^Function ppom_hooks_set_attributes\(\) has parameter \$field_meta with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_wrapper_class_new\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_set_attributes\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_wrapper_class_new\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_hooks_set_option_operator\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_input_wrapper_class_new\\(\\) has parameter \\$input_wrapper_class with no type specified\\.$#"
+ message: '#^Function ppom_hooks_set_option_operator\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_load_input_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_set_option_operator\(\) has parameter \$operator with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_load_input_scripts\\(\\) has parameter \\$ppom_id with no type specified\\.$#"
+ message: '#^Function ppom_hooks_set_option_operator\(\) has parameter \$price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_load_input_scripts\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_hooks_show_option_price_pricematrix\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_redirect_to_cart_if_shortcode\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_show_option_price_pricematrix\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_redirect_to_cart_if_shortcode\\(\\) has parameter \\$url with no type specified\\.$#"
+ message: '#^Function ppom_hooks_show_option_price_pricematrix\(\) has parameter \$show_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_register_wpml\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_update_cart_weight\(\) has parameter \$cart_items with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_register_wpml\\(\\) has parameter \\$meta_data with no type specified\\.$#"
+ message: '#^Function ppom_hooks_update_cart_weight\(\) has parameter \$ppom_field_prices with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_register_wpml\\(\\) has parameter \\$ppom_id with no type specified\\.$#"
+ message: '#^Function ppom_hooks_update_cart_weight\(\) has parameter \$ppom_fields_post with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_remove_admin_notices\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_weekly_cron_schedule\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_render_shortcode\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_hooks_weekly_cron_schedule\(\) has parameter \$schedules with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_render_shortcode\\(\\) has parameter \\$attr with no type specified\\.$#"
+ message: '#^Function update_converted_option_keys\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_save_cropped_image\\(\\) has no return type specified\\.$#"
+ message: '#^Function update_converted_option_keys\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_save_cropped_image\\(\\) has parameter \\$posted_data with no type specified\\.$#"
+ message: '#^Function update_converted_option_keys\(\) has parameter \$new_option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_save_cropped_image\\(\\) has parameter \\$ppom_fields with no type specified\\.$#"
+ message: '#^Function update_converted_option_keys\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_search_in_order\\(\\) has no return type specified\\.$#"
+ message: '#^Function update_converted_option_keys\(\) has parameter \$option_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_search_in_order\\(\\) has parameter \\$search_fields with no type specified\\.$#"
+ message: '#^Function update_converted_option_keys\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_attributes\\(\\) has no return type specified\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_attributes\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Instanceof between mixed and stdClass will always evaluate to false\.$#'
+ identifier: instanceof.alwaysFalse
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_attributes\\(\\) has parameter \\$type with no type specified\\.$#"
+ message: '#^Parameter \#1 \$product_id of function ppom_woocommerce_show_fields_on_product expects int, string given\.$#'
+ identifier: argument.type
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_option_operator\\(\\) has no return type specified\\.$#"
+ message: '#^Parameter \#1 \$product_id of function ppom_woocommerce_template_base_inputs_rendering expects int, string given\.$#'
+ identifier: argument.type
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_option_operator\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Parameter \#1 \$product_id of static method PPOM_FRONTEND_SCRIPTS\:\:load_scripts_by_product_id\(\) expects int, string given\.$#'
+ identifier: argument.type
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_option_operator\\(\\) has parameter \\$operator with no type specified\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int given\.$#'
+ identifier: argument.type
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_set_option_operator\\(\\) has parameter \\$price with no type specified\\.$#"
+ message: '#^Parameter \#2 \$ppom_id of static method PPOM_FRONTEND_SCRIPTS\:\:load_scripts_by_product_id\(\) expects int\|null, string given\.$#'
+ identifier: argument.type
count: 1
path: inc/hooks.php
-
- message: "#^Function ppom_hooks_show_option_price_pricematrix\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_show_option_price_pricematrix\\(\\) has parameter \\$meta with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_show_option_price_pricematrix\\(\\) has parameter \\$show_price with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_update_cart_weight\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_update_cart_weight\\(\\) has parameter \\$cart_items with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_update_cart_weight\\(\\) has parameter \\$ppom_field_prices with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_update_cart_weight\\(\\) has parameter \\$ppom_fields_post with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_weekly_cron_schedule\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function ppom_hooks_weekly_cron_schedule\\(\\) has parameter \\$schedules with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function update_converted_option_keys\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function update_converted_option_keys\\(\\) has parameter \\$meta with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function update_converted_option_keys\\(\\) has parameter \\$new_option with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function update_converted_option_keys\\(\\) has parameter \\$option with no type specified\\.$#"
- count: 1
- path: inc/hooks.php
-
- -
- message: "#^Function update_converted_option_keys\\(\\) has parameter \\$option_key with no type specified\\.$#"
- count: 1
+ message: '#^Parameter \#3 \$deps of function wp_enqueue_script expects array\, string given\.$#'
+ identifier: argument.type
+ count: 2
path: inc/hooks.php
-
- message: "#^Function update_converted_option_keys\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Parameter \#5 \$args of function wp_enqueue_script expects array\{strategy\?\: string, in_footer\?\: bool, fetchpriority\?\: string\}\|bool, 1 given\.$#'
+ identifier: argument.type
count: 1
path: inc/hooks.php
-
- message: "#^If condition is always true\\.$#"
+ message: '#^Undefined variable\: \$addon_type$#'
+ identifier: variable.undefined
count: 1
path: inc/hooks.php
-
- message: "#^Instanceof between mixed and stdClass will always evaluate to false\\.$#"
+ message: '#^Variable \$addon_type in isset\(\) is never defined\.$#'
+ identifier: isset.variable
count: 1
path: inc/hooks.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int given\\.$#"
+ message: '#^Binary operation "\-" between string and 1 results in an error\.$#'
+ identifier: binaryOp.invalid
count: 1
- path: inc/hooks.php
+ path: inc/nmInput.class.php
-
- message: "#^Parameter \\#3 \\$deps of function wp_enqueue_script expects array\\, string given\\.$#"
+ message: '#^Cannot call method get_price\(\) on WC_Product\|false\|null\.$#'
+ identifier: method.nonObject
count: 2
- path: inc/hooks.php
+ path: inc/nmInput.class.php
-
- message: "#^Parameter \\#5 \\$args of function wp_enqueue_script expects array\\{strategy\\?\\: string, in_footer\\?\\: bool\\}\\|bool, 1 given\\.$#"
+ message: '#^Cannot call method get_type\(\) on WC_Product\|false\|null\.$#'
+ identifier: method.nonObject
count: 1
- path: inc/hooks.php
+ path: inc/nmInput.class.php
-
- message: "#^Undefined variable\\: \\$addon_type$#"
+ message: '#^Function NMForm\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
- path: inc/hooks.php
+ path: inc/nmInput.class.php
-
- message: "#^Variable \\$addon_type in isset\\(\\) is never defined\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 1
- path: inc/hooks.php
+ path: inc/nmInput.class.php
-
- message: "#^Binary operation \"\\-\" between string and 1 results in an error\\.$#"
+ message: '#^Loose comparison using \!\= between non\-falsy\-string and '''' will always evaluate to true\.$#'
+ identifier: notEqual.alwaysTrue
count: 1
path: inc/nmInput.class.php
-
- message: "#^Function NMForm\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Audio_video\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^If condition is always true\\.$#"
+ message: '#^Method NM_Form\:\:Audio_video\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Audio_video\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Audio_video\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Audio_video\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Checkbox\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Audio_video\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Checkbox\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Checkbox\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Checkbox\(\) has parameter \$checked_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Checkbox\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Cropper\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Checkbox\\(\\) has parameter \\$checked_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Cropper\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Cropper\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Cropper\(\) has parameter \$selected_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Cropper\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Custom\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Cropper\\(\\) has parameter \\$selected_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Custom\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Custom\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Custom\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Custom\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:File\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Custom\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:File\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:File\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:File\(\) has parameter \$default_files with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:File\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Image\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:File\\(\\) has parameter \\$default_files with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Image\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Image\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Image\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Image\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Input\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Image\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Input\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Input\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Input\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Input\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Measure\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Input\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Measure\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Measure\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Measure\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Measure\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Palettes\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Measure\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Palettes\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Palettes\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Palettes\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Palettes\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Pricematrix\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Palettes\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Pricematrix\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Pricematrix\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Pricematrix\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Pricematrix\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Quantities\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Pricematrix\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Quantities\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Quantities\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Quantities\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Quantities\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Radio\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Quantities\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Radio\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Radio\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Radio\(\) has parameter \$checked_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Radio\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Regular\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Radio\\(\\) has parameter \\$checked_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Regular\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Regular\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Regular\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Regular\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Section\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Regular\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Section\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Section\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Section\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Section\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Select\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Section\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Select\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Select\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Select\(\) has parameter \$selected_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Select\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Textarea\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Select\\(\\) has parameter \\$selected_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Textarea\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Textarea\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Textarea\(\) has parameter \$default_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Textarea\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Timezone\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Textarea\\(\\) has parameter \\$default_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:Timezone\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Timezone\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:Timezone\(\) has parameter \$selected_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Timezone\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:adjust_attributes_values\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:Timezone\\(\\) has parameter \\$selected_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:adjust_attributes_values\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:adjust_attributes_values\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:adjust_attributes_values\(\) has parameter \$attr with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:adjust_attributes_values\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:adjust_attributes_values\(\) has parameter \$attr_value with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:adjust_attributes_values\\(\\) has parameter \\$attr with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_attribute_value\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:adjust_attributes_values\\(\\) has parameter \\$attr_value with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_attribute_value\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_attribute_value\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_attribute_value\(\) has parameter \$attr with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_attribute_value\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_default_setting_value\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_attribute_value\\(\\) has parameter \\$attr with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_default_setting_value\(\) has parameter \$field_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_default_setting_value\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_default_setting_value\(\) has parameter \$key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_default_setting_value\\(\\) has parameter \\$field_id with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_default_setting_value\(\) has parameter \$setting_type with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_default_setting_value\\(\\) has parameter \\$key with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_instance\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_default_setting_value\\(\\) has parameter \\$setting_type with no type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_property\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_instance\\(\\) has no return type specified\\.$#"
+ message: '#^Method NM_Form\:\:get_property\(\) has parameter \$property with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_property\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$price of function wc_price expects float, int\|string given\.$#'
+ identifier: argument.type
+ count: 2
path: inc/nmInput.class.php
-
- message: "#^Method NM_Form\\:\\:get_property\\(\\) has parameter \\$property with no type specified\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, bool given\.$#'
+ identifier: argument.type
count: 1
path: inc/nmInput.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, bool given\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\|string given\.$#'
+ identifier: argument.type
+ count: 2
path: inc/nmInput.class.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, true given\\.$#"
- count: 1
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, string\|false given\.$#'
+ identifier: argument.type
+ count: 7
path: inc/nmInput.class.php
-
- message: "#^Parameter \\#2 \\$haystack of function in_array expects array, mixed given\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, true given\.$#'
+ identifier: argument.type
count: 1
path: inc/nmInput.class.php
-
- message: "#^Property NM_Form\\:\\:\\$defaults has no type specified\\.$#"
+ message: '#^Parameter \#1 \$url of function esc_url expects string, string\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/nmInput.class.php
-
- message: "#^Property NM_Form\\:\\:\\$defaults is never read, only written\\.$#"
+ message: '#^Property NM_Form\:\:\$defaults has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: inc/nmInput.class.php
-
- message: "#^Property NM_Form\\:\\:\\$echoable has no type specified\\.$#"
+ message: '#^Property NM_Form\:\:\$defaults is never read, only written\.$#'
+ identifier: property.onlyWritten
count: 1
path: inc/nmInput.class.php
-
- message: "#^Property NM_Form\\:\\:\\$echoable is never read, only written\\.$#"
+ message: '#^Property NM_Form\:\:\$echoable has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: inc/nmInput.class.php
-
- message: "#^Property NM_Form\\:\\:\\$ins has no type specified\\.$#"
+ message: '#^Property NM_Form\:\:\$echoable is never read, only written\.$#'
+ identifier: property.onlyWritten
count: 1
path: inc/nmInput.class.php
-
- message: "#^Undefined variable\\: \\$key$#"
+ message: '#^Property NM_Form\:\:\$ins has no type specified\.$#'
+ identifier: missingType.property
count: 1
path: inc/nmInput.class.php
-
- message: "#^Undefined variable\\: \\$onetime$#"
+ message: '#^Undefined variable\: \$key$#'
+ identifier: variable.undefined
count: 1
path: inc/nmInput.class.php
-
- message: "#^Undefined variable\\: \\$option_price$#"
+ message: '#^Undefined variable\: \$onetime$#'
+ identifier: variable.undefined
count: 1
path: inc/nmInput.class.php
-
- message: "#^Variable \\$file_name might not be defined\\.$#"
- count: 2
+ message: '#^Undefined variable\: \$option_price$#'
+ identifier: variable.undefined
+ count: 1
path: inc/nmInput.class.php
-
- message: "#^Variable \\$input_html might not be defined\\.$#"
+ message: '#^Variable \$input_html might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: inc/nmInput.class.php
-
- message: "#^Call to an undefined method object\\:\\:get_price\\(\\)\\.$#"
- count: 1
+ message: '#^Argument of an invalid type array\\|string supplied for foreach, only iterables are supported\.$#'
+ identifier: foreach.nonIterable
+ count: 10
path: inc/prices.php
-
- message: "#^Function PPOM_FPP not found\\.$#"
+ message: '#^Call to an undefined method object\:\:get_price\(\)\.$#'
+ identifier: method.notFound
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_before_calculate_totals\\(\\) has no return type specified\\.$#"
+ message: '#^Function PPOM_FPP not found\.$#'
+ identifier: function.notFound
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_before_calculate_totals\\(\\) has parameter \\$cart_items with no type specified\\.$#"
+ message: '#^Function ppom_before_calculate_totals\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_generate_field_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_before_calculate_totals\(\) has parameter \$cart_items with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_generate_field_price\\(\\) has parameter \\$apply with no type specified\\.$#"
+ message: '#^Function ppom_generate_field_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_generate_field_price\\(\\) has parameter \\$field_meta with no type specified\\.$#"
+ message: '#^Function ppom_generate_field_price\(\) has parameter \$apply with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_generate_field_price\\(\\) has parameter \\$field_price with no type specified\\.$#"
+ message: '#^Function ppom_generate_field_price\(\) has parameter \$field_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_generate_field_price\\(\\) has parameter \\$option with no type specified\\.$#"
+ message: '#^Function ppom_generate_field_price\(\) has parameter \$field_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_generate_field_price\\(\\) has parameter \\$qty with no type specified\\.$#"
+ message: '#^Function ppom_generate_field_price\(\) has parameter \$option with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_amount_after_percentage\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_generate_field_price\(\) has parameter \$qty with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_amount_after_percentage\\(\\) has parameter \\$base_amount with no type specified\\.$#"
+ message: '#^Function ppom_get_amount_after_percentage\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_amount_after_percentage\\(\\) has parameter \\$percent with no type specified\\.$#"
+ message: '#^Function ppom_get_amount_after_percentage\(\) has parameter \$base_amount with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_field_prices\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_get_amount_after_percentage\(\) has parameter \$percent with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_field_prices\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_get_field_prices\(\) has parameter \$item with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_field_prices\\(\\) has parameter \\$ppom_fields_post with no type specified\\.$#"
+ message: '#^Function ppom_get_field_prices\(\) has parameter \$ppom_fields_post with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_field_prices\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_get_field_prices\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_field_prices\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^Function ppom_is_field_has_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_get_field_prices\\(\\) has parameter \\$variation_id with no type specified\\.$#"
+ message: '#^Function ppom_is_field_has_price\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_is_field_has_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_option_price_handle_vat\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_is_field_has_price\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_option_price_handle_vat\(\) has parameter \$option_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_option_price_handle_vat\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_option_price_handle_vat\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_option_price_handle_vat\\(\\) has parameter \\$option_price with no type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_option_price_handle_vat\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has parameter \$addon_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has parameter \$base_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has parameter \\$addon_price with no type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has parameter \$cart_fee with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has parameter \\$base_price with no type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has parameter \$ppom_pricematrix with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has parameter \\$cart_fee with no type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has parameter \\$ppom_pricematrix with no type specified\\.$#"
+ message: '#^Function ppom_parse_price_matrix\(\) has parameter \$product_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_price_bulkquantity_chunk\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_parse_price_matrix\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^Function ppom_price_bulkquantity_chunk\(\) has parameter \$bulkquantity_options with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_bulkquantity_chunk\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_bulkquantity_chunk\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_bulkquantity_chunk\\(\\) has parameter \\$bulkquantity_options with no type specified\\.$#"
+ message: '#^Function ppom_price_bulkquantity_chunk\(\) has parameter \$product_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_bulkquantity_chunk\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_price_check_price_matrix\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_bulkquantity_chunk\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^Function ppom_price_check_price_matrix\(\) has parameter \$cart_items with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_cart_fee\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_check_price_matrix\(\) has parameter \$values with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_cart_fee\\(\\) has parameter \\$cart with no type specified\\.$#"
+ message: '#^Function ppom_price_controller\(\) has parameter \$cart_item with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_check_price_matrix\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_controller\(\) has parameter \$values with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_check_price_matrix\\(\\) has parameter \\$cart_items with no type specified\\.$#"
+ message: '#^Function ppom_price_controller\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_check_price_matrix\\(\\) has parameter \\$values with no type specified\\.$#"
+ message: '#^Function ppom_price_fixedprice_chunk\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_controller\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_fixedprice_chunk\(\) has parameter \$fixedprice_options with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_controller\\(\\) has parameter \\$cart_item with no type specified\\.$#"
+ message: '#^Function ppom_price_fixedprice_chunk\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_controller\\(\\) has parameter \\$values with no type specified\\.$#"
+ message: '#^Function ppom_price_fixedprice_chunk\(\) has parameter \$product_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_fixedprice_chunk\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_get_addon_total\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_fixedprice_chunk\\(\\) has parameter \\$fixedprice_options with no type specified\\.$#"
+ message: '#^Function ppom_price_get_addon_total\(\) has parameter \$price_array with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_fixedprice_chunk\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_price_get_cart_fee_total\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_fixedprice_chunk\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^Function ppom_price_get_cart_fee_total\(\) has parameter \$price_array with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_addon_total\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_get_product_base\(\) has parameter \$ppom_field_prices with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_addon_total\\(\\) has parameter \\$price_array with no type specified\\.$#"
+ message: '#^Function ppom_price_get_product_base\(\) has parameter \$ppom_fields_post with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_cart_fee_total\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_get_product_base\(\) has parameter \$ppom_pricematrix with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_cart_fee_total\\(\\) has parameter \\$price_array with no type specified\\.$#"
+ message: '#^Function ppom_price_get_product_base\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_get_total_bulkquantities\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$ppom_discount with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_bulkquantities\(\) has parameter \$ppom_fields_post with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$ppom_field_prices with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_bulkquantities\(\) has parameter \$price_array with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$ppom_fields_post with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_bulkquantities\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$ppom_pricematrix with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_fixedprice\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_fixedprice\(\) has parameter \$price_array with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$product_price with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_measure\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_product_base\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_measure\(\) has parameter \$price_array with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_bulkquantities\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_get_total_quantities\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_bulkquantities\\(\\) has parameter \\$ppom_fields_post with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_quantities\(\) has parameter \$ppom_fields_post with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_bulkquantities\\(\\) has parameter \\$price_array with no type specified\\.$#"
+ message: '#^Function ppom_price_get_total_quantities\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_bulkquantities\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_price_has_discount_matrix\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_fixedprice\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_has_discount_matrix\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_fixedprice\\(\\) has parameter \\$price_array with no type specified\\.$#"
+ message: '#^Function ppom_price_has_discount_matrix\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_measure\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_is_matrix_found\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_measure\\(\\) has parameter \\$price_array with no type specified\\.$#"
+ message: '#^Function ppom_price_is_matrix_found\(\) has parameter \$addon_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_quantities\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_is_matrix_found\(\) has parameter \$base_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_quantities\\(\\) has parameter \\$ppom_fields_post with no type specified\\.$#"
+ message: '#^Function ppom_price_is_matrix_found\(\) has parameter \$cart_fee with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_get_total_quantities\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_price_is_matrix_found\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_has_discount_matrix\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_is_matrix_found\(\) has parameter \$product_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_has_discount_matrix\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_price_matrix_chunk\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_has_discount_matrix\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_price_matrix_chunk\(\) has parameter \$pricematrix_fields with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_is_matrix_found\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_price_matrix_chunk\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_is_matrix_found\\(\\) has parameter \\$addon_price with no type specified\\.$#"
+ message: '#^Function ppom_price_matrix_chunk\(\) has parameter \$product_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_is_matrix_found\\(\\) has parameter \\$base_price with no type specified\\.$#"
+ message: '#^Function ppom_wwp_product_cart_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_is_matrix_found\\(\\) has parameter \\$cart_fee with no type specified\\.$#"
+ message: '#^Function ppom_wwp_product_cart_price\(\) has parameter \$cart_content with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_is_matrix_found\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_wwp_product_cart_price\(\) has parameter \$product_price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_is_matrix_found\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_matrix_chunk\\(\\) has no return type specified\\.$#"
+ message: '#^Offset ''count_price'' might not exist on array\|string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_matrix_chunk\\(\\) has parameter \\$pricematrix_fields with no type specified\\.$#"
+ message: '#^Offset ''count_type'' might not exist on array\|string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_price_matrix_chunk\\(\\) has parameter \\$product with no type specified\\.$#"
- count: 1
+ message: '#^Offset ''option'' might not exist on non\-empty\-array\\|string\.$#'
+ identifier: offsetAccess.notFound
+ count: 2
path: inc/prices.php
-
- message: "#^Function ppom_price_matrix_chunk\\(\\) has parameter \\$product_quantity with no type specified\\.$#"
+ message: '#^Offset ''ppom'' might not exist on array\|null\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_wwp_product_cart_price\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Offset ''qty'' might not exist on non\-empty\-array\\|string\.$#'
+ identifier: offsetAccess.notFound
+ count: 2
path: inc/prices.php
-
- message: "#^Function ppom_wwp_product_cart_price\\(\\) has parameter \\$cart_content with no type specified\\.$#"
+ message: '#^Parameter \#1 \$str of function stripcslashes expects string, array\\|string given\.$#'
+ identifier: argument.type
count: 1
path: inc/prices.php
-
- message: "#^Function ppom_wwp_product_cart_price\\(\\) has parameter \\$product_price with no type specified\\.$#"
+ message: '#^Parameter \#1 \$string of function str_word_count expects string, array\\|string given\.$#'
+ identifier: argument.type
count: 1
path: inc/prices.php
-
- message: "#^If condition is always true\\.$#"
+ message: '#^Parameter \#1 \$var of function count expects array\|Countable, array\\|string given\.$#'
+ identifier: argument.type
count: 1
path: inc/prices.php
-
- message: "#^Variable \\$quantities_total might not be defined\\.$#"
- count: 4
+ message: '#^Parameter \#2 \$subject of function preg_match_all expects string, array\\|string given\.$#'
+ identifier: argument.type
+ count: 2
path: inc/prices.php
-
- message: "#^Variable \\$vm_options might not be defined\\.$#"
+ message: '#^Parameter &\$product_quantity by\-ref type of function ppom_get_field_prices\(\) expects float\|int, array\\|string given\.$#'
+ identifier: parameterByRef.type
count: 1
path: inc/prices.php
-
- message: "#^Variable \\$vqmatrix_pricemeta might not be defined\\.$#"
- count: 1
+ message: '#^Variable \$quantities_total might not be defined\.$#'
+ identifier: variable.undefined
+ count: 4
path: inc/prices.php
-
- message: "#^Call to an undefined method WC_Order_Item\\:\\:get_product_id\\(\\)\\.$#"
- count: 3
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_meta_data\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_meta_data\\(\\) has parameter \\$delete_fields with no type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_meta_data\\(\\) has parameter \\$ppom_meta with no type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_meta_data\\(\\) has parameter \\$product_id with no type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_ppom_fields_order\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_ppom_fields_order\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_ppom_fields_product\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:delete_ppom_fields_product\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:filter_required_keys_only\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:filter_required_keys_only\\(\\) has parameter \\$ppom_fields with no type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_order_item_meta\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_order_item_meta\\(\\) has parameter \\$order_id with no type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_ppom_meta_by_id\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_ppom_meta_by_id\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_ppom_meta_info_order\\(\\) has no return type specified\\.$#"
+ message: '#^Variable \$vm_options might not be defined\.$#'
+ identifier: variable.undefined
count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_ppom_meta_info_order\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
- count: 1
- path: inc/rest.class.php
-
- -
- message: "#^Method PPOM_Rest\\:\\:get_ppom_meta_info_product\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/rest.class.php
+ path: inc/prices.php
-
- message: "#^Method PPOM_Rest\\:\\:get_ppom_meta_info_product\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
+ message: '#^Variable \$vqmatrix_pricemeta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
- path: inc/rest.class.php
+ path: inc/prices.php
-
- message: "#^Method PPOM_Rest\\:\\:init_api\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Access to an undefined property object\:\:\$productmeta_id\.$#'
+ identifier: property.notFound
+ count: 8
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:is_secret_key_valid\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Access to an undefined property object\:\:\$the_meta\.$#'
+ identifier: property.notFound
+ count: 2
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:is_secret_key_valid\\(\\) has parameter \\$secretkey with no type specified\\.$#"
- count: 1
+ message: '#^Call to an undefined method WC_Order_Item\:\:get_product_id\(\)\.$#'
+ identifier: method.notFound
+ count: 3
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:ppom_save_meta_product\\(\\) has no return type specified\\.$#"
+ message: '#^Cannot call method get_items\(\) on WC_Order\|WC_Order_Refund\|false\.$#'
+ identifier: method.nonObject
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:ppom_save_meta_product\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
+ message: '#^Method PPOM_Rest\:\:delete_meta_data\(\) has parameter \$delete_fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:ppom_update_meta_order\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:delete_meta_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:ppom_update_meta_order\\(\\) has parameter \\$request with generic class WP_REST_Request but does not specify its types\\: T$#"
+ message: '#^Method PPOM_Rest\:\:filter_required_keys_only\(\) has parameter \$ppom_fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:save_new_meta_data\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:filter_required_keys_only\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:save_new_meta_data\\(\\) has parameter \\$ppom_fields with no type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:get_order_item_meta\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:save_new_meta_data\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:save_new_meta_data\(\) has parameter \$ppom_fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:set_headers\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:save_new_meta_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:update_meta_data\\(\\) has no return type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:update_meta_data\(\) has parameter \$ppom_fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:update_meta_data\\(\\) has parameter \\$ppom_fields with no type specified\\.$#"
+ message: '#^Method PPOM_Rest\:\:update_meta_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:update_meta_data\\(\\) has parameter \\$ppom_meta with no type specified\\.$#"
+ message: '#^Parameter \#1 \$ppom_meta of method PPOM_Rest\:\:delete_meta_data\(\) expects object, array\|object given\.$#'
+ identifier: argument.type
count: 1
path: inc/rest.class.php
-
- message: "#^Method PPOM_Rest\\:\\:update_meta_data\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Parameter \#1 \$ppom_meta of method PPOM_Rest\:\:update_meta_data\(\) expects object, array\|object given\.$#'
+ identifier: argument.type
count: 1
path: inc/rest.class.php
-
- message: "#^Parameter \\#1 \\$str of function trim expects string, bool given\\.$#"
+ message: '#^Parameter \#1 \$str of function trim expects string, bool given\.$#'
+ identifier: argument.type
count: 1
path: inc/rest.class.php
-
- message: "#^Array has 2 duplicate keys with value 'style' \\('style', 'style'\\)\\.$#"
+ message: '#^Array has 2 duplicate keys with value ''style'' \(''style'', ''style''\)\.$#'
+ identifier: array.duplicateKey
count: 1
path: inc/validation.php
-
- message: "#^Array has 2 duplicate keys with value 'type' \\('type', 'type'\\)\\.$#"
+ message: '#^Array has 2 duplicate keys with value ''type'' \(''type'', ''type''\)\.$#'
+ identifier: array.duplicateKey
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_esc_html\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_fields_with_html\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_esc_html\\(\\) has parameter \\$content with no type specified\\.$#"
+ message: '#^Function ppom_get_product_limits\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_fields_with_html\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_sanitize_array_data\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_get_product_limits\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_sanitize_array_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_get_product_limits\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_validation_product_limits\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_get_product_limits\\(\\) has parameter \\$variation_id with no type specified\\.$#"
+ message: '#^Function ppom_validation_product_limits\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_sanitize_array_data\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_validation_variation_limits\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_sanitize_array_data\\(\\) has parameter \\$array with no type specified\\.$#"
+ message: '#^Function ppom_validation_variation_limits\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/validation.php
-
- message: "#^Function ppom_validation_product_limits\\(\\) has parameter \\$data with no value type specified in iterable type array\\.$#"
- count: 1
- path: inc/validation.php
-
- -
- message: "#^Function ppom_validation_product_limits\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: inc/validation.php
-
- -
- message: "#^Function ppom_validation_variation_limits\\(\\) has parameter \\$data with no value type specified in iterable type array\\.$#"
- count: 1
- path: inc/validation.php
-
- -
- message: "#^Function ppom_validation_variation_limits\\(\\) return type has no value type specified in iterable type array\\.$#"
- count: 1
- path: inc/validation.php
-
- -
- message: "#^Binary operation \"\\+\" between float and ''\\|'0'\\|array\\{\\}\\|float\\|false results in an error\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Expression \"'\\ '\" on a separate line does not do anything\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_calculate_totals_from_session\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_calculate_totals_from_session\\(\\) has parameter \\$cart with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_check_validation\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_check_validation\\(\\) has parameter \\$passed with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_check_validation\\(\\) has parameter \\$post_data with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_check_validation\\(\\) has parameter \\$product_id with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_invoice_packing_slips_html\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_invoice_packing_slips_html\\(\\) has parameter \\$args with no value type specified in iterable type array\\.$#"
+ message: '#^Binary operation "\+" between float and ''''\|''0''\|array\{\}\|float\|false results in an error\.$#'
+ identifier: binaryOp.invalid
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_wc_order_again_compatibility\\(\\) has parameter \\$cart_item_data with no value type specified in iterable type array\\.$#"
+ message: '#^Call to an undefined method WC_Order_Item\:\:get_product_id\(\)\.$#'
+ identifier: method.notFound
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_wc_order_again_compatibility\\(\\) with return type void returns array but should not return anything\\.$#"
+ message: '#^Cannot access property \$key on object\|null\.$#'
+ identifier: property.nonObject
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_add_cart_item_data\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_cart_item_data\\(\\) has parameter \\$cart with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_cart_item_data\\(\\) has parameter \\$product_id with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_fixed_fee\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_fixed_fee\\(\\) has parameter \\$cart with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_item_meta\\(\\) has no return type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_item_meta\\(\\) has parameter \\$cart_item with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_item_meta\\(\\) has parameter \\$item_meta with no type specified\\.$#"
- count: 1
- path: inc/woocommerce.php
-
- -
- message: "#^Function ppom_woocommerce_add_to_cart_quantity\\(\\) has no return type specified\\.$#"
- count: 1
+ message: '#^Cannot access property \$value on object\|null\.$#'
+ identifier: property.nonObject
+ count: 2
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_add_to_cart_quantity\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Cannot call method get_id\(\) on WC_Product\|false\|null\.$#'
+ identifier: method.nonObject
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_add_to_cart_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Expression "''\''" on a separate line does not do anything\.$#'
+ identifier: expr.resultUnused
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_ajax_validate\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_calculate_totals_from_session\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_alter_price\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_calculate_totals_from_session\(\) has parameter \$cart with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_alter_price\\(\\) has parameter \\$price with no type specified\\.$#"
+ message: '#^Function ppom_check_validation\(\) has parameter \$post_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_alter_price\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_invoice_packing_slips_html\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_cart_update_validate\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_invoice_packing_slips_html\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_cart_update_validate\\(\\) has parameter \\$cart_item_key with no type specified\\.$#"
+ message: '#^Function ppom_wc_order_again_compatibility\(\) has parameter \$cart_item_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_cart_update_validate\\(\\) has parameter \\$cart_validated with no type specified\\.$#"
+ message: '#^Function ppom_wc_order_again_compatibility\(\) with return type void returns array but should not return anything\.$#'
+ identifier: return.void
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_cart_update_validate\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_cart_item_data\(\) has parameter \$cart with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_cart_update_validate\\(\\) has parameter \\$values with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_cart_item_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_cart_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_fixed_fee\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_cart_quantity\\(\\) has parameter \\$cart_item_key with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_fixed_fee\(\) has parameter \$cart with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_cart_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_item_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_cart_quantity_legacy\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_item_meta\(\) has parameter \$cart_item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_cart_quantity_legacy\\(\\) has parameter \\$cart_item_key with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_item_meta\(\) has parameter \$item_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_cart_quantity_legacy\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_to_cart_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_checkout_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_to_cart_quantity\(\) has parameter \$product_id with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_checkout_quantity\\(\\) has parameter \\$cart_item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_add_to_cart_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_checkout_quantity\\(\\) has parameter \\$cart_item_key with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_alter_price\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_checkout_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_alter_price\(\) has parameter \$price with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_email_item_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_alter_price\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_email_item_quantity\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_cart_update_validate\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_email_item_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_cart_update_validate\(\) has parameter \$cart_item_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_oder_item_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_cart_update_validate\(\) has parameter \$cart_validated with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_oder_item_quantity\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_cart_update_validate\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_oder_item_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_cart_update_validate\(\) has parameter \$values with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_order_item_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_cart_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_order_item_quantity\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_cart_quantity\(\) has parameter \$cart_item_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_control_order_item_quantity\\(\\) has parameter \\$quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_cart_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_hide_order_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_cart_quantity_legacy\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_hide_order_meta\\(\\) has parameter \\$formatted_meta with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_cart_quantity_legacy\(\) has parameter \$cart_item_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_hide_order_meta\\(\\) has parameter \\$order_item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_cart_quantity_legacy\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_inputs_template_base\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_checkout_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_item_subtotal\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_checkout_quantity\(\) has parameter \$cart_item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_item_subtotal\\(\\) has parameter \\$cart_item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_checkout_quantity\(\) has parameter \$cart_item_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_item_subtotal\\(\\) has parameter \\$cart_item_key with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_checkout_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_item_subtotal\\(\\) has parameter \\$item_subtotal with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_email_item_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_load_scripts\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_email_item_quantity\(\) has parameter \$item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_mini_cart_fixed_fee\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_email_item_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_item_meta\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_oder_item_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_item_meta\\(\\) has parameter \\$cart_item_key with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_oder_item_quantity\(\) has parameter \$item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_item_meta\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_oder_item_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_item_meta\\(\\) has parameter \\$order with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_order_item_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_item_meta\\(\\) has parameter \\$values with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_order_item_quantity\(\) has parameter \$item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_item_meta_html\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_control_order_item_quantity\(\) has parameter \$quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_key\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_hide_order_meta\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_key\\(\\) has parameter \\$display_key with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_hide_order_meta\(\) has parameter \$formatted_meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_key\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_hide_order_meta\(\) has parameter \$order_item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_key\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_inputs_template_base\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_value\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_item_subtotal\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_value\\(\\) has parameter \\$display_value with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_item_subtotal\(\) has parameter \$cart_item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_value\\(\\) has parameter \\$item with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_item_subtotal\(\) has parameter \$cart_item_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_order_value\\(\\) has parameter \\$meta with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_item_subtotal\(\) has parameter \$item_subtotal with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_product_default_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_load_scripts\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_product_default_quantity\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_mini_cart_fixed_fee\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_product_default_quantity\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_order_item_meta\(\) has parameter \$values with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_rename_files\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_order_item_meta_html\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_rename_files\\(\\) has parameter \\$order with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_order_key\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_rename_files\\(\\) has parameter \\$order_id with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_order_key\(\) has parameter \$display_key with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_rename_files\\(\\) has parameter \\$posted_data with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_order_key\(\) has parameter \$item with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_max_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_order_key\(\) has parameter \$meta with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_max_quantity\\(\\) has parameter \\$max_quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_product_default_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_max_quantity\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_product_default_quantity\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_min_quantity\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_product_default_quantity\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_min_quantity\\(\\) has parameter \\$min_quantity with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_max_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_min_quantity\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_max_quantity\(\) has parameter \$max_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_quantity_step\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_max_quantity\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_quantity_step\\(\\) has parameter \\$product with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_min_quantity\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_set_quantity_step\\(\\) has parameter \\$quantity_step with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_min_quantity\(\) has parameter \$min_quantity with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_show_fields_on_product\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_min_quantity\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_show_fields_on_product\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_quantity_step\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_show_fields_on_product\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_quantity_step\(\) has parameter \$product with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_template_base_inputs_rendering\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_set_quantity_step\(\) has parameter \$quantity_step with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_template_base_inputs_rendering\\(\\) has parameter \\$args with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_show_fields_on_product\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_template_base_inputs_rendering\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_template_base_inputs_rendering\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_update_cart_fees\\(\\) has no return type specified\\.$#"
+ message: '#^Function ppom_woocommerce_update_cart_fees\(\) has no return type specified\.$#'
+ identifier: missingType.return
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_update_cart_fees\\(\\) has parameter \\$cart_items with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_update_cart_fees\(\) has parameter \$cart_items with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_update_cart_fees\\(\\) has parameter \\$values with no type specified\\.$#"
+ message: '#^Function ppom_woocommerce_update_cart_fees\(\) has parameter \$values with no type specified\.$#'
+ identifier: missingType.parameter
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_validate_product\\(\\) has no return type specified\\.$#"
+ message: '#^Offset ''data_name'' might not exist on non\-empty\-array\|non\-falsy\-string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_validate_product\\(\\) has parameter \\$passed with no type specified\\.$#"
+ message: '#^Offset ''type'' might not exist on non\-empty\-array\|non\-falsy\-string\.$#'
+ identifier: offsetAccess.notFound
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_validate_product\\(\\) has parameter \\$product_id with no type specified\\.$#"
+ message: '#^Parameter \#1 \$message of function wc_kses_notice expects string, string\|false given\.$#'
+ identifier: argument.type
count: 1
path: inc/woocommerce.php
-
- message: "#^Function ppom_woocommerce_validate_product\\(\\) has parameter \\$qty with no type specified\\.$#"
+ message: '#^Parameter \#1 \$price of function wc_price expects float, string given\.$#'
+ identifier: argument.type
count: 1
path: inc/woocommerce.php
-
- message: "#^Parameter \\#1 \\$price of function wc_price expects float, string given\\.$#"
+ message: '#^Parameter \#1 \$product of function ppom_hooks_load_input_scripts expects int\|WC_Product, WC_Product\|false\|null given\.$#'
+ identifier: argument.type
count: 1
path: inc/woocommerce.php
-
- message: "#^Variable \\$price_after_precent might not be defined\\.$#"
+ message: '#^Variable \$price_after_precent might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: inc/woocommerce.php
-
- message: "#^Constant PPOM_PATH not found\\.$#"
+ message: '#^Constant PPOM_PATH not found\.$#'
+ identifier: constant.notFound
count: 1
path: templates/admin/changelog.php
-
- message: "#^Access to an undefined property object\\:\\:\\$key\\.$#"
+ message: '#^Access to an undefined property object\:\:\$key\.$#'
+ identifier: property.notFound
count: 1
path: templates/admin/ppom-fields.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int given\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int given\.$#'
+ identifier: argument.type
count: 2
path: templates/admin/ppom-fields.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, int\\<1, max\\> given\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<1, max\> given\.$#'
+ identifier: argument.type
count: 13
path: templates/admin/ppom-fields.php
-
- message: "#^Parameter \\#1 \\(void\\) of echo cannot be converted to string\\.$#"
- count: 1
- path: templates/admin/ppom-fields.php
-
- -
- message: "#^Result of function checked \\(void\\) is used\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\|string given\.$#'
+ identifier: argument.type
count: 1
path: templates/admin/ppom-fields.php
-
- message: "#^Variable \\$ppom_id might not be defined\\.$#"
+ message: '#^Variable \$ppom_id might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/form-data.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/form-data.php
-
- message: "#^Variable \\$product_id might not be defined\\.$#"
+ message: '#^Variable \$product_id might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/component/form-data.php
-
- message: "#^Variable \\$image_full might not be defined\\.$#"
+ message: '#^Variable \$image_full might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/image/image-modals.php
-
- message: "#^Variable \\$image_id might not be defined\\.$#"
+ message: '#^Variable \$image_id might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/image/image-modals.php
-
- message: "#^Variable \\$image_title might not be defined\\.$#"
+ message: '#^Variable \$image_title might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/image/image-modals.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/quantities/grid-layout.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 4
path: templates/frontend/component/quantities/grid-layout.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/component/quantities/grid-layout.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\|string given\.$#'
+ identifier: argument.type
count: 1
path: templates/frontend/component/quantities/horizontal-layout.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
+ count: 1
+ path: templates/frontend/component/quantities/horizontal-layout.php
+
+ -
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 4
path: templates/frontend/component/quantities/horizontal-layout.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/component/quantities/horizontal-layout.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/component/quantities/vertical-layout.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 4
path: templates/frontend/component/quantities/vertical-layout.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/component/quantities/vertical-layout.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, int\|string given\.$#'
+ identifier: argument.type
+ count: 2
+ path: templates/frontend/inputs/audio.php
+
+ -
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, string\|false given\.$#'
+ identifier: argument.type
+ count: 2
+ path: templates/frontend/inputs/audio.php
+
+ -
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/audio.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/checkbox.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 4
path: templates/frontend/inputs/checkbox.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/inputs/checkbox.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/color.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/color.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/color.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/cropper.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/frontend/inputs/cropper.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/cropper.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/date.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/date.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/date.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/daterange.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/daterange.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/daterange.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/divider.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/email.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/email.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/email.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/inputs/file.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/hidden.php
-
- message: "#^If condition is always true\\.$#"
+ message: '#^If condition is always true\.$#'
+ identifier: if.alwaysTrue
count: 1
path: templates/frontend/inputs/image.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, string\|false given\.$#'
+ identifier: argument.type
+ count: 3
+ path: templates/frontend/inputs/image.php
+
+ -
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 6
path: templates/frontend/inputs/image.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/frontend/inputs/image.php
-
- message: "#^Parameter \\#1 \\$text of function esc_attr expects string, false given\\.$#"
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, false given\.$#'
+ identifier: argument.type
count: 1
path: templates/frontend/inputs/measure.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/measure.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/measure.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/measure.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/number.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/number.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/number.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/palettes.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/frontend/inputs/palettes.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/palettes.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Parameter \#1 \$price of function wc_price expects float, int\|string given\.$#'
+ identifier: argument.type
+ count: 2
+ path: templates/frontend/inputs/pricematrix.php
+
+ -
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, string\|false given\.$#'
+ identifier: argument.type
+ count: 1
+ path: templates/frontend/inputs/pricematrix.php
+
+ -
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/frontend/inputs/pricematrix.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/pricematrix.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/quantities.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/frontend/inputs/quantities.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/inputs/quantities.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 4
path: templates/frontend/inputs/radio.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/inputs/radio.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/section.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/select.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/frontend/inputs/select.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/inputs/select.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/text.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/text.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/text.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Parameter \#1 \$str of function strip_tags expects string, array\\|string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: templates/frontend/inputs/textarea.php
+
+ -
+ message: '#^Parameter \#1 \$text of function esc_html expects string, array\\|string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: templates/frontend/inputs/textarea.php
+
+ -
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/frontend/inputs/textarea.php
-
- message: "#^Variable \\$wp_editor_setting might not be defined\\.$#"
+ message: '#^Variable \$wp_editor_setting might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/textarea.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/timezone.php
-
- message: "#^Variable \\$field_meta might not be defined\\.$#"
+ message: '#^Variable \$field_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/frontend/inputs/timezone.php
-
- message: "#^Variable \\$form_obj might not be defined\\.$#"
+ message: '#^Variable \$form_obj might not be defined\.$#'
+ identifier: variable.undefined
count: 12
path: templates/frontend/ppom-fields.php
-
- message: "#^Variable \\$args might not be defined\\.$#"
+ message: '#^Variable \$args might not be defined\.$#'
+ identifier: variable.undefined
count: 6
path: templates/input/quantities.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 3
path: templates/input/quantities.php
-
- message: "#^Variable \\$args might not be defined\\.$#"
+ message: '#^Variable \$args might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/render-fields.php
-
- message: "#^Variable \\$default_value might not be defined\\.$#"
+ message: '#^Variable \$default_value might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/render-fields.php
-
- message: "#^Variable \\$ppom_fields_meta might not be defined\\.$#"
+ message: '#^Variable \$ppom_fields_meta might not be defined\.$#'
+ identifier: variable.undefined
count: 2
path: templates/render-fields.php
-
- message: "#^Variable \\$ppom_id might not be defined\\.$#"
+ message: '#^Variable \$ppom_id might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/render-fields.php
-
- message: "#^Variable \\$ppom_settings might not be defined\\.$#"
+ message: '#^Variable \$ppom_settings might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/render-fields.php
-
- message: "#^Variable \\$product might not be defined\\.$#"
+ message: '#^Variable \$product might not be defined\.$#'
+ identifier: variable.undefined
count: 29
path: templates/render-fields.php
-
- message: "#^Variable \\$file_id might not be defined\\.$#"
+ message: '#^Variable \$file_id might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/v10/file-modals.php
-
- message: "#^Variable \\$image_full might not be defined\\.$#"
+ message: '#^Variable \$image_full might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/v10/file-modals.php
-
- message: "#^Variable \\$image_title might not be defined\\.$#"
+ message: '#^Variable \$image_title might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/v10/file-modals.php
-
- message: "#^Variable \\$image_full might not be defined\\.$#"
+ message: '#^Variable \$image_full might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/v10/image-modals.php
-
- message: "#^Variable \\$image_id might not be defined\\.$#"
+ message: '#^Variable \$image_id might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/v10/image-modals.php
-
- message: "#^Variable \\$image_title might not be defined\\.$#"
+ message: '#^Variable \$image_title might not be defined\.$#'
+ identifier: variable.undefined
count: 1
path: templates/v10/image-modals.php
diff --git a/phpstan.neon b/phpstan.neon
index 42d00a3b..58d9cc53 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -1,5 +1,5 @@
parameters:
- level: 6
+ level: 8
dynamicConstantNames:
- WC_VERSION
paths:
@@ -14,4 +14,4 @@ parameters:
- %currentWorkingDirectory%/vendor/damian-elenbaas/elementor-stubs/elementor-stubs.php
includes:
- %currentWorkingDirectory%/vendor/szepeviktor/phpstan-wordpress/extension.neon
- - %currentWorkingDirectory%/phpstan-baseline.neon
\ No newline at end of file
+ - %currentWorkingDirectory%/phpstan-baseline.neon
diff --git a/phpunit.xml b/phpunit.xml
index 85d0f3d3..983127dd 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -1,5 +1,5 @@
- ./tests/
+ ./tests/unit/
-
\ No newline at end of file
+
diff --git a/templates/admin/addons-list.php b/templates/admin/addons-list.php
index 71e10673..2538f36f 100644
--- a/templates/admin/addons-list.php
+++ b/templates/admin/addons-list.php
@@ -34,10 +34,10 @@
esc_html__('Field', 'woocommerce-product-addon'),
- 'feature'=>esc_html__('Feature', 'woocommerce-product-addon'),
- ];
+ $types = array(
+ 'field' => esc_html__( 'Field', 'woocommerce-product-addon' ),
+ 'feature' => esc_html__( 'Feature', 'woocommerce-product-addon' ),
+ );
$addon_title = isset( $meta['title'] ) ? $meta['title'] : '';
$addon_desc = isset( $meta['desc'] ) ? $meta['desc'] : '';
@@ -53,7 +53,7 @@
@@ -63,27 +63,27 @@
-
+
-
- " target="_blank">
+