From 83403f3bfce42681f9f9485be1a1c510dd841135 Mon Sep 17 00:00:00 2001 From: "matus.hudec" Date: Mon, 5 Jan 2026 18:34:58 +0100 Subject: [PATCH 1/8] Release 7.0.4-beta --- package.json | 4 +-- src/httpClient/redisStorage.ts | 8 ++++-- yarn.lock | 50 +++++++++++++++++++++------------- 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 3a7c3cb..7fd3e20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lambda-essentials-ts", - "version": "7.0.3", + "version": "7.0.4-beta", "description": "A selection of the finest modules supporting authorization, API routing, error handling, logging and sending HTTP requests.", "main": "lib/index.js", "private": false, @@ -30,7 +30,7 @@ "@aws-sdk/client-secrets-manager": "^3.930.0", "@types/node": "^24.10.1", "axios": "1.13.2", - "axios-cache-interceptor": "^1.8.3", + "axios-cache-interceptor": "1.11.1", "fast-safe-stringify": "~2.1.1", "is-error": "~2.2.2", "jsonwebtoken": "9.0.2", diff --git a/src/httpClient/redisStorage.ts b/src/httpClient/redisStorage.ts index cf07771..dd86515 100644 --- a/src/httpClient/redisStorage.ts +++ b/src/httpClient/redisStorage.ts @@ -7,9 +7,9 @@ const KEY_PREFIX = 'axios-cache-'; const MIN_TTL = 60000; -export default function createRedisStorage(client: ReturnType) { +export default async function createRedisStorage(client: ReturnType) { // source https://axios-cache-interceptor.js.org/guide/storages#node-redis-storage - return buildStorage({ + const storage = buildStorage({ async find(key) { const result = await client.get(`${KEY_PREFIX}${key}`); return result ? (JSON.parse(result) as StorageValue) : undefined; @@ -38,4 +38,8 @@ export default function createRedisStorage(client: ReturnType Date: Mon, 5 Jan 2026 18:38:15 +0100 Subject: [PATCH 2/8] Release 7.0.4-beta --- package.json | 2 +- yarn.lock | 181 +++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 142 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index 7fd3e20..a1f35e1 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "redis": "^5.9.0", "axios-mock-adapter": "^2.1.0", "eslint": "^8.57.1", - "eslint-config-cimpress-atsquad": "^2.2.0-beta", + "eslint-config-cimpress-atsquad": "^2.2.3", "husky": "^9.1.7", "jest": "^29.7.0", "lint-staged": "^15.5.2", diff --git a/yarn.lock b/yarn.lock index b0dbed5..3358c31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1155,6 +1155,11 @@ resolved "https://registry.yarnpkg.com/@redis/time-series/-/time-series-5.9.0.tgz#519e3cd3a068e65f51bb3caa5fa35270b1876109" integrity sha512-W6ILxcyOqhnI7ELKjJXOktIg3w4+aBHugDbVpgVLPZ+YDjObis1M0v7ZzwlpXhlpwsfePfipeSK+KWNuymk52w== +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -1956,7 +1961,7 @@ array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: call-bound "^1.0.3" is-array-buffer "^3.0.5" -array-includes@^3.1.4: +array-includes@^3.1.9: version "3.1.9" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== @@ -1975,7 +1980,20 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.2.5: +array.prototype.findlastindex@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" + integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-shim-unscopables "^1.1.0" + +array.prototype.flat@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== @@ -1985,6 +2003,16 @@ array.prototype.flat@^1.2.5: es-abstract "^1.23.5" es-shim-unscopables "^1.0.2" +array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + arraybuffer.prototype.slice@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" @@ -2447,13 +2475,6 @@ data-view-byte-offset@^1.0.1: es-errors "^1.3.0" is-data-view "^1.0.1" -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -2605,6 +2626,66 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.23.2: + version "1.24.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.1.tgz#f0c131ed5ea1bb2411134a8dd94def09c46c7899" + integrity sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-negative-zero "^2.0.3" + is-regex "^1.2.1" + is-set "^2.0.3" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.1" + math-intrinsics "^1.1.0" + object-inspect "^1.13.4" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.4" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.19" + es-abstract@^1.23.5, es-abstract@^1.23.9, es-abstract@^1.24.0: version "1.24.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" @@ -2692,7 +2773,7 @@ es-set-tostringtag@^2.1.0: has-tostringtag "^1.0.2" hasown "^2.0.2" -es-shim-unscopables@^1.0.2: +es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== @@ -2750,16 +2831,16 @@ eslint-config-airbnb-typescript@16.1.0: dependencies: eslint-config-airbnb-base "^15.0.0" -eslint-config-cimpress-atsquad@^2.2.0-beta: - version "2.2.0-beta" - resolved "https://registry.yarnpkg.com/eslint-config-cimpress-atsquad/-/eslint-config-cimpress-atsquad-2.2.0-beta.tgz#f99758b436f9622d544b00fd4da327570a4839c7" - integrity sha512-Pn4uFKF3+/J2rWclk4gxnYu0Nvq5QGhxAFZrfqgtkxOk2FleNgkTdCIqchvIX/8DbsoTSwUYwNc7PkGlZB+z5g== +eslint-config-cimpress-atsquad@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/eslint-config-cimpress-atsquad/-/eslint-config-cimpress-atsquad-2.2.3.tgz#3e1372dc0480c8becaba0dfedb09efbe9b75b936" + integrity sha512-/kXwq8KquvDLNfgTnposATegQLrP8NqvvkrobfZHliLmg0b9MEkTiab4usNZaSNJOw5SFoE5J+DYBiY4ie4qrA== dependencies: "@typescript-eslint/eslint-plugin" "5.9.1" "@typescript-eslint/parser" "5.9.1" eslint-config-airbnb-typescript "16.1.0" eslint-config-prettier "8.3.0" - eslint-plugin-import "2.25.4" + eslint-plugin-import "2.32.0" eslint-plugin-jest "23.13.2" eslint-plugin-prettier "4.0.0" eslint-plugin-unicorn "40.0.0" @@ -2769,7 +2850,7 @@ eslint-config-prettier@8.3.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== -eslint-import-resolver-node@^0.3.6: +eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== @@ -2778,31 +2859,37 @@ eslint-import-resolver-node@^0.3.6: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.7.2: +eslint-module-utils@^2.12.1: version "2.12.1" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff" integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== dependencies: debug "^3.2.7" -eslint-plugin-import@2.25.4: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import@2.32.0: + version "2.32.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980" + integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.9" + array.prototype.findlastindex "^1.2.6" + array.prototype.flat "^1.3.3" + array.prototype.flatmap "^1.3.3" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.12.1" + hasown "^2.0.2" + is-core-module "^2.16.1" is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.1" + semver "^6.3.1" + string.prototype.trimend "^1.0.9" + tsconfig-paths "^3.15.0" eslint-plugin-jest@23.13.2: version "23.13.2" @@ -3567,7 +3654,7 @@ is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.16.0, is-core-module@^2.8.0: +is-core-module@^2.13.0, is-core-module@^2.16.0, is-core-module@^2.16.1: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== @@ -4517,11 +4604,6 @@ minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -4628,7 +4710,26 @@ object.entries@^1.1.5: define-properties "^1.2.1" es-object-atoms "^1.1.1" -object.values@^1.1.5: +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== @@ -5476,7 +5577,7 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.12.0: +tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== From bc7a03784675fa0ededa0c25c50242bb8d163254 Mon Sep 17 00:00:00 2001 From: "matus.hudec" Date: Wed, 7 Jan 2026 14:11:10 +0100 Subject: [PATCH 3/8] Release 7.0.4-beta --- package.json | 12 ++-- src/httpClient/redisStorage.ts | 12 ++-- yarn.lock | 114 ++++++++++++++++----------------- 3 files changed, 68 insertions(+), 70 deletions(-) diff --git a/package.json b/package.json index a1f35e1..479b43d 100644 --- a/package.json +++ b/package.json @@ -28,21 +28,21 @@ "dependencies": { "@aws-sdk/client-kms": "^3.930.0", "@aws-sdk/client-secrets-manager": "^3.930.0", - "@types/node": "^24.10.1", + "@types/node": "^25.0.3", "axios": "1.13.2", - "axios-cache-interceptor": "1.11.1", + "axios-cache-interceptor": "1.11.2", "fast-safe-stringify": "~2.1.1", "is-error": "~2.2.2", - "jsonwebtoken": "9.0.2", + "jsonwebtoken": "9.0.3", "md5": "~2.3.0", "openapi-factory": "5.4.60", "retry-axios": "~3.2.1", - "uuid": "~11.1.0" + "uuid": "~11.1.0", + "redis": "^5.10.0" }, "devDependencies": { "@types/jest": "^29.5.14", "@types/newrelic": "^9.14.8", - "redis": "^5.9.0", "axios-mock-adapter": "^2.1.0", "eslint": "^8.57.1", "eslint-config-cimpress-atsquad": "^2.2.3", @@ -50,7 +50,7 @@ "jest": "^29.7.0", "lint-staged": "^15.5.2", "prettier": "^2.8.8", - "ts-jest": "^29.4.5", + "ts-jest": "^29.4.6", "ts-node": "^10.9.2", "typescript": "^5.9.3" }, diff --git a/src/httpClient/redisStorage.ts b/src/httpClient/redisStorage.ts index dd86515..04d086b 100644 --- a/src/httpClient/redisStorage.ts +++ b/src/httpClient/redisStorage.ts @@ -1,15 +1,17 @@ import { buildStorage, canStale } from 'axios-cache-interceptor'; import type { StorageValue } from 'axios-cache-interceptor'; -// eslint-disable-next-line import/no-extraneous-dependencies import { createClient } from 'redis'; const KEY_PREFIX = 'axios-cache-'; const MIN_TTL = 60000; -export default async function createRedisStorage(client: ReturnType) { +export default async function createRedisStorage(redisEndpoint: string) { + const client = createClient({ url: redisEndpoint }); + await client.connect(); + // source https://axios-cache-interceptor.js.org/guide/storages#node-redis-storage - const storage = buildStorage({ + return buildStorage({ async find(key) { const result = await client.get(`${KEY_PREFIX}${key}`); return result ? (JSON.parse(result) as StorageValue) : undefined; @@ -38,8 +40,4 @@ export default async function createRedisStorage(client: ReturnType Date: Wed, 7 Jan 2026 15:29:21 +0100 Subject: [PATCH 4/8] Release 7.0.4-beta --- package.json | 6 +++--- src/httpClient/redisStorage.ts | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 479b43d..06c1abc 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,7 @@ "md5": "~2.3.0", "openapi-factory": "5.4.60", "retry-axios": "~3.2.1", - "uuid": "~11.1.0", - "redis": "^5.10.0" + "uuid": "~11.1.0" }, "devDependencies": { "@types/jest": "^29.5.14", @@ -52,7 +51,8 @@ "prettier": "^2.8.8", "ts-jest": "^29.4.6", "ts-node": "^10.9.2", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "redis": "^5.10.0" }, "eslintConfig": { "extends": "cimpress-atsquad" diff --git a/src/httpClient/redisStorage.ts b/src/httpClient/redisStorage.ts index 04d086b..dbd0ad8 100644 --- a/src/httpClient/redisStorage.ts +++ b/src/httpClient/redisStorage.ts @@ -1,13 +1,15 @@ import { buildStorage, canStale } from 'axios-cache-interceptor'; import type { StorageValue } from 'axios-cache-interceptor'; -import { createClient } from 'redis'; const KEY_PREFIX = 'axios-cache-'; const MIN_TTL = 60000; export default async function createRedisStorage(redisEndpoint: string) { - const client = createClient({ url: redisEndpoint }); + // eslint-disable-next-line import/no-extraneous-dependencies + const redis = require('redis'); + + const client = redis.createClient({ url: redisEndpoint }); await client.connect(); // source https://axios-cache-interceptor.js.org/guide/storages#node-redis-storage From 08514568ecd3e5ce8cbb1e826e8df0913e3787a6 Mon Sep 17 00:00:00 2001 From: "matus.hudec" Date: Wed, 7 Jan 2026 16:35:00 +0100 Subject: [PATCH 5/8] Release 7.0.4-beta --- src/httpClient/redisStorage.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/httpClient/redisStorage.ts b/src/httpClient/redisStorage.ts index dbd0ad8..cfbe364 100644 --- a/src/httpClient/redisStorage.ts +++ b/src/httpClient/redisStorage.ts @@ -10,17 +10,18 @@ export default async function createRedisStorage(redisEndpoint: string) { const redis = require('redis'); const client = redis.createClient({ url: redisEndpoint }); - await client.connect(); // source https://axios-cache-interceptor.js.org/guide/storages#node-redis-storage return buildStorage({ async find(key) { + if (!client.isReady) await client.connect(); const result = await client.get(`${KEY_PREFIX}${key}`); return result ? (JSON.parse(result) as StorageValue) : undefined; }, // eslint-disable-next-line complexity async set(key, value, req) { + if (!client.isReady) await client.connect(); await client.set(`${KEY_PREFIX}${key}`, JSON.stringify(value), { PXAT: // We don't want to keep indefinitely values in the storage if @@ -39,6 +40,7 @@ export default async function createRedisStorage(redisEndpoint: string) { }, async remove(key) { + if (!client.isReady) await client.connect(); await client.del(`${KEY_PREFIX}${key}`); }, }); From 732ebcf72e91c4066c3cef3adbf4ed91f6fc92de Mon Sep 17 00:00:00 2001 From: "matus.hudec" Date: Wed, 7 Jan 2026 16:36:01 +0100 Subject: [PATCH 6/8] Release 7.0.4-beta --- src/httpClient/redisStorage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/httpClient/redisStorage.ts b/src/httpClient/redisStorage.ts index cfbe364..5b420ec 100644 --- a/src/httpClient/redisStorage.ts +++ b/src/httpClient/redisStorage.ts @@ -5,7 +5,7 @@ const KEY_PREFIX = 'axios-cache-'; const MIN_TTL = 60000; -export default async function createRedisStorage(redisEndpoint: string) { +export default function createRedisStorage(redisEndpoint: string) { // eslint-disable-next-line import/no-extraneous-dependencies const redis = require('redis'); From 18062f5a6669de1ecb8a423d3108a76b93d66947 Mon Sep 17 00:00:00 2001 From: "matus.hudec" Date: Thu, 8 Jan 2026 15:50:53 +0100 Subject: [PATCH 7/8] Release 7.0.4-beta --- src/httpClient/redisStorage.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/httpClient/redisStorage.ts b/src/httpClient/redisStorage.ts index 5b420ec..b819dff 100644 --- a/src/httpClient/redisStorage.ts +++ b/src/httpClient/redisStorage.ts @@ -14,14 +14,19 @@ export default function createRedisStorage(redisEndpoint: string) { // source https://axios-cache-interceptor.js.org/guide/storages#node-redis-storage return buildStorage({ async find(key) { - if (!client.isReady) await client.connect(); + if (!client.isReady) { + await client.connect(); + } const result = await client.get(`${KEY_PREFIX}${key}`); return result ? (JSON.parse(result) as StorageValue) : undefined; }, // eslint-disable-next-line complexity async set(key, value, req) { - if (!client.isReady) await client.connect(); + if (!client.isReady) { + await client.connect(); + } + await client.set(`${KEY_PREFIX}${key}`, JSON.stringify(value), { PXAT: // We don't want to keep indefinitely values in the storage if @@ -40,7 +45,9 @@ export default function createRedisStorage(redisEndpoint: string) { }, async remove(key) { - if (!client.isReady) await client.connect(); + if (!client.isReady) { + await client.connect(); + } await client.del(`${KEY_PREFIX}${key}`); }, }); From cd99b92594bf924cace85fb0d31ab80a9e61578c Mon Sep 17 00:00:00 2001 From: "matus.hudec" Date: Thu, 8 Jan 2026 15:52:23 +0100 Subject: [PATCH 8/8] Release 7.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 06c1abc..5147e18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lambda-essentials-ts", - "version": "7.0.4-beta", + "version": "7.0.4", "description": "A selection of the finest modules supporting authorization, API routing, error handling, logging and sending HTTP requests.", "main": "lib/index.js", "private": false,