typescript 5.3.0-dev.20231012 → 5.3.0-dev.20231013
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.
- package/lib/tsc.js +1 -1
- package/lib/tsserver.js +52 -58
- package/lib/typescript.d.ts +0 -1
- package/lib/typescript.js +76 -81
- package/lib/typingsInstaller.js +114 -111
- package/package.json +2 -2
package/lib/tsc.js
CHANGED
|
@@ -18,7 +18,7 @@ and limitations under the License.
|
|
|
18
18
|
|
|
19
19
|
// src/compiler/corePublic.ts
|
|
20
20
|
var versionMajorMinor = "5.3";
|
|
21
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
21
|
+
var version = `${versionMajorMinor}.0-dev.20231013`;
|
|
22
22
|
|
|
23
23
|
// src/compiler/core.ts
|
|
24
24
|
var emptyArray = [];
|
package/lib/tsserver.js
CHANGED
|
@@ -2328,7 +2328,7 @@ module.exports = __toCommonJS(server_exports);
|
|
|
2328
2328
|
|
|
2329
2329
|
// src/compiler/corePublic.ts
|
|
2330
2330
|
var versionMajorMinor = "5.3";
|
|
2331
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
2331
|
+
var version = `${versionMajorMinor}.0-dev.20231013`;
|
|
2332
2332
|
var Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
2333
2333
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
2334
2334
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -130381,6 +130381,44 @@ __export(ts_JsTyping_exports, {
|
|
|
130381
130381
|
validatePackageName: () => validatePackageName
|
|
130382
130382
|
});
|
|
130383
130383
|
|
|
130384
|
+
// src/jsTyping/shared.ts
|
|
130385
|
+
var ActionSet = "action::set";
|
|
130386
|
+
var ActionInvalidate = "action::invalidate";
|
|
130387
|
+
var ActionPackageInstalled = "action::packageInstalled";
|
|
130388
|
+
var EventTypesRegistry = "event::typesRegistry";
|
|
130389
|
+
var EventBeginInstallTypes = "event::beginInstallTypes";
|
|
130390
|
+
var EventEndInstallTypes = "event::endInstallTypes";
|
|
130391
|
+
var EventInitializationFailed = "event::initializationFailed";
|
|
130392
|
+
var ActionWatchTypingLocations = "action::watchTypingLocations";
|
|
130393
|
+
var Arguments;
|
|
130394
|
+
((Arguments2) => {
|
|
130395
|
+
Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation";
|
|
130396
|
+
Arguments2.LogFile = "--logFile";
|
|
130397
|
+
Arguments2.EnableTelemetry = "--enableTelemetry";
|
|
130398
|
+
Arguments2.TypingSafeListLocation = "--typingSafeListLocation";
|
|
130399
|
+
Arguments2.TypesMapLocation = "--typesMapLocation";
|
|
130400
|
+
Arguments2.NpmLocation = "--npmLocation";
|
|
130401
|
+
Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
|
|
130402
|
+
})(Arguments || (Arguments = {}));
|
|
130403
|
+
function hasArgument(argumentName) {
|
|
130404
|
+
return sys.args.includes(argumentName);
|
|
130405
|
+
}
|
|
130406
|
+
function findArgument(argumentName) {
|
|
130407
|
+
const index = sys.args.indexOf(argumentName);
|
|
130408
|
+
return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;
|
|
130409
|
+
}
|
|
130410
|
+
function nowString() {
|
|
130411
|
+
const d = /* @__PURE__ */ new Date();
|
|
130412
|
+
return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}.${d.getMilliseconds().toString().padStart(3, "0")}`;
|
|
130413
|
+
}
|
|
130414
|
+
var indentStr = "\n ";
|
|
130415
|
+
function indent2(str) {
|
|
130416
|
+
return indentStr + str.replace(/\n/g, indentStr);
|
|
130417
|
+
}
|
|
130418
|
+
function stringifyIndented(json) {
|
|
130419
|
+
return indent2(JSON.stringify(json, void 0, 2));
|
|
130420
|
+
}
|
|
130421
|
+
|
|
130384
130422
|
// src/jsTyping/jsTyping.ts
|
|
130385
130423
|
function isTypingUpToDate(cachedTyping, availableTypingVersions) {
|
|
130386
130424
|
const availableVersion = new Version(getProperty(availableTypingVersions, `ts${versionMajorMinor}`) || getProperty(availableTypingVersions, "latest"));
|
|
@@ -130487,21 +130525,21 @@ function discoverTypings(host, log, fileNames, projectRootPath, safeList, packag
|
|
|
130487
130525
|
);
|
|
130488
130526
|
addInferredTypings(module2, "Inferred typings from unresolved imports");
|
|
130489
130527
|
}
|
|
130490
|
-
packageNameToTypingLocation.forEach((typing, name) => {
|
|
130491
|
-
const registryEntry = typesRegistry.get(name);
|
|
130492
|
-
if (inferredTypings.has(name) && inferredTypings.get(name) === void 0 && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {
|
|
130493
|
-
inferredTypings.set(name, typing.typingLocation);
|
|
130494
|
-
}
|
|
130495
|
-
});
|
|
130496
130528
|
for (const excludeTypingName of exclude) {
|
|
130497
130529
|
const didDelete = inferredTypings.delete(excludeTypingName);
|
|
130498
130530
|
if (didDelete && log)
|
|
130499
130531
|
log(`Typing for ${excludeTypingName} is in exclude list, will be ignored.`);
|
|
130500
130532
|
}
|
|
130533
|
+
packageNameToTypingLocation.forEach((typing, name) => {
|
|
130534
|
+
const registryEntry = typesRegistry.get(name);
|
|
130535
|
+
if (inferredTypings.get(name) === false && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {
|
|
130536
|
+
inferredTypings.set(name, typing.typingLocation);
|
|
130537
|
+
}
|
|
130538
|
+
});
|
|
130501
130539
|
const newTypingNames = [];
|
|
130502
130540
|
const cachedTypingPaths = [];
|
|
130503
130541
|
inferredTypings.forEach((inferred, typing) => {
|
|
130504
|
-
if (inferred
|
|
130542
|
+
if (inferred) {
|
|
130505
130543
|
cachedTypingPaths.push(inferred);
|
|
130506
130544
|
} else {
|
|
130507
130545
|
newTypingNames.push(typing);
|
|
@@ -130509,11 +130547,11 @@ function discoverTypings(host, log, fileNames, projectRootPath, safeList, packag
|
|
|
130509
130547
|
});
|
|
130510
130548
|
const result = { cachedTypingPaths, newTypingNames, filesToWatch };
|
|
130511
130549
|
if (log)
|
|
130512
|
-
log(`
|
|
130550
|
+
log(`Finished typings discovery:${stringifyIndented(result)}`);
|
|
130513
130551
|
return result;
|
|
130514
130552
|
function addInferredTyping(typingName) {
|
|
130515
130553
|
if (!inferredTypings.has(typingName)) {
|
|
130516
|
-
inferredTypings.set(typingName,
|
|
130554
|
+
inferredTypings.set(typingName, false);
|
|
130517
130555
|
}
|
|
130518
130556
|
}
|
|
130519
130557
|
function addInferredTypings(typingNames, message) {
|
|
@@ -130686,37 +130724,6 @@ function renderPackageNameValidationFailureWorker(typing, result, name, isScopeN
|
|
|
130686
130724
|
}
|
|
130687
130725
|
}
|
|
130688
130726
|
|
|
130689
|
-
// src/jsTyping/shared.ts
|
|
130690
|
-
var ActionSet = "action::set";
|
|
130691
|
-
var ActionInvalidate = "action::invalidate";
|
|
130692
|
-
var ActionPackageInstalled = "action::packageInstalled";
|
|
130693
|
-
var EventTypesRegistry = "event::typesRegistry";
|
|
130694
|
-
var EventBeginInstallTypes = "event::beginInstallTypes";
|
|
130695
|
-
var EventEndInstallTypes = "event::endInstallTypes";
|
|
130696
|
-
var EventInitializationFailed = "event::initializationFailed";
|
|
130697
|
-
var ActionWatchTypingLocations = "action::watchTypingLocations";
|
|
130698
|
-
var Arguments;
|
|
130699
|
-
((Arguments2) => {
|
|
130700
|
-
Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation";
|
|
130701
|
-
Arguments2.LogFile = "--logFile";
|
|
130702
|
-
Arguments2.EnableTelemetry = "--enableTelemetry";
|
|
130703
|
-
Arguments2.TypingSafeListLocation = "--typingSafeListLocation";
|
|
130704
|
-
Arguments2.TypesMapLocation = "--typesMapLocation";
|
|
130705
|
-
Arguments2.NpmLocation = "--npmLocation";
|
|
130706
|
-
Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
|
|
130707
|
-
})(Arguments || (Arguments = {}));
|
|
130708
|
-
function hasArgument(argumentName) {
|
|
130709
|
-
return sys.args.includes(argumentName);
|
|
130710
|
-
}
|
|
130711
|
-
function findArgument(argumentName) {
|
|
130712
|
-
const index = sys.args.indexOf(argumentName);
|
|
130713
|
-
return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;
|
|
130714
|
-
}
|
|
130715
|
-
function nowString() {
|
|
130716
|
-
const d = /* @__PURE__ */ new Date();
|
|
130717
|
-
return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}.${d.getMilliseconds().toString().padStart(3, "0")}`;
|
|
130718
|
-
}
|
|
130719
|
-
|
|
130720
130727
|
// src/services/types.ts
|
|
130721
130728
|
var ScriptSnapshot;
|
|
130722
130729
|
((ScriptSnapshot2) => {
|
|
@@ -174707,7 +174714,7 @@ var TypingsInstaller = class {
|
|
|
174707
174714
|
}
|
|
174708
174715
|
install(req) {
|
|
174709
174716
|
if (this.log.isEnabled()) {
|
|
174710
|
-
this.log.writeLine(`Got install request
|
|
174717
|
+
this.log.writeLine(`Got install request${stringifyIndented(req)}`);
|
|
174711
174718
|
}
|
|
174712
174719
|
if (req.cachePath) {
|
|
174713
174720
|
if (this.log.isEnabled()) {
|
|
@@ -174730,9 +174737,6 @@ var TypingsInstaller = class {
|
|
|
174730
174737
|
this.typesRegistry,
|
|
174731
174738
|
req.compilerOptions
|
|
174732
174739
|
);
|
|
174733
|
-
if (this.log.isEnabled()) {
|
|
174734
|
-
this.log.writeLine(`Finished typings discovery: ${JSON.stringify(discoverTypingsResult)}`);
|
|
174735
|
-
}
|
|
174736
174740
|
this.watchFiles(req.projectName, discoverTypingsResult.filesToWatch);
|
|
174737
174741
|
if (discoverTypingsResult.newTypingNames.length) {
|
|
174738
174742
|
this.installTypings(req, req.cachePath || this.globalCachePath, discoverTypingsResult.cachedTypingPaths, discoverTypingsResult.newTypingNames);
|
|
@@ -174774,8 +174778,8 @@ var TypingsInstaller = class {
|
|
|
174774
174778
|
const npmConfig = JSON.parse(this.installTypingHost.readFile(packageJson));
|
|
174775
174779
|
const npmLock = JSON.parse(this.installTypingHost.readFile(packageLockJson));
|
|
174776
174780
|
if (this.log.isEnabled()) {
|
|
174777
|
-
this.log.writeLine(`Loaded content of '${packageJson}'
|
|
174778
|
-
this.log.writeLine(`Loaded content of '${packageLockJson}'`);
|
|
174781
|
+
this.log.writeLine(`Loaded content of '${packageJson}':${stringifyIndented(npmConfig)}`);
|
|
174782
|
+
this.log.writeLine(`Loaded content of '${packageLockJson}':${stringifyIndented(npmLock)}`);
|
|
174779
174783
|
}
|
|
174780
174784
|
if (npmConfig.devDependencies && npmLock.dependencies) {
|
|
174781
174785
|
for (const key in npmConfig.devDependencies) {
|
|
@@ -175152,13 +175156,6 @@ function removeSorted(array, remove, compare) {
|
|
|
175152
175156
|
array.splice(removeIndex, 1);
|
|
175153
175157
|
}
|
|
175154
175158
|
}
|
|
175155
|
-
var indentStr = "\n ";
|
|
175156
|
-
function indent2(str) {
|
|
175157
|
-
return indentStr + str.replace(/\n/g, indentStr);
|
|
175158
|
-
}
|
|
175159
|
-
function stringifyIndented(json) {
|
|
175160
|
-
return indentStr + JSON.stringify(json);
|
|
175161
|
-
}
|
|
175162
175159
|
|
|
175163
175160
|
// src/server/_namespaces/ts.server.protocol.ts
|
|
175164
175161
|
var ts_server_protocol_exports = {};
|
|
@@ -178011,9 +178008,6 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
|
|
|
178011
178008
|
includePackageJsonAutoImports() {
|
|
178012
178009
|
return 0 /* Off */;
|
|
178013
178010
|
}
|
|
178014
|
-
getTypeAcquisition() {
|
|
178015
|
-
return { enable: false };
|
|
178016
|
-
}
|
|
178017
178011
|
/** @internal */
|
|
178018
178012
|
getSymlinkCache() {
|
|
178019
178013
|
return this.hostProject.getSymlinkCache();
|
|
@@ -181937,7 +181931,7 @@ function formatMessage2(msg, logger, byteLength, newLine) {
|
|
|
181937
181931
|
const verboseLogging = logger.hasLevel(3 /* verbose */);
|
|
181938
181932
|
const json = JSON.stringify(msg);
|
|
181939
181933
|
if (verboseLogging) {
|
|
181940
|
-
logger.info(`${msg.type}:${
|
|
181934
|
+
logger.info(`${msg.type}:${stringifyIndented(msg)}`);
|
|
181941
181935
|
}
|
|
181942
181936
|
const len = byteLength(json, "utf8");
|
|
181943
181937
|
return `Content-Length: ${1 + len}\r
|
package/lib/typescript.d.ts
CHANGED
|
@@ -3450,7 +3450,6 @@ declare namespace ts {
|
|
|
3450
3450
|
getLanguageService(): never;
|
|
3451
3451
|
getHostForAutoImportProvider(): never;
|
|
3452
3452
|
getProjectReferences(): readonly ts.ProjectReference[] | undefined;
|
|
3453
|
-
getTypeAcquisition(): TypeAcquisition;
|
|
3454
3453
|
}
|
|
3455
3454
|
/**
|
|
3456
3455
|
* If a file is opened, the server will look for a tsconfig (or jsconfig)
|
package/lib/typescript.js
CHANGED
|
@@ -35,7 +35,7 @@ var ts = (() => {
|
|
|
35
35
|
"src/compiler/corePublic.ts"() {
|
|
36
36
|
"use strict";
|
|
37
37
|
versionMajorMinor = "5.3";
|
|
38
|
-
version = `${versionMajorMinor}.0-dev.
|
|
38
|
+
version = `${versionMajorMinor}.0-dev.20231013`;
|
|
39
39
|
Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
40
40
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
41
41
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -128622,6 +128622,66 @@ ${lanes.join("\n")}
|
|
|
128622
128622
|
}
|
|
128623
128623
|
});
|
|
128624
128624
|
|
|
128625
|
+
// src/jsTyping/shared.ts
|
|
128626
|
+
function hasArgument(argumentName) {
|
|
128627
|
+
return sys.args.includes(argumentName);
|
|
128628
|
+
}
|
|
128629
|
+
function findArgument(argumentName) {
|
|
128630
|
+
const index = sys.args.indexOf(argumentName);
|
|
128631
|
+
return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;
|
|
128632
|
+
}
|
|
128633
|
+
function nowString() {
|
|
128634
|
+
const d = /* @__PURE__ */ new Date();
|
|
128635
|
+
return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}.${d.getMilliseconds().toString().padStart(3, "0")}`;
|
|
128636
|
+
}
|
|
128637
|
+
function indent2(str) {
|
|
128638
|
+
return indentStr + str.replace(/\n/g, indentStr);
|
|
128639
|
+
}
|
|
128640
|
+
function stringifyIndented(json) {
|
|
128641
|
+
return indent2(JSON.stringify(json, void 0, 2));
|
|
128642
|
+
}
|
|
128643
|
+
var ActionSet, ActionInvalidate, ActionPackageInstalled, EventTypesRegistry, EventBeginInstallTypes, EventEndInstallTypes, EventInitializationFailed, ActionWatchTypingLocations, Arguments, indentStr;
|
|
128644
|
+
var init_shared = __esm({
|
|
128645
|
+
"src/jsTyping/shared.ts"() {
|
|
128646
|
+
"use strict";
|
|
128647
|
+
init_ts3();
|
|
128648
|
+
ActionSet = "action::set";
|
|
128649
|
+
ActionInvalidate = "action::invalidate";
|
|
128650
|
+
ActionPackageInstalled = "action::packageInstalled";
|
|
128651
|
+
EventTypesRegistry = "event::typesRegistry";
|
|
128652
|
+
EventBeginInstallTypes = "event::beginInstallTypes";
|
|
128653
|
+
EventEndInstallTypes = "event::endInstallTypes";
|
|
128654
|
+
EventInitializationFailed = "event::initializationFailed";
|
|
128655
|
+
ActionWatchTypingLocations = "action::watchTypingLocations";
|
|
128656
|
+
((Arguments2) => {
|
|
128657
|
+
Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation";
|
|
128658
|
+
Arguments2.LogFile = "--logFile";
|
|
128659
|
+
Arguments2.EnableTelemetry = "--enableTelemetry";
|
|
128660
|
+
Arguments2.TypingSafeListLocation = "--typingSafeListLocation";
|
|
128661
|
+
Arguments2.TypesMapLocation = "--typesMapLocation";
|
|
128662
|
+
Arguments2.NpmLocation = "--npmLocation";
|
|
128663
|
+
Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
|
|
128664
|
+
})(Arguments || (Arguments = {}));
|
|
128665
|
+
indentStr = "\n ";
|
|
128666
|
+
}
|
|
128667
|
+
});
|
|
128668
|
+
|
|
128669
|
+
// src/jsTyping/types.ts
|
|
128670
|
+
var init_types2 = __esm({
|
|
128671
|
+
"src/jsTyping/types.ts"() {
|
|
128672
|
+
"use strict";
|
|
128673
|
+
}
|
|
128674
|
+
});
|
|
128675
|
+
|
|
128676
|
+
// src/jsTyping/_namespaces/ts.server.ts
|
|
128677
|
+
var init_ts_server = __esm({
|
|
128678
|
+
"src/jsTyping/_namespaces/ts.server.ts"() {
|
|
128679
|
+
"use strict";
|
|
128680
|
+
init_shared();
|
|
128681
|
+
init_types2();
|
|
128682
|
+
}
|
|
128683
|
+
});
|
|
128684
|
+
|
|
128625
128685
|
// src/jsTyping/jsTyping.ts
|
|
128626
128686
|
function isTypingUpToDate(cachedTyping, availableTypingVersions) {
|
|
128627
128687
|
const availableVersion = new Version(getProperty(availableTypingVersions, `ts${versionMajorMinor}`) || getProperty(availableTypingVersions, "latest"));
|
|
@@ -128676,21 +128736,21 @@ ${lanes.join("\n")}
|
|
|
128676
128736
|
);
|
|
128677
128737
|
addInferredTypings(module2, "Inferred typings from unresolved imports");
|
|
128678
128738
|
}
|
|
128679
|
-
packageNameToTypingLocation.forEach((typing, name) => {
|
|
128680
|
-
const registryEntry = typesRegistry.get(name);
|
|
128681
|
-
if (inferredTypings.has(name) && inferredTypings.get(name) === void 0 && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {
|
|
128682
|
-
inferredTypings.set(name, typing.typingLocation);
|
|
128683
|
-
}
|
|
128684
|
-
});
|
|
128685
128739
|
for (const excludeTypingName of exclude) {
|
|
128686
128740
|
const didDelete = inferredTypings.delete(excludeTypingName);
|
|
128687
128741
|
if (didDelete && log)
|
|
128688
128742
|
log(`Typing for ${excludeTypingName} is in exclude list, will be ignored.`);
|
|
128689
128743
|
}
|
|
128744
|
+
packageNameToTypingLocation.forEach((typing, name) => {
|
|
128745
|
+
const registryEntry = typesRegistry.get(name);
|
|
128746
|
+
if (inferredTypings.get(name) === false && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {
|
|
128747
|
+
inferredTypings.set(name, typing.typingLocation);
|
|
128748
|
+
}
|
|
128749
|
+
});
|
|
128690
128750
|
const newTypingNames = [];
|
|
128691
128751
|
const cachedTypingPaths = [];
|
|
128692
128752
|
inferredTypings.forEach((inferred, typing) => {
|
|
128693
|
-
if (inferred
|
|
128753
|
+
if (inferred) {
|
|
128694
128754
|
cachedTypingPaths.push(inferred);
|
|
128695
128755
|
} else {
|
|
128696
128756
|
newTypingNames.push(typing);
|
|
@@ -128698,11 +128758,11 @@ ${lanes.join("\n")}
|
|
|
128698
128758
|
});
|
|
128699
128759
|
const result = { cachedTypingPaths, newTypingNames, filesToWatch };
|
|
128700
128760
|
if (log)
|
|
128701
|
-
log(`
|
|
128761
|
+
log(`Finished typings discovery:${stringifyIndented(result)}`);
|
|
128702
128762
|
return result;
|
|
128703
128763
|
function addInferredTyping(typingName) {
|
|
128704
128764
|
if (!inferredTypings.has(typingName)) {
|
|
128705
|
-
inferredTypings.set(typingName,
|
|
128765
|
+
inferredTypings.set(typingName, false);
|
|
128706
128766
|
}
|
|
128707
128767
|
}
|
|
128708
128768
|
function addInferredTypings(typingNames, message) {
|
|
@@ -128869,6 +128929,7 @@ ${lanes.join("\n")}
|
|
|
128869
128929
|
"src/jsTyping/jsTyping.ts"() {
|
|
128870
128930
|
"use strict";
|
|
128871
128931
|
init_ts3();
|
|
128932
|
+
init_ts_server();
|
|
128872
128933
|
unprefixedNodeCoreModuleList = [
|
|
128873
128934
|
"assert",
|
|
128874
128935
|
"assert/strict",
|
|
@@ -128956,59 +129017,6 @@ ${lanes.join("\n")}
|
|
|
128956
129017
|
}
|
|
128957
129018
|
});
|
|
128958
129019
|
|
|
128959
|
-
// src/jsTyping/shared.ts
|
|
128960
|
-
function hasArgument(argumentName) {
|
|
128961
|
-
return sys.args.includes(argumentName);
|
|
128962
|
-
}
|
|
128963
|
-
function findArgument(argumentName) {
|
|
128964
|
-
const index = sys.args.indexOf(argumentName);
|
|
128965
|
-
return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;
|
|
128966
|
-
}
|
|
128967
|
-
function nowString() {
|
|
128968
|
-
const d = /* @__PURE__ */ new Date();
|
|
128969
|
-
return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}.${d.getMilliseconds().toString().padStart(3, "0")}`;
|
|
128970
|
-
}
|
|
128971
|
-
var ActionSet, ActionInvalidate, ActionPackageInstalled, EventTypesRegistry, EventBeginInstallTypes, EventEndInstallTypes, EventInitializationFailed, ActionWatchTypingLocations, Arguments;
|
|
128972
|
-
var init_shared = __esm({
|
|
128973
|
-
"src/jsTyping/shared.ts"() {
|
|
128974
|
-
"use strict";
|
|
128975
|
-
init_ts3();
|
|
128976
|
-
ActionSet = "action::set";
|
|
128977
|
-
ActionInvalidate = "action::invalidate";
|
|
128978
|
-
ActionPackageInstalled = "action::packageInstalled";
|
|
128979
|
-
EventTypesRegistry = "event::typesRegistry";
|
|
128980
|
-
EventBeginInstallTypes = "event::beginInstallTypes";
|
|
128981
|
-
EventEndInstallTypes = "event::endInstallTypes";
|
|
128982
|
-
EventInitializationFailed = "event::initializationFailed";
|
|
128983
|
-
ActionWatchTypingLocations = "action::watchTypingLocations";
|
|
128984
|
-
((Arguments2) => {
|
|
128985
|
-
Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation";
|
|
128986
|
-
Arguments2.LogFile = "--logFile";
|
|
128987
|
-
Arguments2.EnableTelemetry = "--enableTelemetry";
|
|
128988
|
-
Arguments2.TypingSafeListLocation = "--typingSafeListLocation";
|
|
128989
|
-
Arguments2.TypesMapLocation = "--typesMapLocation";
|
|
128990
|
-
Arguments2.NpmLocation = "--npmLocation";
|
|
128991
|
-
Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
|
|
128992
|
-
})(Arguments || (Arguments = {}));
|
|
128993
|
-
}
|
|
128994
|
-
});
|
|
128995
|
-
|
|
128996
|
-
// src/jsTyping/types.ts
|
|
128997
|
-
var init_types2 = __esm({
|
|
128998
|
-
"src/jsTyping/types.ts"() {
|
|
128999
|
-
"use strict";
|
|
129000
|
-
}
|
|
129001
|
-
});
|
|
129002
|
-
|
|
129003
|
-
// src/jsTyping/_namespaces/ts.server.ts
|
|
129004
|
-
var init_ts_server = __esm({
|
|
129005
|
-
"src/jsTyping/_namespaces/ts.server.ts"() {
|
|
129006
|
-
"use strict";
|
|
129007
|
-
init_shared();
|
|
129008
|
-
init_types2();
|
|
129009
|
-
}
|
|
129010
|
-
});
|
|
129011
|
-
|
|
129012
129020
|
// src/jsTyping/_namespaces/ts.ts
|
|
129013
129021
|
var init_ts3 = __esm({
|
|
129014
129022
|
"src/jsTyping/_namespaces/ts.ts"() {
|
|
@@ -171925,7 +171933,7 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
171925
171933
|
}
|
|
171926
171934
|
install(req) {
|
|
171927
171935
|
if (this.log.isEnabled()) {
|
|
171928
|
-
this.log.writeLine(`Got install request
|
|
171936
|
+
this.log.writeLine(`Got install request${stringifyIndented(req)}`);
|
|
171929
171937
|
}
|
|
171930
171938
|
if (req.cachePath) {
|
|
171931
171939
|
if (this.log.isEnabled()) {
|
|
@@ -171948,9 +171956,6 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
171948
171956
|
this.typesRegistry,
|
|
171949
171957
|
req.compilerOptions
|
|
171950
171958
|
);
|
|
171951
|
-
if (this.log.isEnabled()) {
|
|
171952
|
-
this.log.writeLine(`Finished typings discovery: ${JSON.stringify(discoverTypingsResult)}`);
|
|
171953
|
-
}
|
|
171954
171959
|
this.watchFiles(req.projectName, discoverTypingsResult.filesToWatch);
|
|
171955
171960
|
if (discoverTypingsResult.newTypingNames.length) {
|
|
171956
171961
|
this.installTypings(req, req.cachePath || this.globalCachePath, discoverTypingsResult.cachedTypingPaths, discoverTypingsResult.newTypingNames);
|
|
@@ -171992,8 +171997,8 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
171992
171997
|
const npmConfig = JSON.parse(this.installTypingHost.readFile(packageJson));
|
|
171993
171998
|
const npmLock = JSON.parse(this.installTypingHost.readFile(packageLockJson));
|
|
171994
171999
|
if (this.log.isEnabled()) {
|
|
171995
|
-
this.log.writeLine(`Loaded content of '${packageJson}'
|
|
171996
|
-
this.log.writeLine(`Loaded content of '${packageLockJson}'`);
|
|
172000
|
+
this.log.writeLine(`Loaded content of '${packageJson}':${stringifyIndented(npmConfig)}`);
|
|
172001
|
+
this.log.writeLine(`Loaded content of '${packageLockJson}':${stringifyIndented(npmLock)}`);
|
|
171997
172002
|
}
|
|
171998
172003
|
if (npmConfig.devDependencies && npmLock.dependencies) {
|
|
171999
172004
|
for (const key in npmConfig.devDependencies) {
|
|
@@ -172340,13 +172345,7 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
172340
172345
|
array.splice(removeIndex, 1);
|
|
172341
172346
|
}
|
|
172342
172347
|
}
|
|
172343
|
-
|
|
172344
|
-
return indentStr + str.replace(/\n/g, indentStr);
|
|
172345
|
-
}
|
|
172346
|
-
function stringifyIndented(json) {
|
|
172347
|
-
return indentStr + JSON.stringify(json);
|
|
172348
|
-
}
|
|
172349
|
-
var ThrottledOperations, GcTimer, indentStr;
|
|
172348
|
+
var ThrottledOperations, GcTimer;
|
|
172350
172349
|
var init_utilities5 = __esm({
|
|
172351
172350
|
"src/server/utilities.ts"() {
|
|
172352
172351
|
"use strict";
|
|
@@ -172418,7 +172417,6 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
172418
172417
|
(_b = perfLogger) == null ? void 0 : _b.logStopScheduledOperation();
|
|
172419
172418
|
}
|
|
172420
172419
|
};
|
|
172421
|
-
indentStr = "\n ";
|
|
172422
172420
|
}
|
|
172423
172421
|
});
|
|
172424
172422
|
|
|
@@ -175320,9 +175318,6 @@ ${options.prefix}` : "\n" : options.prefix
|
|
|
175320
175318
|
includePackageJsonAutoImports() {
|
|
175321
175319
|
return 0 /* Off */;
|
|
175322
175320
|
}
|
|
175323
|
-
getTypeAcquisition() {
|
|
175324
|
-
return { enable: false };
|
|
175325
|
-
}
|
|
175326
175321
|
/** @internal */
|
|
175327
175322
|
getSymlinkCache() {
|
|
175328
175323
|
return this.hostProject.getSymlinkCache();
|
|
@@ -179251,7 +179246,7 @@ Dynamic files must always be opened with service's current directory or service
|
|
|
179251
179246
|
const verboseLogging = logger.hasLevel(3 /* verbose */);
|
|
179252
179247
|
const json = JSON.stringify(msg);
|
|
179253
179248
|
if (verboseLogging) {
|
|
179254
|
-
logger.info(`${msg.type}:${
|
|
179249
|
+
logger.info(`${msg.type}:${stringifyIndented(msg)}`);
|
|
179255
179250
|
}
|
|
179256
179251
|
const len = byteLength(json, "utf8");
|
|
179257
179252
|
return `Content-Length: ${1 + len}\r
|
package/lib/typingsInstaller.js
CHANGED
|
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
|
|
|
54
54
|
|
|
55
55
|
// src/compiler/corePublic.ts
|
|
56
56
|
var versionMajorMinor = "5.3";
|
|
57
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
57
|
+
var version = `${versionMajorMinor}.0-dev.20231013`;
|
|
58
58
|
|
|
59
59
|
// src/compiler/core.ts
|
|
60
60
|
var emptyArray = [];
|
|
@@ -24111,20 +24111,20 @@ var Parser;
|
|
|
24111
24111
|
function doJSDocScan() {
|
|
24112
24112
|
let state = 1 /* SawAsterisk */;
|
|
24113
24113
|
let margin;
|
|
24114
|
-
let
|
|
24114
|
+
let indent3 = start - (content.lastIndexOf("\n", start) + 1) + 4;
|
|
24115
24115
|
function pushComment(text) {
|
|
24116
24116
|
if (!margin) {
|
|
24117
|
-
margin =
|
|
24117
|
+
margin = indent3;
|
|
24118
24118
|
}
|
|
24119
24119
|
comments.push(text);
|
|
24120
|
-
|
|
24120
|
+
indent3 += text.length;
|
|
24121
24121
|
}
|
|
24122
24122
|
nextTokenJSDoc();
|
|
24123
24123
|
while (parseOptionalJsdoc(5 /* WhitespaceTrivia */))
|
|
24124
24124
|
;
|
|
24125
24125
|
if (parseOptionalJsdoc(4 /* NewLineTrivia */)) {
|
|
24126
24126
|
state = 0 /* BeginningOfLine */;
|
|
24127
|
-
|
|
24127
|
+
indent3 = 0;
|
|
24128
24128
|
}
|
|
24129
24129
|
loop:
|
|
24130
24130
|
while (true) {
|
|
@@ -24133,14 +24133,14 @@ var Parser;
|
|
|
24133
24133
|
removeTrailingWhitespace(comments);
|
|
24134
24134
|
if (!commentsPos)
|
|
24135
24135
|
commentsPos = getNodePos();
|
|
24136
|
-
addTag(parseTag(
|
|
24136
|
+
addTag(parseTag(indent3));
|
|
24137
24137
|
state = 0 /* BeginningOfLine */;
|
|
24138
24138
|
margin = void 0;
|
|
24139
24139
|
break;
|
|
24140
24140
|
case 4 /* NewLineTrivia */:
|
|
24141
24141
|
comments.push(scanner.getTokenText());
|
|
24142
24142
|
state = 0 /* BeginningOfLine */;
|
|
24143
|
-
|
|
24143
|
+
indent3 = 0;
|
|
24144
24144
|
break;
|
|
24145
24145
|
case 42 /* AsteriskToken */:
|
|
24146
24146
|
const asterisk = scanner.getTokenText();
|
|
@@ -24150,16 +24150,16 @@ var Parser;
|
|
|
24150
24150
|
} else {
|
|
24151
24151
|
Debug.assert(state === 0 /* BeginningOfLine */);
|
|
24152
24152
|
state = 1 /* SawAsterisk */;
|
|
24153
|
-
|
|
24153
|
+
indent3 += asterisk.length;
|
|
24154
24154
|
}
|
|
24155
24155
|
break;
|
|
24156
24156
|
case 5 /* WhitespaceTrivia */:
|
|
24157
24157
|
Debug.assert(state !== 2 /* SavingComments */, "whitespace shouldn't come from the scanner while saving top-level comment text");
|
|
24158
24158
|
const whitespace = scanner.getTokenText();
|
|
24159
|
-
if (margin !== void 0 &&
|
|
24160
|
-
comments.push(whitespace.slice(margin -
|
|
24159
|
+
if (margin !== void 0 && indent3 + whitespace.length > margin) {
|
|
24160
|
+
comments.push(whitespace.slice(margin - indent3));
|
|
24161
24161
|
}
|
|
24162
|
-
|
|
24162
|
+
indent3 += whitespace.length;
|
|
24163
24163
|
break;
|
|
24164
24164
|
case 1 /* EndOfFileToken */:
|
|
24165
24165
|
break loop;
|
|
@@ -24361,7 +24361,7 @@ var Parser;
|
|
|
24361
24361
|
}
|
|
24362
24362
|
return parseTagComments(margin, indentText.slice(margin));
|
|
24363
24363
|
}
|
|
24364
|
-
function parseTagComments(
|
|
24364
|
+
function parseTagComments(indent3, initialMargin) {
|
|
24365
24365
|
const commentsPos2 = getNodePos();
|
|
24366
24366
|
let comments2 = [];
|
|
24367
24367
|
const parts2 = [];
|
|
@@ -24370,10 +24370,10 @@ var Parser;
|
|
|
24370
24370
|
let margin;
|
|
24371
24371
|
function pushComment(text) {
|
|
24372
24372
|
if (!margin) {
|
|
24373
|
-
margin =
|
|
24373
|
+
margin = indent3;
|
|
24374
24374
|
}
|
|
24375
24375
|
comments2.push(text);
|
|
24376
|
-
|
|
24376
|
+
indent3 += text.length;
|
|
24377
24377
|
}
|
|
24378
24378
|
if (initialMargin !== void 0) {
|
|
24379
24379
|
if (initialMargin !== "") {
|
|
@@ -24388,7 +24388,7 @@ var Parser;
|
|
|
24388
24388
|
case 4 /* NewLineTrivia */:
|
|
24389
24389
|
state = 0 /* BeginningOfLine */;
|
|
24390
24390
|
comments2.push(scanner.getTokenText());
|
|
24391
|
-
|
|
24391
|
+
indent3 = 0;
|
|
24392
24392
|
break;
|
|
24393
24393
|
case 60 /* AtToken */:
|
|
24394
24394
|
scanner.resetTokenState(scanner.getTokenEnd() - 1);
|
|
@@ -24398,11 +24398,11 @@ var Parser;
|
|
|
24398
24398
|
case 5 /* WhitespaceTrivia */:
|
|
24399
24399
|
Debug.assert(state !== 2 /* SavingComments */ && state !== 3 /* SavingBackticks */, "whitespace shouldn't come from the scanner while saving comment text");
|
|
24400
24400
|
const whitespace = scanner.getTokenText();
|
|
24401
|
-
if (margin !== void 0 &&
|
|
24402
|
-
comments2.push(whitespace.slice(margin -
|
|
24401
|
+
if (margin !== void 0 && indent3 + whitespace.length > margin) {
|
|
24402
|
+
comments2.push(whitespace.slice(margin - indent3));
|
|
24403
24403
|
state = 2 /* SavingComments */;
|
|
24404
24404
|
}
|
|
24405
|
-
|
|
24405
|
+
indent3 += whitespace.length;
|
|
24406
24406
|
break;
|
|
24407
24407
|
case 19 /* OpenBraceToken */:
|
|
24408
24408
|
state = 2 /* SavingComments */;
|
|
@@ -24435,7 +24435,7 @@ var Parser;
|
|
|
24435
24435
|
case 42 /* AsteriskToken */:
|
|
24436
24436
|
if (state === 0 /* BeginningOfLine */) {
|
|
24437
24437
|
state = 1 /* SawAsterisk */;
|
|
24438
|
-
|
|
24438
|
+
indent3 += 1;
|
|
24439
24439
|
break;
|
|
24440
24440
|
}
|
|
24441
24441
|
default:
|
|
@@ -24500,8 +24500,8 @@ var Parser;
|
|
|
24500
24500
|
function isJSDocLinkTag(kind) {
|
|
24501
24501
|
return kind === "link" || kind === "linkcode" || kind === "linkplain";
|
|
24502
24502
|
}
|
|
24503
|
-
function parseUnknownTag(start2, tagName,
|
|
24504
|
-
return finishNode(factory2.createJSDocUnknownTag(tagName, parseTrailingTagComments(start2, getNodePos(),
|
|
24503
|
+
function parseUnknownTag(start2, tagName, indent3, indentText) {
|
|
24504
|
+
return finishNode(factory2.createJSDocUnknownTag(tagName, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);
|
|
24505
24505
|
}
|
|
24506
24506
|
function addTag(tag) {
|
|
24507
24507
|
if (!tag) {
|
|
@@ -24548,7 +24548,7 @@ var Parser;
|
|
|
24548
24548
|
return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === "Object" && !node.typeArguments;
|
|
24549
24549
|
}
|
|
24550
24550
|
}
|
|
24551
|
-
function parseParameterOrPropertyTag(start2, tagName, target,
|
|
24551
|
+
function parseParameterOrPropertyTag(start2, tagName, target, indent3) {
|
|
24552
24552
|
let typeExpression = tryParseTypeExpression();
|
|
24553
24553
|
let isNameFirst = !typeExpression;
|
|
24554
24554
|
skipWhitespaceOrAsterisk();
|
|
@@ -24557,8 +24557,8 @@ var Parser;
|
|
|
24557
24557
|
if (isNameFirst && !lookAhead(parseJSDocLinkPrefix)) {
|
|
24558
24558
|
typeExpression = tryParseTypeExpression();
|
|
24559
24559
|
}
|
|
24560
|
-
const comment = parseTrailingTagComments(start2, getNodePos(),
|
|
24561
|
-
const nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target,
|
|
24560
|
+
const comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);
|
|
24561
|
+
const nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target, indent3);
|
|
24562
24562
|
if (nestedTypeLiteral) {
|
|
24563
24563
|
typeExpression = nestedTypeLiteral;
|
|
24564
24564
|
isNameFirst = true;
|
|
@@ -24566,12 +24566,12 @@ var Parser;
|
|
|
24566
24566
|
const result2 = target === 1 /* Property */ ? factory2.createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) : factory2.createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment);
|
|
24567
24567
|
return finishNode(result2, start2);
|
|
24568
24568
|
}
|
|
24569
|
-
function parseNestedTypeLiteral(typeExpression, name, target,
|
|
24569
|
+
function parseNestedTypeLiteral(typeExpression, name, target, indent3) {
|
|
24570
24570
|
if (typeExpression && isObjectOrObjectArrayTypeReference(typeExpression.type)) {
|
|
24571
24571
|
const pos = getNodePos();
|
|
24572
24572
|
let child;
|
|
24573
24573
|
let children;
|
|
24574
|
-
while (child = tryParse(() => parseChildParameterOrPropertyTag(target,
|
|
24574
|
+
while (child = tryParse(() => parseChildParameterOrPropertyTag(target, indent3, name))) {
|
|
24575
24575
|
if (child.kind === 348 /* JSDocParameterTag */ || child.kind === 355 /* JSDocPropertyTag */) {
|
|
24576
24576
|
children = append(children, child);
|
|
24577
24577
|
} else if (child.kind === 352 /* JSDocTemplateTag */) {
|
|
@@ -24584,14 +24584,14 @@ var Parser;
|
|
|
24584
24584
|
}
|
|
24585
24585
|
}
|
|
24586
24586
|
}
|
|
24587
|
-
function parseReturnTag(start2, tagName,
|
|
24587
|
+
function parseReturnTag(start2, tagName, indent3, indentText) {
|
|
24588
24588
|
if (some(tags, isJSDocReturnTag)) {
|
|
24589
24589
|
parseErrorAt(tagName.pos, scanner.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText));
|
|
24590
24590
|
}
|
|
24591
24591
|
const typeExpression = tryParseTypeExpression();
|
|
24592
|
-
return finishNode(factory2.createJSDocReturnTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(),
|
|
24592
|
+
return finishNode(factory2.createJSDocReturnTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);
|
|
24593
24593
|
}
|
|
24594
|
-
function parseTypeTag(start2, tagName,
|
|
24594
|
+
function parseTypeTag(start2, tagName, indent3, indentText) {
|
|
24595
24595
|
if (some(tags, isJSDocTypeTag)) {
|
|
24596
24596
|
parseErrorAt(tagName.pos, scanner.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText));
|
|
24597
24597
|
}
|
|
@@ -24599,25 +24599,25 @@ var Parser;
|
|
|
24599
24599
|
/*mayOmitBraces*/
|
|
24600
24600
|
true
|
|
24601
24601
|
);
|
|
24602
|
-
const comments2 =
|
|
24602
|
+
const comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), indent3, indentText) : void 0;
|
|
24603
24603
|
return finishNode(factory2.createJSDocTypeTag(tagName, typeExpression, comments2), start2);
|
|
24604
24604
|
}
|
|
24605
|
-
function parseSeeTag(start2, tagName,
|
|
24605
|
+
function parseSeeTag(start2, tagName, indent3, indentText) {
|
|
24606
24606
|
const isMarkdownOrJSDocLink = token() === 23 /* OpenBracketToken */ || lookAhead(() => nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && isJSDocLinkTag(scanner.getTokenValue()));
|
|
24607
24607
|
const nameExpression = isMarkdownOrJSDocLink ? void 0 : parseJSDocNameReference();
|
|
24608
|
-
const comments2 =
|
|
24608
|
+
const comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), indent3, indentText) : void 0;
|
|
24609
24609
|
return finishNode(factory2.createJSDocSeeTag(tagName, nameExpression, comments2), start2);
|
|
24610
24610
|
}
|
|
24611
|
-
function parseThrowsTag(start2, tagName,
|
|
24611
|
+
function parseThrowsTag(start2, tagName, indent3, indentText) {
|
|
24612
24612
|
const typeExpression = tryParseTypeExpression();
|
|
24613
|
-
const comment = parseTrailingTagComments(start2, getNodePos(),
|
|
24613
|
+
const comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);
|
|
24614
24614
|
return finishNode(factory2.createJSDocThrowsTag(tagName, typeExpression, comment), start2);
|
|
24615
24615
|
}
|
|
24616
|
-
function parseAuthorTag(start2, tagName,
|
|
24616
|
+
function parseAuthorTag(start2, tagName, indent3, indentText) {
|
|
24617
24617
|
const commentStart = getNodePos();
|
|
24618
24618
|
const textOnly = parseAuthorNameAndEmail();
|
|
24619
24619
|
let commentEnd = scanner.getTokenFullStart();
|
|
24620
|
-
const comments2 = parseTrailingTagComments(start2, commentEnd,
|
|
24620
|
+
const comments2 = parseTrailingTagComments(start2, commentEnd, indent3, indentText);
|
|
24621
24621
|
if (!comments2) {
|
|
24622
24622
|
commentEnd = scanner.getTokenFullStart();
|
|
24623
24623
|
}
|
|
@@ -24701,19 +24701,19 @@ var Parser;
|
|
|
24701
24701
|
skipWhitespace();
|
|
24702
24702
|
return finishNode(factory2.createJSDocEnumTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);
|
|
24703
24703
|
}
|
|
24704
|
-
function parseTypedefTag(start2, tagName,
|
|
24704
|
+
function parseTypedefTag(start2, tagName, indent3, indentText) {
|
|
24705
24705
|
let typeExpression = tryParseTypeExpression();
|
|
24706
24706
|
skipWhitespaceOrAsterisk();
|
|
24707
24707
|
const fullName = parseJSDocTypeNameWithNamespace();
|
|
24708
24708
|
skipWhitespace();
|
|
24709
|
-
let comment = parseTagComments(
|
|
24709
|
+
let comment = parseTagComments(indent3);
|
|
24710
24710
|
let end2;
|
|
24711
24711
|
if (!typeExpression || isObjectOrObjectArrayTypeReference(typeExpression.type)) {
|
|
24712
24712
|
let child;
|
|
24713
24713
|
let childTypeTag;
|
|
24714
24714
|
let jsDocPropertyTags;
|
|
24715
24715
|
let hasChildren = false;
|
|
24716
|
-
while (child = tryParse(() => parseChildPropertyTag(
|
|
24716
|
+
while (child = tryParse(() => parseChildPropertyTag(indent3))) {
|
|
24717
24717
|
if (child.kind === 352 /* JSDocTemplateTag */) {
|
|
24718
24718
|
break;
|
|
24719
24719
|
}
|
|
@@ -24741,7 +24741,7 @@ var Parser;
|
|
|
24741
24741
|
}
|
|
24742
24742
|
end2 = end2 || comment !== void 0 ? getNodePos() : (fullName ?? typeExpression ?? tagName).end;
|
|
24743
24743
|
if (!comment) {
|
|
24744
|
-
comment = parseTrailingTagComments(start2, end2,
|
|
24744
|
+
comment = parseTrailingTagComments(start2, end2, indent3, indentText);
|
|
24745
24745
|
}
|
|
24746
24746
|
const typedefTag = factory2.createJSDocTypedefTag(tagName, typeExpression, fullName, comment);
|
|
24747
24747
|
return finishNode(typedefTag, start2, end2);
|
|
@@ -24771,11 +24771,11 @@ var Parser;
|
|
|
24771
24771
|
}
|
|
24772
24772
|
return typeNameOrNamespaceName;
|
|
24773
24773
|
}
|
|
24774
|
-
function parseCallbackTagParameters(
|
|
24774
|
+
function parseCallbackTagParameters(indent3) {
|
|
24775
24775
|
const pos = getNodePos();
|
|
24776
24776
|
let child;
|
|
24777
24777
|
let parameters;
|
|
24778
|
-
while (child = tryParse(() => parseChildParameterOrPropertyTag(4 /* CallbackParameter */,
|
|
24778
|
+
while (child = tryParse(() => parseChildParameterOrPropertyTag(4 /* CallbackParameter */, indent3))) {
|
|
24779
24779
|
if (child.kind === 352 /* JSDocTemplateTag */) {
|
|
24780
24780
|
parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);
|
|
24781
24781
|
break;
|
|
@@ -24784,11 +24784,11 @@ var Parser;
|
|
|
24784
24784
|
}
|
|
24785
24785
|
return createNodeArray(parameters || [], pos);
|
|
24786
24786
|
}
|
|
24787
|
-
function parseJSDocSignature(start2,
|
|
24788
|
-
const parameters = parseCallbackTagParameters(
|
|
24787
|
+
function parseJSDocSignature(start2, indent3) {
|
|
24788
|
+
const parameters = parseCallbackTagParameters(indent3);
|
|
24789
24789
|
const returnTag = tryParse(() => {
|
|
24790
24790
|
if (parseOptionalJsdoc(60 /* AtToken */)) {
|
|
24791
|
-
const tag = parseTag(
|
|
24791
|
+
const tag = parseTag(indent3);
|
|
24792
24792
|
if (tag && tag.kind === 349 /* JSDocReturnTag */) {
|
|
24793
24793
|
return tag;
|
|
24794
24794
|
}
|
|
@@ -24801,23 +24801,23 @@ var Parser;
|
|
|
24801
24801
|
returnTag
|
|
24802
24802
|
), start2);
|
|
24803
24803
|
}
|
|
24804
|
-
function parseCallbackTag(start2, tagName,
|
|
24804
|
+
function parseCallbackTag(start2, tagName, indent3, indentText) {
|
|
24805
24805
|
const fullName = parseJSDocTypeNameWithNamespace();
|
|
24806
24806
|
skipWhitespace();
|
|
24807
|
-
let comment = parseTagComments(
|
|
24808
|
-
const typeExpression = parseJSDocSignature(start2,
|
|
24807
|
+
let comment = parseTagComments(indent3);
|
|
24808
|
+
const typeExpression = parseJSDocSignature(start2, indent3);
|
|
24809
24809
|
if (!comment) {
|
|
24810
|
-
comment = parseTrailingTagComments(start2, getNodePos(),
|
|
24810
|
+
comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);
|
|
24811
24811
|
}
|
|
24812
24812
|
const end2 = comment !== void 0 ? getNodePos() : typeExpression.end;
|
|
24813
24813
|
return finishNode(factory2.createJSDocCallbackTag(tagName, typeExpression, fullName, comment), start2, end2);
|
|
24814
24814
|
}
|
|
24815
|
-
function parseOverloadTag(start2, tagName,
|
|
24815
|
+
function parseOverloadTag(start2, tagName, indent3, indentText) {
|
|
24816
24816
|
skipWhitespace();
|
|
24817
|
-
let comment = parseTagComments(
|
|
24818
|
-
const typeExpression = parseJSDocSignature(start2,
|
|
24817
|
+
let comment = parseTagComments(indent3);
|
|
24818
|
+
const typeExpression = parseJSDocSignature(start2, indent3);
|
|
24819
24819
|
if (!comment) {
|
|
24820
|
-
comment = parseTrailingTagComments(start2, getNodePos(),
|
|
24820
|
+
comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);
|
|
24821
24821
|
}
|
|
24822
24822
|
const end2 = comment !== void 0 ? getNodePos() : typeExpression.end;
|
|
24823
24823
|
return finishNode(factory2.createJSDocOverloadTag(tagName, typeExpression, comment), start2, end2);
|
|
@@ -24833,17 +24833,17 @@ var Parser;
|
|
|
24833
24833
|
}
|
|
24834
24834
|
return a.escapedText === b.escapedText;
|
|
24835
24835
|
}
|
|
24836
|
-
function parseChildPropertyTag(
|
|
24837
|
-
return parseChildParameterOrPropertyTag(1 /* Property */,
|
|
24836
|
+
function parseChildPropertyTag(indent3) {
|
|
24837
|
+
return parseChildParameterOrPropertyTag(1 /* Property */, indent3);
|
|
24838
24838
|
}
|
|
24839
|
-
function parseChildParameterOrPropertyTag(target,
|
|
24839
|
+
function parseChildParameterOrPropertyTag(target, indent3, name) {
|
|
24840
24840
|
let canParseTag = true;
|
|
24841
24841
|
let seenAsterisk = false;
|
|
24842
24842
|
while (true) {
|
|
24843
24843
|
switch (nextTokenJSDoc()) {
|
|
24844
24844
|
case 60 /* AtToken */:
|
|
24845
24845
|
if (canParseTag) {
|
|
24846
|
-
const child = tryParseChildTag(target,
|
|
24846
|
+
const child = tryParseChildTag(target, indent3);
|
|
24847
24847
|
if (child && (child.kind === 348 /* JSDocParameterTag */ || child.kind === 355 /* JSDocPropertyTag */) && name && (isIdentifier(child.name) || !escapedTextsEqual(name, child.name.left))) {
|
|
24848
24848
|
return false;
|
|
24849
24849
|
}
|
|
@@ -24869,7 +24869,7 @@ var Parser;
|
|
|
24869
24869
|
}
|
|
24870
24870
|
}
|
|
24871
24871
|
}
|
|
24872
|
-
function tryParseChildTag(target,
|
|
24872
|
+
function tryParseChildTag(target, indent3) {
|
|
24873
24873
|
Debug.assert(token() === 60 /* AtToken */);
|
|
24874
24874
|
const start2 = scanner.getTokenFullStart();
|
|
24875
24875
|
nextTokenJSDoc();
|
|
@@ -24889,14 +24889,14 @@ var Parser;
|
|
|
24889
24889
|
t = 2 /* Parameter */ | 4 /* CallbackParameter */;
|
|
24890
24890
|
break;
|
|
24891
24891
|
case "template":
|
|
24892
|
-
return parseTemplateTag(start2, tagName,
|
|
24892
|
+
return parseTemplateTag(start2, tagName, indent3, indentText);
|
|
24893
24893
|
default:
|
|
24894
24894
|
return false;
|
|
24895
24895
|
}
|
|
24896
24896
|
if (!(target & t)) {
|
|
24897
24897
|
return false;
|
|
24898
24898
|
}
|
|
24899
|
-
return parseParameterOrPropertyTag(start2, tagName, target,
|
|
24899
|
+
return parseParameterOrPropertyTag(start2, tagName, target, indent3);
|
|
24900
24900
|
}
|
|
24901
24901
|
function parseTemplateTagTypeParameter() {
|
|
24902
24902
|
const typeParameterPos = getNodePos();
|
|
@@ -24937,10 +24937,10 @@ var Parser;
|
|
|
24937
24937
|
} while (parseOptionalJsdoc(28 /* CommaToken */));
|
|
24938
24938
|
return createNodeArray(typeParameters, pos);
|
|
24939
24939
|
}
|
|
24940
|
-
function parseTemplateTag(start2, tagName,
|
|
24940
|
+
function parseTemplateTag(start2, tagName, indent3, indentText) {
|
|
24941
24941
|
const constraint = token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0;
|
|
24942
24942
|
const typeParameters = parseTemplateTagTypeParameters();
|
|
24943
|
-
return finishNode(factory2.createJSDocTemplateTag(tagName, constraint, typeParameters, parseTrailingTagComments(start2, getNodePos(),
|
|
24943
|
+
return finishNode(factory2.createJSDocTemplateTag(tagName, constraint, typeParameters, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);
|
|
24944
24944
|
}
|
|
24945
24945
|
function parseOptionalJsdoc(t) {
|
|
24946
24946
|
if (token() === t) {
|
|
@@ -31404,6 +31404,42 @@ __export(ts_JsTyping_exports, {
|
|
|
31404
31404
|
validatePackageName: () => validatePackageName
|
|
31405
31405
|
});
|
|
31406
31406
|
|
|
31407
|
+
// src/jsTyping/shared.ts
|
|
31408
|
+
var ActionSet = "action::set";
|
|
31409
|
+
var ActionPackageInstalled = "action::packageInstalled";
|
|
31410
|
+
var EventTypesRegistry = "event::typesRegistry";
|
|
31411
|
+
var EventBeginInstallTypes = "event::beginInstallTypes";
|
|
31412
|
+
var EventEndInstallTypes = "event::endInstallTypes";
|
|
31413
|
+
var ActionWatchTypingLocations = "action::watchTypingLocations";
|
|
31414
|
+
var Arguments;
|
|
31415
|
+
((Arguments2) => {
|
|
31416
|
+
Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation";
|
|
31417
|
+
Arguments2.LogFile = "--logFile";
|
|
31418
|
+
Arguments2.EnableTelemetry = "--enableTelemetry";
|
|
31419
|
+
Arguments2.TypingSafeListLocation = "--typingSafeListLocation";
|
|
31420
|
+
Arguments2.TypesMapLocation = "--typesMapLocation";
|
|
31421
|
+
Arguments2.NpmLocation = "--npmLocation";
|
|
31422
|
+
Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
|
|
31423
|
+
})(Arguments || (Arguments = {}));
|
|
31424
|
+
function hasArgument(argumentName) {
|
|
31425
|
+
return sys.args.includes(argumentName);
|
|
31426
|
+
}
|
|
31427
|
+
function findArgument(argumentName) {
|
|
31428
|
+
const index = sys.args.indexOf(argumentName);
|
|
31429
|
+
return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;
|
|
31430
|
+
}
|
|
31431
|
+
function nowString() {
|
|
31432
|
+
const d = /* @__PURE__ */ new Date();
|
|
31433
|
+
return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}.${d.getMilliseconds().toString().padStart(3, "0")}`;
|
|
31434
|
+
}
|
|
31435
|
+
var indentStr = "\n ";
|
|
31436
|
+
function indent(str) {
|
|
31437
|
+
return indentStr + str.replace(/\n/g, indentStr);
|
|
31438
|
+
}
|
|
31439
|
+
function stringifyIndented(json) {
|
|
31440
|
+
return indent(JSON.stringify(json, void 0, 2));
|
|
31441
|
+
}
|
|
31442
|
+
|
|
31407
31443
|
// src/jsTyping/jsTyping.ts
|
|
31408
31444
|
function isTypingUpToDate(cachedTyping, availableTypingVersions) {
|
|
31409
31445
|
const availableVersion = new Version(getProperty(availableTypingVersions, `ts${versionMajorMinor}`) || getProperty(availableTypingVersions, "latest"));
|
|
@@ -31510,21 +31546,21 @@ function discoverTypings(host, log2, fileNames, projectRootPath, safeList, packa
|
|
|
31510
31546
|
);
|
|
31511
31547
|
addInferredTypings(module2, "Inferred typings from unresolved imports");
|
|
31512
31548
|
}
|
|
31513
|
-
packageNameToTypingLocation.forEach((typing, name) => {
|
|
31514
|
-
const registryEntry = typesRegistry.get(name);
|
|
31515
|
-
if (inferredTypings.has(name) && inferredTypings.get(name) === void 0 && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {
|
|
31516
|
-
inferredTypings.set(name, typing.typingLocation);
|
|
31517
|
-
}
|
|
31518
|
-
});
|
|
31519
31549
|
for (const excludeTypingName of exclude) {
|
|
31520
31550
|
const didDelete = inferredTypings.delete(excludeTypingName);
|
|
31521
31551
|
if (didDelete && log2)
|
|
31522
31552
|
log2(`Typing for ${excludeTypingName} is in exclude list, will be ignored.`);
|
|
31523
31553
|
}
|
|
31554
|
+
packageNameToTypingLocation.forEach((typing, name) => {
|
|
31555
|
+
const registryEntry = typesRegistry.get(name);
|
|
31556
|
+
if (inferredTypings.get(name) === false && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {
|
|
31557
|
+
inferredTypings.set(name, typing.typingLocation);
|
|
31558
|
+
}
|
|
31559
|
+
});
|
|
31524
31560
|
const newTypingNames = [];
|
|
31525
31561
|
const cachedTypingPaths = [];
|
|
31526
31562
|
inferredTypings.forEach((inferred, typing) => {
|
|
31527
|
-
if (inferred
|
|
31563
|
+
if (inferred) {
|
|
31528
31564
|
cachedTypingPaths.push(inferred);
|
|
31529
31565
|
} else {
|
|
31530
31566
|
newTypingNames.push(typing);
|
|
@@ -31532,11 +31568,11 @@ function discoverTypings(host, log2, fileNames, projectRootPath, safeList, packa
|
|
|
31532
31568
|
});
|
|
31533
31569
|
const result = { cachedTypingPaths, newTypingNames, filesToWatch };
|
|
31534
31570
|
if (log2)
|
|
31535
|
-
log2(`
|
|
31571
|
+
log2(`Finished typings discovery:${stringifyIndented(result)}`);
|
|
31536
31572
|
return result;
|
|
31537
31573
|
function addInferredTyping(typingName) {
|
|
31538
31574
|
if (!inferredTypings.has(typingName)) {
|
|
31539
|
-
inferredTypings.set(typingName,
|
|
31575
|
+
inferredTypings.set(typingName, false);
|
|
31540
31576
|
}
|
|
31541
31577
|
}
|
|
31542
31578
|
function addInferredTypings(typingNames, message) {
|
|
@@ -31709,35 +31745,6 @@ function renderPackageNameValidationFailureWorker(typing, result, name, isScopeN
|
|
|
31709
31745
|
}
|
|
31710
31746
|
}
|
|
31711
31747
|
|
|
31712
|
-
// src/jsTyping/shared.ts
|
|
31713
|
-
var ActionSet = "action::set";
|
|
31714
|
-
var ActionPackageInstalled = "action::packageInstalled";
|
|
31715
|
-
var EventTypesRegistry = "event::typesRegistry";
|
|
31716
|
-
var EventBeginInstallTypes = "event::beginInstallTypes";
|
|
31717
|
-
var EventEndInstallTypes = "event::endInstallTypes";
|
|
31718
|
-
var ActionWatchTypingLocations = "action::watchTypingLocations";
|
|
31719
|
-
var Arguments;
|
|
31720
|
-
((Arguments2) => {
|
|
31721
|
-
Arguments2.GlobalCacheLocation = "--globalTypingsCacheLocation";
|
|
31722
|
-
Arguments2.LogFile = "--logFile";
|
|
31723
|
-
Arguments2.EnableTelemetry = "--enableTelemetry";
|
|
31724
|
-
Arguments2.TypingSafeListLocation = "--typingSafeListLocation";
|
|
31725
|
-
Arguments2.TypesMapLocation = "--typesMapLocation";
|
|
31726
|
-
Arguments2.NpmLocation = "--npmLocation";
|
|
31727
|
-
Arguments2.ValidateDefaultNpmLocation = "--validateDefaultNpmLocation";
|
|
31728
|
-
})(Arguments || (Arguments = {}));
|
|
31729
|
-
function hasArgument(argumentName) {
|
|
31730
|
-
return sys.args.includes(argumentName);
|
|
31731
|
-
}
|
|
31732
|
-
function findArgument(argumentName) {
|
|
31733
|
-
const index = sys.args.indexOf(argumentName);
|
|
31734
|
-
return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;
|
|
31735
|
-
}
|
|
31736
|
-
function nowString() {
|
|
31737
|
-
const d = /* @__PURE__ */ new Date();
|
|
31738
|
-
return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}.${d.getMilliseconds().toString().padStart(3, "0")}`;
|
|
31739
|
-
}
|
|
31740
|
-
|
|
31741
31748
|
// src/typingsInstallerCore/typingsInstaller.ts
|
|
31742
31749
|
var nullLog = {
|
|
31743
31750
|
isEnabled: () => false,
|
|
@@ -31820,7 +31827,7 @@ var TypingsInstaller = class {
|
|
|
31820
31827
|
}
|
|
31821
31828
|
install(req) {
|
|
31822
31829
|
if (this.log.isEnabled()) {
|
|
31823
|
-
this.log.writeLine(`Got install request
|
|
31830
|
+
this.log.writeLine(`Got install request${stringifyIndented(req)}`);
|
|
31824
31831
|
}
|
|
31825
31832
|
if (req.cachePath) {
|
|
31826
31833
|
if (this.log.isEnabled()) {
|
|
@@ -31843,9 +31850,6 @@ var TypingsInstaller = class {
|
|
|
31843
31850
|
this.typesRegistry,
|
|
31844
31851
|
req.compilerOptions
|
|
31845
31852
|
);
|
|
31846
|
-
if (this.log.isEnabled()) {
|
|
31847
|
-
this.log.writeLine(`Finished typings discovery: ${JSON.stringify(discoverTypingsResult)}`);
|
|
31848
|
-
}
|
|
31849
31853
|
this.watchFiles(req.projectName, discoverTypingsResult.filesToWatch);
|
|
31850
31854
|
if (discoverTypingsResult.newTypingNames.length) {
|
|
31851
31855
|
this.installTypings(req, req.cachePath || this.globalCachePath, discoverTypingsResult.cachedTypingPaths, discoverTypingsResult.newTypingNames);
|
|
@@ -31887,8 +31891,8 @@ var TypingsInstaller = class {
|
|
|
31887
31891
|
const npmConfig = JSON.parse(this.installTypingHost.readFile(packageJson));
|
|
31888
31892
|
const npmLock = JSON.parse(this.installTypingHost.readFile(packageLockJson));
|
|
31889
31893
|
if (this.log.isEnabled()) {
|
|
31890
|
-
this.log.writeLine(`Loaded content of '${packageJson}'
|
|
31891
|
-
this.log.writeLine(`Loaded content of '${packageLockJson}'`);
|
|
31894
|
+
this.log.writeLine(`Loaded content of '${packageJson}':${stringifyIndented(npmConfig)}`);
|
|
31895
|
+
this.log.writeLine(`Loaded content of '${packageLockJson}':${stringifyIndented(npmLock)}`);
|
|
31892
31896
|
}
|
|
31893
31897
|
if (npmConfig.devDependencies && npmLock.dependencies) {
|
|
31894
31898
|
for (const key in npmConfig.devDependencies) {
|
|
@@ -32226,8 +32230,7 @@ var NodeTypingsInstaller = class extends TypingsInstaller {
|
|
|
32226
32230
|
}
|
|
32227
32231
|
sendResponse(response) {
|
|
32228
32232
|
if (this.log.isEnabled()) {
|
|
32229
|
-
this.log.writeLine(`Sending response
|
|
32230
|
-
${JSON.stringify(response)}`);
|
|
32233
|
+
this.log.writeLine(`Sending response:${stringifyIndented(response)}`);
|
|
32231
32234
|
}
|
|
32232
32235
|
process.send(response);
|
|
32233
32236
|
if (this.log.isEnabled()) {
|
|
@@ -32253,12 +32256,12 @@ var NodeTypingsInstaller = class extends TypingsInstaller {
|
|
|
32253
32256
|
try {
|
|
32254
32257
|
const stdout = this.nodeExecSync(command, { ...options, encoding: "utf-8" });
|
|
32255
32258
|
if (this.log.isEnabled()) {
|
|
32256
|
-
this.log.writeLine(` Succeeded. stdout:${
|
|
32259
|
+
this.log.writeLine(` Succeeded. stdout:${indent2(sys.newLine, stdout)}`);
|
|
32257
32260
|
}
|
|
32258
32261
|
return false;
|
|
32259
32262
|
} catch (error) {
|
|
32260
32263
|
const { stdout, stderr } = error;
|
|
32261
|
-
this.log.writeLine(` Failed. stdout:${
|
|
32264
|
+
this.log.writeLine(` Failed. stdout:${indent2(sys.newLine, stdout)}${sys.newLine} stderr:${indent2(sys.newLine, stderr)}`);
|
|
32262
32265
|
return true;
|
|
32263
32266
|
}
|
|
32264
32267
|
}
|
|
@@ -32302,7 +32305,7 @@ process.on("message", (req) => {
|
|
|
32302
32305
|
));
|
|
32303
32306
|
installer.handleRequest(req);
|
|
32304
32307
|
});
|
|
32305
|
-
function
|
|
32308
|
+
function indent2(newline, str) {
|
|
32306
32309
|
return str && str.length ? `${newline} ` + str.replace(/\r?\n/, `${newline} `) : "";
|
|
32307
32310
|
}
|
|
32308
32311
|
// Annotate the CommonJS export names for ESM import in node:
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "typescript",
|
|
3
3
|
"author": "Microsoft Corp.",
|
|
4
4
|
"homepage": "https://www.typescriptlang.org/",
|
|
5
|
-
"version": "5.3.0-dev.
|
|
5
|
+
"version": "5.3.0-dev.20231013",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
8
|
"keywords": [
|
|
@@ -114,5 +114,5 @@
|
|
|
114
114
|
"node": "20.1.0",
|
|
115
115
|
"npm": "8.19.4"
|
|
116
116
|
},
|
|
117
|
-
"gitHead": "
|
|
117
|
+
"gitHead": "b4787652d281188da1d61fe9cc3a17589f20c9fc"
|
|
118
118
|
}
|