From 1cde3870175d4429cb04ff5fed04d5ca765a11fe Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 20 Mar 2024 23:14:33 +0000
Subject: [PATCH] chore(deps): update dependency typescript to v5.4.3

---
 package-lock.json                             | 208 +++++++-----------
 package.json                                  |   2 +-
 packages/client/package-lock.json             |  25 ++-
 packages/client/package.json                  |   2 +-
 .../package-lock.json                         |   6 +-
 .../redux-effects-specter-cache/package.json  |   2 +-
 .../redux-effects-specter/package-lock.json   | 121 +++++++++-
 packages/redux-effects-specter/package.json   |   2 +-
 packages/specter/package-lock.json            |   6 +-
 packages/specter/package.json                 |   2 +-
 packages/storage-redis/package-lock.json      |  21 +-
 packages/storage-redis/package.json           |   2 +-
 packages/storage/package-lock.json            |   6 +-
 packages/storage/package.json                 |   2 +-
 14 files changed, 259 insertions(+), 148 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index e99353d4..25cb9775 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -614,21 +614,6 @@
           "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
           "dev": true
         },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true
-        },
         "emoji-regex": {
           "version": "9.2.2",
           "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -646,40 +631,6 @@
             "strip-ansi": "^7.0.1"
           }
         },
-        "string-width-cjs": {
-          "version": "npm:string-width@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,
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.1"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "5.0.1",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-              "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-              "dev": true
-            },
-            "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
-            },
-            "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,
-              "requires": {
-                "ansi-regex": "^5.0.1"
-              }
-            }
-          }
-        },
         "strip-ansi": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
@@ -689,23 +640,6 @@
             "ansi-regex": "^6.0.1"
           }
         },
-        "strip-ansi-cjs": {
-          "version": "npm:strip-ansi@6.0.1",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-          "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^5.0.1"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "5.0.1",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-              "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-              "dev": true
-            }
-          }
-        },
         "wrap-ansi": {
           "version": "8.1.0",
           "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
@@ -716,60 +650,6 @@
             "string-width": "^5.0.1",
             "strip-ansi": "^7.0.1"
           }
-        },
-        "wrap-ansi-cjs": {
-          "version": "npm:wrap-ansi@7.0.0",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-          "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.0.0",
-            "string-width": "^4.1.0",
-            "strip-ansi": "^6.0.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "5.0.1",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-              "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-              "dev": true
-            },
-            "ansi-styles": {
-              "version": "4.3.0",
-              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-              "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-              "dev": true,
-              "requires": {
-                "color-convert": "^2.0.1"
-              }
-            },
-            "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
-            },
-            "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,
-              "requires": {
-                "emoji-regex": "^8.0.0",
-                "is-fullwidth-code-point": "^3.0.0",
-                "strip-ansi": "^6.0.1"
-              }
-            },
-            "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,
-              "requires": {
-                "ansi-regex": "^5.0.1"
-              }
-            }
-          }
         }
       }
     },
@@ -10767,6 +10647,34 @@
         "strip-ansi": "^6.0.0"
       }
     },
+    "string-width-cjs": {
+      "version": "npm:string-width@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,
+      "requires": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+          "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+          "dev": true
+        },
+        "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,
+          "requires": {
+            "ansi-regex": "^5.0.1"
+          }
+        }
+      }
+    },
     "string_decoder": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -10785,6 +10693,23 @@
         "ansi-regex": "^5.0.0"
       }
     },
+    "strip-ansi-cjs": {
+      "version": "npm:strip-ansi@6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^5.0.1"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+          "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+          "dev": true
+        }
+      }
+    },
     "strip-bom": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
@@ -11208,9 +11133,9 @@
       "dev": true
     },
     "typescript": {
-      "version": "5.0.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-      "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+      "version": "5.4.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+      "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
       "dev": true
     },
     "uglify-js": {
@@ -11447,6 +11372,43 @@
         }
       }
     },
+    "wrap-ansi-cjs": {
+      "version": "npm:wrap-ansi@7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true
+        }
+      }
+    },
     "wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index 8d6f26f3..2199b52e 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,6 @@
     "lerna": "6.6.2",
     "prettier": "2.8.8",
     "ts-jest": "29.1.0",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   }
 }
diff --git a/packages/client/package-lock.json b/packages/client/package-lock.json
index e49dbd4b..92a9ed97 100644
--- a/packages/client/package-lock.json
+++ b/packages/client/package-lock.json
@@ -775,6 +775,25 @@
 				"@sinonjs/commons": "^2.0.0"
 			}
 		},
+		"@specter/specter": {
+			"version": "0.7.4",
+			"resolved": "https://registry.npmjs.org/@specter/specter/-/specter-0.7.4.tgz",
+			"integrity": "sha512-gJf3S3WiXVeEvrlB6QM3cMDJSyKGS71BiuKwbozEX25GcpCVAvG+LNebSNIPicrhUz1VdAf65j/j+vyouYZJKA==",
+			"dev": true,
+			"requires": {
+				"@types/express": "4.17.13",
+				"tslib": "^2.0.0",
+				"unfetch": "^4.1.0"
+			},
+			"dependencies": {
+				"unfetch": {
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
+					"integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==",
+					"dev": true
+				}
+			}
+		},
 		"@types/babel__core": {
 			"version": "7.20.0",
 			"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
@@ -3237,9 +3256,9 @@
 			}
 		},
 		"typescript": {
-			"version": "5.0.4",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-			"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+			"version": "5.4.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+			"integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
 			"dev": true
 		},
 		"unfetch": {
diff --git a/packages/client/package.json b/packages/client/package.json
index c708dda5..ea276154 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -48,7 +48,7 @@
     "isomorphic-unfetch": "4.0.2",
     "jest": "29.5.0",
     "ts-jest": "29.1.0",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   },
   "dependencies": {
     "tslib": "^2.0.0",
diff --git a/packages/redux-effects-specter-cache/package-lock.json b/packages/redux-effects-specter-cache/package-lock.json
index eeb5fe94..f1995126 100644
--- a/packages/redux-effects-specter-cache/package-lock.json
+++ b/packages/redux-effects-specter-cache/package-lock.json
@@ -2720,9 +2720,9 @@
       "dev": true
     },
     "typescript": {
-      "version": "5.0.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-      "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+      "version": "5.4.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+      "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
       "dev": true
     },
     "unfetch": {
diff --git a/packages/redux-effects-specter-cache/package.json b/packages/redux-effects-specter-cache/package.json
index 70e05e5c..89fc0889 100644
--- a/packages/redux-effects-specter-cache/package.json
+++ b/packages/redux-effects-specter-cache/package.json
@@ -49,7 +49,7 @@
     "jest": "29.5.0",
     "redux": "4.2.1",
     "ts-jest": "29.1.0",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   },
   "peerDependencies": {
     "redux": ">= 4.0"
diff --git a/packages/redux-effects-specter/package-lock.json b/packages/redux-effects-specter/package-lock.json
index b4245ed3..2b43a7fa 100644
--- a/packages/redux-effects-specter/package-lock.json
+++ b/packages/redux-effects-specter/package-lock.json
@@ -752,6 +752,27 @@
 				"@sinonjs/commons": "^2.0.0"
 			}
 		},
+		"@specter/client": {
+			"version": "0.7.4",
+			"resolved": "https://registry.npmjs.org/@specter/client/-/client-0.7.4.tgz",
+			"integrity": "sha512-oYksEWpe56Y/QBcUZvphByszmvYQzkkvYXdNd7E55DXZcw7tMGa04P90bJ8Yp6a+wq8qzdZ6CTByXUsyfy7YBg==",
+			"dev": true,
+			"requires": {
+				"tslib": "^2.0.0",
+				"unfetch": "^4.1.0"
+			}
+		},
+		"@specter/specter": {
+			"version": "0.7.4",
+			"resolved": "https://registry.npmjs.org/@specter/specter/-/specter-0.7.4.tgz",
+			"integrity": "sha512-gJf3S3WiXVeEvrlB6QM3cMDJSyKGS71BiuKwbozEX25GcpCVAvG+LNebSNIPicrhUz1VdAf65j/j+vyouYZJKA==",
+			"dev": true,
+			"requires": {
+				"@types/express": "4.17.13",
+				"tslib": "^2.0.0",
+				"unfetch": "^4.1.0"
+			}
+		},
 		"@types/babel__core": {
 			"version": "7.20.0",
 			"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
@@ -793,6 +814,49 @@
 				"@babel/types": "^7.3.0"
 			}
 		},
+		"@types/body-parser": {
+			"version": "1.19.5",
+			"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+			"integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+			"dev": true,
+			"requires": {
+				"@types/connect": "*",
+				"@types/node": "*"
+			}
+		},
+		"@types/connect": {
+			"version": "3.4.38",
+			"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+			"integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+			"dev": true,
+			"requires": {
+				"@types/node": "*"
+			}
+		},
+		"@types/express": {
+			"version": "4.17.13",
+			"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
+			"integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
+			"dev": true,
+			"requires": {
+				"@types/body-parser": "*",
+				"@types/express-serve-static-core": "^4.17.18",
+				"@types/qs": "*",
+				"@types/serve-static": "*"
+			}
+		},
+		"@types/express-serve-static-core": {
+			"version": "4.17.43",
+			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
+			"integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
+			"dev": true,
+			"requires": {
+				"@types/node": "*",
+				"@types/qs": "*",
+				"@types/range-parser": "*",
+				"@types/send": "*"
+			}
+		},
 		"@types/graceful-fs": {
 			"version": "4.1.6",
 			"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
@@ -802,6 +866,12 @@
 				"@types/node": "*"
 			}
 		},
+		"@types/http-errors": {
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+			"integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+			"dev": true
+		},
 		"@types/istanbul-lib-coverage": {
 			"version": "2.0.4",
 			"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -826,6 +896,12 @@
 				"@types/istanbul-lib-report": "*"
 			}
 		},
+		"@types/mime": {
+			"version": "1.3.5",
+			"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+			"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+			"dev": true
+		},
 		"@types/node": {
 			"version": "18.15.10",
 			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz",
@@ -838,6 +914,39 @@
 			"integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==",
 			"dev": true
 		},
+		"@types/qs": {
+			"version": "6.9.14",
+			"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz",
+			"integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==",
+			"dev": true
+		},
+		"@types/range-parser": {
+			"version": "1.2.7",
+			"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+			"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+			"dev": true
+		},
+		"@types/send": {
+			"version": "0.17.4",
+			"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+			"integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+			"dev": true,
+			"requires": {
+				"@types/mime": "^1",
+				"@types/node": "*"
+			}
+		},
+		"@types/serve-static": {
+			"version": "1.15.5",
+			"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz",
+			"integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==",
+			"dev": true,
+			"requires": {
+				"@types/http-errors": "*",
+				"@types/mime": "*",
+				"@types/node": "*"
+			}
+		},
 		"@types/stack-utils": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
@@ -2603,9 +2712,15 @@
 			"dev": true
 		},
 		"typescript": {
-			"version": "5.0.4",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-			"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+			"version": "5.4.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+			"integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
+			"dev": true
+		},
+		"unfetch": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
+			"integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==",
 			"dev": true
 		},
 		"update-browserslist-db": {
diff --git a/packages/redux-effects-specter/package.json b/packages/redux-effects-specter/package.json
index ab83e9a8..e5f82312 100644
--- a/packages/redux-effects-specter/package.json
+++ b/packages/redux-effects-specter/package.json
@@ -41,7 +41,7 @@
     "jest": "29.5.0",
     "redux": "4.2.1",
     "ts-jest": "29.1.0",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   },
   "peerDependencies": {
     "redux": ">= 4.0"
diff --git a/packages/specter/package-lock.json b/packages/specter/package-lock.json
index 418745ee..0e18f07c 100644
--- a/packages/specter/package-lock.json
+++ b/packages/specter/package-lock.json
@@ -3252,9 +3252,9 @@
 			}
 		},
 		"typescript": {
-			"version": "5.0.4",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-			"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+			"version": "5.4.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+			"integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
 			"dev": true
 		},
 		"unfetch": {
diff --git a/packages/specter/package.json b/packages/specter/package.json
index fc4f773a..04dfda7c 100644
--- a/packages/specter/package.json
+++ b/packages/specter/package.json
@@ -56,7 +56,7 @@
     "isomorphic-unfetch": "4.0.2",
     "jest": "29.5.0",
     "ts-jest": "29.1.0",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   },
   "gitHead": "e0a30cf328c1473eadfd44dd5c39bd170ab4f06c",
   "publishConfig": {
diff --git a/packages/storage-redis/package-lock.json b/packages/storage-redis/package-lock.json
index b909175e..f310ebe3 100644
--- a/packages/storage-redis/package-lock.json
+++ b/packages/storage-redis/package-lock.json
@@ -743,6 +743,21 @@
 				"@sinonjs/commons": "^2.0.0"
 			}
 		},
+		"@specter/storage": {
+			"version": "0.7.4",
+			"resolved": "https://registry.npmjs.org/@specter/storage/-/storage-0.7.4.tgz",
+			"integrity": "sha512-BYr31CDnfi7FFA2ZQau+iHC+5CRoR3mafJ5fIoDinOAOGspO9t7XJ3F+m2mq4+wk2SFLFPQkTqvzwKV8WJiGwA==",
+			"requires": {
+				"tslib": "2.3.1"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "2.3.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
+					"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+				}
+			}
+		},
 		"@types/babel__core": {
 			"version": "7.20.0",
 			"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
@@ -2649,9 +2664,9 @@
 			"dev": true
 		},
 		"typescript": {
-			"version": "5.0.4",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-			"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+			"version": "5.4.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+			"integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
 			"dev": true
 		},
 		"update-browserslist-db": {
diff --git a/packages/storage-redis/package.json b/packages/storage-redis/package.json
index c9a134d9..a4c44fed 100644
--- a/packages/storage-redis/package.json
+++ b/packages/storage-redis/package.json
@@ -45,7 +45,7 @@
   "devDependencies": {
     "jest": "29.5.0",
     "ts-jest": "29.1.0",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   },
   "gitHead": "e0a30cf328c1473eadfd44dd5c39bd170ab4f06c"
 }
diff --git a/packages/storage/package-lock.json b/packages/storage/package-lock.json
index ecbfc9b1..cbf13502 100644
--- a/packages/storage/package-lock.json
+++ b/packages/storage/package-lock.json
@@ -2691,9 +2691,9 @@
 			"dev": true
 		},
 		"typescript": {
-			"version": "5.0.4",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
-			"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+			"version": "5.4.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+			"integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
 			"dev": true
 		},
 		"update-browserslist-db": {
diff --git a/packages/storage/package.json b/packages/storage/package.json
index a42b315f..3c5381eb 100644
--- a/packages/storage/package.json
+++ b/packages/storage/package.json
@@ -36,7 +36,7 @@
     "jest": "29.5.0",
     "ts-jest": "29.1.0",
     "ts-node": "10.9.1",
-    "typescript": "5.0.4"
+    "typescript": "5.4.3"
   },
   "gitHead": "e0a30cf328c1473eadfd44dd5c39bd170ab4f06c",
   "dependencies": {