@zzzen/pyright-internal 1.1.255 → 1.2.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1409) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
  5. package/dist/analyzer/backgroundAnalysisProgram.js +3 -0
  6. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  7. package/dist/analyzer/binder.js +9 -2
  8. package/dist/analyzer/binder.js.map +1 -1
  9. package/dist/analyzer/checker.js +19 -26
  10. package/dist/analyzer/checker.js.map +1 -1
  11. package/dist/analyzer/codeFlowUtils.js +33 -0
  12. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  13. package/dist/analyzer/dataClasses.js +6 -4
  14. package/dist/analyzer/dataClasses.js.map +1 -1
  15. package/dist/analyzer/declaration.js +11 -1
  16. package/dist/analyzer/declaration.js.map +1 -1
  17. package/dist/analyzer/importResult.js +7 -0
  18. package/dist/analyzer/importResult.js.map +1 -1
  19. package/dist/analyzer/importStatementUtils.js +10 -1
  20. package/dist/analyzer/importStatementUtils.js.map +1 -1
  21. package/dist/analyzer/namedTuples.js +1 -1
  22. package/dist/analyzer/namedTuples.js.map +1 -1
  23. package/dist/analyzer/packageTypeReport.js +10 -1
  24. package/dist/analyzer/packageTypeReport.js.map +1 -1
  25. package/dist/analyzer/parseTreeUtils.js +11 -2
  26. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  27. package/dist/analyzer/program.d.ts +2 -1
  28. package/dist/analyzer/program.js +27 -23
  29. package/dist/analyzer/program.js.map +1 -1
  30. package/dist/analyzer/protocols.js +3 -1
  31. package/dist/analyzer/protocols.js.map +1 -1
  32. package/dist/analyzer/scope.js +22 -1
  33. package/dist/analyzer/scope.js.map +1 -1
  34. package/dist/analyzer/service.d.ts +20 -8
  35. package/dist/analyzer/service.js +39 -19
  36. package/dist/analyzer/service.js.map +1 -1
  37. package/dist/analyzer/sourceFile.js +1 -1
  38. package/dist/analyzer/sourceFile.js.map +1 -1
  39. package/dist/analyzer/sourceFileInfoUtils.d.ts +2 -0
  40. package/dist/analyzer/sourceFileInfoUtils.js +15 -0
  41. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -0
  42. package/dist/analyzer/symbol.d.ts +3 -1
  43. package/dist/analyzer/symbol.js +39 -1
  44. package/dist/analyzer/symbol.js.map +1 -1
  45. package/dist/analyzer/typeDocStringUtils.js +10 -2
  46. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  47. package/dist/analyzer/typeEvaluator.js +86 -32
  48. package/dist/analyzer/typeEvaluator.js.map +1 -1
  49. package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -1
  50. package/dist/analyzer/typeEvaluatorTypes.js +65 -1
  51. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  52. package/dist/analyzer/typeGuards.d.ts +2 -0
  53. package/dist/analyzer/typeGuards.js +113 -69
  54. package/dist/analyzer/typeGuards.js.map +1 -1
  55. package/dist/analyzer/typePrinter.js +23 -1
  56. package/dist/analyzer/typePrinter.js.map +1 -1
  57. package/dist/analyzer/typeUtils.js +119 -28
  58. package/dist/analyzer/typeUtils.js.map +1 -1
  59. package/dist/analyzer/typedDicts.js +2 -1
  60. package/dist/analyzer/typedDicts.js.map +1 -1
  61. package/dist/analyzer/types.d.ts +1 -0
  62. package/dist/analyzer/types.js +195 -1
  63. package/dist/analyzer/types.js.map +1 -1
  64. package/dist/backgroundAnalysisBase.d.ts +1 -1
  65. package/dist/commands/commands.js +9 -0
  66. package/dist/commands/commands.js.map +1 -1
  67. package/dist/common/commandLineOptions.js +8 -1
  68. package/dist/common/commandLineOptions.js.map +1 -1
  69. package/dist/common/core.js +7 -1
  70. package/dist/common/core.js.map +1 -1
  71. package/dist/common/diagnostic.js +9 -1
  72. package/dist/common/diagnostic.js.map +1 -1
  73. package/dist/common/host.js +7 -1
  74. package/dist/common/host.js.map +1 -1
  75. package/dist/common/pathUtils.d.ts +1 -0
  76. package/dist/common/pathUtils.js +34 -1
  77. package/dist/common/pathUtils.js.map +1 -1
  78. package/dist/common/stringUtils.d.ts +1 -0
  79. package/dist/common/stringUtils.js +8 -1
  80. package/dist/common/stringUtils.js.map +1 -1
  81. package/dist/languageServerBase.d.ts +10 -3
  82. package/dist/languageServerBase.js +40 -14
  83. package/dist/languageServerBase.js.map +1 -1
  84. package/dist/languageService/analyzerServiceExecutor.js +3 -0
  85. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  86. package/dist/languageService/autoImporter.js +2 -1
  87. package/dist/languageService/autoImporter.js.map +1 -1
  88. package/dist/languageService/completionProvider.d.ts +2 -2
  89. package/dist/languageService/completionProvider.js +3 -5
  90. package/dist/languageService/completionProvider.js.map +1 -1
  91. package/dist/parser/parseNodes.d.ts +3 -0
  92. package/dist/parser/parseNodes.js +110 -2
  93. package/dist/parser/parseNodes.js.map +1 -1
  94. package/dist/parser/parser.d.ts +0 -1
  95. package/dist/parser/parser.js +26 -12
  96. package/dist/parser/parser.js.map +1 -1
  97. package/dist/parser/stringTokenUtils.js +8 -1
  98. package/dist/parser/stringTokenUtils.js.map +1 -1
  99. package/dist/parser/tokenizerTypes.js +155 -1
  100. package/dist/parser/tokenizerTypes.js.map +1 -1
  101. package/dist/pyright.js +6 -1
  102. package/dist/pyright.js.map +1 -1
  103. package/dist/tests/chainedSourceFiles.test.js +12 -9
  104. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  105. package/dist/tests/checker.test.js +4 -0
  106. package/dist/tests/checker.test.js.map +1 -1
  107. package/dist/tests/config.test.js +14 -13
  108. package/dist/tests/config.test.js.map +1 -1
  109. package/dist/tests/debug.test.js +6 -0
  110. package/dist/tests/debug.test.js.map +1 -1
  111. package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.d.ts +1 -0
  112. package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js +53 -0
  113. package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js.map +1 -0
  114. package/dist/tests/fourslash/fourslash.d.ts +16 -0
  115. package/dist/tests/fourslash/hover.class.docString.fourslash.d.ts +1 -0
  116. package/dist/tests/fourslash/hover.class.docString.fourslash.js +24 -0
  117. package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -0
  118. package/dist/tests/harness/fourslash/fourSlashParser.js +6 -0
  119. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  120. package/dist/tests/harness/fourslash/fourSlashTypes.js +19 -1
  121. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  122. package/dist/tests/harness/fourslash/testLanguageService.js +9 -1
  123. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  124. package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -0
  125. package/dist/tests/harness/fourslash/testState.Consts.js +1 -0
  126. package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
  127. package/dist/tests/harness/fourslash/testState.d.ts +4 -3
  128. package/dist/tests/harness/fourslash/testState.js +27 -11
  129. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  130. package/dist/tests/harness/vfs/pathValidation.js +25 -1
  131. package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
  132. package/dist/tests/pathUtils.test.js +17 -0
  133. package/dist/tests/pathUtils.test.js.map +1 -1
  134. package/dist/tests/testUtils.js +1 -1
  135. package/dist/tests/testUtils.js.map +1 -1
  136. package/dist/tests/typeEvaluator1.test.js +9 -1
  137. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  138. package/dist/tests/typeEvaluator2.test.js +9 -1
  139. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  140. package/dist/tests/typeEvaluator3.test.js +4 -0
  141. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  142. package/dist/workspaceMap.d.ts +2 -1
  143. package/dist/workspaceMap.js +25 -3
  144. package/dist/workspaceMap.js.map +1 -1
  145. package/package.json +45 -45
  146. package/src/analyzer/aliasDeclarationUtils.ts +0 -169
  147. package/src/analyzer/analysis.ts +0 -92
  148. package/src/analyzer/analyzerFileInfo.ts +0 -56
  149. package/src/analyzer/analyzerNodeInfo.ts +0 -198
  150. package/src/analyzer/backgroundAnalysisProgram.ts +0 -311
  151. package/src/analyzer/binder.ts +0 -4081
  152. package/src/analyzer/checker.ts +0 -5507
  153. package/src/analyzer/circularDependency.ts +0 -52
  154. package/src/analyzer/codeFlowEngine.ts +0 -1548
  155. package/src/analyzer/codeFlowTypes.ts +0 -266
  156. package/src/analyzer/codeFlowUtils.ts +0 -436
  157. package/src/analyzer/commentUtils.ts +0 -174
  158. package/src/analyzer/constraintSolver.ts +0 -926
  159. package/src/analyzer/constructorTransform.ts +0 -317
  160. package/src/analyzer/dataClasses.ts +0 -999
  161. package/src/analyzer/declaration.ts +0 -252
  162. package/src/analyzer/declarationUtils.ts +0 -238
  163. package/src/analyzer/docStringConversion.ts +0 -850
  164. package/src/analyzer/docStringUtils.ts +0 -112
  165. package/src/analyzer/functionTransform.ts +0 -137
  166. package/src/analyzer/importResolver.ts +0 -2308
  167. package/src/analyzer/importResult.ts +0 -98
  168. package/src/analyzer/importStatementUtils.ts +0 -834
  169. package/src/analyzer/namedTuples.ts +0 -422
  170. package/src/analyzer/packageTypeReport.ts +0 -108
  171. package/src/analyzer/packageTypeVerifier.ts +0 -1466
  172. package/src/analyzer/parentDirectoryCache.ts +0 -88
  173. package/src/analyzer/parseTreeCleaner.ts +0 -35
  174. package/src/analyzer/parseTreeUtils.ts +0 -2165
  175. package/src/analyzer/parseTreeWalker.ts +0 -663
  176. package/src/analyzer/patternMatching.ts +0 -1356
  177. package/src/analyzer/program.ts +0 -2778
  178. package/src/analyzer/properties.ts +0 -534
  179. package/src/analyzer/protocols.ts +0 -660
  180. package/src/analyzer/pyTypedUtils.ts +0 -52
  181. package/src/analyzer/pythonPathUtils.ts +0 -201
  182. package/src/analyzer/scope.ts +0 -202
  183. package/src/analyzer/scopeUtils.ts +0 -81
  184. package/src/analyzer/service.ts +0 -1679
  185. package/src/analyzer/sourceFile.ts +0 -1401
  186. package/src/analyzer/sourceMapper.ts +0 -717
  187. package/src/analyzer/staticExpressions.ts +0 -308
  188. package/src/analyzer/symbol.ts +0 -249
  189. package/src/analyzer/symbolNameUtils.ts +0 -50
  190. package/src/analyzer/symbolUtils.ts +0 -49
  191. package/src/analyzer/testWalker.ts +0 -101
  192. package/src/analyzer/tracePrinter.ts +0 -264
  193. package/src/analyzer/typeCache.ts +0 -181
  194. package/src/analyzer/typeDocStringUtils.ts +0 -371
  195. package/src/analyzer/typeEvaluator.ts +0 -23395
  196. package/src/analyzer/typeEvaluatorTypes.ts +0 -452
  197. package/src/analyzer/typeEvaluatorWithTracker.ts +0 -161
  198. package/src/analyzer/typeGuards.ts +0 -1828
  199. package/src/analyzer/typePrinter.ts +0 -807
  200. package/src/analyzer/typeStubWriter.ts +0 -727
  201. package/src/analyzer/typeUtils.ts +0 -3126
  202. package/src/analyzer/typeVarContext.ts +0 -330
  203. package/src/analyzer/typedDicts.ts +0 -950
  204. package/src/analyzer/types.ts +0 -2857
  205. package/src/backgroundAnalysis.ts +0 -49
  206. package/src/backgroundAnalysisBase.ts +0 -606
  207. package/src/backgroundThreadBase.ts +0 -143
  208. package/src/commands/commandController.ts +0 -62
  209. package/src/commands/commandResult.ts +0 -21
  210. package/src/commands/commands.ts +0 -16
  211. package/src/commands/createTypeStub.ts +0 -56
  212. package/src/commands/quickActionCommand.ts +0 -40
  213. package/src/commands/restartServer.ts +0 -20
  214. package/src/common/cancellationUtils.ts +0 -71
  215. package/src/common/chokidarFileWatcherProvider.ts +0 -74
  216. package/src/common/collectionUtils.ts +0 -379
  217. package/src/common/commandLineOptions.ts +0 -132
  218. package/src/common/configOptions.ts +0 -1291
  219. package/src/common/console.ts +0 -201
  220. package/src/common/core.ts +0 -152
  221. package/src/common/crypto.ts +0 -60
  222. package/src/common/debug.ts +0 -144
  223. package/src/common/deferred.ts +0 -78
  224. package/src/common/diagnostic.ts +0 -191
  225. package/src/common/diagnosticRules.ts +0 -80
  226. package/src/common/diagnosticSink.ts +0 -150
  227. package/src/common/editAction.ts +0 -46
  228. package/src/common/extensibility.ts +0 -35
  229. package/src/common/extensions.ts +0 -21
  230. package/src/common/fileBasedCancellationUtils.ts +0 -274
  231. package/src/common/fileSystem.ts +0 -152
  232. package/src/common/fullAccessHost.ts +0 -203
  233. package/src/common/host.ts +0 -49
  234. package/src/common/logTracker.ts +0 -157
  235. package/src/common/lspUtils.ts +0 -18
  236. package/src/common/memUtils.ts +0 -36
  237. package/src/common/pathConsts.ts +0 -16
  238. package/src/common/pathUtils.ts +0 -987
  239. package/src/common/positionUtils.ts +0 -78
  240. package/src/common/progressReporter.ts +0 -53
  241. package/src/common/pythonVersion.ts +0 -74
  242. package/src/common/realFileSystem.ts +0 -433
  243. package/src/common/stringUtils.ts +0 -161
  244. package/src/common/textEditUtils.ts +0 -31
  245. package/src/common/textRange.ts +0 -225
  246. package/src/common/textRangeCollection.ts +0 -122
  247. package/src/common/timing.ts +0 -105
  248. package/src/common/uriParser.ts +0 -26
  249. package/src/common/workspaceEditUtils.ts +0 -100
  250. package/src/languageServerBase.ts +0 -1556
  251. package/src/languageService/analyzerServiceExecutor.ts +0 -144
  252. package/src/languageService/autoImporter.ts +0 -926
  253. package/src/languageService/callHierarchyProvider.ts +0 -476
  254. package/src/languageService/codeActionProvider.ts +0 -85
  255. package/src/languageService/completionProvider.ts +0 -3103
  256. package/src/languageService/definitionProvider.ts +0 -235
  257. package/src/languageService/documentHighlightProvider.ts +0 -61
  258. package/src/languageService/documentSymbolCollector.ts +0 -466
  259. package/src/languageService/documentSymbolProvider.ts +0 -466
  260. package/src/languageService/hoverProvider.ts +0 -499
  261. package/src/languageService/importAdder.ts +0 -437
  262. package/src/languageService/importSorter.ts +0 -196
  263. package/src/languageService/indentationUtils.ts +0 -813
  264. package/src/languageService/quickActions.ts +0 -113
  265. package/src/languageService/referencesProvider.ts +0 -316
  266. package/src/languageService/renameModuleProvider.ts +0 -1400
  267. package/src/languageService/signatureHelpProvider.ts +0 -227
  268. package/src/languageService/tooltipUtils.ts +0 -147
  269. package/src/localization/localize.ts +0 -1272
  270. package/src/localization/package.nls.de.json +0 -3
  271. package/src/localization/package.nls.en-us.json +0 -636
  272. package/src/localization/package.nls.es.json +0 -3
  273. package/src/localization/package.nls.fr.json +0 -3
  274. package/src/localization/package.nls.ja.json +0 -3
  275. package/src/localization/package.nls.ru.json +0 -3
  276. package/src/localization/package.nls.zh-cn.json +0 -3
  277. package/src/localization/package.nls.zh-tw.json +0 -3
  278. package/src/nodeMain.ts +0 -21
  279. package/src/nodeServer.ts +0 -30
  280. package/src/parser/characterStream.ts +0 -145
  281. package/src/parser/characters.ts +0 -285
  282. package/src/parser/parseNodes.ts +0 -2338
  283. package/src/parser/parser.ts +0 -4859
  284. package/src/parser/stringTokenUtils.ts +0 -564
  285. package/src/parser/tokenizer.ts +0 -1379
  286. package/src/parser/tokenizerTypes.ts +0 -420
  287. package/src/parser/unicode.ts +0 -2917
  288. package/src/pyright.ts +0 -824
  289. package/src/pyrightFileSystem.ts +0 -237
  290. package/src/readonlyAugmentedFileSystem.ts +0 -204
  291. package/src/server.ts +0 -298
  292. package/src/tests/chainedSourceFiles.test.ts +0 -183
  293. package/src/tests/checker.test.ts +0 -445
  294. package/src/tests/collectionUtils.test.ts +0 -178
  295. package/src/tests/common.test.ts +0 -117
  296. package/src/tests/config.test.ts +0 -291
  297. package/src/tests/debug.test.ts +0 -120
  298. package/src/tests/deferred.test.ts +0 -54
  299. package/src/tests/diagnosticOverrides.test.ts +0 -104
  300. package/src/tests/docStringConversion.test.ts +0 -823
  301. package/src/tests/docStringUtils.test.ts +0 -57
  302. package/src/tests/documentSymbolCollector.test.ts +0 -735
  303. package/src/tests/filesystem.test.ts +0 -215
  304. package/src/tests/fourSlashParser.test.ts +0 -330
  305. package/src/tests/fourSlashRunner.test.ts +0 -36
  306. package/src/tests/fourslash/completions.autoimport.Lib.Found.Type.fourslash.ts +0 -33
  307. package/src/tests/fourslash/completions.autoimport.Lib.Found.duplication.fourslash.ts +0 -47
  308. package/src/tests/fourslash/completions.autoimport.Lib.NotFound.fourslash.ts +0 -14
  309. package/src/tests/fourslash/completions.autoimport.disabled.fourslash.ts +0 -25
  310. package/src/tests/fourslash/completions.autoimport.duplicates.fourslash.ts +0 -36
  311. package/src/tests/fourslash/completions.autoimport.fourslash.ts +0 -29
  312. package/src/tests/fourslash/completions.autoimport.fromImport.fourslash.ts +0 -130
  313. package/src/tests/fourslash/completions.autoimport.plainText.fourslash.ts +0 -29
  314. package/src/tests/fourslash/completions.autoimport.shadow.fourslash.ts +0 -48
  315. package/src/tests/fourslash/completions.autoimport.submodule.fourslash.ts +0 -31
  316. package/src/tests/fourslash/completions.autoimport.topLevel.fourslash.ts +0 -57
  317. package/src/tests/fourslash/completions.builtinDocstrings.fourslash.ts +0 -117
  318. package/src/tests/fourslash/completions.builtinOverride.fourslash.ts +0 -22
  319. package/src/tests/fourslash/completions.call.stringLiteral.fourslash.ts +0 -55
  320. package/src/tests/fourslash/completions.call.typedDict.fourslash.ts +0 -247
  321. package/src/tests/fourslash/completions.call.typedDict.list.fourslash.ts +0 -163
  322. package/src/tests/fourslash/completions.call.typedDict.states.fourslash.ts +0 -135
  323. package/src/tests/fourslash/completions.classVariable.fourslash.ts +0 -37
  324. package/src/tests/fourslash/completions.comment.fourslash.ts +0 -28
  325. package/src/tests/fourslash/completions.declNames.class.fourslash.ts +0 -35
  326. package/src/tests/fourslash/completions.declNames.exception.fourslash.ts +0 -18
  327. package/src/tests/fourslash/completions.declNames.for.fourslash.ts +0 -30
  328. package/src/tests/fourslash/completions.declNames.importAlias.fourslash.ts +0 -15
  329. package/src/tests/fourslash/completions.declNames.lambda.fourslash.ts +0 -45
  330. package/src/tests/fourslash/completions.declNames.method.fourslash.ts +0 -71
  331. package/src/tests/fourslash/completions.declNames.overload.fourslash.ts +0 -156
  332. package/src/tests/fourslash/completions.declNames.topLevelOverload.fourslash.ts +0 -141
  333. package/src/tests/fourslash/completions.dictionary.keys.complex.fourslash.ts +0 -76
  334. package/src/tests/fourslash/completions.dictionary.keys.expression.fourslash.ts +0 -63
  335. package/src/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.ts +0 -161
  336. package/src/tests/fourslash/completions.dictionary.keys.simple.fourslash.ts +0 -151
  337. package/src/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.ts +0 -116
  338. package/src/tests/fourslash/completions.dictionary.keys.symbols.fourslash.ts +0 -53
  339. package/src/tests/fourslash/completions.enums.members.fourslash.ts +0 -44
  340. package/src/tests/fourslash/completions.excluded.fourslash.ts +0 -12
  341. package/src/tests/fourslash/completions.fourslash.ts +0 -51
  342. package/src/tests/fourslash/completions.fstring.fourslash.ts +0 -33
  343. package/src/tests/fourslash/completions.fstring.stringLiteral.fourslash.ts +0 -96
  344. package/src/tests/fourslash/completions.fuzzyMatching.fourslash.ts +0 -30
  345. package/src/tests/fourslash/completions.importDunderNames.fourslash.ts +0 -31
  346. package/src/tests/fourslash/completions.importSubmodule.fourslash.ts +0 -26
  347. package/src/tests/fourslash/completions.importsDuplicates.fourslash.ts +0 -23
  348. package/src/tests/fourslash/completions.inList.fourslash.ts +0 -33
  349. package/src/tests/fourslash/completions.included.fourslash.ts +0 -12
  350. package/src/tests/fourslash/completions.indexer.keys.getitem.fourslash.ts +0 -57
  351. package/src/tests/fourslash/completions.inherited.function.docFromStub.fourslash.ts +0 -28
  352. package/src/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.ts +0 -52
  353. package/src/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.ts +0 -53
  354. package/src/tests/fourslash/completions.inherited.property.docFromSrc.fourslash.ts +0 -104
  355. package/src/tests/fourslash/completions.inherited.property.docFromStub.fourslash.ts +0 -108
  356. package/src/tests/fourslash/completions.keywords.pythonVersion.fourslash.ts +0 -72
  357. package/src/tests/fourslash/completions.libCodeAndStub.fourslash.ts +0 -79
  358. package/src/tests/fourslash/completions.libCodeNoStub.fourslash.ts +0 -69
  359. package/src/tests/fourslash/completions.libStub.fourslash.ts +0 -69
  360. package/src/tests/fourslash/completions.literals.fourslash.ts +0 -33
  361. package/src/tests/fourslash/completions.localCode.fourslash.ts +0 -74
  362. package/src/tests/fourslash/completions.moduleContext.UnknownMemberOnInstance.fourslash.ts +0 -17
  363. package/src/tests/fourslash/completions.moduleContext.UnknownStaticFunctionOnClass.fourslash.ts +0 -57
  364. package/src/tests/fourslash/completions.moduleContext.libCodeNoStub.fourslash.ts +0 -30
  365. package/src/tests/fourslash/completions.overloads.fourslash.ts +0 -40
  366. package/src/tests/fourslash/completions.override.default.fourslash.ts +0 -47
  367. package/src/tests/fourslash/completions.override.default.importStub.ts +0 -50
  368. package/src/tests/fourslash/completions.override.default.imported.fourslash.ts +0 -61
  369. package/src/tests/fourslash/completions.override.default.stub.fourslash.ts +0 -47
  370. package/src/tests/fourslash/completions.override.fourslash.ts +0 -47
  371. package/src/tests/fourslash/completions.override.property.fourslash.ts +0 -31
  372. package/src/tests/fourslash/completions.override.property.stub.fourslash.ts +0 -31
  373. package/src/tests/fourslash/completions.override.staticAndClassmethod.fourslash.ts +0 -64
  374. package/src/tests/fourslash/completions.override.stub.fourslash.ts +0 -47
  375. package/src/tests/fourslash/completions.override2.fourslash.ts +0 -71
  376. package/src/tests/fourslash/completions.parameters.fourslash.ts +0 -23
  377. package/src/tests/fourslash/completions.params.fourslash.ts +0 -24
  378. package/src/tests/fourslash/completions.parentFolder.fourslash.ts +0 -17
  379. package/src/tests/fourslash/completions.parentFolders.fourslash.ts +0 -77
  380. package/src/tests/fourslash/completions.plainText.fourslash.ts +0 -34
  381. package/src/tests/fourslash/completions.private.fourslash.ts +0 -64
  382. package/src/tests/fourslash/completions.property.fourslash.ts +0 -28
  383. package/src/tests/fourslash/completions.propertyDocStrings.fourslash.ts +0 -64
  384. package/src/tests/fourslash/completions.self.fourslash.ts +0 -43
  385. package/src/tests/fourslash/completions.stringLiteral.escape.fourslash.ts +0 -71
  386. package/src/tests/fourslash/completions.stringLiteral.fourslash.ts +0 -79
  387. package/src/tests/fourslash/completions.typeAlias.fourslash.ts +0 -29
  388. package/src/tests/fourslash/completions.typeshed.fourslash.ts +0 -9
  389. package/src/tests/fourslash/completions.vardecls.fourslash.ts +0 -40
  390. package/src/tests/fourslash/completions.variableDocStrings.fourslash.ts +0 -69
  391. package/src/tests/fourslash/completions.wildcardimports.fourslash.ts +0 -116
  392. package/src/tests/fourslash/completions.with.fourslash.ts +0 -26
  393. package/src/tests/fourslash/diagnostics.missingModuleSource.fourslash.ts +0 -69
  394. package/src/tests/fourslash/findDefinitions.builtinClass.fourslash.ts +0 -29
  395. package/src/tests/fourslash/findDefinitions.classes.fourslash.ts +0 -101
  396. package/src/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.ts +0 -29
  397. package/src/tests/fourslash/findDefinitions.definitionFilter.preferSource.onlyStubs.ts +0 -24
  398. package/src/tests/fourslash/findDefinitions.definitionFilter.preferStub.fourslash.ts +0 -29
  399. package/src/tests/fourslash/findDefinitions.definitionFilter.preferStub.onlySource.fourslash.ts +0 -25
  400. package/src/tests/fourslash/findDefinitions.fields.fourslash.ts +0 -131
  401. package/src/tests/fourslash/findDefinitions.functions.fourslash.ts +0 -87
  402. package/src/tests/fourslash/findDefinitions.methods.fourslash.ts +0 -162
  403. package/src/tests/fourslash/findDefinitions.modules.fourslash.ts +0 -50
  404. package/src/tests/fourslash/findDefinitions.namespaceImport.fourslash.ts +0 -40
  405. package/src/tests/fourslash/findDefinitions.overloads.fourslash.ts +0 -223
  406. package/src/tests/fourslash/findDefinitions.parameters.fourslash.ts +0 -162
  407. package/src/tests/fourslash/findDefinitions.sourceAndStub.function.fourslash.ts +0 -26
  408. package/src/tests/fourslash/findDefinitions.sourceAndStub.innerClass.fourslash.ts +0 -32
  409. package/src/tests/fourslash/findDefinitions.sourceAndStub.innerClassMethod.fourslash.ts +0 -33
  410. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClass.fourslash.ts +0 -28
  411. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClassMethod.fourslash.ts +0 -29
  412. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClassPropertyReadOnly.fourslash.ts +0 -31
  413. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClassPropertyReadWrite.fourslash.ts +0 -36
  414. package/src/tests/fourslash/findDefinitions.sourceOnly.class.fourslash.ts +0 -29
  415. package/src/tests/fourslash/findDefinitions.sourceOnly.function1.fourslash.ts +0 -28
  416. package/src/tests/fourslash/findDefinitions.sourceOnly.function2.fourslash.ts +0 -28
  417. package/src/tests/fourslash/findDefinitions.sourceOnly.relativeImport1.fourslash.ts +0 -22
  418. package/src/tests/fourslash/findDefinitions.sourceOnly.relativeImport2.fourslash.ts +0 -22
  419. package/src/tests/fourslash/findDefinitions.stubOnly.fourslash.ts +0 -61
  420. package/src/tests/fourslash/findDefinitions.stubPackages.fourslash.ts +0 -71
  421. package/src/tests/fourslash/findDefinitions.typedDict.keys.fourslash.ts +0 -99
  422. package/src/tests/fourslash/findDefinitions.variables.fourslash.ts +0 -88
  423. package/src/tests/fourslash/findDefinitions.wildcardimports.fourslash.ts +0 -117
  424. package/src/tests/fourslash/findTypeDefinitions.builtinClass.fourslash.ts +0 -26
  425. package/src/tests/fourslash/findTypeDefinitions.classes.fourslash.ts +0 -72
  426. package/src/tests/fourslash/findTypeDefinitions.unions.fourslash.ts +0 -26
  427. package/src/tests/fourslash/findallreferences.classPropertyReadWrite.ts +0 -39
  428. package/src/tests/fourslash/findallreferences.fourslash.ts +0 -34
  429. package/src/tests/fourslash/findallreferences.importalias.fourslash.ts +0 -34
  430. package/src/tests/fourslash/findallreferences.invokedFromLibrary.fourslash.ts +0 -52
  431. package/src/tests/fourslash/findallreferences.module.nested.fourslash.ts +0 -67
  432. package/src/tests/fourslash/findallreferences.modules.duplicated.fourslash.ts +0 -59
  433. package/src/tests/fourslash/findallreferences.modules.fourslash.ts +0 -46
  434. package/src/tests/fourslash/findallreferences.modules.shadow.fourslash.ts +0 -95
  435. package/src/tests/fourslash/findallreferences.openFiles.fourslash.ts +0 -37
  436. package/src/tests/fourslash/findallreferences.parameter.fourslash.ts +0 -24
  437. package/src/tests/fourslash/findallreferences.sourceAndStub.class.fourslash.ts +0 -33
  438. package/src/tests/fourslash/findallreferences.sourceAndStub.classMethod.fourslash.ts +0 -37
  439. package/src/tests/fourslash/findallreferences.sourceAndStub.classPropertyReadOnly.fourslash.ts +0 -40
  440. package/src/tests/fourslash/findallreferences.sourceAndStub.classPropertyReadWrite.fourslash.skip.ts +0 -48
  441. package/src/tests/fourslash/findallreferences.sourceAndStub.function.fourslash.ts +0 -35
  442. package/src/tests/fourslash/findallreferences.variable.fourslash.ts +0 -24
  443. package/src/tests/fourslash/fourslash.ts +0 -411
  444. package/src/tests/fourslash/highlightreferences.attributes.fourslash.ts +0 -31
  445. package/src/tests/fourslash/hover.builtinDocstrings.fourslash.ts +0 -64
  446. package/src/tests/fourslash/hover.classNoInit.fourslash.ts +0 -14
  447. package/src/tests/fourslash/hover.docFromScr.stringFormat.fourslash.ts +0 -52
  448. package/src/tests/fourslash/hover.docFromSrc.fourslash.ts +0 -83
  449. package/src/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.ts +0 -26
  450. package/src/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.ts +0 -26
  451. package/src/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.ts +0 -23
  452. package/src/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.ts +0 -22
  453. package/src/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.ts +0 -46
  454. package/src/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.ts +0 -29
  455. package/src/tests/fourslash/hover.docFromSrc.typeshed.fourslash.ts +0 -20
  456. package/src/tests/fourslash/hover.docstring.links.fourslash.ts +0 -12
  457. package/src/tests/fourslash/hover.docstring.overloads.fourslash.ts +0 -41
  458. package/src/tests/fourslash/hover.docstring.split.fourslash.ts +0 -24
  459. package/src/tests/fourslash/hover.fourslash.ts +0 -20
  460. package/src/tests/fourslash/hover.import.django.view.fourslash.ts +0 -27
  461. package/src/tests/fourslash/hover.import.fourslash.ts +0 -11
  462. package/src/tests/fourslash/hover.inherited.docFromSrc.fourslash.ts +0 -63
  463. package/src/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.ts +0 -54
  464. package/src/tests/fourslash/hover.inherited.docFromStub.fourslash.ts +0 -42
  465. package/src/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.ts +0 -46
  466. package/src/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.ts +0 -47
  467. package/src/tests/fourslash/hover.inherited.property.docFromSrcWithStub.fourslash.ts +0 -87
  468. package/src/tests/fourslash/hover.inherited.property.docFromStub.fourslash.ts +0 -91
  469. package/src/tests/fourslash/hover.init.fourslash.ts +0 -39
  470. package/src/tests/fourslash/hover.libCodeAndStub.fourslash.ts +0 -52
  471. package/src/tests/fourslash/hover.libCodeNoStub.fourslash.ts +0 -41
  472. package/src/tests/fourslash/hover.libStub.fourslash.ts +0 -41
  473. package/src/tests/fourslash/hover.optionalAliasParameter.fourslash.ts +0 -14
  474. package/src/tests/fourslash/hover.plainText.fourslash.ts +0 -21
  475. package/src/tests/fourslash/hover.typedDict.key.fourslash.ts +0 -51
  476. package/src/tests/fourslash/hover.variable.docString.fourslash.ts +0 -41
  477. package/src/tests/fourslash/hover.wildcardimports.fourslash.ts +0 -80
  478. package/src/tests/fourslash/import.publicSymbols.fourslash.ts +0 -65
  479. package/src/tests/fourslash/import.pytyped.dunderAll.fourslash.ts +0 -77
  480. package/src/tests/fourslash/import.pytyped.privateSymbols.fourslash.ts +0 -65
  481. package/src/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.ts +0 -38
  482. package/src/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.ts +0 -38
  483. package/src/tests/fourslash/import.wildcard.fourslash.ts +0 -27
  484. package/src/tests/fourslash/importnotresolved.fourslash.ts +0 -13
  485. package/src/tests/fourslash/missingModuleSource.disablingInStrictMode.fourslash.ts +0 -20
  486. package/src/tests/fourslash/missingModuleSource.fourslash.ts +0 -14
  487. package/src/tests/fourslash/missingTypeStub.codeAction.fourslash.ts +0 -33
  488. package/src/tests/fourslash/missingTypeStub.command.multipart.fourslash.ts +0 -48
  489. package/src/tests/fourslash/missingTypeStub.command.singlefile.fourslash.ts +0 -38
  490. package/src/tests/fourslash/missingTypeStub.command.singlepart.fourslash.ts +0 -38
  491. package/src/tests/fourslash/missingTypeStub.fourslash.ts +0 -20
  492. package/src/tests/fourslash/missingTypeStub.invokeCodeAction.fourslash.ts +0 -36
  493. package/src/tests/fourslash/noerrors.fourslash.ts +0 -9
  494. package/src/tests/fourslash/orderImports1.command.fourslash.ts +0 -20
  495. package/src/tests/fourslash/orderImports2.command.fourslash.ts +0 -24
  496. package/src/tests/fourslash/rename.externallyHidden.fourslash.ts +0 -24
  497. package/src/tests/fourslash/rename.externallyHidden.params.fourslash.ts +0 -24
  498. package/src/tests/fourslash/rename.fourslash.ts +0 -29
  499. package/src/tests/fourslash/rename.library.fourslash.ts +0 -29
  500. package/src/tests/fourslash/rename.library.sourceAndStub.fourslash.ts +0 -33
  501. package/src/tests/fourslash/rename.multipleDecl.fourslash.ts +0 -21
  502. package/src/tests/fourslash/rename.sourceAndStub.fourslash.ts +0 -37
  503. package/src/tests/fourslash/rename.string.excluded.fourslash.ts +0 -43
  504. package/src/tests/fourslash/rename.string.fourslash.ts +0 -26
  505. package/src/tests/fourslash/signature.builtinDocstrings.fourslash.ts +0 -63
  506. package/src/tests/fourslash/signature.complicated.fourslash.ts +0 -100
  507. package/src/tests/fourslash/signature.cornercases.fourslash.ts +0 -23
  508. package/src/tests/fourslash/signature.docstrings.fourslash.ts +0 -43
  509. package/src/tests/fourslash/signature.docstrings.overloaded.fourslash.ts +0 -50
  510. package/src/tests/fourslash/signature.docstrings.wildcardimports.fourslash.ts +0 -122
  511. package/src/tests/fourslash/signature.overload.fourslash.ts +0 -64
  512. package/src/tests/fourslash/signature.simple.fourslash.ts +0 -104
  513. package/src/tests/harness/fourslash/fourSlashParser.ts +0 -441
  514. package/src/tests/harness/fourslash/fourSlashTypes.ts +0 -134
  515. package/src/tests/harness/fourslash/runner.ts +0 -99
  516. package/src/tests/harness/fourslash/testLanguageService.ts +0 -142
  517. package/src/tests/harness/fourslash/testState.Consts.ts +0 -29
  518. package/src/tests/harness/fourslash/testState.ts +0 -1993
  519. package/src/tests/harness/testAccessHost.ts +0 -23
  520. package/src/tests/harness/testHost.ts +0 -177
  521. package/src/tests/harness/utils.ts +0 -355
  522. package/src/tests/harness/vfs/factory.ts +0 -199
  523. package/src/tests/harness/vfs/filesystem.ts +0 -1893
  524. package/src/tests/harness/vfs/pathValidation.ts +0 -154
  525. package/src/tests/importAdder.test.ts +0 -1361
  526. package/src/tests/importResolver.test.ts +0 -534
  527. package/src/tests/importStatementUtils.test.ts +0 -526
  528. package/src/tests/indentationUtils.ptvs.test.ts +0 -388
  529. package/src/tests/indentationUtils.reindent.test.ts +0 -403
  530. package/src/tests/indentationUtils.test.ts +0 -455
  531. package/src/tests/ipythonMode.test.ts +0 -365
  532. package/src/tests/localizer.test.ts +0 -47
  533. package/src/tests/parseTreeUtils.test.ts +0 -281
  534. package/src/tests/parser.test.ts +0 -99
  535. package/src/tests/pathUtils.test.ts +0 -321
  536. package/src/tests/pyrightFileSystem.test.ts +0 -183
  537. package/src/tests/renameModule.folder.test.ts +0 -261
  538. package/src/tests/renameModule.fromImports.test.ts +0 -952
  539. package/src/tests/renameModule.imports.test.ts +0 -450
  540. package/src/tests/renameModule.misc.test.ts +0 -765
  541. package/src/tests/renameModule.relativePath.test.ts +0 -277
  542. package/src/tests/renameModuleTestUtils.ts +0 -210
  543. package/src/tests/samples/abstractClass1.py +0 -51
  544. package/src/tests/samples/abstractClass2.py +0 -25
  545. package/src/tests/samples/abstractClass3.py +0 -30
  546. package/src/tests/samples/abstractClass4.py +0 -30
  547. package/src/tests/samples/abstractClass5.py +0 -42
  548. package/src/tests/samples/abstractClass6.py +0 -25
  549. package/src/tests/samples/abstractClass7.py +0 -22
  550. package/src/tests/samples/abstractClass8.py +0 -27
  551. package/src/tests/samples/annotated1.py +0 -72
  552. package/src/tests/samples/annotatedVar1.py +0 -22
  553. package/src/tests/samples/annotatedVar2.py +0 -28
  554. package/src/tests/samples/annotatedVar3.py +0 -54
  555. package/src/tests/samples/annotatedVar4.py +0 -24
  556. package/src/tests/samples/annotatedVar5.py +0 -37
  557. package/src/tests/samples/annotatedVar6.py +0 -22
  558. package/src/tests/samples/annotatedVar7.py +0 -13
  559. package/src/tests/samples/annotatedVar8.py +0 -29
  560. package/src/tests/samples/annotations1.py +0 -98
  561. package/src/tests/samples/annotations2.py +0 -33
  562. package/src/tests/samples/annotations3.py +0 -43
  563. package/src/tests/samples/annotations4.py +0 -54
  564. package/src/tests/samples/annotations5.py +0 -9
  565. package/src/tests/samples/annotations6.py +0 -29
  566. package/src/tests/samples/assert1.py +0 -22
  567. package/src/tests/samples/assertType1.py +0 -46
  568. package/src/tests/samples/assignment1.py +0 -58
  569. package/src/tests/samples/assignment10.py +0 -14
  570. package/src/tests/samples/assignment2.py +0 -40
  571. package/src/tests/samples/assignment3.py +0 -46
  572. package/src/tests/samples/assignment4.py +0 -20
  573. package/src/tests/samples/assignment5.py +0 -16
  574. package/src/tests/samples/assignment6.py +0 -25
  575. package/src/tests/samples/assignment7.py +0 -13
  576. package/src/tests/samples/assignment8.py +0 -40
  577. package/src/tests/samples/assignment9.py +0 -25
  578. package/src/tests/samples/assignmentExpr1.py +0 -23
  579. package/src/tests/samples/assignmentExpr2.py +0 -49
  580. package/src/tests/samples/assignmentExpr3.py +0 -27
  581. package/src/tests/samples/assignmentExpr4.py +0 -49
  582. package/src/tests/samples/assignmentExpr5.py +0 -15
  583. package/src/tests/samples/assignmentExpr6.py +0 -10
  584. package/src/tests/samples/assignmentExpr7.py +0 -13
  585. package/src/tests/samples/assignmentExpr8.py +0 -11
  586. package/src/tests/samples/assignmentExpr9.py +0 -28
  587. package/src/tests/samples/async1.py +0 -49
  588. package/src/tests/samples/augmentedAssignment1.py +0 -62
  589. package/src/tests/samples/augmentedAssignment2.py +0 -23
  590. package/src/tests/samples/augmentedAssignment3.py +0 -8
  591. package/src/tests/samples/await1.py +0 -23
  592. package/src/tests/samples/await2.py +0 -25
  593. package/src/tests/samples/badToken1.py +0 -6
  594. package/src/tests/samples/builtins1.py +0 -2
  595. package/src/tests/samples/call1.py +0 -93
  596. package/src/tests/samples/call2.py +0 -118
  597. package/src/tests/samples/call3.py +0 -168
  598. package/src/tests/samples/call4.py +0 -13
  599. package/src/tests/samples/call5.py +0 -95
  600. package/src/tests/samples/call6.py +0 -35
  601. package/src/tests/samples/call7.py +0 -57
  602. package/src/tests/samples/callSite1.py +0 -6
  603. package/src/tests/samples/callSite2.py +0 -12
  604. package/src/tests/samples/callable1.py +0 -53
  605. package/src/tests/samples/callable2.py +0 -58
  606. package/src/tests/samples/callable3.py +0 -28
  607. package/src/tests/samples/callable4.py +0 -32
  608. package/src/tests/samples/callable5.py +0 -40
  609. package/src/tests/samples/callable6.py +0 -83
  610. package/src/tests/samples/callbackProtocol1.py +0 -119
  611. package/src/tests/samples/callbackProtocol2.py +0 -29
  612. package/src/tests/samples/callbackProtocol3.py +0 -23
  613. package/src/tests/samples/callbackProtocol4.py +0 -73
  614. package/src/tests/samples/callbackProtocol5.py +0 -66
  615. package/src/tests/samples/callbackProtocol6.py +0 -66
  616. package/src/tests/samples/callbackProtocol7.py +0 -16
  617. package/src/tests/samples/callbackProtocol8.py +0 -16
  618. package/src/tests/samples/capturedVariable1.py +0 -106
  619. package/src/tests/samples/circular1.py +0 -16
  620. package/src/tests/samples/circular2.py +0 -38
  621. package/src/tests/samples/circularBaseClass.py +0 -17
  622. package/src/tests/samples/classGetItem1.py +0 -30
  623. package/src/tests/samples/classVar1.py +0 -41
  624. package/src/tests/samples/classVar2.py +0 -29
  625. package/src/tests/samples/classVar3.py +0 -46
  626. package/src/tests/samples/classVar4.py +0 -36
  627. package/src/tests/samples/classes1.py +0 -50
  628. package/src/tests/samples/classes3.py +0 -48
  629. package/src/tests/samples/classes4.py +0 -15
  630. package/src/tests/samples/classes5.py +0 -260
  631. package/src/tests/samples/classes6.py +0 -16
  632. package/src/tests/samples/classes7.py +0 -18
  633. package/src/tests/samples/classes8.py +0 -47
  634. package/src/tests/samples/codeFlow1.py +0 -65
  635. package/src/tests/samples/codeFlow2.py +0 -26
  636. package/src/tests/samples/codeFlow3.py +0 -8
  637. package/src/tests/samples/codeFlow4.py +0 -133
  638. package/src/tests/samples/codeFlow5.py +0 -10
  639. package/src/tests/samples/codeFlow6.py +0 -35
  640. package/src/tests/samples/codeFlow7.py +0 -35
  641. package/src/tests/samples/comparison1.py +0 -77
  642. package/src/tests/samples/comparison2.py +0 -37
  643. package/src/tests/samples/complex1.py +0 -17
  644. package/src/tests/samples/constant1.py +0 -40
  645. package/src/tests/samples/constants1.py +0 -64
  646. package/src/tests/samples/constructor1.py +0 -30
  647. package/src/tests/samples/constructor10.py +0 -19
  648. package/src/tests/samples/constructor11.py +0 -32
  649. package/src/tests/samples/constructor12.py +0 -20
  650. package/src/tests/samples/constructor13.py +0 -15
  651. package/src/tests/samples/constructor2.py +0 -180
  652. package/src/tests/samples/constructor3.py +0 -18
  653. package/src/tests/samples/constructor4.py +0 -25
  654. package/src/tests/samples/constructor5.py +0 -25
  655. package/src/tests/samples/constructor6.py +0 -70
  656. package/src/tests/samples/constructor7.py +0 -11
  657. package/src/tests/samples/constructor8.py +0 -99
  658. package/src/tests/samples/constructor9.py +0 -19
  659. package/src/tests/samples/coroutines1.py +0 -60
  660. package/src/tests/samples/coroutines2.py +0 -20
  661. package/src/tests/samples/coroutines3.py +0 -37
  662. package/src/tests/samples/dataclass1.py +0 -44
  663. package/src/tests/samples/dataclass10.py +0 -45
  664. package/src/tests/samples/dataclass11.py +0 -53
  665. package/src/tests/samples/dataclass12.py +0 -32
  666. package/src/tests/samples/dataclass13.py +0 -42
  667. package/src/tests/samples/dataclass14.py +0 -38
  668. package/src/tests/samples/dataclass15.py +0 -58
  669. package/src/tests/samples/dataclass16.py +0 -21
  670. package/src/tests/samples/dataclass17.py +0 -46
  671. package/src/tests/samples/dataclass18.py +0 -57
  672. package/src/tests/samples/dataclass19.py +0 -44
  673. package/src/tests/samples/dataclass2.py +0 -30
  674. package/src/tests/samples/dataclass20.py +0 -71
  675. package/src/tests/samples/dataclass21.py +0 -13
  676. package/src/tests/samples/dataclass3.py +0 -18
  677. package/src/tests/samples/dataclass4.py +0 -64
  678. package/src/tests/samples/dataclass5.py +0 -81
  679. package/src/tests/samples/dataclass6.py +0 -29
  680. package/src/tests/samples/dataclass7.py +0 -93
  681. package/src/tests/samples/dataclass8.py +0 -22
  682. package/src/tests/samples/dataclass9.py +0 -24
  683. package/src/tests/samples/dataclassPostInit1.py +0 -61
  684. package/src/tests/samples/dataclassTransform1.py +0 -71
  685. package/src/tests/samples/dataclassTransform2.py +0 -78
  686. package/src/tests/samples/dataclassTransform3.py +0 -83
  687. package/src/tests/samples/dataclassTransform4.py +0 -87
  688. package/src/tests/samples/decorator1.py +0 -20
  689. package/src/tests/samples/decorator2.py +0 -31
  690. package/src/tests/samples/decorator3.py +0 -27
  691. package/src/tests/samples/decorator4.py +0 -37
  692. package/src/tests/samples/decorator5.py +0 -29
  693. package/src/tests/samples/decorator6.py +0 -34
  694. package/src/tests/samples/defaultInitializer1.py +0 -26
  695. package/src/tests/samples/deprecated1.py +0 -37
  696. package/src/tests/samples/descriptor1.py +0 -134
  697. package/src/tests/samples/descriptor2.py +0 -29
  698. package/src/tests/samples/dictionary1.py +0 -42
  699. package/src/tests/samples/dictionary2.py +0 -14
  700. package/src/tests/samples/dictionary3.py +0 -30
  701. package/src/tests/samples/dictionary4.py +0 -106
  702. package/src/tests/samples/dunderAll1.py +0 -32
  703. package/src/tests/samples/dunderAll2.py +0 -16
  704. package/src/tests/samples/dunderAll3.pyi +0 -16
  705. package/src/tests/samples/duplicateDeclaration1.py +0 -115
  706. package/src/tests/samples/duplicateDeclaration2.py +0 -45
  707. package/src/tests/samples/duplicateImports1.py +0 -13
  708. package/src/tests/samples/ellipsis1.pyi +0 -48
  709. package/src/tests/samples/emptyContainers1.py +0 -89
  710. package/src/tests/samples/enums1.py +0 -52
  711. package/src/tests/samples/enums2.py +0 -15
  712. package/src/tests/samples/enums3.py +0 -24
  713. package/src/tests/samples/enums4.py +0 -23
  714. package/src/tests/samples/enums5.py +0 -16
  715. package/src/tests/samples/enums6.py +0 -33
  716. package/src/tests/samples/enums7.py +0 -54
  717. package/src/tests/samples/enums8.py +0 -14
  718. package/src/tests/samples/expressions1.py +0 -54
  719. package/src/tests/samples/expressions2.py +0 -29
  720. package/src/tests/samples/expressions3.py +0 -26
  721. package/src/tests/samples/expressions4.py +0 -23
  722. package/src/tests/samples/expressions5.py +0 -70
  723. package/src/tests/samples/expressions6.py +0 -14
  724. package/src/tests/samples/expressions7.py +0 -40
  725. package/src/tests/samples/expressions8.py +0 -26
  726. package/src/tests/samples/expressions9.py +0 -14
  727. package/src/tests/samples/final1.py +0 -14
  728. package/src/tests/samples/final2.py +0 -86
  729. package/src/tests/samples/final3.py +0 -179
  730. package/src/tests/samples/final4.pyi +0 -21
  731. package/src/tests/samples/final5.py +0 -18
  732. package/src/tests/samples/forLoop1.py +0 -88
  733. package/src/tests/samples/forLoop2.py +0 -48
  734. package/src/tests/samples/fstring1.py +0 -66
  735. package/src/tests/samples/fstring2.py +0 -12
  736. package/src/tests/samples/fstring3.py +0 -35
  737. package/src/tests/samples/fstring4.py +0 -17
  738. package/src/tests/samples/fstring5.py +0 -17
  739. package/src/tests/samples/fstring6.py +0 -14
  740. package/src/tests/samples/function1.py +0 -12
  741. package/src/tests/samples/function10.py +0 -20
  742. package/src/tests/samples/function11.py +0 -36
  743. package/src/tests/samples/function2.py +0 -7
  744. package/src/tests/samples/function3.py +0 -82
  745. package/src/tests/samples/function4.py +0 -13
  746. package/src/tests/samples/function6.py +0 -24
  747. package/src/tests/samples/function7.py +0 -13
  748. package/src/tests/samples/function8.py +0 -38
  749. package/src/tests/samples/function9.py +0 -75
  750. package/src/tests/samples/functionAnnotation1.py +0 -61
  751. package/src/tests/samples/functionAnnotation2.py +0 -26
  752. package/src/tests/samples/functionAnnotation3.py +0 -37
  753. package/src/tests/samples/functionAnnotation4.py +0 -22
  754. package/src/tests/samples/functionMember1.py +0 -18
  755. package/src/tests/samples/functionMember2.py +0 -45
  756. package/src/tests/samples/generators1.py +0 -122
  757. package/src/tests/samples/generators10.py +0 -18
  758. package/src/tests/samples/generators11.py +0 -27
  759. package/src/tests/samples/generators12.py +0 -25
  760. package/src/tests/samples/generators13.py +0 -65
  761. package/src/tests/samples/generators14.py +0 -19
  762. package/src/tests/samples/generators15.py +0 -26
  763. package/src/tests/samples/generators2.py +0 -31
  764. package/src/tests/samples/generators3.py +0 -42
  765. package/src/tests/samples/generators4.py +0 -33
  766. package/src/tests/samples/generators5.py +0 -24
  767. package/src/tests/samples/generators6.py +0 -14
  768. package/src/tests/samples/generators7.py +0 -18
  769. package/src/tests/samples/generators8.py +0 -12
  770. package/src/tests/samples/generators9.py +0 -19
  771. package/src/tests/samples/generic1.py +0 -41
  772. package/src/tests/samples/genericTypes1.py +0 -12
  773. package/src/tests/samples/genericTypes10.py +0 -38
  774. package/src/tests/samples/genericTypes11.py +0 -26
  775. package/src/tests/samples/genericTypes12.py +0 -14
  776. package/src/tests/samples/genericTypes13.py +0 -27
  777. package/src/tests/samples/genericTypes14.py +0 -22
  778. package/src/tests/samples/genericTypes15.py +0 -13
  779. package/src/tests/samples/genericTypes16.py +0 -15
  780. package/src/tests/samples/genericTypes17.py +0 -24
  781. package/src/tests/samples/genericTypes18.py +0 -135
  782. package/src/tests/samples/genericTypes19.py +0 -32
  783. package/src/tests/samples/genericTypes2.py +0 -40
  784. package/src/tests/samples/genericTypes20.py +0 -44
  785. package/src/tests/samples/genericTypes21.py +0 -29
  786. package/src/tests/samples/genericTypes22.py +0 -23
  787. package/src/tests/samples/genericTypes23.py +0 -27
  788. package/src/tests/samples/genericTypes24.py +0 -32
  789. package/src/tests/samples/genericTypes25.py +0 -37
  790. package/src/tests/samples/genericTypes26.py +0 -31
  791. package/src/tests/samples/genericTypes27.py +0 -14
  792. package/src/tests/samples/genericTypes28.py +0 -51
  793. package/src/tests/samples/genericTypes29.py +0 -24
  794. package/src/tests/samples/genericTypes3.py +0 -13
  795. package/src/tests/samples/genericTypes30.py +0 -32
  796. package/src/tests/samples/genericTypes31.py +0 -30
  797. package/src/tests/samples/genericTypes32.py +0 -25
  798. package/src/tests/samples/genericTypes33.py +0 -46
  799. package/src/tests/samples/genericTypes34.py +0 -54
  800. package/src/tests/samples/genericTypes35.py +0 -45
  801. package/src/tests/samples/genericTypes36.py +0 -35
  802. package/src/tests/samples/genericTypes37.py +0 -26
  803. package/src/tests/samples/genericTypes38.py +0 -15
  804. package/src/tests/samples/genericTypes39.py +0 -82
  805. package/src/tests/samples/genericTypes4.py +0 -37
  806. package/src/tests/samples/genericTypes40.py +0 -38
  807. package/src/tests/samples/genericTypes41.py +0 -16
  808. package/src/tests/samples/genericTypes42.py +0 -32
  809. package/src/tests/samples/genericTypes43.py +0 -24
  810. package/src/tests/samples/genericTypes44.py +0 -33
  811. package/src/tests/samples/genericTypes45.py +0 -43
  812. package/src/tests/samples/genericTypes46.py +0 -66
  813. package/src/tests/samples/genericTypes47.py +0 -39
  814. package/src/tests/samples/genericTypes48.py +0 -18
  815. package/src/tests/samples/genericTypes49.py +0 -41
  816. package/src/tests/samples/genericTypes5.py +0 -42
  817. package/src/tests/samples/genericTypes50.py +0 -62
  818. package/src/tests/samples/genericTypes51.py +0 -55
  819. package/src/tests/samples/genericTypes52.py +0 -34
  820. package/src/tests/samples/genericTypes53.py +0 -42
  821. package/src/tests/samples/genericTypes54.py +0 -31
  822. package/src/tests/samples/genericTypes55.py +0 -61
  823. package/src/tests/samples/genericTypes56.py +0 -19
  824. package/src/tests/samples/genericTypes57.py +0 -30
  825. package/src/tests/samples/genericTypes58.py +0 -52
  826. package/src/tests/samples/genericTypes59.py +0 -71
  827. package/src/tests/samples/genericTypes6.py +0 -49
  828. package/src/tests/samples/genericTypes60.py +0 -27
  829. package/src/tests/samples/genericTypes61.py +0 -34
  830. package/src/tests/samples/genericTypes62.py +0 -26
  831. package/src/tests/samples/genericTypes63.py +0 -32
  832. package/src/tests/samples/genericTypes64.py +0 -16
  833. package/src/tests/samples/genericTypes65.py +0 -15
  834. package/src/tests/samples/genericTypes66.py +0 -30
  835. package/src/tests/samples/genericTypes67.py +0 -57
  836. package/src/tests/samples/genericTypes68.py +0 -14
  837. package/src/tests/samples/genericTypes69.py +0 -45
  838. package/src/tests/samples/genericTypes7.py +0 -24
  839. package/src/tests/samples/genericTypes70.py +0 -31
  840. package/src/tests/samples/genericTypes71.py +0 -72
  841. package/src/tests/samples/genericTypes72.py +0 -24
  842. package/src/tests/samples/genericTypes73.py +0 -14
  843. package/src/tests/samples/genericTypes74.py +0 -23
  844. package/src/tests/samples/genericTypes75.py +0 -45
  845. package/src/tests/samples/genericTypes76.py +0 -107
  846. package/src/tests/samples/genericTypes77.py +0 -26
  847. package/src/tests/samples/genericTypes78.py +0 -23
  848. package/src/tests/samples/genericTypes79.py +0 -37
  849. package/src/tests/samples/genericTypes8.py +0 -26
  850. package/src/tests/samples/genericTypes80.py +0 -10
  851. package/src/tests/samples/genericTypes81.py +0 -32
  852. package/src/tests/samples/genericTypes82.py +0 -19
  853. package/src/tests/samples/genericTypes83.py +0 -28
  854. package/src/tests/samples/genericTypes84.py +0 -11
  855. package/src/tests/samples/genericTypes85.py +0 -20
  856. package/src/tests/samples/genericTypes86.py +0 -15
  857. package/src/tests/samples/genericTypes87.py +0 -21
  858. package/src/tests/samples/genericTypes88.py +0 -25
  859. package/src/tests/samples/genericTypes89.py +0 -17
  860. package/src/tests/samples/genericTypes9.py +0 -109
  861. package/src/tests/samples/genericTypes90.py +0 -12
  862. package/src/tests/samples/genericTypes91.py +0 -20
  863. package/src/tests/samples/import1.py +0 -7
  864. package/src/tests/samples/import10.py +0 -11
  865. package/src/tests/samples/import11.py +0 -11
  866. package/src/tests/samples/import12.py +0 -5
  867. package/src/tests/samples/import13.py +0 -6
  868. package/src/tests/samples/import14.py +0 -10
  869. package/src/tests/samples/import2.py +0 -27
  870. package/src/tests/samples/import3.py +0 -8
  871. package/src/tests/samples/import4.py +0 -15
  872. package/src/tests/samples/import5.py +0 -6
  873. package/src/tests/samples/import6.py +0 -17
  874. package/src/tests/samples/import7.py +0 -14
  875. package/src/tests/samples/import8.py +0 -7
  876. package/src/tests/samples/import9.py +0 -7
  877. package/src/tests/samples/inconsistentConstructor1.py +0 -23
  878. package/src/tests/samples/inconsistentSpaceTab1.py +0 -9
  879. package/src/tests/samples/inconsistentSpaceTab2.py +0 -10
  880. package/src/tests/samples/index1.py +0 -97
  881. package/src/tests/samples/inferredTypes1.py +0 -25
  882. package/src/tests/samples/initVar1.py +0 -23
  883. package/src/tests/samples/initsubclass1.py +0 -46
  884. package/src/tests/samples/initsubclass2.py +0 -16
  885. package/src/tests/samples/isinstance1.py +0 -57
  886. package/src/tests/samples/isinstance10.py +0 -15
  887. package/src/tests/samples/isinstance2.py +0 -28
  888. package/src/tests/samples/isinstance3.py +0 -59
  889. package/src/tests/samples/isinstance4.py +0 -57
  890. package/src/tests/samples/isinstance5.py +0 -8
  891. package/src/tests/samples/isinstance6.py +0 -19
  892. package/src/tests/samples/isinstance7.py +0 -42
  893. package/src/tests/samples/isinstance9.py +0 -26
  894. package/src/tests/samples/kwargsUnpack1.py +0 -116
  895. package/src/tests/samples/lambda1.py +0 -77
  896. package/src/tests/samples/lambda2.py +0 -26
  897. package/src/tests/samples/lambda3.py +0 -34
  898. package/src/tests/samples/lambda4.py +0 -70
  899. package/src/tests/samples/lambda5.py +0 -23
  900. package/src/tests/samples/lambda6.py +0 -15
  901. package/src/tests/samples/lines1.py +0 -14
  902. package/src/tests/samples/list1.py +0 -90
  903. package/src/tests/samples/listComprehension1.py +0 -45
  904. package/src/tests/samples/listComprehension2.py +0 -17
  905. package/src/tests/samples/listComprehension3.py +0 -12
  906. package/src/tests/samples/listComprehension4.py +0 -15
  907. package/src/tests/samples/listComprehension5.py +0 -20
  908. package/src/tests/samples/listComprehension6.py +0 -14
  909. package/src/tests/samples/listComprehension7.py +0 -15
  910. package/src/tests/samples/listComprehension8.py +0 -15
  911. package/src/tests/samples/literalString1.py +0 -43
  912. package/src/tests/samples/literals1.py +0 -48
  913. package/src/tests/samples/literals2.py +0 -30
  914. package/src/tests/samples/literals3.py +0 -40
  915. package/src/tests/samples/literals4.py +0 -10
  916. package/src/tests/samples/literals5.py +0 -28
  917. package/src/tests/samples/literals6.py +0 -90
  918. package/src/tests/samples/literals7.py +0 -38
  919. package/src/tests/samples/loops1.py +0 -45
  920. package/src/tests/samples/loops10.py +0 -11
  921. package/src/tests/samples/loops11.py +0 -22
  922. package/src/tests/samples/loops12.py +0 -18
  923. package/src/tests/samples/loops13.py +0 -13
  924. package/src/tests/samples/loops14.py +0 -22
  925. package/src/tests/samples/loops15.py +0 -22
  926. package/src/tests/samples/loops16.py +0 -322
  927. package/src/tests/samples/loops17.py +0 -9
  928. package/src/tests/samples/loops18.py +0 -23
  929. package/src/tests/samples/loops19.py +0 -14
  930. package/src/tests/samples/loops2.py +0 -25
  931. package/src/tests/samples/loops20.py +0 -41
  932. package/src/tests/samples/loops21.py +0 -18
  933. package/src/tests/samples/loops22.py +0 -21
  934. package/src/tests/samples/loops23.py +0 -16
  935. package/src/tests/samples/loops24.py +0 -12
  936. package/src/tests/samples/loops25.py +0 -45
  937. package/src/tests/samples/loops26.py +0 -12
  938. package/src/tests/samples/loops3.py +0 -11
  939. package/src/tests/samples/loops4.py +0 -17
  940. package/src/tests/samples/loops5.py +0 -14
  941. package/src/tests/samples/loops6.py +0 -25
  942. package/src/tests/samples/loops7.py +0 -14
  943. package/src/tests/samples/loops8.py +0 -17
  944. package/src/tests/samples/loops9.py +0 -25
  945. package/src/tests/samples/match1.py +0 -190
  946. package/src/tests/samples/match10.py +0 -67
  947. package/src/tests/samples/match2.py +0 -340
  948. package/src/tests/samples/match3.py +0 -364
  949. package/src/tests/samples/match4.py +0 -100
  950. package/src/tests/samples/match5.py +0 -70
  951. package/src/tests/samples/match6.py +0 -64
  952. package/src/tests/samples/match7.py +0 -65
  953. package/src/tests/samples/match8.py +0 -19
  954. package/src/tests/samples/match9.py +0 -53
  955. package/src/tests/samples/maxParseDepth1.py +0 -499
  956. package/src/tests/samples/maxParseDepth2.py +0 -16
  957. package/src/tests/samples/memberAccess1.py +0 -70
  958. package/src/tests/samples/memberAccess10.py +0 -65
  959. package/src/tests/samples/memberAccess11.py +0 -37
  960. package/src/tests/samples/memberAccess12.py +0 -36
  961. package/src/tests/samples/memberAccess13.py +0 -17
  962. package/src/tests/samples/memberAccess14.py +0 -63
  963. package/src/tests/samples/memberAccess15.py +0 -20
  964. package/src/tests/samples/memberAccess16.py +0 -12
  965. package/src/tests/samples/memberAccess17.py +0 -31
  966. package/src/tests/samples/memberAccess18.py +0 -31
  967. package/src/tests/samples/memberAccess2.py +0 -45
  968. package/src/tests/samples/memberAccess3.py +0 -64
  969. package/src/tests/samples/memberAccess4.py +0 -91
  970. package/src/tests/samples/memberAccess5.py +0 -26
  971. package/src/tests/samples/memberAccess6.py +0 -52
  972. package/src/tests/samples/memberAccess7.py +0 -36
  973. package/src/tests/samples/memberAccess8.py +0 -75
  974. package/src/tests/samples/memberAccess9.py +0 -11
  975. package/src/tests/samples/metaclass1.py +0 -7
  976. package/src/tests/samples/metaclass2.py +0 -35
  977. package/src/tests/samples/metaclass3.py +0 -43
  978. package/src/tests/samples/metaclass4.py +0 -26
  979. package/src/tests/samples/metaclass5.py +0 -33
  980. package/src/tests/samples/metaclass6.py +0 -15
  981. package/src/tests/samples/metaclass7.py +0 -38
  982. package/src/tests/samples/metaclass8.py +0 -20
  983. package/src/tests/samples/metaclass9.py +0 -77
  984. package/src/tests/samples/methodOverride1.py +0 -507
  985. package/src/tests/samples/methodOverride2.py +0 -74
  986. package/src/tests/samples/methodOverride3.py +0 -111
  987. package/src/tests/samples/methodOverride4.py +0 -36
  988. package/src/tests/samples/missingSuper1.py +0 -73
  989. package/src/tests/samples/module1.py +0 -13
  990. package/src/tests/samples/module2.py +0 -7
  991. package/src/tests/samples/mro1.py +0 -16
  992. package/src/tests/samples/mro2.py +0 -45
  993. package/src/tests/samples/mro3.py +0 -30
  994. package/src/tests/samples/mro4.py +0 -30
  995. package/src/tests/samples/nameBindings1.py +0 -48
  996. package/src/tests/samples/nameBindings2.py +0 -9
  997. package/src/tests/samples/nameBindings3.py +0 -36
  998. package/src/tests/samples/nameBindings4.py +0 -10
  999. package/src/tests/samples/nameBindings5.py +0 -53
  1000. package/src/tests/samples/namedTuples1.py +0 -103
  1001. package/src/tests/samples/namedTuples2.py +0 -56
  1002. package/src/tests/samples/namedTuples3.py +0 -15
  1003. package/src/tests/samples/namedTuples4.py +0 -24
  1004. package/src/tests/samples/namedTuples5.py +0 -15
  1005. package/src/tests/samples/namedTuples6.py +0 -31
  1006. package/src/tests/samples/namedTuples7.py +0 -27
  1007. package/src/tests/samples/never1.py +0 -12
  1008. package/src/tests/samples/never2.py +0 -43
  1009. package/src/tests/samples/newType1.py +0 -34
  1010. package/src/tests/samples/newType2.py +0 -25
  1011. package/src/tests/samples/newType3.py +0 -34
  1012. package/src/tests/samples/newType4.py +0 -8
  1013. package/src/tests/samples/none1.py +0 -29
  1014. package/src/tests/samples/none2.py +0 -22
  1015. package/src/tests/samples/noreturn1.py +0 -78
  1016. package/src/tests/samples/noreturn2.py +0 -37
  1017. package/src/tests/samples/noreturn3.py +0 -16
  1018. package/src/tests/samples/noreturn4.py +0 -29
  1019. package/src/tests/samples/operators1.py +0 -101
  1020. package/src/tests/samples/operators2.py +0 -30
  1021. package/src/tests/samples/operators3.py +0 -8
  1022. package/src/tests/samples/operators4.py +0 -22
  1023. package/src/tests/samples/operators5.py +0 -5
  1024. package/src/tests/samples/operators6.py +0 -10
  1025. package/src/tests/samples/operators7.py +0 -24
  1026. package/src/tests/samples/operators8.py +0 -125
  1027. package/src/tests/samples/optional1.py +0 -77
  1028. package/src/tests/samples/optional2.py +0 -23
  1029. package/src/tests/samples/overload1.py +0 -50
  1030. package/src/tests/samples/overload10.py +0 -48
  1031. package/src/tests/samples/overload2.py +0 -37
  1032. package/src/tests/samples/overload3.py +0 -29
  1033. package/src/tests/samples/overload4.py +0 -46
  1034. package/src/tests/samples/overload5.py +0 -333
  1035. package/src/tests/samples/overload6.py +0 -64
  1036. package/src/tests/samples/overload7.py +0 -376
  1037. package/src/tests/samples/overload8.py +0 -89
  1038. package/src/tests/samples/overload9.py +0 -19
  1039. package/src/tests/samples/package1/__init__.py +0 -3
  1040. package/src/tests/samples/package1/psyche/pysche.py +0 -4
  1041. package/src/tests/samples/package1/psyche.py +0 -4
  1042. package/src/tests/samples/package1/sub/__init__.py +0 -5
  1043. package/src/tests/samples/package1/sub.py +0 -4
  1044. package/src/tests/samples/package1/sub.pyi +0 -2
  1045. package/src/tests/samples/paramInference1.py +0 -27
  1046. package/src/tests/samples/paramNames1.py +0 -39
  1047. package/src/tests/samples/paramSpec1.py +0 -64
  1048. package/src/tests/samples/paramSpec10.py +0 -57
  1049. package/src/tests/samples/paramSpec11.py +0 -36
  1050. package/src/tests/samples/paramSpec12.py +0 -88
  1051. package/src/tests/samples/paramSpec13.py +0 -112
  1052. package/src/tests/samples/paramSpec14.py +0 -30
  1053. package/src/tests/samples/paramSpec15.py +0 -28
  1054. package/src/tests/samples/paramSpec16.py +0 -28
  1055. package/src/tests/samples/paramSpec17.py +0 -34
  1056. package/src/tests/samples/paramSpec18.py +0 -43
  1057. package/src/tests/samples/paramSpec19.py +0 -93
  1058. package/src/tests/samples/paramSpec2.py +0 -29
  1059. package/src/tests/samples/paramSpec20.py +0 -87
  1060. package/src/tests/samples/paramSpec21.py +0 -58
  1061. package/src/tests/samples/paramSpec22.py +0 -26
  1062. package/src/tests/samples/paramSpec23.py +0 -21
  1063. package/src/tests/samples/paramSpec24.py +0 -67
  1064. package/src/tests/samples/paramSpec25.py +0 -36
  1065. package/src/tests/samples/paramSpec26.py +0 -25
  1066. package/src/tests/samples/paramSpec27.py +0 -57
  1067. package/src/tests/samples/paramSpec28.py +0 -39
  1068. package/src/tests/samples/paramSpec29.py +0 -37
  1069. package/src/tests/samples/paramSpec3.py +0 -71
  1070. package/src/tests/samples/paramSpec30.py +0 -49
  1071. package/src/tests/samples/paramSpec31.py +0 -16
  1072. package/src/tests/samples/paramSpec32.py +0 -57
  1073. package/src/tests/samples/paramSpec33.py +0 -29
  1074. package/src/tests/samples/paramSpec34.py +0 -29
  1075. package/src/tests/samples/paramSpec35.py +0 -24
  1076. package/src/tests/samples/paramSpec36.py +0 -43
  1077. package/src/tests/samples/paramSpec37.py +0 -25
  1078. package/src/tests/samples/paramSpec4.py +0 -109
  1079. package/src/tests/samples/paramSpec5.py +0 -29
  1080. package/src/tests/samples/paramSpec6.py +0 -17
  1081. package/src/tests/samples/paramSpec7.py +0 -22
  1082. package/src/tests/samples/paramSpec8.py +0 -45
  1083. package/src/tests/samples/paramSpec9.py +0 -57
  1084. package/src/tests/samples/paramType1.py +0 -71
  1085. package/src/tests/samples/parameters1.py +0 -16
  1086. package/src/tests/samples/partial1.py +0 -163
  1087. package/src/tests/samples/partial2.py +0 -31
  1088. package/src/tests/samples/private1.py +0 -55
  1089. package/src/tests/samples/private2.py +0 -11
  1090. package/src/tests/samples/project1/pyrightconfig.json +0 -5
  1091. package/src/tests/samples/project1/sample1.py +0 -0
  1092. package/src/tests/samples/project1/subfolder1/sample2.py +0 -0
  1093. package/src/tests/samples/project1/subfolder1/subfolder1-1/sample3.py +0 -0
  1094. package/src/tests/samples/project2/pyrightconfig.json +0 -3
  1095. package/src/tests/samples/project3/pyrightconfig.json +0 -7
  1096. package/src/tests/samples/project4/presentfile.py +0 -0
  1097. package/src/tests/samples/project4/pyrightconfig.json +0 -11
  1098. package/src/tests/samples/project4/subfolder/presentfile2.py +0 -0
  1099. package/src/tests/samples/project4/subfolder/presentfile3.py +0 -0
  1100. package/src/tests/samples/project5/pyrightconfig.json +0 -4
  1101. package/src/tests/samples/project6/app1.py +0 -0
  1102. package/src/tests/samples/project6/app2.py +0 -0
  1103. package/src/tests/samples/project6/projectA/foo/__init__.py +0 -0
  1104. package/src/tests/samples/project6/projectA/foo/bar/__init__.py +0 -0
  1105. package/src/tests/samples/project6/projectB/foo/__init__.py +0 -0
  1106. package/src/tests/samples/project6/projectB/foo/baz/__init__.py +0 -0
  1107. package/src/tests/samples/project_src/src/module1.py +0 -0
  1108. package/src/tests/samples/project_src_is_pkg/src/__init__.py +0 -0
  1109. package/src/tests/samples/project_src_is_pkg/src/module1.py +0 -0
  1110. package/src/tests/samples/project_src_with_config_extra_paths/pyrightconfig.json +0 -3
  1111. package/src/tests/samples/project_src_with_config_extra_paths/src/module1.py +0 -0
  1112. package/src/tests/samples/project_src_with_config_no_extra_paths/pyrightconfig.json +0 -2
  1113. package/src/tests/samples/project_src_with_config_no_extra_paths/src/module1.py +0 -0
  1114. package/src/tests/samples/project_src_with_extra_paths/src/_vendored/vendored1.py +0 -1
  1115. package/src/tests/samples/project_src_with_extra_paths/src/module1.py +0 -2
  1116. package/src/tests/samples/project_with_pyproject_toml/pyproject.toml +0 -7
  1117. package/src/tests/samples/project_with_venv_auto_detect_exclude/myvenv/Lib/site-packages/library1.py +0 -0
  1118. package/src/tests/samples/project_with_venv_auto_detect_exclude/myvenv/pyvenv.cfg +0 -0
  1119. package/src/tests/samples/project_with_venv_auto_detect_exclude/pyrightconfig.json +0 -2
  1120. package/src/tests/samples/project_with_venv_auto_detect_exclude/sample1.py +0 -0
  1121. package/src/tests/samples/project_with_venv_auto_detect_exclude/subfolder1/sample2.py +0 -0
  1122. package/src/tests/samples/project_with_venv_auto_detect_exclude/subfolder1/subfolder1-1/sample3.py +0 -0
  1123. package/src/tests/samples/project_with_venv_auto_detect_include/excluded/excluded1.py +0 -0
  1124. package/src/tests/samples/project_with_venv_auto_detect_include/myvenv/Lib/site-packages/library1.py +0 -0
  1125. package/src/tests/samples/project_with_venv_auto_detect_include/myvenv/pyvenv.cfg +0 -0
  1126. package/src/tests/samples/project_with_venv_auto_detect_include/pyrightconfig.json +0 -3
  1127. package/src/tests/samples/project_with_venv_auto_detect_include/sample1.py +0 -0
  1128. package/src/tests/samples/project_with_venv_auto_detect_include/subfolder1/sample2.py +0 -0
  1129. package/src/tests/samples/project_with_venv_auto_detect_include/subfolder1/subfolder1-1/sample3.py +0 -0
  1130. package/src/tests/samples/properties1.py +0 -64
  1131. package/src/tests/samples/properties10.py +0 -19
  1132. package/src/tests/samples/properties11.py +0 -45
  1133. package/src/tests/samples/properties12.py +0 -23
  1134. package/src/tests/samples/properties13.py +0 -15
  1135. package/src/tests/samples/properties2.py +0 -34
  1136. package/src/tests/samples/properties3.py +0 -93
  1137. package/src/tests/samples/properties4.py +0 -17
  1138. package/src/tests/samples/properties5.py +0 -29
  1139. package/src/tests/samples/properties6.py +0 -35
  1140. package/src/tests/samples/properties7.py +0 -30
  1141. package/src/tests/samples/properties8.py +0 -26
  1142. package/src/tests/samples/properties9.py +0 -24
  1143. package/src/tests/samples/protocol1.py +0 -132
  1144. package/src/tests/samples/protocol10.py +0 -36
  1145. package/src/tests/samples/protocol11.py +0 -32
  1146. package/src/tests/samples/protocol12.py +0 -12
  1147. package/src/tests/samples/protocol13.py +0 -26
  1148. package/src/tests/samples/protocol14.py +0 -27
  1149. package/src/tests/samples/protocol15.py +0 -27
  1150. package/src/tests/samples/protocol16.py +0 -22
  1151. package/src/tests/samples/protocol17.py +0 -94
  1152. package/src/tests/samples/protocol18.py +0 -27
  1153. package/src/tests/samples/protocol19.py +0 -39
  1154. package/src/tests/samples/protocol2.py +0 -38
  1155. package/src/tests/samples/protocol20.py +0 -22
  1156. package/src/tests/samples/protocol21.py +0 -26
  1157. package/src/tests/samples/protocol22.py +0 -43
  1158. package/src/tests/samples/protocol23.py +0 -41
  1159. package/src/tests/samples/protocol24.py +0 -74
  1160. package/src/tests/samples/protocol25.py +0 -31
  1161. package/src/tests/samples/protocol26.py +0 -40
  1162. package/src/tests/samples/protocol27.py +0 -76
  1163. package/src/tests/samples/protocol28.py +0 -32
  1164. package/src/tests/samples/protocol29.py +0 -26
  1165. package/src/tests/samples/protocol3.py +0 -110
  1166. package/src/tests/samples/protocol30.py +0 -30
  1167. package/src/tests/samples/protocol31.py +0 -22
  1168. package/src/tests/samples/protocol32.py +0 -67
  1169. package/src/tests/samples/protocol33.py +0 -39
  1170. package/src/tests/samples/protocol34.py +0 -21
  1171. package/src/tests/samples/protocol4.py +0 -22
  1172. package/src/tests/samples/protocol5.py +0 -25
  1173. package/src/tests/samples/protocol6.py +0 -65
  1174. package/src/tests/samples/protocol7.py +0 -24
  1175. package/src/tests/samples/protocol8.py +0 -34
  1176. package/src/tests/samples/protocol9.py +0 -35
  1177. package/src/tests/samples/protocolModule1.py +0 -15
  1178. package/src/tests/samples/protocolModule2.py +0 -83
  1179. package/src/tests/samples/protocolModule3.py +0 -14
  1180. package/src/tests/samples/protocolModule4.py +0 -26
  1181. package/src/tests/samples/pseudoGeneric1.py +0 -20
  1182. package/src/tests/samples/pyrightIgnore1.py +0 -11
  1183. package/src/tests/samples/pyrightIgnore2.py +0 -24
  1184. package/src/tests/samples/python2.py +0 -31
  1185. package/src/tests/samples/recursiveTypeAlias1.py +0 -79
  1186. package/src/tests/samples/recursiveTypeAlias2.py +0 -32
  1187. package/src/tests/samples/recursiveTypeAlias3.py +0 -26
  1188. package/src/tests/samples/recursiveTypeAlias4.py +0 -55
  1189. package/src/tests/samples/recursiveTypeAlias5.pyi +0 -10
  1190. package/src/tests/samples/recursiveTypeAlias6.py +0 -25
  1191. package/src/tests/samples/recursiveTypeAlias7.py +0 -15
  1192. package/src/tests/samples/recursiveTypeAlias8.py +0 -38
  1193. package/src/tests/samples/recursiveTypeAlias9.py +0 -22
  1194. package/src/tests/samples/required1.py +0 -47
  1195. package/src/tests/samples/required2.py +0 -56
  1196. package/src/tests/samples/required3.py +0 -22
  1197. package/src/tests/samples/returnTypes1.py +0 -26
  1198. package/src/tests/samples/revealedType1.py +0 -30
  1199. package/src/tests/samples/sample1.py +0 -6
  1200. package/src/tests/samples/self1.py +0 -93
  1201. package/src/tests/samples/self2.py +0 -195
  1202. package/src/tests/samples/self3.py +0 -9
  1203. package/src/tests/samples/self4.py +0 -18
  1204. package/src/tests/samples/self5.py +0 -26
  1205. package/src/tests/samples/setComprehension1.py +0 -34
  1206. package/src/tests/samples/slots1.py +0 -63
  1207. package/src/tests/samples/slots2.py +0 -38
  1208. package/src/tests/samples/slots3.py +0 -35
  1209. package/src/tests/samples/specialization1.py +0 -78
  1210. package/src/tests/samples/specialization2.py +0 -51
  1211. package/src/tests/samples/staticExpressions1.py +0 -52
  1212. package/src/tests/samples/strings1.py +0 -22
  1213. package/src/tests/samples/subscript1.py +0 -74
  1214. package/src/tests/samples/subscript2.py +0 -55
  1215. package/src/tests/samples/subscript3.py +0 -135
  1216. package/src/tests/samples/suiteExpectedColon1.py +0 -4
  1217. package/src/tests/samples/suiteExpectedColon2.py +0 -2
  1218. package/src/tests/samples/suiteExpectedColon3.py +0 -2
  1219. package/src/tests/samples/super1.py +0 -57
  1220. package/src/tests/samples/super2.py +0 -29
  1221. package/src/tests/samples/super3.py +0 -10
  1222. package/src/tests/samples/super4.py +0 -24
  1223. package/src/tests/samples/super5.py +0 -28
  1224. package/src/tests/samples/super6.py +0 -17
  1225. package/src/tests/samples/super7.py +0 -52
  1226. package/src/tests/samples/super8.py +0 -7
  1227. package/src/tests/samples/super9.py +0 -36
  1228. package/src/tests/samples/test_file1.py +0 -0
  1229. package/src/tests/samples/threePartVersion1.py +0 -33
  1230. package/src/tests/samples/totalOrdering1.py +0 -52
  1231. package/src/tests/samples/tryExcept1.py +0 -39
  1232. package/src/tests/samples/tryExcept10.py +0 -12
  1233. package/src/tests/samples/tryExcept2.py +0 -16
  1234. package/src/tests/samples/tryExcept3.py +0 -12
  1235. package/src/tests/samples/tryExcept4.py +0 -28
  1236. package/src/tests/samples/tryExcept5.py +0 -30
  1237. package/src/tests/samples/tryExcept6.py +0 -27
  1238. package/src/tests/samples/tryExcept7.py +0 -17
  1239. package/src/tests/samples/tryExcept8.py +0 -69
  1240. package/src/tests/samples/tryExcept9.py +0 -42
  1241. package/src/tests/samples/tupleUnpack1.py +0 -63
  1242. package/src/tests/samples/tupleUnpack2.py +0 -56
  1243. package/src/tests/samples/tupleUnpack3.py +0 -28
  1244. package/src/tests/samples/tuples1.py +0 -185
  1245. package/src/tests/samples/tuples10.py +0 -30
  1246. package/src/tests/samples/tuples11.py +0 -21
  1247. package/src/tests/samples/tuples12.py +0 -31
  1248. package/src/tests/samples/tuples13.py +0 -26
  1249. package/src/tests/samples/tuples15.py +0 -16
  1250. package/src/tests/samples/tuples16.py +0 -14
  1251. package/src/tests/samples/tuples2.py +0 -23
  1252. package/src/tests/samples/tuples3.py +0 -15
  1253. package/src/tests/samples/tuples4.py +0 -21
  1254. package/src/tests/samples/tuples5.py +0 -16
  1255. package/src/tests/samples/tuples6.py +0 -56
  1256. package/src/tests/samples/tuples7.py +0 -61
  1257. package/src/tests/samples/tuples8.py +0 -98
  1258. package/src/tests/samples/tuples9.py +0 -17
  1259. package/src/tests/samples/typeAlias1.py +0 -37
  1260. package/src/tests/samples/typeAlias10.py +0 -45
  1261. package/src/tests/samples/typeAlias11.py +0 -37
  1262. package/src/tests/samples/typeAlias12.py +0 -20
  1263. package/src/tests/samples/typeAlias13.py +0 -53
  1264. package/src/tests/samples/typeAlias14.py +0 -29
  1265. package/src/tests/samples/typeAlias15.py +0 -24
  1266. package/src/tests/samples/typeAlias16.py +0 -24
  1267. package/src/tests/samples/typeAlias2.py +0 -26
  1268. package/src/tests/samples/typeAlias3.py +0 -35
  1269. package/src/tests/samples/typeAlias4.py +0 -68
  1270. package/src/tests/samples/typeAlias5.py +0 -56
  1271. package/src/tests/samples/typeAlias6.py +0 -51
  1272. package/src/tests/samples/typeAlias7.py +0 -50
  1273. package/src/tests/samples/typeAlias8.py +0 -24
  1274. package/src/tests/samples/typeAlias9.py +0 -35
  1275. package/src/tests/samples/typeGuard1.py +0 -68
  1276. package/src/tests/samples/typeGuard2.py +0 -58
  1277. package/src/tests/samples/typeGuard3.py +0 -98
  1278. package/src/tests/samples/typeIgnore1.py +0 -10
  1279. package/src/tests/samples/typeIgnore2.py +0 -20
  1280. package/src/tests/samples/typeIgnore3.py +0 -22
  1281. package/src/tests/samples/typeIgnore4.py +0 -10
  1282. package/src/tests/samples/typeIgnore5.py +0 -7
  1283. package/src/tests/samples/typeNarrowing1.py +0 -56
  1284. package/src/tests/samples/typeNarrowing2.py +0 -14
  1285. package/src/tests/samples/typeNarrowing3.py +0 -47
  1286. package/src/tests/samples/typeNarrowing4.py +0 -24
  1287. package/src/tests/samples/typeNarrowing5.py +0 -19
  1288. package/src/tests/samples/typeNarrowing6.py +0 -27
  1289. package/src/tests/samples/typeNarrowing7.py +0 -71
  1290. package/src/tests/samples/typeNarrowingAssert1.py +0 -24
  1291. package/src/tests/samples/typeNarrowingCallable1.py +0 -78
  1292. package/src/tests/samples/typeNarrowingEnum1.py +0 -58
  1293. package/src/tests/samples/typeNarrowingEnum2.py +0 -71
  1294. package/src/tests/samples/typeNarrowingFalsy1.py +0 -50
  1295. package/src/tests/samples/typeNarrowingIn1.py +0 -97
  1296. package/src/tests/samples/typeNarrowingIsNone1.py +0 -56
  1297. package/src/tests/samples/typeNarrowingIsNone2.py +0 -8
  1298. package/src/tests/samples/typeNarrowingIsNoneTuple1.py +0 -42
  1299. package/src/tests/samples/typeNarrowingIsNoneTuple2.py +0 -35
  1300. package/src/tests/samples/typeNarrowingIsinstance1.py +0 -162
  1301. package/src/tests/samples/typeNarrowingIsinstance2.py +0 -14
  1302. package/src/tests/samples/typeNarrowingIsinstance3.py +0 -78
  1303. package/src/tests/samples/typeNarrowingIsinstance4.py +0 -50
  1304. package/src/tests/samples/typeNarrowingIsinstance5.py +0 -39
  1305. package/src/tests/samples/typeNarrowingIsinstance6.py +0 -77
  1306. package/src/tests/samples/typeNarrowingIsinstance7.py +0 -19
  1307. package/src/tests/samples/typeNarrowingIsinstance8.py +0 -19
  1308. package/src/tests/samples/typeNarrowingLiteral1.py +0 -35
  1309. package/src/tests/samples/typeNarrowingLiteral2.py +0 -63
  1310. package/src/tests/samples/typeNarrowingLiteralMember1.py +0 -140
  1311. package/src/tests/samples/typeNarrowingLocalConst1.py +0 -136
  1312. package/src/tests/samples/typeNarrowingNoneMember1.py +0 -102
  1313. package/src/tests/samples/typeNarrowingTuple1.py +0 -23
  1314. package/src/tests/samples/typeNarrowingTupleLength1.py +0 -47
  1315. package/src/tests/samples/typeNarrowingTypeIs1.py +0 -95
  1316. package/src/tests/samples/typeNarrowingTypedDict1.py +0 -99
  1317. package/src/tests/samples/typeNarrowingTypedDict2.py +0 -35
  1318. package/src/tests/samples/typeNarrowingTypedDict3.py +0 -45
  1319. package/src/tests/samples/typePromotions1.py +0 -30
  1320. package/src/tests/samples/typeVar1.py +0 -23
  1321. package/src/tests/samples/typeVar10.py +0 -21
  1322. package/src/tests/samples/typeVar11.py +0 -12
  1323. package/src/tests/samples/typeVar2.py +0 -26
  1324. package/src/tests/samples/typeVar3.py +0 -73
  1325. package/src/tests/samples/typeVar4.py +0 -45
  1326. package/src/tests/samples/typeVar5.py +0 -75
  1327. package/src/tests/samples/typeVar6.py +0 -115
  1328. package/src/tests/samples/typeVar7.py +0 -171
  1329. package/src/tests/samples/typeVar8.py +0 -30
  1330. package/src/tests/samples/typeVar9.py +0 -118
  1331. package/src/tests/samples/typedDict1.py +0 -63
  1332. package/src/tests/samples/typedDict10.py +0 -34
  1333. package/src/tests/samples/typedDict11.py +0 -12
  1334. package/src/tests/samples/typedDict12.py +0 -103
  1335. package/src/tests/samples/typedDict13.py +0 -14
  1336. package/src/tests/samples/typedDict14.py +0 -25
  1337. package/src/tests/samples/typedDict15.py +0 -53
  1338. package/src/tests/samples/typedDict16.py +0 -103
  1339. package/src/tests/samples/typedDict17.py +0 -24
  1340. package/src/tests/samples/typedDict18.py +0 -43
  1341. package/src/tests/samples/typedDict2.py +0 -56
  1342. package/src/tests/samples/typedDict3.py +0 -40
  1343. package/src/tests/samples/typedDict4.py +0 -68
  1344. package/src/tests/samples/typedDict5.py +0 -50
  1345. package/src/tests/samples/typedDict6.py +0 -77
  1346. package/src/tests/samples/typedDict7.py +0 -22
  1347. package/src/tests/samples/typedDict8.py +0 -19
  1348. package/src/tests/samples/typedDict9.py +0 -22
  1349. package/src/tests/samples/unbound1.py +0 -18
  1350. package/src/tests/samples/unbound2.py +0 -12
  1351. package/src/tests/samples/unbound3.py +0 -13
  1352. package/src/tests/samples/unbound4.py +0 -25
  1353. package/src/tests/samples/unicode1.py +0 -39
  1354. package/src/tests/samples/uninitializedVariable1.py +0 -27
  1355. package/src/tests/samples/unions1.py +0 -79
  1356. package/src/tests/samples/unions2.py +0 -15
  1357. package/src/tests/samples/unions3.py +0 -48
  1358. package/src/tests/samples/unions4.py +0 -20
  1359. package/src/tests/samples/unions5.py +0 -43
  1360. package/src/tests/samples/unnecessaryCast1.py +0 -13
  1361. package/src/tests/samples/unnecessaryIsInstance1.py +0 -91
  1362. package/src/tests/samples/unnecessaryIsSubclass1.py +0 -22
  1363. package/src/tests/samples/unpack1.py +0 -56
  1364. package/src/tests/samples/unpack2.py +0 -27
  1365. package/src/tests/samples/unpack3.py +0 -16
  1366. package/src/tests/samples/unpack4.py +0 -15
  1367. package/src/tests/samples/unreachable1.py +0 -112
  1368. package/src/tests/samples/unusedCallResult1.py +0 -67
  1369. package/src/tests/samples/unusedCoroutine1.py +0 -23
  1370. package/src/tests/samples/unusedExpression1.py +0 -34
  1371. package/src/tests/samples/unusedVariable1.py +0 -21
  1372. package/src/tests/samples/variadicTypeVar1.py +0 -51
  1373. package/src/tests/samples/variadicTypeVar10.py +0 -65
  1374. package/src/tests/samples/variadicTypeVar11.py +0 -72
  1375. package/src/tests/samples/variadicTypeVar12.py +0 -26
  1376. package/src/tests/samples/variadicTypeVar13.py +0 -35
  1377. package/src/tests/samples/variadicTypeVar14.py +0 -72
  1378. package/src/tests/samples/variadicTypeVar2.py +0 -63
  1379. package/src/tests/samples/variadicTypeVar3.py +0 -86
  1380. package/src/tests/samples/variadicTypeVar4.py +0 -71
  1381. package/src/tests/samples/variadicTypeVar5.py +0 -131
  1382. package/src/tests/samples/variadicTypeVar6.py +0 -78
  1383. package/src/tests/samples/variadicTypeVar7.py +0 -59
  1384. package/src/tests/samples/variadicTypeVar8.py +0 -116
  1385. package/src/tests/samples/variadicTypeVar9.py +0 -38
  1386. package/src/tests/samples/with1.py +0 -117
  1387. package/src/tests/samples/with2.py +0 -63
  1388. package/src/tests/samples/with3.py +0 -66
  1389. package/src/tests/samples/with4.py +0 -24
  1390. package/src/tests/samples/with5.py +0 -33
  1391. package/src/tests/samples/zipfs/bad.egg +0 -1
  1392. package/src/tests/samples/zipfs/bad.zip +0 -1
  1393. package/src/tests/samples/zipfs/basic.egg +0 -0
  1394. package/src/tests/samples/zipfs/basic.zip +0 -0
  1395. package/src/tests/samples/zipfs/corrupt.egg +0 -0
  1396. package/src/tests/samples/zipfs/corrupt.zip +0 -0
  1397. package/src/tests/sourceFile.test.ts +0 -25
  1398. package/src/tests/stringUtils.test.ts +0 -63
  1399. package/src/tests/symbolNameUtils.test.ts +0 -77
  1400. package/src/tests/testState.test.ts +0 -579
  1401. package/src/tests/testUtils.ts +0 -251
  1402. package/src/tests/tokenizer.test.ts +0 -1534
  1403. package/src/tests/typeEvaluator1.test.ts +0 -1372
  1404. package/src/tests/typeEvaluator2.test.ts +0 -1253
  1405. package/src/tests/typeEvaluator3.test.ts +0 -1279
  1406. package/src/tests/typeEvaluator4.test.ts +0 -1178
  1407. package/src/tests/updateSymbolReference.test.ts +0 -1107
  1408. package/src/tests/zipfs.test.ts +0 -116
  1409. package/src/workspaceMap.ts +0 -76
@@ -1,1893 +0,0 @@
1
- /*
2
- * filesystem.ts
3
- * Copyright (c) Microsoft Corporation.
4
- * Licensed under the MIT license.
5
- *
6
- * virtual file system implementation
7
- */
8
-
9
- /* eslint-disable no-dupe-class-members */
10
- import { Dirent, ReadStream, WriteStream } from 'fs';
11
- import { URI } from 'vscode-uri';
12
-
13
- import { FileSystem, FileWatcher, FileWatcherEventHandler, TmpfileOptions } from '../../../common/fileSystem';
14
- import * as pathUtil from '../../../common/pathUtils';
15
- import { bufferFrom, createIOError } from '../utils';
16
- import { closeIterator, getIterator, Metadata, nextResult, SortedMap } from './../utils';
17
- import { validate, ValidationFlags } from './pathValidation';
18
-
19
- export const MODULE_PATH = pathUtil.normalizeSlashes('/');
20
-
21
- let devCount = 0; // A monotonically increasing count of device ids
22
- let inoCount = 0; // A monotonically increasing count of inodes
23
-
24
- export interface DiffOptions {
25
- includeChangedFileWithSameContent?: boolean;
26
- }
27
-
28
- /**
29
- * Represents a virtual POSIX-like file system.
30
- */
31
- export class TestFileSystem implements FileSystem {
32
- /** Indicates whether the file system is case-sensitive (`false`) or case-insensitive (`true`). */
33
- readonly ignoreCase: boolean;
34
-
35
- /** Gets the comparison function used to compare two paths. */
36
- readonly stringComparer: (a: string, b: string) => number;
37
-
38
- // lazy-initialized state that should be mutable even if the FileSystem is frozen.
39
- private _lazy: {
40
- links?: SortedMap<string, Inode>;
41
- shadows?: Map<number, Inode>;
42
- meta?: Metadata;
43
- } = {};
44
-
45
- private _cwd: string; // current working directory
46
- private _time: number | Date | (() => number | Date);
47
- private _shadowRoot: TestFileSystem | undefined;
48
- private _dirStack: string[] | undefined;
49
- private _tmpfileCounter = 0;
50
-
51
- constructor(ignoreCase: boolean, options: FileSystemOptions = {}) {
52
- const { time = -1, files, meta } = options;
53
- this.ignoreCase = ignoreCase;
54
- this.stringComparer = this.ignoreCase
55
- ? pathUtil.comparePathsCaseInsensitive
56
- : pathUtil.comparePathsCaseSensitive;
57
- this._time = time;
58
-
59
- if (meta) {
60
- for (const key of Object.keys(meta)) {
61
- this.meta.set(key, meta[key]);
62
- }
63
- }
64
-
65
- if (files) {
66
- this._applyFiles(files, /*dirname*/ '');
67
- }
68
-
69
- let cwd = options.cwd;
70
- if ((!cwd || !pathUtil.isDiskPathRoot(cwd)) && this._lazy.links) {
71
- const iterator = getIterator(this._lazy.links.keys());
72
- try {
73
- for (let i = nextResult(iterator); i; i = nextResult(iterator)) {
74
- const name = i.value;
75
- cwd = cwd ? pathUtil.resolvePaths(name, cwd) : name;
76
- break;
77
- }
78
- } finally {
79
- closeIterator(iterator);
80
- }
81
- }
82
-
83
- if (cwd) {
84
- validate(cwd, ValidationFlags.Absolute);
85
- this.mkdirpSync(cwd);
86
- }
87
-
88
- this._cwd = cwd || '';
89
- }
90
-
91
- /**
92
- * Gets metadata for this `FileSystem`.
93
- */
94
- get meta(): Metadata {
95
- if (!this._lazy.meta) {
96
- this._lazy.meta = new Metadata(this._shadowRoot ? this._shadowRoot.meta : undefined);
97
- }
98
- return this._lazy.meta;
99
- }
100
-
101
- /**
102
- * Gets a value indicating whether the file system is read-only.
103
- */
104
- get isReadonly() {
105
- return Object.isFrozen(this);
106
- }
107
-
108
- /**
109
- * Makes the file system read-only.
110
- */
111
- makeReadonly() {
112
- Object.freeze(this);
113
- return this;
114
- }
115
-
116
- /**
117
- * Gets the file system shadowed by this file system.
118
- */
119
- get shadowRoot() {
120
- return this._shadowRoot;
121
- }
122
-
123
- /**
124
- * Snapshots the current file system, effectively shadowing itself. This is useful for
125
- * generating file system patches using `.diff()` from one snapshot to the next. Performs
126
- * no action if this file system is read-only.
127
- */
128
- snapshot() {
129
- if (this.isReadonly) {
130
- return;
131
- }
132
- const fs = new TestFileSystem(this.ignoreCase, { time: this._time });
133
- fs._lazy = this._lazy;
134
- fs._cwd = this._cwd;
135
- fs._time = this._time;
136
- fs._shadowRoot = this._shadowRoot;
137
- fs._dirStack = this._dirStack;
138
- fs.makeReadonly();
139
- this._lazy = {};
140
- this._shadowRoot = fs;
141
- }
142
-
143
- /**
144
- * Gets a shadow copy of this file system. Changes to the shadow copy do not affect the
145
- * original, allowing multiple copies of the same core file system without multiple copies
146
- * of the same data.
147
- */
148
- shadow(ignoreCase = this.ignoreCase) {
149
- if (!this.isReadonly) {
150
- throw new Error('Cannot shadow a mutable file system.');
151
- }
152
- if (ignoreCase && !this.ignoreCase) {
153
- throw new Error('Cannot create a case-insensitive file system from a case-sensitive one.');
154
- }
155
- const fs = new TestFileSystem(ignoreCase, { time: this._time });
156
- fs._shadowRoot = this;
157
- fs._cwd = this._cwd;
158
- return fs;
159
- }
160
-
161
- /**
162
- * Gets or sets the timestamp (in milliseconds) used for file status, returning the previous timestamp.
163
- *
164
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html
165
- */
166
- time(value?: number | Date | (() => number | Date)): number {
167
- if (value !== undefined && this.isReadonly) {
168
- throw createIOError('EPERM');
169
- }
170
- let result = this._time;
171
- if (typeof result === 'function') {
172
- result = result();
173
- }
174
- if (typeof result === 'object') {
175
- result = result.getTime();
176
- }
177
- if (result === -1) {
178
- result = Date.now();
179
- }
180
- if (value !== undefined) {
181
- this._time = value;
182
- }
183
- return result;
184
- }
185
-
186
- /**
187
- * Gets the metadata object for a path.
188
- * @param path
189
- */
190
- filemeta(path: string): Metadata {
191
- const { node } = this._walk(this._resolve(path));
192
- if (!node) {
193
- throw createIOError('ENOENT');
194
- }
195
- return this._filemeta(node);
196
- }
197
-
198
- private _filemeta(node: Inode): Metadata {
199
- if (!node.meta) {
200
- const parentMeta = node.shadowRoot && this._shadowRoot && this._shadowRoot._filemeta(node.shadowRoot);
201
- node.meta = new Metadata(parentMeta);
202
- }
203
- return node.meta;
204
- }
205
-
206
- /**
207
- * Get the pathname of the current working directory.
208
- *
209
- * @link - http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html
210
- */
211
- cwd() {
212
- if (!this._cwd) {
213
- throw new Error('The current working directory has not been set.');
214
- }
215
- const { node } = this._walk(this._cwd);
216
- if (!node) {
217
- throw createIOError('ENOENT');
218
- }
219
- if (!isDirectory(node)) {
220
- throw createIOError('ENOTDIR');
221
- }
222
- return this._cwd;
223
- }
224
-
225
- /**
226
- * Changes the current working directory.
227
- *
228
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/chdir.html
229
- */
230
- chdir(path: string) {
231
- if (this.isReadonly) {
232
- throw createIOError('EPERM');
233
- }
234
- path = this._resolve(path);
235
- const { node } = this._walk(path);
236
- if (!node) {
237
- throw createIOError('ENOENT');
238
- }
239
- if (!isDirectory(node)) {
240
- throw createIOError('ENOTDIR');
241
- }
242
- this._cwd = path;
243
- }
244
-
245
- /**
246
- * Pushes the current directory onto the directory stack and changes the current working directory to the supplied path.
247
- */
248
- pushd(path?: string) {
249
- if (this.isReadonly) {
250
- throw createIOError('EPERM');
251
- }
252
- if (path) {
253
- path = this._resolve(path);
254
- }
255
- if (this._cwd) {
256
- if (!this._dirStack) {
257
- this._dirStack = [];
258
- }
259
- this._dirStack.push(this._cwd);
260
- }
261
- if (path && path !== this._cwd) {
262
- this.chdir(path);
263
- }
264
- }
265
-
266
- /**
267
- * Pops the previous directory from the location stack and changes the current directory to that directory.
268
- */
269
- popd() {
270
- if (this.isReadonly) {
271
- throw createIOError('EPERM');
272
- }
273
- const path = this._dirStack && this._dirStack.pop();
274
- if (path) {
275
- this.chdir(path);
276
- }
277
- }
278
-
279
- /**
280
- * Update the file system with a set of files.
281
- */
282
- apply(files: FileSet) {
283
- this._applyFiles(files, this._cwd);
284
- }
285
-
286
- /**
287
- * Scan file system entries along a path. If `path` is a symbolic link, it is dereferenced.
288
- * @param path The path at which to start the scan.
289
- * @param axis The axis along which to traverse.
290
- * @param traversal The traversal scheme to use.
291
- */
292
- scanSync(path: string, axis: Axis, traversal: Traversal) {
293
- path = this._resolve(path);
294
- const results: string[] = [];
295
- this._scan(path, this._stat(this._walk(path)), axis, traversal, /*noFollow*/ false, results);
296
- return results;
297
- }
298
-
299
- /**
300
- * Scan file system entries along a path.
301
- * @param path The path at which to start the scan.
302
- * @param axis The axis along which to traverse.
303
- * @param traversal The traversal scheme to use.
304
- */
305
- lscanSync(path: string, axis: Axis, traversal: Traversal) {
306
- path = this._resolve(path);
307
- const results: string[] = [];
308
- this._scan(path, this._stat(this._walk(path, /*noFollow*/ true)), axis, traversal, /*noFollow*/ true, results);
309
- return results;
310
- }
311
-
312
- createFileSystemWatcher(paths: string[], listener: FileWatcherEventHandler): FileWatcher {
313
- return {
314
- close: () => {
315
- /* left empty */
316
- },
317
- };
318
- }
319
-
320
- getModulePath(): string {
321
- return MODULE_PATH;
322
- }
323
-
324
- tmpdir(): string {
325
- this.mkdirpSync('/tmp');
326
- return pathUtil.normalizeSlashes('/tmp');
327
- }
328
-
329
- tmpfile(options?: TmpfileOptions): string {
330
- // Use an algorithm similar to tmp's.
331
- const prefix = options?.prefix || 'tmp';
332
- const postfix = options?.prefix ? '-' + options.prefix : '';
333
- const name = `${prefix}-${this._tmpfileCounter++}${postfix}`;
334
- const path = pathUtil.combinePaths(this.tmpdir(), name);
335
- this.writeFileSync(path, '');
336
- return path;
337
- }
338
-
339
- realCasePath(path: string): string {
340
- return path;
341
- }
342
-
343
- isMappedFilePath(filepath: string): boolean {
344
- return false;
345
- }
346
-
347
- // Get original filepath if the given filepath is mapped.
348
- getOriginalFilePath(mappedFilePath: string) {
349
- return mappedFilePath;
350
- }
351
-
352
- // Get mapped filepath if the given filepath is mapped.
353
- getMappedFilePath(originalFilepath: string) {
354
- return originalFilepath;
355
- }
356
-
357
- getUri(path: string): string {
358
- return URI.file(path).toString();
359
- }
360
-
361
- private _scan(path: string, stats: Stats, axis: Axis, traversal: Traversal, noFollow: boolean, results: string[]) {
362
- if (axis === 'ancestors-or-self' || axis === 'self' || axis === 'descendants-or-self') {
363
- if (!traversal.accept || traversal.accept(path, stats)) {
364
- results.push(path);
365
- }
366
- }
367
- if (axis === 'ancestors-or-self' || axis === 'ancestors') {
368
- const dirname = pathUtil.getDirectoryPath(path);
369
- if (dirname !== path) {
370
- try {
371
- const stats = this._stat(this._walk(dirname, noFollow));
372
- if (!traversal.traverse || traversal.traverse(dirname, stats)) {
373
- this._scan(dirname, stats, 'ancestors-or-self', traversal, noFollow, results);
374
- }
375
- } catch {
376
- /*ignored*/
377
- }
378
- }
379
- }
380
- if (axis === 'descendants-or-self' || axis === 'descendants') {
381
- if (stats.isDirectory() && (!traversal.traverse || traversal.traverse(path, stats))) {
382
- for (const file of this.readdirSync(path)) {
383
- try {
384
- const childpath = pathUtil.combinePaths(path, file);
385
- const stats = this._stat(this._walk(childpath, noFollow));
386
- this._scan(childpath, stats, 'descendants-or-self', traversal, noFollow, results);
387
- } catch {
388
- /*ignored*/
389
- }
390
- }
391
- }
392
- }
393
- }
394
-
395
- /**
396
- * Mounts a physical or virtual file system at a location in this virtual file system.
397
- *
398
- * @param source The path in the physical (or other virtual) file system.
399
- * @param target The path in this virtual file system.
400
- * @param resolver An object used to resolve files in `source`.
401
- */
402
- mountSync(source: string, target: string, resolver: FileSystemResolver) {
403
- if (this.isReadonly) {
404
- throw createIOError('EROFS');
405
- }
406
-
407
- source = validate(source, ValidationFlags.Absolute);
408
-
409
- const { parent, links, node: existingNode, basename } = this._walk(this._resolve(target), /*noFollow*/ true);
410
- if (existingNode) {
411
- throw createIOError('EEXIST');
412
- }
413
-
414
- const time = this.time();
415
- const node = this._mknod(parent ? parent.dev : ++devCount, S_IFDIR, /*mode*/ 0o777, time);
416
- node.source = source;
417
- node.resolver = resolver;
418
- this._addLink(parent, links, basename, node, time);
419
- }
420
-
421
- /**
422
- * Recursively remove all files and directories underneath the provided path.
423
- */
424
- rimrafSync(path: string) {
425
- try {
426
- const stats = this.lstatSync(path);
427
- if (stats.isFile() || stats.isSymbolicLink()) {
428
- this.unlinkSync(path);
429
- } else if (stats.isDirectory()) {
430
- for (const file of this.readdirSync(path)) {
431
- this.rimrafSync(pathUtil.combinePaths(path, file));
432
- }
433
- this.rmdirSync(path);
434
- }
435
- } catch (e: any) {
436
- if (e.code === 'ENOENT') {
437
- return;
438
- }
439
- throw e;
440
- }
441
- }
442
-
443
- /**
444
- * Make a directory and all of its parent paths (if they don't exist).
445
- */
446
- mkdirpSync(path: string) {
447
- path = this._resolve(path);
448
- const result = this._walk(path, /*noFollow*/ true, (error, result) => {
449
- if (error.code === 'ENOENT') {
450
- this._mkdir(result);
451
- return 'retry';
452
- }
453
- return 'throw';
454
- });
455
-
456
- if (!result.node) {
457
- this._mkdir(result);
458
- }
459
- }
460
-
461
- getFileListing(): string {
462
- let result = '';
463
- const printLinks = (dirname: string | undefined, links: SortedMap<string, Inode>) => {
464
- const iterator = getIterator(links);
465
- try {
466
- for (let i = nextResult(iterator); i; i = nextResult(iterator)) {
467
- const [name, node] = i.value;
468
- const path = dirname ? pathUtil.combinePaths(dirname, name) : name;
469
- const marker = pathUtil.comparePaths(this._cwd, path, this.ignoreCase) === 0 ? '*' : ' ';
470
- if (result) {
471
- result += '\n';
472
- }
473
- result += marker;
474
- if (isDirectory(node)) {
475
- result += pathUtil.ensureTrailingDirectorySeparator(path);
476
- printLinks(path, this._getLinks(node));
477
- } else if (isFile(node)) {
478
- result += path;
479
- } else if (isSymlink(node)) {
480
- result += `${path} -> ${node.symlink}`;
481
- }
482
- }
483
- } finally {
484
- closeIterator(iterator);
485
- }
486
- };
487
- printLinks(/*dirname*/ undefined, this._getRootLinks());
488
- return result;
489
- }
490
-
491
- /**
492
- * Print diagnostic information about the structure of the file system to the console.
493
- */
494
- debugPrint(): void {
495
- console.log(this.getFileListing());
496
- }
497
-
498
- // POSIX API (aligns with NodeJS "fs" module API)
499
-
500
- /**
501
- * Determines whether a path exists.
502
- */
503
- existsSync(path: string) {
504
- const result = this._walk(this._resolve(path), /*noFollow*/ true, () => 'stop');
505
- return result !== undefined && result.node !== undefined;
506
- }
507
-
508
- /**
509
- * Get file status. If `path` is a symbolic link, it is dereferenced.
510
- *
511
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/stat.html
512
- *
513
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
514
- */
515
- statSync(path: string) {
516
- return this._stat(this._walk(this._resolve(path)));
517
- }
518
-
519
- /**
520
- * Change file access times
521
- *
522
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
523
- */
524
- utimesSync(path: string, atime: Date, mtime: Date) {
525
- if (this.isReadonly) {
526
- throw createIOError('EROFS');
527
- }
528
- if (!isFinite(+atime) || !isFinite(+mtime)) {
529
- throw createIOError('EINVAL');
530
- }
531
-
532
- const entry = this._walk(this._resolve(path));
533
- if (!entry || !entry.node) {
534
- throw createIOError('ENOENT');
535
- }
536
- entry.node.atimeMs = +atime;
537
- entry.node.mtimeMs = +mtime;
538
- entry.node.ctimeMs = this.time();
539
- }
540
-
541
- /**
542
- * Get file status. If `path` is a symbolic link, it is dereferenced.
543
- *
544
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/lstat.html
545
- *
546
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
547
- */
548
- lstatSync(path: string) {
549
- return this._stat(this._walk(this._resolve(path), /*noFollow*/ true));
550
- }
551
-
552
- private _stat(entry: WalkResult) {
553
- const node = entry.node;
554
- if (!node) {
555
- throw createIOError(`ENOENT`, entry.realpath);
556
- }
557
- return new Stats(
558
- node.dev,
559
- node.ino,
560
- node.mode,
561
- node.nlink,
562
- /*rdev*/ 0,
563
- /*size*/ isFile(node) ? this._getSize(node) : isSymlink(node) ? node.symlink.length : 0,
564
- /*blksize*/ 4096,
565
- /*blocks*/ 0,
566
- node.atimeMs,
567
- node.mtimeMs,
568
- node.ctimeMs,
569
- node.birthtimeMs
570
- );
571
- }
572
-
573
- /**
574
- * Read a directory. If `path` is a symbolic link, it is dereferenced.
575
- *
576
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/readdir.html
577
- *
578
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
579
- */
580
- readdirSync(path: string) {
581
- const { node } = this._walk(this._resolve(path));
582
- if (!node) {
583
- throw createIOError('ENOENT');
584
- }
585
- if (!isDirectory(node)) {
586
- throw createIOError('ENOTDIR');
587
- }
588
- return Array.from(this._getLinks(node).keys());
589
- }
590
-
591
- /**
592
- * Read a directory. If `path` is a symbolic link, it is dereferenced.
593
- *
594
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/readdir.html
595
- *
596
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
597
- */
598
- readdirEntriesSync(path: string): Dirent[] {
599
- const { node } = this._walk(this._resolve(path));
600
- if (!node) {
601
- throw createIOError('ENOENT');
602
- }
603
- if (!isDirectory(node)) {
604
- throw createIOError('ENOTDIR');
605
- }
606
- const entries = Array.from(this._getLinks(node).entries());
607
- return entries.map(([k, v]) => makeDirEnt(k, v));
608
- }
609
-
610
- /**
611
- * Make a directory.
612
- *
613
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html
614
- *
615
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
616
- */
617
- mkdirSync(path: string) {
618
- if (this.isReadonly) {
619
- throw createIOError('EROFS');
620
- }
621
-
622
- this._mkdir(this._walk(this._resolve(path), /*noFollow*/ true));
623
- }
624
-
625
- private _mkdir({ parent, links, node: existingNode, basename }: WalkResult) {
626
- if (existingNode) {
627
- throw createIOError('EEXIST');
628
- }
629
- const time = this.time();
630
- const node = this._mknod(parent ? parent.dev : ++devCount, S_IFDIR, /*mode*/ 0o777, time);
631
- this._addLink(parent, links, basename, node, time);
632
- }
633
-
634
- /**
635
- * Remove a directory.
636
- *
637
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/rmdir.html
638
- *
639
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
640
- */
641
- rmdirSync(path: string) {
642
- if (this.isReadonly) {
643
- throw createIOError('EROFS');
644
- }
645
- path = this._resolve(path);
646
-
647
- const { parent, links, node, basename } = this._walk(path, /*noFollow*/ true);
648
- if (!parent) {
649
- throw createIOError('EPERM');
650
- }
651
- if (!isDirectory(node)) {
652
- throw createIOError('ENOTDIR');
653
- }
654
- if (this._getLinks(node).size !== 0) {
655
- throw createIOError('ENOTEMPTY');
656
- }
657
-
658
- this._removeLink(parent, links, basename, node);
659
- }
660
-
661
- /**
662
- * Link one file to another file (also known as a "hard link").
663
- *
664
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html
665
- *
666
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
667
- */
668
- linkSync(oldpath: string, newpath: string) {
669
- if (this.isReadonly) {
670
- throw createIOError('EROFS');
671
- }
672
-
673
- const { node } = this._walk(this._resolve(oldpath));
674
- if (!node) {
675
- throw createIOError('ENOENT');
676
- }
677
- if (isDirectory(node)) {
678
- throw createIOError('EPERM');
679
- }
680
-
681
- const { parent, links, basename, node: existingNode } = this._walk(this._resolve(newpath), /*noFollow*/ true);
682
- if (!parent) {
683
- throw createIOError('EPERM');
684
- }
685
- if (existingNode) {
686
- throw createIOError('EEXIST');
687
- }
688
-
689
- this._addLink(parent, links, basename, node);
690
- }
691
-
692
- /**
693
- * Remove a directory entry.
694
- *
695
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/unlink.html
696
- *
697
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
698
- */
699
- unlinkSync(path: string) {
700
- if (this.isReadonly) {
701
- throw createIOError('EROFS');
702
- }
703
-
704
- const { parent, links, node, basename } = this._walk(this._resolve(path), /*noFollow*/ true);
705
- if (!parent) {
706
- throw createIOError('EPERM');
707
- }
708
- if (!node) {
709
- throw createIOError('ENOENT');
710
- }
711
- if (isDirectory(node)) {
712
- throw createIOError('EISDIR');
713
- }
714
-
715
- this._removeLink(parent, links, basename, node);
716
- }
717
-
718
- /**
719
- * Rename a file.
720
- *
721
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html
722
- *
723
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
724
- */
725
- renameSync(oldpath: string, newpath: string) {
726
- if (this.isReadonly) {
727
- throw createIOError('EROFS');
728
- }
729
-
730
- const {
731
- parent: oldParent,
732
- links: oldParentLinks,
733
- node,
734
- basename: oldBasename,
735
- } = this._walk(this._resolve(oldpath), /*noFollow*/ true);
736
-
737
- if (!oldParent) {
738
- throw createIOError('EPERM');
739
- }
740
- if (!node) {
741
- throw createIOError('ENOENT');
742
- }
743
-
744
- const {
745
- parent: newParent,
746
- links: newParentLinks,
747
- node: existingNode,
748
- basename: newBasename,
749
- } = this._walk(this._resolve(newpath), /*noFollow*/ true);
750
-
751
- if (!newParent) {
752
- throw createIOError('EPERM');
753
- }
754
-
755
- const time = this.time();
756
- if (existingNode) {
757
- if (isDirectory(node)) {
758
- if (!isDirectory(existingNode)) {
759
- throw createIOError('ENOTDIR');
760
- }
761
- if (this._getLinks(existingNode).size > 0) {
762
- throw createIOError('ENOTEMPTY');
763
- }
764
- } else {
765
- if (isDirectory(existingNode)) {
766
- throw createIOError('EISDIR');
767
- }
768
- }
769
- this._removeLink(newParent, newParentLinks, newBasename, existingNode, time);
770
- }
771
-
772
- this._replaceLink(oldParent, oldParentLinks, oldBasename, newParent, newParentLinks, newBasename, node, time);
773
- }
774
-
775
- /**
776
- * Make a symbolic link.
777
- *
778
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/symlink.html
779
- *
780
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
781
- */
782
- symlinkSync(target: string, linkpath: string) {
783
- if (this.isReadonly) {
784
- throw createIOError('EROFS');
785
- }
786
-
787
- const { parent, links, node: existingNode, basename } = this._walk(this._resolve(linkpath), /*noFollow*/ true);
788
- if (!parent) {
789
- throw createIOError('EPERM');
790
- }
791
- if (existingNode) {
792
- throw createIOError('EEXIST');
793
- }
794
-
795
- const time = this.time();
796
- const node = this._mknod(parent.dev, S_IFLNK, /*mode*/ 0o666, time);
797
- node.symlink = validate(target, ValidationFlags.RelativeOrAbsolute);
798
- this._addLink(parent, links, basename, node, time);
799
- }
800
-
801
- /**
802
- * Resolve a pathname.
803
- *
804
- * @link http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html
805
- *
806
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
807
- */
808
- realpathSync(path: string) {
809
- const { realpath } = this._walk(this._resolve(path));
810
- return realpath;
811
- }
812
-
813
- /**
814
- * Read from a file.
815
- *
816
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
817
- */
818
- readFileSync(path: string, encoding?: null): Buffer;
819
- /**
820
- * Read from a file.
821
- *
822
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
823
- */
824
- readFileSync(path: string, encoding: BufferEncoding): string;
825
- /**
826
- * Read from a file.
827
- *
828
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
829
- */
830
- readFileSync(path: string, encoding?: BufferEncoding | null): string | Buffer;
831
- readFileSync(path: string, encoding: BufferEncoding | null = null) {
832
- const { node } = this._walk(this._resolve(path));
833
- if (!node) {
834
- throw createIOError('ENOENT');
835
- }
836
- if (isDirectory(node)) {
837
- throw createIOError('EISDIR');
838
- }
839
- if (!isFile(node)) {
840
- throw createIOError('EBADF');
841
- }
842
-
843
- const buffer = this._getBuffer(node).slice();
844
- return encoding ? buffer.toString(encoding) : buffer;
845
- }
846
-
847
- /**
848
- * Write to a file.
849
- *
850
- * NOTE: do not rename this method as it is intended to align with the same named export of the "fs" module.
851
- */
852
- writeFileSync(path: string, data: string | Buffer, encoding: BufferEncoding | null = null) {
853
- if (this.isReadonly) {
854
- throw createIOError('EROFS');
855
- }
856
-
857
- const { parent, links, node: existingNode, basename } = this._walk(this._resolve(path), /*noFollow*/ false);
858
- if (!parent) {
859
- throw createIOError('EPERM');
860
- }
861
-
862
- const time = this.time();
863
- let node = existingNode;
864
- if (!node) {
865
- node = this._mknod(parent.dev, S_IFREG, 0o666, time);
866
- this._addLink(parent, links, basename, node, time);
867
- }
868
-
869
- if (isDirectory(node)) {
870
- throw createIOError('EISDIR');
871
- }
872
- if (!isFile(node)) {
873
- throw createIOError('EBADF');
874
- }
875
- node.buffer = Buffer.isBuffer(data)
876
- ? data.slice()
877
- : bufferFrom('' + data, (encoding as BufferEncoding) || 'utf8');
878
- node.size = node.buffer.byteLength;
879
- node.mtimeMs = time;
880
- node.ctimeMs = time;
881
- }
882
-
883
- readFile(filePath: string): Promise<Buffer> {
884
- return Promise.resolve(this.readFileSync(filePath));
885
- }
886
- readFileText(filePath: string, encoding?: BufferEncoding): Promise<string> {
887
- return Promise.resolve(this.readFileSync(filePath, encoding || 'utf8'));
888
- }
889
-
890
- createReadStream(path: string): ReadStream {
891
- throw new Error('Not implemented in test file system.');
892
- }
893
- createWriteStream(path: string): WriteStream {
894
- throw new Error('Not implemented in test file system.');
895
- }
896
-
897
- copyFileSync(src: string, dst: string): void {
898
- throw new Error('Not implemented in test file system.');
899
- }
900
-
901
- /**
902
- * Generates a `FileSet` patch containing all the entries in this `FileSystem` that are not in `base`.
903
- * @param base The base file system. If not provided, this file system's `shadowRoot` is used (if present).
904
- */
905
- diff(base = this.shadowRoot, options: DiffOptions = {}) {
906
- const differences: FileSet = {};
907
- const hasDifferences = base
908
- ? TestFileSystem._rootDiff(differences, this, base, options)
909
- : TestFileSystem._trackCreatedInodes(differences, this, this._getRootLinks());
910
- return hasDifferences ? differences : undefined;
911
- }
912
-
913
- /**
914
- * Generates a `FileSet` patch containing all the entries in `changed` that are not in `base`.
915
- */
916
- static diff(changed: TestFileSystem, base: TestFileSystem, options: DiffOptions = {}) {
917
- const differences: FileSet = {};
918
- return TestFileSystem._rootDiff(differences, changed, base, options) ? differences : undefined;
919
- }
920
-
921
- isInZipOrEgg(path: string): boolean {
922
- return false;
923
- }
924
-
925
- private static _diffWorker(
926
- container: FileSet,
927
- changed: TestFileSystem,
928
- changedLinks: ReadonlyMap<string, Inode> | undefined,
929
- base: TestFileSystem,
930
- baseLinks: ReadonlyMap<string, Inode> | undefined,
931
- options: DiffOptions
932
- ) {
933
- if (changedLinks && !baseLinks) {
934
- return TestFileSystem._trackCreatedInodes(container, changed, changedLinks);
935
- }
936
- if (baseLinks && !changedLinks) {
937
- return TestFileSystem._trackDeletedInodes(container, baseLinks);
938
- }
939
- if (changedLinks && baseLinks) {
940
- let hasChanges = false;
941
- // track base items missing in changed
942
- baseLinks.forEach((node, basename) => {
943
- if (!changedLinks.has(basename)) {
944
- container[basename] = isDirectory(node) ? new Rmdir() : new Unlink();
945
- hasChanges = true;
946
- }
947
- });
948
- // track changed items missing or differing in base
949
- changedLinks.forEach((changedNode, basename) => {
950
- const baseNode = baseLinks.get(basename);
951
- if (baseNode) {
952
- if (isDirectory(changedNode) && isDirectory(baseNode)) {
953
- return (hasChanges =
954
- TestFileSystem._directoryDiff(
955
- container,
956
- basename,
957
- changed,
958
- changedNode,
959
- base,
960
- baseNode,
961
- options
962
- ) || hasChanges);
963
- }
964
- if (isFile(changedNode) && isFile(baseNode)) {
965
- return (hasChanges =
966
- TestFileSystem._fileDiff(
967
- container,
968
- basename,
969
- changed,
970
- changedNode,
971
- base,
972
- baseNode,
973
- options
974
- ) || hasChanges);
975
- }
976
- if (isSymlink(changedNode) && isSymlink(baseNode)) {
977
- return (hasChanges =
978
- TestFileSystem._symlinkDiff(container, basename, changedNode, baseNode) || hasChanges);
979
- }
980
- }
981
- return (hasChanges =
982
- TestFileSystem._trackCreatedInode(container, basename, changed, changedNode) || hasChanges);
983
- });
984
- return hasChanges;
985
- }
986
- return false;
987
- }
988
-
989
- private static _rootDiff(container: FileSet, changed: TestFileSystem, base: TestFileSystem, options: DiffOptions) {
990
- while (!changed._lazy.links && changed._shadowRoot) {
991
- changed = changed._shadowRoot;
992
- }
993
- while (!base._lazy.links && base._shadowRoot) {
994
- base = base._shadowRoot;
995
- }
996
-
997
- // no difference if the file systems are the same reference
998
- if (changed === base) {
999
- return false;
1000
- }
1001
-
1002
- // no difference if the root links are empty and unshadowed
1003
- if (!changed._lazy.links && !changed._shadowRoot && !base._lazy.links && !base._shadowRoot) {
1004
- return false;
1005
- }
1006
-
1007
- return TestFileSystem._diffWorker(
1008
- container,
1009
- changed,
1010
- changed._getRootLinks(),
1011
- base,
1012
- base._getRootLinks(),
1013
- options
1014
- );
1015
- }
1016
-
1017
- private static _directoryDiff(
1018
- container: FileSet,
1019
- basename: string,
1020
- changed: TestFileSystem,
1021
- changedNode: DirectoryInode,
1022
- base: TestFileSystem,
1023
- baseNode: DirectoryInode,
1024
- options: DiffOptions
1025
- ) {
1026
- while (!changedNode.links && changedNode.shadowRoot) {
1027
- changedNode = changedNode.shadowRoot;
1028
- }
1029
- while (!baseNode.links && baseNode.shadowRoot) {
1030
- baseNode = baseNode.shadowRoot;
1031
- }
1032
-
1033
- // no difference if the nodes are the same reference
1034
- if (changedNode === baseNode) {
1035
- return false;
1036
- }
1037
-
1038
- // no difference if both nodes are non shadowed and have no entries
1039
- if (isEmptyNonShadowedDirectory(changedNode) && isEmptyNonShadowedDirectory(baseNode)) {
1040
- return false;
1041
- }
1042
-
1043
- // no difference if both nodes are unpopulated and point to the same mounted file system
1044
- if (
1045
- !changedNode.links &&
1046
- !baseNode.links &&
1047
- changedNode.resolver &&
1048
- changedNode.source !== undefined &&
1049
- baseNode.resolver === changedNode.resolver &&
1050
- baseNode.source === changedNode.source
1051
- ) {
1052
- return false;
1053
- }
1054
-
1055
- // no difference if both nodes have identical children
1056
- const children: FileSet = {};
1057
- if (
1058
- !TestFileSystem._diffWorker(
1059
- children,
1060
- changed,
1061
- changed._getLinks(changedNode),
1062
- base,
1063
- base._getLinks(baseNode),
1064
- options
1065
- )
1066
- ) {
1067
- return false;
1068
- }
1069
-
1070
- container[basename] = new Directory(children);
1071
- return true;
1072
- }
1073
-
1074
- private static _fileDiff(
1075
- container: FileSet,
1076
- basename: string,
1077
- changed: TestFileSystem,
1078
- changedNode: FileInode,
1079
- base: TestFileSystem,
1080
- baseNode: FileInode,
1081
- options: DiffOptions
1082
- ) {
1083
- while (!changedNode.buffer && changedNode.shadowRoot) {
1084
- changedNode = changedNode.shadowRoot;
1085
- }
1086
- while (!baseNode.buffer && baseNode.shadowRoot) {
1087
- baseNode = baseNode.shadowRoot;
1088
- }
1089
-
1090
- // no difference if the nodes are the same reference
1091
- if (changedNode === baseNode) {
1092
- return false;
1093
- }
1094
-
1095
- // no difference if both nodes are non shadowed and have no entries
1096
- if (isEmptyNonShadowedFile(changedNode) && isEmptyNonShadowedFile(baseNode)) {
1097
- return false;
1098
- }
1099
-
1100
- // no difference if both nodes are unpopulated and point to the same mounted file system
1101
- if (
1102
- !changedNode.buffer &&
1103
- !baseNode.buffer &&
1104
- changedNode.resolver &&
1105
- changedNode.source !== undefined &&
1106
- baseNode.resolver === changedNode.resolver &&
1107
- baseNode.source === changedNode.source
1108
- ) {
1109
- return false;
1110
- }
1111
-
1112
- const changedBuffer = changed._getBuffer(changedNode);
1113
- const baseBuffer = base._getBuffer(baseNode);
1114
-
1115
- // no difference if both buffers are the same reference
1116
- if (changedBuffer === baseBuffer) {
1117
- return false;
1118
- }
1119
-
1120
- // no difference if both buffers are identical
1121
- if (Buffer.compare(changedBuffer, baseBuffer) === 0) {
1122
- if (!options.includeChangedFileWithSameContent) {
1123
- return false;
1124
- }
1125
- container[basename] = new SameFileContentFile(changedBuffer);
1126
- return true;
1127
- }
1128
-
1129
- container[basename] = new File(changedBuffer);
1130
- return true;
1131
- }
1132
-
1133
- private static _symlinkDiff(
1134
- container: FileSet,
1135
- basename: string,
1136
- changedNode: SymlinkInode,
1137
- baseNode: SymlinkInode
1138
- ) {
1139
- // no difference if the nodes are the same reference
1140
- if (changedNode.symlink === baseNode.symlink) {
1141
- return false;
1142
- }
1143
- container[basename] = new Symlink(changedNode.symlink);
1144
- return true;
1145
- }
1146
-
1147
- private static _trackCreatedInode(container: FileSet, basename: string, changed: TestFileSystem, node: Inode) {
1148
- if (isDirectory(node)) {
1149
- const children: FileSet = {};
1150
- TestFileSystem._trackCreatedInodes(children, changed, changed._getLinks(node));
1151
- container[basename] = new Directory(children);
1152
- } else if (isSymlink(node)) {
1153
- container[basename] = new Symlink(node.symlink);
1154
- } else {
1155
- container[basename] = new File(node.buffer || '');
1156
- }
1157
- return true;
1158
- }
1159
-
1160
- private static _trackCreatedInodes(
1161
- container: FileSet,
1162
- changed: TestFileSystem,
1163
- changedLinks: ReadonlyMap<string, Inode>
1164
- ) {
1165
- // no difference if links are empty
1166
- if (!changedLinks.size) {
1167
- return false;
1168
- }
1169
-
1170
- changedLinks.forEach((node, basename) => {
1171
- TestFileSystem._trackCreatedInode(container, basename, changed, node);
1172
- });
1173
- return true;
1174
- }
1175
-
1176
- private static _trackDeletedInodes(container: FileSet, baseLinks: ReadonlyMap<string, Inode>) {
1177
- // no difference if links are empty
1178
- if (!baseLinks.size) {
1179
- return false;
1180
- }
1181
- baseLinks.forEach((node, basename) => {
1182
- container[basename] = isDirectory(node) ? new Rmdir() : new Unlink();
1183
- });
1184
- return true;
1185
- }
1186
-
1187
- private _mknod(dev: number, type: typeof S_IFREG, mode: number, time?: number): FileInode;
1188
- private _mknod(dev: number, type: typeof S_IFDIR, mode: number, time?: number): DirectoryInode;
1189
- private _mknod(dev: number, type: typeof S_IFLNK, mode: number, time?: number): SymlinkInode;
1190
- private _mknod(dev: number, type: number, mode: number, time = this.time()): Inode {
1191
- return {
1192
- dev,
1193
- ino: ++inoCount,
1194
- mode: (mode & ~S_IFMT & ~0o022 & 0o7777) | (type & S_IFMT),
1195
- atimeMs: time,
1196
- mtimeMs: time,
1197
- ctimeMs: time,
1198
- birthtimeMs: time,
1199
- nlink: 0,
1200
- };
1201
- }
1202
-
1203
- private _addLink(
1204
- parent: DirectoryInode | undefined,
1205
- links: SortedMap<string, Inode>,
1206
- name: string,
1207
- node: Inode,
1208
- time = this.time()
1209
- ) {
1210
- links.set(name, node);
1211
- node.nlink++;
1212
- node.ctimeMs = time;
1213
- if (parent) {
1214
- parent.mtimeMs = time;
1215
- }
1216
- if (!parent && !this._cwd) {
1217
- this._cwd = name;
1218
- }
1219
- }
1220
-
1221
- private _removeLink(
1222
- parent: DirectoryInode | undefined,
1223
- links: SortedMap<string, Inode>,
1224
- name: string,
1225
- node: Inode,
1226
- time = this.time()
1227
- ) {
1228
- links.delete(name);
1229
- node.nlink--;
1230
- node.ctimeMs = time;
1231
- if (parent) {
1232
- parent.mtimeMs = time;
1233
- }
1234
- }
1235
-
1236
- private _replaceLink(
1237
- oldParent: DirectoryInode,
1238
- oldLinks: SortedMap<string, Inode>,
1239
- oldName: string,
1240
- newParent: DirectoryInode,
1241
- newLinks: SortedMap<string, Inode>,
1242
- newName: string,
1243
- node: Inode,
1244
- time: number
1245
- ) {
1246
- if (oldParent !== newParent) {
1247
- this._removeLink(oldParent, oldLinks, oldName, node, time);
1248
- this._addLink(newParent, newLinks, newName, node, time);
1249
- } else {
1250
- oldLinks.delete(oldName);
1251
- oldLinks.set(newName, node);
1252
- oldParent.mtimeMs = time;
1253
- newParent.mtimeMs = time;
1254
- }
1255
- }
1256
-
1257
- private _getRootLinks() {
1258
- if (!this._lazy.links) {
1259
- const links = new SortedMap<string, Inode>(this.stringComparer);
1260
- if (this._shadowRoot) {
1261
- this._copyShadowLinks(this._shadowRoot._getRootLinks(), links);
1262
- }
1263
- this._lazy.links = links;
1264
- }
1265
- return this._lazy.links;
1266
- }
1267
-
1268
- private _getLinks(node: DirectoryInode) {
1269
- if (!node.links) {
1270
- const links = new SortedMap<string, Inode>(this.stringComparer);
1271
- const { source, resolver } = node;
1272
- if (source && resolver) {
1273
- node.source = undefined;
1274
- node.resolver = undefined;
1275
- for (const name of resolver.readdirSync(source)) {
1276
- const path = pathUtil.combinePaths(source, name);
1277
- const stats = resolver.statSync(path);
1278
- switch (stats.mode & S_IFMT) {
1279
- case S_IFDIR: {
1280
- const dir = this._mknod(node.dev, S_IFDIR, 0o777);
1281
- dir.source = pathUtil.combinePaths(source, name);
1282
- dir.resolver = resolver;
1283
- this._addLink(node, links, name, dir);
1284
- break;
1285
- }
1286
- case S_IFREG: {
1287
- const file = this._mknod(node.dev, S_IFREG, 0o666);
1288
- file.source = pathUtil.combinePaths(source, name);
1289
- file.resolver = resolver;
1290
- file.size = stats.size;
1291
- this._addLink(node, links, name, file);
1292
- break;
1293
- }
1294
- }
1295
- }
1296
- } else if (this._shadowRoot && node.shadowRoot) {
1297
- this._copyShadowLinks(this._shadowRoot._getLinks(node.shadowRoot), links);
1298
- }
1299
- node.links = links;
1300
- }
1301
- return node.links;
1302
- }
1303
-
1304
- private _getShadow(root: DirectoryInode): DirectoryInode;
1305
- private _getShadow(root: Inode): Inode;
1306
- private _getShadow(root: Inode) {
1307
- const shadows = this._lazy.shadows || (this._lazy.shadows = new Map<number, Inode>());
1308
-
1309
- let shadow = shadows.get(root.ino);
1310
- if (!shadow) {
1311
- shadow = {
1312
- dev: root.dev,
1313
- ino: root.ino,
1314
- mode: root.mode,
1315
- atimeMs: root.atimeMs,
1316
- mtimeMs: root.mtimeMs,
1317
- ctimeMs: root.ctimeMs,
1318
- birthtimeMs: root.birthtimeMs,
1319
- nlink: root.nlink,
1320
- shadowRoot: root,
1321
- };
1322
-
1323
- if (isSymlink(root)) {
1324
- (shadow as SymlinkInode).symlink = root.symlink;
1325
- }
1326
- shadows.set(shadow.ino, shadow);
1327
- }
1328
-
1329
- return shadow;
1330
- }
1331
-
1332
- private _copyShadowLinks(source: ReadonlyMap<string, Inode>, target: SortedMap<string, Inode>) {
1333
- const iterator = getIterator(source);
1334
- try {
1335
- for (let i = nextResult(iterator); i; i = nextResult(iterator)) {
1336
- const [name, root] = i.value;
1337
- target.set(name, this._getShadow(root));
1338
- }
1339
- } finally {
1340
- closeIterator(iterator);
1341
- }
1342
- }
1343
-
1344
- private _getSize(node: FileInode): number {
1345
- if (node.buffer) {
1346
- return node.buffer.byteLength;
1347
- }
1348
- if (node.size !== undefined) {
1349
- return node.size;
1350
- }
1351
- if (node.source && node.resolver) {
1352
- return (node.size = node.resolver.statSync(node.source).size);
1353
- }
1354
- if (this._shadowRoot && node.shadowRoot) {
1355
- return (node.size = this._shadowRoot._getSize(node.shadowRoot));
1356
- }
1357
- return 0;
1358
- }
1359
-
1360
- private _getBuffer(node: FileInode): Buffer {
1361
- if (!node.buffer) {
1362
- const { source, resolver } = node;
1363
- if (source && resolver) {
1364
- node.source = undefined;
1365
- node.resolver = undefined;
1366
- node.size = undefined;
1367
- node.buffer = resolver.readFileSync(source);
1368
- } else if (this._shadowRoot && node.shadowRoot) {
1369
- node.buffer = this._shadowRoot._getBuffer(node.shadowRoot);
1370
- } else {
1371
- node.buffer = Buffer.allocUnsafe(0);
1372
- }
1373
- }
1374
- return node.buffer;
1375
- }
1376
-
1377
- /**
1378
- * Walk a path to its end.
1379
- *
1380
- * @param path The path to follow.
1381
- * @param noFollow A value indicating whether to *not* dereference a symbolic link at the
1382
- * end of a path.
1383
- *
1384
- * @link http://man7.org/linux/man-pages/man7/path_resolution.7.html
1385
- */
1386
- private _walk(
1387
- path: string,
1388
- noFollow?: boolean,
1389
- onError?: (error: NodeJS.ErrnoException, fragment: WalkResult) => 'retry' | 'throw'
1390
- ): WalkResult;
1391
- private _walk(
1392
- path: string,
1393
- noFollow?: boolean,
1394
- onError?: (error: NodeJS.ErrnoException, fragment: WalkResult) => 'stop' | 'retry' | 'throw'
1395
- ): WalkResult | undefined;
1396
- private _walk(
1397
- path: string,
1398
- noFollow?: boolean,
1399
- onError?: (error: NodeJS.ErrnoException, fragment: WalkResult) => 'stop' | 'retry' | 'throw'
1400
- ): WalkResult | undefined {
1401
- let links = this._getRootLinks();
1402
- let parent: DirectoryInode | undefined;
1403
- let components = pathUtil.getPathComponents(path);
1404
- let step = 0;
1405
- let depth = 0;
1406
- let retry = false;
1407
- while (true) {
1408
- if (depth >= 40) {
1409
- throw createIOError('ELOOP');
1410
- }
1411
- const lastStep = step === components.length - 1;
1412
- const basename = components[step];
1413
- const node = links.get(basename);
1414
- if (lastStep && (noFollow || !isSymlink(node))) {
1415
- return { realpath: pathUtil.combinePathComponents(components), basename, parent, links, node };
1416
- }
1417
- if (node === undefined) {
1418
- if (trapError(createIOError('ENOENT'), node)) {
1419
- continue;
1420
- }
1421
- return undefined;
1422
- }
1423
- if (isSymlink(node)) {
1424
- const dirname = pathUtil.combinePathComponents(components.slice(0, step));
1425
- const symlink = pathUtil.resolvePaths(dirname, node.symlink);
1426
- links = this._getRootLinks();
1427
- parent = undefined;
1428
- components = pathUtil.getPathComponents(symlink).concat(components.slice(step + 1));
1429
- step = 0;
1430
- depth++;
1431
- retry = false;
1432
- continue;
1433
- }
1434
- if (isDirectory(node)) {
1435
- links = this._getLinks(node);
1436
- parent = node;
1437
- step++;
1438
- retry = false;
1439
- continue;
1440
- }
1441
- if (trapError(createIOError('ENOTDIR'), node)) {
1442
- continue;
1443
- }
1444
- return undefined;
1445
- }
1446
-
1447
- function trapError(error: NodeJS.ErrnoException, node?: Inode) {
1448
- const realpath = pathUtil.combinePathComponents(components.slice(0, step + 1));
1449
- const basename = components[step];
1450
- const result = !retry && onError ? onError(error, { realpath, basename, parent, links, node }) : 'throw';
1451
- if (result === 'stop') {
1452
- return false;
1453
- }
1454
- if (result === 'retry') {
1455
- retry = true;
1456
- return true;
1457
- }
1458
- throw error;
1459
- }
1460
- }
1461
-
1462
- /**
1463
- * Resolve a path relative to the current working directory.
1464
- */
1465
- private _resolve(path: string) {
1466
- return this._cwd
1467
- ? pathUtil.resolvePaths(
1468
- this._cwd,
1469
- validate(path, ValidationFlags.RelativeOrAbsolute | ValidationFlags.AllowWildcard)
1470
- )
1471
- : validate(path, ValidationFlags.Absolute | ValidationFlags.AllowWildcard);
1472
- }
1473
-
1474
- private _applyFiles(files: FileSet, dirname: string) {
1475
- const deferred: [Symlink | Link | Mount, string][] = [];
1476
- this._applyFilesWorker(files, dirname, deferred);
1477
- for (const [entry, path] of deferred) {
1478
- this.mkdirpSync(pathUtil.getDirectoryPath(path));
1479
- this.pushd(pathUtil.getDirectoryPath(path));
1480
- if (entry instanceof Symlink) {
1481
- if (this.stringComparer(pathUtil.getDirectoryPath(path), path) === 0) {
1482
- throw new TypeError('Roots cannot be symbolic links.');
1483
- }
1484
- this.symlinkSync(pathUtil.resolvePaths(dirname, entry.symlink), path);
1485
- this._applyFileExtendedOptions(path, entry);
1486
- } else if (entry instanceof Link) {
1487
- if (this.stringComparer(pathUtil.getDirectoryPath(path), path) === 0) {
1488
- throw new TypeError('Roots cannot be hard links.');
1489
- }
1490
- this.linkSync(entry.path, path);
1491
- } else {
1492
- this.mountSync(entry.source, path, entry.resolver);
1493
- this._applyFileExtendedOptions(path, entry);
1494
- }
1495
- this.popd();
1496
- }
1497
- }
1498
-
1499
- private _applyFileExtendedOptions(path: string, entry: Directory | File | Symlink | Mount) {
1500
- const { meta } = entry;
1501
- if (meta !== undefined) {
1502
- const filemeta = this.filemeta(path);
1503
- for (const key of Object.keys(meta)) {
1504
- filemeta.set(key, meta[key]);
1505
- }
1506
- }
1507
- }
1508
-
1509
- private _applyFilesWorker(files: FileSet, dirname: string, deferred: [Symlink | Link | Mount, string][]) {
1510
- for (const key of Object.keys(files)) {
1511
- const value = normalizeFileSetEntry(files[key]);
1512
- const path = dirname ? pathUtil.resolvePaths(dirname, key) : key;
1513
- validate(path, ValidationFlags.Absolute);
1514
-
1515
- if (value === null || value === undefined || value instanceof Rmdir || value instanceof Unlink) {
1516
- if (this.stringComparer(pathUtil.getDirectoryPath(path), path) === 0) {
1517
- throw new TypeError('Roots cannot be deleted.');
1518
- }
1519
- this.rimrafSync(path);
1520
- } else if (value instanceof File) {
1521
- if (this.stringComparer(pathUtil.getDirectoryPath(path), path) === 0) {
1522
- throw new TypeError('Roots cannot be files.');
1523
- }
1524
- this.mkdirpSync(pathUtil.getDirectoryPath(path));
1525
- this.writeFileSync(path, value.data, value.encoding);
1526
- this._applyFileExtendedOptions(path, value);
1527
- } else if (value instanceof Directory) {
1528
- this.mkdirpSync(path);
1529
- this._applyFileExtendedOptions(path, value);
1530
- this._applyFilesWorker(value.files, path, deferred);
1531
- } else {
1532
- deferred.push([value, path]);
1533
- }
1534
- }
1535
- }
1536
- }
1537
-
1538
- export interface FileSystemOptions {
1539
- // Sets the initial timestamp for new files and directories, or the function used
1540
- // to calculate timestamps.
1541
- time?: number | Date | (() => number | Date) | undefined;
1542
-
1543
- // A set of file system entries to initially add to the file system.
1544
- files?: FileSet | undefined;
1545
-
1546
- // Sets the initial working directory for the file system.
1547
- cwd?: string | undefined;
1548
-
1549
- // Sets initial metadata attached to the file system.
1550
- meta?: Record<string, any> | undefined;
1551
- }
1552
-
1553
- export type Axis = 'ancestors' | 'ancestors-or-self' | 'self' | 'descendants-or-self' | 'descendants';
1554
-
1555
- export interface Traversal {
1556
- /** A function called to choose whether to continue to traverse to either ancestors or descendants. */
1557
- traverse?(path: string, stats: Stats): boolean;
1558
- /** A function called to choose whether to accept a path as part of the result. */
1559
- accept?(path: string, stats: Stats): boolean;
1560
- }
1561
-
1562
- export interface FileSystemResolver {
1563
- statSync(path: string): { mode: number; size: number };
1564
- readdirSync(path: string): string[];
1565
- readFileSync(path: string): Buffer;
1566
- }
1567
-
1568
- /**
1569
- * A template used to populate files, directories, links, etc. in a virtual file system.
1570
- */
1571
- export interface FileSet {
1572
- [name: string]: DirectoryLike | FileLike | Link | Symlink | Mount | Rmdir | Unlink | null | undefined;
1573
- }
1574
-
1575
- export type DirectoryLike = FileSet | Directory;
1576
- export type FileLike = File | Buffer | string;
1577
-
1578
- /** Extended options for a directory in a `FileSet` */
1579
- export class Directory {
1580
- readonly files: FileSet;
1581
- readonly meta: Record<string, any> | undefined;
1582
- constructor(files: FileSet, { meta }: { meta?: Record<string, any> } = {}) {
1583
- this.files = files;
1584
- this.meta = meta;
1585
- }
1586
- }
1587
-
1588
- /** Extended options for a file in a `FileSet` */
1589
- export class File {
1590
- readonly data: Buffer | string;
1591
- readonly encoding: BufferEncoding | undefined;
1592
- readonly meta: Record<string, any> | undefined;
1593
- constructor(
1594
- data: Buffer | string,
1595
- { meta, encoding }: { encoding?: BufferEncoding; meta?: Record<string, any> } = {}
1596
- ) {
1597
- this.data = data;
1598
- this.encoding = encoding;
1599
- this.meta = meta;
1600
- }
1601
- }
1602
-
1603
- export class SameFileContentFile extends File {
1604
- constructor(data: Buffer | string, metaAndEncoding?: { encoding?: BufferEncoding; meta?: Record<string, any> }) {
1605
- super(data, metaAndEncoding);
1606
- }
1607
- }
1608
-
1609
- /** Extended options for a hard link in a `FileSet` */
1610
- export class Link {
1611
- readonly path: string;
1612
- constructor(path: string) {
1613
- this.path = path;
1614
- }
1615
- }
1616
-
1617
- /** Removes a directory in a `FileSet` */
1618
- export class Rmdir {
1619
- ' rmdirBrand'?: never; // brand necessary for proper type guards
1620
- }
1621
-
1622
- /** Unlinks a file in a `FileSet` */
1623
- export class Unlink {
1624
- ' unlinkBrand'?: never; // brand necessary for proper type guards
1625
- }
1626
-
1627
- /** Extended options for a symbolic link in a `FileSet` */
1628
- export class Symlink {
1629
- readonly symlink: string;
1630
- readonly meta: Record<string, any> | undefined;
1631
- constructor(symlink: string, { meta }: { meta?: Record<string, any> } = {}) {
1632
- this.symlink = symlink;
1633
- this.meta = meta;
1634
- }
1635
- }
1636
-
1637
- // file type
1638
- // these should be only used inside of test code. it is export just because mock file system is separated into
1639
- // 2 files. this and factory.ts file. actual value doesn't matter
1640
- export const S_IFMT = 0o170000; // file type
1641
- export const S_IFSOCK = 0o140000; // socket
1642
- export const S_IFLNK = 0o120000; // symbolic link
1643
- export const S_IFREG = 0o100000; // regular file
1644
- export const S_IFBLK = 0o060000; // block device
1645
- export const S_IFDIR = 0o040000; // directory
1646
- export const S_IFCHR = 0o020000; // character device
1647
- export const S_IFIFO = 0o010000; // FIFO
1648
-
1649
- /** Extended options for mounting a virtual copy of an external file system via a `FileSet` */
1650
- export class Mount {
1651
- readonly source: string;
1652
- readonly resolver: FileSystemResolver;
1653
- readonly meta: Record<string, any> | undefined;
1654
- constructor(source: string, resolver: FileSystemResolver, { meta }: { meta?: Record<string, any> } = {}) {
1655
- this.source = source;
1656
- this.resolver = resolver;
1657
- this.meta = meta;
1658
- }
1659
- }
1660
-
1661
- // a generic POSIX inode
1662
- type Inode = FileInode | DirectoryInode | SymlinkInode;
1663
-
1664
- interface FileInode {
1665
- dev: number; // device id
1666
- ino: number; // inode id
1667
- mode: number; // file mode
1668
- atimeMs: number; // access time
1669
- mtimeMs: number; // modified time
1670
- ctimeMs: number; // status change time
1671
- birthtimeMs: number; // creation time
1672
- nlink: number; // number of hard links
1673
- size?: number | undefined;
1674
- buffer?: Buffer | undefined;
1675
- source?: string | undefined;
1676
- resolver?: FileSystemResolver | undefined;
1677
- shadowRoot?: FileInode | undefined;
1678
- meta?: Metadata | undefined;
1679
- }
1680
-
1681
- interface DirectoryInode {
1682
- dev: number; // device id
1683
- ino: number; // inode id
1684
- mode: number; // file mode
1685
- atimeMs: number; // access time
1686
- mtimeMs: number; // modified time
1687
- ctimeMs: number; // status change time
1688
- birthtimeMs: number; // creation time
1689
- nlink: number; // number of hard links
1690
- links?: SortedMap<string, Inode> | undefined;
1691
- source?: string | undefined;
1692
- resolver?: FileSystemResolver | undefined;
1693
- shadowRoot?: DirectoryInode | undefined;
1694
- meta?: Metadata | undefined;
1695
- }
1696
-
1697
- interface SymlinkInode {
1698
- dev: number; // device id
1699
- ino: number; // inode id
1700
- mode: number; // file mode
1701
- atimeMs: number; // access time
1702
- mtimeMs: number; // modified time
1703
- ctimeMs: number; // status change time
1704
- birthtimeMs: number; // creation time
1705
- nlink: number; // number of hard links
1706
- symlink: string;
1707
- shadowRoot?: SymlinkInode | undefined;
1708
- meta?: Metadata | undefined;
1709
- }
1710
-
1711
- function isEmptyNonShadowedDirectory(node: DirectoryInode) {
1712
- return !node.links && !node.shadowRoot && !node.resolver && !node.source;
1713
- }
1714
-
1715
- function isEmptyNonShadowedFile(node: FileInode) {
1716
- return !node.buffer && !node.shadowRoot && !node.resolver && !node.source;
1717
- }
1718
-
1719
- function isFile(node: Inode | undefined): node is FileInode {
1720
- return node !== undefined && (node.mode & S_IFMT) === S_IFREG;
1721
- }
1722
-
1723
- function isDirectory(node: Inode | undefined): node is DirectoryInode {
1724
- return node !== undefined && (node.mode & S_IFMT) === S_IFDIR;
1725
- }
1726
-
1727
- function isSymlink(node: Inode | undefined): node is SymlinkInode {
1728
- return node !== undefined && (node.mode & S_IFMT) === S_IFLNK;
1729
- }
1730
-
1731
- interface WalkResult {
1732
- realpath: string;
1733
- basename: string;
1734
- parent: DirectoryInode | undefined;
1735
- links: SortedMap<string, Inode>;
1736
- node: Inode | undefined;
1737
- }
1738
-
1739
- function normalizeFileSetEntry(value: FileSet[string]) {
1740
- if (
1741
- value === undefined ||
1742
- value === null ||
1743
- value instanceof Directory ||
1744
- value instanceof File ||
1745
- value instanceof Link ||
1746
- value instanceof Symlink ||
1747
- value instanceof Mount ||
1748
- value instanceof Rmdir ||
1749
- value instanceof Unlink
1750
- ) {
1751
- return value;
1752
- }
1753
- return typeof value === 'string' || Buffer.isBuffer(value) ? new File(value) : new Directory(value);
1754
- }
1755
-
1756
- export function formatPatch(patch: FileSet): string;
1757
- export function formatPatch(patch: FileSet | undefined): string | null;
1758
- export function formatPatch(patch: FileSet | undefined) {
1759
- return patch ? formatPatchWorker('', patch) : null;
1760
- }
1761
-
1762
- function formatPatchWorker(dirname: string, container: FileSet): string {
1763
- let text = '';
1764
- for (const name of Object.keys(container)) {
1765
- const entry = normalizeFileSetEntry(container[name]);
1766
- const file = dirname ? pathUtil.combinePaths(dirname, name) : name;
1767
- if (entry === null || entry === undefined || entry instanceof Unlink) {
1768
- text += `//// [${file}] unlink\r\n`;
1769
- } else if (entry instanceof Rmdir) {
1770
- text += `//// [${pathUtil.ensureTrailingDirectorySeparator(file)}] rmdir\r\n`;
1771
- } else if (entry instanceof Directory) {
1772
- text += formatPatchWorker(file, entry.files);
1773
- } else if (entry instanceof SameFileContentFile) {
1774
- text += `//// [${file}] file written with same contents\r\n`;
1775
- } else if (entry instanceof File) {
1776
- const content = typeof entry.data === 'string' ? entry.data : entry.data.toString('utf8');
1777
- text += `//// [${file}]\r\n${content}\r\n\r\n`;
1778
- } else if (entry instanceof Link) {
1779
- text += `//// [${file}] link(${entry.path})\r\n`;
1780
- } else if (entry instanceof Symlink) {
1781
- text += `//// [${file}] symlink(${entry.symlink})\r\n`;
1782
- } else if (entry instanceof Mount) {
1783
- text += `//// [${file}] mount(${entry.source})\r\n`;
1784
- }
1785
- }
1786
- return text;
1787
- }
1788
-
1789
- function makeDirEnt(name: string, node: Inode): Dirent {
1790
- const de: Dirent = {
1791
- isFile: () => isFile(node),
1792
- isDirectory: () => isDirectory(node),
1793
- isBlockDevice: () => false,
1794
- isCharacterDevice: () => false,
1795
- isFIFO: () => false,
1796
- isSocket: () => false,
1797
- isSymbolicLink: () => isSymlink(node),
1798
- name,
1799
- };
1800
- return de;
1801
- }
1802
-
1803
- class Stats {
1804
- dev: number;
1805
- ino: number;
1806
- mode: number;
1807
- nlink: number;
1808
- uid: number;
1809
- gid: number;
1810
- rdev: number;
1811
- size: number;
1812
- blksize: number;
1813
- blocks: number;
1814
- atimeMs: number;
1815
- mtimeMs: number;
1816
- ctimeMs: number;
1817
- birthtimeMs: number;
1818
- atime: Date;
1819
- mtime: Date;
1820
- ctime: Date;
1821
- birthtime: Date;
1822
-
1823
- constructor();
1824
- constructor(
1825
- dev: number,
1826
- ino: number,
1827
- mode: number,
1828
- nlink: number,
1829
- rdev: number,
1830
- size: number,
1831
- blksize: number,
1832
- blocks: number,
1833
- atimeMs: number,
1834
- mtimeMs: number,
1835
- ctimeMs: number,
1836
- birthtimeMs: number
1837
- );
1838
- constructor(
1839
- dev = 0,
1840
- ino = 0,
1841
- mode = 0,
1842
- nlink = 0,
1843
- rdev = 0,
1844
- size = 0,
1845
- blksize = 0,
1846
- blocks = 0,
1847
- atimeMs = 0,
1848
- mtimeMs = 0,
1849
- ctimeMs = 0,
1850
- birthtimeMs = 0
1851
- ) {
1852
- this.dev = dev;
1853
- this.ino = ino;
1854
- this.mode = mode;
1855
- this.nlink = nlink;
1856
- this.uid = 0;
1857
- this.gid = 0;
1858
- this.rdev = rdev;
1859
- this.size = size;
1860
- this.blksize = blksize;
1861
- this.blocks = blocks;
1862
- this.atimeMs = atimeMs;
1863
- this.mtimeMs = mtimeMs;
1864
- this.ctimeMs = ctimeMs;
1865
- this.birthtimeMs = birthtimeMs;
1866
- this.atime = new Date(this.atimeMs);
1867
- this.mtime = new Date(this.mtimeMs);
1868
- this.ctime = new Date(this.ctimeMs);
1869
- this.birthtime = new Date(this.birthtimeMs);
1870
- }
1871
-
1872
- isFile() {
1873
- return (this.mode & S_IFMT) === S_IFREG;
1874
- }
1875
- isDirectory() {
1876
- return (this.mode & S_IFMT) === S_IFDIR;
1877
- }
1878
- isSymbolicLink() {
1879
- return (this.mode & S_IFMT) === S_IFLNK;
1880
- }
1881
- isBlockDevice() {
1882
- return (this.mode & S_IFMT) === S_IFBLK;
1883
- }
1884
- isCharacterDevice() {
1885
- return (this.mode & S_IFMT) === S_IFCHR;
1886
- }
1887
- isFIFO() {
1888
- return (this.mode & S_IFMT) === S_IFIFO;
1889
- }
1890
- isSocket() {
1891
- return (this.mode & S_IFMT) === S_IFSOCK;
1892
- }
1893
- }