@zzzen/pyright-internal 1.2.0-dev.20260913 → 1.2.0-dev.20260920

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 (74) hide show
  1. package/dist/analyzer/checker.js +2 -3
  2. package/dist/analyzer/checker.js.map +1 -1
  3. package/dist/analyzer/program.js +1 -0
  4. package/dist/analyzer/program.js.map +1 -1
  5. package/dist/analyzer/typeCacheUtils.d.ts +1 -0
  6. package/dist/analyzer/typeCacheUtils.js +28 -1
  7. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  8. package/dist/analyzer/typeEvaluator.d.ts +1 -1
  9. package/dist/analyzer/typeEvaluator.js +7 -10
  10. package/dist/analyzer/typeEvaluator.js.map +1 -1
  11. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  12. package/dist/analyzer/typedDicts.js +3 -7
  13. package/dist/analyzer/typedDicts.js.map +1 -1
  14. package/dist/analyzer/types.js +7 -0
  15. package/dist/analyzer/types.js.map +1 -1
  16. package/dist/common/configOptions.d.ts +1 -0
  17. package/dist/common/configOptions.js +16 -0
  18. package/dist/common/configOptions.js.map +1 -1
  19. package/dist/common/envVarUtils.js +3 -3
  20. package/dist/common/envVarUtils.js.map +1 -1
  21. package/dist/tests/envVarUtils.test.js +16 -0
  22. package/dist/tests/envVarUtils.test.js.map +1 -1
  23. package/dist/tests/evaluationTrace.integration.test.d.ts +1 -0
  24. package/dist/tests/evaluationTrace.integration.test.js +266 -0
  25. package/dist/tests/evaluationTrace.integration.test.js.map +1 -0
  26. package/dist/tests/evaluationTrace.test.d.ts +1 -0
  27. package/dist/tests/evaluationTrace.test.js +422 -0
  28. package/dist/tests/evaluationTrace.test.js.map +1 -0
  29. package/dist/tests/evaluationTrace.viewer.test.d.ts +1 -0
  30. package/dist/tests/evaluationTrace.viewer.test.js +529 -0
  31. package/dist/tests/evaluationTrace.viewer.test.js.map +1 -0
  32. package/dist/tests/mypyPrimerAnalysis.test.js +1193 -47
  33. package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
  34. package/dist/tests/mypyPrimerMcp.test.d.ts +1 -0
  35. package/dist/tests/mypyPrimerMcp.test.js +186 -0
  36. package/dist/tests/mypyPrimerMcp.test.js.map +1 -0
  37. package/dist/tests/typeCacheUtils.test.js +15 -0
  38. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  39. package/dist/tests/typeEvaluator7.test.js +4 -0
  40. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  41. package/dist/trace/capture.d.ts +31 -0
  42. package/dist/trace/capture.js +272 -0
  43. package/dist/trace/capture.js.map +1 -0
  44. package/dist/trace/cli.d.ts +1 -0
  45. package/dist/trace/cli.js +196 -0
  46. package/dist/trace/cli.js.map +1 -0
  47. package/dist/trace/nativeAdapter.d.ts +16 -0
  48. package/dist/trace/nativeAdapter.js +422 -0
  49. package/dist/trace/nativeAdapter.js.map +1 -0
  50. package/dist/trace/nativeBridge.d.ts +46 -0
  51. package/dist/trace/nativeBridge.js +416 -0
  52. package/dist/trace/nativeBridge.js.map +1 -0
  53. package/dist/trace/reader.d.ts +83 -0
  54. package/dist/trace/reader.js +296 -0
  55. package/dist/trace/reader.js.map +1 -0
  56. package/dist/trace/recorder.d.ts +59 -0
  57. package/dist/trace/recorder.js +303 -0
  58. package/dist/trace/recorder.js.map +1 -0
  59. package/dist/trace/runtimeLoader.d.ts +23 -0
  60. package/dist/trace/runtimeLoader.js +172 -0
  61. package/dist/trace/runtimeLoader.js.map +1 -0
  62. package/dist/trace/viewerAssets.d.ts +2 -0
  63. package/dist/trace/viewerAssets.js +76 -0
  64. package/dist/trace/viewerAssets.js.map +1 -0
  65. package/dist/trace/viewerClient.d.ts +1 -0
  66. package/dist/trace/viewerClient.js +485 -0
  67. package/dist/trace/viewerClient.js.map +1 -0
  68. package/dist/trace/viewerModel.d.ts +308 -0
  69. package/dist/trace/viewerModel.js +524 -0
  70. package/dist/trace/viewerModel.js.map +1 -0
  71. package/dist/trace/viewerServer.d.ts +7 -0
  72. package/dist/trace/viewerServer.js +185 -0
  73. package/dist/trace/viewerServer.js.map +1 -0
  74. package/package.json +4 -2
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ /*
3
+ * viewerServer.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.loadViewerModel = loadViewerModel;
9
+ exports.startViewer = startViewer;
10
+ const crypto_1 = require("crypto");
11
+ const fs_1 = require("fs");
12
+ const http_1 = require("http");
13
+ const path_1 = require("path");
14
+ const reader_1 = require("./reader");
15
+ const viewerAssets_1 = require("./viewerAssets");
16
+ const viewerClient_1 = require("./viewerClient");
17
+ const viewerModel_1 = require("./viewerModel");
18
+ function loadViewerModel(path) {
19
+ if ((0, fs_1.statSync)(path).size > 128 * 1024 * 1024) {
20
+ throw new viewerModel_1.ViewerInputError('Artifact exceeds 128 MiB viewer reader limit');
21
+ }
22
+ return new viewerModel_1.ViewerModel(new reader_1.TraceReader((0, reader_1.readTrace)((0, fs_1.readFileSync)(path, 'utf8'))), (0, path_1.basename)(path));
23
+ }
24
+ async function startViewer(model, port = 0) {
25
+ if (!Number.isSafeInteger(port) || port < 0 || port > 65535) {
26
+ throw new viewerModel_1.ViewerInputError('Viewer port must be 0..65535 (0 selects a free port)');
27
+ }
28
+ const token = (0, crypto_1.randomBytes)(24).toString('hex');
29
+ const prefix = `/${token}/`;
30
+ let origin = '';
31
+ const assets = new Map([
32
+ ['', { type: 'text/html; charset=utf-8', content: viewerAssets_1.viewerHtml }],
33
+ ['style.css', { type: 'text/css; charset=utf-8', content: viewerAssets_1.viewerCss }],
34
+ ['client.js', { type: 'text/javascript; charset=utf-8', content: `(${viewerClient_1.viewerMain.toString()})();` }],
35
+ ]);
36
+ const respond = (response, status, body, type = 'application/json; charset=utf-8') => {
37
+ response.writeHead(status, {
38
+ 'Content-Type': type,
39
+ 'Content-Length': Buffer.byteLength(body),
40
+ 'Cache-Control': 'no-store',
41
+ 'X-Content-Type-Options': 'nosniff',
42
+ 'Referrer-Policy': 'no-referrer',
43
+ 'Content-Security-Policy': "default-src 'none'; script-src 'self'; style-src 'self'; connect-src 'self'; base-uri 'none'; frame-ancestors 'none'; form-action 'none'",
44
+ 'Cross-Origin-Resource-Policy': 'same-origin',
45
+ });
46
+ response.end(body);
47
+ };
48
+ const server = (0, http_1.createServer)({ maxHeaderSize: 8192 }, (request, response) => {
49
+ try {
50
+ if (request.headers.host !== origin.slice('http://'.length) ||
51
+ (request.headers.origin && request.headers.origin !== origin) ||
52
+ (request.headers['sec-fetch-site'] &&
53
+ !['same-origin', 'none'].includes(String(request.headers['sec-fetch-site'])))) {
54
+ throw new viewerModel_1.ViewerInputError('Only same-origin loopback requests are allowed', 403);
55
+ }
56
+ if (request.method !== 'GET') {
57
+ throw new viewerModel_1.ViewerInputError('Read-only viewer: GET required', 405);
58
+ }
59
+ if (!request.url || request.url.length > 4096) {
60
+ throw new viewerModel_1.ViewerInputError('Invalid or oversized request URL');
61
+ }
62
+ const url = new URL(request.url, origin);
63
+ if (url.origin !== origin || !url.pathname.startsWith(prefix)) {
64
+ throw new viewerModel_1.ViewerInputError('Unknown viewer route', 404);
65
+ }
66
+ const route = url.pathname.slice(prefix.length);
67
+ const asset = assets.get(route);
68
+ if (asset) {
69
+ if (url.search) {
70
+ throw new viewerModel_1.ViewerInputError('Asset query parameters are not supported');
71
+ }
72
+ respond(response, 200, asset.content, asset.type);
73
+ return;
74
+ }
75
+ if (request.headers['x-pyright-trace-viewer'] !== '1') {
76
+ throw new viewerModel_1.ViewerInputError('Viewer API request header required', 403);
77
+ }
78
+ const allowed = {
79
+ 'api/summary': [],
80
+ 'api/timeline': ['offset', 'limit', 'kind', 'query', 'span', 'role'],
81
+ 'api/event': ['seq'],
82
+ 'api/entity': ['id', 'at', 'historyOffset', 'fieldOffset'],
83
+ 'api/graph': ['id', 'at', 'relation', 'hops'],
84
+ 'api/pairs': ['offset'],
85
+ 'api/comparison': ['index', 'offset'],
86
+ };
87
+ if (!Object.prototype.hasOwnProperty.call(allowed, route)) {
88
+ throw new viewerModel_1.ViewerInputError('Unknown viewer API route', 404);
89
+ }
90
+ for (const key of url.searchParams.keys()) {
91
+ if (!allowed[route].includes(key) || url.searchParams.getAll(key).length !== 1) {
92
+ throw new viewerModel_1.ViewerInputError(`Unknown or repeated parameter: ${key.slice(0, 80)}`);
93
+ }
94
+ }
95
+ const text = (name) => url.searchParams.get(name) ?? undefined;
96
+ const required = (name) => {
97
+ const value = text(name);
98
+ if (!value || value.length > 256) {
99
+ throw new viewerModel_1.ViewerInputError(`A ${name} of 1..256 characters is required`);
100
+ }
101
+ return value;
102
+ };
103
+ const number = (name, fallback) => {
104
+ const value = text(name);
105
+ if (value === undefined && fallback !== undefined) {
106
+ return fallback;
107
+ }
108
+ if (!value || !/^\d+$/.test(value) || !Number.isSafeInteger(Number(value))) {
109
+ throw new viewerModel_1.ViewerInputError(`Invalid integer parameter: ${name}`);
110
+ }
111
+ return Number(value);
112
+ };
113
+ let result;
114
+ switch (route) {
115
+ case 'api/summary':
116
+ result = model.summary();
117
+ break;
118
+ case 'api/timeline':
119
+ result = model.timeline({
120
+ offset: number('offset', 0),
121
+ limit: number('limit', 40),
122
+ kind: text('kind'),
123
+ query: text('query'),
124
+ span: text('span'),
125
+ role: text('role'),
126
+ });
127
+ break;
128
+ case 'api/event':
129
+ result = model.event(number('seq'));
130
+ break;
131
+ case 'api/entity':
132
+ result = model.entity(required('id'), number('at'), number('historyOffset', 0), number('fieldOffset', 0));
133
+ break;
134
+ case 'api/graph':
135
+ result = model.graph(required('id'), number('at'), text('relation'), number('hops', 1));
136
+ break;
137
+ case 'api/pairs':
138
+ result = model.pairs(number('offset', 0));
139
+ break;
140
+ case 'api/comparison':
141
+ result = model.comparison(number('index'), number('offset', 0));
142
+ break;
143
+ default:
144
+ throw new viewerModel_1.ViewerInputError('Unknown route', 404);
145
+ }
146
+ const body = JSON.stringify(result);
147
+ if (Buffer.byteLength(body) > 2 * 1024 * 1024) {
148
+ throw new viewerModel_1.ViewerInputError('Viewer response exceeds 2 MiB; narrow the selection or use the CLI', 413);
149
+ }
150
+ respond(response, 200, body);
151
+ }
152
+ catch (error) {
153
+ if (error instanceof viewerModel_1.ViewerInputError) {
154
+ respond(response, error.status, JSON.stringify({ error: error.message }));
155
+ }
156
+ else {
157
+ console.error('Trace viewer request failed:', error);
158
+ respond(response, 500, JSON.stringify({ error: 'Artifact could not be presented; see the local server error' }));
159
+ }
160
+ }
161
+ });
162
+ server.requestTimeout = 10000;
163
+ server.headersTimeout = 10000;
164
+ await new Promise((resolve, reject) => {
165
+ server.once('error', reject);
166
+ server.listen(port, '127.0.0.1', () => {
167
+ server.removeListener('error', reject);
168
+ resolve();
169
+ });
170
+ });
171
+ const address = server.address();
172
+ if (!address || typeof address === 'string') {
173
+ server.close();
174
+ throw new Error('Viewer did not acquire a loopback TCP address');
175
+ }
176
+ origin = `http://127.0.0.1:${address.port}`;
177
+ return {
178
+ url: origin + prefix,
179
+ close: () => new Promise((resolve, reject) => {
180
+ server.close((error) => (error ? reject(error) : resolve()));
181
+ server.closeAllConnections();
182
+ }),
183
+ };
184
+ }
185
+ //# sourceMappingURL=viewerServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewerServer.js","sourceRoot":"","sources":["../../../../../src/trace/viewerServer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAiBH,0CAKC;AAED,kCAgLC;AAtMD,mCAAqC;AACrC,2BAA4C;AAC5C,+BAAoD;AACpD,+BAAgC;AAEhC,qCAAkD;AAClD,iDAAuD;AACvD,iDAA4C;AAC5C,+CAA8D;AAO9D,SAAgB,eAAe,CAAC,IAAY;IACxC,IAAI,IAAA,aAAQ,EAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,8BAAgB,CAAC,8CAA8C,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,yBAAW,CAAC,IAAI,oBAAW,CAAC,IAAA,kBAAS,EAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;AACnG,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,KAAkB,EAAE,IAAI,GAAG,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,8BAAgB,CAAC,sDAAsD,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,CAAC;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACnB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,yBAAU,EAAE,CAAC;QAC/D,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,wBAAS,EAAE,CAAC;QACtE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,IAAI,yBAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACtG,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CACZ,QAAwB,EACxB,MAAc,EACd,IAAY,EACZ,IAAI,GAAG,iCAAiC,EAC1C,EAAE;QACA,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;YACvB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;YACzC,eAAe,EAAE,UAAU;YAC3B,wBAAwB,EAAE,SAAS;YACnC,iBAAiB,EAAE,aAAa;YAChC,yBAAyB,EACrB,0IAA0I;YAC9I,8BAA8B,EAAE,aAAa;SAChD,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QACvE,IAAI,CAAC;YACD,IACI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvD,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;gBAC7D,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBAC9B,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACnF,CAAC;gBACC,MAAM,IAAI,8BAAgB,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,8BAAgB,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBAC5C,MAAM,IAAI,8BAAgB,CAAC,kCAAkC,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,8BAAgB,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,IAAI,8BAAgB,CAAC,0CAA0C,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO;YACX,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,GAAG,EAAE,CAAC;gBACpD,MAAM,IAAI,8BAAgB,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,OAAO,GAA6B;gBACtC,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;gBACpE,WAAW,EAAE,CAAC,KAAK,CAAC;gBACpB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,CAAC;gBAC1D,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC;gBAC7C,WAAW,EAAE,CAAC,QAAQ,CAAC;gBACvB,gBAAgB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;aACxC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,8BAAgB,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7E,MAAM,IAAI,8BAAgB,CAAC,kCAAkC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;YACvE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC/B,MAAM,IAAI,8BAAgB,CAAC,KAAK,IAAI,mCAAmC,CAAC,CAAC;gBAC7E,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAE;gBAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAChD,OAAO,QAAQ,CAAC;gBACpB,CAAC;gBACD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzE,MAAM,IAAI,8BAAgB,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC;YACF,IAAI,MAAe,CAAC;YACpB,QAAQ,KAAK,EAAE,CAAC;gBACZ,KAAK,aAAa;oBACd,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM;gBACV,KAAK,cAAc;oBACf,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;wBACpB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC3B,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;wBAClB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;wBACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;wBAClB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;qBACrB,CAAC,CAAC;oBACH,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpC,MAAM;gBACV,KAAK,YAAY;oBACb,MAAM,GAAG,KAAK,CAAC,MAAM,CACjB,QAAQ,CAAC,IAAI,CAAC,EACd,MAAM,CAAC,IAAI,CAAC,EACZ,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,EAC1B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAC3B,CAAC;oBACF,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxF,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC1C,MAAM;gBACV,KAAK,gBAAgB;oBACjB,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;oBAChE,MAAM;gBACV;oBACI,MAAM,IAAI,8BAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;gBAC5C,MAAM,IAAI,8BAAgB,CAAC,oEAAoE,EAAE,GAAG,CAAC,CAAC;YAC1G,CAAC;YACD,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,8BAAgB,EAAE,CAAC;gBACpC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;gBACrD,OAAO,CACH,QAAQ,EACR,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,6DAA6D,EAAE,CAAC,CAC3F,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO;QACH,GAAG,EAAE,MAAM,GAAG,MAAM;QACpB,KAAK,EAAE,GAAG,EAAE,CACR,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjC,CAAC,CAAC;KACT,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@zzzen/pyright-internal",
3
3
  "displayName": "pyright",
4
4
  "description": "Type checker for the Python language",
5
- "version": "1.2.0-dev.20260913",
5
+ "version": "1.2.0-dev.20260920",
6
6
  "license": "MIT",
7
7
  "private": false,
8
8
  "files": [
@@ -17,7 +17,9 @@
17
17
  "test:norebuild": "node --max-old-space-size=8192 --expose-gc ./node_modules/jest/bin/jest --forceExit --testPathIgnorePatterns src/tests/benchmarks",
18
18
  "test:benchmark": "cross-env PYRIGHT_RUN_BENCHMARKS=1 node --max-old-space-size=8192 --expose-gc ./node_modules/jest/bin/jest --forceExit --testTimeout=300000 --runInBand --detectOpenHandles src/tests/benchmarks",
19
19
  "test:coverage": "node --max-old-space-size=8192 --expose-gc ./node_modules/jest/bin/jest --forceExit --testPathIgnorePatterns src/tests/benchmarks --reporters=jest-junit --reporters=default --coverage --coverageReporters=cobertura --coverageReporters=html --coverageReporters=json",
20
- "test:imports": "node --max-old-space-size=8192 --expose-gc ./node_modules/jest/bin/jest importResolver.test --forceExit --runInBand"
20
+ "test:imports": "node --max-old-space-size=8192 --expose-gc ./node_modules/jest/bin/jest importResolver.test --forceExit --runInBand",
21
+ "trace": "node ./out/packages/pyright-internal/src/trace/cli.js",
22
+ "test:trace": "pnpm run build && cross-env PYRIGHT_RUN_TRACE_TESTS=1 jest evaluationTrace --runInBand --forceExit"
21
23
  },
22
24
  "dependencies": {
23
25
  "@yarnpkg/fslib": "2.10.4",