diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/README.md b/lib/node_modules/@stdlib/string/base/last-code-point/README.md
new file mode 100644
index 000000000000..07c7ce05d194
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/README.md
@@ -0,0 +1,107 @@
+
+
+# lastCodePoint
+
+> Return the last `n` Unicode code points of a string.
+
+
+
+## Usage
+
+```javascript
+var lastCodePoint = require( '@stdlib/string/base/last-code-point' );
+```
+
+#### lastCodePoint( str, n )
+
+Returns the last `n` Unicode code points of a string.
+
+```javascript
+var s = lastCodePoint( 'JavaScript', 1 );
+// returns 't'
+
+s = lastCodePoint( 'Hello World', 5 );
+// returns 'World'
+
+s = lastCodePoint( 'Good Evening', 9 );
+// returns 'd Evening'
+
+s = lastCodePoint( 'foo bar', 10 );
+// returns 'foo bar'
+```
+
+
+
+
+
+
+
+## Examples
+
+
+
+```javascript
+var lastCodePoint = require( '@stdlib/string/base/last-code-point' );
+
+var str = lastCodePoint( 'Hello World', 1 );
+// returns 'd'
+
+str = lastCodePoint( 'JavaScript', 6 );
+// returns 'Script'
+
+str = lastCodePoint( 'ASCII', 2 );
+// returns 'II'
+
+str = lastCodePoint( 'index', 10 );
+// returns 'index'
+
+str = lastCodePoint( 'अनुच्छेद', 1 );
+// returns 'द'
+
+str = lastCodePoint( '六书/六書', 3 );
+// returns '/六書'
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/benchmark/benchmark.js b/lib/node_modules/@stdlib/string/base/last-code-point/benchmark/benchmark.js
new file mode 100644
index 000000000000..e0834d720ae6
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/benchmark/benchmark.js
@@ -0,0 +1,60 @@
+/**
+* @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 isString = require( '@stdlib/assert/is-string' ).isPrimitive;
+var pkg = require( './../package.json' ).name;
+var last = require( './../lib' );
+
+
+// MAIN //
+
+bench( pkg, function benchmark( b ) {
+	var values;
+	var out;
+	var i;
+
+	values = [
+		'hello world',
+		'new',
+		'JavaScript',
+		'beep boop',
+		'foo bar',
+		'xyz abc',
+		'🐶🐮🐷🐰🐸',
+		'अनुच्छेद'
+	];
+
+	b.tic();
+	for ( i = 0; i < b.iterations; i++ ) {
+		out = last( values[ i%values.length ], 1 );
+		if ( typeof out !== 'string' ) {
+			b.fail( 'should return a string' );
+		}
+	}
+	b.toc();
+	if ( !isString( out ) ) {
+		b.fail( 'should return a string' );
+	}
+	b.pass( 'benchmark finished' );
+	b.end();
+});
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/docs/repl.txt b/lib/node_modules/@stdlib/string/base/last-code-point/docs/repl.txt
new file mode 100644
index 000000000000..3cc6b09209e7
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/docs/repl.txt
@@ -0,0 +1,29 @@
+
+{{alias}}( str, n )
+    Returns the last `n` Unicode code points of a string.
+
+    Parameters
+    ----------
+    str: string
+        Input string.
+
+    n: integer
+        Number of Unicode code points to return.
+
+    Returns
+    -------
+    out: string
+        Output string.
+
+    Examples
+    --------
+    > var out = {{alias}}( 'hello world', 1 )
+    'd'
+    > out = {{alias}}( 'JavaScript', 6 )
+    'Script'
+    > out = {{alias}}( 'अनुच्छेद', 1 )
+    'द'
+
+    See Also
+    --------
+
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/docs/types/index.d.ts b/lib/node_modules/@stdlib/string/base/last-code-point/docs/types/index.d.ts
new file mode 100644
index 000000000000..0f31876afb92
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/docs/types/index.d.ts
@@ -0,0 +1,49 @@
+/*
+* @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
+
+/**
+* Returns the last `n` Unicode code points of a string.
+*
+* @param str - input string
+* @param n - number of code points to return
+* @returns output string
+*
+* @example
+* var out = last( 'Hello World', 1 );
+* // returns 'd'
+*
+* @example
+* var out = last( 'JavaScript', 6 );
+* // returns 'Script'
+*
+* @example
+* var out = last( 'New', 5 );
+* // returns 'New'
+*
+* @example
+* var out = last( 'अनुच्छेद', 1 );
+* // returns 'द'
+*/
+declare function last( str: string, n: number ): string;
+
+
+// EXPORTS //
+
+export = last;
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/docs/types/test.ts b/lib/node_modules/@stdlib/string/base/last-code-point/docs/types/test.ts
new file mode 100644
index 000000000000..310a416d4bc1
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/docs/types/test.ts
@@ -0,0 +1,57 @@
+/*
+* @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.
+*/
+
+import last = require( './index' );
+
+
+// TESTS //
+
+// The function returns a string...
+{
+	last( 'abc', 1 ); // $ExpectType string
+}
+
+// The compiler throws an error if the function is provided a value other than a string...
+{
+	last( true, 1 ); // $ExpectError
+	last( false, 1 ); // $ExpectError
+	last( null, 1 ); // $ExpectError
+	last( undefined, 1 ); // $ExpectError
+	last( 5, 1 ); // $ExpectError
+	last( [], 1 ); // $ExpectError
+	last( {}, 1 ); // $ExpectError
+	last( ( x: number ): number => x, 1 ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided a second argument that is not a number...
+{
+	last( 'abc', true ); // $ExpectError
+	last( 'abc', false ); // $ExpectError
+	last( 'abc', null ); // $ExpectError
+	last( 'abc', 'abc' ); // $ExpectError
+	last( 'abc', [] ); // $ExpectError
+	last( 'abc', {} ); // $ExpectError
+	last( 'abc', ( x: number ): number => x ); // $ExpectError
+}
+
+// The compiler throws an error if the function is provided an unsupported number of arguments...
+{
+	last(); // $ExpectError
+	last( 'abc' ); // $ExpectError
+	last( 'abc', 1, 2 ); // $ExpectError
+}
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/examples/index.js b/lib/node_modules/@stdlib/string/base/last-code-point/examples/index.js
new file mode 100644
index 000000000000..817b483b97ef
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/examples/index.js
@@ -0,0 +1,36 @@
+/**
+* @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';
+
+var lastCodePoint = require( './../lib' );
+
+console.log( lastCodePoint( 'Hello World', 1 ) );
+// => 'd'
+
+console.log( lastCodePoint( 'JavaScript', 6 ) );
+// => 'Script'
+
+console.log( lastCodePoint( 'index', 10 ) );
+// => 'index'
+
+console.log( lastCodePoint( 'अनुच्छेद', 1 ) );
+// => 'द'
+
+console.log( lastCodePoint( '六书/六書', 3 ) );
+// => '/六書'
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/lib/index.js b/lib/node_modules/@stdlib/string/base/last-code-point/lib/index.js
new file mode 100644
index 000000000000..04ae88c85534
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/lib/index.js
@@ -0,0 +1,43 @@
+/**
+* @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';
+
+/**
+* Return the last `n` Unicode code points of a string.
+*
+* @module @stdlib/string/base/last-code-point
+*
+* @example
+* var last = require( '@stdlib/string/base/last-code-point' );
+*
+* var out = last( 'Hello World', 1 );
+* // returns 'd'
+*
+* out = last( 'अनुच्छेद', 1 );
+* // returns 'द';
+*/
+
+// MODULES //
+
+var main = require( './main.js' );
+
+
+// EXPORTS //
+
+module.exports = main;
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/lib/main.js b/lib/node_modules/@stdlib/string/base/last-code-point/lib/main.js
new file mode 100644
index 000000000000..e8089a613485
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/lib/main.js
@@ -0,0 +1,106 @@
+/**
+* @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 RE_UTF16_SURROGATE_PAIR = require( '@stdlib/regexp/utf16-surrogate-pair' ).REGEXP;
+
+
+// VARIABLES //
+
+var RE_UTF16_LOW_SURROGATE = /[\uDC00-\uDFFF]/; // TODO: replace with stdlib pkg
+var RE_UTF16_HIGH_SURROGATE = /[\uD800-\uDBFF]/; // TODO: replace with stdlib pkg
+
+
+// MAIN //
+
+/**
+* Returns the last `n` Unicode code points of a string.
+*
+* @param {string} str - input string
+* @param {NonNegativeInteger} n - number of Unicode code points to return
+* @returns {string} output string
+*
+* @example
+* var out = last( 'Hello World', 1 );
+* // returns 'd'
+*
+* @example
+* var out = last( 'ASCII', 2 );
+* // returns 'II'
+*
+* @example
+* var out = last( 'JavaScript', 6 );
+* // returns 'Script'
+*/
+function last( str, n ) {
+	var len;
+	var out;
+	var ch1;
+	var ch2;
+	var cnt;
+	var i;
+	len = str.length;
+	out = '';
+	cnt = 0;
+	if ( str === '' || n === 0 ) {
+		return '';
+	}
+	if ( n === 1 ) {
+		str = str.substring( len-2, len );
+		if ( RE_UTF16_SURROGATE_PAIR.test( str ) ) {
+			return str;
+		}
+		return str[1];
+	}
+
+	// Process the string backwards one Unicode code unit at a time and count UTF-16 surrogate pairs as a single Unicode code point...
+	for ( i = len-1; i >= 0; i-- ) {
+		ch1 = str[ i ];
+		out = ch1 + out;
+		cnt += 1;
+
+		// Check for a low UTF-16 surrogate...
+		if ( RE_UTF16_LOW_SURROGATE.test( ch1 ) ) {
+			// Check for an unpaired surrogate at the start of the input string...
+			if ( i === 0 ) {
+				// We found an unpaired surrogate...
+				break;
+			}
+			// Check whether the low surrogate is paired with a high surrogate...
+			ch2 = str[ i-1 ];
+			if ( RE_UTF16_HIGH_SURROGATE.test( ch2 ) ) {
+				// We found a surrogate pair:
+				out = ch2 + out;
+				i -= 1; // decrement the index to process the next code unit
+			}
+		}
+		// Check whether we've found the desired number of code points...
+		if ( cnt === n ) {
+			break;
+		}
+	}
+	return out;
+}
+
+
+// EXPORTS //
+
+module.exports = last;
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/package.json b/lib/node_modules/@stdlib/string/base/last-code-point/package.json
new file mode 100644
index 000000000000..4ea5629c975c
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/package.json
@@ -0,0 +1,67 @@
+{
+  "name": "@stdlib/string/base/last-code-point",
+  "version": "0.0.0",
+  "description": "Return the last Unicode code point of a string.",
+  "license": "Apache-2.0",
+  "author": {
+    "name": "The Stdlib Authors",
+    "url": "https://github.com/stdlib-js/stdlib/graphs/contributors"
+  },
+  "contributors": [
+    {
+      "name": "The Stdlib Authors",
+      "url": "https://github.com/stdlib-js/stdlib/graphs/contributors"
+    }
+  ],
+  "main": "./lib",
+  "directories": {
+    "benchmark": "./benchmark",
+    "doc": "./docs",
+    "example": "./examples",
+    "lib": "./lib",
+    "test": "./test"
+  },
+  "types": "./docs/types",
+  "scripts": {},
+  "homepage": "https://github.com/stdlib-js/stdlib",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/stdlib-js/stdlib.git"
+  },
+  "bugs": {
+    "url": "https://github.com/stdlib-js/stdlib/issues"
+  },
+  "dependencies": {},
+  "devDependencies": {},
+  "engines": {
+    "node": ">=0.10.0",
+    "npm": ">2.7.0"
+  },
+  "os": [
+    "aix",
+    "darwin",
+    "freebsd",
+    "linux",
+    "macos",
+    "openbsd",
+    "sunos",
+    "win32",
+    "windows"
+  ],
+  "keywords": [
+    "stdlib",
+    "stdstring",
+    "utilities",
+    "utility",
+    "utils",
+    "util",
+    "string",
+    "str",
+    "base",
+    "last",
+    "character",
+    "char",
+    "codepoint",
+    "unicode"
+  ]
+}
diff --git a/lib/node_modules/@stdlib/string/base/last-code-point/test/test.js b/lib/node_modules/@stdlib/string/base/last-code-point/test/test.js
new file mode 100644
index 000000000000..18b44ca202d8
--- /dev/null
+++ b/lib/node_modules/@stdlib/string/base/last-code-point/test/test.js
@@ -0,0 +1,117 @@
+/**
+* @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 tape = require( 'tape' );
+var last = require( './../lib' );
+
+
+// TESTS //
+
+tape( 'main export is a function', function test( t ) {
+	t.ok( true, __filename );
+	t.strictEqual( typeof last, 'function', 'main export is a function' );
+	t.end();
+});
+
+tape( 'the function returns an empty string if provided an empty string', function test( t ) {
+	t.strictEqual( last( '', 1 ), '', 'returns expected value' );
+	t.strictEqual( last( '', 2 ), '', 'returns expected value' );
+	t.strictEqual( last( '', 3 ), '', 'returns expected value' );
+	t.end();
+});
+
+tape( 'the function returns an empty string if provided zero as the second argument', function test( t ) {
+	t.strictEqual( last( 'hello world', 0 ), '', 'returns expected value' );
+	t.end();
+});
+
+tape( 'the function returns the last Unicode code point of a provided string (ascii)', function test( t ) {
+	var out;
+
+	out = last( 'hello world', 1 );
+	t.strictEqual( out, 'd', 'returns expected value' );
+
+	out = last( '!!!', 1 );
+	t.strictEqual( out, '!', 'returns expected value' );
+
+	out = last( 'JavaScript', 6 );
+	t.strictEqual( out, 'Script', 'returns expected value' );
+
+	t.end();
+});
+
+tape( 'the function returns the last Unicode code point of a provided string (Unicode)', function test( t ) {
+	var out;
+
+	out = last( 'अनुच्छेद', 1 );
+	t.strictEqual( out, 'द', 'returns expected value' );
+
+	out = last( '六书/六書', 1 );
+	t.strictEqual( out, '書', 'returns expected value' );
+
+	t.end();
+});
+
+tape( 'the function supports returning the last `n` Unicode code points of a provided string', function test( t ) {
+	var out;
+
+	out = last( 'hello world', 1 );
+	t.strictEqual( out, 'd', 'returns expected value' );
+
+	out = last( 'hello world', 7 );
+	t.strictEqual( out, 'o world', 'returns expected value' );
+
+	out = last( '!!!', 2 );
+	t.strictEqual( out, '!!', 'returns expected value' );
+
+	out = last( '六书/六書', 3 );
+	t.strictEqual( out, '/六書', 'returns expected value' );
+
+	out = last( '六书/六書', 5 );
+	t.strictEqual( out, '六书/六書', 'returns expected value' );
+
+	out = last( '六书/六書', 10 );
+	t.strictEqual( out, '六书/六書', 'returns expected value' );
+
+	out = last( 'hello六书/六書', 6 );
+	t.strictEqual( out, 'o六书/六書', 'returns expected value' );
+
+	out = last( 'hello六书/六書', 10 );
+	t.strictEqual( out, 'hello六书/六書', 'returns expected value' );
+
+	out = last( '六书/hello六書', 15 );
+	t.strictEqual( out, '六书/hello六書', 'returns expected value' );
+
+	out = last( '😄', 1 );
+	t.strictEqual( out, '😄', 'returns expected value' );
+
+	out = last( '👍', 1 );
+	t.strictEqual( out, '👍', 'returns expected value' );
+
+	out = last( 'abc😄def', 4 );
+	t.strictEqual( out, '😄def', 'returns expected value' );
+
+	out = last( '😄😄😄', 2 );
+	t.strictEqual( out, '😄😄', 'returns expected value' );
+
+	t.end();
+});