diff --git a/package.json b/package.json
index 53f9bf0b..57b3591e 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,7 @@
     "@semantic-release/npm": "^10.0.0",
     "@size-limit/preset-small-lib": "^8.0.0",
     "@types/jest": "29.5.1",
-    "@types/node": "^16.18.23",
+    "@types/node": "^18.0.0",
     "@typescript-eslint/eslint-plugin": "^5.27.1",
     "assertron": "^11.0.0",
     "depcheck": "^1.4.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0d67493d..c1d20888 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -34,8 +34,8 @@ devDependencies:
     specifier: 29.5.1
     version: 29.5.1
   '@types/node':
-    specifier: ^16.18.23
-    version: 16.18.23
+    specifier: ^18.0.0
+    version: 18.0.0
   '@typescript-eslint/eslint-plugin':
     specifier: ^5.27.1
     version: 5.27.1(@typescript-eslint/parser@5.57.1)(eslint@8.39.0)(typescript@5.0.2)
@@ -56,7 +56,7 @@ devDependencies:
     version: 8.0.1
   jest:
     specifier: 29.5.0
-    version: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+    version: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
   jest-validate:
     specifier: 29.5.0
     version: 29.5.0
@@ -550,15 +550,15 @@ packages:
       '@commitlint/execute-rule': 17.4.0
       '@commitlint/resolve-extends': 17.4.4
       '@commitlint/types': 17.4.4
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       cosmiconfig: 8.1.3
-      cosmiconfig-typescript-loader: 4.3.0(@types/node@16.18.23)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.2)
+      cosmiconfig-typescript-loader: 4.3.0(@types/node@18.0.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.2)
       lodash.isplainobject: 4.0.6
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
       resolve-from: 5.0.0
-      ts-node: 10.9.1(@types/node@16.18.23)(typescript@5.0.2)
+      ts-node: 10.9.1(@types/node@18.0.0)(typescript@5.0.2)
       typescript: 5.0.2
     transitivePeerDependencies:
       - '@swc/core'
@@ -726,7 +726,7 @@ packages:
     engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
     dependencies:
       '@jest/types': 28.1.3
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       jest-message-util: 28.1.3
       jest-util: 28.1.3
@@ -738,7 +738,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       jest-message-util: 29.5.0
       jest-util: 29.5.0
@@ -759,14 +759,14 @@ packages:
       '@jest/test-result': 29.5.0
       '@jest/transform': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       ci-info: 3.8.0
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.5.0
-      jest-config: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest-config: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
       jest-haste-map: 29.5.0
       jest-message-util: 29.5.0
       jest-regex-util: 29.4.3
@@ -793,7 +793,7 @@ packages:
     dependencies:
       '@jest/fake-timers': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       jest-mock: 29.5.0
     dev: true
 
@@ -820,7 +820,7 @@ packages:
     dependencies:
       '@jest/types': 29.5.0
       '@sinonjs/fake-timers': 10.0.2
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       jest-message-util: 29.5.0
       jest-mock: 29.5.0
       jest-util: 29.5.0
@@ -853,7 +853,7 @@ packages:
       '@jest/transform': 29.5.0
       '@jest/types': 29.5.0
       '@jridgewell/trace-mapping': 0.3.18
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       collect-v8-coverage: 1.0.1
       exit: 0.1.2
@@ -958,7 +958,7 @@ packages:
       '@jest/schemas': 28.1.3
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       '@types/yargs': 17.0.24
       chalk: 4.1.2
     dev: true
@@ -970,7 +970,7 @@ packages:
       '@jest/schemas': 29.4.3
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       '@types/yargs': 17.0.24
       chalk: 4.1.2
     dev: true
@@ -1191,7 +1191,7 @@ packages:
       ts-jest:
         optional: true
     dependencies:
-      jest: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
       jest-resolve: 29.5.0
       jest-watch-suspend: 1.1.2(jest@29.5.0)
       jest-watch-toggle-config-2: 2.1.0(jest@29.5.0)
@@ -1459,7 +1459,7 @@ packages:
   /@types/graceful-fs@4.1.6:
     resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
     dependencies:
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
     dev: true
 
   /@types/istanbul-lib-coverage@2.0.4:
@@ -1497,8 +1497,8 @@ packages:
     resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
     dev: true
 
-  /@types/node@16.18.23:
-    resolution: {integrity: sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g==}
+  /@types/node@18.0.0:
+    resolution: {integrity: sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==}
     dev: true
 
   /@types/normalize-package-data@2.4.1:
@@ -2384,7 +2384,7 @@ packages:
     resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
     dev: true
 
-  /cosmiconfig-typescript-loader@4.3.0(@types/node@16.18.23)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.2):
+  /cosmiconfig-typescript-loader@4.3.0(@types/node@18.0.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.2):
     resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==}
     engines: {node: '>=12', npm: '>=6'}
     peerDependencies:
@@ -2393,9 +2393,9 @@ packages:
       ts-node: '>=10'
       typescript: '>=3'
     dependencies:
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       cosmiconfig: 8.1.3
-      ts-node: 10.9.1(@types/node@16.18.23)(typescript@5.0.2)
+      ts-node: 10.9.1(@types/node@18.0.0)(typescript@5.0.2)
       typescript: 5.0.2
     dev: true
 
@@ -3967,7 +3967,7 @@ packages:
       '@jest/expect': 29.5.0
       '@jest/test-result': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       co: 4.6.0
       dedent: 0.7.0
@@ -3987,7 +3987,7 @@ packages:
       - supports-color
     dev: true
 
-  /jest-cli@29.5.0(@types/node@16.18.23)(ts-node@10.9.1):
+  /jest-cli@29.5.0(@types/node@18.0.0)(ts-node@10.9.1):
     resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -4004,7 +4004,7 @@ packages:
       exit: 0.1.2
       graceful-fs: 4.2.11
       import-local: 3.1.0
-      jest-config: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest-config: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
       jest-util: 29.5.0
       jest-validate: 29.5.0
       prompts: 2.4.2
@@ -4015,7 +4015,7 @@ packages:
       - ts-node
     dev: true
 
-  /jest-config@29.5.0(@types/node@16.18.23)(ts-node@10.9.1):
+  /jest-config@29.5.0(@types/node@18.0.0)(ts-node@10.9.1):
     resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     peerDependencies:
@@ -4030,7 +4030,7 @@ packages:
       '@babel/core': 7.21.4
       '@jest/test-sequencer': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       babel-jest: 29.5.0(@babel/core@7.21.4)
       chalk: 4.1.2
       ci-info: 3.8.0
@@ -4050,7 +4050,7 @@ packages:
       pretty-format: 29.5.0
       slash: 3.0.0
       strip-json-comments: 3.1.1
-      ts-node: 10.9.1(@types/node@16.18.23)(typescript@5.0.2)
+      ts-node: 10.9.1(@types/node@18.0.0)(typescript@5.0.2)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -4090,7 +4090,7 @@ packages:
       '@jest/environment': 29.5.0
       '@jest/fake-timers': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       jest-mock: 29.5.0
       jest-util: 29.5.0
     dev: true
@@ -4106,7 +4106,7 @@ packages:
     dependencies:
       '@jest/types': 29.5.0
       '@types/graceful-fs': 4.1.6
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       anymatch: 3.1.3
       fb-watchman: 2.0.2
       graceful-fs: 4.2.11
@@ -4172,7 +4172,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       jest-util: 29.5.0
     dev: true
 
@@ -4232,7 +4232,7 @@ packages:
       '@jest/test-result': 29.5.0
       '@jest/transform': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       emittery: 0.13.1
       graceful-fs: 4.2.11
@@ -4263,7 +4263,7 @@ packages:
       '@jest/test-result': 29.5.0
       '@jest/transform': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       cjs-module-lexer: 1.2.2
       collect-v8-coverage: 1.0.1
@@ -4318,7 +4318,7 @@ packages:
     engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
     dependencies:
       '@jest/types': 28.1.3
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       ci-info: 3.8.0
       graceful-fs: 4.2.11
@@ -4330,7 +4330,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       chalk: 4.1.2
       ci-info: 3.8.0
       graceful-fs: 4.2.11
@@ -4355,7 +4355,7 @@ packages:
       jest: '>=23'
     dependencies:
       chalk: 2.4.2
-      jest: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
       unpartial: 0.6.4
     dev: true
 
@@ -4366,7 +4366,7 @@ packages:
       jest: '>= 23.4.1'
     dependencies:
       chalk: 4.1.2
-      jest: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
     dev: true
 
   /jest-watch-typeahead@2.0.0(jest@29.5.0):
@@ -4377,7 +4377,7 @@ packages:
     dependencies:
       ansi-escapes: 5.0.0
       chalk: 4.1.2
-      jest: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
       jest-regex-util: 28.0.2
       jest-watcher: 28.1.3
       slash: 4.0.0
@@ -4391,7 +4391,7 @@ packages:
     dependencies:
       '@jest/test-result': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       emittery: 0.10.2
@@ -4405,7 +4405,7 @@ packages:
     dependencies:
       '@jest/test-result': 29.5.0
       '@jest/types': 29.5.0
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       emittery: 0.13.1
@@ -4417,13 +4417,13 @@ packages:
     resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       jest-util: 29.5.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
     dev: true
 
-  /jest@29.5.0(@types/node@16.18.23)(ts-node@10.9.1):
+  /jest@29.5.0(@types/node@18.0.0)(ts-node@10.9.1):
     resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -4436,7 +4436,7 @@ packages:
       '@jest/core': 29.5.0(ts-node@10.9.1)
       '@jest/types': 29.5.0
       import-local: 3.1.0
-      jest-cli: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest-cli: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
     transitivePeerDependencies:
       - '@types/node'
       - supports-color
@@ -6260,7 +6260,7 @@ packages:
       '@babel/core': 7.21.4
       bs-logger: 0.2.6
       fast-json-stable-stringify: 2.1.0
-      jest: 29.5.0(@types/node@16.18.23)(ts-node@10.9.1)
+      jest: 29.5.0(@types/node@18.0.0)(ts-node@10.9.1)
       jest-util: 29.5.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -6270,7 +6270,7 @@ packages:
       yargs-parser: 21.1.1
     dev: true
 
-  /ts-node@10.9.1(@types/node@16.18.23)(typescript@5.0.2):
+  /ts-node@10.9.1(@types/node@18.0.0)(typescript@5.0.2):
     resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
     hasBin: true
     peerDependencies:
@@ -6289,7 +6289,7 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.3
-      '@types/node': 16.18.23
+      '@types/node': 18.0.0
       acorn: 8.8.2
       acorn-walk: 8.2.0
       arg: 4.1.3