@zzzen/pyright-internal 1.2.0-dev.20261018 → 1.2.0-dev.20261108

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 (238) hide show
  1. package/dist/analyzer/binder.js +29 -12
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.js +4 -0
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/codeFlowEngine.js +3 -3
  6. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  7. package/dist/analyzer/constructorTransform.js +12 -0
  8. package/dist/analyzer/constructorTransform.js.map +1 -1
  9. package/dist/analyzer/constructors.d.ts +1 -1
  10. package/dist/analyzer/constructors.js +1 -1
  11. package/dist/analyzer/constructors.js.map +1 -1
  12. package/dist/analyzer/dataClasses.js +14 -5
  13. package/dist/analyzer/dataClasses.js.map +1 -1
  14. package/dist/analyzer/decorators.d.ts +2 -2
  15. package/dist/analyzer/decorators.js +22 -2
  16. package/dist/analyzer/decorators.js.map +1 -1
  17. package/dist/analyzer/functionTransform.d.ts +5 -0
  18. package/dist/analyzer/functionTransform.js +6 -3
  19. package/dist/analyzer/functionTransform.js.map +1 -1
  20. package/dist/analyzer/missingBindingMetadata.d.ts +6 -0
  21. package/dist/analyzer/missingBindingMetadata.js +22 -0
  22. package/dist/analyzer/missingBindingMetadata.js.map +1 -0
  23. package/dist/analyzer/namedTuples.d.ts +5 -1
  24. package/dist/analyzer/namedTuples.js +64 -35
  25. package/dist/analyzer/namedTuples.js.map +1 -1
  26. package/dist/analyzer/operations.js +45 -1
  27. package/dist/analyzer/operations.js.map +1 -1
  28. package/dist/analyzer/parseTreeUtils.d.ts +2 -0
  29. package/dist/analyzer/parseTreeUtils.js +43 -0
  30. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  31. package/dist/analyzer/patternMatching.d.ts +5 -1
  32. package/dist/analyzer/patternMatching.js +6 -1
  33. package/dist/analyzer/patternMatching.js.map +1 -1
  34. package/dist/analyzer/program.d.ts +3 -0
  35. package/dist/analyzer/program.js +71 -1
  36. package/dist/analyzer/program.js.map +1 -1
  37. package/dist/analyzer/sentinel.js +7 -1
  38. package/dist/analyzer/sentinel.js.map +1 -1
  39. package/dist/analyzer/sourceFile.js +13 -6
  40. package/dist/analyzer/sourceFile.js.map +1 -1
  41. package/dist/analyzer/tupleComparison.d.ts +6 -0
  42. package/dist/analyzer/tupleComparison.js +731 -0
  43. package/dist/analyzer/tupleComparison.js.map +1 -0
  44. package/dist/analyzer/tuples.d.ts +1 -1
  45. package/dist/analyzer/tuples.js +35 -4
  46. package/dist/analyzer/tuples.js.map +1 -1
  47. package/dist/analyzer/typeCacheUtils.d.ts +1 -0
  48. package/dist/analyzer/typeCacheUtils.js +10 -0
  49. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  50. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.d.ts +15 -0
  51. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.js +98 -0
  52. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.js.map +1 -0
  53. package/dist/analyzer/typeEvaluator/classConstruction.d.ts +25 -0
  54. package/dist/analyzer/typeEvaluator/classConstruction.js +251 -0
  55. package/dist/analyzer/typeEvaluator/classConstruction.js.map +1 -0
  56. package/dist/analyzer/typeEvaluator/collectionInference.d.ts +41 -0
  57. package/dist/analyzer/typeEvaluator/collectionInference.js +695 -0
  58. package/dist/analyzer/typeEvaluator/collectionInference.js.map +1 -0
  59. package/dist/analyzer/typeEvaluator/diagnostics.d.ts +33 -0
  60. package/dist/analyzer/typeEvaluator/diagnostics.js +198 -0
  61. package/dist/analyzer/typeEvaluator/diagnostics.js.map +1 -0
  62. package/dist/analyzer/typeEvaluator/evaluatorCore.d.ts +80 -0
  63. package/dist/analyzer/typeEvaluator/evaluatorCore.js +1126 -0
  64. package/dist/analyzer/typeEvaluator/evaluatorCore.js.map +1 -0
  65. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.d.ts +17 -0
  66. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.js +370 -0
  67. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.js.map +1 -0
  68. package/dist/analyzer/typeEvaluator/expressionEvaluation.d.ts +81 -0
  69. package/dist/analyzer/typeEvaluator/expressionEvaluation.js +1802 -0
  70. package/dist/analyzer/typeEvaluator/expressionEvaluation.js.map +1 -0
  71. package/dist/analyzer/typeEvaluator/flowAnalysis.d.ts +33 -0
  72. package/dist/analyzer/typeEvaluator/flowAnalysis.js +217 -0
  73. package/dist/analyzer/typeEvaluator/flowAnalysis.js.map +1 -0
  74. package/dist/analyzer/typeEvaluator/internals.d.ts +137 -0
  75. package/dist/analyzer/typeEvaluator/internals.js +10 -0
  76. package/dist/analyzer/typeEvaluator/internals.js.map +1 -0
  77. package/dist/analyzer/typeEvaluator/literalTypes.d.ts +3 -0
  78. package/dist/analyzer/typeEvaluator/literalTypes.js +52 -0
  79. package/dist/analyzer/typeEvaluator/literalTypes.js.map +1 -0
  80. package/dist/analyzer/typeEvaluator/memberResolution.d.ts +79 -0
  81. package/dist/analyzer/typeEvaluator/memberResolution.js +1007 -0
  82. package/dist/analyzer/typeEvaluator/memberResolution.js.map +1 -0
  83. package/dist/analyzer/typeEvaluator/overrideValidation.d.ts +15 -0
  84. package/dist/analyzer/typeEvaluator/overrideValidation.js +422 -0
  85. package/dist/analyzer/typeEvaluator/overrideValidation.js.map +1 -0
  86. package/dist/analyzer/typeEvaluator/returnTypeInference.d.ts +33 -0
  87. package/dist/analyzer/typeEvaluator/returnTypeInference.js +226 -0
  88. package/dist/analyzer/typeEvaluator/returnTypeInference.js.map +1 -0
  89. package/dist/analyzer/typeEvaluator/specialFormCreation.d.ts +39 -0
  90. package/dist/analyzer/typeEvaluator/specialFormCreation.js +1728 -0
  91. package/dist/analyzer/typeEvaluator/specialFormCreation.js.map +1 -0
  92. package/dist/analyzer/typeEvaluator/tupleUnpacking.d.ts +2 -0
  93. package/dist/analyzer/typeEvaluator/tupleUnpacking.js +36 -0
  94. package/dist/analyzer/typeEvaluator/tupleUnpacking.js.map +1 -0
  95. package/dist/analyzer/typeEvaluator/typeCompatibility.d.ts +36 -0
  96. package/dist/analyzer/typeEvaluator/typeCompatibility.js +1320 -0
  97. package/dist/analyzer/typeEvaluator/typeCompatibility.js.map +1 -0
  98. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.d.ts +186 -0
  99. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.js +1683 -0
  100. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.js.map +1 -0
  101. package/dist/analyzer/typeEvaluator/typeVarHandling.d.ts +48 -0
  102. package/dist/analyzer/typeEvaluator/typeVarHandling.js +756 -0
  103. package/dist/analyzer/typeEvaluator/typeVarHandling.js.map +1 -0
  104. package/dist/analyzer/typeEvaluator.d.ts +3 -31
  105. package/dist/analyzer/typeEvaluator.js +5140 -13656
  106. package/dist/analyzer/typeEvaluator.js.map +1 -1
  107. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -1
  108. package/dist/analyzer/typeEvaluatorTypes.js +2 -3
  109. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  110. package/dist/analyzer/typeGuards.d.ts +3 -2
  111. package/dist/analyzer/typeGuards.js +236 -1375
  112. package/dist/analyzer/typeGuards.js.map +1 -1
  113. package/dist/analyzer/typeUtils.js +9 -2
  114. package/dist/analyzer/typeUtils.js.map +1 -1
  115. package/dist/analyzer/typedDicts.js +111 -0
  116. package/dist/analyzer/typedDicts.js.map +1 -1
  117. package/dist/analyzer/types.d.ts +14 -0
  118. package/dist/analyzer/types.js +215 -10
  119. package/dist/analyzer/types.js.map +1 -1
  120. package/dist/browser/browserConnection.d.ts +12 -0
  121. package/dist/browser/browserConnection.js +23 -0
  122. package/dist/browser/browserConnection.js.map +1 -0
  123. package/dist/browser/browserFileSystem.d.ts +73 -0
  124. package/dist/browser/browserFileSystem.js +578 -0
  125. package/dist/browser/browserFileSystem.js.map +1 -0
  126. package/dist/browser/browserHost.d.ts +4 -0
  127. package/dist/browser/browserHost.js +10 -0
  128. package/dist/browser/browserHost.js.map +1 -0
  129. package/dist/browser/browserProcess.d.ts +1 -0
  130. package/dist/browser/browserProcess.js +17 -0
  131. package/dist/browser/browserProcess.js.map +1 -0
  132. package/dist/browser/browserServer.d.ts +8 -0
  133. package/dist/browser/browserServer.js +32 -0
  134. package/dist/browser/browserServer.js.map +1 -0
  135. package/dist/browser/cancellation/common.d.ts +10 -0
  136. package/dist/browser/cancellation/common.js +114 -0
  137. package/dist/browser/cancellation/common.js.map +1 -0
  138. package/dist/browser/cancellation/objectURLReceiverStrategy.d.ts +5 -0
  139. package/dist/browser/cancellation/objectURLReceiverStrategy.js +37 -0
  140. package/dist/browser/cancellation/objectURLReceiverStrategy.js.map +1 -0
  141. package/dist/browser/cancellation/objectURLSenderStrategy.d.ts +7 -0
  142. package/dist/browser/cancellation/objectURLSenderStrategy.js +32 -0
  143. package/dist/browser/cancellation/objectURLSenderStrategy.js.map +1 -0
  144. package/dist/browser/worker.d.ts +1 -0
  145. package/dist/browser/worker.js +33 -0
  146. package/dist/browser/worker.js.map +1 -0
  147. package/dist/common/processUtils.d.ts +6 -0
  148. package/dist/common/processUtils.js +56 -1
  149. package/dist/common/processUtils.js.map +1 -1
  150. package/dist/common/textEditTracker.js +1 -1
  151. package/dist/common/textEditTracker.js.map +1 -1
  152. package/dist/common/windowsProcessTree.d.ts +2 -0
  153. package/dist/common/windowsProcessTree.js +23 -0
  154. package/dist/common/windowsProcessTree.js.map +1 -1
  155. package/dist/common/windowsProcessTree.json +23 -3
  156. package/dist/languageServerBase.d.ts +3 -0
  157. package/dist/languageServerBase.js +44 -12
  158. package/dist/languageServerBase.js.map +1 -1
  159. package/dist/languageService/callHierarchyProvider.js +6 -6
  160. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  161. package/dist/languageService/referencesProvider.js +3 -3
  162. package/dist/languageService/referencesProvider.js.map +1 -1
  163. package/dist/languageService/renameProvider.js +1 -1
  164. package/dist/languageService/renameProvider.js.map +1 -1
  165. package/dist/languageService/symbolIndexer.js +2 -2
  166. package/dist/languageService/symbolIndexer.js.map +1 -1
  167. package/dist/localization/localize.d.ts +2 -0
  168. package/dist/localization/localize.js +2 -0
  169. package/dist/localization/localize.js.map +1 -1
  170. package/dist/localization/package.nls.en-us.json +8 -0
  171. package/dist/parser/parseTreeTokenReuse.d.ts +34 -0
  172. package/dist/parser/parseTreeTokenReuse.js +897 -0
  173. package/dist/parser/parseTreeTokenReuse.js.map +1 -0
  174. package/dist/parser/tokenizer.d.ts +10 -1
  175. package/dist/parser/tokenizer.js +184 -130
  176. package/dist/parser/tokenizer.js.map +1 -1
  177. package/dist/pyrightServer.d.ts +34 -0
  178. package/dist/pyrightServer.js +239 -0
  179. package/dist/pyrightServer.js.map +1 -0
  180. package/dist/server.d.ts +3 -23
  181. package/dist/server.js +12 -232
  182. package/dist/server.js.map +1 -1
  183. package/dist/tests/benchmarks/typeInferenceComparison.d.ts +1 -0
  184. package/dist/tests/benchmarks/typeInferenceComparison.js +1235 -0
  185. package/dist/tests/benchmarks/typeInferenceComparison.js.map +1 -0
  186. package/dist/tests/benchmarks/typeInferencePyrightEntry.d.ts +1 -0
  187. package/dist/tests/benchmarks/typeInferencePyrightEntry.js +53 -0
  188. package/dist/tests/benchmarks/typeInferencePyrightEntry.js.map +1 -0
  189. package/dist/tests/browserCancellation.test.d.ts +1 -0
  190. package/dist/tests/browserCancellation.test.js +63 -0
  191. package/dist/tests/browserCancellation.test.js.map +1 -0
  192. package/dist/tests/browserServer.test.d.ts +1 -0
  193. package/dist/tests/browserServer.test.js +177 -0
  194. package/dist/tests/browserServer.test.js.map +1 -0
  195. package/dist/tests/checker.test.js +8 -0
  196. package/dist/tests/checker.test.js.map +1 -1
  197. package/dist/tests/constraintSolver.test.js +45 -0
  198. package/dist/tests/constraintSolver.test.js.map +1 -1
  199. package/dist/tests/fourSlashParser.test.js +35 -0
  200. package/dist/tests/fourSlashParser.test.js.map +1 -1
  201. package/dist/tests/harness/fourslash/fourSlashParser.js +14 -4
  202. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  203. package/dist/tests/languageServer.test.js +15 -0
  204. package/dist/tests/languageServer.test.js.map +1 -1
  205. package/dist/tests/lsp/languageServer.js +6 -6
  206. package/dist/tests/lsp/languageServer.js.map +1 -1
  207. package/dist/tests/mypyPrimerAnalysis.test.js +148 -1
  208. package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
  209. package/dist/tests/typeCacheUtils.test.js +46 -0
  210. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  211. package/dist/tests/typeEvaluator1.test.js +78 -1
  212. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  213. package/dist/tests/typeEvaluator2.test.js +54 -1
  214. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  215. package/dist/tests/typeEvaluator3.test.js +4 -0
  216. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  217. package/dist/tests/typeEvaluator4.test.js +42 -3
  218. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  219. package/dist/tests/typeEvaluator6.test.js +35 -0
  220. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  221. package/dist/tests/typeEvaluator7.test.js +414 -0
  222. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  223. package/dist/tests/typeEvaluator8.test.js +1291 -1
  224. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  225. package/dist/tests/typeUtils.test.js +28 -0
  226. package/dist/tests/typeUtils.test.js.map +1 -1
  227. package/dist/tests/types.test.js +55 -0
  228. package/dist/tests/types.test.js.map +1 -1
  229. package/dist/typeServer/programWrapper.js +8 -2
  230. package/dist/typeServer/programWrapper.js.map +1 -1
  231. package/dist/typeServer/server.d.ts +12 -2
  232. package/dist/typeServer/server.js +97 -0
  233. package/dist/typeServer/server.js.map +1 -1
  234. package/dist/typeServer/stubGenerator.js +136 -3
  235. package/dist/typeServer/stubGenerator.js.map +1 -1
  236. package/dist/typeServer/typeServerConversionUtils.js +13 -0
  237. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  238. package/package.json +3 -1
@@ -0,0 +1,578 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserFileSystem = void 0;
4
+ exports.normalizeWebSlashes = normalizeWebSlashes;
5
+ const collectionUtils_1 = require("../common/collectionUtils");
6
+ const fileSystem_1 = require("../common/fileSystem");
7
+ const pathUtils_1 = require("../common/pathUtils");
8
+ const uriUtils_1 = require("../common/uri/uriUtils");
9
+ function normalizeWebSlashes(relativeWebPath) {
10
+ const separatorRegExp = /[\\/]/g;
11
+ return relativeWebPath.replace(separatorRegExp, '/');
12
+ }
13
+ const dotSlash = (0, pathUtils_1.normalizeSlashes)('./');
14
+ class BrowserFileWatcher {
15
+ constructor(_paths, _listener) {
16
+ this._paths = _paths;
17
+ this._listener = _listener;
18
+ }
19
+ fire() {
20
+ for (const path of this._paths) {
21
+ this._listener('change', path);
22
+ }
23
+ }
24
+ close() {
25
+ // Do nothing.
26
+ }
27
+ }
28
+ class BrowserFileWatcherProvider {
29
+ constructor() {
30
+ this._watchers = [];
31
+ }
32
+ createFileWatcher(paths, listener) {
33
+ const watcher = new BrowserFileWatcher(paths, listener);
34
+ this._watchers.push(watcher);
35
+ return watcher;
36
+ }
37
+ fireChanged() {
38
+ // Browser file system is simpler, just fire them all whenever we get a change.
39
+ for (const watcher of this._watchers) {
40
+ watcher.fire();
41
+ }
42
+ }
43
+ }
44
+ class BrowserFileSystem {
45
+ constructor(root, baseUris, prefetchRegexes, _options = {}) {
46
+ this._options = _options;
47
+ this._baseUris = [];
48
+ this._cache = new Map();
49
+ this._contentsCache = new Map();
50
+ this._fileWatcherProvider = new BrowserFileWatcherProvider();
51
+ this._downloadAccumulatedTimeMs = 0;
52
+ this._root = uriUtils_1.UriEx.file((0, pathUtils_1.normalizeSlashes)(root));
53
+ this._baseUris = baseUris.map((u) => uriUtils_1.UriEx.parse(u));
54
+ const folderIndexes = this._baseUris.map((u) => {
55
+ return { content: this._getContent(`folderIndex.json`, u, 'utf-8', undefined), baseUri: u };
56
+ });
57
+ this._map = new Map();
58
+ this._reverseMap = new Map();
59
+ for (const index of folderIndexes) {
60
+ this._addToFolderMap(index, this._map, this._reverseMap);
61
+ }
62
+ if (prefetchRegexes.length > 0) {
63
+ this._prefetchFiles(prefetchRegexes).catch(() => { }); // Don't wait for the promise to resolve.
64
+ }
65
+ }
66
+ existsSync(uri) {
67
+ const entry = this._getEntry(uri);
68
+ return !!entry;
69
+ }
70
+ readdirEntriesSync(uri) {
71
+ const entry = this._getEntry(uri);
72
+ if (!entry || !entry.children) {
73
+ return [];
74
+ }
75
+ const map = entry.children;
76
+ const dirPath = uri.getPath();
77
+ return (0, collectionUtils_1.getOrAdd)(this._cache, uri.key, () => [...map.values()].map((e) => new fileSystem_1.VirtualDirent(e.name, /* file */ !e.children, dirPath)));
78
+ }
79
+ readdirSync(uri) {
80
+ const entry = this._getEntry(uri);
81
+ if (!entry || !entry.children) {
82
+ return [];
83
+ }
84
+ return [...entry.children.keys()];
85
+ }
86
+ readFileSync(path, encoding) {
87
+ const entry = this._getEntry(path);
88
+ if (!entry) {
89
+ throw new Error(`${path} doesn't exist`);
90
+ }
91
+ const relativePath = this._getRelativePath(path, entry.prefix);
92
+ if (!relativePath) {
93
+ return '';
94
+ }
95
+ return this._getContent(relativePath, entry.baseUri, encoding, entry.authHeader) || '';
96
+ }
97
+ readFileRangeSync(path, offset, length) {
98
+ const entry = this._getEntry(path);
99
+ if (!entry) {
100
+ throw new Error(`${path} doesn't exist`);
101
+ }
102
+ const relativePath = this._getRelativePath(path, entry.prefix);
103
+ if (!relativePath || length === 0) {
104
+ return Buffer.alloc(0);
105
+ }
106
+ const cached = this._getCachedContent(relativePath, entry.baseUri, 'arraybuffer', entry.authHeader);
107
+ if (Buffer.isBuffer(cached)) {
108
+ return cached.subarray(offset, offset + length);
109
+ }
110
+ const request = new XMLHttpRequest();
111
+ request.responseType = 'arraybuffer';
112
+ request.open('GET', this._createBundledFileUri(relativePath, entry.baseUri), /* async */ false);
113
+ request.setRequestHeader('Range', `bytes=${offset}-${offset + length - 1}`);
114
+ if (entry.authHeader) {
115
+ request.setRequestHeader('Authorization', entry.authHeader);
116
+ }
117
+ const start = performance.now();
118
+ request.send();
119
+ this._updateDurationTelemetry(performance.now() - start);
120
+ const result = Buffer.from(request.response ?? []);
121
+ const responseMatchesRequest = request.status === 206 || (request.status === 200 && offset === 0);
122
+ if (!responseMatchesRequest || result.byteLength > length) {
123
+ return Buffer.alloc(0);
124
+ }
125
+ return result;
126
+ }
127
+ statSync(uri) {
128
+ const entry = this._getEntry(uri);
129
+ if (!entry) {
130
+ throw new Error(`${uri} doesn't exist`);
131
+ }
132
+ const file = !entry.children;
133
+ return {
134
+ size: 1, // For now, we don't care actual file size. and it can only access ones we bundled.
135
+ mtimeMs: -1, // No modified time for browser.
136
+ ctimeMs: -1, // No creation time for browser.
137
+ isFile: () => file,
138
+ isDirectory: () => !file,
139
+ isBlockDevice: () => false,
140
+ isCharacterDevice: () => false,
141
+ isSymbolicLink: () => false,
142
+ isFIFO: () => false,
143
+ isSocket: () => false,
144
+ };
145
+ }
146
+ realpathSync(uri) {
147
+ return uri;
148
+ }
149
+ getModulePath() {
150
+ return this._root;
151
+ }
152
+ createFileSystemWatcher(paths, listener) {
153
+ return this._fileWatcherProvider.createFileWatcher(paths.map((p) => p.getPath()), listener);
154
+ }
155
+ realCasePath(uri) {
156
+ return uri;
157
+ }
158
+ isMappedUri(uri) {
159
+ // stdLib file is mapped. We need to use http locations for them
160
+ // which is different than file path we use internally.
161
+ return !!this._getEntry(uri);
162
+ }
163
+ getOriginalUri(mappedUri) {
164
+ const entry = this._getEntry(mappedUri);
165
+ if (entry) {
166
+ const relativePath = this._getRelativePath(mappedUri);
167
+ if (!relativePath) {
168
+ return mappedUri;
169
+ }
170
+ return entry.baseUri.resolvePaths(relativePath);
171
+ }
172
+ return mappedUri;
173
+ }
174
+ getMappedUri(originalUri) {
175
+ let entry = this._getReverseEntry(originalUri);
176
+ if (entry) {
177
+ // If we have a reverse entry, build up a mapped URI.
178
+ let mappedUri = entry.name;
179
+ while (entry.parent) {
180
+ entry = entry.parent;
181
+ mappedUri = entry.name === '/' ? entry.name + mappedUri : entry.name + '/' + mappedUri;
182
+ }
183
+ if (entry.prefix) {
184
+ mappedUri = entry.prefix + '/' + mappedUri;
185
+ }
186
+ return this._root.resolvePaths(mappedUri);
187
+ }
188
+ return originalUri;
189
+ }
190
+ chdir(uri) {
191
+ // don't do anything
192
+ }
193
+ writeFileSync(uri, data, encoding) {
194
+ // don't do anything
195
+ }
196
+ rmdirSync(uri) {
197
+ // don't do anything
198
+ }
199
+ unlinkSync(uri) {
200
+ // don't do anything
201
+ }
202
+ copyFileSync(src, dst) {
203
+ // don't do anything
204
+ }
205
+ mkdirSync(uri, options) {
206
+ // don't do anything
207
+ }
208
+ createReadStream(uri) {
209
+ throw new Error('Method not supported');
210
+ }
211
+ createWriteStream(uri) {
212
+ throw new Error('Method not supported');
213
+ }
214
+ readFile(uri) {
215
+ throw new Error('Method not supported');
216
+ }
217
+ readFileText(uri, encoding) {
218
+ throw new Error('Method not supported');
219
+ }
220
+ mapDirectory(mappedUri, originalUri, filter) {
221
+ // Do nothing, not supported in browser.
222
+ return {
223
+ dispose: () => {
224
+ // do nothing
225
+ },
226
+ };
227
+ }
228
+ isInZip(uri) {
229
+ return false;
230
+ }
231
+ removeDistUrl(distUrl) {
232
+ const baseUri = uriUtils_1.UriEx.parse(distUrl);
233
+ this._baseUris = this._baseUris.filter((u) => !u.equals(baseUri));
234
+ const authHeader = this._findLastAuthHeader(baseUri);
235
+ const content = this._getCachedContent(`folderIndex.json`, baseUri, 'text', authHeader);
236
+ if (content !== undefined) {
237
+ this._clearCachedContent(`folderIndex.json`, baseUri, 'text', authHeader);
238
+ const json = JSON.parse(content);
239
+ const oldFiles = json.files;
240
+ for (const file of oldFiles) {
241
+ // Remove the file from the map.
242
+ const prefix = this.computePrefix(file);
243
+ const prefixParts = prefix ? prefix.split('/') : [];
244
+ const fileParts = (0, pathUtils_1.getPathComponents)(file).slice(1);
245
+ const parts = ['/', ...prefixParts, ...fileParts];
246
+ this._deleteEntry(parts);
247
+ }
248
+ }
249
+ // Fire a change event
250
+ this._fileWatcherProvider.fireChanged();
251
+ }
252
+ addOrUpdateDistUrl(distUrl, authHeader) {
253
+ const baseUri = uriUtils_1.UriEx.parse(distUrl);
254
+ // First remove any existing entries for this distUrl.
255
+ this.removeDistUrl(distUrl);
256
+ // Then reread the distUrl root
257
+ const content = this._getContent(`folderIndex.json`, baseUri, 'utf-8', authHeader);
258
+ if (!content) {
259
+ console.error(`Failed to read folderIndex.json from ${distUrl}. Check auth Token.`);
260
+ return;
261
+ }
262
+ this._baseUris.push(baseUri);
263
+ // Then add all of these folders into the map
264
+ this._addToFolderMap({ content, baseUri, authHeader: authHeader }, this._map, this._reverseMap);
265
+ // Fire a change event
266
+ this._fileWatcherProvider.fireChanged();
267
+ }
268
+ getRelativeBasePath(file) {
269
+ return file;
270
+ }
271
+ computePrefix(_file) {
272
+ return '';
273
+ }
274
+ _getContentsCacheKey(url, outputType, authHeader) {
275
+ return `${url}::${outputType}::${authHeader ?? ''}`;
276
+ }
277
+ _getTextAsync(relativeWebPath, baseUri, authHeader) {
278
+ const url = this._createBundledFileUri(relativeWebPath, baseUri);
279
+ const cached = this._getCachedContent(relativeWebPath, baseUri, 'text', authHeader);
280
+ if (cached !== undefined) {
281
+ return Promise.resolve(cached);
282
+ }
283
+ return new Promise((resolve) => {
284
+ const request = new XMLHttpRequest();
285
+ request.open('GET', url, true);
286
+ if (authHeader) {
287
+ request.setRequestHeader('Authorization', authHeader);
288
+ }
289
+ request.onload = () => {
290
+ // Don't count async time towards duration telemetry. We don't block on this time.
291
+ if (request.status === 200) {
292
+ resolve(request.responseText);
293
+ }
294
+ else {
295
+ resolve(undefined);
296
+ }
297
+ };
298
+ request.send();
299
+ }).then((result) => {
300
+ if (result !== undefined &&
301
+ this._getCachedContent(relativeWebPath, baseUri, 'text', authHeader) === undefined) {
302
+ this._setCachedContent(relativeWebPath, baseUri, 'text', authHeader, result);
303
+ }
304
+ return result;
305
+ });
306
+ }
307
+ _getCachedContent(relativeWebPath, baseUri, outputType, authHeader) {
308
+ const url = this._createBundledFileUri(relativeWebPath, baseUri);
309
+ const cacheKey = this._getContentsCacheKey(url, outputType, authHeader);
310
+ return this._contentsCache.get(cacheKey);
311
+ }
312
+ _setCachedContent(relativeWebPath, baseUri, outputType, authHeader, content) {
313
+ const url = this._createBundledFileUri(relativeWebPath, baseUri);
314
+ const cacheKey = this._getContentsCacheKey(url, outputType, authHeader);
315
+ this._contentsCache.set(cacheKey, content);
316
+ }
317
+ _clearCachedContent(relativeWebPath, baseUri, outputType, authHeader) {
318
+ const url = this._createBundledFileUri(relativeWebPath, baseUri);
319
+ const cacheKey = this._getContentsCacheKey(url, outputType, authHeader);
320
+ this._contentsCache.delete(cacheKey);
321
+ }
322
+ _findLastAuthHeader(baseUri) {
323
+ // Look in the contents cache to see if there's a key starting with the baseUri.
324
+ let lastKey;
325
+ for (const key of this._contentsCache.keys()) {
326
+ if (key.startsWith(baseUri.toString())) {
327
+ lastKey = key;
328
+ }
329
+ }
330
+ // Authheader should be the last bit of the key.
331
+ if (lastKey) {
332
+ const keyParts = lastKey.split('::');
333
+ return keyParts[keyParts.length - 1];
334
+ }
335
+ return undefined;
336
+ }
337
+ _getContent(relativeWebPath, baseUri, encoding, authHeader) {
338
+ const url = this._createBundledFileUri(relativeWebPath, baseUri);
339
+ let outputType = encoding ? 'text' : 'arraybuffer';
340
+ const cached = this._getCachedContent(relativeWebPath, baseUri, outputType, authHeader);
341
+ if (cached !== undefined) {
342
+ return cached;
343
+ }
344
+ const start = performance.now();
345
+ // guard against insecure URL. https://liquid.microsoft.com/Web/Object/Read/scanningtoolwarnings/Requirements/CodeQL.SM02171#Zguide
346
+ if (url.startsWith('http://')) {
347
+ url.replace('http://', 'https://');
348
+ }
349
+ const request = new XMLHttpRequest();
350
+ // Switch to a binary request if no encoding specified
351
+ if (!encoding) {
352
+ request.responseType = 'arraybuffer';
353
+ }
354
+ request.open('GET', url, /* async */ false);
355
+ if (authHeader) {
356
+ request.setRequestHeader('Authorization', authHeader);
357
+ }
358
+ try {
359
+ request.send();
360
+ this._updateDurationTelemetry(performance.now() - start);
361
+ if (request.status === 200) {
362
+ switch (request.responseType) {
363
+ case '':
364
+ case 'text':
365
+ this._setCachedContent(relativeWebPath, baseUri, 'text', authHeader, request.responseText);
366
+ outputType = 'text';
367
+ break;
368
+ case 'arraybuffer':
369
+ this._setCachedContent(relativeWebPath, baseUri, 'arraybuffer', authHeader, Buffer.from(request.response));
370
+ outputType = 'arraybuffer';
371
+ break;
372
+ case 'blob':
373
+ this._setCachedContent(relativeWebPath, baseUri, 'blob', authHeader, request.response);
374
+ outputType = 'blob';
375
+ break;
376
+ default:
377
+ throw new Error(`Unexpected response type: ${request.responseType}`);
378
+ }
379
+ }
380
+ else if (this._options.throwOnReadError) {
381
+ throw new Error(`Unable to read ${url}: HTTP ${request.status}`);
382
+ }
383
+ }
384
+ catch (error) {
385
+ if (this._options.throwOnReadError) {
386
+ this._options.onReadError?.(error instanceof Error ? error : new Error(String(error)));
387
+ }
388
+ throw error;
389
+ }
390
+ return this._getCachedContent(relativeWebPath, baseUri, outputType, authHeader);
391
+ }
392
+ _createBundledFileUri(relativeWebPath, baseUri) {
393
+ const normalized = normalizeWebSlashes(relativeWebPath);
394
+ const url = baseUri.resolvePaths(normalized).toString();
395
+ return url;
396
+ }
397
+ _getRelativePath(uri, prefix = '') {
398
+ // we only supports utf8
399
+ let relativePath = this._root.getRelativePath(uri);
400
+ if (!relativePath) {
401
+ return undefined;
402
+ }
403
+ if (relativePath.startsWith(dotSlash)) {
404
+ relativePath = relativePath.substr(2);
405
+ }
406
+ return relativePath.slice(prefix ? prefix.length + 1 : 0);
407
+ }
408
+ _addToFolderMap(folderIndex, map, reverseMap) {
409
+ if (folderIndex.content) {
410
+ const json = JSON.parse(folderIndex.content);
411
+ for (const file of json.files) {
412
+ this._createEntry(file, folderIndex.baseUri, folderIndex.authHeader, map, reverseMap);
413
+ }
414
+ // Clear the cache as we've added new entries.
415
+ this._cache.clear();
416
+ }
417
+ else {
418
+ console.error(`Failed to read folderIndex.json from ${folderIndex.baseUri.toUserVisibleString()}.`);
419
+ }
420
+ }
421
+ _getPathComponents(uri, prefix) {
422
+ const parts = uri.getPathComponents();
423
+ if (prefix && prefix.includes('/')) {
424
+ return [parts[0], ...prefix.split('/'), ...parts.slice(1)];
425
+ }
426
+ return parts;
427
+ }
428
+ _createEntry(file, baseUri, authHeader, map, reverseMap) {
429
+ const normalized = (0, pathUtils_1.normalizeSlashes)(file);
430
+ const prefix = this.computePrefix(file);
431
+ // See if the file is a relative path. If so we need
432
+ // to remove the relative parts and update the actual baseUri.
433
+ const baseFilePath = this.getRelativeBasePath(file);
434
+ const relative = normalized === baseFilePath ? '' : normalized.slice(0, normalized.length - baseFilePath.length);
435
+ const trueBaseUri = relative ? baseUri.resolvePaths(relative) : baseUri;
436
+ const fullPath = this._root.resolvePaths(baseFilePath);
437
+ const directory = fullPath.getDirectory();
438
+ let reverseUri = trueBaseUri;
439
+ const parts = this._getPathComponents(directory, prefix);
440
+ let current = map;
441
+ let parentEntry = undefined;
442
+ for (let i = 0; i < parts.length; i++) {
443
+ const part = parts[i];
444
+ const entry = (0, collectionUtils_1.getOrAdd)(current, parts[i], () => ({
445
+ baseUri: trueBaseUri,
446
+ authHeader,
447
+ name: parts[i],
448
+ parent: parentEntry,
449
+ prefix,
450
+ children: new Map(),
451
+ }));
452
+ current = entry.children;
453
+ parentEntry = entry;
454
+ // Skip the first part as it is the root.
455
+ if (i > 0) {
456
+ reverseUri = reverseUri.resolvePaths(part);
457
+ }
458
+ }
459
+ const fileName = fullPath.fileName;
460
+ const finalEntry = {
461
+ name: fileName,
462
+ baseUri: trueBaseUri,
463
+ prefix,
464
+ authHeader,
465
+ children: undefined,
466
+ parent: parentEntry,
467
+ };
468
+ reverseUri = reverseUri.resolvePaths(fileName);
469
+ current.set(fileName, finalEntry);
470
+ reverseMap.set(reverseUri.toString(), finalEntry);
471
+ }
472
+ _getReverseEntry(originalUri) {
473
+ // Find the entry in the reverse map.
474
+ return this._reverseMap.get(originalUri.toString());
475
+ }
476
+ _getEntry(uri) {
477
+ const parts = uri.getPathComponents();
478
+ let current = this._map;
479
+ let entry = {
480
+ baseUri: uriUtils_1.UriEx.file('/'),
481
+ name: '',
482
+ prefix: '',
483
+ children: current,
484
+ };
485
+ for (let i = 0; i < parts.length; i++) {
486
+ entry = current.get(parts[i]);
487
+ if (!entry) {
488
+ return undefined;
489
+ }
490
+ if (i === parts.length - 1 && !entry.children) {
491
+ // Last element is a file.
492
+ return entry;
493
+ }
494
+ current = entry.children;
495
+ }
496
+ return entry;
497
+ }
498
+ _deleteEntry(parts) {
499
+ let current = this._map;
500
+ let entry = {
501
+ baseUri: uriUtils_1.UriEx.file('/'),
502
+ name: '',
503
+ prefix: '',
504
+ children: current,
505
+ };
506
+ const parents = [entry];
507
+ for (let i = 0; i < parts.length; i++) {
508
+ entry = current.get(parts[i]);
509
+ if (!entry) {
510
+ return;
511
+ }
512
+ if (i === parts.length - 1 && !entry.children) {
513
+ // Last element is a file.
514
+ current.delete(parts[i]);
515
+ // Go up to the parent of the entry and delete
516
+ // the parent if no other siblings.
517
+ let j = i - 1;
518
+ let parent = parents.pop();
519
+ while (current && current.size === 0 && j >= 0 && parent) {
520
+ parent = parents.pop();
521
+ current = parent?.children;
522
+ const parentPart = parts[j];
523
+ current?.delete(parentPart);
524
+ j--;
525
+ }
526
+ }
527
+ current = entry.children;
528
+ parents.push(entry);
529
+ }
530
+ // Have to clear the dir cache too.
531
+ this._cache.clear();
532
+ }
533
+ async _prefetchFiles(prefetchRegexes) {
534
+ // Read all of the files listed in the folderindex.json and see
535
+ // if they match the regex.
536
+ const filesToDownload = [];
537
+ for (const entry of this._map.values()) {
538
+ for (const regex of prefetchRegexes) {
539
+ this._findMatchingFiles(entry, regex, entry.name, filesToDownload);
540
+ // Do these in order.
541
+ await this._prefetchBatch(filesToDownload);
542
+ // Clear the list.
543
+ filesToDownload.length = 0;
544
+ }
545
+ }
546
+ }
547
+ async _prefetchBatch(filesToDownload) {
548
+ const fetches = [];
549
+ for (const file of filesToDownload) {
550
+ fetches.push(this._getTextAsync(file.relativePath, file.baseUri, file.authHeader));
551
+ // Max out at 5 as browser can't handle that many requests at once.
552
+ if (fetches.length === 5) {
553
+ await Promise.all(fetches);
554
+ fetches.length = 0;
555
+ }
556
+ }
557
+ await Promise.all(fetches);
558
+ }
559
+ _findMatchingFiles(entry, regex, parent, matches) {
560
+ const relativePath = parent.length > 1 ? `${parent}/${entry.name}` : entry.name;
561
+ if (entry.children) {
562
+ for (const child of entry.children.values()) {
563
+ this._findMatchingFiles(child, regex, relativePath, matches);
564
+ }
565
+ }
566
+ else {
567
+ if (relativePath.match(regex)) {
568
+ matches.push({ relativePath, baseUri: entry.baseUri });
569
+ }
570
+ }
571
+ }
572
+ _updateDurationTelemetry(ms) {
573
+ this._options.onDownload?.(ms);
574
+ this._downloadAccumulatedTimeMs += ms;
575
+ }
576
+ }
577
+ exports.BrowserFileSystem = BrowserFileSystem;
578
+ //# sourceMappingURL=browserFileSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserFileSystem.js","sourceRoot":"","sources":["../../../../../src/browser/browserFileSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CaseSensitivityDetector } from '../common/caseSensitivityDetector';
2
+ export declare class BrowserCaseSensitivityDetector implements CaseSensitivityDetector {
3
+ isCaseSensitive(_uri: string): boolean;
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserCaseSensitivityDetector = void 0;
4
+ class BrowserCaseSensitivityDetector {
5
+ isCaseSensitive(_uri) {
6
+ return true;
7
+ }
8
+ }
9
+ exports.BrowserCaseSensitivityDetector = BrowserCaseSensitivityDetector;
10
+ //# sourceMappingURL=browserHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserHost.js","sourceRoot":"","sources":["../../../../../src/browser/browserHost.ts"],"names":[],"mappings":";;;AAEA,MAAa,8BAA8B;IACvC,eAAe,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAJD,wEAIC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // Browser shim for the global process object for use with webpack.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /* eslint-disable @typescript-eslint/no-var-requires */
5
+ const browserProcess = require('process/browser');
6
+ browserProcess.execArgv = [];
7
+ const memoryUsage = (() => ({
8
+ external: 0,
9
+ heapTotal: 0,
10
+ heapUsed: 0,
11
+ rss: 0,
12
+ arrayBuffers: 0,
13
+ }));
14
+ memoryUsage.rss = () => 0;
15
+ browserProcess.memoryUsage = memoryUsage;
16
+ module.exports = browserProcess;
17
+ //# sourceMappingURL=browserProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserProcess.js","sourceRoot":"","sources":["../../../../../src/browser/browserProcess.ts"],"names":[],"mappings":";AAAA,mEAAmE;;AAEnE,uDAAuD;AACvD,MAAM,cAAc,GAAmB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAElE,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;AAI7B,MAAM,WAAW,GAAoB,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,GAAG,EAAE,CAAC;IACN,YAAY,EAAE,CAAC;CAClB,CAAC,CAAoB,CAAC;AAEvB,WAAW,CAAC,GAAG,GAAG,GAAW,EAAE,CAAC,CAAC,CAAC;AAElC,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;AACzC,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Connection } from 'vscode-languageserver';
2
+ import { PyrightServerBase } from '../pyrightServer';
3
+ import { Workspace } from '../workspaceFactory';
4
+ import { BrowserFileSystem } from './browserFileSystem';
5
+ export declare class BrowserPyrightServer extends PyrightServerBase {
6
+ constructor(connection: Connection, fileSystem: BrowserFileSystem);
7
+ getSettings(workspace: Workspace): Promise<import("../common/languageServerInterface").ServerSettings>;
8
+ }