diff --git a/.github/fabricbot.json b/.github/fabricbot.json index 012b7884d7c02..70c26603f3446 100644 --- a/.github/fabricbot.json +++ b/.github/fabricbot.json @@ -31,7 +31,7 @@ { "name": "addReply", "parameters": { - "comment": "Thanks for the PR! It looks like you've changed the TSServer protocol in some way. Please ensure that any changes here don't break consumers of the current TSServer API. For some extra review, we'll ping @sheetalkamat, @mjbvz, and @minestarks for you. Feel free to loop in other consumers/maintainers if necessary" + "comment": "Thanks for the PR! It looks like you've changed the TSServer protocol in some way. Please ensure that any changes here don't break consumers of the current TSServer API. For some extra review, we'll ping @sheetalkamat, @mjbvz, @zkat, and @joj for you. Feel free to loop in other consumers/maintainers if necessary" } } ], @@ -487,7 +487,7 @@ { "name": "addReply", "parameters": { - "comment": "Thanks for the PR! It looks like you've changed 'preProcess.ts' in some way. Please ensure that any changes here don't break consumers with unique project systems such as Visual Studio. Pinging @sheetalkamat and @minestarks so they are aware of the changes." + "comment": "Thanks for the PR! It looks like you've changed 'preProcess.ts' in some way. Please ensure that any changes here don't break consumers with unique project systems such as Visual Studio. Pinging @sheetalkamat, @zkat, and @joj so they are aware of the changes." } } ] diff --git a/package-lock.json b/package-lock.json index e5913c19a5bd9..4cfc6841d5d15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,9 +59,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.3.tgz", - "integrity": "sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.4.tgz", + "integrity": "sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==", "cpu": [ "arm" ], @@ -75,9 +75,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.3.tgz", - "integrity": "sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.4.tgz", + "integrity": "sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==", "cpu": [ "arm64" ], @@ -91,9 +91,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.3.tgz", - "integrity": "sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.4.tgz", + "integrity": "sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==", "cpu": [ "x64" ], @@ -107,9 +107,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.3.tgz", - "integrity": "sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.4.tgz", + "integrity": "sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==", "cpu": [ "arm64" ], @@ -123,9 +123,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.3.tgz", - "integrity": "sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.4.tgz", + "integrity": "sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==", "cpu": [ "x64" ], @@ -139,9 +139,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.3.tgz", - "integrity": "sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.4.tgz", + "integrity": "sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==", "cpu": [ "arm64" ], @@ -155,9 +155,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.3.tgz", - "integrity": "sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.4.tgz", + "integrity": "sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==", "cpu": [ "x64" ], @@ -171,9 +171,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.3.tgz", - "integrity": "sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.4.tgz", + "integrity": "sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==", "cpu": [ "arm" ], @@ -187,9 +187,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.3.tgz", - "integrity": "sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.4.tgz", + "integrity": "sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==", "cpu": [ "arm64" ], @@ -203,9 +203,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.3.tgz", - "integrity": "sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz", + "integrity": "sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==", "cpu": [ "ia32" ], @@ -219,9 +219,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.3.tgz", - "integrity": "sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.4.tgz", + "integrity": "sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==", "cpu": [ "loong64" ], @@ -235,9 +235,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.3.tgz", - "integrity": "sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.4.tgz", + "integrity": "sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==", "cpu": [ "mips64el" ], @@ -251,9 +251,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.3.tgz", - "integrity": "sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.4.tgz", + "integrity": "sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==", "cpu": [ "ppc64" ], @@ -267,9 +267,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.3.tgz", - "integrity": "sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.4.tgz", + "integrity": "sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==", "cpu": [ "riscv64" ], @@ -283,9 +283,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.3.tgz", - "integrity": "sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.4.tgz", + "integrity": "sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==", "cpu": [ "s390x" ], @@ -299,9 +299,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.3.tgz", - "integrity": "sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.4.tgz", + "integrity": "sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==", "cpu": [ "x64" ], @@ -315,9 +315,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.3.tgz", - "integrity": "sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.4.tgz", + "integrity": "sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==", "cpu": [ "x64" ], @@ -331,9 +331,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.3.tgz", - "integrity": "sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.4.tgz", + "integrity": "sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==", "cpu": [ "x64" ], @@ -347,9 +347,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.3.tgz", - "integrity": "sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.4.tgz", + "integrity": "sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==", "cpu": [ "x64" ], @@ -363,9 +363,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.3.tgz", - "integrity": "sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.4.tgz", + "integrity": "sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==", "cpu": [ "arm64" ], @@ -379,9 +379,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.3.tgz", - "integrity": "sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.4.tgz", + "integrity": "sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==", "cpu": [ "ia32" ], @@ -395,9 +395,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.3.tgz", - "integrity": "sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.4.tgz", + "integrity": "sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==", "cpu": [ "x64" ], @@ -558,9 +558,9 @@ } }, "node_modules/@octokit/endpoint": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.4.tgz", - "integrity": "sha512-hXJP43VT2IrUxBCNIahta8qawpIzLvCjHLCuDDsdIPbd6+jPwsc3KGl/kdQ37mLd+sdiJm6c9qKI7k5CjE0Z9A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", "dev": true, "dependencies": { "@octokit/types": "^9.0.0", @@ -801,14 +801,14 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz", + "integrity": "sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/type-utils": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -834,14 +834,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz", + "integrity": "sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "debug": "^4.3.4" }, "engines": { @@ -861,13 +861,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz", + "integrity": "sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -878,13 +878,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz", + "integrity": "sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -905,9 +905,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz", + "integrity": "sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -918,13 +918,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz", + "integrity": "sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -945,16 +945,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz", + "integrity": "sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -971,12 +971,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz", + "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.49.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -988,9 +988,9 @@ } }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1090,12 +1090,12 @@ "dev": true }, "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/array-includes": { @@ -1399,21 +1399,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", @@ -1441,15 +1426,6 @@ "node": ">=4" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/command-line-usage/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1509,15 +1485,6 @@ "node": ">=4" } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1780,9 +1747,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.3.tgz", - "integrity": "sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.4.tgz", + "integrity": "sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==", "dev": true, "hasInstallScript": true, "bin": { @@ -1792,28 +1759,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.3", - "@esbuild/android-arm64": "0.17.3", - "@esbuild/android-x64": "0.17.3", - "@esbuild/darwin-arm64": "0.17.3", - "@esbuild/darwin-x64": "0.17.3", - "@esbuild/freebsd-arm64": "0.17.3", - "@esbuild/freebsd-x64": "0.17.3", - "@esbuild/linux-arm": "0.17.3", - "@esbuild/linux-arm64": "0.17.3", - "@esbuild/linux-ia32": "0.17.3", - "@esbuild/linux-loong64": "0.17.3", - "@esbuild/linux-mips64el": "0.17.3", - "@esbuild/linux-ppc64": "0.17.3", - "@esbuild/linux-riscv64": "0.17.3", - "@esbuild/linux-s390x": "0.17.3", - "@esbuild/linux-x64": "0.17.3", - "@esbuild/netbsd-x64": "0.17.3", - "@esbuild/openbsd-x64": "0.17.3", - "@esbuild/sunos-x64": "0.17.3", - "@esbuild/win32-arm64": "0.17.3", - "@esbuild/win32-ia32": "0.17.3", - "@esbuild/win32-x64": "0.17.3" + "@esbuild/android-arm": "0.17.4", + "@esbuild/android-arm64": "0.17.4", + "@esbuild/android-x64": "0.17.4", + "@esbuild/darwin-arm64": "0.17.4", + "@esbuild/darwin-x64": "0.17.4", + "@esbuild/freebsd-arm64": "0.17.4", + "@esbuild/freebsd-x64": "0.17.4", + "@esbuild/linux-arm": "0.17.4", + "@esbuild/linux-arm64": "0.17.4", + "@esbuild/linux-ia32": "0.17.4", + "@esbuild/linux-loong64": "0.17.4", + "@esbuild/linux-mips64el": "0.17.4", + "@esbuild/linux-ppc64": "0.17.4", + "@esbuild/linux-riscv64": "0.17.4", + "@esbuild/linux-s390x": "0.17.4", + "@esbuild/linux-x64": "0.17.4", + "@esbuild/netbsd-x64": "0.17.4", + "@esbuild/openbsd-x64": "0.17.4", + "@esbuild/sunos-x64": "0.17.4", + "@esbuild/win32-arm64": "0.17.4", + "@esbuild/win32-ia32": "0.17.4", + "@esbuild/win32-x64": "0.17.4" } }, "node_modules/escalade": { @@ -2227,9 +2194,9 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.13.tgz", - "integrity": "sha512-g+OboAw8ol1FgTHhKLR7ZHcItNudceiY04BBrvqa0JBWoPhi/+e5r4H5AeW+EsQCroJLJwsuOP3dD3c6cc5uOg==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.15.tgz", + "integrity": "sha512-bF4/E33/K/EZDHV23IJpSK2SU7rZTaSkDH5G85nXX8SKlQ9qBpWQhyPpm2nlTBewDJgtpd6+1x4TNpKmocmthQ==", "dev": true, "dependencies": { "strnum": "^1.0.5" @@ -2307,18 +2274,6 @@ "node": ">=8" } }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2717,15 +2672,15 @@ } }, "node_modules/hereby": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.7.1.tgz", - "integrity": "sha512-lh5w90yCUYkajcuuoIjWkqXDdQyzonLRYmZ7QSf8gJVURKP8SjoO4LtQz2d+saAEszOWfBd1gY50ngbppga1Xw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.8.0.tgz", + "integrity": "sha512-htYg9T4qDeaCyo/2xX3rJVG7JXUjE9p0xJl/50RSV30qPOpHOipDjOSlO1sdhCTMBIf/P7CXer8GUuiEfgzmsg==", "dev": true, "dependencies": { - "command-line-args": "^5.2.1", "command-line-usage": "^6.1.3", "fastest-levenshtein": "^1.0.16", "import-meta-resolve": "^2.2.1", + "minimist": "^1.2.7", "picocolors": "^1.0.0", "pretty-ms": "^8.0.0" }, @@ -3222,12 +3177,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -4216,24 +4165,6 @@ "node": ">=8.0.0" } }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -4378,9 +4309,9 @@ } }, "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, "engines": { "node": ">=8" @@ -4529,15 +4460,6 @@ "node": ">=8.0.0" } }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -4639,156 +4561,156 @@ }, "dependencies": { "@esbuild/android-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.3.tgz", - "integrity": "sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.4.tgz", + "integrity": "sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.3.tgz", - "integrity": "sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.4.tgz", + "integrity": "sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.3.tgz", - "integrity": "sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.4.tgz", + "integrity": "sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.3.tgz", - "integrity": "sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.4.tgz", + "integrity": "sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.3.tgz", - "integrity": "sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.4.tgz", + "integrity": "sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.3.tgz", - "integrity": "sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.4.tgz", + "integrity": "sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.3.tgz", - "integrity": "sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.4.tgz", + "integrity": "sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.3.tgz", - "integrity": "sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.4.tgz", + "integrity": "sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.3.tgz", - "integrity": "sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.4.tgz", + "integrity": "sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.3.tgz", - "integrity": "sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz", + "integrity": "sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.3.tgz", - "integrity": "sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.4.tgz", + "integrity": "sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.3.tgz", - "integrity": "sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.4.tgz", + "integrity": "sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.3.tgz", - "integrity": "sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.4.tgz", + "integrity": "sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.3.tgz", - "integrity": "sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.4.tgz", + "integrity": "sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.3.tgz", - "integrity": "sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.4.tgz", + "integrity": "sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.3.tgz", - "integrity": "sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.4.tgz", + "integrity": "sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.3.tgz", - "integrity": "sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.4.tgz", + "integrity": "sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.3.tgz", - "integrity": "sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.4.tgz", + "integrity": "sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.3.tgz", - "integrity": "sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.4.tgz", + "integrity": "sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.3.tgz", - "integrity": "sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.4.tgz", + "integrity": "sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.3.tgz", - "integrity": "sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.4.tgz", + "integrity": "sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.3.tgz", - "integrity": "sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.4.tgz", + "integrity": "sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==", "dev": true, "optional": true }, @@ -4909,9 +4831,9 @@ } }, "@octokit/endpoint": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.4.tgz", - "integrity": "sha512-hXJP43VT2IrUxBCNIahta8qawpIzLvCjHLCuDDsdIPbd6+jPwsc3KGl/kdQ37mLd+sdiJm6c9qKI7k5CjE0Z9A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", "dev": true, "requires": { "@octokit/types": "^9.0.0", @@ -5114,14 +5036,14 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz", + "integrity": "sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/type-utils": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -5131,53 +5053,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz", + "integrity": "sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz", + "integrity": "sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0" } }, "@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz", + "integrity": "sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz", + "integrity": "sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz", + "integrity": "sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5186,35 +5108,35 @@ } }, "@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz", + "integrity": "sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz", + "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.49.0", "eslint-visitor-keys": "^3.3.0" } }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -5284,9 +5206,9 @@ "dev": true }, "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true }, "array-includes": { @@ -5510,18 +5432,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, "command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", @@ -5543,12 +5453,6 @@ "color-convert": "^1.9.0" } }, - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -5595,12 +5499,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true } } }, @@ -5806,33 +5704,33 @@ } }, "esbuild": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.3.tgz", - "integrity": "sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.17.3", - "@esbuild/android-arm64": "0.17.3", - "@esbuild/android-x64": "0.17.3", - "@esbuild/darwin-arm64": "0.17.3", - "@esbuild/darwin-x64": "0.17.3", - "@esbuild/freebsd-arm64": "0.17.3", - "@esbuild/freebsd-x64": "0.17.3", - "@esbuild/linux-arm": "0.17.3", - "@esbuild/linux-arm64": "0.17.3", - "@esbuild/linux-ia32": "0.17.3", - "@esbuild/linux-loong64": "0.17.3", - "@esbuild/linux-mips64el": "0.17.3", - "@esbuild/linux-ppc64": "0.17.3", - "@esbuild/linux-riscv64": "0.17.3", - "@esbuild/linux-s390x": "0.17.3", - "@esbuild/linux-x64": "0.17.3", - "@esbuild/netbsd-x64": "0.17.3", - "@esbuild/openbsd-x64": "0.17.3", - "@esbuild/sunos-x64": "0.17.3", - "@esbuild/win32-arm64": "0.17.3", - "@esbuild/win32-ia32": "0.17.3", - "@esbuild/win32-x64": "0.17.3" + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.4.tgz", + "integrity": "sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.17.4", + "@esbuild/android-arm64": "0.17.4", + "@esbuild/android-x64": "0.17.4", + "@esbuild/darwin-arm64": "0.17.4", + "@esbuild/darwin-x64": "0.17.4", + "@esbuild/freebsd-arm64": "0.17.4", + "@esbuild/freebsd-x64": "0.17.4", + "@esbuild/linux-arm": "0.17.4", + "@esbuild/linux-arm64": "0.17.4", + "@esbuild/linux-ia32": "0.17.4", + "@esbuild/linux-loong64": "0.17.4", + "@esbuild/linux-mips64el": "0.17.4", + "@esbuild/linux-ppc64": "0.17.4", + "@esbuild/linux-riscv64": "0.17.4", + "@esbuild/linux-s390x": "0.17.4", + "@esbuild/linux-x64": "0.17.4", + "@esbuild/netbsd-x64": "0.17.4", + "@esbuild/openbsd-x64": "0.17.4", + "@esbuild/sunos-x64": "0.17.4", + "@esbuild/win32-arm64": "0.17.4", + "@esbuild/win32-ia32": "0.17.4", + "@esbuild/win32-x64": "0.17.4" } }, "escalade": { @@ -6157,9 +6055,9 @@ "dev": true }, "fast-xml-parser": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.13.tgz", - "integrity": "sha512-g+OboAw8ol1FgTHhKLR7ZHcItNudceiY04BBrvqa0JBWoPhi/+e5r4H5AeW+EsQCroJLJwsuOP3dD3c6cc5uOg==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.15.tgz", + "integrity": "sha512-bF4/E33/K/EZDHV23IJpSK2SU7rZTaSkDH5G85nXX8SKlQ9qBpWQhyPpm2nlTBewDJgtpd6+1x4TNpKmocmthQ==", "dev": true, "requires": { "strnum": "^1.0.5" @@ -6208,15 +6106,6 @@ "to-regex-range": "^5.0.1" } }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - } - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6502,15 +6391,15 @@ "dev": true }, "hereby": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.7.1.tgz", - "integrity": "sha512-lh5w90yCUYkajcuuoIjWkqXDdQyzonLRYmZ7QSf8gJVURKP8SjoO4LtQz2d+saAEszOWfBd1gY50ngbppga1Xw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.8.0.tgz", + "integrity": "sha512-htYg9T4qDeaCyo/2xX3rJVG7JXUjE9p0xJl/50RSV30qPOpHOipDjOSlO1sdhCTMBIf/P7CXer8GUuiEfgzmsg==", "dev": true, "requires": { - "command-line-args": "^5.2.1", "command-line-usage": "^6.1.3", "fastest-levenshtein": "^1.0.16", "import-meta-resolve": "^2.2.1", + "minimist": "^1.2.7", "picocolors": "^1.0.0", "pretty-ms": "^8.0.0" } @@ -6853,12 +6742,6 @@ "p-locate": "^5.0.0" } }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7533,20 +7416,6 @@ "deep-extend": "~0.6.0", "typical": "^5.2.0", "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } } }, "text-table": { @@ -7661,9 +7530,9 @@ "dev": true }, "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true }, "unbox-primitive": { @@ -7777,14 +7646,6 @@ "requires": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" - }, - "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } } }, "workerpool": { diff --git a/scripts/build/options.mjs b/scripts/build/options.mjs index 2c3d1a2ce075b..8c354552b10f9 100644 --- a/scripts/build/options.mjs +++ b/scripts/build/options.mjs @@ -26,13 +26,13 @@ const parsed = minimist(process.argv.slice(2), { inspect: process.env.inspect || process.env["inspect-brk"] || process.env.i, host: process.env.TYPESCRIPT_HOST || process.env.host || "node", browser: process.env.browser || process.env.b || (os.platform() === "win32" ? "edge" : "chrome"), - timeout: process.env.timeout || 40000, + timeout: +(process.env.timeout ?? 0) || 40000, tests: process.env.test || process.env.tests || process.env.t, runners: process.env.runners || process.env.runner || process.env.ru, light: process.env.light === undefined || process.env.light !== "false", reporter: process.env.reporter || process.env.r, fix: process.env.fix || process.env.f, - workers: process.env.workerCount || ((os.cpus().length - (ci ? 0 : 1)) || 1), + workers: +(process.env.workerCount ?? 0) || ((os.cpus().length - (ci ? 0 : 1)) || 1), failed: false, keepFailed: false, lkg: true, @@ -73,11 +73,11 @@ export default options; * @property {string | boolean} break * @property {string | boolean} inspect * @property {string} runners - * @property {string|number} workers + * @property {number} workers * @property {string} host * @property {string} reporter * @property {string} stackTraceLimit - * @property {string|number} timeout + * @property {number} timeout * @property {boolean} failed * @property {boolean} keepFailed * @property {boolean} ci diff --git a/scripts/build/tests.mjs b/scripts/build/tests.mjs index 4db74ec5c078f..daaa7c25133f6 100644 --- a/scripts/build/tests.mjs +++ b/scripts/build/tests.mjs @@ -175,9 +175,9 @@ export async function cleanTestDirs() { * @param {string} runners * @param {boolean} light * @param {string} [taskConfigsFolder] - * @param {string | number} [workerCount] + * @param {number} [workerCount] * @param {string} [stackTraceLimit] - * @param {string | number} [timeout] + * @param {number} [timeout] * @param {boolean} [keepFailed] * @param {number | undefined} [shards] * @param {number | undefined} [shardId] diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9f77641faf5cc..4765c1aa33402 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -111,7 +111,10 @@ import { createGetCanonicalFileName, createGetSymbolWalker, createModeAwareCacheKey, - createPrinter, + createPrinterWithDefaults, + createPrinterWithRemoveComments, + createPrinterWithRemoveCommentsNeverAsciiEscape, + createPrinterWithRemoveCommentsOmitTrailingSemicolon, createPropertyNameNodeForIdentifierOrLiteral, createSymbolTable, createTextWriter, @@ -6123,7 +6126,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { function symbolToStringWorker(writer: EmitTextWriter) { const entity = builder(symbol, meaning!, enclosingDeclaration, nodeFlags)!; // TODO: GH#18217 // add neverAsciiEscape for GH#39027 - const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile ? createPrinter({ removeComments: true, neverAsciiEscape: true }) : createPrinter({ removeComments: true }); + const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile + ? createPrinterWithRemoveCommentsNeverAsciiEscape() + : createPrinterWithRemoveComments(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, entity, /*sourceFile*/ sourceFile, writer); return writer; @@ -6142,7 +6147,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { sigOutput = kind === SignatureKind.Construct ? SyntaxKind.ConstructSignature : SyntaxKind.CallSignature; } const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName); - const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, sig!, /*sourceFile*/ sourceFile, getTrailingSemicolonDeferringWriter(writer)); // TODO: GH#18217 return writer; @@ -6155,8 +6160,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (typeNode === undefined) return Debug.fail("should always get typenode"); // The unresolved type gets a synthesized comment on `any` to hint to users that it's not a plain `any`. // Otherwise, we always strip comments out. - const options = { removeComments: type !== unresolvedType }; - const printer = createPrinter(options); + const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, typeNode, /*sourceFile*/ sourceFile, writer); const result = writer.getText(); @@ -9636,7 +9640,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { typePredicate.kind === TypePredicateKind.Identifier || typePredicate.kind === TypePredicateKind.AssertsIdentifier ? factory.createIdentifier(typePredicate.parameterName) : factory.createThisTypeNode(), typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName)! // TODO: GH#18217 ); - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, predicate, /*sourceFile*/ sourceFile, writer); return writer; @@ -27211,7 +27215,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { isFunctionLike(node) && !getImmediatelyInvokedFunctionExpression(node) || node.kind === SyntaxKind.ModuleBlock || node.kind === SyntaxKind.SourceFile || - node.kind === SyntaxKind.CatchClause || node.kind === SyntaxKind.PropertyDeclaration)!; } @@ -27587,7 +27590,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const isParameter = getRootDeclaration(declaration).kind === SyntaxKind.Parameter; const declarationContainer = getControlFlowContainer(declaration); let flowContainer = getControlFlowContainer(node); - const isCatch = flowContainer.kind === SyntaxKind.CatchClause; const isOuterVariable = flowContainer !== declarationContainer; const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent); const isModuleExports = symbol.flags & SymbolFlags.ModuleExports; @@ -27602,7 +27604,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // We only look for uninitialized variables in strict null checking mode, and only when we can analyze // the entire control flow graph from the variable's declaration (i.e. when the flow container and // declaration container are the same). - const assumeInitialized = isParameter || isCatch || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || + const assumeInitialized = isParameter || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (TypeFlags.AnyOrUnknown | TypeFlags.Void)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === SyntaxKind.ExportSpecifier) || node.parent.kind === SyntaxKind.NonNullExpression || @@ -43901,6 +43903,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } const isIllegalExportDefaultInCJS = !node.isExportEquals && + !(node.flags & NodeFlags.Ambient) && compilerOptions.verbatimModuleSyntax && (moduleKind === ModuleKind.CommonJS || getSourceFileOfNode(node).impliedNodeFormat === ModuleKind.CommonJS); diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 170ad79e7d587..e81f2b090a8ae 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1343,6 +1343,18 @@ const enum PipelinePhase { Emit, } +/** @internal */ +export const createPrinterWithDefaults = memoize(() => createPrinter({})); + +/** @internal */ +export const createPrinterWithRemoveComments = memoize(() => createPrinter({ removeComments: true })); + +/** @internal */ +export const createPrinterWithRemoveCommentsNeverAsciiEscape = memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true })); + +/** @internal */ +export const createPrinterWithRemoveCommentsOmitTrailingSemicolon = memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true })); + export function createPrinter(printerOptions: PrinterOptions = {}, handlers: PrintHandlers = {}): Printer { const { hasGlobalName, diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index d3d5b0fda4c3b..57c7bf9aa8329 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1279,6 +1279,20 @@ export function getScriptTargetFeatures(): ScriptTargetFeatures { BigUint64Array: ["at"], ObjectConstructor: ["hasOwn"], Error: ["cause"] + }, + es2023: { + Array: ["findLastIndex", "findLast"], + Int8Array: ["findLastIndex", "findLast"], + Uint8Array: ["findLastIndex", "findLast"], + Uint8ClampedArray: ["findLastIndex", "findLast"], + Int16Array: ["findLastIndex", "findLast"], + Uint16Array: ["findLastIndex", "findLast"], + Int32Array: ["findLastIndex", "findLast"], + Uint32Array: ["findLastIndex", "findLast"], + Float32Array: ["findLastIndex", "findLast"], + Float64Array: ["findLastIndex", "findLast"], + BigInt64Array: ["findLastIndex", "findLast"], + BigUint64Array: ["findLastIndex", "findLast"], } }; } diff --git a/src/harness/client.ts b/src/harness/client.ts index 435c367e4e7be..1b52ef2abe2f6 100644 --- a/src/harness/client.ts +++ b/src/harness/client.ts @@ -727,7 +727,7 @@ export class SessionClient implements LanguageService { return notImplemented(); } - getDocCommentTemplateAtPosition(_fileName: string, _position: number, _options?: DocCommentTemplateOptions): TextInsertion { + getDocCommentTemplateAtPosition(_fileName: string, _position: number, _options?: DocCommentTemplateOptions, _formatOptions?: FormatCodeSettings): TextInsertion { return notImplemented(); } diff --git a/src/harness/fourslashImpl.ts b/src/harness/fourslashImpl.ts index 0d8f5f4080db0..153de11f3c52b 100644 --- a/src/harness/fourslashImpl.ts +++ b/src/harness/fourslashImpl.ts @@ -3249,7 +3249,7 @@ export class TestState { public verifyDocCommentTemplate(expected: ts.TextInsertion | undefined, options?: ts.DocCommentTemplateOptions) { const name = "verifyDocCommentTemplate"; - const actual = this.languageService.getDocCommentTemplateAtPosition(this.activeFile.fileName, this.currentCaretPosition, options || { generateReturnInDocTemplate: true })!; + const actual = this.languageService.getDocCommentTemplateAtPosition(this.activeFile.fileName, this.currentCaretPosition, options || { generateReturnInDocTemplate: true }, this.formatCodeSettings)!; if (expected === undefined) { if (actual) { diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index f3eb069e6f647..b8bac73e89915 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -452,7 +452,7 @@ export class Verify extends VerifyNegatable { public docCommentTemplateAt(marker: string | FourSlash.Marker, expectedOffset: number, expectedText: string, options?: ts.DocCommentTemplateOptions) { this.state.goToMarker(marker); - this.state.verifyDocCommentTemplate({ newText: expectedText.replace(/\r?\n/g, "\r\n"), caretOffset: expectedOffset }, options); + this.state.verifyDocCommentTemplate({ newText: expectedText.replace(/\r?\n/g, ts.testFormatSettings.newLineCharacter!), caretOffset: expectedOffset }, options); } public noDocCommentTemplateAt(marker: string | FourSlash.Marker) { diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 9c481ce150695..5b393da4b3b6e 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -587,8 +587,8 @@ class LanguageServiceShimProxy implements ts.LanguageService { getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: ts.FormatCodeOptions): ts.TextChange[] { return unwrapJSONCallResult(this.shim.getFormattingEditsAfterKeystroke(fileName, position, key, JSON.stringify(options))); } - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: ts.DocCommentTemplateOptions): ts.TextInsertion { - return unwrapJSONCallResult(this.shim.getDocCommentTemplateAtPosition(fileName, position, options)); + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: ts.DocCommentTemplateOptions, formatOptions?: ts.FormatCodeSettings): ts.TextInsertion { + return unwrapJSONCallResult(this.shim.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions)); } isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean { return unwrapJSONCallResult(this.shim.isValidBraceCompletionAtPosition(fileName, position, openingBrace)); diff --git a/src/server/session.ts b/src/server/session.ts index 762469e1f601d..820226c2f5599 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -2083,7 +2083,7 @@ export class Session implements EventSender { private getDocCommentTemplate(args: protocol.FileLocationRequestArgs) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); - return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file)); + return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file)); } private getSpanOfEnclosingComment(args: protocol.SpanOfEnclosingCommentRequestArgs) { diff --git a/src/services/callHierarchy.ts b/src/services/callHierarchy.ts index fc4280802ee6d..a2d32e6da717f 100644 --- a/src/services/callHierarchy.ts +++ b/src/services/callHierarchy.ts @@ -14,7 +14,7 @@ import { ClassLikeDeclaration, ClassStaticBlockDeclaration, compareStringsCaseSensitive, - createPrinter, + createPrinterWithRemoveCommentsOmitTrailingSemicolon, createTextRangeFromNode, createTextSpanFromBounds, createTextSpanFromRange, @@ -245,7 +245,7 @@ function getCallHierarchyItemName(program: Program, node: CallHierarchyDeclarati } if (text === undefined) { // get the text from printing the node on a single line without comments... - const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); text = usingSingleLineStringWriter(writer => printer.writeNode(EmitHint.Unspecified, node, node.getSourceFile(), writer)); } return { text, pos: declName.getStart(), end: declName.getEnd() }; diff --git a/src/services/codefixes/fixUnmatchedParameter.ts b/src/services/codefixes/fixUnmatchedParameter.ts index 0bf1d4195e0ec..267e207a6ccac 100644 --- a/src/services/codefixes/fixUnmatchedParameter.ts +++ b/src/services/codefixes/fixUnmatchedParameter.ts @@ -83,7 +83,7 @@ function getDeleteAction(context: CodeFixContext, { name, jsDocHost, jsDocParame ); } -function getRenameAction(context: CodeFixContext, { name, signature, jsDocParameterTag }: Info) { +function getRenameAction(context: CodeFixContext, { name, jsDocHost, signature, jsDocParameterTag }: Info) { if (!length(signature.parameters)) return undefined; const sourceFile = context.sourceFile; @@ -110,7 +110,7 @@ function getRenameAction(context: CodeFixContext, { name, signature, jsDocParame jsDocParameterTag.comment ); const changes = textChanges.ChangeTracker.with(context, changeTracker => - changeTracker.replaceJSDocComment(sourceFile, signature, map(tags, t => t === jsDocParameterTag ? newJSDocParameterTag : t))); + changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, t => t === jsDocParameterTag ? newJSDocParameterTag : t))); return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]); } diff --git a/src/services/inlayHints.ts b/src/services/inlayHints.ts index 5544aaa920c02..49b113e927554 100644 --- a/src/services/inlayHints.ts +++ b/src/services/inlayHints.ts @@ -2,7 +2,7 @@ import { __String, ArrowFunction, CallExpression, - createPrinter, + createPrinterWithRemoveComments, Debug, EmitHint, EnumMember, @@ -53,7 +53,6 @@ import { NodeBuilderFlags, ParameterDeclaration, PrefixUnaryExpression, - PrinterOptions, PropertyDeclaration, Signature, skipParentheses, @@ -383,8 +382,7 @@ export function provideInlayHints(context: InlayHintsContext): InlayHint[] { function printTypeInSingleLine(type: Type) { const flags = NodeBuilderFlags.IgnoreErrors | TypeFormatFlags.AllowUniqueESSymbolType | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope; - const options: PrinterOptions = { removeComments: true }; - const printer = createPrinter(options); + const printer = createPrinterWithRemoveComments(); return usingSingleLineStringWriter(writer => { const typeNode = checker.typeToTypeNode(type, /*enclosingDeclaration*/ undefined, flags); diff --git a/src/services/jsDoc.ts b/src/services/jsDoc.ts index 866ef2d9df2a0..bf4226c22e6a9 100644 --- a/src/services/jsDoc.ts +++ b/src/services/jsDoc.ts @@ -135,6 +135,8 @@ const jsDocTagNames = [ "lends", "license", "link", + "linkcode", + "linkplain", "listens", "member", "memberof", @@ -147,6 +149,7 @@ const jsDocTagNames = [ "package", "param", "private", + "prop", "property", "protected", "public", diff --git a/src/services/services.ts b/src/services/services.ts index aa1c2da69ba58..f6e5fccfe06c6 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2436,8 +2436,9 @@ export function createLanguageService( : Promise.reject("Host does not implement `installPackage`"); } - function getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined { - return JsDoc.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, /*formatSettings*/ undefined), syntaxTreeCache.getCurrentSourceFile(fileName), position, options); + function getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined { + const formatSettings = formatOptions ? formatting.getFormatContext(formatOptions, host).options : undefined; + return JsDoc.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options); } function isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean { diff --git a/src/services/shims.ts b/src/services/shims.ts index 2f6f9fad8d43a..eca35a4a6ebc9 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -349,7 +349,7 @@ export interface LanguageServiceShim extends Shim { /** * Returns JSON-encoded value of the type TextInsertion. */ - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): string; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): string; /** * Returns JSON-encoded boolean to indicate whether we should support brace location @@ -1091,10 +1091,10 @@ class LanguageServiceShimObject extends ShimBase implements LanguageServiceShim }); } - public getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): string { + public getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): string { return this.forwardJSONCall( `getDocCommentTemplateAtPosition('${fileName}', ${position})`, - () => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options) + () => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions) ); } diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index f662021481c4c..c8923140c4935 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -7,7 +7,7 @@ import { CheckFlags, contains, countWhere, - createPrinter, + createPrinterWithRemoveComments, createTextSpan, createTextSpanFromBounds, createTextSpanFromNode, @@ -659,7 +659,7 @@ function createTypeHelpItems( function getTypeHelpItem(symbol: Symbol, typeParameters: readonly TypeParameter[], checker: TypeChecker, enclosingDeclaration: Node, sourceFile: SourceFile): SignatureHelpItem { const typeSymbolDisplay = symbolToDisplayParts(checker, symbol); - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const parameters = typeParameters.map(t => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer)); const documentation = symbol.getDocumentationComment(checker); @@ -699,7 +699,7 @@ interface SignatureHelpItemInfo { readonly isVariadic: boolean; readonly paramet function itemInfoForTypeParameters(candidateSignature: Signature, checker: TypeChecker, enclosingDeclaration: Node, sourceFile: SourceFile): SignatureHelpItemInfo[] { const typeParameters = (candidateSignature.target || candidateSignature).typeParameters; - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const parameters = (typeParameters || emptyArray).map(t => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer)); const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)!] : []; @@ -713,7 +713,7 @@ function itemInfoForTypeParameters(candidateSignature: Signature, checker: TypeC } function itemInfoForParameters(candidateSignature: Signature, checker: TypeChecker, enclosingDeclaration: Node, sourceFile: SourceFile): SignatureHelpItemInfo[] { - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const typeParameterParts = mapToDisplayParts(writer => { if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) { const args = factory.createNodeArray(candidateSignature.typeParameters.map(p => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)!)); diff --git a/src/services/symbolDisplay.ts b/src/services/symbolDisplay.ts index bda7ba595090c..be2e83a48bb2f 100644 --- a/src/services/symbolDisplay.ts +++ b/src/services/symbolDisplay.ts @@ -5,7 +5,7 @@ import { CallExpression, CheckFlags, contains, - createPrinter, + createPrinterWithRemoveComments, Debug, displayPart, EmitHint, @@ -75,7 +75,6 @@ import { NodeBuilderFlags, ObjectFlags, operatorPart, - Printer, PropertyAccessExpression, PropertyDeclaration, punctuationPart, @@ -259,7 +258,6 @@ export function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker: Typ let hasAddedSymbolInfo = false; const isThisExpression = location.kind === SyntaxKind.ThisKeyword && isInExpressionContext(location) || isThisInTypeQuery(location); let type: Type | undefined; - let printer: Printer; let documentationFromAlias: SymbolDisplayPart[] | undefined; let tagsFromAlias: JSDocTagInfo[] | undefined; let hasMultipleSignatures = false; @@ -730,10 +728,7 @@ export function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker: Typ return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? undefined : tags }; function getPrinter() { - if (!printer) { - printer = createPrinter({ removeComments: true }); - } - return printer; + return createPrinterWithRemoveComments(); } function prefixNextMeaning() { diff --git a/src/services/types.ts b/src/services/types.ts index ff726ff0663c7..11f22f4fc9472 100644 --- a/src/services/types.ts +++ b/src/services/types.ts @@ -604,7 +604,7 @@ export interface LanguageService { getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined; isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; /** diff --git a/src/services/utilities.ts b/src/services/utilities.ts index e3de3b3014744..9935d419b2c4b 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -30,7 +30,7 @@ import { ConditionalExpression, contains, ContextFlags, - createPrinter, + createPrinterWithRemoveCommentsOmitTrailingSemicolon, createRange, createScanner, createTextSpan, @@ -2984,7 +2984,7 @@ export function signatureToDisplayParts(typechecker: TypeChecker, signature: Sig export function nodeToDisplayParts(node: Node, enclosingDeclaration: Node): SymbolDisplayPart[] { const file = enclosingDeclaration.getSourceFile(); return mapToDisplayParts(writer => { - const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); printer.writeNode(EmitHint.Unspecified, node, file, writer); }); } diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index d37896300e8f8..65f9a35b41dc6 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -9990,7 +9990,7 @@ declare namespace ts { getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined; isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; /** * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag. diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index c9eeb8a00a1a5..e973a18179380 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -6088,7 +6088,7 @@ declare namespace ts { getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined; isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; /** * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag. diff --git a/tests/baselines/reference/findLast(target=es2022).errors.txt b/tests/baselines/reference/findLast(target=es2022).errors.txt new file mode 100644 index 0000000000000..cc70f5b9760ba --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).errors.txt @@ -0,0 +1,109 @@ +tests/cases/compiler/findLast.ts(1,44): error TS2550: Property 'findLast' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(2,51): error TS2550: Property 'findLast' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(3,17): error TS2550: Property 'findLast' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(4,18): error TS2550: Property 'findLast' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(5,25): error TS2550: Property 'findLast' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(6,18): error TS2550: Property 'findLast' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(7,19): error TS2550: Property 'findLast' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(8,18): error TS2550: Property 'findLast' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(9,19): error TS2550: Property 'findLast' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(10,20): error TS2550: Property 'findLast' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(11,20): error TS2550: Property 'findLast' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(12,21): error TS2550: Property 'findLast' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(13,22): error TS2550: Property 'findLast' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(15,33): error TS2550: Property 'findLastIndex' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(16,40): error TS2550: Property 'findLastIndex' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(17,17): error TS2550: Property 'findLastIndex' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(18,18): error TS2550: Property 'findLastIndex' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(19,25): error TS2550: Property 'findLastIndex' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(20,18): error TS2550: Property 'findLastIndex' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(21,19): error TS2550: Property 'findLastIndex' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(22,18): error TS2550: Property 'findLastIndex' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(23,19): error TS2550: Property 'findLastIndex' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(24,20): error TS2550: Property 'findLastIndex' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(25,20): error TS2550: Property 'findLastIndex' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(26,21): error TS2550: Property 'findLastIndex' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(27,22): error TS2550: Property 'findLastIndex' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + + +==== tests/cases/compiler/findLast.ts (26 errors) ==== + const itemNumber: number | undefined = [0].findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + const itemString: string | undefined = ["string"].findLast((item) => item === "string"); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int8Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8ClampedArray().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int16Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint16Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int32Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint32Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float32Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float64Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigInt64Array().findLast((item) => item === BigInt(0)); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigUint64Array().findLast((item) => item === BigInt(0)); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + + const indexNumber: number = [0].findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + const indexString: number = ["string"].findLastIndex((item) => item === "string"); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int8Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8ClampedArray().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int16Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint16Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int32Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint32Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float32Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float64Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigInt64Array().findLastIndex((item) => item === BigInt(0)); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigUint64Array().findLastIndex((item) => item === BigInt(0)); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + \ No newline at end of file diff --git a/tests/baselines/reference/findLast(target=es2022).js b/tests/baselines/reference/findLast(target=es2022).js new file mode 100644 index 0000000000000..b9ba7b1324b38 --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).js @@ -0,0 +1,57 @@ +//// [findLast.ts] +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); + + +//// [findLast.js] +const itemNumber = [0].findLast((item) => item === 0); +const itemString = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); +const indexNumber = [0].findLastIndex((item) => item === 0); +const indexString = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); diff --git a/tests/baselines/reference/findLast(target=es2022).symbols b/tests/baselines/reference/findLast(target=es2022).symbols new file mode 100644 index 0000000000000..c9cbf11a1f3f9 --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).symbols @@ -0,0 +1,135 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : Symbol(itemNumber, Decl(findLast.ts, 0, 5)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : Symbol(itemString, Decl(findLast.ts, 1, 5)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) + +new Int8Array().findLast((item) => item === 0); +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) + +new Uint8Array().findLast((item) => item === 0); +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) + +new Uint8ClampedArray().findLast((item) => item === 0); +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) + +new Int16Array().findLast((item) => item === 0); +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) + +new Uint16Array().findLast((item) => item === 0); +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) + +new Int32Array().findLast((item) => item === 0); +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) + +new Uint32Array().findLast((item) => item === 0); +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) + +new Float32Array().findLast((item) => item === 0); +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) + +new Float64Array().findLast((item) => item === 0); +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : Symbol(indexNumber, Decl(findLast.ts, 14, 5)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : Symbol(indexString, Decl(findLast.ts, 15, 5)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) + +new Int8Array().findLastIndex((item) => item === 0); +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) + +new Uint8Array().findLastIndex((item) => item === 0); +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) + +new Int16Array().findLastIndex((item) => item === 0); +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) + +new Uint16Array().findLastIndex((item) => item === 0); +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) + +new Int32Array().findLastIndex((item) => item === 0); +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) + +new Uint32Array().findLastIndex((item) => item === 0); +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) + +new Float32Array().findLastIndex((item) => item === 0); +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) + +new Float64Array().findLastIndex((item) => item === 0); +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + diff --git a/tests/baselines/reference/findLast(target=es2022).types b/tests/baselines/reference/findLast(target=es2022).types new file mode 100644 index 0000000000000..062ed5b047dd5 --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).types @@ -0,0 +1,325 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : number +>[0].findLast((item) => item === 0) : any +>[0].findLast : any +>[0] : number[] +>0 : 0 +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : string +>["string"].findLast((item) => item === "string") : any +>["string"].findLast : any +>["string"] : string[] +>"string" : "string" +>findLast : any +>(item) => item === "string" : (item: any) => boolean +>item : any +>item === "string" : boolean +>item : any +>"string" : "string" + +new Int8Array().findLast((item) => item === 0); +>new Int8Array().findLast((item) => item === 0) : any +>new Int8Array().findLast : any +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8Array().findLast((item) => item === 0); +>new Uint8Array().findLast((item) => item === 0) : any +>new Uint8Array().findLast : any +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8ClampedArray().findLast((item) => item === 0); +>new Uint8ClampedArray().findLast((item) => item === 0) : any +>new Uint8ClampedArray().findLast : any +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int16Array().findLast((item) => item === 0); +>new Int16Array().findLast((item) => item === 0) : any +>new Int16Array().findLast : any +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint16Array().findLast((item) => item === 0); +>new Uint16Array().findLast((item) => item === 0) : any +>new Uint16Array().findLast : any +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int32Array().findLast((item) => item === 0); +>new Int32Array().findLast((item) => item === 0) : any +>new Int32Array().findLast : any +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint32Array().findLast((item) => item === 0); +>new Uint32Array().findLast((item) => item === 0) : any +>new Uint32Array().findLast : any +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float32Array().findLast((item) => item === 0); +>new Float32Array().findLast((item) => item === 0) : any +>new Float32Array().findLast : any +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float64Array().findLast((item) => item === 0); +>new Float64Array().findLast((item) => item === 0) : any +>new Float64Array().findLast : any +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>new BigInt64Array().findLast((item) => item === BigInt(0)) : any +>new BigInt64Array().findLast : any +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLast : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>new BigUint64Array().findLast((item) => item === BigInt(0)) : any +>new BigUint64Array().findLast : any +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLast : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : number +>[0].findLastIndex((item) => item === 0) : any +>[0].findLastIndex : any +>[0] : number[] +>0 : 0 +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : number +>["string"].findLastIndex((item) => item === "string") : any +>["string"].findLastIndex : any +>["string"] : string[] +>"string" : "string" +>findLastIndex : any +>(item) => item === "string" : (item: any) => boolean +>item : any +>item === "string" : boolean +>item : any +>"string" : "string" + +new Int8Array().findLastIndex((item) => item === 0); +>new Int8Array().findLastIndex((item) => item === 0) : any +>new Int8Array().findLastIndex : any +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8Array().findLastIndex((item) => item === 0); +>new Uint8Array().findLastIndex((item) => item === 0) : any +>new Uint8Array().findLastIndex : any +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>new Uint8ClampedArray().findLastIndex((item) => item === 0) : any +>new Uint8ClampedArray().findLastIndex : any +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int16Array().findLastIndex((item) => item === 0); +>new Int16Array().findLastIndex((item) => item === 0) : any +>new Int16Array().findLastIndex : any +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint16Array().findLastIndex((item) => item === 0); +>new Uint16Array().findLastIndex((item) => item === 0) : any +>new Uint16Array().findLastIndex : any +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int32Array().findLastIndex((item) => item === 0); +>new Int32Array().findLastIndex((item) => item === 0) : any +>new Int32Array().findLastIndex : any +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint32Array().findLastIndex((item) => item === 0); +>new Uint32Array().findLastIndex((item) => item === 0) : any +>new Uint32Array().findLastIndex : any +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float32Array().findLastIndex((item) => item === 0); +>new Float32Array().findLastIndex((item) => item === 0) : any +>new Float32Array().findLastIndex : any +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float64Array().findLastIndex((item) => item === 0); +>new Float64Array().findLastIndex((item) => item === 0) : any +>new Float64Array().findLastIndex : any +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>new BigInt64Array().findLastIndex((item) => item === BigInt(0)) : any +>new BigInt64Array().findLastIndex : any +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLastIndex : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>new BigUint64Array().findLastIndex((item) => item === BigInt(0)) : any +>new BigUint64Array().findLastIndex : any +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLastIndex : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + diff --git a/tests/baselines/reference/findLast(target=esnext).js b/tests/baselines/reference/findLast(target=esnext).js new file mode 100644 index 0000000000000..b9ba7b1324b38 --- /dev/null +++ b/tests/baselines/reference/findLast(target=esnext).js @@ -0,0 +1,57 @@ +//// [findLast.ts] +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); + + +//// [findLast.js] +const itemNumber = [0].findLast((item) => item === 0); +const itemString = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); +const indexNumber = [0].findLastIndex((item) => item === 0); +const indexString = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); diff --git a/tests/baselines/reference/findLast(target=esnext).symbols b/tests/baselines/reference/findLast(target=esnext).symbols new file mode 100644 index 0000000000000..e4340f479f988 --- /dev/null +++ b/tests/baselines/reference/findLast(target=esnext).symbols @@ -0,0 +1,187 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : Symbol(itemNumber, Decl(findLast.ts, 0, 5)) +>[0].findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : Symbol(itemString, Decl(findLast.ts, 1, 5)) +>["string"].findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) + +new Int8Array().findLast((item) => item === 0); +>new Int8Array().findLast : Symbol(Int8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Int8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) + +new Uint8Array().findLast((item) => item === 0); +>new Uint8Array().findLast : Symbol(Uint8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) + +new Uint8ClampedArray().findLast((item) => item === 0); +>new Uint8ClampedArray().findLast : Symbol(Uint8ClampedArray.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint8ClampedArray.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) + +new Int16Array().findLast((item) => item === 0); +>new Int16Array().findLast : Symbol(Int16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Int16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) + +new Uint16Array().findLast((item) => item === 0); +>new Uint16Array().findLast : Symbol(Uint16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) + +new Int32Array().findLast((item) => item === 0); +>new Int32Array().findLast : Symbol(Int32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Int32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) + +new Uint32Array().findLast((item) => item === 0); +>new Uint32Array().findLast : Symbol(Uint32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) + +new Float32Array().findLast((item) => item === 0); +>new Float32Array().findLast : Symbol(Float32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Float32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) + +new Float64Array().findLast((item) => item === 0); +>new Float64Array().findLast : Symbol(Float64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Float64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>new BigInt64Array().findLast : Symbol(BigInt64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(BigInt64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>new BigUint64Array().findLast : Symbol(BigUint64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(BigUint64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : Symbol(indexNumber, Decl(findLast.ts, 14, 5)) +>[0].findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : Symbol(indexString, Decl(findLast.ts, 15, 5)) +>["string"].findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) + +new Int8Array().findLastIndex((item) => item === 0); +>new Int8Array().findLastIndex : Symbol(Int8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Int8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) + +new Uint8Array().findLastIndex((item) => item === 0); +>new Uint8Array().findLastIndex : Symbol(Uint8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>new Uint8ClampedArray().findLastIndex : Symbol(Uint8ClampedArray.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint8ClampedArray.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) + +new Int16Array().findLastIndex((item) => item === 0); +>new Int16Array().findLastIndex : Symbol(Int16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Int16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) + +new Uint16Array().findLastIndex((item) => item === 0); +>new Uint16Array().findLastIndex : Symbol(Uint16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) + +new Int32Array().findLastIndex((item) => item === 0); +>new Int32Array().findLastIndex : Symbol(Int32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Int32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) + +new Uint32Array().findLastIndex((item) => item === 0); +>new Uint32Array().findLastIndex : Symbol(Uint32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) + +new Float32Array().findLastIndex((item) => item === 0); +>new Float32Array().findLastIndex : Symbol(Float32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Float32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) + +new Float64Array().findLastIndex((item) => item === 0); +>new Float64Array().findLastIndex : Symbol(Float64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Float64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>new BigInt64Array().findLastIndex : Symbol(BigInt64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(BigInt64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>new BigUint64Array().findLastIndex : Symbol(BigUint64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(BigUint64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + diff --git a/tests/baselines/reference/findLast(target=esnext).types b/tests/baselines/reference/findLast(target=esnext).types new file mode 100644 index 0000000000000..e3881545e053a --- /dev/null +++ b/tests/baselines/reference/findLast(target=esnext).types @@ -0,0 +1,325 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : number +>[0].findLast((item) => item === 0) : number +>[0].findLast : { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number; } +>[0] : number[] +>0 : 0 +>findLast : { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : string +>["string"].findLast((item) => item === "string") : string +>["string"].findLast : { (predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string; } +>["string"] : string[] +>"string" : "string" +>findLast : { (predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string; } +>(item) => item === "string" : (item: string) => boolean +>item : string +>item === "string" : boolean +>item : string +>"string" : "string" + +new Int8Array().findLast((item) => item === 0); +>new Int8Array().findLast((item) => item === 0) : number +>new Int8Array().findLast : { (predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number; } +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8Array().findLast((item) => item === 0); +>new Uint8Array().findLast((item) => item === 0) : number +>new Uint8Array().findLast : { (predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number; } +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8ClampedArray().findLast((item) => item === 0); +>new Uint8ClampedArray().findLast((item) => item === 0) : number +>new Uint8ClampedArray().findLast : { (predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number; } +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int16Array().findLast((item) => item === 0); +>new Int16Array().findLast((item) => item === 0) : number +>new Int16Array().findLast : { (predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number; } +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint16Array().findLast((item) => item === 0); +>new Uint16Array().findLast((item) => item === 0) : number +>new Uint16Array().findLast : { (predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number; } +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int32Array().findLast((item) => item === 0); +>new Int32Array().findLast((item) => item === 0) : number +>new Int32Array().findLast : { (predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number; } +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint32Array().findLast((item) => item === 0); +>new Uint32Array().findLast((item) => item === 0) : number +>new Uint32Array().findLast : { (predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number; } +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float32Array().findLast((item) => item === 0); +>new Float32Array().findLast((item) => item === 0) : number +>new Float32Array().findLast : { (predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number; } +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float64Array().findLast((item) => item === 0); +>new Float64Array().findLast((item) => item === 0) : number +>new Float64Array().findLast : { (predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number; } +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>new BigInt64Array().findLast((item) => item === BigInt(0)) : bigint +>new BigInt64Array().findLast : { (predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint; } +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLast : { (predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint; } +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>new BigUint64Array().findLast((item) => item === BigInt(0)) : bigint +>new BigUint64Array().findLast : { (predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint; } +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLast : { (predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint; } +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : number +>[0].findLastIndex((item) => item === 0) : number +>[0].findLastIndex : (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => number +>[0] : number[] +>0 : 0 +>findLastIndex : (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : number +>["string"].findLastIndex((item) => item === "string") : number +>["string"].findLastIndex : (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any) => number +>["string"] : string[] +>"string" : "string" +>findLastIndex : (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any) => number +>(item) => item === "string" : (item: string) => boolean +>item : string +>item === "string" : boolean +>item : string +>"string" : "string" + +new Int8Array().findLastIndex((item) => item === 0); +>new Int8Array().findLastIndex((item) => item === 0) : number +>new Int8Array().findLastIndex : (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any) => number +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8Array().findLastIndex((item) => item === 0); +>new Uint8Array().findLastIndex((item) => item === 0) : number +>new Uint8Array().findLastIndex : (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => number +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>new Uint8ClampedArray().findLastIndex((item) => item === 0) : number +>new Uint8ClampedArray().findLastIndex : (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => number +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int16Array().findLastIndex((item) => item === 0); +>new Int16Array().findLastIndex((item) => item === 0) : number +>new Int16Array().findLastIndex : (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any) => number +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint16Array().findLastIndex((item) => item === 0); +>new Uint16Array().findLastIndex((item) => item === 0) : number +>new Uint16Array().findLastIndex : (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any) => number +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int32Array().findLastIndex((item) => item === 0); +>new Int32Array().findLastIndex((item) => item === 0) : number +>new Int32Array().findLastIndex : (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any) => number +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint32Array().findLastIndex((item) => item === 0); +>new Uint32Array().findLastIndex((item) => item === 0) : number +>new Uint32Array().findLastIndex : (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any) => number +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float32Array().findLastIndex((item) => item === 0); +>new Float32Array().findLastIndex((item) => item === 0) : number +>new Float32Array().findLastIndex : (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => number +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float64Array().findLastIndex((item) => item === 0); +>new Float64Array().findLastIndex((item) => item === 0) : number +>new Float64Array().findLastIndex : (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any) => number +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>new BigInt64Array().findLastIndex((item) => item === BigInt(0)) : number +>new BigInt64Array().findLastIndex : (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any) => number +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLastIndex : (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any) => number +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>new BigUint64Array().findLastIndex((item) => item === BigInt(0)) : number +>new BigUint64Array().findLastIndex : (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any) => number +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLastIndex : (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any) => number +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + diff --git a/tests/baselines/reference/narrowingDestructuring.js b/tests/baselines/reference/narrowingDestructuring.js index 4bc052b7fa0f4..f2420c58ffee6 100644 --- a/tests/baselines/reference/narrowingDestructuring.js +++ b/tests/baselines/reference/narrowingDestructuring.js @@ -34,10 +34,11 @@ function func3(t: function farr(x: T) { const [head, ...tail] = x; - if (x[0] === 'number') { + if (typeof x[0] === 'number') { const [head, ...tail] = x; } -} +} + //// [narrowingDestructuring.js] var __rest = (this && this.__rest) || function (s, e) { @@ -83,7 +84,7 @@ function func3(t) { } function farr(x) { var head = x[0], tail = x.slice(1); - if (x[0] === 'number') { + if (typeof x[0] === 'number') { var head_1 = x[0], tail_1 = x.slice(1); } } diff --git a/tests/baselines/reference/narrowingDestructuring.symbols b/tests/baselines/reference/narrowingDestructuring.symbols index 9e7b65997d6a2..aa4323fc27da7 100644 --- a/tests/baselines/reference/narrowingDestructuring.symbols +++ b/tests/baselines/reference/narrowingDestructuring.symbols @@ -136,7 +136,7 @@ function farr(x: >tail : Symbol(tail, Decl(narrowingDestructuring.ts, 34, 16)) >x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) - if (x[0] === 'number') { + if (typeof x[0] === 'number') { >x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) >0 : Symbol(0) @@ -146,3 +146,4 @@ function farr(x: >x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) } } + diff --git a/tests/baselines/reference/narrowingDestructuring.types b/tests/baselines/reference/narrowingDestructuring.types index ee11c8c4448c8..0534332f78798 100644 --- a/tests/baselines/reference/narrowingDestructuring.types +++ b/tests/baselines/reference/narrowingDestructuring.types @@ -135,16 +135,18 @@ function farr(x: >tail : [string, string] | [number, number] >x : [number, string, string] | [string, number, number] - if (x[0] === 'number') { ->x[0] === 'number' : boolean + if (typeof x[0] === 'number') { +>typeof x[0] === 'number' : boolean +>typeof x[0] : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >x[0] : string | number >x : [number, string, string] | [string, number, number] >0 : 0 >'number' : "number" const [head, ...tail] = x; ->head : "number" +>head : number >tail : [string, string] | [number, number] >x : [number, string, string] | [string, number, number] } } + diff --git a/tests/baselines/reference/potentiallyUnassignedVariableInCatch.js b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.js new file mode 100644 index 0000000000000..16cf0e40c238a --- /dev/null +++ b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.js @@ -0,0 +1,22 @@ +//// [potentiallyUnassignedVariableInCatch.ts] +let foo; +try { + if (Math.random() > 0.5) { + foo = 1234; + } +} catch { + foo; +} + + +//// [potentiallyUnassignedVariableInCatch.js] +"use strict"; +var foo; +try { + if (Math.random() > 0.5) { + foo = 1234; + } +} +catch (_a) { + foo; +} diff --git a/tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols new file mode 100644 index 0000000000000..97040ebb5c423 --- /dev/null +++ b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts === +let foo; +>foo : Symbol(foo, Decl(potentiallyUnassignedVariableInCatch.ts, 0, 3)) + +try { + if (Math.random() > 0.5) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + foo = 1234; +>foo : Symbol(foo, Decl(potentiallyUnassignedVariableInCatch.ts, 0, 3)) + } +} catch { + foo; +>foo : Symbol(foo, Decl(potentiallyUnassignedVariableInCatch.ts, 0, 3)) +} + diff --git a/tests/baselines/reference/potentiallyUnassignedVariableInCatch.types b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.types new file mode 100644 index 0000000000000..ff381216aa3da --- /dev/null +++ b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.types @@ -0,0 +1,23 @@ +=== tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts === +let foo; +>foo : any + +try { + if (Math.random() > 0.5) { +>Math.random() > 0.5 : boolean +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number +>0.5 : 0.5 + + foo = 1234; +>foo = 1234 : 1234 +>foo : any +>1234 : 1234 + } +} catch { + foo; +>foo : number | undefined +} + diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.js b/tests/baselines/reference/substitutionTypePassedToExtends.js new file mode 100644 index 0000000000000..13460c28e5f35 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.js @@ -0,0 +1,10 @@ +//// [substitutionTypePassedToExtends.ts] +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +type Bar1 = T + +type Foo2 = Set extends Set ? Bar2> : 'else' +type Bar2> = T + + +//// [substitutionTypePassedToExtends.js] +"use strict"; diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.symbols b/tests/baselines/reference/substitutionTypePassedToExtends.symbols new file mode 100644 index 0000000000000..b4ff138a915b9 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/substitutionTypePassedToExtends.ts === +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +>Foo1 : Symbol(Foo1, Decl(substitutionTypePassedToExtends.ts, 0, 0)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) +>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) + +type Bar1 = T +>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10)) + +type Foo2 = Set extends Set ? Bar2> : 'else' +>Foo2 : Symbol(Foo2, Decl(substitutionTypePassedToExtends.ts, 1, 36)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) + +type Bar2> = T +>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10)) + diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.types b/tests/baselines/reference/substitutionTypePassedToExtends.types new file mode 100644 index 0000000000000..80ed20dfc5fd0 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/substitutionTypePassedToExtends.ts === +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +>Foo1 : Foo1 + +type Bar1 = T +>Bar1 : T + +type Foo2 = Set extends Set ? Bar2> : 'else' +>Foo2 : Foo2 + +type Bar2> = T +>Bar2 : T + diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt index 0be83274c5de4..9bcb8b0214e39 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt @@ -1,4 +1,3 @@ -/decl.d.ts(2,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main.ts(1,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main.ts(2,13): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main.ts(3,10): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. @@ -12,13 +11,17 @@ /main7.ts(2,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. -==== /decl.d.ts (1 errors) ==== +==== /decl.d.ts (0 errors) ==== declare function esmy(): void; export default esmy; - ~~~~~~~~~~~~~~~~~~~~ -!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. export declare function funciton(): void; +==== /ambient.d.ts (0 errors) ==== + declare module "ambient" { + const _default: number; + export default _default; + } + ==== /main.ts (6 errors) ==== import esmy from "./decl"; // error ~~~~ diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js index e48c08b8b4c28..e8a03f7fb2fd8 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js @@ -5,6 +5,12 @@ declare function esmy(): void; export default esmy; export declare function funciton(): void; +//// [ambient.d.ts] +declare module "ambient" { + const _default: number; + export default _default; +} + //// [main.ts] import esmy from "./decl"; // error import * as esmy2 from "./decl"; // error diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols index e85557f10c91b..45b089f4d4a4a 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols @@ -8,6 +8,17 @@ export default esmy; export declare function funciton(): void; >funciton : Symbol(funciton, Decl(decl.d.ts, 1, 20)) +=== /ambient.d.ts === +declare module "ambient" { +>"ambient" : Symbol("ambient", Decl(ambient.d.ts, 0, 0)) + + const _default: number; +>_default : Symbol(_default, Decl(ambient.d.ts, 1, 9)) + + export default _default; +>_default : Symbol(_default, Decl(ambient.d.ts, 1, 9)) +} + === /main.ts === import esmy from "./decl"; // error >esmy : Symbol(esmy, Decl(main.ts, 0, 6)) diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types index 968c15c3f93b6..cf5f4dbfd5ff4 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types @@ -8,6 +8,17 @@ export default esmy; export declare function funciton(): void; >funciton : () => void +=== /ambient.d.ts === +declare module "ambient" { +>"ambient" : typeof import("ambient") + + const _default: number; +>_default : number + + export default _default; +>_default : number +} + === /main.ts === import esmy from "./decl"; // error >esmy : () => void diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt index b8003fc5d3937..f5d5aaad4f0ca 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt @@ -17,6 +17,12 @@ declare class CJSy {} export = CJSy; +==== /ambient.d.ts (0 errors) ==== + declare module "ambient" { + const _export: number; + export = _export; + } + ==== /types.ts (0 errors) ==== interface Typey {} export type { Typey }; diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js index 9246ef5022e26..a1aa16107fcb4 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js @@ -4,6 +4,12 @@ declare class CJSy {} export = CJSy; +//// [ambient.d.ts] +declare module "ambient" { + const _export: number; + export = _export; +} + //// [types.ts] interface Typey {} export type { Typey }; diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt index 7a6b23e911e0f..d984e4effeafb 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt @@ -13,6 +13,12 @@ declare class CJSy {} export = CJSy; +==== /ambient.d.ts (0 errors) ==== + declare module "ambient" { + const _export: number; + export = _export; + } + ==== /types.ts (0 errors) ==== interface Typey {} export type { Typey }; diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js index 9246ef5022e26..a1aa16107fcb4 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js @@ -4,6 +4,12 @@ declare class CJSy {} export = CJSy; +//// [ambient.d.ts] +declare module "ambient" { + const _export: number; + export = _export; +} + //// [types.ts] interface Typey {} export type { Typey }; diff --git a/tests/cases/compiler/findLast.ts b/tests/cases/compiler/findLast.ts index cba155e6c6b6d..ad0bddfb092c0 100644 --- a/tests/cases/compiler/findLast.ts +++ b/tests/cases/compiler/findLast.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 const itemNumber: number | undefined = [0].findLast((item) => item === 0); const itemString: string | undefined = ["string"].findLast((item) => item === "string"); diff --git a/tests/cases/compiler/narrowingDestructuring.ts b/tests/cases/compiler/narrowingDestructuring.ts index a745802825945..34f0b54f8be15 100644 --- a/tests/cases/compiler/narrowingDestructuring.ts +++ b/tests/cases/compiler/narrowingDestructuring.ts @@ -33,7 +33,7 @@ function func3(t: function farr(x: T) { const [head, ...tail] = x; - if (x[0] === 'number') { + if (typeof x[0] === 'number') { const [head, ...tail] = x; } -} \ No newline at end of file +} diff --git a/tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts b/tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts new file mode 100644 index 0000000000000..8f1d4d26bf394 --- /dev/null +++ b/tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts @@ -0,0 +1,10 @@ +// @strict: true + +let foo; +try { + if (Math.random() > 0.5) { + foo = 1234; + } +} catch { + foo; +} diff --git a/tests/cases/compiler/substitutionTypePassedToExtends.ts b/tests/cases/compiler/substitutionTypePassedToExtends.ts new file mode 100644 index 0000000000000..e969208e5a0f9 --- /dev/null +++ b/tests/cases/compiler/substitutionTypePassedToExtends.ts @@ -0,0 +1,8 @@ +// @strict: true +// @target: esnext + +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +type Bar1 = T + +type Foo2 = Set extends Set ? Bar2> : 'else' +type Bar2> = T diff --git a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts index d1df5e8bbd5a2..c01dde661fd63 100644 --- a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts +++ b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts @@ -9,6 +9,12 @@ declare function esmy(): void; export default esmy; export declare function funciton(): void; +// @Filename: /ambient.d.ts +declare module "ambient" { + const _default: number; + export default _default; +} + // @Filename: /main.ts import esmy from "./decl"; // error import * as esmy2 from "./decl"; // error diff --git a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts index dcc87bdb4a244..74e8b3eb92317 100644 --- a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts +++ b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts @@ -8,6 +8,12 @@ declare class CJSy {} export = CJSy; +// @Filename: /ambient.d.ts +declare module "ambient" { + const _export: number; + export = _export; +} + // @Filename: /types.ts interface Typey {} export type { Typey }; diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts new file mode 100644 index 0000000000000..9c271e6e158c8 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts @@ -0,0 +1,19 @@ +/// + +// @filename: /a.ts +/////** +//// * @param {string} y +//// * @returns +//// */ +////export const foo = (x: string) => x; + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "y", "x"], + index: 1, + newFileContent: +`/** + * @param {string} x + * @returns + */ +export const foo = (x: string) => x;`, +}); diff --git a/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts b/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts index 6acd0ad314e52..15eccb60ce18b 100644 --- a/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts +++ b/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts @@ -1,7 +1,7 @@ /// const singleLineOffset = 3; -const multiLineOffset = 12; +const multiLineOffset = 11; ////class C { diff --git a/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts b/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts index 5eed624a91575..8aacf248d7dcb 100644 --- a/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts +++ b/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts @@ -1,6 +1,6 @@ /// -const multiLineOffset = 12; +const multiLineOffset = 11; ////class C { //// /*0*/ diff --git a/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts b/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts index 221bf619308ef..cf8cc5ca5a2a4 100644 --- a/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts +++ b/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts @@ -1,7 +1,7 @@ /// const singleLineOffset = 3; -const multiLineOffset = 12; +const multiLineOffset = 11; ////class C { diff --git a/tests/cases/fourslash/docCommentTemplateConstructor01.ts b/tests/cases/fourslash/docCommentTemplateConstructor01.ts index 6c9eedb773d85..7e742c8f8b316 100644 --- a/tests/cases/fourslash/docCommentTemplateConstructor01.ts +++ b/tests/cases/fourslash/docCommentTemplateConstructor01.ts @@ -13,7 +13,7 @@ //// } ////} -const newTextOffset = 12; +const newTextOffset = 11; verify.docCommentTemplateAt("0", /*newTextOffset*/ newTextOffset, `/** * diff --git a/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts b/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts index 849227ba74b62..be160acf48858 100644 --- a/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts +++ b/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts @@ -8,7 +8,7 @@ //// exports.foo = (a) => {}; -verify.docCommentTemplateAt("", 8, +verify.docCommentTemplateAt("", 7, `/** * * @param {any} a diff --git a/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts b/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts index eaf75d064fcb6..aab2f30ed4763 100644 --- a/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts +++ b/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts @@ -4,7 +4,7 @@ ////const x = /*next*/ function f(p) {} for (const marker of test.markerNames()) { - verify.docCommentTemplateAt(marker, 8, + verify.docCommentTemplateAt(marker, 7, `/** * * @param p diff --git a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts index 50cebb527ce70..a818ad8ac3d2d 100644 --- a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts +++ b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts @@ -7,7 +7,7 @@ const noIndentScaffolding = "/**\n * \n * @param x\n * @param y\n */"; const oneIndentScaffolding = "/**\n * \n * @param x\n * @param y\n */"; -const noIndentOffset = 8; +const noIndentOffset = 7; const oneIndentOffset = noIndentOffset + 4; goTo.marker("0"); diff --git a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts index c2917d8f8078e..eb7fbaee2fe27 100644 --- a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts +++ b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts @@ -4,7 +4,7 @@ /////*0*/ ////function f(a, ...b): boolean {} -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param {any} a diff --git a/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts b/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts index d14274800e61c..a84d4ed621363 100644 --- a/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts +++ b/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts @@ -5,7 +5,7 @@ //// foo: (a: number, b: string) => void; ////} -verify.docCommentTemplateAt("", 12, +verify.docCommentTemplateAt("", 11, `/** * * @param a @@ -13,7 +13,7 @@ verify.docCommentTemplateAt("", 12, * @returns */`); -verify.docCommentTemplateAt("", 12, +verify.docCommentTemplateAt("", 11, `/** * * @param a diff --git a/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts b/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts index d0805d5325570..2f2d7f50ae9ae 100644 --- a/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts +++ b/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts @@ -30,7 +30,7 @@ verify.docCommentTemplateAt("interfaceFoo", /*expectedOffset*/ 3, verify.docCommentTemplateAt("propertybar", /*expectedOffset*/ 3, "/** */"); -verify.docCommentTemplateAt("methodbaz", /*expectedOffset*/ 12, +verify.docCommentTemplateAt("methodbaz", /*expectedOffset*/ 11, `/** * * @param message @@ -46,4 +46,4 @@ verify.docCommentTemplateAt("memberOpen", /*expectedOffset*/ 3, "/** */"); verify.docCommentTemplateAt("memberClosed", /*expectedOffset*/ 3, - "/** */"); \ No newline at end of file + "/** */"); diff --git a/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts b/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts index 6a15ce133e43d..6ade6753a2882 100644 --- a/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts +++ b/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts @@ -5,14 +5,14 @@ ////const myNamespace = {}; /////*1*/myNamespace.myExport = function(x) {}; -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param {any} a */ `); -verify.docCommentTemplateAt("1", 8, +verify.docCommentTemplateAt("1", 7, `/** * * @param {any} x diff --git a/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts b/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts index 567fa89495f25..4536f5f4f7e17 100644 --- a/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts +++ b/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts @@ -1,6 +1,6 @@ /// -const multiLineOffset = 12; +const multiLineOffset = 11; ////var x = { //// /*0*/ diff --git a/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts b/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts index 9031898d52ae0..c2a397482348a 100644 --- a/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts +++ b/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts @@ -7,7 +7,7 @@ ////C.prototype.method = /*next*/ function (p) {} for (const marker of test.markerNames()) { - verify.docCommentTemplateAt(marker, 8, + verify.docCommentTemplateAt(marker, 7, `/** * * @param {any} p diff --git a/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts b/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts index 09efa26036f5d..7276ce30cb4fd 100644 --- a/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts +++ b/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts @@ -28,19 +28,19 @@ verify.docCommentTemplateAt("0", 3, "/** */"); -verify.docCommentTemplateAt("1", 8, +verify.docCommentTemplateAt("1", 7, `/** * * @returns */`); -verify.docCommentTemplateAt("2", 8, +verify.docCommentTemplateAt("2", 7, `/** * * @returns */`); -verify.docCommentTemplateAt("3", 8, +verify.docCommentTemplateAt("3", 7, `/** * * @returns @@ -49,7 +49,7 @@ verify.docCommentTemplateAt("3", 8, verify.docCommentTemplateAt("4", 3, "/** */"); -verify.docCommentTemplateAt("5", 12, +verify.docCommentTemplateAt("5", 11, `/** * * @returns diff --git a/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts b/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts index 18767a422805b..ab545182029d1 100644 --- a/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts +++ b/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts @@ -5,7 +5,7 @@ //// return 1; ////} -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param x @@ -13,7 +13,7 @@ verify.docCommentTemplateAt("0", 8, * @returns */`, { generateReturnInDocTemplate: true }); -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param x diff --git a/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts b/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts index 974ce1641ab3b..9c6633dbabbfc 100644 --- a/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts +++ b/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts @@ -33,7 +33,7 @@ for (const varName of ["a", "b", "c", "d"]) { "/** */"); } -verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("e", /*newTextOffset*/ 7, `/** * * @param x @@ -42,10 +42,10 @@ verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, * @returns */`); -verify.docCommentTemplateAt("f", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("f", /*newTextOffset*/ 7, `/** * * @param a * @param b * @param c - */`); \ No newline at end of file + */`); diff --git a/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts b/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts index a998760fc745e..2af54e350b0ec 100644 --- a/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts +++ b/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts @@ -29,14 +29,14 @@ //// } ////})) -verify.docCommentTemplateAt("a", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("a", /*newTextOffset*/ 7, `/** * * @param x * @returns */`); -verify.docCommentTemplateAt("b", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("b", /*newTextOffset*/ 7, `/** * * @param x @@ -45,7 +45,7 @@ verify.docCommentTemplateAt("b", /*newTextOffset*/ 8, * @returns */`); -verify.docCommentTemplateAt("c", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("c", /*newTextOffset*/ 7, `/** * * @param x @@ -55,7 +55,7 @@ verify.docCommentTemplateAt("c", /*newTextOffset*/ 8, verify.docCommentTemplateAt("d", /*newTextOffset*/ 3, "/** */"); -verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("e", /*newTextOffset*/ 7, `/** * * @param param0 @@ -65,8 +65,8 @@ verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, verify.docCommentTemplateAt("f", /*newTextOffset*/ 3, "/** */"); -verify.docCommentTemplateAt("g", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("g", /*newTextOffset*/ 7, `/** * * @param x - */`); \ No newline at end of file + */`); diff --git a/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts b/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts index e5d20a49df03e..88371c8a52ee8 100644 --- a/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts +++ b/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts @@ -6,7 +6,7 @@ /////** Doc/*1*/ */ ////function g(p) { return p; } -verify.docCommentTemplateAt("", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("", /*newTextOffset*/ 7, `/** * * @param p diff --git a/tests/cases/fourslash/jsdocPropTagCompletion.ts b/tests/cases/fourslash/jsdocPropTagCompletion.ts new file mode 100644 index 0000000000000..6501fbedd71bd --- /dev/null +++ b/tests/cases/fourslash/jsdocPropTagCompletion.ts @@ -0,0 +1,11 @@ +/// + +/////** +//// * @typedef Foo +//// * @pr/**/ +//// */ + +verify.completions({ + marker: "", + includes: ["prop"], +});