mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge branch 'main' into fix44572
This commit is contained in:
Generated
+178
-366
@@ -314,9 +314,9 @@
|
||||
}
|
||||
},
|
||||
"@octokit/graphql": {
|
||||
"version": "4.6.4",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.4.tgz",
|
||||
"integrity": "sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==",
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.7.0.tgz",
|
||||
"integrity": "sha512-diY0qMPyQjfu4rDu3kDhJ9qIZadIm4IISO3RJSv9ajYUWJUCO0AykbgzLcg1xclxtXgzY583u3gAv66M6zz5SA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/request": "^5.6.0",
|
||||
@@ -367,14 +367,6 @@
|
||||
"is-plain-object": "^5.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@octokit/request-error": {
|
||||
@@ -448,9 +440,9 @@
|
||||
}
|
||||
},
|
||||
"@types/glob-stream": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.0.tgz",
|
||||
"integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==",
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.1.tgz",
|
||||
"integrity": "sha512-AGOUTsTdbPkRS0qDeyeS+6KypmfVpbT5j23SN8UPG63qjKXNKjXn6V9wZUr8Fin0m9l8oGYaPK8b2WUMF8xI1A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/glob": "*",
|
||||
@@ -458,14 +450,115 @@
|
||||
}
|
||||
},
|
||||
"@types/gulp": {
|
||||
"version": "4.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.6.tgz",
|
||||
"integrity": "sha512-0E8/iV/7FKWyQWSmi7jnUvgXXgaw+pfAzEB06Xu+l0iXVJppLbpOye5z7E2klw5akXd+8kPtYuk65YBcZPM4ow==",
|
||||
"version": "4.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.9.tgz",
|
||||
"integrity": "sha512-zzT+wfQ8uwoXjDhRK9Zkmmk09/fbLLmN/yDHFizJiEKIve85qutOnXcP/TM2sKPBTU+Jc16vfPbOMkORMUBN7Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/undertaker": "*",
|
||||
"@types/vinyl-fs": "*",
|
||||
"chokidar": "^2.1.2"
|
||||
"chokidar": "^3.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"anymatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
|
||||
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"normalize-path": "^3.0.0",
|
||||
"picomatch": "^2.0.4"
|
||||
}
|
||||
},
|
||||
"binary-extensions": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
||||
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
||||
"dev": true
|
||||
},
|
||||
"braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fill-range": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
|
||||
"integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"anymatch": "~3.1.2",
|
||||
"braces": "~3.0.2",
|
||||
"fsevents": "~2.3.2",
|
||||
"glob-parent": "~5.1.2",
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.6.0"
|
||||
}
|
||||
},
|
||||
"fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"is-binary-path": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"binary-extensions": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"is-number": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true
|
||||
},
|
||||
"readdirp": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"picomatch": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-number": "^7.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/gulp-concat": {
|
||||
@@ -583,9 +676,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "16.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz",
|
||||
"integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==",
|
||||
"version": "16.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.5.tgz",
|
||||
"integrity": "sha512-E7SpxDXoHEpmZ9C1gSqwadhE6zPRtf3g0gJy9Y51DsImnR5TcDs3QEiV/3Q7zOM8LWaZp5Gph71NK6ElVMG1IQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node-fetch": {
|
||||
@@ -631,13 +724,14 @@
|
||||
}
|
||||
},
|
||||
"@types/undertaker": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.3.tgz",
|
||||
"integrity": "sha512-OhvIYx6pUJBxYZf5fM/BVMNXZQMy095kplml+4cWrlNqM1t6XtSIQCuVySGmICZCnzi69Epdljyplm86BlTouQ==",
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.7.tgz",
|
||||
"integrity": "sha512-xuY7nBwo1zSRoY2aitp/HArHfTulFAKql2Fr4b4mWbBBP+F50n7Jm6nwISTTMaDk2xvl92O10TTejVF0Q9mInw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/undertaker-registry": "*"
|
||||
"@types/undertaker-registry": "*",
|
||||
"async-done": "~1.3.2"
|
||||
}
|
||||
},
|
||||
"@types/undertaker-registry": {
|
||||
@@ -647,9 +741,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/vinyl": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.4.tgz",
|
||||
"integrity": "sha512-2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ==",
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.5.tgz",
|
||||
"integrity": "sha512-1m6uReH8R/RuLVQGvTT/4LlWq67jZEUxp+FBHt0hYv2BT7TUwFbKI0wa7JZVEU/XtlcnX1QcTuZ36es4rGj7jg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/expect": "^1.20.4",
|
||||
@@ -657,9 +751,9 @@
|
||||
}
|
||||
},
|
||||
"@types/vinyl-fs": {
|
||||
"version": "2.4.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz",
|
||||
"integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==",
|
||||
"version": "2.4.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.12.tgz",
|
||||
"integrity": "sha512-LgBpYIWuuGsihnlF+OOWWz4ovwCYlT03gd3DuLwex50cYZLmX3yrW+sFF9ndtmh7zcZpS6Ri47PrIu+fV+sbXw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/glob-stream": "*",
|
||||
@@ -1292,14 +1386,13 @@
|
||||
"dev": true
|
||||
},
|
||||
"azure-devops-node-api": {
|
||||
"version": "10.1.1",
|
||||
"resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-10.1.1.tgz",
|
||||
"integrity": "sha512-P4Hyrh/+Nzc2KXQk73z72/GsenSWIH5o8uiyELqykJYs9TWTVCxVwghoR7lPeiY6QVoXkq2S2KtvAgi5fyjl9w==",
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz",
|
||||
"integrity": "sha512-YMdjAw9l5p/6leiyIloxj3k7VIvYThKjvqgiQn88r3nhT93ENwsoDS3A83CyJ4uTWzCZ5f5jCi6c27rTU5Pz+A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tunnel": "0.0.6",
|
||||
"typed-rest-client": "^1.7.3",
|
||||
"underscore": "1.8.3"
|
||||
"typed-rest-client": "^1.8.4"
|
||||
}
|
||||
},
|
||||
"bach": {
|
||||
@@ -2164,27 +2257,6 @@
|
||||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"crypto-browserify": {
|
||||
"version": "3.12.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
|
||||
@@ -2867,9 +2939,9 @@
|
||||
}
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
|
||||
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^4.0.1"
|
||||
@@ -3207,21 +3279,6 @@
|
||||
"safe-buffer": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
|
||||
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^6.0.0",
|
||||
"get-stream": "^4.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"expand-brackets": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
|
||||
@@ -3435,9 +3492,9 @@
|
||||
}
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
|
||||
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^4.0.1"
|
||||
@@ -3764,27 +3821,6 @@
|
||||
"has-symbols": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"get-stream": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
||||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pump": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"get-value": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
|
||||
@@ -4313,9 +4349,9 @@
|
||||
}
|
||||
},
|
||||
"hosted-git-info": {
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
|
||||
"integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
|
||||
"version": "2.8.9",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
|
||||
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
|
||||
"dev": true
|
||||
},
|
||||
"htmlescape": {
|
||||
@@ -4381,9 +4417,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
||||
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
||||
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
|
||||
"dev": true
|
||||
},
|
||||
"inline-source-map": {
|
||||
@@ -4719,12 +4755,6 @@
|
||||
"is-unc-path": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"is-stream": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
|
||||
"dev": true
|
||||
},
|
||||
"is-string": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
|
||||
@@ -5163,9 +5193,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.20",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
||||
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.memoize": {
|
||||
@@ -5211,15 +5241,6 @@
|
||||
"kind-of": "^6.0.2"
|
||||
}
|
||||
},
|
||||
"map-age-cleaner": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
|
||||
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-defer": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"map-cache": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
||||
@@ -5290,17 +5311,6 @@
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"mem": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
|
||||
"integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"map-age-cleaner": "^0.1.1",
|
||||
"mimic-fn": "^2.0.0",
|
||||
"p-is-promise": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"memoizee": {
|
||||
"version": "0.4.15",
|
||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
|
||||
@@ -5385,12 +5395,6 @@
|
||||
"mime-db": "1.44.0"
|
||||
}
|
||||
},
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"dev": true
|
||||
},
|
||||
"minimalistic-assert": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||
@@ -5461,9 +5465,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"mocha": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.0.tgz",
|
||||
"integrity": "sha512-Kjg/XxYOFFUi0h/FwMOeb6RoroiZ+P1yOfya6NK7h3dNhahrJx1r2XIT3ge4ZQvJM86mdjNA+W5phqRQh7DwCg==",
|
||||
"version": "9.1.1",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz",
|
||||
"integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@ungap/promise-all-settled": "1.1.2",
|
||||
@@ -5914,16 +5918,10 @@
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
|
||||
"dev": true
|
||||
},
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
|
||||
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
||||
"dev": true
|
||||
},
|
||||
"nopt": {
|
||||
@@ -5954,6 +5952,14 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-parse": "^1.0.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"path-parse": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
@@ -5979,15 +5985,6 @@
|
||||
"once": "^1.3.2"
|
||||
}
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||
@@ -6164,24 +6161,6 @@
|
||||
"lcid": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"p-defer": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
|
||||
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
|
||||
"dev": true
|
||||
},
|
||||
"p-finally": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
|
||||
"dev": true
|
||||
},
|
||||
"p-is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
|
||||
"integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
|
||||
"dev": true
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
||||
@@ -6314,16 +6293,10 @@
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"dev": true
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
|
||||
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"path-platform": {
|
||||
@@ -6611,10 +6584,13 @@
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.9.4",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz",
|
||||
"integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==",
|
||||
"dev": true
|
||||
"version": "6.10.1",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
|
||||
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"side-channel": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"querystring": {
|
||||
"version": "0.2.0",
|
||||
@@ -6778,143 +6754,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove-internal": {
|
||||
"version": "2.9.3",
|
||||
"resolved": "https://registry.npmjs.org/remove-internal/-/remove-internal-2.9.3.tgz",
|
||||
"integrity": "sha512-mUMTsHx6SAFWUXYqkOsR1BlVRQJW/oQdmFFDyVVuPLri6MLpeqtwt15TyYG55GcyysMVpul8nYGxIRyGjuEJxA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mkdirp": "^0.5.1",
|
||||
"typescript": "^2.9.1",
|
||||
"yargs": "^11.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
||||
"dev": true
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
|
||||
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
|
||||
"dev": true
|
||||
},
|
||||
"cliui": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "^2.1.1",
|
||||
"strip-ansi": "^4.0.0",
|
||||
"wrap-ansi": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"invert-kv": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
|
||||
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
||||
"dev": true
|
||||
},
|
||||
"lcid": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
||||
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"invert-kv": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5"
|
||||
}
|
||||
},
|
||||
"os-locale": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
|
||||
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"execa": "^1.0.0",
|
||||
"lcid": "^2.0.0",
|
||||
"mem": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"string-width": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
||||
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"strip-ansi": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "2.9.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
|
||||
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
|
||||
"dev": true
|
||||
},
|
||||
"which-module": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "11.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz",
|
||||
"integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^4.0.0",
|
||||
"decamelize": "^1.1.1",
|
||||
"find-up": "^2.1.0",
|
||||
"get-caller-file": "^1.0.1",
|
||||
"os-locale": "^3.1.0",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^1.0.1",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^2.0.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^3.2.1",
|
||||
"yargs-parser": "^9.0.2"
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "9.0.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
|
||||
"integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^4.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove-trailing-separator": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
|
||||
@@ -7144,21 +6983,6 @@
|
||||
"fast-safe-stringify": "^2.0.7"
|
||||
}
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
||||
"dev": true
|
||||
},
|
||||
"shell-quote": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
|
||||
@@ -7184,12 +7008,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
|
||||
"dev": true
|
||||
},
|
||||
"simple-concat": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||
@@ -7730,12 +7548,6 @@
|
||||
"integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-eof": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
||||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-json-comments": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
||||
@@ -8012,14 +7824,14 @@
|
||||
"dev": true
|
||||
},
|
||||
"typed-rest-client": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.7.3.tgz",
|
||||
"integrity": "sha512-CwTpx/TkRHGZoHkJhBcp4X8K3/WtlzSHVQR0OIFnt10j4tgy4ypgq/SrrgVpA1s6tAL49Q6J3R5C0Cgfh2ddqA==",
|
||||
"version": "1.8.5",
|
||||
"resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.5.tgz",
|
||||
"integrity": "sha512-952/Aegu3lTqUAI1anbDLbewojnF/gh8at9iy1CIrfS1h/+MtNjB1Y9z6ZF5n2kZd+97em56lZ9uu7Zz3y/pwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"qs": "^6.9.1",
|
||||
"tunnel": "0.0.6",
|
||||
"underscore": "1.8.3"
|
||||
"underscore": "^1.12.1"
|
||||
}
|
||||
},
|
||||
"typedarray": {
|
||||
@@ -8087,9 +7899,9 @@
|
||||
}
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
|
||||
"version": "1.13.1",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
|
||||
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==",
|
||||
"dev": true
|
||||
},
|
||||
"undertaker": {
|
||||
@@ -8688,9 +8500,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"y18n": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
|
||||
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
|
||||
"integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
|
||||
"dev": true
|
||||
},
|
||||
"yallist": {
|
||||
|
||||
+3
-4
@@ -34,7 +34,7 @@
|
||||
"@types/chai": "latest",
|
||||
"@types/convert-source-map": "latest",
|
||||
"@types/glob": "latest",
|
||||
"@types/gulp": "^4.0.5",
|
||||
"@types/gulp": "^4.0.9",
|
||||
"@types/gulp-concat": "latest",
|
||||
"@types/gulp-newer": "latest",
|
||||
"@types/gulp-rename": "0.0.33",
|
||||
@@ -57,7 +57,7 @@
|
||||
"@typescript-eslint/experimental-utils": "^4.28.0",
|
||||
"@typescript-eslint/parser": "^4.28.0",
|
||||
"async": "latest",
|
||||
"azure-devops-node-api": "^10.1.0",
|
||||
"azure-devops-node-api": "^11.0.1",
|
||||
"browser-resolve": "^1.11.2",
|
||||
"browserify": "latest",
|
||||
"chai": "latest",
|
||||
@@ -86,12 +86,11 @@
|
||||
"mocha": "latest",
|
||||
"mocha-fivemat-progress-reporter": "latest",
|
||||
"ms": "latest",
|
||||
"node-fetch": "^2.6.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"plugin-error": "latest",
|
||||
"pretty-hrtime": "^1.0.3",
|
||||
"prex": "^0.4.3",
|
||||
"q": "latest",
|
||||
"remove-internal": "^2.9.2",
|
||||
"source-map-support": "latest",
|
||||
"through2": "latest",
|
||||
"typescript": "^4.2.3",
|
||||
|
||||
+32
-15
@@ -8402,12 +8402,12 @@ namespace ts {
|
||||
}
|
||||
|
||||
function isNullOrUndefined(node: Expression) {
|
||||
const expr = skipParentheses(node);
|
||||
const expr = skipParentheses(node, /*excludeJSDocTypeAssertions*/ true);
|
||||
return expr.kind === SyntaxKind.NullKeyword || expr.kind === SyntaxKind.Identifier && getResolvedSymbol(expr as Identifier) === undefinedSymbol;
|
||||
}
|
||||
|
||||
function isEmptyArrayLiteral(node: Expression) {
|
||||
const expr = skipParentheses(node);
|
||||
const expr = skipParentheses(node, /*excludeJSDocTypeAssertions*/ true);
|
||||
return expr.kind === SyntaxKind.ArrayLiteralExpression && (expr as ArrayLiteralExpression).elements.length === 0;
|
||||
}
|
||||
|
||||
@@ -11800,7 +11800,7 @@ namespace ts {
|
||||
// Flags we want to propagate to the result if they exist in all source symbols
|
||||
let optionalFlag = isUnion ? SymbolFlags.None : SymbolFlags.Optional;
|
||||
let syntheticFlag = CheckFlags.SyntheticMethod;
|
||||
let checkFlags = 0;
|
||||
let checkFlags = isUnion ? 0 : CheckFlags.Readonly;
|
||||
let mergedInstantiations = false;
|
||||
for (const current of containingType.types) {
|
||||
const type = getApparentType(current);
|
||||
@@ -11839,8 +11839,13 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
}
|
||||
checkFlags |= (isReadonlySymbol(prop) ? CheckFlags.Readonly : 0) |
|
||||
(!(modifiers & ModifierFlags.NonPublicAccessibilityModifier) ? CheckFlags.ContainsPublic : 0) |
|
||||
if (isUnion && isReadonlySymbol(prop)) {
|
||||
checkFlags |= CheckFlags.Readonly;
|
||||
}
|
||||
else if (!isUnion && !isReadonlySymbol(prop)) {
|
||||
checkFlags &= ~CheckFlags.Readonly;
|
||||
}
|
||||
checkFlags |= (!(modifiers & ModifierFlags.NonPublicAccessibilityModifier) ? CheckFlags.ContainsPublic : 0) |
|
||||
(modifiers & ModifierFlags.Protected ? CheckFlags.ContainsProtected : 0) |
|
||||
(modifiers & ModifierFlags.Private ? CheckFlags.ContainsPrivate : 0) |
|
||||
(modifiers & ModifierFlags.Static ? CheckFlags.ContainsStatic : 0);
|
||||
@@ -22966,7 +22971,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function isFalseExpression(expr: Expression): boolean {
|
||||
const node = skipParentheses(expr);
|
||||
const node = skipParentheses(expr, /*excludeJSDocTypeAssertions*/ true);
|
||||
return node.kind === SyntaxKind.FalseKeyword || node.kind === SyntaxKind.BinaryExpression && (
|
||||
(node as BinaryExpression).operatorToken.kind === SyntaxKind.AmpersandAmpersandToken && (isFalseExpression((node as BinaryExpression).left) || isFalseExpression((node as BinaryExpression).right)) ||
|
||||
(node as BinaryExpression).operatorToken.kind === SyntaxKind.BarBarToken && isFalseExpression((node as BinaryExpression).left) && isFalseExpression((node as BinaryExpression).right));
|
||||
@@ -23288,7 +23293,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function narrowTypeByAssertion(type: Type, expr: Expression): Type {
|
||||
const node = skipParentheses(expr);
|
||||
const node = skipParentheses(expr, /*excludeJSDocTypeAssertions*/ true);
|
||||
if (node.kind === SyntaxKind.FalseKeyword) {
|
||||
return unreachableNeverType;
|
||||
}
|
||||
@@ -25872,7 +25877,9 @@ namespace ts {
|
||||
case SyntaxKind.ParenthesizedExpression: {
|
||||
// Like in `checkParenthesizedExpression`, an `/** @type {xyz} */` comment before a parenthesized expression acts as a type cast.
|
||||
const tag = isInJSFile(parent) ? getJSDocTypeTag(parent) : undefined;
|
||||
return tag ? getTypeFromTypeNode(tag.typeExpression.type) : getContextualType(parent as ParenthesizedExpression, contextFlags);
|
||||
return !tag ? getContextualType(parent as ParenthesizedExpression, contextFlags) :
|
||||
isJSDocTypeTag(tag) && isConstTypeReference(tag.typeExpression.type) ? tryFindWhenConstTypeReference(parent as ParenthesizedExpression) :
|
||||
getTypeFromTypeNode(tag.typeExpression.type);
|
||||
}
|
||||
case SyntaxKind.NonNullExpression:
|
||||
return getContextualType(parent as NonNullExpression, contextFlags);
|
||||
@@ -32855,8 +32862,10 @@ namespace ts {
|
||||
}
|
||||
|
||||
function isTypeAssertion(node: Expression) {
|
||||
node = skipParentheses(node);
|
||||
return node.kind === SyntaxKind.TypeAssertionExpression || node.kind === SyntaxKind.AsExpression;
|
||||
node = skipParentheses(node, /*excludeJSDocTypeAssertions*/ true);
|
||||
return node.kind === SyntaxKind.TypeAssertionExpression ||
|
||||
node.kind === SyntaxKind.AsExpression ||
|
||||
isJSDocTypeAssertion(node);
|
||||
}
|
||||
|
||||
function checkDeclarationInitializer(declaration: HasExpressionInitializer, contextualType?: Type | undefined) {
|
||||
@@ -32931,6 +32940,7 @@ namespace ts {
|
||||
function isConstContext(node: Expression): boolean {
|
||||
const parent = node.parent;
|
||||
return isAssertionExpression(parent) && isConstTypeReference(parent.type) ||
|
||||
isJSDocTypeAssertion(parent) && isConstTypeReference(getJSDocTypeAssertionType(parent)) ||
|
||||
(isParenthesizedExpression(parent) || isArrayLiteralExpression(parent) || isSpreadElement(parent)) && isConstContext(parent) ||
|
||||
(isPropertyAssignment(parent) || isShorthandPropertyAssignment(parent) || isTemplateSpan(parent)) && isConstContext(parent.parent);
|
||||
}
|
||||
@@ -33143,7 +33153,14 @@ namespace ts {
|
||||
}
|
||||
|
||||
function getQuickTypeOfExpression(node: Expression) {
|
||||
const expr = skipParentheses(node);
|
||||
let expr = skipParentheses(node, /*excludeJSDocTypeAssertions*/ true);
|
||||
if (isJSDocTypeAssertion(expr)) {
|
||||
const type = getJSDocTypeAssertionType(expr);
|
||||
if (!isConstTypeReference(type)) {
|
||||
return getTypeFromTypeNode(type);
|
||||
}
|
||||
}
|
||||
expr = skipParentheses(node);
|
||||
// Optimize for the common case of a call to a function with a single non-generic call
|
||||
// signature where we can just fetch the return type without checking the arguments.
|
||||
if (isCallExpression(expr) && expr.expression.kind !== SyntaxKind.SuperKeyword && !isRequireCall(expr, /*checkArgumentIsStringLiteralLike*/ true) && !isSymbolOrSymbolForCall(expr)) {
|
||||
@@ -33230,9 +33247,9 @@ namespace ts {
|
||||
}
|
||||
|
||||
function checkParenthesizedExpression(node: ParenthesizedExpression, checkMode?: CheckMode): Type {
|
||||
const tag = isInJSFile(node) ? getJSDocTypeTag(node) : undefined;
|
||||
if (tag) {
|
||||
return checkAssertionWorker(tag.typeExpression.type, tag.typeExpression.type, node.expression, checkMode);
|
||||
if (isJSDocTypeAssertion(node)) {
|
||||
const type = getJSDocTypeAssertionType(node);
|
||||
return checkAssertionWorker(type, type, node.expression, checkMode);
|
||||
}
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
@@ -36182,7 +36199,7 @@ namespace ts {
|
||||
if (getFalsyFlags(type)) return;
|
||||
|
||||
const location = isBinaryExpression(condExpr) ? condExpr.right : condExpr;
|
||||
if (isPropertyAccessExpression(location) && isAssertionExpression(skipParentheses(location.expression))) {
|
||||
if (isPropertyAccessExpression(location) && isTypeAssertion(location.expression)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -416,9 +416,24 @@ namespace ts {
|
||||
node.kind === SyntaxKind.CommaListExpression;
|
||||
}
|
||||
|
||||
export function isJSDocTypeAssertion(node: Node): node is JSDocTypeAssertion {
|
||||
return isParenthesizedExpression(node)
|
||||
&& isInJSFile(node)
|
||||
&& !!getJSDocTypeTag(node);
|
||||
}
|
||||
|
||||
export function getJSDocTypeAssertionType(node: JSDocTypeAssertion) {
|
||||
const type = getJSDocType(node);
|
||||
Debug.assertIsDefined(type);
|
||||
return type;
|
||||
}
|
||||
|
||||
export function isOuterExpression(node: Node, kinds = OuterExpressionKinds.All): node is OuterExpression {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.ParenthesizedExpression:
|
||||
if (kinds & OuterExpressionKinds.ExcludeJSDocTypeAssertion && isJSDocTypeAssertion(node)) {
|
||||
return false;
|
||||
}
|
||||
return (kinds & OuterExpressionKinds.Parentheses) !== 0;
|
||||
case SyntaxKind.TypeAssertionExpression:
|
||||
case SyntaxKind.AsExpression:
|
||||
|
||||
@@ -280,6 +280,11 @@ namespace ts {
|
||||
}
|
||||
const nodeModulesAtTypes = combinePaths("node_modules", "@types");
|
||||
|
||||
function arePathsEqual(path1: string, path2: string, host: ModuleResolutionHost): boolean {
|
||||
const useCaseSensitiveFileNames = typeof host.useCaseSensitiveFileNames === "function" ? host.useCaseSensitiveFileNames() : host.useCaseSensitiveFileNames;
|
||||
return comparePaths(path1, path2, !useCaseSensitiveFileNames) === Comparison.EqualTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string | undefined} containingFile - file that contains type reference directive, can be undefined if containing file is unknown.
|
||||
* This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups
|
||||
@@ -343,7 +348,7 @@ namespace ts {
|
||||
resolvedTypeReferenceDirective = {
|
||||
primary,
|
||||
resolvedFileName,
|
||||
originalPath: fileName === resolvedFileName ? undefined : fileName,
|
||||
originalPath: arePathsEqual(fileName, resolvedFileName, host) ? undefined : fileName,
|
||||
packageId,
|
||||
isExternalLibraryImport: pathContainsNodeModules(fileName),
|
||||
};
|
||||
@@ -1078,9 +1083,8 @@ namespace ts {
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export function tryResolveJSModule(moduleName: string, initialDir: string, host: ModuleResolutionHost): string | undefined {
|
||||
const { resolvedModule } = tryResolveJSModuleWorker(moduleName, initialDir, host);
|
||||
return resolvedModule && resolvedModule.resolvedFileName;
|
||||
export function tryResolveJSModule(moduleName: string, initialDir: string, host: ModuleResolutionHost) {
|
||||
return tryResolveJSModuleWorker(moduleName, initialDir, host).resolvedModule;
|
||||
}
|
||||
|
||||
const jsOnlyExtensions = [Extensions.JavaScript];
|
||||
@@ -1123,7 +1127,7 @@ namespace ts {
|
||||
let resolvedValue = resolved.value;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
const path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
const originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
const originalPath = arePathsEqual(path, resolvedValue.path, host) ? undefined : resolvedValue.path;
|
||||
resolvedValue = { ...resolvedValue, path, originalPath };
|
||||
}
|
||||
// For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
|
||||
|
||||
+20
-22
@@ -1163,7 +1163,7 @@ namespace ts {
|
||||
|
||||
// The originalFileName could not be actual source file name if file found was d.ts from referecned project
|
||||
// So in this case try to look up if this is output from referenced project, if it is use the redirected project in that case
|
||||
const resultFromDts = getRedirectReferenceForResolutionFromSourceOfProject(file.originalFileName, file.path);
|
||||
const resultFromDts = getRedirectReferenceForResolutionFromSourceOfProject(file.path);
|
||||
if (resultFromDts) return resultFromDts;
|
||||
|
||||
// If preserveSymlinks is true, module resolution wont jump the symlink
|
||||
@@ -1171,13 +1171,12 @@ namespace ts {
|
||||
// Note:: Currently we try the real path only if the
|
||||
// file is from node_modules to avoid having to run real path on all file paths
|
||||
if (!host.realpath || !options.preserveSymlinks || !stringContains(file.originalFileName, nodeModulesPathPart)) return undefined;
|
||||
const realDeclarationFileName = host.realpath(file.originalFileName);
|
||||
const realDeclarationPath = toPath(realDeclarationFileName);
|
||||
return realDeclarationPath === file.path ? undefined : getRedirectReferenceForResolutionFromSourceOfProject(realDeclarationFileName, realDeclarationPath);
|
||||
const realDeclarationPath = toPath(host.realpath(file.originalFileName));
|
||||
return realDeclarationPath === file.path ? undefined : getRedirectReferenceForResolutionFromSourceOfProject(realDeclarationPath);
|
||||
}
|
||||
|
||||
function getRedirectReferenceForResolutionFromSourceOfProject(fileName: string, filePath: Path) {
|
||||
const source = getSourceOfProjectReferenceRedirect(fileName);
|
||||
function getRedirectReferenceForResolutionFromSourceOfProject(filePath: Path) {
|
||||
const source = getSourceOfProjectReferenceRedirect(filePath);
|
||||
if (isString(source)) return getResolvedProjectReferenceToRedirect(source);
|
||||
if (!source) return undefined;
|
||||
// Output of .d.ts file so return resolved ref that matches the out file name
|
||||
@@ -2472,7 +2471,7 @@ namespace ts {
|
||||
function processSourceFile(fileName: string, isDefaultLib: boolean, ignoreNoDefaultLib: boolean, packageId: PackageId | undefined, reason: FileIncludeReason): void {
|
||||
getSourceFileFromReferenceWorker(
|
||||
fileName,
|
||||
fileName => findSourceFile(fileName, toPath(fileName), isDefaultLib, ignoreNoDefaultLib, reason, packageId), // TODO: GH#18217
|
||||
fileName => findSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId), // TODO: GH#18217
|
||||
(diagnostic, ...args) => addFilePreprocessingFileExplainingDiagnostic(/*file*/ undefined, reason, diagnostic, args),
|
||||
reason
|
||||
);
|
||||
@@ -2514,20 +2513,21 @@ namespace ts {
|
||||
}
|
||||
|
||||
// Get source file from normalized fileName
|
||||
function findSourceFile(fileName: string, path: Path, isDefaultLib: boolean, ignoreNoDefaultLib: boolean, reason: FileIncludeReason, packageId: PackageId | undefined): SourceFile | undefined {
|
||||
function findSourceFile(fileName: string, isDefaultLib: boolean, ignoreNoDefaultLib: boolean, reason: FileIncludeReason, packageId: PackageId | undefined): SourceFile | undefined {
|
||||
tracing?.push(tracing.Phase.Program, "findSourceFile", {
|
||||
fileName,
|
||||
isDefaultLib: isDefaultLib || undefined,
|
||||
fileIncludeKind: (FileIncludeKind as any)[reason.kind],
|
||||
});
|
||||
const result = findSourceFileWorker(fileName, path, isDefaultLib, ignoreNoDefaultLib, reason, packageId);
|
||||
const result = findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId);
|
||||
tracing?.pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
function findSourceFileWorker(fileName: string, path: Path, isDefaultLib: boolean, ignoreNoDefaultLib: boolean, reason: FileIncludeReason, packageId: PackageId | undefined): SourceFile | undefined {
|
||||
function findSourceFileWorker(fileName: string, isDefaultLib: boolean, ignoreNoDefaultLib: boolean, reason: FileIncludeReason, packageId: PackageId | undefined): SourceFile | undefined {
|
||||
const path = toPath(fileName);
|
||||
if (useSourceOfProjectReferenceRedirect) {
|
||||
let source = getSourceOfProjectReferenceRedirect(fileName);
|
||||
let source = getSourceOfProjectReferenceRedirect(path);
|
||||
// If preserveSymlinks is true, module resolution wont jump the symlink
|
||||
// but the resolved real path may be the .d.ts from project reference
|
||||
// Note:: Currently we try the real path only if the
|
||||
@@ -2537,12 +2537,12 @@ namespace ts {
|
||||
options.preserveSymlinks &&
|
||||
isDeclarationFileName(fileName) &&
|
||||
stringContains(fileName, nodeModulesPathPart)) {
|
||||
const realPath = host.realpath(fileName);
|
||||
if (realPath !== fileName) source = getSourceOfProjectReferenceRedirect(realPath);
|
||||
const realPath = toPath(host.realpath(fileName));
|
||||
if (realPath !== path) source = getSourceOfProjectReferenceRedirect(realPath);
|
||||
}
|
||||
if (source) {
|
||||
const file = isString(source) ?
|
||||
findSourceFile(source, toPath(source), isDefaultLib, ignoreNoDefaultLib, reason, packageId) :
|
||||
findSourceFile(source, isDefaultLib, ignoreNoDefaultLib, reason, packageId) :
|
||||
undefined;
|
||||
if (file) addFileToFilesByName(file, path, /*redirectedPath*/ undefined);
|
||||
return file;
|
||||
@@ -2750,8 +2750,8 @@ namespace ts {
|
||||
return ts.forEachResolvedProjectReference(resolvedProjectReferences, cb);
|
||||
}
|
||||
|
||||
function getSourceOfProjectReferenceRedirect(file: string) {
|
||||
if (!isDeclarationFileName(file)) return undefined;
|
||||
function getSourceOfProjectReferenceRedirect(path: Path) {
|
||||
if (!isDeclarationFileName(path)) return undefined;
|
||||
if (mapFromToProjectReferenceRedirectSource === undefined) {
|
||||
mapFromToProjectReferenceRedirectSource = new Map();
|
||||
forEachResolvedProjectReference(resolvedRef => {
|
||||
@@ -2772,7 +2772,7 @@ namespace ts {
|
||||
}
|
||||
});
|
||||
}
|
||||
return mapFromToProjectReferenceRedirectSource.get(toPath(file));
|
||||
return mapFromToProjectReferenceRedirectSource.get(path);
|
||||
}
|
||||
|
||||
function isSourceOfProjectReferenceRedirect(fileName: string) {
|
||||
@@ -2954,10 +2954,8 @@ namespace ts {
|
||||
modulesWithElidedImports.set(file.path, true);
|
||||
}
|
||||
else if (shouldAddFile) {
|
||||
const path = toPath(resolvedFileName);
|
||||
findSourceFile(
|
||||
resolvedFileName,
|
||||
path,
|
||||
/*isDefaultLib*/ false,
|
||||
/*ignoreNoDefaultLib*/ false,
|
||||
{ kind: FileIncludeKind.Import, file: file.path, index, },
|
||||
@@ -3691,7 +3689,7 @@ namespace ts {
|
||||
useSourceOfProjectReferenceRedirect: boolean;
|
||||
toPath(fileName: string): Path;
|
||||
getResolvedProjectReferences(): readonly (ResolvedProjectReference | undefined)[] | undefined;
|
||||
getSourceOfProjectReferenceRedirect(fileName: string): SourceOfProjectReferenceRedirect | undefined;
|
||||
getSourceOfProjectReferenceRedirect(path: Path): SourceOfProjectReferenceRedirect | undefined;
|
||||
forEachResolvedProjectReference<T>(cb: (resolvedProjectReference: ResolvedProjectReference) => T | undefined): T | undefined;
|
||||
}
|
||||
|
||||
@@ -3778,9 +3776,9 @@ namespace ts {
|
||||
}
|
||||
|
||||
function fileExistsIfProjectReferenceDts(file: string) {
|
||||
const source = host.getSourceOfProjectReferenceRedirect(file);
|
||||
const source = host.getSourceOfProjectReferenceRedirect(host.toPath(file));
|
||||
return source !== undefined ?
|
||||
isString(source) ? originalFileExists.call(host.compilerHost, source) : true :
|
||||
isString(source) ? originalFileExists.call(host.compilerHost, source) as boolean : true :
|
||||
undefined;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1279,7 +1279,7 @@ namespace ts {
|
||||
|
||||
const platform: string = _os.platform();
|
||||
const useCaseSensitiveFileNames = isFileSystemCaseSensitive();
|
||||
const realpathSync = useCaseSensitiveFileNames ? (_fs.realpathSync.native ?? _fs.realpathSync) : _fs.realpathSync;
|
||||
const realpathSync = _fs.realpathSync.native ?? _fs.realpathSync;
|
||||
|
||||
const fsSupportsRecursiveFsWatch = isNode4OrLater && (process.platform === "win32" || process.platform === "darwin");
|
||||
const getCurrentDirectory = memoize(() => process.cwd());
|
||||
|
||||
@@ -2253,6 +2253,11 @@ namespace ts {
|
||||
readonly expression: Expression;
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export interface JSDocTypeAssertion extends ParenthesizedExpression {
|
||||
readonly _jsDocTypeAssertionBrand: never;
|
||||
}
|
||||
|
||||
export interface ArrayLiteralExpression extends PrimaryExpression {
|
||||
readonly kind: SyntaxKind.ArrayLiteralExpression;
|
||||
readonly elements: NodeArray<Expression>;
|
||||
@@ -6460,6 +6465,7 @@ namespace ts {
|
||||
realpath?(path: string): string;
|
||||
getCurrentDirectory?(): string;
|
||||
getDirectories?(path: string): string[];
|
||||
useCaseSensitiveFileNames?: boolean | (() => boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -6889,7 +6895,9 @@ namespace ts {
|
||||
PartiallyEmittedExpressions = 1 << 3,
|
||||
|
||||
Assertions = TypeAssertions | NonNullAssertions,
|
||||
All = Parentheses | Assertions | PartiallyEmittedExpressions
|
||||
All = Parentheses | Assertions | PartiallyEmittedExpressions,
|
||||
|
||||
ExcludeJSDocTypeAssertion = 1 << 4,
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
|
||||
@@ -2634,13 +2634,13 @@ namespace ts {
|
||||
let result: (JSDoc | JSDocTag)[] | undefined;
|
||||
// Pull parameter comments from declaring function as well
|
||||
if (isVariableLike(hostNode) && hasInitializer(hostNode) && hasJSDocNodes(hostNode.initializer!)) {
|
||||
result = append(result, last((hostNode.initializer as HasJSDoc).jsDoc!));
|
||||
result = addRange(result, filterOwnedJSDocTags(hostNode, last((hostNode.initializer as HasJSDoc).jsDoc!)));
|
||||
}
|
||||
|
||||
let node: Node | undefined = hostNode;
|
||||
while (node && node.parent) {
|
||||
if (hasJSDocNodes(node)) {
|
||||
result = append(result, last(node.jsDoc!));
|
||||
result = addRange(result, filterOwnedJSDocTags(hostNode, last(node.jsDoc!)));
|
||||
}
|
||||
|
||||
if (node.kind === SyntaxKind.Parameter) {
|
||||
@@ -2656,6 +2656,26 @@ namespace ts {
|
||||
return result || emptyArray;
|
||||
}
|
||||
|
||||
function filterOwnedJSDocTags(hostNode: Node, jsDoc: JSDoc | JSDocTag) {
|
||||
if (isJSDoc(jsDoc)) {
|
||||
const ownedTags = filter(jsDoc.tags, tag => ownsJSDocTag(hostNode, tag));
|
||||
return jsDoc.tags === ownedTags ? [jsDoc] : ownedTags;
|
||||
}
|
||||
return ownsJSDocTag(hostNode, jsDoc) ? [jsDoc] : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether a host node owns a jsDoc tag. A `@type` tag attached to a
|
||||
* a ParenthesizedExpression belongs only to the ParenthesizedExpression.
|
||||
*/
|
||||
function ownsJSDocTag(hostNode: Node, tag: JSDocTag) {
|
||||
return !isJSDocTypeTag(tag)
|
||||
|| !tag.parent
|
||||
|| !isJSDoc(tag.parent)
|
||||
|| !isParenthesizedExpression(tag.parent.parent)
|
||||
|| tag.parent.parent === hostNode;
|
||||
}
|
||||
|
||||
export function getNextJSDocCommentLocation(node: Node) {
|
||||
const parent = node.parent;
|
||||
if (parent.kind === SyntaxKind.PropertyAssignment ||
|
||||
@@ -2899,10 +2919,13 @@ namespace ts {
|
||||
return [child, node];
|
||||
}
|
||||
|
||||
export function skipParentheses(node: Expression): Expression;
|
||||
export function skipParentheses(node: Node): Node;
|
||||
export function skipParentheses(node: Node): Node {
|
||||
return skipOuterExpressions(node, OuterExpressionKinds.Parentheses);
|
||||
export function skipParentheses(node: Expression, excludeJSDocTypeAssertions?: boolean): Expression;
|
||||
export function skipParentheses(node: Node, excludeJSDocTypeAssertions?: boolean): Node;
|
||||
export function skipParentheses(node: Node, excludeJSDocTypeAssertions?: boolean): Node {
|
||||
const flags = excludeJSDocTypeAssertions ?
|
||||
OuterExpressionKinds.Parentheses | OuterExpressionKinds.ExcludeJSDocTypeAssertion :
|
||||
OuterExpressionKinds.Parentheses;
|
||||
return skipOuterExpressions(node, flags);
|
||||
}
|
||||
|
||||
// a node is delete target iff. it is PropertyAccessExpression/ElementAccessExpression with parentheses skipped
|
||||
@@ -6210,7 +6233,9 @@ namespace ts {
|
||||
}
|
||||
|
||||
export interface SymlinkedDirectory {
|
||||
/** Matches the casing returned by `realpath`. Used to compute the `realpath` of children. */
|
||||
real: string;
|
||||
/** toPath(real). Stored to avoid repeated recomputation. */
|
||||
realPath: Path;
|
||||
}
|
||||
|
||||
|
||||
@@ -138,6 +138,13 @@ namespace ts.server {
|
||||
this.processResponse(request, /*expectEmptyBody*/ true);
|
||||
}
|
||||
|
||||
/*@internal*/
|
||||
setCompilerOptionsForInferredProjects(options: protocol.CompilerOptions) {
|
||||
const args: protocol.SetCompilerOptionsForInferredProjectsArgs = { options };
|
||||
const request = this.processRequest(CommandNames.CompilerOptionsForInferredProjects, args);
|
||||
this.processResponse(request, /*expectEmptyBody*/ false);
|
||||
}
|
||||
|
||||
openFile(file: string, fileContent?: string, scriptKindName?: "TS" | "JS" | "TSX" | "JSX"): void {
|
||||
const args: protocol.OpenRequestArgs = { file, fileContent, scriptKindName };
|
||||
this.processRequest(CommandNames.Open, args);
|
||||
|
||||
@@ -3935,6 +3935,11 @@ namespace FourSlash {
|
||||
(this.languageService as ts.server.SessionClient).configurePlugin(pluginName, configuration);
|
||||
}
|
||||
|
||||
public setCompilerOptionsForInferredProjects(options: ts.server.protocol.CompilerOptions) {
|
||||
ts.Debug.assert(this.testType === FourSlashTestType.Server);
|
||||
(this.languageService as ts.server.SessionClient).setCompilerOptionsForInferredProjects(options);
|
||||
}
|
||||
|
||||
public toggleLineComment(newFileContent: string): void {
|
||||
const changes: ts.TextChange[] = [];
|
||||
for (const range of this.getRanges()) {
|
||||
@@ -4077,7 +4082,7 @@ namespace FourSlash {
|
||||
try {
|
||||
const test = new FourSlashInterface.Test(state);
|
||||
const goTo = new FourSlashInterface.GoTo(state);
|
||||
const plugins = new FourSlashInterface.Plugins(state);
|
||||
const config = new FourSlashInterface.Config(state);
|
||||
const verify = new FourSlashInterface.Verify(state);
|
||||
const edit = new FourSlashInterface.Edit(state);
|
||||
const debug = new FourSlashInterface.Debug(state);
|
||||
@@ -4085,7 +4090,7 @@ namespace FourSlash {
|
||||
const cancellation = new FourSlashInterface.Cancellation(state);
|
||||
// eslint-disable-next-line no-eval
|
||||
const f = eval(wrappedCode);
|
||||
f(test, goTo, plugins, verify, edit, debug, format, cancellation, FourSlashInterface.classification, FourSlashInterface.Completion, verifyOperationIsCancelled);
|
||||
f(test, goTo, config, verify, edit, debug, format, cancellation, FourSlashInterface.classification, FourSlashInterface.Completion, verifyOperationIsCancelled);
|
||||
}
|
||||
catch (err) {
|
||||
// ensure 'source-map-support' is triggered while we still have the handler attached by accessing `error.stack`.
|
||||
|
||||
@@ -48,13 +48,17 @@ namespace FourSlashInterface {
|
||||
}
|
||||
}
|
||||
|
||||
export class Plugins {
|
||||
export class Config {
|
||||
constructor(private state: FourSlash.TestState) {
|
||||
}
|
||||
|
||||
public configurePlugin(pluginName: string, configuration: any): void {
|
||||
this.state.configurePlugin(pluginName, configuration);
|
||||
}
|
||||
|
||||
public setCompilerOptionsForInferredProjects(options: ts.server.protocol.CompilerOptions): void {
|
||||
this.state.setCompilerOptionsForInferredProjects(options);
|
||||
}
|
||||
}
|
||||
|
||||
export class GoTo {
|
||||
|
||||
@@ -325,7 +325,8 @@ namespace Harness.LanguageService {
|
||||
readFile: fileName => {
|
||||
const scriptInfo = this.getScriptInfo(fileName);
|
||||
return scriptInfo && scriptInfo.content;
|
||||
}
|
||||
},
|
||||
useCaseSensitiveFileNames: this.useCaseSensitiveFileNames()
|
||||
};
|
||||
this.getModuleResolutionsForFile = (fileName) => {
|
||||
const scriptInfo = this.getScriptInfo(fileName)!;
|
||||
@@ -829,7 +830,7 @@ namespace Harness.LanguageService {
|
||||
|
||||
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any {
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
return setTimeout(callback, ms, args);
|
||||
return setTimeout(callback, ms, ...args);
|
||||
}
|
||||
|
||||
clearTimeout(timeoutId: any): void {
|
||||
|
||||
Vendored
+1
-1
@@ -1261,7 +1261,7 @@ interface Array<T> {
|
||||
* Sorts an array in place.
|
||||
* This method mutates the array and returns a reference to the same array.
|
||||
* @param compareFn Function used to determine the order of the elements. It is expected to return
|
||||
* a negative value if first argument is less than second argument, zero if they're equal and a positive
|
||||
* a negative value if the first argument is less than the second argument, zero if they're equal, and a positive
|
||||
* value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.
|
||||
* ```ts
|
||||
* [11,2,22,1].sort((a, b) => a - b)
|
||||
|
||||
@@ -7098,6 +7098,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[如果“{0}”包实际公开了此模块,请尝试添加包含 `declare module‘{1}';` 的新声明(.d.ts)文件]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7098,6 +7098,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[如果 '{0}' 套件的確公開了此模組,請嘗試新增包含 `declare module '{1}';` 的宣告 (.d.ts) 檔案。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7107,6 +7107,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Pokud balíček {0} skutečně zpřístupňuje tento modul, zkuste přidat nový soubor deklarace (.d.ts), který obsahuje declare module {1};]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7095,6 +7095,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Wenn das Paket "{0}" dieses Modul tatsächlich verfügbar macht, versuchen Sie, eine neue Deklarationsdatei (.d.ts) hinzuzufügen, die Declare-Modul "{1}" enthält.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7110,6 +7110,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Si el paquete '{0}' realmente expone este módulo, intente agregar un nuevo archivo de declaración (.d.ts) que contenga 'declarar módulo '{1}';`]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7110,6 +7110,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Si le package' {0} 'expose effectivement ce module, essayez d’ajouter un nouveau fichier de déclaration (. d. TS) contenant’declare module' {1} '; ']]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7098,6 +7098,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Se il pacchetto ' {0}' espone effettivamente il modulo, provare ad aggiungere un nuovo file di dichiarazione (.d.ts) contenente ' Dichiara modulo' {1}';']]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7098,6 +7098,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' パッケージが実際にこのモジュールを公開する場合は、'declare module '{1}';' を含む新しい宣言 (d.ts) ファイルを追加してみてください。]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7098,6 +7098,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA['{0}' 패키지가 실제로 이 모듈을 노출하는 경우 'declare module {1}';'이(가) 포함된 새 선언(.d.ts) 파일을 추가해 보세요.]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7088,6 +7088,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Jeśli pakiet „{0}” rzeczywiście uwidacznia ten moduł, spróbuj dodać nowy plik deklaracji (.d.ts) zawierający „declare module”{1}';`]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7091,6 +7091,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Se o pacote '{0}' realmente expõe este módulo, tente adicionar um novo arquivo de declaração (.d.ts) contendo o módulo `declare '{1}';`]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7097,6 +7097,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[Если пакет "{0}" действительно предоставляет этот модуль, попробуйте добавить новый файл объявления (. d. TS), содержащий "declare module" "{1}";`]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
@@ -7091,6 +7091,15 @@
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`]]></Val>
|
||||
<Tgt Cat="Text" Stat="Loc" Orig="New">
|
||||
<Val><![CDATA[‘{0}’ paketi bu modülü fiili olarak kullanıma sunuyorsa `'{1}' modülünü bildir;` ifadesini içeren yeni bir bildirim (.d.ts) dosyası eklemeyi deneyin]]></Val>
|
||||
</Tgt>
|
||||
</Str>
|
||||
<Disp Icon="Str" />
|
||||
</Item>
|
||||
<Item ItemId=";Ignore_this_error_message_90019" ItemType="0" PsrId="306" Leaf="true">
|
||||
<Str Cat="Text">
|
||||
<Val><![CDATA[Ignore this error message]]></Val>
|
||||
|
||||
+17
-7
@@ -1706,6 +1706,7 @@ namespace ts.server {
|
||||
readFile: this.projectService.host.readFile.bind(this.projectService.host),
|
||||
getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host),
|
||||
trace: this.projectService.host.trace?.bind(this.projectService.host),
|
||||
useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(),
|
||||
};
|
||||
}
|
||||
return this.projectService.host;
|
||||
@@ -1919,16 +1920,25 @@ namespace ts.server {
|
||||
}
|
||||
|
||||
if (dependencyNames) {
|
||||
const resolutions = map(arrayFrom(dependencyNames.keys()), name => resolveTypeReferenceDirective(
|
||||
name,
|
||||
rootFileName,
|
||||
compilerOptions,
|
||||
moduleResolutionHost));
|
||||
const resolutions = mapDefined(arrayFrom(dependencyNames.keys()), name => {
|
||||
const types = resolveTypeReferenceDirective(
|
||||
name,
|
||||
rootFileName,
|
||||
compilerOptions,
|
||||
moduleResolutionHost);
|
||||
|
||||
if (types.resolvedTypeReferenceDirective) {
|
||||
return types.resolvedTypeReferenceDirective;
|
||||
}
|
||||
if (compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) {
|
||||
return tryResolveJSModule(name, hostProject.currentDirectory, moduleResolutionHost);
|
||||
}
|
||||
});
|
||||
|
||||
const symlinkCache = hostProject.getSymlinkCache();
|
||||
for (const resolution of resolutions) {
|
||||
if (!resolution.resolvedTypeReferenceDirective?.resolvedFileName) continue;
|
||||
const { resolvedFileName, originalPath } = resolution.resolvedTypeReferenceDirective;
|
||||
if (!resolution.resolvedFileName) continue;
|
||||
const { resolvedFileName, originalPath } = resolution;
|
||||
if (!program.getSourceFile(resolvedFileName) && (!originalPath || !program.getSourceFile(originalPath))) {
|
||||
rootNames = append(rootNames, resolvedFileName);
|
||||
// Avoid creating a large project that would significantly slow down time to editor interactivity
|
||||
|
||||
@@ -1338,13 +1338,16 @@ namespace ts.Completions {
|
||||
case SyntaxKind.PropertyAccessExpression:
|
||||
propertyAccessToConvert = parent as PropertyAccessExpression;
|
||||
node = propertyAccessToConvert.expression;
|
||||
if ((isCallExpression(node) || isFunctionLike(node)) &&
|
||||
node.end === contextToken.pos &&
|
||||
node.getChildCount(sourceFile) &&
|
||||
last(node.getChildren(sourceFile)).kind !== SyntaxKind.CloseParenToken) {
|
||||
const leftmostAccessExpression = getLeftmostAccessExpression(propertyAccessToConvert);
|
||||
if (nodeIsMissing(leftmostAccessExpression) ||
|
||||
((isCallExpression(node) || isFunctionLike(node)) &&
|
||||
node.end === contextToken.pos &&
|
||||
node.getChildCount(sourceFile) &&
|
||||
last(node.getChildren(sourceFile)).kind !== SyntaxKind.CloseParenToken)) {
|
||||
// This is likely dot from incorrectly parsed expression and user is starting to write spread
|
||||
// eg: Math.min(./**/)
|
||||
// const x = function (./**/) {}
|
||||
// ({./**/})
|
||||
return undefined;
|
||||
}
|
||||
break;
|
||||
@@ -1497,7 +1500,10 @@ namespace ts.Completions {
|
||||
|
||||
log("getCompletionData: Semantic work: " + (timestamp() - semanticStart));
|
||||
const contextualType = previousToken && getContextualType(previousToken, position, sourceFile, typeChecker);
|
||||
const literals = mapDefined(contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]), t => t.isLiteral() ? t.value : undefined);
|
||||
|
||||
const literals = mapDefined(
|
||||
contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]),
|
||||
t => t.isLiteral() && !(t.flags & TypeFlags.EnumLiteral) ? t.value : undefined);
|
||||
|
||||
const recommendedCompletion = previousToken && contextualType && getRecommendedCompletion(previousToken, contextualType, typeChecker);
|
||||
return {
|
||||
|
||||
@@ -65,11 +65,12 @@ namespace ts {
|
||||
fileExists: path => {
|
||||
assert.isTrue(directories.has(getDirectoryPath(path)), `'fileExists' '${path}' request in non-existing directory`);
|
||||
return map.has(path);
|
||||
}
|
||||
},
|
||||
useCaseSensitiveFileNames: true
|
||||
};
|
||||
}
|
||||
else {
|
||||
return { readFile, realpath, fileExists: path => map.has(path) };
|
||||
return { readFile, realpath, fileExists: path => map.has(path), useCaseSensitiveFileNames: true };
|
||||
}
|
||||
function readFile(path: string): string | undefined {
|
||||
const file = map.get(path);
|
||||
|
||||
+3
-1
@@ -3059,6 +3059,7 @@ declare namespace ts {
|
||||
realpath?(path: string): string;
|
||||
getCurrentDirectory?(): string;
|
||||
getDirectories?(path: string): string[];
|
||||
useCaseSensitiveFileNames?: boolean | (() => boolean);
|
||||
}
|
||||
/**
|
||||
* Represents the result of module resolution.
|
||||
@@ -3219,7 +3220,8 @@ declare namespace ts {
|
||||
NonNullAssertions = 4,
|
||||
PartiallyEmittedExpressions = 8,
|
||||
Assertions = 6,
|
||||
All = 15
|
||||
All = 15,
|
||||
ExcludeJSDocTypeAssertion = 16
|
||||
}
|
||||
export type TypeOfTag = "undefined" | "number" | "bigint" | "boolean" | "string" | "symbol" | "object" | "function";
|
||||
export interface NodeFactory {
|
||||
|
||||
+3
-1
@@ -3059,6 +3059,7 @@ declare namespace ts {
|
||||
realpath?(path: string): string;
|
||||
getCurrentDirectory?(): string;
|
||||
getDirectories?(path: string): string[];
|
||||
useCaseSensitiveFileNames?: boolean | (() => boolean);
|
||||
}
|
||||
/**
|
||||
* Represents the result of module resolution.
|
||||
@@ -3219,7 +3220,8 @@ declare namespace ts {
|
||||
NonNullAssertions = 4,
|
||||
PartiallyEmittedExpressions = 8,
|
||||
Assertions = 6,
|
||||
All = 15
|
||||
All = 15,
|
||||
ExcludeJSDocTypeAssertion = 16
|
||||
}
|
||||
export type TypeOfTag = "undefined" | "number" | "bigint" | "boolean" | "string" | "symbol" | "object" | "function";
|
||||
export interface NodeFactory {
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts(17,6): error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts(19,11): error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts(21,9): error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts(23,15): error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts(25,15): error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts (5 errors) ====
|
||||
==== tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts (4 errors) ====
|
||||
interface Base {
|
||||
readonly value: number;
|
||||
}
|
||||
@@ -30,9 +29,7 @@ tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts(25,15): e
|
||||
~~~~~
|
||||
!!! error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
let mutable: Base & Mutable;
|
||||
mutable.value = 12; // error, lhs can't be a readonly property
|
||||
~~~~~
|
||||
!!! error TS2540: Cannot assign to 'value' because it is a read-only property.
|
||||
mutable.value = 12;
|
||||
let differentType: Base & DifferentType;
|
||||
differentType.value = 12; // error, lhs can't be a readonly property
|
||||
~~~~~
|
||||
|
||||
@@ -19,7 +19,7 @@ base.value = 12 // error, lhs can't be a readonly property
|
||||
let identical: Base & Identical;
|
||||
identical.value = 12; // error, lhs can't be a readonly property
|
||||
let mutable: Base & Mutable;
|
||||
mutable.value = 12; // error, lhs can't be a readonly property
|
||||
mutable.value = 12;
|
||||
let differentType: Base & DifferentType;
|
||||
differentType.value = 12; // error, lhs can't be a readonly property
|
||||
let differentName: Base & DifferentName;
|
||||
@@ -32,7 +32,7 @@ base.value = 12; // error, lhs can't be a readonly property
|
||||
var identical;
|
||||
identical.value = 12; // error, lhs can't be a readonly property
|
||||
var mutable;
|
||||
mutable.value = 12; // error, lhs can't be a readonly property
|
||||
mutable.value = 12;
|
||||
var differentType;
|
||||
differentType.value = 12; // error, lhs can't be a readonly property
|
||||
var differentName;
|
||||
|
||||
@@ -53,7 +53,7 @@ let mutable: Base & Mutable;
|
||||
>Base : Symbol(Base, Decl(intersectionTypeReadonly.ts, 0, 0))
|
||||
>Mutable : Symbol(Mutable, Decl(intersectionTypeReadonly.ts, 5, 1))
|
||||
|
||||
mutable.value = 12; // error, lhs can't be a readonly property
|
||||
mutable.value = 12;
|
||||
>mutable.value : Symbol(value, Decl(intersectionTypeReadonly.ts, 0, 16), Decl(intersectionTypeReadonly.ts, 6, 19))
|
||||
>mutable : Symbol(mutable, Decl(intersectionTypeReadonly.ts, 19, 3))
|
||||
>value : Symbol(value, Decl(intersectionTypeReadonly.ts, 0, 16), Decl(intersectionTypeReadonly.ts, 6, 19))
|
||||
|
||||
@@ -42,11 +42,11 @@ identical.value = 12; // error, lhs can't be a readonly property
|
||||
let mutable: Base & Mutable;
|
||||
>mutable : Base & Mutable
|
||||
|
||||
mutable.value = 12; // error, lhs can't be a readonly property
|
||||
mutable.value = 12;
|
||||
>mutable.value = 12 : 12
|
||||
>mutable.value : any
|
||||
>mutable.value : number
|
||||
>mutable : Base & Mutable
|
||||
>value : any
|
||||
>value : number
|
||||
>12 : 12
|
||||
|
||||
let differentType: Base & DifferentType;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
tests/cases/compiler/intersectionsAndReadonlyProperties.ts(17,4): error TS2540: Cannot assign to 'a' because it is a read-only property.
|
||||
|
||||
|
||||
==== tests/cases/compiler/intersectionsAndReadonlyProperties.ts (1 errors) ====
|
||||
// readonly and non-readonly
|
||||
type Intersection1 = { readonly a: number } & { a: number };
|
||||
declare let i1: Intersection1;
|
||||
|
||||
i1.a = 2;
|
||||
|
||||
// getter and setter
|
||||
type Intersection2 = { get a(): number } & { set a(v: number) };
|
||||
declare let i2: Intersection2;
|
||||
|
||||
i2.a = 2;
|
||||
|
||||
// assignment to an all read-only property should still be disallowed
|
||||
type IntersectionAllReadonly = { readonly a: number } & { get a(): number };
|
||||
declare let ia: IntersectionAllReadonly;
|
||||
|
||||
ia.a = 2; // Error
|
||||
~
|
||||
!!! error TS2540: Cannot assign to 'a' because it is a read-only property.
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
//// [intersectionsAndReadonlyProperties.ts]
|
||||
// readonly and non-readonly
|
||||
type Intersection1 = { readonly a: number } & { a: number };
|
||||
declare let i1: Intersection1;
|
||||
|
||||
i1.a = 2;
|
||||
|
||||
// getter and setter
|
||||
type Intersection2 = { get a(): number } & { set a(v: number) };
|
||||
declare let i2: Intersection2;
|
||||
|
||||
i2.a = 2;
|
||||
|
||||
// assignment to an all read-only property should still be disallowed
|
||||
type IntersectionAllReadonly = { readonly a: number } & { get a(): number };
|
||||
declare let ia: IntersectionAllReadonly;
|
||||
|
||||
ia.a = 2; // Error
|
||||
|
||||
|
||||
//// [intersectionsAndReadonlyProperties.js]
|
||||
i1.a = 2;
|
||||
i2.a = 2;
|
||||
ia.a = 2; // Error
|
||||
@@ -0,0 +1,47 @@
|
||||
=== tests/cases/compiler/intersectionsAndReadonlyProperties.ts ===
|
||||
// readonly and non-readonly
|
||||
type Intersection1 = { readonly a: number } & { a: number };
|
||||
>Intersection1 : Symbol(Intersection1, Decl(intersectionsAndReadonlyProperties.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 1, 22))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 1, 47))
|
||||
|
||||
declare let i1: Intersection1;
|
||||
>i1 : Symbol(i1, Decl(intersectionsAndReadonlyProperties.ts, 2, 11))
|
||||
>Intersection1 : Symbol(Intersection1, Decl(intersectionsAndReadonlyProperties.ts, 0, 0))
|
||||
|
||||
i1.a = 2;
|
||||
>i1.a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 1, 22), Decl(intersectionsAndReadonlyProperties.ts, 1, 47))
|
||||
>i1 : Symbol(i1, Decl(intersectionsAndReadonlyProperties.ts, 2, 11))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 1, 22), Decl(intersectionsAndReadonlyProperties.ts, 1, 47))
|
||||
|
||||
// getter and setter
|
||||
type Intersection2 = { get a(): number } & { set a(v: number) };
|
||||
>Intersection2 : Symbol(Intersection2, Decl(intersectionsAndReadonlyProperties.ts, 4, 9))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 7, 22))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 7, 44))
|
||||
>v : Symbol(v, Decl(intersectionsAndReadonlyProperties.ts, 7, 51))
|
||||
|
||||
declare let i2: Intersection2;
|
||||
>i2 : Symbol(i2, Decl(intersectionsAndReadonlyProperties.ts, 8, 11))
|
||||
>Intersection2 : Symbol(Intersection2, Decl(intersectionsAndReadonlyProperties.ts, 4, 9))
|
||||
|
||||
i2.a = 2;
|
||||
>i2.a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 7, 22), Decl(intersectionsAndReadonlyProperties.ts, 7, 44))
|
||||
>i2 : Symbol(i2, Decl(intersectionsAndReadonlyProperties.ts, 8, 11))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 7, 22), Decl(intersectionsAndReadonlyProperties.ts, 7, 44))
|
||||
|
||||
// assignment to an all read-only property should still be disallowed
|
||||
type IntersectionAllReadonly = { readonly a: number } & { get a(): number };
|
||||
>IntersectionAllReadonly : Symbol(IntersectionAllReadonly, Decl(intersectionsAndReadonlyProperties.ts, 10, 9))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 13, 32))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 13, 57))
|
||||
|
||||
declare let ia: IntersectionAllReadonly;
|
||||
>ia : Symbol(ia, Decl(intersectionsAndReadonlyProperties.ts, 14, 11))
|
||||
>IntersectionAllReadonly : Symbol(IntersectionAllReadonly, Decl(intersectionsAndReadonlyProperties.ts, 10, 9))
|
||||
|
||||
ia.a = 2; // Error
|
||||
>ia.a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 13, 32), Decl(intersectionsAndReadonlyProperties.ts, 13, 57))
|
||||
>ia : Symbol(ia, Decl(intersectionsAndReadonlyProperties.ts, 14, 11))
|
||||
>a : Symbol(a, Decl(intersectionsAndReadonlyProperties.ts, 13, 32), Decl(intersectionsAndReadonlyProperties.ts, 13, 57))
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
=== tests/cases/compiler/intersectionsAndReadonlyProperties.ts ===
|
||||
// readonly and non-readonly
|
||||
type Intersection1 = { readonly a: number } & { a: number };
|
||||
>Intersection1 : Intersection1
|
||||
>a : number
|
||||
>a : number
|
||||
|
||||
declare let i1: Intersection1;
|
||||
>i1 : Intersection1
|
||||
|
||||
i1.a = 2;
|
||||
>i1.a = 2 : 2
|
||||
>i1.a : number
|
||||
>i1 : Intersection1
|
||||
>a : number
|
||||
>2 : 2
|
||||
|
||||
// getter and setter
|
||||
type Intersection2 = { get a(): number } & { set a(v: number) };
|
||||
>Intersection2 : Intersection2
|
||||
>a : number
|
||||
>a : number
|
||||
>v : number
|
||||
|
||||
declare let i2: Intersection2;
|
||||
>i2 : Intersection2
|
||||
|
||||
i2.a = 2;
|
||||
>i2.a = 2 : 2
|
||||
>i2.a : number
|
||||
>i2 : Intersection2
|
||||
>a : number
|
||||
>2 : 2
|
||||
|
||||
// assignment to an all read-only property should still be disallowed
|
||||
type IntersectionAllReadonly = { readonly a: number } & { get a(): number };
|
||||
>IntersectionAllReadonly : IntersectionAllReadonly
|
||||
>a : number
|
||||
>a : number
|
||||
|
||||
declare let ia: IntersectionAllReadonly;
|
||||
>ia : IntersectionAllReadonly
|
||||
|
||||
ia.a = 2; // Error
|
||||
>ia.a = 2 : 2
|
||||
>ia.a : any
|
||||
>ia : IntersectionAllReadonly
|
||||
>a : any
|
||||
>2 : 2
|
||||
|
||||
@@ -123,4 +123,7 @@ tests/cases/conformance/jsdoc/b.js(67,8): error TS2454: Variable 'numOrStr' is u
|
||||
}
|
||||
|
||||
|
||||
|
||||
var asConst1 = /** @type {const} */(1);
|
||||
var asConst2 = /** @type {const} */({
|
||||
x: 1
|
||||
});
|
||||
@@ -74,7 +74,10 @@ if(/** @type {numOrStr is string} */(numOrStr === undefined)) { // Error
|
||||
}
|
||||
|
||||
|
||||
|
||||
var asConst1 = /** @type {const} */(1);
|
||||
var asConst2 = /** @type {const} */({
|
||||
x: 1
|
||||
});
|
||||
|
||||
//// [a.js]
|
||||
var W;
|
||||
@@ -154,3 +157,7 @@ var str;
|
||||
if ( /** @type {numOrStr is string} */(numOrStr === undefined)) { // Error
|
||||
str = numOrStr; // Error, no narrowing occurred
|
||||
}
|
||||
var asConst1 = /** @type {const} */ (1);
|
||||
var asConst2 = /** @type {const} */ ({
|
||||
x: 1
|
||||
});
|
||||
|
||||
@@ -157,4 +157,13 @@ if(/** @type {numOrStr is string} */(numOrStr === undefined)) { // Error
|
||||
}
|
||||
|
||||
|
||||
var asConst1 = /** @type {const} */(1);
|
||||
>asConst1 : Symbol(asConst1, Decl(b.js, 70, 3))
|
||||
|
||||
var asConst2 = /** @type {const} */({
|
||||
>asConst2 : Symbol(asConst2, Decl(b.js, 71, 3))
|
||||
|
||||
x: 1
|
||||
>x : Symbol(x, Decl(b.js, 71, 37))
|
||||
|
||||
});
|
||||
|
||||
@@ -209,4 +209,18 @@ if(/** @type {numOrStr is string} */(numOrStr === undefined)) { // Error
|
||||
}
|
||||
|
||||
|
||||
var asConst1 = /** @type {const} */(1);
|
||||
>asConst1 : 1
|
||||
>(1) : 1
|
||||
>1 : 1
|
||||
|
||||
var asConst2 = /** @type {const} */({
|
||||
>asConst2 : { readonly x: 1; }
|
||||
>({ x: 1}) : { readonly x: 1; }
|
||||
>{ x: 1} : { readonly x: 1; }
|
||||
|
||||
x: 1
|
||||
>x : 1
|
||||
>1 : 1
|
||||
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,17 @@
|
||||
// readonly and non-readonly
|
||||
type Intersection1 = { readonly a: number } & { a: number };
|
||||
declare let i1: Intersection1;
|
||||
|
||||
i1.a = 2;
|
||||
|
||||
// getter and setter
|
||||
type Intersection2 = { get a(): number } & { set a(v: number) };
|
||||
declare let i2: Intersection2;
|
||||
|
||||
i2.a = 2;
|
||||
|
||||
// assignment to an all read-only property should still be disallowed
|
||||
type IntersectionAllReadonly = { readonly a: number } & { get a(): number };
|
||||
declare let ia: IntersectionAllReadonly;
|
||||
|
||||
ia.a = 2; // Error
|
||||
@@ -76,3 +76,7 @@ if(/** @type {numOrStr is string} */(numOrStr === undefined)) { // Error
|
||||
}
|
||||
|
||||
|
||||
var asConst1 = /** @type {const} */(1);
|
||||
var asConst2 = /** @type {const} */({
|
||||
x: 1
|
||||
});
|
||||
@@ -18,7 +18,7 @@ base.value = 12 // error, lhs can't be a readonly property
|
||||
let identical: Base & Identical;
|
||||
identical.value = 12; // error, lhs can't be a readonly property
|
||||
let mutable: Base & Mutable;
|
||||
mutable.value = 12; // error, lhs can't be a readonly property
|
||||
mutable.value = 12;
|
||||
let differentType: Base & DifferentType;
|
||||
differentType.value = 12; // error, lhs can't be a readonly property
|
||||
let differentName: Base & DifferentName;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/// <reference path="fourslash.ts" />
|
||||
|
||||
////enum E {
|
||||
//// v
|
||||
////}
|
||||
////const enum ES {
|
||||
//// v = "str",
|
||||
//// x = "str2"
|
||||
////}
|
||||
////const e: E = /*a*/;
|
||||
////const es: ES = /*b*/;
|
||||
|
||||
|
||||
verify.completions({
|
||||
marker: "a",
|
||||
isNewIdentifierLocation: true,
|
||||
excludes: ["0"],
|
||||
includes: [
|
||||
{
|
||||
name: "E",
|
||||
isRecommended: true,
|
||||
sortText: completion.SortText.LocationPriority,
|
||||
}
|
||||
],
|
||||
}, {
|
||||
marker: "b",
|
||||
isNewIdentifierLocation: true,
|
||||
excludes: [`"str"`, `"str2"`],
|
||||
includes: [
|
||||
{
|
||||
name: "ES",
|
||||
isRecommended: true,
|
||||
sortText: completion.SortText.LocationPriority,
|
||||
}
|
||||
],
|
||||
});
|
||||
@@ -111,6 +111,20 @@ declare module ts {
|
||||
exportName: string;
|
||||
}
|
||||
|
||||
interface CompilerOptions {
|
||||
module?: string;
|
||||
target?: string;
|
||||
jsx?: string;
|
||||
allowJs?: boolean;
|
||||
maxNodeModulesJsDepth?: number;
|
||||
strictNullChecks?: boolean;
|
||||
sourceMap?: boolean;
|
||||
allowSyntheticDefaultImports?: boolean;
|
||||
allowNonTsExtensions?: boolean;
|
||||
resolveJsonModule?: boolean;
|
||||
[key: string]: string | number | boolean | undefined;
|
||||
}
|
||||
|
||||
function flatMap<T, U>(array: ReadonlyArray<T>, mapfn: (x: T, i: number) => U | ReadonlyArray<U> | undefined): U[];
|
||||
}
|
||||
|
||||
@@ -200,8 +214,9 @@ declare namespace FourSlashInterface {
|
||||
symbolsInScope(range: Range): any[];
|
||||
setTypesRegistry(map: { [key: string]: void }): void;
|
||||
}
|
||||
class plugins {
|
||||
class config {
|
||||
configurePlugin(pluginName: string, configuration: any): void;
|
||||
setCompilerOptionsForInferredProjects(options: ts.CompilerOptions)
|
||||
}
|
||||
class goTo {
|
||||
marker(name?: string | Marker): void;
|
||||
@@ -810,7 +825,7 @@ declare namespace FourSlashInterface {
|
||||
declare function ignoreInterpolations(diagnostic: string | ts.DiagnosticMessage): FourSlashInterface.DiagnosticIgnoredInterpolations;
|
||||
declare function verifyOperationIsCancelled(f: any): void;
|
||||
declare var test: FourSlashInterface.test_;
|
||||
declare var plugins: FourSlashInterface.plugins;
|
||||
declare var config: FourSlashInterface.config;
|
||||
declare var goTo: FourSlashInterface.goTo;
|
||||
declare var verify: FourSlashInterface.verify;
|
||||
declare var edit: FourSlashInterface.edit;
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/// <reference path="fourslash.ts" />
|
||||
|
||||
// Regresion test for GH#45436
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: file.js
|
||||
//// const abc = {};
|
||||
//// ({./*1*/});
|
||||
|
||||
goTo.marker('1');
|
||||
edit.insert('.');
|
||||
verify.completions({ exact: undefined });
|
||||
@@ -0,0 +1,37 @@
|
||||
/// <reference path="../fourslash.ts" />
|
||||
|
||||
// @Filename: /packages/a/package.json
|
||||
//// {
|
||||
//// "name": "package-a",
|
||||
//// "dependencies": {
|
||||
//// "package-b": "*"
|
||||
//// }
|
||||
//// }
|
||||
|
||||
// @Filename: /packages/a/index.js
|
||||
//// packageB/**/
|
||||
|
||||
// @Filename: /packages/b/package.json
|
||||
//// { "name": "package-b", "main": "index.js" }
|
||||
|
||||
// @Filename: /packages/b/index.js
|
||||
//// export const packageB = "package-b";
|
||||
|
||||
// @link: /packages/b -> /packages/a/node_modules/package-b
|
||||
|
||||
config.setCompilerOptionsForInferredProjects({ module: "commonjs", allowJs: true, maxNodeModulesJsDepth: 2 });
|
||||
goTo.marker("");
|
||||
verify.completions({
|
||||
marker: "",
|
||||
includes: [{
|
||||
name: "packageB",
|
||||
source: "package-b",
|
||||
sourceDisplay: "package-b",
|
||||
hasAction: true,
|
||||
sortText: completion.SortText.AutoImportSuggestions,
|
||||
}],
|
||||
preferences: {
|
||||
includeCompletionsForModuleExports: true,
|
||||
allowIncompleteCompletions: true,
|
||||
}
|
||||
});
|
||||
@@ -18,5 +18,5 @@
|
||||
// Test that plugin adds an error message which is able to be configured
|
||||
goTo.marker();
|
||||
verify.getSemanticDiagnostics([{ message: "configured error", code: 9999, range: { pos: 0, end: 3, fileName: "a.ts" } }]);
|
||||
plugins.configurePlugin("configurable-diagnostic-adder", { message: "new error" });
|
||||
config.configurePlugin("configurable-diagnostic-adder", { message: "new error" });
|
||||
verify.getSemanticDiagnostics([{ message: "new error", code: 9999, range: { pos: 0, end: 3, fileName: "a.ts" } }]);
|
||||
|
||||
Reference in New Issue
Block a user