From d3553396a30bb04783d558396167ff09dde94e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20Hano=C4=9Flu?= Date: Thu, 18 Dec 2025 10:20:02 +0300 Subject: [PATCH 1/4] dev: Reconfigure tsconfig files and enable "composite" --- .ncurc.yml | 2 +- package-lock.json | 689 ++++++++++---------- package.json | 20 +- packages/dictionary/package.json | 4 +- packages/dictionary/tsconfig-build-cjs.json | 5 +- packages/dictionary/tsconfig-build-esm.json | 8 +- packages/dictionary/tsconfig.json | 9 +- packages/hl7v2/package.json | 6 +- packages/hl7v2/tsconfig-build-cjs.json | 5 +- packages/hl7v2/tsconfig-build-esm.json | 5 +- packages/hl7v2/tsconfig.json | 13 +- packages/net/package.json | 6 +- packages/net/src/hl7-socket.ts | 4 +- packages/net/tsconfig-build-cjs.json | 5 +- packages/net/tsconfig-build-esm.json | 5 +- packages/net/tsconfig.json | 18 +- tsconfig-base.json | 5 +- tsconfig-build.json | 1 - tsconfig.json | 10 +- 19 files changed, 412 insertions(+), 408 deletions(-) diff --git a/.ncurc.yml b/.ncurc.yml index 0fafee4..d970d90 100644 --- a/.ncurc.yml +++ b/.ncurc.yml @@ -1,4 +1,4 @@ workspaces: true peer: true dep: prod,dev,optional,peer -rejectVersion: "/(\\|\\|)|(&&)|>|<|^\\^/" +rejectVersion: "/(\\|\\|)|(&&)|>|<|^[0-9]/" diff --git a/package-lock.json b/package-lock.json index 19f5558..ccf2665 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,27 +15,27 @@ "@panates/eslint-config": "^2.0.6", "@panates/eslint-config-ts": "^2.0.6", "@panates/tsconfig": "^2.0.6", - "@swc-node/register": "^1.10.10", - "@swc/core": "^1.13.3", + "@swc-node/register": "^1.11.1", + "@swc/core": "^1.15.6", "@swc/helpers": "^0.5.17", "@types/mocha": "^10.0.10", - "@types/node": "^24.1.0", + "@types/node": "^25.0.3", "@types/sinon": "^21.0.0", "@types/supertest": "^6.0.3", "c8": "^10.1.3", - "chalk": "^5.4.1", - "esbuild": "^0.25.8", - "globals": "^16.3.0", + "chalk": "^5.6.2", + "esbuild": "^0.27.2", + "globals": "^16.5.0", "hl7-dictionary": "^1.0.1", "madge": "^8.0.0", "mocha": "11.7.5", - "npm-check-updates": "^19.1.2", - "prettier": "^3.6.2", + "npm-check-updates": "^19.2.0", + "prettier": "^3.7.4", "putil-varhelpers": "^1.6.5", - "rimraf": "^6.0.1", + "rimraf": "^6.1.2", "ts-cleanup": "^1.3.0", "tslib": "^2.8.1", - "typescript": "^5.8.3" + "typescript": "^5.9.3" } }, "node_modules/@babel/code-frame": { @@ -168,9 +168,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", "cpu": [ "ppc64" ], @@ -185,9 +185,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", "cpu": [ "arm" ], @@ -202,9 +202,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", "cpu": [ "arm64" ], @@ -219,9 +219,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", "cpu": [ "x64" ], @@ -236,9 +236,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", "cpu": [ "arm64" ], @@ -253,9 +253,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", "cpu": [ "x64" ], @@ -270,9 +270,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", "cpu": [ "arm64" ], @@ -287,9 +287,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", "cpu": [ "x64" ], @@ -304,9 +304,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", "cpu": [ "arm" ], @@ -321,9 +321,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", "cpu": [ "arm64" ], @@ -338,9 +338,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", "cpu": [ "ia32" ], @@ -355,9 +355,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", "cpu": [ "loong64" ], @@ -372,9 +372,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", "cpu": [ "mips64el" ], @@ -389,9 +389,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", "cpu": [ "ppc64" ], @@ -406,9 +406,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", "cpu": [ "riscv64" ], @@ -423,9 +423,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", "cpu": [ "s390x" ], @@ -440,9 +440,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", "cpu": [ "x64" ], @@ -457,9 +457,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", "cpu": [ "arm64" ], @@ -474,9 +474,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", "cpu": [ "x64" ], @@ -491,9 +491,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", "cpu": [ "arm64" ], @@ -508,9 +508,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", "cpu": [ "x64" ], @@ -525,9 +525,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", "cpu": [ "arm64" ], @@ -542,9 +542,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", "cpu": [ "x64" ], @@ -559,9 +559,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", "cpu": [ "arm64" ], @@ -576,9 +576,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", "cpu": [ "ia32" ], @@ -593,9 +593,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", "cpu": [ "x64" ], @@ -738,9 +738,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "peer": true, @@ -1097,9 +1097,9 @@ } }, "node_modules/@oxc-resolver/binding-android-arm-eabi": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.14.2.tgz", - "integrity": "sha512-bTrdE4Z1JcGwPxBOaGbxRbpOHL8/xPVJTTq3/bAZO2euWX0X7uZ+XxsbC+5jUDMhLenqdFokgE1akHEU4xsh6A==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.15.0.tgz", + "integrity": "sha512-Q+lWuFfq7whNelNJIP1dhXaVz4zO9Tu77GcQHyxDWh3MaCoO2Bisphgzmsh4ZoUe2zIchQh6OvQL99GlWHg9Tw==", "cpu": [ "arm" ], @@ -1111,9 +1111,9 @@ ] }, "node_modules/@oxc-resolver/binding-android-arm64": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.14.2.tgz", - "integrity": "sha512-bL7/f6YGKUvt/wzpX7ZrHCf1QerotbSG+IIb278AklXuwr6yQdfQHt7KQ8hAWqSYpB2TAbPbAa9HE4wzVyxL9Q==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.15.0.tgz", + "integrity": "sha512-vbdBttesHR0W1oJaxgWVTboyMUuu+VnPsHXJ6jrXf4czELzB6GIg5DrmlyhAmFBhjwov+yJH/DfTnHS+2sDgOw==", "cpu": [ "arm64" ], @@ -1125,9 +1125,9 @@ ] }, "node_modules/@oxc-resolver/binding-darwin-arm64": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.14.2.tgz", - "integrity": "sha512-0zhMhqHz/kC6/UzMC4D9mVBz3/M9UTorbaULfHjAW5b8SUC08H01lZ5fR3OzfDbJI0ByLfiQZmbovuR/pJ8Wzg==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.15.0.tgz", + "integrity": "sha512-R67lsOe1UzNjqVBCwCZX1rlItTsj/cVtBw4Uy19CvTicqEWvwaTn8t34zLD75LQwDDPCY3C8n7NbD+LIdw+ZoA==", "cpu": [ "arm64" ], @@ -1139,9 +1139,9 @@ ] }, "node_modules/@oxc-resolver/binding-darwin-x64": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.14.2.tgz", - "integrity": "sha512-kRJBTCQnrGy1mjO+658yMrlGYWEKi6j4JvKt92PRCoeDX0vW4jvzgoJXzZXNxZL1pCY6jIdwsn9u53v4jwpR6g==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.15.0.tgz", + "integrity": "sha512-77mya5F8WV0EtCxI0MlVZcqkYlaQpfNwl/tZlfg4jRsoLpFbaTeWv75hFm6TE84WULVlJtSgvf7DhoWBxp9+ZQ==", "cpu": [ "x64" ], @@ -1153,9 +1153,9 @@ ] }, "node_modules/@oxc-resolver/binding-freebsd-x64": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.14.2.tgz", - "integrity": "sha512-lpKiya7qPq5EAV5E16SJbxfhNYRCBZATGngn9mZxR2fMLDVbHISDIP2Br8eWA8M1FBJFsOGgBzxDo+42ySSNZQ==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.15.0.tgz", + "integrity": "sha512-X1Sz7m5PC+6D3KWIDXMUtux+0Imj6HfHGdBStSvgdI60OravzI1t83eyn6eN0LPTrynuPrUgjk7tOnOsBzSWHw==", "cpu": [ "x64" ], @@ -1167,9 +1167,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.14.2.tgz", - "integrity": "sha512-zRIf49IGs4cE9rwpVM3NxlHWquZpwQLebtc9dY9S+4+B+PSLIP95BrzdRfkspwzWC5DKZsOWpvGQjxQiLoUwGA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.15.0.tgz", + "integrity": "sha512-L1x/wCaIRre+18I4cH/lTqSAymlV0k4HqfSYNNuI9oeL28Ks86lI6O5VfYL6sxxWYgjuWB98gNGo7tq7d4GarQ==", "cpu": [ "arm" ], @@ -1181,9 +1181,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm-musleabihf": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.14.2.tgz", - "integrity": "sha512-sF1fBrcfwoRkv1pR3Kp6D5MuBeHRPxYuzk9rhaun/50vq5nAMOaomkEm4hBbTSubfU86CoBIEbLUQ+1f7NvUVA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.15.0.tgz", + "integrity": "sha512-abGXd/zMGa0tH8nKlAXdOnRy4G7jZmkU0J85kMKWns161bxIgGn/j7zxqh3DKEW98wAzzU9GofZMJ0P5YCVPVw==", "cpu": [ "arm" ], @@ -1195,9 +1195,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm64-gnu": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.14.2.tgz", - "integrity": "sha512-O8iTBqz6oxf1k93Rn6WMGGQYo2jV1K81hq4N/Nke3dHE25EIEg2RKQqMz1dFrvVb2RkvD7QaUTEevbx0Lq+4wQ==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.15.0.tgz", + "integrity": "sha512-SVjjjtMW66Mza76PBGJLqB0KKyFTBnxmtDXLJPbL6ZPGSctcXVmujz7/WAc0rb9m2oV0cHQTtVjnq6orQnI/jg==", "cpu": [ "arm64" ], @@ -1209,9 +1209,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm64-musl": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.14.2.tgz", - "integrity": "sha512-HOfzpS6eUxvdch9UlXCMx2kNJWMNBjUpVJhseqAKDB1dlrfCHgexeLyBX977GLXkq2BtNXKsY3KCryy1QhRSRw==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.15.0.tgz", + "integrity": "sha512-JDv2/AycPF2qgzEiDeMJCcSzKNDm3KxNg0KKWipoKEMDFqfM7LxNwwSVyAOGmrYlE4l3dg290hOMsr9xG7jv9g==", "cpu": [ "arm64" ], @@ -1223,9 +1223,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-ppc64-gnu": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.14.2.tgz", - "integrity": "sha512-0uLG6F2zljUseQAUmlpx/9IdKpiLsSirpmrr8/aGVfiEurIJzC/1lo2HQskkM7e0VVOkXg37AjHUDLE23Fi8SA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.15.0.tgz", + "integrity": "sha512-zbu9FhvBLW4KJxo7ElFvZWbSt4vP685Qc/Gyk/Ns3g2gR9qh2qWXouH8PWySy+Ko/qJ42+HJCLg+ZNcxikERfg==", "cpu": [ "ppc64" ], @@ -1237,9 +1237,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-riscv64-gnu": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.14.2.tgz", - "integrity": "sha512-Pdh0BH/E0YIK7Qg95IsAfQyU9rAoDoFh50R19zCTNfjSnwsoDMGHjmUc82udSfPo2YMnuxA+/+aglxmLQVSu2Q==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.15.0.tgz", + "integrity": "sha512-Kfleehe6B09C2qCnyIU01xLFqFXCHI4ylzkicfX/89j+gNHh9xyNdpEvit88Kq6i5tTGdavVnM6DQfOE2qNtlg==", "cpu": [ "riscv64" ], @@ -1251,9 +1251,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-riscv64-musl": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.14.2.tgz", - "integrity": "sha512-3DLQhJ2r53rCH5cudYFqD7nh+Z6ABvld3GjbiqHhT43GMIPw3JcHekC2QunLRNjRr1G544fo1HtjTJz9rCBpyg==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.15.0.tgz", + "integrity": "sha512-J7LPiEt27Tpm8P+qURDwNc8q45+n+mWgyys4/V6r5A8v5gDentHRGUx3iVk5NxdKhgoGulrzQocPTZVosq25Eg==", "cpu": [ "riscv64" ], @@ -1265,9 +1265,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-s390x-gnu": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.14.2.tgz", - "integrity": "sha512-G5BnAOQ5f+RUG1cvlJ4BvV+P7iKLYBv67snqgcfwD5b2N4UwJj32bt4H5JfolocWy4x3qUjEDWTIjHdE+2uZ9w==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.15.0.tgz", + "integrity": "sha512-+8/d2tAScPjVJNyqa7GPGnqleTB/XW9dZJQ2D/oIM3wpH3TG+DaFEXBbk4QFJ9K9AUGBhvQvWU2mQyhK/yYn3Q==", "cpu": [ "s390x" ], @@ -1279,9 +1279,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-x64-gnu": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.14.2.tgz", - "integrity": "sha512-VirQAX2PqKrhWtQGsSDEKlPhbgh3ggjT1sWuxLk4iLFwtyA2tLEPXJNAsG0kfAS2+VSA8OyNq16wRpQlMPZ4yA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.15.0.tgz", + "integrity": "sha512-xtvSzH7Nr5MCZI2FKImmOdTl9kzuQ51RPyLh451tvD2qnkg3BaqI9Ox78bTk57YJhlXPuxWSOL5aZhKAc9J6qg==", "cpu": [ "x64" ], @@ -1293,9 +1293,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-x64-musl": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.14.2.tgz", - "integrity": "sha512-q4ORcwMkpzu4EhZyka/s2TuH2QklEHAr/mIQBXzu5BACeBJZIFkICp8qrq4XVnkEZ+XhSFTvBECqfMTT/4LSkA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.15.0.tgz", + "integrity": "sha512-14YL1zuXj06+/tqsuUZuzL0T425WA/I4nSVN1kBXeC5WHxem6lQ+2HGvG+crjeJEqHgZUT62YIgj88W+8E7eyg==", "cpu": [ "x64" ], @@ -1307,9 +1307,9 @@ ] }, "node_modules/@oxc-resolver/binding-openharmony-arm64": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.14.2.tgz", - "integrity": "sha512-ZsMIpDCxSFpUM/TwOovX5vZUkV0IukPFnrKTGaeJRuTKXMcJxMiQGCYTwd6y684Y3j55QZqIMkVM9NdCGUX6Kw==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.15.0.tgz", + "integrity": "sha512-/7Qli+1Wk93coxnrQaU8ySlICYN8HsgyIrzqjgIkQEpI//9eUeaeIHZptNl2fMvBGeXa7k2QgLbRNaBRgpnvMw==", "cpu": [ "arm64" ], @@ -1321,9 +1321,9 @@ ] }, "node_modules/@oxc-resolver/binding-wasm32-wasi": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.14.2.tgz", - "integrity": "sha512-Lvq5ZZNvSjT3Jq/buPFMtp55eNyGlEWsq30tN+yLOfODSo6T6yAJNs6+wXtqu9PiMj4xpVtgXypHtbQ1f+t7kw==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.15.0.tgz", + "integrity": "sha512-q5rn2eIMQLuc/AVGR2rQKb2EVlgreATGG8xXg8f4XbbYCVgpxaq+dgMbiPStyNywW1MH8VU2T09UEm30UtOQvg==", "cpu": [ "wasm32" ], @@ -1338,9 +1338,9 @@ } }, "node_modules/@oxc-resolver/binding-win32-arm64-msvc": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.14.2.tgz", - "integrity": "sha512-7w7WHSLSSmkkYHH52QF7TrO0Z8eaIjRUrre5M56hSWRAZupCRzADZxBVMpDnHobZ8MAa2kvvDEfDbERuOK/avQ==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.15.0.tgz", + "integrity": "sha512-yCAh2RWjU/8wWTxQDgGPgzV9QBv0/Ojb5ej1c/58iOjyTuy/J1ZQtYi2SpULjKmwIxLJdTiCHpMilauWimE31w==", "cpu": [ "arm64" ], @@ -1352,9 +1352,9 @@ ] }, "node_modules/@oxc-resolver/binding-win32-ia32-msvc": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-11.14.2.tgz", - "integrity": "sha512-hIrdlWa6tzqyfuWrxUetURBWHttBS+NMbBrGhCupc54NCXFy2ArB+0JOOaLYiI2ShKL5a3uqB7EWxmjzOuDdPQ==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-11.15.0.tgz", + "integrity": "sha512-lmXKb6lvA6M6QIbtYfgjd+AryJqExZVSY2bfECC18OPu7Lv1mHFF171Mai5l9hG3r4IhHPPIwT10EHoilSCYeA==", "cpu": [ "ia32" ], @@ -1366,9 +1366,9 @@ ] }, "node_modules/@oxc-resolver/binding-win32-x64-msvc": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.14.2.tgz", - "integrity": "sha512-dP9aV6AZRRpg5mlg0eMuTROtttpQwj3AiegNJ/NNmMSjs+0+aLNcgkWRPhskK3vjTsthH4/+kKLpnQhSxdJkNg==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.15.0.tgz", + "integrity": "sha512-HZsfne0s/tGOcJK9ZdTGxsNU2P/dH0Shf0jqrPvsC6wX0Wk+6AyhSpHFLQCnLOuFQiHHU0ePfM8iYsoJb5hHpQ==", "cpu": [ "x64" ], @@ -1512,9 +1512,9 @@ } }, "node_modules/@swc/core": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.3.tgz", - "integrity": "sha512-Qd8eBPkUFL4eAONgGjycZXj1jFCBW8Fd+xF0PzdTlBCWQIV1xnUT7B93wUANtW3KGjl3TRcOyxwSx/u/jyKw/Q==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.6.tgz", + "integrity": "sha512-BpSCKSwE5DG4N4Um+ZZwvJzJ/4iyMVlzvhJQoR0wJSgccca9ES3+P/7SbPxTM/jtV9vE1llfLPphw+Y+MFhnZg==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -1530,16 +1530,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.15.3", - "@swc/core-darwin-x64": "1.15.3", - "@swc/core-linux-arm-gnueabihf": "1.15.3", - "@swc/core-linux-arm64-gnu": "1.15.3", - "@swc/core-linux-arm64-musl": "1.15.3", - "@swc/core-linux-x64-gnu": "1.15.3", - "@swc/core-linux-x64-musl": "1.15.3", - "@swc/core-win32-arm64-msvc": "1.15.3", - "@swc/core-win32-ia32-msvc": "1.15.3", - "@swc/core-win32-x64-msvc": "1.15.3" + "@swc/core-darwin-arm64": "1.15.6", + "@swc/core-darwin-x64": "1.15.6", + "@swc/core-linux-arm-gnueabihf": "1.15.6", + "@swc/core-linux-arm64-gnu": "1.15.6", + "@swc/core-linux-arm64-musl": "1.15.6", + "@swc/core-linux-x64-gnu": "1.15.6", + "@swc/core-linux-x64-musl": "1.15.6", + "@swc/core-win32-arm64-msvc": "1.15.6", + "@swc/core-win32-ia32-msvc": "1.15.6", + "@swc/core-win32-x64-msvc": "1.15.6" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -1551,9 +1551,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.3.tgz", - "integrity": "sha512-AXfeQn0CvcQ4cndlIshETx6jrAM45oeUrK8YeEY6oUZU/qzz0Id0CyvlEywxkWVC81Ajpd8TQQ1fW5yx6zQWkQ==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.6.tgz", + "integrity": "sha512-8pv6W49H70/yxNAC0k+W/Ko3nJW2Za706C1a8q6XhT4JtMLyaYqb+KeoBfIOR8F7qNhMdMa7wdOY5DLPk5cPSg==", "cpu": [ "arm64" ], @@ -1568,9 +1568,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.3.tgz", - "integrity": "sha512-p68OeCz1ui+MZYG4wmfJGvcsAcFYb6Sl25H9TxWl+GkBgmNimIiRdnypK9nBGlqMZAcxngNPtnG3kEMNnvoJ2A==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.6.tgz", + "integrity": "sha512-v4mDTwA+UdYEHKvzefc3VX/4a7QrRnAFZzNwL33PcLNUJhWbBg6ptcQpBDz/xWOjU6m+pC0IQfzcs16rkAFCHg==", "cpu": [ "x64" ], @@ -1585,9 +1585,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.3.tgz", - "integrity": "sha512-Nuj5iF4JteFgwrai97mUX+xUOl+rQRHqTvnvHMATL/l9xE6/TJfPBpd3hk/PVpClMXG3Uvk1MxUFOEzM1JrMYg==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.6.tgz", + "integrity": "sha512-OT8rIl24/mu4bgDPJT6FVcW+WF3ep9VTau69FspjeycNIa0U0est1ooHxxJyTcO8Qdv0Jy11oXHwtxslZ6KXcw==", "cpu": [ "arm" ], @@ -1602,9 +1602,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.3.tgz", - "integrity": "sha512-2Nc/s8jE6mW2EjXWxO/lyQuLKShcmTrym2LRf5Ayp3ICEMX6HwFqB1EzDhwoMa2DcUgmnZIalesq2lG3krrUNw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.6.tgz", + "integrity": "sha512-RKdeG9HBecClhtNJpGyZCYwvGrjzxDzQxGaVOQa44DbNSlVgupj6LnqNSt0RCTy8HEjra1WTD8dCJ9AR++dznQ==", "cpu": [ "arm64" ], @@ -1619,9 +1619,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.3.tgz", - "integrity": "sha512-j4SJniZ/qaZ5g8op+p1G9K1z22s/EYGg1UXIb3+Cg4nsxEpF5uSIGEE4mHUfA70L0BR9wKT2QF/zv3vkhfpX4g==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.6.tgz", + "integrity": "sha512-+llo+x7fRyyYd5qGfeYyHgDoZy7M9jKQKmYjTKTJ1BMoydeBoujUWtw+L3tOHyrzKBWOdmVhwdyK+Rx8DeOaGQ==", "cpu": [ "arm64" ], @@ -1636,9 +1636,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.3.tgz", - "integrity": "sha512-aKttAZnz8YB1VJwPQZtyU8Uk0BfMP63iDMkvjhJzRZVgySmqt/apWSdnoIcZlUoGheBrcqbMC17GGUmur7OT5A==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.6.tgz", + "integrity": "sha512-1Ufezv5CtJOZaIzYUVMWPORNXgY1MuBrU6LPIeACkdpIaY2wiyfvTiMF57yZ3/c6RQQAY5ZmgV44wCe4dhUFew==", "cpu": [ "x64" ], @@ -1653,9 +1653,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.3.tgz", - "integrity": "sha512-oe8FctPu1gnUsdtGJRO2rvOUIkkIIaHqsO9xxN0bTR7dFTlPTGi2Fhk1tnvXeyAvCPxLIcwD8phzKg6wLv9yug==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.6.tgz", + "integrity": "sha512-hKhR3mAvLvp1bmSrM68DyW+p8vKoFospxtffCTdC0fUR+Y6GEmSMTh+KcQ5vcGptnS2VB6QhZx3oLdzoBs0R6g==", "cpu": [ "x64" ], @@ -1670,9 +1670,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.3.tgz", - "integrity": "sha512-L9AjzP2ZQ/Xh58e0lTRMLvEDrcJpR7GwZqAtIeNLcTK7JVE+QineSyHp0kLkO1rttCHyCy0U74kDTj0dRz6raA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.6.tgz", + "integrity": "sha512-s3AMvEOxS+H4l2+bEYwKkfDBf34u1/i+t7OgflFCaZ9wSDA3f693bptPO3m1/DrMTq1iEztEV2MPbjMmQqOmBw==", "cpu": [ "arm64" ], @@ -1687,9 +1687,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.3.tgz", - "integrity": "sha512-B8UtogMzErUPDWUoKONSVBdsgKYd58rRyv2sHJWKOIMCHfZ22FVXICR4O/VwIYtlnZ7ahERcjayBHDlBZpR0aw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.6.tgz", + "integrity": "sha512-oD9REGtkA/kU+d9xBa0jddrn4BEIfWA7Jx+O+KD1Dhvgd23aYVWwR98kote6DbC/5nAbt201JnW73SkYHBm4pQ==", "cpu": [ "ia32" ], @@ -1704,9 +1704,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.3.tgz", - "integrity": "sha512-SpZKMR9QBTecHeqpzJdYEfgw30Oo8b/Xl6rjSzBt1g0ZsXyy60KLXrp6IagQyfTYqNYE/caDvwtF2FPn7pomog==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.6.tgz", + "integrity": "sha512-oJ17Ouy1BkoUM5R8HJF8nX8IbiDror8tjW9x/PUoUVmtxxVb42vpXrS6xGDpH0mXx8K1wVVS6DOgH83uwKEBUQ==", "cpu": [ "x64" ], @@ -1913,9 +1913,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", - "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "version": "25.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", + "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", "dev": true, "license": "MIT", "dependencies": { @@ -1988,19 +1988,18 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz", - "integrity": "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", + "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/type-utils": "8.48.1", - "@typescript-eslint/utils": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "graphemer": "^1.4.0", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/type-utils": "8.50.0", + "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" @@ -2013,7 +2012,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.48.1", + "@typescript-eslint/parser": "^8.50.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -2030,17 +2029,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz", - "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", + "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4" }, "engines": { @@ -2056,14 +2055,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz", - "integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", + "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.1", - "@typescript-eslint/types": "^8.48.1", + "@typescript-eslint/tsconfig-utils": "^8.50.0", + "@typescript-eslint/types": "^8.50.0", "debug": "^4.3.4" }, "engines": { @@ -2078,15 +2077,15 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz", - "integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", + "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1" + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2097,9 +2096,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz", - "integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", + "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", "dev": true, "license": "MIT", "engines": { @@ -2114,16 +2113,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz", - "integrity": "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", + "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -2140,9 +2139,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", - "integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", + "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", "dev": true, "license": "MIT", "engines": { @@ -2154,16 +2153,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz", - "integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", + "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.48.1", - "@typescript-eslint/tsconfig-utils": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", + "@typescript-eslint/project-service": "8.50.0", + "@typescript-eslint/tsconfig-utils": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -2208,17 +2207,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.1.tgz", - "integrity": "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", + "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1" + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2233,13 +2232,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz", - "integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", + "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/types": "8.50.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -3509,9 +3508,9 @@ "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3585,9 +3584,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3598,32 +3597,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" } }, "node_modules/escalade": { @@ -3672,9 +3671,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "peer": true, @@ -3685,7 +3684,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -4525,14 +4524,6 @@ "dev": true, "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4622,9 +4613,9 @@ "license": "MIT" }, "node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -5785,9 +5776,9 @@ } }, "node_modules/npm-check-updates": { - "version": "19.1.2", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-19.1.2.tgz", - "integrity": "sha512-FNeFCVgPOj0fz89hOpGtxP2rnnRHR7hD2E8qNU8SMWfkyDZXA/xpgjsL3UMLSo3F/K13QvJDnbxPngulNDDo/g==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-19.2.0.tgz", + "integrity": "sha512-XSIuL0FNgzXPDZa4lje7+OwHjiyEt84qQm6QMsQRbixNY5EHEM9nhgOjxjlK9jIbN+ysvSqOV8DKNS0zydwbdg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5925,35 +5916,35 @@ } }, "node_modules/oxc-resolver": { - "version": "11.14.2", - "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.14.2.tgz", - "integrity": "sha512-M5fERQKcrCngMZNnk1gRaBbYcqpqXLgMcoqAo7Wpty+KH0I18i03oiy2peUsGJwFaKAEbmo+CtAyhXh08RZ1RA==", + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.15.0.tgz", + "integrity": "sha512-Hk2J8QMYwmIO9XTCUiOH00+Xk2/+aBxRUnhrSlANDyCnLYc32R1WSIq1sU2yEdlqd53FfMpPEpnBYIKQMzliJw==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxc-resolver/binding-android-arm-eabi": "11.14.2", - "@oxc-resolver/binding-android-arm64": "11.14.2", - "@oxc-resolver/binding-darwin-arm64": "11.14.2", - "@oxc-resolver/binding-darwin-x64": "11.14.2", - "@oxc-resolver/binding-freebsd-x64": "11.14.2", - "@oxc-resolver/binding-linux-arm-gnueabihf": "11.14.2", - "@oxc-resolver/binding-linux-arm-musleabihf": "11.14.2", - "@oxc-resolver/binding-linux-arm64-gnu": "11.14.2", - "@oxc-resolver/binding-linux-arm64-musl": "11.14.2", - "@oxc-resolver/binding-linux-ppc64-gnu": "11.14.2", - "@oxc-resolver/binding-linux-riscv64-gnu": "11.14.2", - "@oxc-resolver/binding-linux-riscv64-musl": "11.14.2", - "@oxc-resolver/binding-linux-s390x-gnu": "11.14.2", - "@oxc-resolver/binding-linux-x64-gnu": "11.14.2", - "@oxc-resolver/binding-linux-x64-musl": "11.14.2", - "@oxc-resolver/binding-openharmony-arm64": "11.14.2", - "@oxc-resolver/binding-wasm32-wasi": "11.14.2", - "@oxc-resolver/binding-win32-arm64-msvc": "11.14.2", - "@oxc-resolver/binding-win32-ia32-msvc": "11.14.2", - "@oxc-resolver/binding-win32-x64-msvc": "11.14.2" + "@oxc-resolver/binding-android-arm-eabi": "11.15.0", + "@oxc-resolver/binding-android-arm64": "11.15.0", + "@oxc-resolver/binding-darwin-arm64": "11.15.0", + "@oxc-resolver/binding-darwin-x64": "11.15.0", + "@oxc-resolver/binding-freebsd-x64": "11.15.0", + "@oxc-resolver/binding-linux-arm-gnueabihf": "11.15.0", + "@oxc-resolver/binding-linux-arm-musleabihf": "11.15.0", + "@oxc-resolver/binding-linux-arm64-gnu": "11.15.0", + "@oxc-resolver/binding-linux-arm64-musl": "11.15.0", + "@oxc-resolver/binding-linux-ppc64-gnu": "11.15.0", + "@oxc-resolver/binding-linux-riscv64-gnu": "11.15.0", + "@oxc-resolver/binding-linux-riscv64-musl": "11.15.0", + "@oxc-resolver/binding-linux-s390x-gnu": "11.15.0", + "@oxc-resolver/binding-linux-x64-gnu": "11.15.0", + "@oxc-resolver/binding-linux-x64-musl": "11.15.0", + "@oxc-resolver/binding-openharmony-arm64": "11.15.0", + "@oxc-resolver/binding-wasm32-wasi": "11.15.0", + "@oxc-resolver/binding-win32-arm64-msvc": "11.15.0", + "@oxc-resolver/binding-win32-ia32-msvc": "11.15.0", + "@oxc-resolver/binding-win32-x64-msvc": "11.15.0" } }, "node_modules/p-limit": { @@ -6212,9 +6203,9 @@ } }, "node_modules/prettier": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.3.tgz", - "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "bin": { @@ -7363,17 +7354,17 @@ } }, "node_modules/typescript-eslint": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.1.tgz", - "integrity": "sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", + "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "8.48.1", - "@typescript-eslint/parser": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1" + "@typescript-eslint/eslint-plugin": "8.50.0", + "@typescript-eslint/parser": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7765,67 +7756,67 @@ }, "packages/dictionary": { "name": "hl7v2-dictionary", - "version": "1.4.4", + "version": "1.5.0", "license": "MIT", "dependencies": { "@jsopen/objects": "^2.0.2", "ts-gems": "^3.11.3", "tslib": "^2.8.1", - "valgen": "^5.17.1" + "valgen": "^5.18.2" }, "devDependencies": { - "expect": "^30.0.5" + "expect": "^30.2.0" }, "engines": { "node": ">=18.0" } }, "packages/hl7v2": { - "version": "1.4.4", + "version": "1.5.0", "license": "MIT", "dependencies": { "@jsopen/objects": "^2.0.2", - "iconv-lite": "^0.7.0", + "iconv-lite": "^0.7.1", "is-typedarray": "^1.0.0", "node-events-async": "^1.2.0", "ts-gems": "^3.11.3", "tslib": "^2.8.1", "uid": "^2.0.2", - "valgen": "^5.17.1" + "valgen": "^5.18.2" }, "devDependencies": { - "expect": "^30.0.5" + "expect": "^30.2.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "hl7v2-dictionary": "^1.4.4" + "hl7v2-dictionary": "^1.5.0" } }, "packages/net": { "name": "hl7v2-net", - "version": "1.4.4", + "version": "1.5.0", "license": "MIT", "dependencies": { "@jsopen/objects": "^2.0.2", - "iconv-lite": "^0.7.0", + "iconv-lite": "^0.7.1", "is-typedarray": "^1.0.0", "node-events-async": "^1.2.0", "ts-gems": "^3.11.3", "tslib": "^2.8.1", "uid": "^2.0.2", - "valgen": "^5.17.1" + "valgen": "^5.18.2" }, "devDependencies": { - "expect": "^30.0.5" + "expect": "^30.2.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "hl7v2": "^1.4.4", - "hl7v2-dictionary": "^1.4.4" + "hl7v2": "^1.5.0", + "hl7v2-dictionary": "^1.5.0" } } } diff --git a/package.json b/package.json index 9bc02c2..22bfae8 100644 --- a/package.json +++ b/package.json @@ -29,26 +29,26 @@ "@panates/eslint-config": "^2.0.6", "@panates/eslint-config-ts": "^2.0.6", "@panates/tsconfig": "^2.0.6", - "@swc/core": "^1.13.3", + "@swc/core": "^1.15.6", "@swc/helpers": "^0.5.17", - "@swc-node/register": "^1.10.10", + "@swc-node/register": "^1.11.1", "@types/mocha": "^10.0.10", - "@types/node": "^24.1.0", + "@types/node": "^25.0.3", "@types/sinon": "^21.0.0", "@types/supertest": "^6.0.3", "hl7-dictionary": "^1.0.1", "c8": "^10.1.3", - "chalk": "^5.4.1", - "esbuild": "^0.25.8", - "globals": "^16.3.0", + "chalk": "^5.6.2", + "esbuild": "^0.27.2", + "globals": "^16.5.0", "madge": "^8.0.0", "mocha": "11.7.5", - "npm-check-updates": "^19.1.2", - "prettier": "^3.6.2", + "npm-check-updates": "^19.2.0", + "prettier": "^3.7.4", "putil-varhelpers": "^1.6.5", - "rimraf": "^6.0.1", + "rimraf": "^6.1.2", "ts-cleanup": "^1.3.0", "tslib": "^2.8.1", - "typescript": "^5.8.3" + "typescript": "^5.9.3" } } diff --git a/packages/dictionary/package.json b/packages/dictionary/package.json index 090d222..42487fa 100644 --- a/packages/dictionary/package.json +++ b/packages/dictionary/package.json @@ -9,10 +9,10 @@ "@jsopen/objects": "^2.0.2", "ts-gems": "^3.11.3", "tslib": "^2.8.1", - "valgen": "^5.17.1" + "valgen": "^5.18.2" }, "devDependencies": { - "expect": "^30.0.5" + "expect": "^30.2.0" }, "scripts": { "compile": "tsc --noEmit", diff --git a/packages/dictionary/tsconfig-build-cjs.json b/packages/dictionary/tsconfig-build-cjs.json index fd33886..daa76e6 100644 --- a/packages/dictionary/tsconfig-build-cjs.json +++ b/packages/dictionary/tsconfig-build-cjs.json @@ -2,9 +2,6 @@ "extends": ["./tsconfig.json", "../../tsconfig-build.json"], "compilerOptions": { "module": "CommonJS", - "moduleResolution": "Node", - "rootDir": "src", - "outDir": "./build/cjs", - "declaration": false + "outDir": "./build/cjs" } } diff --git a/packages/dictionary/tsconfig-build-esm.json b/packages/dictionary/tsconfig-build-esm.json index 8d5f998..663e413 100644 --- a/packages/dictionary/tsconfig-build-esm.json +++ b/packages/dictionary/tsconfig-build-esm.json @@ -1,10 +1,4 @@ { "extends": ["./tsconfig.json", "../../tsconfig-build.json"], - "compilerOptions": { - "module": "ES2020", - "moduleResolution": "Node", - "rootDir": "src", - "outDir": "./build/esm", - "declarationDir": "./build/types" - } + "compilerOptions": {} } diff --git a/packages/dictionary/tsconfig.json b/packages/dictionary/tsconfig.json index 25e92ab..69b19b2 100644 --- a/packages/dictionary/tsconfig.json +++ b/packages/dictionary/tsconfig.json @@ -1,7 +1,14 @@ { "extends": "../../tsconfig-base.json", "include": ["src"], + "exclude": ["build"], "compilerOptions": { - "baseUrl": "./" + "composite": true, + "incremental": true, + "module": "ES2020", + "moduleResolution": "Node", + "rootDir": "src", + "outDir": "./build/esm", + "declarationDir": "./build/types", } } diff --git a/packages/hl7v2/package.json b/packages/hl7v2/package.json index cdc96c0..1b7293c 100644 --- a/packages/hl7v2/package.json +++ b/packages/hl7v2/package.json @@ -7,19 +7,19 @@ "private": true, "dependencies": { "@jsopen/objects": "^2.0.2", - "iconv-lite": "^0.7.0", + "iconv-lite": "^0.7.1", "is-typedarray": "^1.0.0", "node-events-async": "^1.2.0", "ts-gems": "^3.11.3", "tslib": "^2.8.1", - "valgen": "^5.17.1", + "valgen": "^5.18.2", "uid": "^2.0.2" }, "peerDependencies": { "hl7v2-dictionary": "^1.5.0" }, "devDependencies": { - "expect": "^30.0.5" + "expect": "^30.2.0" }, "scripts": { "compile": "tsc --noEmit", diff --git a/packages/hl7v2/tsconfig-build-cjs.json b/packages/hl7v2/tsconfig-build-cjs.json index fd33886..daa76e6 100644 --- a/packages/hl7v2/tsconfig-build-cjs.json +++ b/packages/hl7v2/tsconfig-build-cjs.json @@ -2,9 +2,6 @@ "extends": ["./tsconfig.json", "../../tsconfig-build.json"], "compilerOptions": { "module": "CommonJS", - "moduleResolution": "Node", - "rootDir": "src", - "outDir": "./build/cjs", - "declaration": false + "outDir": "./build/cjs" } } diff --git a/packages/hl7v2/tsconfig-build-esm.json b/packages/hl7v2/tsconfig-build-esm.json index 8d5f998..27f5223 100644 --- a/packages/hl7v2/tsconfig-build-esm.json +++ b/packages/hl7v2/tsconfig-build-esm.json @@ -2,9 +2,6 @@ "extends": ["./tsconfig.json", "../../tsconfig-build.json"], "compilerOptions": { "module": "ES2020", - "moduleResolution": "Node", - "rootDir": "src", - "outDir": "./build/esm", - "declarationDir": "./build/types" + "outDir": "./build/esm" } } diff --git a/packages/hl7v2/tsconfig.json b/packages/hl7v2/tsconfig.json index 418b7d5..9f860e6 100644 --- a/packages/hl7v2/tsconfig.json +++ b/packages/hl7v2/tsconfig.json @@ -1,10 +1,19 @@ { "extends": "../../tsconfig-base.json", "include": ["src"], + "exclude": ["build"], "compilerOptions": { + "composite": true, + "incremental": true, + "module": "ES2020", + "moduleResolution": "Node", + "rootDir": "src", + "outDir": "./build/esm", + "declarationDir": "./build/types", "baseUrl": "./", "paths": { - "hl7v2-dictionary": ["../dictionary", "../dictionary/src/index.js"] + "hl7v2-dictionary": ["../dictionary/src"] } - } + }, + "references": [{ "path": "../dictionary" }] } diff --git a/packages/net/package.json b/packages/net/package.json index fcaf47d..aa5b180 100644 --- a/packages/net/package.json +++ b/packages/net/package.json @@ -7,12 +7,12 @@ "private": true, "dependencies": { "@jsopen/objects": "^2.0.2", - "iconv-lite": "^0.7.0", + "iconv-lite": "^0.7.1", "is-typedarray": "^1.0.0", "node-events-async": "^1.2.0", "ts-gems": "^3.11.3", "tslib": "^2.8.1", - "valgen": "^5.17.1", + "valgen": "^5.18.2", "uid": "^2.0.2" }, "peerDependencies": { @@ -20,7 +20,7 @@ "hl7v2-dictionary": "^1.5.0" }, "devDependencies": { - "expect": "^30.0.5" + "expect": "^30.2.0" }, "scripts": { "compile": "tsc --noEmit", diff --git a/packages/net/src/hl7-socket.ts b/packages/net/src/hl7-socket.ts index 3fb070a..5f819f8 100644 --- a/packages/net/src/hl7-socket.ts +++ b/packages/net/src/hl7-socket.ts @@ -228,9 +228,9 @@ export namespace HL7Socket { close: []; error: [error: Error]; lookup: [ - err: Error, + err: Error | null, address: string, - family: string | number, + family: number | null, host: string, ]; message: [message: HL7Message]; diff --git a/packages/net/tsconfig-build-cjs.json b/packages/net/tsconfig-build-cjs.json index fd33886..daa76e6 100644 --- a/packages/net/tsconfig-build-cjs.json +++ b/packages/net/tsconfig-build-cjs.json @@ -2,9 +2,6 @@ "extends": ["./tsconfig.json", "../../tsconfig-build.json"], "compilerOptions": { "module": "CommonJS", - "moduleResolution": "Node", - "rootDir": "src", - "outDir": "./build/cjs", - "declaration": false + "outDir": "./build/cjs" } } diff --git a/packages/net/tsconfig-build-esm.json b/packages/net/tsconfig-build-esm.json index 8d5f998..27f5223 100644 --- a/packages/net/tsconfig-build-esm.json +++ b/packages/net/tsconfig-build-esm.json @@ -2,9 +2,6 @@ "extends": ["./tsconfig.json", "../../tsconfig-build.json"], "compilerOptions": { "module": "ES2020", - "moduleResolution": "Node", - "rootDir": "src", - "outDir": "./build/esm", - "declarationDir": "./build/types" + "outDir": "./build/esm" } } diff --git a/packages/net/tsconfig.json b/packages/net/tsconfig.json index c8dbf9c..42af880 100644 --- a/packages/net/tsconfig.json +++ b/packages/net/tsconfig.json @@ -1,11 +1,23 @@ { "extends": "../../tsconfig-base.json", "include": ["src"], + "exclude": ["build"], "compilerOptions": { + "composite": true, + "incremental": true, + "module": "ES2020", + "moduleResolution": "Node", + "rootDir": "src", + "outDir": "./build/esm", + "declarationDir": "./build/types", "baseUrl": "./", "paths": { - "hl7v2": ["../hl7v2", "../hl7v2/src/index.js"], - "hl7v2-dictionary": ["../dictionary", "../dictionary/src/index.js"] + "hl7v2-dictionary": ["../dictionary/src"], + "hl7v2": ["../hl7v2/src"] } - } + }, + "references": [ + { "path": "../dictionary" }, + { "path": "../hl7v2" } + ] } diff --git a/tsconfig-base.json b/tsconfig-base.json index b936966..9f9239c 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -2,8 +2,9 @@ "extends": "@panates/tsconfig/node.json", "compilerOptions": { "types": ["node"], - "module": "NodeNext", - "moduleResolution": "NodeNext", "sourceMap": true, + "moduleResolution": "nodenext", + "module": "NodeNext", + "target": "ESNext" } } diff --git a/tsconfig-build.json b/tsconfig-build.json index c05548e..0eb209d 100644 --- a/tsconfig-build.json +++ b/tsconfig-build.json @@ -2,7 +2,6 @@ "extends": "@panates/tsconfig/build.json", "compilerOptions": { "baseUrl": "./", - "sourceMap": false, "paths": { "hl7v2": ["./packages/hl7v2/build"], "hl7v2-dictionary": ["./packages/dictionary/build"], diff --git a/tsconfig.json b/tsconfig.json index 51252c8..6e3ee1d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,10 @@ { - "include": ["./packages", "./support", "./examples", "./"], - "exclude": ["node_modules", "build", "coverage", "docs"] + "references": [ + { "path": "./packages/dictionary" }, + { "path": "./packages/hl7v2" }, + { "path": "./packages/net" }, + ], + "compilerOptions": { + "noEmit": true + } } From 4939ccc2acb3b363975ee3ab2311af658c29345e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20Hano=C4=9Flu?= Date: Thu, 18 Dec 2025 11:57:59 +0300 Subject: [PATCH 2/4] feat: Added reconnection logic to HL7Client chore: Updated deps --- package-lock.json | 52 ++++++++ packages/net/package.json | 5 +- packages/net/src/hl7-client.ts | 179 +++++++++++++++++++-------- packages/net/src/hl7-socket.ts | 77 ++++++++---- packages/net/test/hl7-client.spec.ts | 22 +++- 5 files changed, 256 insertions(+), 79 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccf2665..fed9e09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1848,6 +1848,16 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/backoff": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@types/backoff/-/backoff-2.5.5.tgz", + "integrity": "sha512-4gv8BiXZMG4yxwn9Jii6ooCBVo+DXYq8kcKg6OvoHiWNh8rSjbYwQANTbUBx0c7ZKFv8aSYg9yDO6fOX2GkkAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/cookiejar": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", @@ -1922,6 +1932,16 @@ "undici-types": "~7.16.0" } }, + "node_modules/@types/reconnect-core": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/reconnect-core/-/reconnect-core-1.3.5.tgz", + "integrity": "sha512-Oat/HOb/pqb2NE2udRBBf6KXTSuJt4bk/SzU2bCBuBb2lXC6okVZErzZMeFn111F3kIKWLy1CwMijPiwx3t6aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/backoff": "*" + } + }, "node_modules/@types/sinon": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-21.0.0.tgz", @@ -2746,6 +2766,18 @@ "dev": true, "license": "MIT" }, + "node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "license": "MIT", + "dependencies": { + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -6191,6 +6223,14 @@ "node": ">=18" } }, + "node_modules/precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6406,6 +6446,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/reconnect-core": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reconnect-core/-/reconnect-core-1.3.0.tgz", + "integrity": "sha512-+gLKwmyRf2tjl6bLR03DoeWELzyN6LW9Xgr3vh7NXHHwPi0JC0N2TwPyf90oUEBkCRcD+bgQ+s3HORoG3nwHDg==", + "license": "MIT", + "dependencies": { + "backoff": "~2.5.0" + } + }, "node_modules/reflect-metadata": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", @@ -7800,15 +7849,18 @@ "license": "MIT", "dependencies": { "@jsopen/objects": "^2.0.2", + "backoff": "^2.5.0", "iconv-lite": "^0.7.1", "is-typedarray": "^1.0.0", "node-events-async": "^1.2.0", + "reconnect-core": "^1.3.0", "ts-gems": "^3.11.3", "tslib": "^2.8.1", "uid": "^2.0.2", "valgen": "^5.18.2" }, "devDependencies": { + "@types/reconnect-core": "^1.3.5", "expect": "^30.2.0" }, "engines": { diff --git a/packages/net/package.json b/packages/net/package.json index aa5b180..f2812e5 100644 --- a/packages/net/package.json +++ b/packages/net/package.json @@ -7,9 +7,11 @@ "private": true, "dependencies": { "@jsopen/objects": "^2.0.2", + "backoff": "^2.5.0", "iconv-lite": "^0.7.1", "is-typedarray": "^1.0.0", "node-events-async": "^1.2.0", + "reconnect-core": "^1.3.0", "ts-gems": "^3.11.3", "tslib": "^2.8.1", "valgen": "^5.18.2", @@ -20,6 +22,7 @@ "hl7v2-dictionary": "^1.5.0" }, "devDependencies": { + "@types/reconnect-core": "^1.3.5", "expect": "^30.2.0" }, "scripts": { @@ -86,4 +89,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/net/src/hl7-client.ts b/packages/net/src/hl7-client.ts index 93d17bc..47cc2bd 100644 --- a/packages/net/src/hl7-client.ts +++ b/packages/net/src/hl7-client.ts @@ -1,8 +1,9 @@ import net from 'node:net'; import tls from 'node:tls'; +import { Backoff } from 'backoff'; import { HL7Message } from 'hl7v2'; -import { AddressInfo } from 'net'; import { AsyncEventEmitter } from 'node-events-async'; +import reconnectCore from 'reconnect-core'; import { StrictOmit } from 'ts-gems'; import { HL7Request } from './hl7-request.js'; import { HL7Response } from './hl7-response.js'; @@ -11,6 +12,7 @@ import { HL7Socket } from './hl7-socket.js'; import { HL7Middleware } from './types.js'; export class Hl7Client extends AsyncEventEmitter { + protected _connectionManager: ReturnType; protected _router = new HL7Router(); protected _socket?: HL7Socket; protected _tls?: boolean; @@ -46,6 +48,55 @@ export class Hl7Client extends AsyncEventEmitter { ) { super(); this._options = options; + let reconnecting = false; + const connectionManager = (this._connectionManager = socketReconnect({ + ...this._options.reconnect, + timeout: this._options.connectTimeout, + } as any) + .on('error', err => { + if (!connectionManager.reconnect) return; + this.emit('error', err); + }) + .on('connect', (tcpSocket: net.Socket) => { + if (!this._socket) { + const socket = (this._socket = new HL7Socket( + tcpSocket, + this._options, + )); + socket.on('connect', () => this.emit('connect')); + socket.on('ready', () => this.emit('ready')); + socket.on('lookup', (err, address, family, host) => + this.emit('lookup', err, address, family, host), + ); + socket.on('close', () => { + this._socket = undefined; + this.emit('close'); + }); + socket.on('error', err => this.emit('error', err)); + socket.on('message', message => { + this.emit('message', message); + this._onMessage(message); + }); + socket.on('send', message => this.emit('send', message)); + socket.on('data', data => this.emit('data', data)); + } else this._socket._bindSocket(tcpSocket); + if (reconnecting) this.emit('reconnect', tcpSocket); + reconnecting = false; + this.emit('connect'); + }) + .on('reconnect', (n, delay) => { + if (n === 0 && delay === 0) return; + reconnecting = true; + this.emit('reconnecting', n, delay); + }) + .on('disconnect', err => { + this._socket = undefined; + if (connectionManager.reconnect) { + if (err) err.message = `TCP socket connection lost: ${err.message}`; + else err = new Error('TCP socket connection lost'); + this.emit('disconnect', err); + } else this.emit('disconnect'); + })); } get connected(): boolean { @@ -64,16 +115,16 @@ export class Hl7Client extends AsyncEventEmitter { return this._options.host + ':' + this._options.port; } - address(): AddressInfo { + address(): net.AddressInfo { const out = this._socket?.address(); if (!(out as any)?.address) { return { address: this._options.host || '', port: this._options.port || 0, family: '', - } satisfies AddressInfo; + } satisfies net.AddressInfo; } - return out as AddressInfo; + return out as net.AddressInfo; } get connectTimeout(): number | undefined { @@ -101,66 +152,32 @@ export class Hl7Client extends AsyncEventEmitter { if (this._socket) this._socket.maxBufferSize = value; } - connect(): Promise { + async connect(): Promise { + if (this.connected) return; return new Promise((resolve, reject) => { - if (this.connected) { - resolve(); - return; - } - let timeoutTimer: NodeJS.Timeout | undefined; - const tcpSocket = this._tls - ? tls.connect(this._options as any) - : net.connect(this._options as any); - const socket = (this._socket = new HL7Socket(tcpSocket, this._options)); - - socket.on('connect', () => this.emit('connect')); - socket.on('ready', () => this.emit('ready')); - socket.on('lookup', (err, address, family, host) => - this.emit('lookup', err, address, family, host), - ); - socket.on('close', () => { - this._socket = undefined; - this.emit('close'); - }); - socket.on('error', err => this.emit('error', err)); - socket.on('message', message => { - this.emit('message', message); - this._onMessage(message); - }); - socket.on('send', message => this.emit('send', message)); - socket.on('data', data => this.emit('data', data)); - const onReady = () => { - clearTimeout(timeoutTimer); - tcpSocket.removeListener('error', onError); - if (this._options.keepAlive) { - tcpSocket.setKeepAlive( - this._options.keepAlive, - this._options.keepAliveInitialDelay, - ); - } + this.removeListener('error', onError); resolve(); }; const onError = (error: any) => { - clearTimeout(timeoutTimer); - tcpSocket.removeListener('ready', onReady); - tcpSocket.destroy(); + this.removeListener('ready', onReady); reject(error); }; - tcpSocket.once('ready', onReady); - tcpSocket.once('error', onError); - - if (this.connectTimeout) { - timeoutTimer = setTimeout(() => { - this.emit('error', new Error('Connection timeout')); - tcpSocket.destroy(); - }, this._options.connectTimeout).unref(); - } + this.once('ready', onReady); + this.once('error', onError); + this._connectionManager.reconnect = true; + this._connectionManager.connect({ + tls: this._tls, + options: this._options, + }); }); } async close(waitRunningHandlers?: number): Promise { + this._connectionManager.reconnect = false; await this._socket?.close(waitRunningHandlers); + this._connectionManager.disconnect(); + this._connectionManager.reset(); } async sendMessage(message: HL7Message): Promise { @@ -193,6 +210,11 @@ export class Hl7Client extends AsyncEventEmitter { } export namespace Hl7Client { + export interface Events extends HL7Socket.Events { + reconnecting: [n: number, delay: number]; + reconnect: [socket: net.Socket]; + } + interface CommonConnectOptions { connectTimeout?: number; maxBufferSize?: number; @@ -200,6 +222,7 @@ export namespace Hl7Client { keepAlive?: boolean; keepAliveInitialDelay?: number; parseStrict?: boolean; + reconnect?: ReconnectOptions; } export type NetConnectOptions = StrictOmit< @@ -211,5 +234,55 @@ export namespace Hl7Client { export type TlsConnectOptions = StrictOmit & CommonConnectOptions; - export interface Events extends HL7Socket.Events {} + export interface ReconnectOptions { + strategy?: 'fibonacci' | 'exponential' | Backoff; + immediate?: boolean | undefined; + failAfter?: number | undefined; + randomisationFactor?: number | undefined; + initialDelay?: number | undefined; + maxDelay?: number | undefined; + } } + +const socketReconnect = reconnectCore( + (args: { + tls?: boolean; + options: Hl7Client.NetConnectOptions | Hl7Client.TlsConnectOptions; + }) => { + const tcpSocket = args.tls + ? tls.connect({ + ...(args.options as Hl7Client.TlsConnectOptions), + timeout: undefined, + }) + : net.connect({ + ...(args.options as Hl7Client.NetConnectOptions), + timeout: undefined, + }); + if (args.options.timeout) { + const timer = setTimeout(() => { + tcpSocket.destroy(new Error('Connection timed out')); + }, args.options.timeout).unref(); + const onConnect = () => { + clearTimeout(timer); + tcpSocket.removeListener('error', onError); + }; + const onError = () => { + clearTimeout(timer); + tcpSocket.removeListener('connect', onConnect); + tcpSocket.removeListener('ready', onReady); + }; + const onReady = () => { + if (args.options.keepAlive) { + tcpSocket.setKeepAlive( + args.options.keepAlive, + args.options.keepAliveInitialDelay, + ); + } + }; + tcpSocket.once('connect', onConnect); + tcpSocket.once('error', onError); + tcpSocket.once('ready', onReady); + } + return tcpSocket; + }, +); diff --git a/packages/net/src/hl7-socket.ts b/packages/net/src/hl7-socket.ts index 5f819f8..2095e5b 100644 --- a/packages/net/src/hl7-socket.ts +++ b/packages/net/src/hl7-socket.ts @@ -14,7 +14,7 @@ import { AsyncEventEmitter } from 'node-events-async'; import { FrameStream } from './helpers/frame-stream.js'; export class HL7Socket extends AsyncEventEmitter { - readonly socket: Socket; + declare protected _socket: Socket; protected _messageHooks = new Set<(resp: HL7Message) => boolean>(); protected _frameStream: FrameStream; protected _waitPromises = new Set>(); @@ -28,34 +28,22 @@ export class HL7Socket extends AsyncEventEmitter { constructor(socket: Socket, options: HL7Socket.Options) { super(); - this.socket = socket; this._options = options; const frameStream = new FrameStream({ frameStart: VT, frameEnd: FS + CR, maxBufferSize: options?.maxBufferSize, }); - this._frameStream = frameStream; - socket.on('error', (err: any) => { - if (err.code === 'ECONNRESET') { - err.message = `Connection reset by peer`; - } - this.emit('error', err); - }); - socket.pipe(frameStream); - socket.on('connect', () => this.emit('connect')); - socket.on('ready', () => this.emit('ready')); - socket.on('lookup', (err, address, family, host) => - this.emit('lookup', err, address, family, host), - ); - socket.on('timeout', () => socket.destroy()); - socket.on('close', () => { - this.emit('close'); - }); frameStream.on('data', data => { this.emit('data', data); this._onData(data); }); + this._frameStream = frameStream; + this._bindSocket(socket); + } + + get socket(): Socket { + return this._socket; } get connected(): boolean { @@ -67,7 +55,7 @@ export class HL7Socket extends AsyncEventEmitter { } get readyState() { - return this.socket.readyState; + return this.socket?.readyState || 'closed'; } get maxBufferSize(): number { @@ -79,22 +67,22 @@ export class HL7Socket extends AsyncEventEmitter { } address() { - return this.socket.address(); + return this.socket?.address() || {}; } remoteAddress() { - const addr = this.socket.remoteAddress; + const addr = this.socket?.remoteAddress; return addr?.startsWith('::ffff:') ? addr.slice(7) : addr; } get writable() { - return this.connected && this.socket.writable; + return this.connected && this.socket?.writable; } async close(waitRunningHandlers?: number): Promise { if (this.closed) return; /** Stop receiving data */ - this.socket.unpipe(this._frameStream); + this.socket!.unpipe(this._frameStream); /** Wait for running handlers to finish */ if (waitRunningHandlers && this._waitPromises.size > 0) { await new Promise(resolve => { @@ -219,6 +207,47 @@ export class HL7Socket extends AsyncEventEmitter { this.sendMessage(nak); } } + + _bindSocket(socket: Socket) { + if (socket === this._socket) return; + this._unBindSocket(); + this._socket = socket; + const hl7EventListeners: any = ((socket as any).__hl7EventListeners = {}); + hl7EventListeners.onConnect = () => this.emit('connect'); + hl7EventListeners.onReady = () => this.emit('ready'); + hl7EventListeners.onLookup = (err, address, family, host) => + this.emit('lookup', err, address, family, host); + hl7EventListeners.onTimeout = () => socket.destroy(); + hl7EventListeners.onClose = () => this.emit('close'); + hl7EventListeners.onError = (err: any) => { + if (err.code === 'ECONNRESET') { + err.message = `Connection reset by peer`; + } + this.emit('error', err); + }; + + socket.on('connect', hl7EventListeners.onConnect); + socket.on('ready', hl7EventListeners.onReady); + socket.on('lookup', hl7EventListeners.onLookup); + socket.on('timeout', hl7EventListeners.onTimeout); + socket.on('close', hl7EventListeners.onClose); + socket.on('error', hl7EventListeners.onError); + socket.pipe(this._frameStream); + } + + protected _unBindSocket() { + if (!this.socket) return; + this.socket.unpipe(this._frameStream); + const hl7EventListeners = (this.socket as any).__hl7EventListeners; + if (hl7EventListeners) { + this.socket.removeListener('connect', hl7EventListeners.onConnect); + this.socket.removeListener('ready', hl7EventListeners.onReady); + this.socket.removeListener('lookup', hl7EventListeners.onLookup); + this.socket.removeListener('timeout', hl7EventListeners.onTimeout); + this.socket.removeListener('close', hl7EventListeners.onClose); + this.socket.removeListener('error', hl7EventListeners.onError); + } + } } export namespace HL7Socket { diff --git a/packages/net/test/hl7-client.spec.ts b/packages/net/test/hl7-client.spec.ts index 4b486d0..ff1f48f 100644 --- a/packages/net/test/hl7-client.spec.ts +++ b/packages/net/test/hl7-client.spec.ts @@ -25,7 +25,7 @@ describe('net:client', () => { expect(client.readyState).toStrictEqual('open'); }); - it('Should reconnect after close', async () => { + it('Should manually reconnect after close', async () => { server = HL7Server.createServer(); await server.listen(12345); client = Hl7Client.createClient({ host: 'localhost', port: 12345 }); @@ -37,6 +37,26 @@ describe('net:client', () => { expect(client.connected).toBeTruthy(); }); + it('should automatically reconnect when connection lost', async () => { + server = HL7Server.createServer(); + await server.listen(12345); + client = Hl7Client.createClient({ host: 'localhost', port: 12345 }); + await client.connect(); + expect(client.connected).toBeTruthy(); + const events: string[] = []; + await new Promise(resolve => { + client.on('reconnecting', () => events.push('reconnecting')); + client.on('reconnect', () => events.push('reconnect')); + client.on('connect', () => { + events.push('connect'); + resolve(); + }); + (client as any)._socket.socket.destroy(); + }); + expect(events).toStrictEqual(['reconnecting', 'reconnect', 'connect']); + expect(client.connected).toBeTruthy(); + }); + it('Should receive messages from server', done => { Promise.resolve().then(async () => { const clientMessages: HL7Message[] = []; From 75168bbd6faa66a389bba2f26fa26f200e2501fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20Hano=C4=9Flu?= Date: Thu, 18 Dec 2025 11:58:06 +0300 Subject: [PATCH 3/4] 1.6.0 --- packages/dictionary/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dictionary/package.json b/packages/dictionary/package.json index 42487fa..c7dd80d 100644 --- a/packages/dictionary/package.json +++ b/packages/dictionary/package.json @@ -1,7 +1,7 @@ { "name": "hl7v2-dictionary", "description": "HL7 v2 parser, serializer, validator for NodeJS", - "version": "1.5.0", + "version": "1.6.0", "author": "Panates", "license": "MIT", "private": true, From eb921eb1710ed78cc4bf3bff7f3b5a387bca7ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20Hano=C4=9Flu?= Date: Thu, 18 Dec 2025 11:58:06 +0300 Subject: [PATCH 4/4] 1.6.0 --- packages/hl7v2/package.json | 4 ++-- packages/net/package.json | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/hl7v2/package.json b/packages/hl7v2/package.json index 1b7293c..9bede38 100644 --- a/packages/hl7v2/package.json +++ b/packages/hl7v2/package.json @@ -1,7 +1,7 @@ { "name": "hl7v2", "description": "HL7 v2 parser, serializer, validator for NodeJS", - "version": "1.5.0", + "version": "1.6.0", "author": "Panates", "license": "MIT", "private": true, @@ -16,7 +16,7 @@ "uid": "^2.0.2" }, "peerDependencies": { - "hl7v2-dictionary": "^1.5.0" + "hl7v2-dictionary": "^1.6.0" }, "devDependencies": { "expect": "^30.2.0" diff --git a/packages/net/package.json b/packages/net/package.json index f2812e5..799be94 100644 --- a/packages/net/package.json +++ b/packages/net/package.json @@ -1,7 +1,7 @@ { "name": "hl7v2-net", "description": "HL7 v2 server/client for NodeJS", - "version": "1.5.0", + "version": "1.6.0", "author": "Panates", "license": "MIT", "private": true, @@ -18,8 +18,8 @@ "uid": "^2.0.2" }, "peerDependencies": { - "hl7v2": "^1.5.0", - "hl7v2-dictionary": "^1.5.0" + "hl7v2": "^1.6.0", + "hl7v2-dictionary": "^1.6.0" }, "devDependencies": { "@types/reconnect-core": "^1.3.5", @@ -89,4 +89,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file