diff --git a/.wp-env.json b/.wp-env.json
new file mode 100644
index 0000000..2989f73
--- /dev/null
+++ b/.wp-env.json
@@ -0,0 +1,3 @@
+{
+ "plugins": [ "." ]
+}
diff --git a/build/post-type/block.json b/build/post-type/block.json
index 89b513f..b74dc0c 100644
--- a/build/post-type/block.json
+++ b/build/post-type/block.json
@@ -56,6 +56,14 @@
"showLabel": {
"type": "boolean",
"default": true
+ },
+ "displayType": {
+ "type": "string",
+ "default": "select"
+ },
+ "layoutDirection": {
+ "type": "string",
+ "default": "vertical"
}
},
"textdomain": "query-filter",
diff --git a/build/post-type/index-rtl.css b/build/post-type/index-rtl.css
new file mode 100644
index 0000000..5943bcd
--- /dev/null
+++ b/build/post-type/index-rtl.css
@@ -0,0 +1 @@
+@view-transition{navigation:auto}.wp-block-query-filter{display:flex;flex-direction:column;justify-content:stretch}.wp-block-query-filter__checkbox-group,.wp-block-query-filter__radio-group{display:flex;flex-direction:column;gap:.5rem}.wp-block-query-filter__checkbox-group label,.wp-block-query-filter__radio-group label{align-items:center;cursor:pointer;display:flex;gap:.5rem;padding:.25rem 0}.wp-block-query-filter__checkbox-group input,.wp-block-query-filter__radio-group input{margin:0}.wp-block-query-filter__checkbox-group.horizontal,.wp-block-query-filter__radio-group.horizontal{flex-direction:row;flex-wrap:wrap;gap:1rem}
diff --git a/build/post-type/index.asset.php b/build/post-type/index.asset.php
index ff3a7fb..c114f80 100644
--- a/build/post-type/index.asset.php
+++ b/build/post-type/index.asset.php
@@ -1 +1 @@
- array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-i18n'), 'version' => 'ad8227c21a432607ccaf');
+ array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-i18n'), 'version' => '9f82697921081e520599');
diff --git a/build/post-type/index.css b/build/post-type/index.css
new file mode 100644
index 0000000..5943bcd
--- /dev/null
+++ b/build/post-type/index.css
@@ -0,0 +1 @@
+@view-transition{navigation:auto}.wp-block-query-filter{display:flex;flex-direction:column;justify-content:stretch}.wp-block-query-filter__checkbox-group,.wp-block-query-filter__radio-group{display:flex;flex-direction:column;gap:.5rem}.wp-block-query-filter__checkbox-group label,.wp-block-query-filter__radio-group label{align-items:center;cursor:pointer;display:flex;gap:.5rem;padding:.25rem 0}.wp-block-query-filter__checkbox-group input,.wp-block-query-filter__radio-group input{margin:0}.wp-block-query-filter__checkbox-group.horizontal,.wp-block-query-filter__radio-group.horizontal{flex-direction:row;flex-wrap:wrap;gap:1rem}
diff --git a/build/post-type/index.js b/build/post-type/index.js
index 67b97d8..4fe7f98 100644
--- a/build/post-type/index.js
+++ b/build/post-type/index.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.blocks,l=window.wp.i18n,t=window.wp.blockEditor,r=window.wp.components,o=window.wp.data,s=window.ReactJSXRuntime,i=JSON.parse('{"UU":"query-filter/post-type"}');(0,e.registerBlockType)(i.UU,{edit:function({attributes:e,setAttributes:i,context:n}){const{emptyLabel:a,label:p,showLabel:c}=e,u=(0,o.useSelect)((e=>(e("core").getPostTypes({per_page:100})||[]).filter((e=>e.viewable))||[]),[]);let y=(n.query.postType||"").split(",").map((e=>e.trim()));Array.isArray(n.query.multiple_posts)&&(y=y.concat(n.query.multiple_posts));const _=y.map((e=>u.find((l=>l.slug===e))||{slug:e,name:e}));return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.InspectorControls,{children:(0,s.jsxs)(r.PanelBody,{title:(0,l.__)("Post Type Settings","query-filter"),children:[(0,s.jsx)(r.TextControl,{label:(0,l.__)("Label","query-filter"),value:p,defaultValue:(0,l.__)("Content Type","query-filter"),help:(0,l.__)("If empty then no label will be shown","query-filter"),onChange:e=>i({label:e})}),(0,s.jsx)(r.ToggleControl,{label:(0,l.__)("Show Label","query-filter"),checked:c,onChange:e=>i({showLabel:e})}),(0,s.jsx)(r.TextControl,{label:(0,l.__)("Empty Choice Label","query-filter"),value:a,placeholder:(0,l.__)("All","query-filter"),onChange:e=>i({emptyLabel:e})})]})}),(0,s.jsxs)("div",{...(0,t.useBlockProps)({className:"wp-block-query-filter"}),children:[c&&(0,s.jsx)("label",{className:"wp-block-query-filter-post-type__label wp-block-query-filter__label",children:p||(0,l.__)("Content Type","query-filter")}),(0,s.jsxs)("select",{className:"wp-block-query-filter-post-type__select wp-block-query-filter__select",inert:!0,children:[(0,s.jsx)("option",{children:a||(0,l.__)("All","query-filter")}),_.map((e=>(0,s.jsx)("option",{children:e.name},e.slug)))]})]})]})}})})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.blocks,l=window.wp.i18n,t=window.wp.blockEditor,r=window.wp.components,o=window.wp.data,i=window.ReactJSXRuntime,a=JSON.parse('{"UU":"query-filter/post-type"}');(0,e.registerBlockType)(a.UU,{edit:function({attributes:e,setAttributes:a,context:n}){const{emptyLabel:s,label:p,showLabel:c,displayType:u,layoutDirection:_}=e,y=(0,o.useSelect)((e=>(e("core").getPostTypes({per_page:100})||[]).filter((e=>e.viewable))||[]),[]);let b=(n.query.postType||"").split(",").map((e=>e.trim()));Array.isArray(n.query.multiple_posts)&&(b=b.concat(n.query.multiple_posts));const d=b.map((e=>y.find((l=>l.slug===e))||{slug:e,name:e}));return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.InspectorControls,{children:(0,i.jsxs)(r.PanelBody,{title:(0,l.__)("Post Type Settings","query-filter"),children:[(0,i.jsx)(r.SelectControl,{label:(0,l.__)("Display Type","query-filter"),value:u,options:[{label:(0,l.__)("Select (Dropdown)","query-filter"),value:"select"},{label:(0,l.__)("Radio (Single Choice)","query-filter"),value:"radio"},{label:(0,l.__)("Checkbox (Multiple Choice)","query-filter"),value:"checkbox"}],onChange:e=>a({displayType:e})}),("radio"===u||"checkbox"===u)&&(0,i.jsxs)(r.__experimentalToggleGroupControl,{label:(0,l.__)("Layout Direction","query-filter"),value:_,onChange:e=>a({layoutDirection:e}),isBlock:!0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,children:[(0,i.jsx)(r.__experimentalToggleGroupControlOption,{value:"vertical",label:(0,l.__)("Vertical","query-filter")}),(0,i.jsx)(r.__experimentalToggleGroupControlOption,{value:"horizontal",label:(0,l.__)("Horizontal","query-filter")})]}),(0,i.jsx)(r.TextControl,{label:(0,l.__)("Label","query-filter"),value:p,defaultValue:(0,l.__)("Content Type","query-filter"),help:(0,l.__)("If empty then no label will be shown","query-filter"),onChange:e=>a({label:e})}),(0,i.jsx)(r.ToggleControl,{label:(0,l.__)("Show Label","query-filter"),checked:c,onChange:e=>a({showLabel:e})}),(0,i.jsx)(r.TextControl,{label:(0,l.__)("Empty Choice Label","query-filter"),value:s,placeholder:(0,l.__)("All","query-filter"),onChange:e=>a({emptyLabel:e})})]})}),(0,i.jsxs)("div",{...(0,t.useBlockProps)({className:"wp-block-query-filter"}),children:[c&&(0,i.jsx)("label",{className:"wp-block-query-filter-post-type__label wp-block-query-filter__label",children:p||(0,l.__)("Content Type","query-filter")}),"select"===u&&(0,i.jsxs)("select",{className:"wp-block-query-filter-post-type__select wp-block-query-filter__select",inert:!0,children:[(0,i.jsx)("option",{children:s||(0,l.__)("All","query-filter")}),d.map((e=>(0,i.jsx)("option",{children:e.name},e.slug)))]}),"radio"===u&&(0,i.jsxs)("div",{className:"wp-block-query-filter-post-type__radio-group wp-block-query-filter__radio-group"+("horizontal"===_?" horizontal":""),children:[(0,i.jsxs)("label",{children:[(0,i.jsx)("input",{type:"radio",name:"post-type-preview",defaultChecked:!0,inert:!0}),s||(0,l.__)("All","query-filter")]}),d.map((e=>(0,i.jsxs)("label",{children:[(0,i.jsx)("input",{type:"radio",name:"post-type-preview",inert:!0}),e.name]},e.slug)))]}),"checkbox"===u&&(0,i.jsx)("div",{className:"wp-block-query-filter-post-type__checkbox-group wp-block-query-filter__checkbox-group"+("horizontal"===_?" horizontal":""),children:d.map((e=>(0,i.jsxs)("label",{children:[(0,i.jsx)("input",{type:"checkbox",inert:!0}),e.name]},e.slug)))})]})]})}})})();
\ No newline at end of file
diff --git a/build/post-type/render.php b/build/post-type/render.php
index 70d43f2..5edc85e 100644
--- a/build/post-type/render.php
+++ b/build/post-type/render.php
@@ -2,53 +2,93 @@
global $wp_query;
$id = 'query-filter-' . wp_generate_uuid4();
+$display_type = $attributes['displayType'] ?? 'select';
+$layout_direction = $attributes['layoutDirection'] ?? 'vertical';
-if ( $block->context['query']['inherit'] ) {
+if ($block->context['query']['inherit']) {
$query_var = 'query-post_type';
$page_var = 'page';
- $base_url = str_replace( '/page/' . get_query_var( 'paged' ), '', remove_query_arg( [ $query_var, $page_var ] ) );
+ $base_url = str_replace('/page/' . get_query_var('paged'), '', remove_query_arg([$query_var, $page_var]));
} else {
$query_id = $block->context['queryId'] ?? 0;
- $query_var = sprintf( 'query-%d-post_type', $query_id );
- $page_var = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
- $base_url = remove_query_arg( [ $query_var, $page_var ] );
+ $query_var = sprintf('query-%d-post_type', $query_id);
+ $page_var = isset($block->context['queryId']) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
+ $base_url = remove_query_arg([$query_var, $page_var]);
}
-$post_types = array_map( 'trim', explode( ',', $block->context['query']['postType'] ?? 'post' ) );
+$post_types = array_map('trim', explode(',', $block->context['query']['postType'] ?? 'post'));
// Support for enhanced query block.
-if ( isset( $block->context['query']['multiple_posts'] ) && is_array( $block->context['query']['multiple_posts'] ) ) {
- $post_types = array_merge( $post_types, $block->context['query']['multiple_posts'] );
+if (isset($block->context['query']['multiple_posts']) && is_array($block->context['query']['multiple_posts'])) {
+ $post_types = array_merge($post_types, $block->context['query']['multiple_posts']);
}
// Fill in inherited query types.
-if ( $block->context['query']['inherit'] ) {
- $inherited_post_types = $wp_query->get( 'query-filter-post_type' ) === 'any'
- ? get_post_types( [ 'public' => true, 'exclude_from_search' => false ] )
- : (array) $wp_query->get( 'query-filter-post_type' );
-
- $post_types = array_merge( $post_types, $inherited_post_types );
- if ( ! get_option( 'wp_attachment_pages_enabled' ) ) {
- $post_types = array_diff( $post_types, [ 'attachment' ] );
+if ($block->context['query']['inherit']) {
+ $inherited_post_types = $wp_query->get('query-filter-post_type') === 'any'
+ ? get_post_types(['public' => true, 'exclude_from_search' => false])
+ : (array) $wp_query->get('query-filter-post_type');
+
+ $post_types = array_merge($post_types, $inherited_post_types);
+ if (! get_option('wp_attachment_pages_enabled')) {
+ $post_types = array_diff($post_types, ['attachment']);
}
}
-$post_types = array_unique( $post_types );
-$post_types = array_map( 'get_post_type_object', $post_types );
+$post_types = array_unique($post_types);
+$post_types = array_map('get_post_type_object', $post_types);
-if ( empty( $post_types ) ) {
+if (empty($post_types)) {
return;
}
?>
-
'wp-block-query-filter' ] ); ?> data-wp-interactive="query-filter" data-wp-context="{}">
-
\ No newline at end of file
diff --git a/build/taxonomy/block.json b/build/taxonomy/block.json
index 6cdb93d..6ef5947 100644
--- a/build/taxonomy/block.json
+++ b/build/taxonomy/block.json
@@ -59,11 +59,19 @@
"showLabel": {
"type": "boolean",
"default": true
+ },
+ "displayType": {
+ "type": "string",
+ "default": "select"
+ },
+ "layoutDirection": {
+ "type": "string",
+ "default": "vertical"
}
},
"textdomain": "query-filter",
"editorScript": "file:./index.js",
- "style": "query-filter-view",
+ "style": "file:./index.css",
"viewScriptModule": "file:./view.js",
"render": "file:./render.php"
}
\ No newline at end of file
diff --git a/build/taxonomy/index-rtl.css b/build/taxonomy/index-rtl.css
index 39bc4f5..5943bcd 100644
--- a/build/taxonomy/index-rtl.css
+++ b/build/taxonomy/index-rtl.css
@@ -1 +1 @@
-@view-transition{navigation:auto}.wp-block-query-filter{display:flex;flex-direction:column;justify-content:stretch}
+@view-transition{navigation:auto}.wp-block-query-filter{display:flex;flex-direction:column;justify-content:stretch}.wp-block-query-filter__checkbox-group,.wp-block-query-filter__radio-group{display:flex;flex-direction:column;gap:.5rem}.wp-block-query-filter__checkbox-group label,.wp-block-query-filter__radio-group label{align-items:center;cursor:pointer;display:flex;gap:.5rem;padding:.25rem 0}.wp-block-query-filter__checkbox-group input,.wp-block-query-filter__radio-group input{margin:0}.wp-block-query-filter__checkbox-group.horizontal,.wp-block-query-filter__radio-group.horizontal{flex-direction:row;flex-wrap:wrap;gap:1rem}
diff --git a/build/taxonomy/index.asset.php b/build/taxonomy/index.asset.php
index 4b3ef34..efe8b7c 100644
--- a/build/taxonomy/index.asset.php
+++ b/build/taxonomy/index.asset.php
@@ -1 +1 @@
- array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-i18n'), 'version' => 'f1456d24ac8e3da497aa');
+ array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-i18n'), 'version' => '2f97bf84853a01e2ed52');
diff --git a/build/taxonomy/index.css b/build/taxonomy/index.css
index 39bc4f5..5943bcd 100644
--- a/build/taxonomy/index.css
+++ b/build/taxonomy/index.css
@@ -1 +1 @@
-@view-transition{navigation:auto}.wp-block-query-filter{display:flex;flex-direction:column;justify-content:stretch}
+@view-transition{navigation:auto}.wp-block-query-filter{display:flex;flex-direction:column;justify-content:stretch}.wp-block-query-filter__checkbox-group,.wp-block-query-filter__radio-group{display:flex;flex-direction:column;gap:.5rem}.wp-block-query-filter__checkbox-group label,.wp-block-query-filter__radio-group label{align-items:center;cursor:pointer;display:flex;gap:.5rem;padding:.25rem 0}.wp-block-query-filter__checkbox-group input,.wp-block-query-filter__radio-group input{margin:0}.wp-block-query-filter__checkbox-group.horizontal,.wp-block-query-filter__radio-group.horizontal{flex-direction:row;flex-wrap:wrap;gap:1rem}
diff --git a/build/taxonomy/index.js b/build/taxonomy/index.js
index 5868836..dab208b 100644
--- a/build/taxonomy/index.js
+++ b/build/taxonomy/index.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.blocks,l=window.wp.i18n,t=window.wp.blockEditor,o=window.wp.components,n=window.wp.data,r=window.ReactJSXRuntime,a=JSON.parse('{"UU":"query-filter/taxonomy"}');(0,e.registerBlockType)(a.UU,{edit:function({attributes:e,setAttributes:a}){const{taxonomy:i,emptyLabel:s,label:c,showLabel:u}=e,b=(0,n.useSelect)((e=>{const l=(e("core").getTaxonomies({per_page:100})||[]).filter((e=>e.visibility.publicly_queryable));return l&&l.length>0&&!i&&a({taxonomy:l[0].slug,label:l[0].name}),l}),[i]),y=(0,n.useSelect)((e=>e("core").getEntityRecords("taxonomy",i,{number:50})||[]),[i]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.InspectorControls,{children:(0,r.jsxs)(o.PanelBody,{title:(0,l.__)("Taxonomy Settings","query-filter"),children:[(0,r.jsx)(o.SelectControl,{label:(0,l.__)("Select Taxonomy","query-filter"),value:i,options:(b||[]).map((e=>({label:e.name,value:e.slug}))),onChange:e=>a({taxonomy:e,label:b.find((l=>l.slug===e)).name})}),(0,r.jsx)(o.TextControl,{label:(0,l.__)("Label","query-filter"),value:c,help:(0,l.__)("If empty then no label will be shown","query-filter"),onChange:e=>a({label:e})}),(0,r.jsx)(o.ToggleControl,{label:(0,l.__)("Show Label","query-filter"),checked:u,onChange:e=>a({showLabel:e})}),(0,r.jsx)(o.TextControl,{label:(0,l.__)("Empty Choice Label","query-filter"),value:s,placeholder:(0,l.__)("All","query-filter"),onChange:e=>a({emptyLabel:e})})]})}),(0,r.jsxs)("div",{...(0,t.useBlockProps)({className:"wp-block-query-filter"}),children:[u&&(0,r.jsx)("label",{className:"wp-block-query-filter-taxonomy__label wp-block-query-filter__label",children:c}),(0,r.jsxs)("select",{className:"wp-block-query-filter-taxonomy__select wp-block-query-filter__select",inert:!0,children:[(0,r.jsx)("option",{children:s||(0,l.__)("All","query-filter")}),y.map((e=>(0,r.jsx)("option",{children:e.name},e.slug)))]})]})]})}})})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.blocks,l=window.wp.i18n,o=window.wp.blockEditor,t=window.wp.components,r=window.wp.data,a=window.ReactJSXRuntime,i=JSON.parse('{"UU":"query-filter/taxonomy"}');(0,e.registerBlockType)(i.UU,{edit:function({attributes:e,setAttributes:i}){const{taxonomy:n,emptyLabel:s,label:c,showLabel:u,displayType:p,layoutDirection:y}=e,_=(0,r.useSelect)((e=>{const l=(e("core").getTaxonomies({per_page:100})||[]).filter((e=>e.visibility.publicly_queryable));return l&&l.length>0&&!n&&i({taxonomy:l[0].slug,label:l[0].name}),l}),[n]),b=(0,r.useSelect)((e=>e("core").getEntityRecords("taxonomy",n,{number:50})||[]),[n]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.InspectorControls,{children:(0,a.jsxs)(t.PanelBody,{title:(0,l.__)("Taxonomy Settings","query-filter"),children:[(0,a.jsx)(t.SelectControl,{label:(0,l.__)("Select Taxonomy","query-filter"),value:n,options:(_||[]).map((e=>({label:e.name,value:e.slug}))),onChange:e=>i({taxonomy:e,label:_.find((l=>l.slug===e)).name})}),(0,a.jsx)(t.SelectControl,{label:(0,l.__)("Display Type","query-filter"),value:p,options:[{label:(0,l.__)("Select (Dropdown)","query-filter"),value:"select"},{label:(0,l.__)("Radio (Single Choice)","query-filter"),value:"radio"},{label:(0,l.__)("Checkbox (Multiple Choice)","query-filter"),value:"checkbox"}],onChange:e=>i({displayType:e})}),("radio"===p||"checkbox"===p)&&(0,a.jsxs)(t.__experimentalToggleGroupControl,{label:(0,l.__)("Layout Direction","query-filter"),value:y,onChange:e=>i({layoutDirection:e}),isBlock:!0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,children:[(0,a.jsx)(t.__experimentalToggleGroupControlOption,{value:"vertical",label:(0,l.__)("Vertical","query-filter")}),(0,a.jsx)(t.__experimentalToggleGroupControlOption,{value:"horizontal",label:(0,l.__)("Horizontal","query-filter")})]}),(0,a.jsx)(t.TextControl,{label:(0,l.__)("Label","query-filter"),value:c,help:(0,l.__)("If empty then no label will be shown","query-filter"),onChange:e=>i({label:e})}),(0,a.jsx)(t.ToggleControl,{label:(0,l.__)("Show Label","query-filter"),checked:u,onChange:e=>i({showLabel:e})}),(0,a.jsx)(t.TextControl,{label:(0,l.__)("Empty Choice Label","query-filter"),value:s,placeholder:(0,l.__)("All","query-filter"),onChange:e=>i({emptyLabel:e})})]})}),(0,a.jsxs)("div",{...(0,o.useBlockProps)({className:"wp-block-query-filter"}),children:[u&&(0,a.jsx)("label",{className:"wp-block-query-filter-taxonomy__label wp-block-query-filter__label",children:c}),"select"===p&&(0,a.jsxs)("select",{className:"wp-block-query-filter-taxonomy__select wp-block-query-filter__select",inert:!0,children:[(0,a.jsx)("option",{children:s||(0,l.__)("All","query-filter")}),b.map((e=>(0,a.jsx)("option",{children:e.name},e.slug)))]}),"radio"===p&&(0,a.jsxs)("div",{className:"wp-block-query-filter-taxonomy__radio-group wp-block-query-filter__radio-group"+("horizontal"===y?" horizontal":""),children:[(0,a.jsxs)("label",{children:[(0,a.jsx)("input",{type:"radio",name:"taxonomy-preview",defaultChecked:!0,inert:!0}),s||(0,l.__)("All","query-filter")]}),b.map((e=>(0,a.jsxs)("label",{children:[(0,a.jsx)("input",{type:"radio",name:"taxonomy-preview",inert:!0}),e.name]},e.slug)))]}),"checkbox"===p&&(0,a.jsx)("div",{className:"wp-block-query-filter-taxonomy__checkbox-group wp-block-query-filter__checkbox-group"+("horizontal"===y?" horizontal":""),children:b.map((e=>(0,a.jsxs)("label",{children:[(0,a.jsx)("input",{type:"checkbox",inert:!0}),e.name]},e.slug)))})]})]})}})})();
\ No newline at end of file
diff --git a/build/taxonomy/render.php b/build/taxonomy/render.php
index 01d9800..7e11285 100644
--- a/build/taxonomy/render.php
+++ b/build/taxonomy/render.php
@@ -1,42 +1,82 @@
context['query']['inherit'] ) {
- $query_var = sprintf( 'query-%s', $attributes['taxonomy'] );
- $page_var = 'page';
- $base_url = str_replace( '/page/' . get_query_var( 'paged' ), '', remove_query_arg( [ $query_var, $page_var ] ) );
-} else {
+if (empty($block->context['query']['inherit'])) {
$query_id = $block->context['queryId'] ?? 0;
- $query_var = sprintf( 'query-%d-%s', $query_id, $attributes['taxonomy'] );
- $page_var = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
- $base_url = remove_query_arg( [ $query_var, $page_var ] );
+ $query_var = sprintf('query-%d-%s', $query_id, $attributes['taxonomy']);
+ $page_var = isset($block->context['queryId']) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
+ $base_url = remove_query_arg([$query_var, $page_var]);
+} else {
+ $query_var = sprintf('query-%s', $attributes['taxonomy']);
+ $page_var = 'page';
+ $base_url = str_replace('/page/' . get_query_var('paged'), '', remove_query_arg([$query_var, $page_var]));
}
-$terms = get_terms( [
+$terms = get_terms([
'hide_empty' => true,
'taxonomy' => $attributes['taxonomy'],
'number' => 100,
-] );
+]);
-if ( is_wp_error( $terms ) || empty( $terms ) ) {
+if (is_wp_error($terms) || empty($terms)) {
return;
}
?>
- 'wp-block-query-filter' ] ); ?> data-wp-interactive="query-filter" data-wp-context="{}">
-
- label ); ?>
+ 'wp-block-query-filter']); ?> data-wp-interactive="query-filter" data-wp-context="{}">
+
+ label); ?>
-
-
+
+
+
+
+
+
+ />
+
+
+
+
+ slug, wp_unslash($_GET[$query_var] ?? '')); ?> />
+ name); ?>
+
+
+
+
+
+
+
+ slug, $selected_terms);
+ $new_terms = $is_checked
+ ? array_diff($selected_terms, [$term->slug])
+ : array_merge($selected_terms, [$term->slug]);
+ $new_terms = array_filter($new_terms);
+ $checkbox_url = empty($new_terms)
+ ? $base_url
+ : add_query_arg([$query_var => implode(',', $new_terms), $page_var => false], $base_url);
+ ?>
+
+ />
+ name); ?>
+
+
+
+
+
\ No newline at end of file
diff --git a/inc/namespace.php b/inc/namespace.php
index 0bd4afa..9af05f0 100644
--- a/inc/namespace.php
+++ b/inc/namespace.php
@@ -1,4 +1,5 @@
WP_Query as parsed by the block context.
*/
-function filter_query_loop_block_query_vars( array $query, \WP_Block $block, int $page ) : array {
- if ( isset( $block->context['queryId'] ) ) {
+function filter_query_loop_block_query_vars(array $query, \WP_Block $block, int $page): array
+{
+ if (isset($block->context['queryId'])) {
$query['query_id'] = $block->context['queryId'];
}
@@ -75,10 +63,11 @@ function filter_query_loop_block_query_vars( array $query, \WP_Block $block, int
*
* @param WP_Query $query The WP_Query instance (passed by reference).
*/
-function pre_get_posts_transpose_query_vars( WP_Query $query ) : void {
- $query_id = $query->get( 'query_id', null );
+function pre_get_posts_transpose_query_vars(WP_Query $query): void
+{
+ $query_id = $query->get('query_id', null);
- if ( ! $query->is_main_query() && is_null( $query_id ) ) {
+ if (! $query->is_main_query() && is_null($query_id)) {
return;
}
@@ -90,32 +79,49 @@ function pre_get_posts_transpose_query_vars( WP_Query $query ) : void {
];
// Preserve valid params for later retrieval.
- foreach ( $valid_keys as $key => $default ) {
+ foreach ($valid_keys as $key => $default) {
$query->set(
"query-filter-$key",
- $query->get( $key, $default )
+ $query->get($key, $default)
);
}
// Map get params to this query.
- foreach ( $_GET as $key => $value ) {
- if ( strpos( $key, $prefix ) === 0 ) {
- $key = str_replace( $prefix, '', $key );
- $value = sanitize_text_field( urldecode( wp_unslash( $value ) ) );
+ foreach ($_GET as $key => $value) {
+ if (strpos($key, $prefix) === 0) {
+ $key = str_replace($prefix, '', $key);
+ $value = sanitize_text_field(urldecode(wp_unslash($value)));
// Handle taxonomies specifically.
- if ( get_taxonomy( $key ) ) {
+ if (get_taxonomy($key)) {
$tax_query['relation'] = 'AND';
- $tax_query[] = [
- 'taxonomy' => $key,
- 'terms' => [ $value ],
- 'field' => 'slug',
- ];
+
+ // Handle multiple values separated by commas (for checkbox mode)
+ $values = explode(',', $value);
+ $values = array_map('trim', $values);
+ $values = array_filter($values);
+
+ if (count($values) > 1) {
+ // Multiple values: OR logic (posts with ANY of these terms)
+ $tax_query[] = [
+ 'taxonomy' => $key,
+ 'terms' => $values,
+ 'field' => 'slug',
+ 'operator' => 'IN', // This creates OR logic
+ ];
+ } else {
+ // Single value: normal behavior
+ $tax_query[] = [
+ 'taxonomy' => $key,
+ 'terms' => $values,
+ 'field' => 'slug',
+ ];
+ }
} else {
// Other options should map directly to query vars.
- $key = sanitize_key( $key );
+ $key = sanitize_key($key);
- if ( ! in_array( $key, array_keys( $valid_keys ), true ) ) {
+ if (! in_array($key, array_keys($valid_keys), true)) {
continue;
}
@@ -127,18 +133,18 @@ function pre_get_posts_transpose_query_vars( WP_Query $query ) : void {
}
}
- if ( ! empty( $tax_query ) ) {
- $existing_query = $query->get( 'tax_query', [] );
+ if (! empty($tax_query)) {
+ $existing_query = $query->get('tax_query', []);
- if ( ! empty( $existing_query ) ) {
+ if (! empty($existing_query)) {
$tax_query = [
'relation' => 'AND',
- [ $existing_query ],
+ [$existing_query],
$tax_query,
];
}
- $query->set( 'tax_query', $tax_query );
+ $query->set('tax_query', $tax_query);
}
}
@@ -148,10 +154,11 @@ function pre_get_posts_transpose_query_vars( WP_Query $query ) : void {
* @param array $metadata Metadata provided for registering a block type.
* @return array Array of metadata for registering a block type.
*/
-function filter_block_type_metadata( array $metadata ) : array {
+function filter_block_type_metadata(array $metadata): array
+{
// Add query context to search block.
- if ( $metadata['name'] === 'core/search' ) {
- $metadata['usesContext'] = array_merge( $metadata['usesContext'] ?? [], [ 'queryId', 'query' ] );
+ if ($metadata['name'] === 'core/search') {
+ $metadata['usesContext'] = array_merge($metadata['usesContext'] ?? [], ['queryId', 'query']);
}
return $metadata;
@@ -165,42 +172,43 @@ function filter_block_type_metadata( array $metadata ) : array {
* @param \WP_Block $instance The block instance.
* @return string The block content.
*/
-function render_block_search( string $block_content, array $block, \WP_Block $instance ) : string {
- if ( empty( $instance->context['query'] ) ) {
+function render_block_search(string $block_content, array $block, \WP_Block $instance): string
+{
+ if (empty($instance->context['query'])) {
return $block_content;
}
- wp_enqueue_script_module( 'query-filter-taxonomy-view-script-module' );
+ wp_enqueue_script_module('query-filter-taxonomy-view-script-module');
- $query_var = empty( $instance->context['query']['inherit'] )
- ? sprintf( 'query-%d-s', $instance->context['queryId'] ?? 0 )
+ $query_var = empty($instance->context['query']['inherit'])
+ ? sprintf('query-%d-s', $instance->context['queryId'] ?? 0)
: 's';
- $action = str_replace( '/page/'. get_query_var( 'paged', 1 ), '', add_query_arg( [ $query_var => '' ] ) );
+ $action = str_replace('/page/' . get_query_var('paged', 1), '', add_query_arg([$query_var => '']));
// Note sanitize_text_field trims whitespace from start/end of string causing unexpected behaviour.
- $value = wp_unslash( $_GET[ $query_var ] ?? '' );
- $value = urldecode( $value );
- $value = wp_check_invalid_utf8( $value );
- $value = wp_pre_kses_less_than( $value );
- $value = strip_tags( $value );
+ $value = wp_unslash($_GET[$query_var] ?? '');
+ $value = urldecode($value);
+ $value = wp_check_invalid_utf8($value);
+ $value = wp_pre_kses_less_than($value);
+ $value = strip_tags($value);
- wp_interactivity_state( 'query-filter', [
+ wp_interactivity_state('query-filter', [
'searchValue' => $value,
- ] );
-
- $block_content = new WP_HTML_Tag_Processor( $block_content );
- $block_content->next_tag( [ 'tag_name' => 'form' ] );
- $block_content->set_attribute( 'action', $action );
- $block_content->set_attribute( 'data-wp-interactive', 'query-filter' );
- $block_content->set_attribute( 'data-wp-on--submit', 'actions.search' );
- $block_content->set_attribute( 'data-wp-context', '{searchValue:""}' );
- $block_content->next_tag( [ 'tag_name' => 'input', 'class_name' => 'wp-block-search__input' ] );
- $block_content->set_attribute( 'name', $query_var );
- $block_content->set_attribute( 'inputmode', 'search' );
- $block_content->set_attribute( 'value', $value );
- $block_content->set_attribute( 'data-wp-bind--value', 'state.searchValue' );
- $block_content->set_attribute( 'data-wp-on--input', 'actions.search' );
+ ]);
+
+ $block_content = new WP_HTML_Tag_Processor($block_content);
+ $block_content->next_tag(['tag_name' => 'form']);
+ $block_content->set_attribute('action', $action);
+ $block_content->set_attribute('data-wp-interactive', 'query-filter');
+ $block_content->set_attribute('data-wp-on--submit', 'actions.search');
+ $block_content->set_attribute('data-wp-context', '{searchValue:""}');
+ $block_content->next_tag(['tag_name' => 'input', 'class_name' => 'wp-block-search__input']);
+ $block_content->set_attribute('name', $query_var);
+ $block_content->set_attribute('inputmode', 'search');
+ $block_content->set_attribute('value', $value);
+ $block_content->set_attribute('data-wp-bind--value', 'state.searchValue');
+ $block_content->set_attribute('data-wp-on--input', 'actions.search');
return (string) $block_content;
}
@@ -212,12 +220,13 @@ function render_block_search( string $block_content, array $block, \WP_Block $in
* @param array $block Parsed block.
* @return string
*/
-function render_block_query( $block_content, $block ) {
- $block_content = new WP_HTML_Tag_Processor( $block_content );
+function render_block_query($block_content, $block)
+{
+ $block_content = new WP_HTML_Tag_Processor($block_content);
$block_content->next_tag();
// Always allow region updates on interactivity, use standard core region naming.
- $block_content->set_attribute( 'data-wp-router-region', 'query-' . ( $block['attrs']['queryId'] ?? 0 ) );
+ $block_content->set_attribute('data-wp-router-region', 'query-' . ($block['attrs']['queryId'] ?? 0));
return (string) $block_content;
}
diff --git a/package-lock.json b/package-lock.json
index 6e6203b..e5f1064 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,9 @@
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/scripts": "^28.6.0"
+ },
+ "devDependencies": {
+ "@wordpress/env": "^10.25.0"
}
},
"node_modules/@ampproject/remapping": {
@@ -2072,6 +2075,448 @@
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"deprecated": "Use @eslint/object-schema instead"
},
+ "node_modules/@inquirer/checkbox": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.8.tgz",
+ "integrity": "sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/figures": "^1.0.12",
+ "@inquirer/type": "^3.0.7",
+ "ansi-escapes": "^4.3.2",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/confirm": {
+ "version": "5.1.12",
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.12.tgz",
+ "integrity": "sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/core": {
+ "version": "10.1.13",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.13.tgz",
+ "integrity": "sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/figures": "^1.0.12",
+ "@inquirer/type": "^3.0.7",
+ "ansi-escapes": "^4.3.2",
+ "cli-width": "^4.1.0",
+ "mute-stream": "^2.0.0",
+ "signal-exit": "^4.1.0",
+ "wrap-ansi": "^6.2.0",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "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,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "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": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@inquirer/editor": {
+ "version": "4.2.13",
+ "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.13.tgz",
+ "integrity": "sha512-WbicD9SUQt/K8O5Vyk9iC2ojq5RHoCLK6itpp2fHsWe44VxxcA9z3GTWlvjSTGmMQpZr+lbVmrxdHcumJoLbMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7",
+ "external-editor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/expand": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.15.tgz",
+ "integrity": "sha512-4Y+pbr/U9Qcvf+N/goHzPEXiHH8680lM3Dr3Y9h9FFw4gHS+zVpbj8LfbKWIb/jayIB4aSO4pWiBTrBYWkvi5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/figures": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.12.tgz",
+ "integrity": "sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@inquirer/input": {
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.12.tgz",
+ "integrity": "sha512-xJ6PFZpDjC+tC1P8ImGprgcsrzQRsUh9aH3IZixm1lAZFK49UGHxM3ltFfuInN2kPYNfyoPRh+tU4ftsjPLKqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/number": {
+ "version": "3.0.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.15.tgz",
+ "integrity": "sha512-xWg+iYfqdhRiM55MvqiTCleHzszpoigUpN5+t1OMcRkJrUrw7va3AzXaxvS+Ak7Gny0j2mFSTv2JJj8sMtbV2g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/password": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.15.tgz",
+ "integrity": "sha512-75CT2p43DGEnfGTaqFpbDC2p2EEMrq0S+IRrf9iJvYreMy5mAWj087+mdKyLHapUEPLjN10mNvABpGbk8Wdraw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7",
+ "ansi-escapes": "^4.3.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/prompts": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.5.3.tgz",
+ "integrity": "sha512-8YL0WiV7J86hVAxrh3fE5mDCzcTDe1670unmJRz6ArDgN+DBK1a0+rbnNWp4DUB5rPMwqD5ZP6YHl9KK1mbZRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/checkbox": "^4.1.8",
+ "@inquirer/confirm": "^5.1.12",
+ "@inquirer/editor": "^4.2.13",
+ "@inquirer/expand": "^4.0.15",
+ "@inquirer/input": "^4.1.12",
+ "@inquirer/number": "^3.0.15",
+ "@inquirer/password": "^4.0.15",
+ "@inquirer/rawlist": "^4.1.3",
+ "@inquirer/search": "^3.0.15",
+ "@inquirer/select": "^4.2.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/rawlist": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.3.tgz",
+ "integrity": "sha512-7XrV//6kwYumNDSsvJIPeAqa8+p7GJh7H5kRuxirct2cgOcSWwwNGoXDRgpNFbY/MG2vQ4ccIWCi8+IXXyFMZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/type": "^3.0.7",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/search": {
+ "version": "3.0.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.15.tgz",
+ "integrity": "sha512-YBMwPxYBrADqyvP4nNItpwkBnGGglAvCLVW8u4pRmmvOsHUtCAUIMbUrLX5B3tFL1/WsLGdQ2HNzkqswMs5Uaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/figures": "^1.0.12",
+ "@inquirer/type": "^3.0.7",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/select": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.3.tgz",
+ "integrity": "sha512-OAGhXU0Cvh0PhLz9xTF/kx6g6x+sP+PcyTiLvCrewI99P3BBeexD+VbuwkNDvqGkk3y2h5ZiWLeRP7BFlhkUDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/core": "^10.1.13",
+ "@inquirer/figures": "^1.0.12",
+ "@inquirer/type": "^3.0.7",
+ "ansi-escapes": "^4.3.2",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@inquirer/type": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.7.tgz",
+ "integrity": "sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "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": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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": {
+ "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/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "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": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"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",
@@ -2445,6 +2890,23 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1"
+ }
+ },
+ "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,
+ "license": "MIT"
+ },
"node_modules/@leichtgewicht/ip-codec": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
@@ -2490,6 +2952,17 @@
"node": ">= 8"
}
},
+ "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",
@@ -2786,6 +3259,19 @@
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
"integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="
},
+ "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,
+ "license": "MIT",
+ "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",
@@ -3045,6 +3531,19 @@
"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,
+ "license": "MIT",
+ "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",
@@ -3120,6 +3619,19 @@
"@types/node": "*"
}
},
+ "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,
+ "license": "MIT",
+ "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",
@@ -3181,6 +3693,13 @@
"@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,
+ "license": "MIT"
+ },
"node_modules/@types/http-errors": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
@@ -3235,6 +3754,16 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
},
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/mime": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
@@ -3286,6 +3815,16 @@
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
},
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
@@ -3906,6 +4445,120 @@
"@playwright/test": ">=1"
}
},
+ "node_modules/@wordpress/env": {
+ "version": "10.25.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.25.0.tgz",
+ "integrity": "sha512-jxChEEFmRhPbmn4KjHkdm5VE0NGZYiZ9U5T+QUkL1TTBc4AYPLTeOVQ0+hseIJUKY7dEjv26pJasKv6i2J/g4Q==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "@inquirer/prompts": "^7.2.0",
+ "chalk": "^4.0.0",
+ "copy-dir": "^1.3.0",
+ "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",
+ "terminal-link": "^2.0.0",
+ "yargs": "^17.3.0"
+ },
+ "bin": {
+ "wp-env": "bin/wp-env"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/env/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,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/@wordpress/env/node_modules/extract-zip": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+ "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ }
+ },
+ "node_modules/@wordpress/env/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "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"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@wordpress/env/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@wordpress/env/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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": {
+ "glob": "^10.3.7"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/@wordpress/eslint-plugin": {
"version": "20.3.0",
"resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-20.3.0.tgz",
@@ -4139,6 +4792,74 @@
"react-dom": "^18.0.0"
}
},
+ "node_modules/@wordpress/scripts/node_modules/array-union": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz",
+ "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/copy-webpack-plugin": {
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz",
+ "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "^3.2.7",
+ "glob-parent": "^6.0.1",
+ "globby": "^12.0.2",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 12.20.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/globby": {
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz",
+ "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==",
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^3.0.1",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.7",
+ "ignore": "^5.1.9",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@wordpress/stylelint-config": {
"version": "22.7.0",
"resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-22.7.0.tgz",
@@ -5151,6 +5872,51 @@
"node": ">= 0.8"
}
},
+ "node_modules/cacheable-lookup": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.6.0"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/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/call-bind": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
@@ -5303,6 +6069,13 @@
"node": ">=10"
}
},
+ "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,
+ "license": "MIT"
+ },
"node_modules/check-node-version": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz",
@@ -5426,10 +6199,46 @@
"del": "^4.1.1"
},
"engines": {
- "node": ">=8.9.0"
- },
- "peerDependencies": {
- "webpack": "*"
+ "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",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-width": {
+ "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": ">= 12"
}
},
"node_modules/cliui": {
@@ -5445,6 +6254,16 @@
"node": ">=12"
}
},
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/clone-deep": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz",
@@ -5460,6 +6279,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/clone-response": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -5583,6 +6415,62 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/concat-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/concat-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"node_modules/configstore": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
@@ -5665,69 +6553,12 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
- "node_modules/copy-webpack-plugin": {
- "version": "10.2.4",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz",
- "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==",
- "dependencies": {
- "fast-glob": "^3.2.7",
- "glob-parent": "^6.0.1",
- "globby": "^12.0.2",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0",
- "serialize-javascript": "^6.0.0"
- },
- "engines": {
- "node": ">= 12.20.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- }
- },
- "node_modules/copy-webpack-plugin/node_modules/array-union": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz",
- "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/copy-webpack-plugin/node_modules/globby": {
- "version": "12.2.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz",
- "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==",
- "dependencies": {
- "array-union": "^3.0.1",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.7",
- "ignore": "^5.1.9",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/copy-webpack-plugin/node_modules/slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "node_modules/copy-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz",
+ "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/core-js": {
"version": "3.38.1",
@@ -6252,6 +7083,35 @@
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
"integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
},
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/dedent": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
@@ -6328,6 +7188,29 @@
"node": ">= 10"
}
},
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -6505,6 +7388,32 @@
"node": ">=6"
}
},
+ "node_modules/docker-compose": {
+ "version": "0.24.8",
+ "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz",
+ "integrity": "sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yaml": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/docker-compose/node_modules/yaml": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
+ "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ }
+ },
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -6604,6 +7513,13 @@
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
},
+ "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/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -7946,6 +8862,34 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/external-editor/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/extract-zip": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
@@ -8310,6 +9254,90 @@
"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/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": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/foreground-child/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": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/foreground-child/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/foreground-child/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/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -8686,6 +9714,32 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/got": {
+ "version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/is": "^4.0.0",
+ "@szmarczak/http-timer": "^4.0.5",
+ "@types/cacheable-request": "^6.0.1",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^5.0.3",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "http2-wrapper": "^1.0.0-beta.5.2",
+ "lowercase-keys": "^2.0.0",
+ "p-cancelable": "^2.0.0",
+ "responselike": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -8929,6 +9983,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/http-cache-semantics": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
+ "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
"node_modules/http-deceiver": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
@@ -9011,6 +10072,33 @@
}
}
},
+ "node_modules/http2-wrapper": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ }
+ },
+ "node_modules/http2-wrapper/node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
@@ -9514,6 +10602,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -9920,6 +11018,22 @@
"set-function-name": "^2.0.1"
}
},
+ "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/jest": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
@@ -11124,6 +12238,16 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/lru_map": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
@@ -11475,6 +12599,16 @@
"node": ">=6"
}
},
+ "node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/min-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
@@ -11558,6 +12692,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/mitt": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
@@ -11583,6 +12727,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "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",
@@ -11613,6 +12770,16 @@
"multicast-dns": "cli.js"
}
},
+ "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,
+ "license": "ISC",
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
@@ -11762,6 +12929,19 @@
"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",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/npm-bundled": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
@@ -12086,6 +13266,141 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/ora": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz",
+ "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^3.0.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.2.0",
+ "is-interactive": "^1.0.0",
+ "log-symbols": "^3.0.0",
+ "mute-stream": "0.0.8",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ora/node_modules/chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ora/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/ora/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,
+ "license": "MIT"
+ },
+ "node_modules/ora/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/ora/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/log-symbols": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
+ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ora/node_modules/log-symbols/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,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/log-symbols/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,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/log-symbols/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -12094,6 +13409,26 @@
"node": ">=0.10.0"
}
},
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -12226,6 +13561,13 @@
"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/param-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
@@ -12347,6 +13689,30 @@
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
+ "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.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
@@ -13789,6 +15155,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/resolve-bin": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.4.3.tgz",
@@ -13836,6 +15209,33 @@
"node": ">=10"
}
},
+ "node_modules/responselike": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lowercase-keys": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/retry": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
@@ -14461,6 +15861,40 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
+ "node_modules/simple-git": {
+ "version": "3.28.0",
+ "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.28.0.tgz",
+ "integrity": "sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@kwsites/file-exists": "^1.1.1",
+ "@kwsites/promise-deferred": "^1.1.1",
+ "debug": "^4.4.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/steveukx/git-js?sponsor=1"
+ }
+ },
+ "node_modules/simple-git/node_modules/debug": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/sirv": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
@@ -14816,6 +16250,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",
@@ -14921,6 +16378,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",
@@ -15313,6 +16784,23 @@
"node": ">=6"
}
},
+ "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,
+ "license": "MIT",
+ "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.31.6",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz",
@@ -15490,6 +16978,19 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -15766,6 +17267,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "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,
+ "license": "MIT"
+ },
"node_modules/typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -16118,6 +17626,16 @@
"minimalistic-assert": "^1.0.0"
}
},
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
"node_modules/web-vitals": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.3.tgz",
@@ -16659,6 +18177,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",
@@ -16782,6 +18319,19 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/yoctocolors-cjs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
+ "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
}
}
}
diff --git a/package.json b/package.json
index 97bda5d..2e6cefb 100644
--- a/package.json
+++ b/package.json
@@ -8,11 +8,15 @@
"format": "wp-scripts format",
"lint:css": "wp-scripts lint-style --fix",
"lint:js": "wp-scripts lint-js",
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "wp-env": "wp-env"
},
"author": "Human Made Limited",
"license": "GPL-2.0-or-later",
"dependencies": {
"@wordpress/scripts": "^28.6.0"
+ },
+ "devDependencies": {
+ "@wordpress/env": "^10.25.0"
}
}
diff --git a/src/post-type/block.json b/src/post-type/block.json
index 0d1af2e..e768992 100644
--- a/src/post-type/block.json
+++ b/src/post-type/block.json
@@ -51,6 +51,14 @@
"showLabel": {
"type": "boolean",
"default": true
+ },
+ "displayType": {
+ "type": "string",
+ "default": "select"
+ },
+ "layoutDirection": {
+ "type": "string",
+ "default": "vertical"
}
},
"textdomain": "query-filter",
diff --git a/src/post-type/edit.js b/src/post-type/edit.js
index 5bbd52c..9d1c88b 100644
--- a/src/post-type/edit.js
+++ b/src/post-type/edit.js
@@ -1,10 +1,18 @@
import { __ } from '@wordpress/i18n';
import { useBlockProps, InspectorControls } from '@wordpress/block-editor';
-import { PanelBody, TextControl, ToggleControl } from '@wordpress/components';
+import {
+ PanelBody,
+ TextControl,
+ ToggleControl,
+ SelectControl,
+ __experimentalToggleGroupControl as ToggleGroupControl,
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption,
+} from '@wordpress/components';
import { useSelect } from '@wordpress/data';
export default function Edit( { attributes, setAttributes, context } ) {
- const { emptyLabel, label, showLabel } = attributes;
+ const { emptyLabel, label, showLabel, displayType, layoutDirection } =
+ attributes;
const allPostTypes = useSelect( ( select ) => {
return (
@@ -38,6 +46,58 @@ export default function Edit( { attributes, setAttributes, context } ) {
<>
+
+ setAttributes( { displayType } )
+ }
+ />
+ { ( displayType === 'radio' ||
+ displayType === 'checkbox' ) && (
+
+ setAttributes( { layoutDirection } )
+ }
+ isBlock
+ __nextHasNoMarginBottom
+ __next40pxDefaultSize
+ >
+
+
+
+ ) }
) }
-
+ { displayType === 'select' && (
+
+ ) }
+ { displayType === 'radio' && (
+
+
+
+ { emptyLabel || __( 'All', 'query-filter' ) }
+
+ { postTypes.map( ( type ) => (
+
+
+ { type.name }
+
+ ) ) }
+
+ ) }
+ { displayType === 'checkbox' && (
+
+ { postTypes.map( ( type ) => (
+
+
+ { type.name }
+
+ ) ) }
+
+ ) }
>
);
diff --git a/src/post-type/render.php b/src/post-type/render.php
index 70d43f2..5edc85e 100644
--- a/src/post-type/render.php
+++ b/src/post-type/render.php
@@ -2,53 +2,93 @@
global $wp_query;
$id = 'query-filter-' . wp_generate_uuid4();
+$display_type = $attributes['displayType'] ?? 'select';
+$layout_direction = $attributes['layoutDirection'] ?? 'vertical';
-if ( $block->context['query']['inherit'] ) {
+if ($block->context['query']['inherit']) {
$query_var = 'query-post_type';
$page_var = 'page';
- $base_url = str_replace( '/page/' . get_query_var( 'paged' ), '', remove_query_arg( [ $query_var, $page_var ] ) );
+ $base_url = str_replace('/page/' . get_query_var('paged'), '', remove_query_arg([$query_var, $page_var]));
} else {
$query_id = $block->context['queryId'] ?? 0;
- $query_var = sprintf( 'query-%d-post_type', $query_id );
- $page_var = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
- $base_url = remove_query_arg( [ $query_var, $page_var ] );
+ $query_var = sprintf('query-%d-post_type', $query_id);
+ $page_var = isset($block->context['queryId']) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
+ $base_url = remove_query_arg([$query_var, $page_var]);
}
-$post_types = array_map( 'trim', explode( ',', $block->context['query']['postType'] ?? 'post' ) );
+$post_types = array_map('trim', explode(',', $block->context['query']['postType'] ?? 'post'));
// Support for enhanced query block.
-if ( isset( $block->context['query']['multiple_posts'] ) && is_array( $block->context['query']['multiple_posts'] ) ) {
- $post_types = array_merge( $post_types, $block->context['query']['multiple_posts'] );
+if (isset($block->context['query']['multiple_posts']) && is_array($block->context['query']['multiple_posts'])) {
+ $post_types = array_merge($post_types, $block->context['query']['multiple_posts']);
}
// Fill in inherited query types.
-if ( $block->context['query']['inherit'] ) {
- $inherited_post_types = $wp_query->get( 'query-filter-post_type' ) === 'any'
- ? get_post_types( [ 'public' => true, 'exclude_from_search' => false ] )
- : (array) $wp_query->get( 'query-filter-post_type' );
-
- $post_types = array_merge( $post_types, $inherited_post_types );
- if ( ! get_option( 'wp_attachment_pages_enabled' ) ) {
- $post_types = array_diff( $post_types, [ 'attachment' ] );
+if ($block->context['query']['inherit']) {
+ $inherited_post_types = $wp_query->get('query-filter-post_type') === 'any'
+ ? get_post_types(['public' => true, 'exclude_from_search' => false])
+ : (array) $wp_query->get('query-filter-post_type');
+
+ $post_types = array_merge($post_types, $inherited_post_types);
+ if (! get_option('wp_attachment_pages_enabled')) {
+ $post_types = array_diff($post_types, ['attachment']);
}
}
-$post_types = array_unique( $post_types );
-$post_types = array_map( 'get_post_type_object', $post_types );
+$post_types = array_unique($post_types);
+$post_types = array_map('get_post_type_object', $post_types);
-if ( empty( $post_types ) ) {
+if (empty($post_types)) {
return;
}
?>
- 'wp-block-query-filter' ] ); ?> data-wp-interactive="query-filter" data-wp-context="{}">
-
-
+ 'wp-block-query-filter']); ?> data-wp-interactive="query-filter" data-wp-context="{}">
+
+
-
-
+
+
+
+
+
+
+ />
+
+
+
+
+ name, wp_unslash($_GET[$query_var] ?? '')); ?> />
+ label); ?>
+
+
+
+
+
+
+
+ name, $selected_types);
+ $new_types = $is_checked
+ ? array_diff($selected_types, [$post_type->name])
+ : array_merge($selected_types, [$post_type->name]);
+ $new_types = array_filter($new_types);
+ $checkbox_url = empty($new_types)
+ ? $base_url
+ : add_query_arg([$query_var => implode(',', $new_types), $page_var => false], $base_url);
+ ?>
+
+ />
+ label); ?>
+
+
+
+
+
\ No newline at end of file
diff --git a/src/taxonomy/block.json b/src/taxonomy/block.json
index 1f1a331..b82665b 100644
--- a/src/taxonomy/block.json
+++ b/src/taxonomy/block.json
@@ -54,11 +54,19 @@
"showLabel": {
"type": "boolean",
"default": true
+ },
+ "displayType": {
+ "type": "string",
+ "default": "select"
+ },
+ "layoutDirection": {
+ "type": "string",
+ "default": "vertical"
}
},
"textdomain": "query-filter",
"editorScript": "file:./index.js",
- "style": "query-filter-view",
+ "style": "file:./index.css",
"viewScriptModule": "file:./view.js",
"render": "file:./render.php"
}
diff --git a/src/taxonomy/edit.js b/src/taxonomy/edit.js
index 5562901..205a77a 100644
--- a/src/taxonomy/edit.js
+++ b/src/taxonomy/edit.js
@@ -5,11 +5,20 @@ import {
SelectControl,
TextControl,
ToggleControl,
+ __experimentalToggleGroupControl as ToggleGroupControl,
+ __experimentalToggleGroupControlOption as ToggleGroupControlOption,
} from '@wordpress/components';
import { useSelect } from '@wordpress/data';
export default function Edit( { attributes, setAttributes } ) {
- const { taxonomy, emptyLabel, label, showLabel } = attributes;
+ const {
+ taxonomy,
+ emptyLabel,
+ label,
+ showLabel,
+ displayType,
+ layoutDirection,
+ } = attributes;
const taxonomies = useSelect(
( select ) => {
@@ -60,6 +69,58 @@ export default function Edit( { attributes, setAttributes } ) {
} )
}
/>
+
+ setAttributes( { displayType } )
+ }
+ />
+ { ( displayType === 'radio' ||
+ displayType === 'checkbox' ) && (
+
+ setAttributes( { layoutDirection } )
+ }
+ isBlock
+ __nextHasNoMarginBottom
+ __next40pxDefaultSize
+ >
+
+
+
+ ) }
) }
-
+ { displayType === 'select' && (
+
+ ) }
+ { displayType === 'radio' && (
+
+
+
+ { emptyLabel || __( 'All', 'query-filter' ) }
+
+ { terms.map( ( term ) => (
+
+
+ { term.name }
+
+ ) ) }
+
+ ) }
+ { displayType === 'checkbox' && (
+
+ { terms.map( ( term ) => (
+
+
+ { term.name }
+
+ ) ) }
+
+ ) }
>
);
diff --git a/src/taxonomy/index.js b/src/taxonomy/index.js
index 30d8967..0157b8f 100644
--- a/src/taxonomy/index.js
+++ b/src/taxonomy/index.js
@@ -1,7 +1,6 @@
import { registerBlockType } from '@wordpress/blocks';
import Edit from './edit';
import metadata from './block.json';
-import './style-index.css';
registerBlockType( metadata.name, {
/**
diff --git a/src/taxonomy/render.php b/src/taxonomy/render.php
index 97258b4..a391d72 100644
--- a/src/taxonomy/render.php
+++ b/src/taxonomy/render.php
@@ -1,42 +1,82 @@
context['query']['inherit'] ) ) {
+if (empty($block->context['query']['inherit'])) {
$query_id = $block->context['queryId'] ?? 0;
- $query_var = sprintf( 'query-%d-%s', $query_id, $attributes['taxonomy'] );
- $page_var = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
- $base_url = remove_query_arg( [ $query_var, $page_var ] );
+ $query_var = sprintf('query-%d-%s', $query_id, $attributes['taxonomy']);
+ $page_var = isset($block->context['queryId']) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
+ $base_url = remove_query_arg([$query_var, $page_var]);
} else {
- $query_var = sprintf( 'query-%s', $attributes['taxonomy'] );
+ $query_var = sprintf('query-%s', $attributes['taxonomy']);
$page_var = 'page';
- $base_url = str_replace( '/page/' . get_query_var( 'paged' ), '', remove_query_arg( [ $query_var, $page_var ] ) );
+ $base_url = str_replace('/page/' . get_query_var('paged'), '', remove_query_arg([$query_var, $page_var]));
}
-$terms = get_terms( [
+$terms = get_terms([
'hide_empty' => true,
'taxonomy' => $attributes['taxonomy'],
'number' => 100,
-] );
+]);
-if ( is_wp_error( $terms ) || empty( $terms ) ) {
+if (is_wp_error($terms) || empty($terms)) {
return;
}
?>
- 'wp-block-query-filter' ] ); ?> data-wp-interactive="query-filter" data-wp-context="{}">
-
- label ); ?>
+ 'wp-block-query-filter']); ?> data-wp-interactive="query-filter" data-wp-context="{}">
+
+ label); ?>
-
-
+
+
+
+
+
+
+ />
+
+
+
+
+ slug, wp_unslash($_GET[$query_var] ?? '')); ?> />
+ name); ?>
+
+
+
+
+
+
+
+ slug, $selected_terms);
+ $new_terms = $is_checked
+ ? array_diff($selected_terms, [$term->slug])
+ : array_merge($selected_terms, [$term->slug]);
+ $new_terms = array_filter($new_terms);
+ $checkbox_url = empty($new_terms)
+ ? $base_url
+ : add_query_arg([$query_var => implode(',', $new_terms), $page_var => false], $base_url);
+ ?>
+
+ />
+ name); ?>
+
+
+
+
+
\ No newline at end of file
diff --git a/src/taxonomy/style-index.css b/src/taxonomy/style-index.css
index 621fee1..29f189a 100644
--- a/src/taxonomy/style-index.css
+++ b/src/taxonomy/style-index.css
@@ -7,3 +7,33 @@
flex-direction: column;
justify-content: stretch;
}
+
+/* Radio group styles */
+.wp-block-query-filter__radio-group,
+.wp-block-query-filter__checkbox-group {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
+
+.wp-block-query-filter__radio-group label,
+.wp-block-query-filter__checkbox-group label {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ cursor: pointer;
+ padding: 0.25rem 0;
+}
+
+.wp-block-query-filter__radio-group input,
+.wp-block-query-filter__checkbox-group input {
+ margin: 0;
+}
+
+/* Horizontal layout option */
+.wp-block-query-filter__radio-group.horizontal,
+.wp-block-query-filter__checkbox-group.horizontal {
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 1rem;
+}