diff --git a/lib/node_modules/@stdlib/iter/cartesian-square/README.md b/lib/node_modules/@stdlib/iter/cartesian-square/README.md
new file mode 100644
index 000000000000..530ba7ac8d9f
--- /dev/null
+++ b/lib/node_modules/@stdlib/iter/cartesian-square/README.md
@@ -0,0 +1,141 @@
+
+
+# iterCartesianSquare
+
+> Create an iterator which generates the Cartesian square of an input array-like object.
+
+
+
+
+
+
+
+## Usage
+
+```javascript
+var iterCartesianSquare = require( '@stdlib/iter/cartesian-square' );
+```
+
+#### iterCartesianSquare( x )
+
+Returns an iterator which generates the Cartesian Square of an input array-like object.
+
+```javascript
+var it = iterCartesianSquare( [ 1, 2, 3 ] );
+
+var v = it.next().value;
+// returns [1, 1]
+
+v = it.next().value;
+// returns [1, 2]
+
+v = it.next().value;
+// returns [1, 3]
+
+v = it.next().value;
+// returns [2, 1]
+
+var bool = it.next().done;
+// returns false
+
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Examples
+
+
+
+
+```javascript
+var iterCartesianSquare = require( '@stdlib/iter/cartesian-square' );
+
+// Example : Generating Cartesian square of an array
+var x = [1, 2, 3];
+var cartesianSquare = iterCartesianSquare( x );
+var pair;
+
+pair = cartesianSquare.next();
+while ( !pair.done ) {
+ console.log( pair.value );
+ pair = cartesianSquare.next();
+}
+
+// Output:
+// [ 1, 1 ]
+// [ 1, 2 ]
+// [ 1, 3 ]
+// [ 2, 1 ]
+// [ 2, 2 ]
+// [ 2, 3 ]
+// [ 3, 1 ]
+// [ 3, 2 ]
+// [ 3, 3 ]
+
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/iter/cartesian-square/benchmark/benchmark.js b/lib/node_modules/@stdlib/iter/cartesian-square/benchmark/benchmark.js
new file mode 100644
index 000000000000..92d3a45e6a3a
--- /dev/null
+++ b/lib/node_modules/@stdlib/iter/cartesian-square/benchmark/benchmark.js
@@ -0,0 +1,61 @@
+
+/**
+* @license Apache-2.0
+*
+* Copyright (c) 2024 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';
+
+// MODULES //
+
+var bench = require('@stdlib/bench');
+var ceil = require('@stdlib/math/base/special/ceil');
+var sqrt = require('@stdlib/math/base/special/sqrt');
+var pkg = require('./../package.json').name;
+var iterCartesianSquare = require('./../lib');
+
+
+// MAIN //
+
+bench( pkg, function benchmark( b ) {
+ var iterator;
+ var arr;
+ var v;
+ var i;
+
+ // Create an array with one more element than the square root of b.iterations:
+ arr = new Array( ceil(sqrt(b.iterations)) + 1 ).fill( 0 );
+
+ // Create the iterator:
+ iterator = iterCartesianSquare( arr );
+
+ b.tic();
+ for ( i = 0; i < b.iterations; i++ ) {
+ v = iterator.next();
+ if ( v.done ) {
+ b.fail( 'should not exhaust the iterator' );
+ break;
+ }
+ }
+ b.toc();
+
+ if ( v.done ) {
+ b.fail('should not exhaust the iterator');
+ } else {
+ b.pass('benchmark finished');
+ }
+ b.end();
+});
diff --git a/lib/node_modules/@stdlib/iter/cartesian-square/docs/repl.txt b/lib/node_modules/@stdlib/iter/cartesian-square/docs/repl.txt
new file mode 100644
index 000000000000..9ff1b460b088
--- /dev/null
+++ b/lib/node_modules/@stdlib/iter/cartesian-square/docs/repl.txt
@@ -0,0 +1,35 @@
+{{alias}}( x )
+ Returns an iterator which generates the Cartesian square of an input
+ array-like object.
+
+ If an environment supports Symbol.iterator, the returned iterator is
+ iterable.
+
+ Parameters
+ ----------
+ x : ArrayLikeObject
+ Input array-like object.
+
+ Returns
+ -------
+ iterator: Object
+ Iterator.
+
+ iterator.next(): Function
+ Returns an iterator protocol-compliant object containing the next
+ iterated value (if one exists) and a boolean flag indicating whether the
+ iterator is finished.
+
+ iterator.return( [value] ): Function
+ Finishes an iterator and returns a provided value.
+
+ Examples
+ --------
+ > var it = {{alias}}( [ '1', '2', '3' ] )
+ > var v = it.next().value
+ [ '1', '1' ]
+ > v = it.next().value
+ [ '1', '2' ]
+
+ See Also
+ --------
diff --git a/lib/node_modules/@stdlib/iter/cartesian-square/docs/types/index.d.ts b/lib/node_modules/@stdlib/iter/cartesian-square/docs/types/index.d.ts
new file mode 100644
index 000000000000..ac7576856fb0
--- /dev/null
+++ b/lib/node_modules/@stdlib/iter/cartesian-square/docs/types/index.d.ts
@@ -0,0 +1,61 @@
+/*
+* @license Apache-2.0
+*
+* Copyright (c) 2024 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 { Iterator as Iter, IterableIterator } from '@stdlib/types/iter';
+import { ArrayLike } from '@stdlib/types/array';
+
+// Define a union type representing both iterable and non-iterable iterators:
+type Iterator = Iter | IterableIterator;
+
+/**
+* Returns an iterator which generates the Cartesian square of an input array-like object.
+*
+* @param x - Input array-like object.
+* @throws {TypeError} first argument must be an array-like object
+* @returns iterator
+*
+* @example
+* var iterCartesianSquare = require( '@stdlib/iter/cartesian-square' );
+*
+* var iterator = iterCartesianSquare( [ 'a', 'b', 'c' ] );
+* // returns