diff --git a/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/README.md b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/README.md
new file mode 100644
index 000000000000..606efa0131d2
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/README.md
@@ -0,0 +1,275 @@
+
+
+# unaryReduceSubarrayBy
+
+> Perform a reduction over a list of specified dimensions in an input ndarray according to a callback function and assign results to a provided output ndarray.
+
+
+
+
+
+
+
+## Usage
+
+```javascript
+var unaryReduceSubarrayBy = require( '@stdlib/ndarray/base/unary-reduce-subarray-by' );
+```
+
+#### unaryReduceSubarrayBy( fcn, arrays, dims\[, options], clbk\[, thisArg] )
+
+Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.
+
+
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var filled = require( '@stdlib/array/base/filled' );
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var everyBy = require( '@stdlib/ndarray/base/every-by' );
+
+function clbk( value ) {
+ return value > 0.0;
+}
+
+// Create data buffers:
+var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
+var ybuf = filled( false, 3 );
+
+// Define the array shapes:
+var xsh = [ 1, 3, 2, 2 ];
+var ysh = [ 1, 3 ];
+
+// Define the array strides:
+var sx = [ 12, 4, 2, 1 ];
+var sy = [ 3, 1 ];
+
+// Define the index offsets:
+var ox = 0;
+var oy = 0;
+
+// Create an input ndarray-like object:
+var x = {
+ 'dtype': 'float64',
+ 'data': xbuf,
+ 'shape': xsh,
+ 'strides': sx,
+ 'offset': ox,
+ 'order': 'row-major'
+};
+
+// Create an output ndarray-like object:
+var y = {
+ 'dtype': 'generic',
+ 'data': ybuf,
+ 'shape': ysh,
+ 'strides': sy,
+ 'offset': oy,
+ 'order': 'row-major'
+};
+
+// Perform a reduction:
+unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );
+
+var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );
+// returns [ [ true, false, true ] ]
+```
+
+The function accepts the following arguments:
+
+- **fcn**: function which will be applied to a subarray and should reduce the subarray to a single scalar value.
+- **arrays**: array-like object containing one input ndarray and one output ndarray, followed by any additional ndarray arguments.
+- **dims**: list of dimensions over which to perform a reduction.
+- **options**: function options which are passed through to `fcn` (_optional_).
+- **clbk**: callback function.
+- **thisArg**: callback execution context (_optional_).
+
+Each provided ndarray should be an object with the following properties:
+
+- **dtype**: data type.
+- **data**: data buffer.
+- **shape**: dimensions.
+- **strides**: stride lengths.
+- **offset**: index offset.
+- **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).
+
+The invoked callback function is provided the following arguments:
+
+- **value**: input array element.
+- **indices**: current array element indices.
+- **arr**: the input ndarray.
+
+To set the callback execution context, provide a `thisArg`.
+
+
+
+```javascript
+var Float64Array = require( '@stdlib/array/float64' );
+var filled = require( '@stdlib/array/base/filled' );
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var everyBy = require( '@stdlib/ndarray/base/every-by' );
+
+function clbk( value ) {
+ this.count += 1;
+ return value > 0.0;
+}
+
+// Create data buffers:
+var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
+var ybuf = filled( false, 6 );
+
+// Define the array shapes:
+var xsh = [ 3, 2, 2 ];
+var ysh = [ 3, 2 ];
+
+// Define the array strides:
+var sx = [ 4, 2, 1 ];
+var sy = [ 2, 1 ];
+
+// Define the index offsets:
+var ox = 0;
+var oy = 0;
+
+// Create an input ndarray-like object:
+var x = {
+ 'dtype': 'float64',
+ 'data': xbuf,
+ 'shape': xsh,
+ 'strides': sx,
+ 'offset': ox,
+ 'order': 'row-major'
+};
+
+// Create an output ndarray-like object:
+var y = {
+ 'dtype': 'generic',
+ 'data': ybuf,
+ 'shape': ysh,
+ 'strides': sy,
+ 'offset': oy,
+ 'order': 'row-major'
+};
+
+var ctx = {
+ 'count': 0
+};
+
+// Perform a reduction:
+unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], clbk, ctx );
+
+var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );
+// returns [ [ true, true ], [ true, false ], [ true, true ] ]
+
+var count = ctx.count;
+// returns 11
+```
+
+#### TODO: document factory method
+
+
+
+
+
+
+
+## Notes
+
+- The output ndarray and any additional ndarray arguments are expected to have the same dimensions as the non-reduced dimensions of the input ndarray. When calling the reduction function, any additional ndarray arguments are provided as zero-dimensional ndarray-like objects.
+
+- The reduction function is expected to have the following signature:
+
+ ```text
+ fcn( arrays[, options], wrappedCallback )
+ ```
+
+ where
+
+ - **arrays**: array containing a subarray of the input ndarray and any additional ndarray arguments as zero-dimensional ndarrays.
+ - **options**: function options (_optional_).
+ - **wrappedCallback**: callback function. This function is a wrapper around a provided `clbk` argument.
+
+- For very high-dimensional ndarrays which are non-contiguous, one should consider copying the underlying data to contiguous memory before performing a reduction in order to achieve better performance.
+
+
+
+
+
+
+
+## Examples
+
+
+
+```javascript
+var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
+var filled = require( '@stdlib/array/base/filled' );
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var everyBy = require( '@stdlib/ndarray/base/every-by' );
+var unaryReduceSubarrayBy = require( '@stdlib/ndarray/base/unary-reduce-subarray-by' );
+
+function clbk( value ) {
+ return value > -3;
+}
+
+var x = {
+ 'dtype': 'generic',
+ 'data': discreteUniform( 40, -5, 5, {
+ 'dtype': 'generic'
+ }),
+ 'shape': [ 2, 5, 2, 2 ],
+ 'strides': [ 1, 2, 10, 20 ],
+ 'offset': 0,
+ 'order': 'column-major'
+};
+var y = {
+ 'dtype': 'generic',
+ 'data': filled( false, 10 ),
+ 'shape': [ 2, 5 ],
+ 'strides': [ 1, 2 ],
+ 'offset': 0,
+ 'order': 'column-major'
+};
+
+unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );
+
+console.log( ndarray2array( x.data, x.shape, x.strides, x.offset, x.order ) );
+console.log( ndarray2array( y.data, y.shape, y.strides, y.offset, y.order ) );
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/repl.txt b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/repl.txt
new file mode 100644
index 000000000000..b1f99dbbc51a
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/repl.txt
@@ -0,0 +1,100 @@
+
+{{alias}}( fcn, arrays, dims[, options], clbk[, thisArg] )
+ Performs a reduction over a list of specified dimensions in an input ndarray
+ according to a callback function and assigns results to a provided output
+ ndarray.
+
+ Each provided "ndarray" should be an object with the following properties:
+
+ - dtype: data type.
+ - data: data buffer.
+ - shape: dimensions.
+ - strides: stride lengths.
+ - offset: index offset.
+ - order: specifies whether an ndarray is row-major (C-style) or column-major
+ (Fortran-style).
+
+ The output ndarray and any additional ndarray arguments are expected to have
+ the same dimensions as the non-reduced dimensions of the input ndarray. When
+ calling the reduction function, any additional ndarray arguments are
+ provided as zero-dimensional ndarray-like objects.
+
+ Parameters
+ ----------
+ fcn: Function
+ Function which will be applied to a subarray and should reduce the
+ subarray to a single scalar value. The function should have the
+ following signature:
+
+ fcn( arrays[, options], wrappedCallback )
+
+ where
+
+ - arrays: array containing a subarray of the input ndarray and any
+ additional ndarray arguments as zero-dimensional ndarrays.
+ - options: function options.
+ - wrappedCallback: callback function. This function is a wrapper around
+ a provided `clbk` argument.
+
+ arrays: ArrayLikeObject
+ Array-like object containing one input ndarray and one output ndarray,
+ followed by any additional ndarray arguments.
+
+ dims: Array
+ List of dimensions over which to perform a reduction.
+
+ options: Object (optional)
+ Function options.
+
+ clbk: Function
+ Callback function.
+
+ thisArg: any (optional)
+ Callback execution context.
+
+ Examples
+ --------
+ // Define ndarray data and meta data...
+ > var xbuf = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 4.0 ] );
+ > var ybuf = new {{alias:@stdlib/array/float64}}( [ 0.0 ] );
+ > var dtype = 'float64';
+ > var shx = [ 2, 2 ];
+ > var shy = [];
+ > var sx = [ 2, 1 ];
+ > var sy = [ 0 ];
+ > var ox = 0;
+ > var oy = 0;
+ > var order = 'row-major';
+
+ // Define a callback function:
+ > function clbk( value ) { return value; };
+
+ // Define a trivial reduction function...
+ > function fcn( arrays, clbk, thisArg ) {
+ ... var v = arrays[0].data[ arrays[0].offset ];
+ ... return clbk.call( thisArg, v, [ 0 ], arrays[0] );
+ ... };
+
+ // Using minimal ndarray-like objects...
+ > x = {
+ ... 'dtype': dtype,
+ ... 'data': xbuf,
+ ... 'shape': shx,
+ ... 'strides': sx,
+ ... 'offset': ox,
+ ... 'order': order
+ ... };
+ > y = {
+ ... 'dtype': dtype,
+ ... 'data': ybuf,
+ ... 'shape': shy,
+ ... 'strides': sy,
+ ... 'offset': oy,
+ ... 'order': order
+ ... };
+ > {{alias}}( fcn, [ x, y ], [ 0, 1 ], clbk );
+ > y.data
+ [ 1.0 ]
+
+ See Also
+ --------
diff --git a/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/types/index.d.ts b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/types/index.d.ts
new file mode 100644
index 000000000000..1feea0c2a1ab
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/types/index.d.ts
@@ -0,0 +1,273 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2025 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+// TypeScript Version: 4.1
+
+///
+
+import { ArrayLike } from '@stdlib/types/array';
+import { typedndarray } from '@stdlib/types/ndarray';
+
+/**
+* Input ndarray.
+*/
+type InputArray = typedndarray;
+
+/**
+* Output ndarray.
+*/
+type OutputArray = typedndarray;
+
+/**
+* Additional ndarray arguments.
+*/
+type AdditionalArray = typedndarray;
+
+/**
+* ndarray arguments.
+*/
+type ListOfArrays = [ InputArray, OutputArray, ...Array> ];
+
+/**
+* ndarrays arguments passed to reduction function.
+*/
+type ReductionArrays = [ InputArray, ...Array> ];
+
+/**
+* Callback invoked for each ndarray element.
+*
+* @returns output value
+*/
+type Nullary = ( this: ThisArg ) => W;
+
+/**
+* Returns the results of the callback function.
+*
+* @param value - current array element
+* @returns output value
+*/
+type Unary = ( this: ThisArg, value: T ) => W;
+
+/**
+* Callback invoked for each ndarray element.
+*
+* @param value - current array element
+* @param indices - current array element indices
+* @returns output value
+*/
+type Binary = ( this: ThisArg, value: T, indices: Array ) => W;
+
+/**
+* Callback invoked for each ndarray element.
+*
+* @param value - current array element
+* @param indices - current array element indices
+* @param arr - input array
+* @returns output value
+*/
+type Ternary = ( this: ThisArg, value: T, indices: Array, arr: typedndarray ) => W;
+
+/**
+* Callback invoked for each ndarray element.
+*
+* @param value - current array element
+* @param indices - current array element indices
+* @param arr - input array
+* @returns output value
+*/
+type Callback = Nullary | Unary | Binary | Ternary;
+
+/**
+* Unary reduction function.
+*
+* @param arrays - list of ndarrays
+* @param clbk - callback function
+* @returns reduction result
+*/
+type UnaryReductionFcn = ( arrays: [ typedndarray ], clbk: Callback ) => U;
+
+/**
+* Unary reduction function.
+*
+* @param arrays - list of ndarrays
+* @param options - function options
+* @param clbk - callback function
+* @returns reduction result
+*/
+type UnaryReductionFcnWithOptions = ( arrays: [ typedndarray ], options: Object, clbk: Callback ) => U;
+
+/**
+* Reduction function.
+*
+* @param arrays - list of ndarrays
+* @param clbk - callback function
+* @returns reduction result
+*/
+type ReductionFcn = ( arrays: ReductionArrays, clbk: Callback ) => U;
+
+/**
+* Reduction function.
+*
+* @param arrays - list of ndarrays
+* @param options - function options
+* @param clbk - callback function
+* @returns reduction result
+*/
+type ReductionFcnWithOptions = ( arrays: ReductionArrays, options: Object, clbk: Callback ) => U;
+
+/**
+* Reduction function.
+*
+* @param arrays - list of ndarrays
+* @param options - function options
+* @param clbk - callback function
+* @returns reduction result
+*/
+type Reduction = UnaryReductionFcn | UnaryReductionFcnWithOptions | ReductionFcn | ReductionFcnWithOptions;
+
+/**
+* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.
+*
+* @param fcn - reduction function
+* @param arrays - array-like object containing ndarrays
+* @param dims - list of dimensions over which to perform a reduction
+* @param clbk - callback function
+* @param thisArg - callback execution context
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var filled = require( '@stdlib/array/base/filled' );
+* var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+* var everyBy = require( '@stdlib/ndarray/base/every-by' );
+*
+* function clbk( value ) {
+* return value > 0.0;
+* }
+*
+* // Create data buffers:
+* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
+* var ybuf = filled( false, 3 );
+*
+* // Define the array shapes:
+* var xsh = [ 1, 3, 2, 2 ];
+* var ysh = [ 1, 3 ];
+*
+* // Define the array strides:
+* var sx = [ 12, 4, 2, 1 ];
+* var sy = [ 3, 1 ];
+*
+* // Define the index offsets:
+* var ox = 0;
+* var oy = 0;
+*
+* // Create an input ndarray-like object:
+* var x = {
+* 'dtype': 'float64',
+* 'data': xbuf,
+* 'shape': xsh,
+* 'strides': sx,
+* 'offset': ox,
+* 'order': 'row-major'
+* };
+*
+* // Create an output ndarray-like object:
+* var y = {
+* 'dtype': 'generic',
+* 'data': ybuf,
+* 'shape': ysh,
+* 'strides': sy,
+* 'offset': oy,
+* 'order': 'row-major'
+* };
+*
+* // Perform a reduction:
+* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );
+*
+* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );
+* // returns [ [ true, false, true ] ]
+*/
+declare function unaryReduceSubarrayBy( fcn: Reduction, arrays: ListOfArrays, dims: ArrayLike, clbk: Callback, thisArg?: ThisParameterType> ): void;
+
+/**
+* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.
+*
+* @param fcn - reduction function
+* @param arrays - array-like object containing ndarrays
+* @param dims - list of dimensions over which to perform a reduction
+* @param options - function options
+* @param clbk - callback function
+* @param thisArg - callback execution context
+*
+* @example
+* var Float64Array = require( '@stdlib/array/float64' );
+* var filled = require( '@stdlib/array/base/filled' );
+* var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+* var everyBy = require( '@stdlib/ndarray/base/every-by' );
+*
+* function clbk( value ) {
+* return value > 0.0;
+* }
+*
+* // Create data buffers:
+* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );
+* var ybuf = filled( false, 3 );
+*
+* // Define the array shapes:
+* var xsh = [ 1, 3, 2, 2 ];
+* var ysh = [ 1, 3 ];
+*
+* // Define the array strides:
+* var sx = [ 12, 4, 2, 1 ];
+* var sy = [ 3, 1 ];
+*
+* // Define the index offsets:
+* var ox = 0;
+* var oy = 0;
+*
+* // Create an input ndarray-like object:
+* var x = {
+* 'dtype': 'float64',
+* 'data': xbuf,
+* 'shape': xsh,
+* 'strides': sx,
+* 'offset': ox,
+* 'order': 'row-major'
+* };
+*
+* // Create an output ndarray-like object:
+* var y = {
+* 'dtype': 'generic',
+* 'data': ybuf,
+* 'shape': ysh,
+* 'strides': sy,
+* 'offset': oy,
+* 'order': 'row-major'
+* };
+*
+* // Perform a reduction:
+* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], {}, clbk );
+*
+* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );
+* // returns [ [ true, false, true ] ]
+*/
+declare function unaryReduceSubarrayBy( fcn: Reduction, arrays: ListOfArrays, dims: ArrayLike, options: Object, clbk: Callback, thisArg?: ThisParameterType> ): void;
+
+
+// EXPORTS //
+
+export = unaryReduceSubarrayBy;
diff --git a/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/types/test.ts b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/types/test.ts
new file mode 100644
index 000000000000..6772b2651ec5
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/docs/types/test.ts
@@ -0,0 +1,233 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2025 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+///
+
+import empty = require( '@stdlib/ndarray/empty' );
+import everyBy = require( '@stdlib/ndarray/base/every-by' );
+import unaryReduceSubarrayBy = require( './index' );
+
+/**
+* Callback function.
+*
+* @param v - ndarray element
+* @returns result
+*/
+function clbk( v: number ): boolean {
+ return v > 0.0;
+}
+
+
+// TESTS //
+
+// The function returns `undefined`...
+{
+ const x = empty( [ 2, 2 ], { 'dtype': 'float64' } );
+ const y = empty( [ 2 ], { 'dtype': 'bool' } );
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], clbk ); // $ExpectType void
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], clbk, {} ); // $ExpectType void
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, clbk ); // $ExpectType void
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectType void
+}
+
+// The compiler throws an error if the function is provided a first argument which is not a function...
+{
+ const x = empty( [ 2, 2 ], { 'dtype': 'float64' } );
+ const y = empty( [ 2 ], { 'dtype': 'bool' } );
+
+ unaryReduceSubarrayBy( '5', [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( 5, [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( true, [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( false, [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( null, [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( void 0, [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( {}, [ x, y ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( [ 1 ], [ x, y ], [ 1 ], clbk ); // $ExpectError
+
+ unaryReduceSubarrayBy( '5', [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( 5, [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( true, [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( false, [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( null, [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( void 0, [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( {}, [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( [ 1 ], [ x, y ], [ 1 ], clbk, {} ); // $ExpectError
+
+ unaryReduceSubarrayBy( '5', [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( 5, [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( true, [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( false, [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( null, [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( void 0, [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( {}, [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( [ 1 ], [ x, y ], [ 1 ], {}, clbk ); // $ExpectError
+
+ unaryReduceSubarrayBy( '5', [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( 5, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( true, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( false, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( null, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( void 0, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( {}, [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( [ 1 ], [ x, y ], [ 1 ], {}, clbk, {} ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a second argument which is not an array-like object containing ndarray-like objects...
+{
+ unaryReduceSubarrayBy( everyBy, '5', [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, 5, [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, true, [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, false, [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, null, [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, void 0, [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, {}, [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ 1 ], [ 1 ], clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, ( x: number ): number => x, [ 1 ], clbk ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, '5', [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, 5, [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, true, [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, false, [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, null, [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, void 0, [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, {}, [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ 1 ], [ 1 ], clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, ( x: number ): number => x, [ 1 ], clbk, {} ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, '5', [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, 5, [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, true, [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, false, [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, null, [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, void 0, [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, {}, [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ 1 ], [ 1 ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, ( x: number ): number => x, [ 1 ], {}, clbk ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, '5', [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, 5, [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, true, [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, false, [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, null, [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, void 0, [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, {}, [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ 1 ], [ 1 ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, ( x: number ): number => x, [ 1 ], {}, clbk, {} ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a third argument which is not an array of integers...
+{
+ const x = empty( [ 2, 2 ], { 'dtype': 'float64' } );
+ const y = empty( [ 2 ], { 'dtype': 'bool' } );
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], '5', clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], 5, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], true, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], false, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], null, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], void 0, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], ( x: number ): number => x, clbk ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], '5', clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], 5, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], true, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], false, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], null, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], void 0, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], ( x: number ): number => x, clbk, {} ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], '5', {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], 5, {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], true, {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], false, {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], null, {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], void 0, {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], {}, {}, clbk ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], ( x: number ): number => x, {}, clbk ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], '5', {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], 5, {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], true, {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], false, {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], null, {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], void 0, {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], {}, {}, clbk, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], ( x: number ): number => x, {}, clbk, {} ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an invalid fourth argument...
+{
+ const x = empty( [ 2, 2 ], { 'dtype': 'float64' } );
+ const y = empty( [ 2 ], { 'dtype': 'bool' } );
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], '5' ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], 5 ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], true ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], false ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], null ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], void 0 ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], [] ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], '5', {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], 5, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], true, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], false, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], null, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], void 0, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], [], {} ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an invalid fifth argument...
+{
+ const x = empty( [ 2, 2 ], { 'dtype': 'float64' } );
+ const y = empty( [ 2 ], { 'dtype': 'bool' } );
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, '5' ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, 5 ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, true ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, false ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, null ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, void 0 ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, [] ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, {} ); // $ExpectError
+
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, '5', {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, 5, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, true, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, false, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, null, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, void 0, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, {}, {} ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, [], {} ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an unsupported number of arguments...
+{
+ const x = empty( [ 2, 2 ], { 'dtype': 'float64' } );
+ const y = empty( [ 2 ], { 'dtype': 'bool' } );
+
+ unaryReduceSubarrayBy(); // $ExpectError
+ unaryReduceSubarrayBy( everyBy ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ] ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ] ); // $ExpectError
+ unaryReduceSubarrayBy( everyBy, [ x, y ], [ 1 ], {}, clbk, {}, {} ); // $ExpectError
+}
diff --git a/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/examples/index.js b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/examples/index.js
new file mode 100644
index 000000000000..fcfd820db238
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/examples/index.js
@@ -0,0 +1,53 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2025 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+'use strict';
+
+var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
+var filled = require( '@stdlib/array/base/filled' );
+var ndarray2array = require( '@stdlib/ndarray/base/to-array' );
+var everyBy = require( '@stdlib/ndarray/base/every-by' );
+var unaryReduceSubarrayBy = require( './../lib' );
+
+function clbk( value ) {
+ return value > -3;
+}
+
+var x = {
+ 'dtype': 'generic',
+ 'data': discreteUniform( 40, -5, 5, {
+ 'dtype': 'generic'
+ }),
+ 'shape': [ 2, 5, 2, 2 ],
+ 'strides': [ 1, 2, 10, 20 ],
+ 'offset': 0,
+ 'order': 'column-major'
+};
+var y = {
+ 'dtype': 'generic',
+ 'data': filled( false, 10 ),
+ 'shape': [ 2, 5 ],
+ 'strides': [ 1, 2 ],
+ 'offset': 0,
+ 'order': 'column-major'
+};
+
+unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );
+
+console.log( ndarray2array( x.data, x.shape, x.strides, x.offset, x.order ) );
+console.log( ndarray2array( y.data, y.shape, y.strides, y.offset, y.order ) );
diff --git a/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/lib/0d.js b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/lib/0d.js
new file mode 100644
index 000000000000..66e3fed49290
--- /dev/null
+++ b/lib/node_modules/@stdlib/ndarray/base/unary-reduce-subarray-by/lib/0d.js
@@ -0,0 +1,122 @@
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2025 The Stdlib Authors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+/* eslint-disable max-len */
+
+'use strict';
+
+// MODULES //
+
+var without = require( '@stdlib/array/base/without' );
+var wrap = require( './callback_wrapper.js' );
+
+
+// MAIN //
+
+/**
+* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.
+*
+* @private
+* @param {Function} fcn - reduction function
+* @param {Array