From 2978b4a12e79637079fe2b7746f264e0debe75c8 Mon Sep 17 00:00:00 2001 From: Percs <83934299+Percslol@users.noreply.github.com> Date: Tue, 7 Jan 2025 13:36:01 -0600 Subject: [PATCH] make scramitize checks as strict as wrapfn --- package.json | 14 +- pnpm-lock.yaml | 412 +++++++++++++++++--------------- src/client/shared/wrap.ts | 21 +- src/shared/rewriters/headers.ts | 2 - src/shared/rewriters/js.ts | 20 +- src/shared/rewriters/url.ts | 8 +- 6 files changed, 244 insertions(+), 233 deletions(-) diff --git a/package.json b/package.json index 09ce1ea..a31a146 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,18 @@ "@mercuryworkshop/wisp-js": "^0.3.3", "@nebula-services/bare-server-node": "^2.0.4", "@playwright/test": "^1.49.1", - "@rsdoctor/rspack-plugin": "^0.4.12", + "@rsdoctor/rspack-plugin": "^0.4.13", "@rspack/cli": "^1.1.8", "@rspack/core": "^1.1.8", "@types/eslint": "^9.6.1", "@types/estree": "^1.0.6", - "@types/node": "^22.10.2", - "@types/serviceworker": "^0.0.108", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", + "@types/node": "^22.10.5", + "@types/serviceworker": "^0.0.109", + "@typescript-eslint/eslint-plugin": "^8.19.1", + "@typescript-eslint/parser": "^8.19.1", "dotenv": "^16.4.7", "eslint": "^9.17.0", - "fastify": "^5.2.0", + "fastify": "^5.2.1", "playwright": "^1.49.1", "prettier": "^3.4.2", "tslib": "^2.8.1", @@ -61,7 +61,7 @@ "@mercuryworkshop/bare-mux": "^2.1.7", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.2.1", + "domutils": "^3.2.2", "htmlparser2": "10.0.0", "parse-domain": "^8.2.2", "set-cookie-parser": "^2.7.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 419f8dc..16d41c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: ^5.0.3 version: 5.0.3 domutils: - specifier: ^3.2.1 - version: 3.2.1 + specifier: ^3.2.2 + version: 3.2.2 htmlparser2: specifier: 10.0.0 version: 10.0.0 @@ -61,8 +61,8 @@ importers: specifier: ^1.49.1 version: 1.49.1 '@rsdoctor/rspack-plugin': - specifier: ^0.4.12 - version: 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + specifier: ^0.4.13 + version: 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) '@rspack/cli': specifier: ^1.1.8 version: 1.1.8(@rspack/core@1.1.8)(@types/express@4.17.21)(bufferutil@4.0.9)(webpack@5.97.1) @@ -76,17 +76,17 @@ importers: specifier: ^1.0.6 version: 1.0.6 '@types/node': - specifier: ^22.10.2 - version: 22.10.2 + specifier: ^22.10.5 + version: 22.10.5 '@types/serviceworker': - specifier: ^0.0.108 - version: 0.0.108 + specifier: ^0.0.109 + version: 0.0.109 '@typescript-eslint/eslint-plugin': - specifier: ^8.18.2 - version: 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) + specifier: ^8.19.1 + version: 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) '@typescript-eslint/parser': - specifier: ^8.18.2 - version: 8.18.2(eslint@9.17.0)(typescript@5.7.2) + specifier: ^8.19.1 + version: 8.19.1(eslint@9.17.0)(typescript@5.7.2) dotenv: specifier: ^16.4.7 version: 16.4.7 @@ -94,8 +94,8 @@ importers: specifier: ^9.17.0 version: 9.17.0 fastify: - specifier: ^5.2.0 - version: 5.2.0 + specifier: ^5.2.1 + version: 5.2.1 playwright: specifier: ^1.49.1 version: 1.49.1 @@ -178,11 +178,11 @@ packages: peerDependencies: '@playwright/test': ^1.42.1 - '@fastify/accept-negotiator@2.0.0': - resolution: {integrity: sha512-/Sce/kBzuTxIq5tJh85nVNOq9wKD8s+viIgX0fFMDBdw95gnpf53qmF1oBgJym3cPFliWUuSloVg/1w/rH0FcQ==} + '@fastify/accept-negotiator@2.0.1': + resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==} - '@fastify/ajv-compiler@4.0.1': - resolution: {integrity: sha512-DxrBdgsjNLP0YM6W5Hd6/Fmj43S8zMKiFJYgi+Ri3htTGAowPVG/tG1wpnWLMjufEnehRivUCKZ1pLDIoZdTuw==} + '@fastify/ajv-compiler@4.0.2': + resolution: {integrity: sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} @@ -191,14 +191,20 @@ packages: '@fastify/error@4.0.0': resolution: {integrity: sha512-OO/SA8As24JtT1usTUTKgGH7uLvhfwZPwlptRi2Dp5P4KKmJI3gvsZ8MIHnNwDs4sLf/aai5LzTyl66xr7qMxA==} - '@fastify/fast-json-stringify-compiler@5.0.1': - resolution: {integrity: sha512-f2d3JExJgFE3UbdFcpPwqNUEoHWmt8pAKf8f+9YuLESdefA0WgqxeT6DrGL4Yrf/9ihXNSKOqpjEmurV405meA==} + '@fastify/fast-json-stringify-compiler@5.0.2': + resolution: {integrity: sha512-YdR7gqlLg1xZAQa+SX4sMNzQHY5pC54fu9oC5aYSUqBhyn6fkLkrdtKlpVdCNPlwuUuXA1PjFTEmvMF6ZVXVGw==} + + '@fastify/forwarded@3.0.0': + resolution: {integrity: sha512-kJExsp4JCms7ipzg7SJ3y8DwmePaELHxKYtg+tZow+k0znUTf3cb+npgyqm8+ATZOdmfgfydIebPDWM172wfyA==} '@fastify/merge-json-schemas@0.1.1': resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} - '@fastify/send@3.3.0': - resolution: {integrity: sha512-hvrgPVG3oehn4wSPmRdqZcBCsEt7Lp6WOd6vsJ3Ms4hc5r5zouT9Ls9wq6R2tHMgJGHhNtsmd0CnhP7lmF7OTg==} + '@fastify/proxy-addr@5.0.0': + resolution: {integrity: sha512-37qVVA1qZ5sgH7KpHkkC4z9SK6StIsIcOmpjvMPXNb3vx2GQxhZocogVYbr2PbbeLCQxYIPDok307xEvRZOzGA==} + + '@fastify/send@3.3.1': + resolution: {integrity: sha512-6pofeVwaHN+E/MAofCwDqkWUliE3i++jlD0VH/LOfU8TJlCkMUSgKvA9bawDdVXxjve7XrdYMyDmkiYaoGWEtA==} '@fastify/static@8.0.3': resolution: {integrity: sha512-GHSoOVDIxEYEeVR5l044bRCuAKDErD/+9VE+Z9fnaTRr+DDz0Avrm4kKai1mHbPx6C0U7BVNthjd/gcMquZZUA==} @@ -333,25 +339,25 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - '@rsdoctor/client@0.4.12': - resolution: {integrity: sha512-oqwqOR4KHUDmfHobDLSsLRvBkZEyqSbO0sb2TDkOA6O/XPTafgifuNczKAdSYBcoqwKZuHFNXZpr0p7SEUw6GA==} + '@rsdoctor/client@0.4.13': + resolution: {integrity: sha512-8d3om2dK+GjEi3L8rI79k6JHtz7IIbIRe3+e4z5iIgqYz/nU1TC8iwUMJ7Wanokqu+88sa2tpOTqUoEk4GfWrA==} - '@rsdoctor/core@0.4.12': - resolution: {integrity: sha512-l3K5pjpnc17DgqRY2CvL6lVYyPGcnjXky6taXRcUCH64HfX01eEUH6xyra9TGFR2L5rYx5OTzqX/rztE/VxJZg==} + '@rsdoctor/core@0.4.13': + resolution: {integrity: sha512-g47MDMPuJGNJBkU+191Z+uzoYvGx/czfL73qcIMs5zQXpgM+AMZg8ZW4g0rUcqCGNt3JDQE3Ogsfd3CTR/Q1Cw==} - '@rsdoctor/graph@0.4.12': - resolution: {integrity: sha512-xf66kkOF44wi/SWomr8qgJ5jEbX6DFxdTP+9FQNTz/LRRqYebySkU9uvVTLHmjSxDVBQ1dGx+YsZLhFpF6neWA==} + '@rsdoctor/graph@0.4.13': + resolution: {integrity: sha512-PRAcEKcDyLzKgtORkDj8O1P6zx+RnemS3NQlNNpYw9nqZcwMPNqSd5RZhJ9ilXOqNYoRkzt+4D8VjFTt4MfSxg==} - '@rsdoctor/rspack-plugin@0.4.12': - resolution: {integrity: sha512-jzU+8sGzXe8TP4jy3+rtsPOTj71J1JDKCeiXqbJFelAWl05Bhfj6nw+ED/23SDb/430EEVW6nSdgEm/iDCHJIA==} + '@rsdoctor/rspack-plugin@0.4.13': + resolution: {integrity: sha512-qWU1yF/p/j16ZQL5Sm29oduffujCJENNLl6Ylkaav2K9SdrAe+AaYGzWL04AoNVfSh/t2tyF5uFGcPfmvUNLjw==} peerDependencies: '@rspack/core': '*' - '@rsdoctor/sdk@0.4.12': - resolution: {integrity: sha512-b2ob92cYle2kXFWkxrdVen6/9vNcn8UJW8kFmD4OCfR4AgHiFLZMSWzJ5P41M1Ti1AqY3kVlp2CaEZOIof2SBw==} + '@rsdoctor/sdk@0.4.13': + resolution: {integrity: sha512-/HfM/saFFfwi1UNKGWpyC0CMfad7PnlR1fo7xvVebu9OH85/SIeeLqmjWkBZjd/5T6JmPDBWyENGNaeD8Hpr4g==} - '@rsdoctor/types@0.4.12': - resolution: {integrity: sha512-FqdRPbOllpG6dxSU5f6Pe5pLJGLMuw5yEnwBACb818uIFI+099xwZxkmxBqDg13ZEFrfMNQsruZv3HBQ9hYHPQ==} + '@rsdoctor/types@0.4.13': + resolution: {integrity: sha512-vt+d9ZwrfijRcRtlCUXWZUl2jtFiIL0+0zxygfXT+C2cipDDpdTlGlEY7LhUl+hLbeXtZbqKUl7jnaSOxQVOxw==} peerDependencies: '@rspack/core': '*' webpack: 5.x @@ -359,8 +365,8 @@ packages: '@rspack/core': optional: true - '@rsdoctor/utils@0.4.12': - resolution: {integrity: sha512-GQahkLhH65nfRvLK1auydLvbVFsLKcDZIwEf1VoL1lpWhtxSEzVJCuex8764Fs8abBlFM1Of22IOpMMQ2Pvdbw==} + '@rsdoctor/utils@0.4.13': + resolution: {integrity: sha512-+Zj9gsJEWzZpr2mh+0KIGEfvAdiz756Gu2kP2a2yNilnWlwLqCPXzQWw0D8Z5ScNIq36PdKtojQbg6qzcv7wHg==} '@rspack/binding-darwin-arm64@1.1.8': resolution: {integrity: sha512-I7avr471ghQ3LAqKm2fuXuJPLgQ9gffn5Q4nHi8rsukuZUtiLDPfYzK1QuupEp2JXRWM1gG5lIbSUOht3cD6Ug==} @@ -470,8 +476,8 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.0.2': - resolution: {integrity: sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==} + '@types/express-serve-static-core@5.0.3': + resolution: {integrity: sha512-JEhMNwUJt7bw728CydvYzntD0XJeTmDnvwLlbfbAhE7Tbslm/ax6bdIiUwTgeVlZTsJQPwZwKpAkyDtIjsvx3g==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -497,8 +503,8 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@22.10.5': + resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} '@types/qs@6.9.17': resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} @@ -521,8 +527,8 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/serviceworker@0.0.108': - resolution: {integrity: sha512-jicpN0A3+X1HUlVhtykUmqOnnfAzAD+IV2FOOzJ9EvN/FItR9igOWUey+ZyP/kRQr8uAN1HMVBBaYniVCniGAA==} + '@types/serviceworker@0.0.109': + resolution: {integrity: sha512-vYf7Q7cNgYq7dtDrOienevbJfNAepEmsW61a/ZyY+JdtXjDG3/LPo8l3KQBl08P6h2+RuUtgoQjU1T1Pt1Khfg==} '@types/sockjs@0.3.36': resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} @@ -533,51 +539,51 @@ packages: '@types/ws@8.5.13': resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} - '@typescript-eslint/eslint-plugin@8.18.2': - resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==} + '@typescript-eslint/eslint-plugin@8.19.1': + resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.18.2': - resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==} + '@typescript-eslint/parser@8.19.1': + resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.18.2': - resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} + '@typescript-eslint/scope-manager@8.19.1': + resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.18.2': - resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==} + '@typescript-eslint/type-utils@8.19.1': + resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.18.2': - resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} + '@typescript-eslint/types@8.19.1': + resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.18.2': - resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==} + '@typescript-eslint/typescript-estree@8.19.1': + resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.18.2': - resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==} + '@typescript-eslint/utils@8.19.1': + resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.2': - resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==} + '@typescript-eslint/visitor-keys@8.19.1': + resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@webassemblyjs/ast@1.14.1': @@ -1021,8 +1027,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.2.1: - resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} dotenv@16.4.7: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} @@ -1041,8 +1047,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.76: - resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} + electron-to-chromium@1.5.78: + resolution: {integrity: sha512-UmwIt7HRKN1rsJfddG5UG7rCTCTAKoS9JeOy/R0zSenAyaZ8SU3RuXlwcratxhdxGRNpk03iq8O7BA3W7ibLVw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1199,8 +1205,8 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -1222,14 +1228,14 @@ packages: fast-uri@2.4.0: resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} - fast-uri@3.0.3: - resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fast-uri@3.0.5: + resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==} fastify-plugin@5.0.1: resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} - fastify@5.2.0: - resolution: {integrity: sha512-3s+Qt5S14Eq5dCpnE0FxTp3z4xKChI83ZnMv+k0FwX+VUoZrgCFoLAxpfdi/vT4y6Mk+g7aAMt9pgXDoZmkefQ==} + fastify@5.2.1: + resolution: {integrity: sha512-rslrNBF67eg8/Gyn7P2URV8/6pz8kSAscFL4EThZJ8JBMaXacVdVE4hmUcnPNKERl5o/xTiBSLfdowBRhVF1WA==} fastq@1.18.0: resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} @@ -1323,14 +1329,18 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -1627,6 +1637,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.unionby@4.8.0: + resolution: {integrity: sha512-e60kn4GJIunNkw6v9MxRnUuLYI/Tyuanch7ozoCtk/1irJTYBj+qNTxr5B3qVflmJhwStJBv387Cb+9VOfABMg==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -1650,8 +1663,8 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@4.15.1: - resolution: {integrity: sha512-ufCzgFwiVnR6R9cCYuvwznJdhdYXEvFl0hpnM4cCtVaVkHuqBR+6fo2sqt1SSMdp+uiHw9GyPZr3OMM5tqjSmQ==} + memfs@4.15.3: + resolution: {integrity: sha512-vR/g1SgqvKJgAyYla+06G4p/EOcEmwhYuVb1yc1ixcKf8o/sh7Zngv63957ZSNd1xrZJoinmNyDf2LzuP8WJXw==} engines: {node: '>= 4.0.0'} merge-descriptors@1.0.3: @@ -1909,8 +1922,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@4.0.0: - resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -2019,8 +2032,8 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex2@4.0.0: - resolution: {integrity: sha512-Hvjfv25jPDVr3U+4LDzBuZPPOymELG3PYcSk5hcevooo1yxxamQL/bHs/GrEPGmMoMEwRrHVGiCA1pXi97B8Ew==} + safe-regex2@4.0.1: + resolution: {integrity: sha512-goqsB+bSlOmVX+CiFX2PFc1OV88j5jvBqIM+DgqrucHnUguAUNtiNOs+aTadq2NqsLQ+TQ3UEVG3gtSFcdlkCg==} safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} @@ -2037,8 +2050,8 @@ packages: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} - secure-json-parse@3.0.1: - resolution: {integrity: sha512-9QR7G96th4QJ2+dJwvZB+JoXyt8PN+DbEjOr6kL2/JU4KH8Eb2sFdU+gt8EDdzWDWoWH0uocDdfCoFzdVSixUA==} + secure-json-parse@3.0.2: + resolution: {integrity: sha512-H6nS2o8bWfpFEV6U38sOSjS7bTbdgbCGU9wEM6W14P5H0QOsz94KCusifV44GpHDTu2nqZbuDNhTzu+mjDSw1w==} select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} @@ -2283,11 +2296,11 @@ packages: peerDependencies: tslib: '2' - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + ts-api-utils@2.0.0: + resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.2.0' + typescript: '>=4.8.4' tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -2564,27 +2577,34 @@ snapshots: ansi-to-html: 0.7.2 marked: 12.0.2 - '@fastify/accept-negotiator@2.0.0': {} + '@fastify/accept-negotiator@2.0.1': {} - '@fastify/ajv-compiler@4.0.1': + '@fastify/ajv-compiler@4.0.2': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) - fast-uri: 3.0.3 + fast-uri: 3.0.5 '@fastify/busboy@2.1.1': {} '@fastify/error@4.0.0': {} - '@fastify/fast-json-stringify-compiler@5.0.1': + '@fastify/fast-json-stringify-compiler@5.0.2': dependencies: fast-json-stringify: 6.0.0 + '@fastify/forwarded@3.0.0': {} + '@fastify/merge-json-schemas@0.1.1': dependencies: fast-deep-equal: 3.1.3 - '@fastify/send@3.3.0': + '@fastify/proxy-addr@5.0.0': + dependencies: + '@fastify/forwarded': 3.0.0 + ipaddr.js: 2.2.0 + + '@fastify/send@3.3.1': dependencies: '@lukeed/ms': 2.0.2 escape-html: 1.0.3 @@ -2594,8 +2614,8 @@ snapshots: '@fastify/static@8.0.3': dependencies: - '@fastify/accept-negotiator': 2.0.0 - '@fastify/send': 3.3.0 + '@fastify/accept-negotiator': 2.0.1 + '@fastify/send': 3.3.1 content-disposition: 0.5.4 fastify-plugin: 5.0.1 fastq: 1.18.0 @@ -2740,14 +2760,14 @@ snapshots: '@polka/url@1.0.0-next.28': {} - '@rsdoctor/client@0.4.12': {} + '@rsdoctor/client@0.4.13': {} - '@rsdoctor/core@0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': + '@rsdoctor/core@0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': dependencies: - '@rsdoctor/graph': 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) - '@rsdoctor/sdk': 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) - '@rsdoctor/types': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) - '@rsdoctor/utils': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/graph': 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + '@rsdoctor/sdk': 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + '@rsdoctor/types': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/utils': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) axios: 1.7.9 enhanced-resolve: 5.12.0 filesize: 10.1.6 @@ -2765,11 +2785,11 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/graph@0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': + '@rsdoctor/graph@0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': dependencies: - '@rsdoctor/types': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) - '@rsdoctor/utils': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) - lodash: 4.17.21 + '@rsdoctor/types': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/utils': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) + lodash.unionby: 4.8.0 socket.io: 4.8.1(bufferutil@4.0.9) source-map: 0.7.4 transitivePeerDependencies: @@ -2779,13 +2799,13 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/rspack-plugin@0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': + '@rsdoctor/rspack-plugin@0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': dependencies: - '@rsdoctor/core': 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) - '@rsdoctor/graph': 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) - '@rsdoctor/sdk': 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) - '@rsdoctor/types': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) - '@rsdoctor/utils': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/core': 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + '@rsdoctor/graph': 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + '@rsdoctor/sdk': 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + '@rsdoctor/types': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/utils': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) '@rspack/core': 1.1.8 lodash: 4.17.21 transitivePeerDependencies: @@ -2795,12 +2815,12 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/sdk@0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': + '@rsdoctor/sdk@0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1)': dependencies: - '@rsdoctor/client': 0.4.12 - '@rsdoctor/graph': 0.4.12(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) - '@rsdoctor/types': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) - '@rsdoctor/utils': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/client': 0.4.13 + '@rsdoctor/graph': 0.4.13(@rspack/core@1.1.8)(bufferutil@4.0.9)(webpack@5.97.1) + '@rsdoctor/types': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/utils': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) '@types/fs-extra': 11.0.4 body-parser: 1.20.3 cors: 2.8.5 @@ -2820,7 +2840,7 @@ snapshots: - utf-8-validate - webpack - '@rsdoctor/types@0.4.12(@rspack/core@1.1.8)(webpack@5.97.1)': + '@rsdoctor/types@0.4.13(@rspack/core@1.1.8)(webpack@5.97.1)': dependencies: '@types/connect': 3.4.38 '@types/estree': 1.0.5 @@ -2830,10 +2850,10 @@ snapshots: optionalDependencies: '@rspack/core': 1.1.8 - '@rsdoctor/utils@0.4.12(@rspack/core@1.1.8)(webpack@5.97.1)': + '@rsdoctor/utils@0.4.13(@rspack/core@1.1.8)(webpack@5.97.1)': dependencies: '@babel/code-frame': 7.25.7 - '@rsdoctor/types': 0.4.12(@rspack/core@1.1.8)(webpack@5.97.1) + '@rsdoctor/types': 0.4.13(@rspack/core@1.1.8)(webpack@5.97.1) '@types/estree': 1.0.5 acorn: 8.14.0 acorn-import-assertions: 1.9.0(acorn@8.14.0) @@ -2847,7 +2867,6 @@ snapshots: get-port: 5.1.1 json-stream-stringify: 3.0.1 lines-and-columns: 2.0.4 - lodash: 4.17.21 rslog: 1.2.3 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -2950,26 +2969,26 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.2 - '@types/node': 22.10.2 + '@types/express-serve-static-core': 5.0.3 + '@types/node': 22.10.5 '@types/connect@3.4.38': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/cookie@0.4.1': {} '@types/cors@2.8.17': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/eslint-scope@3.7.7': dependencies: @@ -2987,14 +3006,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express-serve-static-core@5.0.2': + '@types/express-serve-static-core@5.0.3': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3009,27 +3028,27 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/http-errors@2.0.4': {} '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.4': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/mime@1.3.5': {} '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 - '@types/node@22.10.2': + '@types/node@22.10.5': dependencies: undici-types: 6.20.0 @@ -3044,7 +3063,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/serve-index@1.9.4': dependencies: @@ -3053,14 +3072,14 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/send': 0.17.4 - '@types/serviceworker@0.0.108': {} + '@types/serviceworker@0.0.109': {} '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/tapable@2.2.7': dependencies: @@ -3068,83 +3087,83 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 - '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.18.2 - '@typescript-eslint/type-utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/parser': 8.19.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/type-utils': 8.19.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.19.1 eslint: 9.17.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.2) + ts-api-utils: 2.0.0(typescript@5.7.2) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.18.2 - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.19.1 debug: 4.4.0 eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.18.2': + '@typescript-eslint/scope-manager@8.19.1': dependencies: - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/visitor-keys': 8.19.1 - '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.19.1(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.2) + '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.7.2) debug: 4.4.0 eslint: 9.17.0 - ts-api-utils: 1.4.3(typescript@5.7.2) + ts-api-utils: 2.0.0(typescript@5.7.2) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.18.2': {} + '@typescript-eslint/types@8.19.1': {} - '@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.19.1(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/visitor-keys': 8.19.1 debug: 4.4.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) + ts-api-utils: 2.0.0(typescript@5.7.2) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/utils@8.19.1(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.18.2 - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.19.1 + '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.2) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.18.2': + '@typescript-eslint/visitor-keys@8.19.1': dependencies: - '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/types': 8.19.1 eslint-visitor-keys: 4.2.0 '@webassemblyjs/ast@1.14.1': @@ -3275,7 +3294,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 + fast-uri: 3.0.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -3373,7 +3392,7 @@ snapshots: browserslist@4.24.3: dependencies: caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.76 + electron-to-chromium: 1.5.78 node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) @@ -3397,7 +3416,7 @@ snapshots: call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 callsites@3.1.0: {} @@ -3585,7 +3604,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.2.1: + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -3605,7 +3624,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.76: {} + electron-to-chromium@1.5.78: {} emoji-regex@8.0.0: {} @@ -3621,7 +3640,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.10.2 + '@types/node': 22.10.5 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -3803,7 +3822,7 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -3833,25 +3852,25 @@ snapshots: fast-uri@2.4.0: {} - fast-uri@3.0.3: {} + fast-uri@3.0.5: {} fastify-plugin@5.0.1: {} - fastify@5.2.0: + fastify@5.2.1: dependencies: - '@fastify/ajv-compiler': 4.0.1 + '@fastify/ajv-compiler': 4.0.2 '@fastify/error': 4.0.0 - '@fastify/fast-json-stringify-compiler': 5.0.1 + '@fastify/fast-json-stringify-compiler': 5.0.2 + '@fastify/proxy-addr': 5.0.0 abstract-logging: 2.0.1 avvio: 9.1.0 fast-json-stringify: 6.0.0 find-my-way: 9.1.0 light-my-request: 6.4.0 pino: 9.6.0 - process-warning: 4.0.0 - proxy-addr: 2.0.7 + process-warning: 4.0.1 rfdc: 1.4.1 - secure-json-parse: 3.0.1 + secure-json-parse: 3.0.2 semver: 7.6.3 toad-cache: 3.7.0 @@ -3901,7 +3920,7 @@ snapshots: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 - safe-regex2: 4.0.0 + safe-regex2: 4.0.1 find-up@5.0.0: dependencies: @@ -3950,14 +3969,14 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.6: + get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 @@ -3965,6 +3984,11 @@ snapshots: get-port@5.1.1: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + get-stream@6.0.1: {} glob-parent@5.1.2: @@ -4034,7 +4058,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.2.1 + domutils: 3.2.2 entities: 6.0.0 http-deceiver@1.2.7: {} @@ -4168,7 +4192,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -4221,7 +4245,7 @@ snapshots: light-my-request@6.4.0: dependencies: cookie: 1.0.2 - process-warning: 4.0.0 + process-warning: 4.0.1 set-cookie-parser: 2.7.1 lines-and-columns@2.0.4: {} @@ -4234,6 +4258,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash.unionby@4.8.0: {} + lodash@4.17.21: {} lru-cache@10.4.3: {} @@ -4246,7 +4272,7 @@ snapshots: media-typer@0.3.0: {} - memfs@4.15.1: + memfs@4.15.3: dependencies: '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) @@ -4443,7 +4469,7 @@ snapshots: on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 - process-warning: 4.0.0 + process-warning: 4.0.1 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 @@ -4464,7 +4490,7 @@ snapshots: process-nextick-args@2.0.1: {} - process-warning@4.0.0: {} + process-warning@4.0.1: {} proxy-addr@2.0.7: dependencies: @@ -4560,7 +4586,7 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex2@4.0.0: + safe-regex2@4.0.1: dependencies: ret: 0.5.0 @@ -4581,7 +4607,7 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) - secure-json-parse@3.0.1: {} + secure-json-parse@3.0.2: {} select-hose@2.0.0: {} @@ -4658,14 +4684,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-map: 1.0.1 @@ -4869,7 +4895,7 @@ snapshots: dependencies: tslib: 2.8.1 - ts-api-utils@1.4.3(typescript@5.7.2): + ts-api-utils@2.0.0(typescript@5.7.2): dependencies: typescript: 5.7.2 @@ -4963,7 +4989,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.97.1): dependencies: colorette: 2.0.19 - memfs: 4.15.1 + memfs: 4.15.3 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 diff --git a/src/client/shared/wrap.ts b/src/client/shared/wrap.ts index 3581f12..41a9bf3 100644 --- a/src/client/shared/wrap.ts +++ b/src/client/shared/wrap.ts @@ -66,21 +66,16 @@ export default function (client: ScramjetClient, self: typeof globalThis) { }); self.$scramitize = function (v) { - if (typeof v === "string" && v.includes("scramjet")) { - debugger; + if (v === self) debugger; + if (v === location) debugger; + if (iswindow) { + if (v === self.parent) debugger; + if (v === self.document) debugger; + if (v === self.top) debugger; } - if (typeof v === "string" && v.includes(location.origin)) { - debugger; - } - - if (v === self && v?.$scramjet) { - debugger; - } - - if (iswindow && v instanceof Document && v.defaultView?.$scramjet) { - debugger; - } + if (typeof v === "string" && v.includes("scramjet")) debugger; + if (typeof v === "string" && v.includes(location.origin)) debugger; return v; }; diff --git a/src/shared/rewriters/headers.ts b/src/shared/rewriters/headers.ts index 738f155..1baf2b0 100644 --- a/src/shared/rewriters/headers.ts +++ b/src/shared/rewriters/headers.ts @@ -1,5 +1,3 @@ -// TODO this whole file should be inlined and deleted it's a weird relic from ssd era - import { URLMeta, rewriteUrl } from "./url"; import { BareHeaders } from "@mercuryworkshop/bare-mux"; const cspHeaders = [ diff --git a/src/shared/rewriters/js.ts b/src/shared/rewriters/js.ts index 1c5296e..42c4380 100644 --- a/src/shared/rewriters/js.ts +++ b/src/shared/rewriters/js.ts @@ -21,26 +21,26 @@ const decoder = new TextDecoder(); function rewriteJsWrapper( input: string | ArrayBuffer, - url: string | null, + source: string | null, meta: URLMeta ): string | ArrayBuffer { let out: RewriterOutput; const before = performance.now(); try { if (typeof input === "string") { - out = rewrite_js(input, meta.base.href, url || "(unknown)", $scramjet); + out = rewrite_js(input, meta.base.href, source || "(unknown)", $scramjet); } else { out = rewrite_js_from_arraybuffer( new Uint8Array(input), meta.base.href, - url || "(unknown)", + source || "(unknown)", $scramjet ); } } catch (err) { - let err1 = err as Error; - console.error("failed rewriting js for", url, err1, input); - err1.message = `failed rewriting js for "${url}": ${err1.message}`; + const err1 = err as Error; + console.error("failed rewriting js for", source, err1, input); + err1.message = `failed rewriting js for "${source}": ${err1.message}`; throw err1; } const after = performance.now(); @@ -63,7 +63,7 @@ function rewriteJsWrapper( } const overhead = (after - before - Number(duration)).toFixed(2); console.log( - `oxc rewrite for "${url || "(unknown)"}" was ${timespan} (${duration}ms; ${overhead}ms overhead)` + `oxc rewrite for "${source || "(unknown)"}" was ${timespan} (${duration}ms; ${overhead}ms overhead)` ); } @@ -78,14 +78,10 @@ export function rewriteJs( if (flagEnabled("naiiveRewriter", meta.origin)) { const text = typeof js === "string" ? js : new TextDecoder().decode(js); - console.log("naiive"); - return rewriteJsNaiive(text); } - js = rewriteJsWrapper(js, url, meta); - - return js; + return rewriteJsWrapper(js, url, meta); } // 1. does not work with modules diff --git a/src/shared/rewriters/url.ts b/src/shared/rewriters/url.ts index 50bb276..fe028d8 100644 --- a/src/shared/rewriters/url.ts +++ b/src/shared/rewriters/url.ts @@ -27,9 +27,7 @@ export function unrewriteBlob(url: string) { } export function rewriteUrl(url: string | URL, meta: URLMeta) { - if (url instanceof URL) { - url = url.toString(); - } + if (url instanceof URL) url = url.toString(); if (url.startsWith("javascript:")) { return ( @@ -58,9 +56,7 @@ export function rewriteUrl(url: string | URL, meta: URLMeta) { } export function unrewriteUrl(url: string | URL) { - if (url instanceof URL) { - url = url.toString(); - } + if (url instanceof URL) url = url.toString(); const prefixed = location.origin + $scramjet.config.prefix;