Skip to content

Commit 69a3821

Browse files
committed
fix errors after 1.60.2 update
1 parent 5033798 commit 69a3821

File tree

5 files changed

+143
-26
lines changed

5 files changed

+143
-26
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
"use strict";
2+
/*---------------------------------------------------------------------------------------------
3+
* Copyright (c) Microsoft Corporation. All rights reserved.
4+
* Licensed under the MIT License. See License.txt in the project root for license information.
5+
*--------------------------------------------------------------------------------------------*/
6+
Object.defineProperty(exports, "__esModule", { value: true });
7+
const sign_1 = require("./sign");
8+
const path = require("path");
9+
(0, sign_1.main)([
10+
process.env['EsrpCliDllPath'],
11+
'windows',
12+
process.env['ESRPPKI'],
13+
process.env['ESRPAADUsername'],
14+
process.env['ESRPAADPassword'],
15+
path.dirname(process.argv[2]),
16+
path.basename(process.argv[2])
17+
]);

build/azure-pipelines/common/sign.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
"use strict";
2+
/*---------------------------------------------------------------------------------------------
3+
* Copyright (c) Microsoft Corporation. All rights reserved.
4+
* Licensed under the MIT License. See License.txt in the project root for license information.
5+
*--------------------------------------------------------------------------------------------*/
6+
Object.defineProperty(exports, "__esModule", { value: true });
7+
exports.main = void 0;
8+
const cp = require("child_process");
9+
const fs = require("fs");
10+
const tmp = require("tmp");
11+
const crypto = require("crypto");
12+
function getParams(type) {
13+
switch (type) {
14+
case 'windows':
15+
return '[{"keyCode":"CP-230012","operationSetCode":"SigntoolSign","parameters":[{"parameterName":"OpusName","parameterValue":"VS Code"},{"parameterName":"OpusInfo","parameterValue":"https://code.visualstudio.com/"},{"parameterName":"Append","parameterValue":"/as"},{"parameterName":"FileDigest","parameterValue":"/fd \\"SHA256\\""},{"parameterName":"PageHash","parameterValue":"/NPH"},{"parameterName":"TimeStamp","parameterValue":"/tr \\"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\\" /td sha256"}],"toolName":"sign","toolVersion":"1.0"},{"keyCode":"CP-230012","operationSetCode":"SigntoolVerify","parameters":[{"parameterName":"VerifyAll","parameterValue":"/all"}],"toolName":"sign","toolVersion":"1.0"}]';
16+
case 'rpm':
17+
return '[{ "keyCode": "CP-450779-Pgp", "operationSetCode": "LinuxSign", "parameters": [], "toolName": "sign", "toolVersion": "1.0" }]';
18+
case 'darwin-sign':
19+
return '[{"keyCode":"CP-401337-Apple","operationSetCode":"MacAppDeveloperSign","parameters":[{"parameterName":"Hardening","parameterValue":"--options=runtime"}],"toolName":"sign","toolVersion":"1.0"}]';
20+
case 'darwin-notarize':
21+
return '[{"keyCode":"CP-401337-Apple","operationSetCode":"MacAppNotarize","parameters":[{"parameterName":"BundleId","parameterValue":"$(BundleIdentifier)"}],"toolName":"sign","toolVersion":"1.0"}]';
22+
default:
23+
throw new Error(`Sign type ${type} not found`);
24+
}
25+
}
26+
function main([esrpCliPath, type, cert, username, password, folderPath, pattern]) {
27+
tmp.setGracefulCleanup();
28+
const patternPath = tmp.tmpNameSync();
29+
fs.writeFileSync(patternPath, pattern);
30+
const paramsPath = tmp.tmpNameSync();
31+
fs.writeFileSync(paramsPath, getParams(type));
32+
const keyFile = tmp.tmpNameSync();
33+
const key = crypto.randomBytes(32);
34+
const iv = crypto.randomBytes(16);
35+
fs.writeFileSync(keyFile, JSON.stringify({ key: key.toString('hex'), iv: iv.toString('hex') }));
36+
const clientkeyPath = tmp.tmpNameSync();
37+
const clientkeyCypher = crypto.createCipheriv('aes-256-cbc', key, iv);
38+
let clientkey = clientkeyCypher.update(password, 'utf8', 'hex');
39+
clientkey += clientkeyCypher.final('hex');
40+
fs.writeFileSync(clientkeyPath, clientkey);
41+
const clientcertPath = tmp.tmpNameSync();
42+
const clientcertCypher = crypto.createCipheriv('aes-256-cbc', key, iv);
43+
let clientcert = clientcertCypher.update(cert, 'utf8', 'hex');
44+
clientcert += clientcertCypher.final('hex');
45+
fs.writeFileSync(clientcertPath, clientcert);
46+
const args = [
47+
esrpCliPath,
48+
'vsts.sign',
49+
'-a', username,
50+
'-k', clientkeyPath,
51+
'-z', clientcertPath,
52+
'-f', folderPath,
53+
'-p', patternPath,
54+
'-u', 'false',
55+
'-x', 'regularSigning',
56+
'-b', 'input.json',
57+
'-l', 'AzSecPack_PublisherPolicyProd.xml',
58+
'-y', 'inlineSignParams',
59+
'-j', paramsPath,
60+
'-c', '9997',
61+
'-t', '120',
62+
'-g', '10',
63+
'-v', 'Tls12',
64+
'-s', 'https://api.esrp.microsoft.com/api/v1',
65+
'-m', '0',
66+
'-o', 'Microsoft',
67+
'-i', 'https://www.microsoft.com',
68+
'-n', '5',
69+
'-r', 'true',
70+
'-e', keyFile,
71+
];
72+
cp.spawnSync('dotnet', args, { stdio: 'inherit' });
73+
}
74+
exports.main = main;
75+
if (require.main === module) {
76+
main(process.argv.slice(2));
77+
}

build/lib/extensions.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,27 @@ const webBuiltInExtensions = productJson.webBuiltInExtensions || [];
218218
* Loosely based on `getExtensionKind` from `src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.ts`
219219
*/
220220
function isWebExtension(manifest) {
221+
if (Boolean(manifest.browser)) {
222+
return true;
223+
}
224+
if (Boolean(manifest.main)) {
225+
return false;
226+
}
227+
// neither browser nor main
221228
if (typeof manifest.extensionKind !== 'undefined') {
222229
const extensionKind = Array.isArray(manifest.extensionKind) ? manifest.extensionKind : [manifest.extensionKind];
223-
return (extensionKind.indexOf('web') >= 0);
230+
if (extensionKind.indexOf('web') >= 0) {
231+
return true;
232+
}
233+
}
234+
if (typeof manifest.contributes !== 'undefined') {
235+
for (const id of ['debuggers', 'terminal', 'typescriptServerPlugins']) {
236+
if (manifest.contributes.hasOwnProperty(id)) {
237+
return false;
238+
}
239+
}
224240
}
225-
return (!Boolean(manifest.main) || Boolean(manifest.browser));
241+
return true;
226242
}
227243
function packageLocalExtensionsStream(forWeb) {
228244
const localExtensionsDescriptions = (glob.sync('extensions/*/package.json')

build/lib/util.js

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55
'use strict';
66
Object.defineProperty(exports, "__esModule", { value: true });
7-
exports.buildWebNodePaths = exports.getElectronVersion = exports.streamToPromise = exports.versionStringToNumber = exports.filter = exports.rebase = exports.getVersion = exports.ensureDir = exports.rreddir = exports.rimraf = exports.rewriteSourceMappingURL = exports.stripSourceMappingURL = exports.loadSourcemaps = exports.cleanNodeModules = exports.skipDirectories = exports.toFileUri = exports.setExecutableBit = exports.fixWin32DirectoryPermissions = exports.incremental = void 0;
7+
exports.buildWebNodePaths = exports.acquireWebNodePaths = exports.getElectronVersion = exports.streamToPromise = exports.versionStringToNumber = exports.filter = exports.rebase = exports.getVersion = exports.ensureDir = exports.rreddir = exports.rimraf = exports.rewriteSourceMappingURL = exports.stripSourceMappingURL = exports.loadSourcemaps = exports.cleanNodeModules = exports.skipDirectories = exports.toFileUri = exports.setExecutableBit = exports.fixWin32DirectoryPermissions = exports.incremental = void 0;
88
const es = require("event-stream");
99
const debounce = require("debounce");
1010
const _filter = require("gulp-filter");
@@ -274,31 +274,37 @@ function getElectronVersion() {
274274
return target;
275275
}
276276
exports.getElectronVersion = getElectronVersion;
277+
function acquireWebNodePaths() {
278+
var _a;
279+
const root = path.join(__dirname, '..', '..');
280+
const webPackageJSON = path.join(root, '/remote/web', 'package.json');
281+
const webPackages = JSON.parse(fs.readFileSync(webPackageJSON, 'utf8')).dependencies;
282+
const nodePaths = {};
283+
for (const key of Object.keys(webPackages)) {
284+
const packageJSON = path.join(root, 'node_modules', key, 'package.json');
285+
const packageData = JSON.parse(fs.readFileSync(packageJSON, 'utf8'));
286+
let entryPoint = (_a = packageData.browser) !== null && _a !== void 0 ? _a : packageData.main;
287+
// On rare cases a package doesn't have an entrypoint so we assume it has a dist folder with a min.js
288+
if (!entryPoint) {
289+
console.warn(`No entry point for ${key} assuming dist/${key}.min.js`);
290+
entryPoint = `dist/${key}.min.js`;
291+
}
292+
// Remove any starting path information so it's all relative info
293+
if (entryPoint.startsWith('./')) {
294+
entryPoint = entryPoint.substr(2);
295+
}
296+
else if (entryPoint.startsWith('/')) {
297+
entryPoint = entryPoint.substr(1);
298+
}
299+
nodePaths[key] = entryPoint;
300+
}
301+
return nodePaths;
302+
}
303+
exports.acquireWebNodePaths = acquireWebNodePaths;
277304
function buildWebNodePaths(outDir) {
278305
const result = () => new Promise((resolve, _) => {
279-
var _a;
280306
const root = path.join(__dirname, '..', '..');
281-
const webPackageJSON = path.join(root, '/remote/web', 'package.json');
282-
const webPackages = JSON.parse(fs.readFileSync(webPackageJSON, 'utf8')).dependencies;
283-
const nodePaths = {};
284-
for (const key of Object.keys(webPackages)) {
285-
const packageJSON = path.join(root, 'node_modules', key, 'package.json');
286-
const packageData = JSON.parse(fs.readFileSync(packageJSON, 'utf8'));
287-
let entryPoint = (_a = packageData.browser) !== null && _a !== void 0 ? _a : packageData.main;
288-
// On rare cases a package doesn't have an entrypoint so we assume it has a dist folder with a min.js
289-
if (!entryPoint) {
290-
console.warn(`No entry point for ${key} assuming dist/${key}.min.js`);
291-
entryPoint = `dist/${key}.min.js`;
292-
}
293-
// Remove any starting path information so it's all relative info
294-
if (entryPoint.startsWith('./')) {
295-
entryPoint = entryPoint.substr(2);
296-
}
297-
else if (entryPoint.startsWith('/')) {
298-
entryPoint = entryPoint.substr(1);
299-
}
300-
nodePaths[key] = entryPoint;
301-
}
307+
const nodePaths = acquireWebNodePaths();
302308
// Now we write the node paths to out/vs
303309
const outDirectory = path.join(root, outDir, 'vs');
304310
fs.mkdirSync(outDirectory, { recursive: true });

src/vs/server/node/remote-terminal.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ export function registerRemoteTerminal(services: ServicesAccessor, channelServer
4242
const reconnectConstants: IReconnectConstants = {
4343
graceTime: LocalReconnectConstants.GraceTime,
4444
shortGraceTime: LocalReconnectConstants.ShortGraceTime,
45-
scrollback: configurationService.getValue<number>(TerminalSettingId.PersistentSessionScrollback) ?? 100
45+
scrollback: configurationService.getValue<number>(TerminalSettingId.PersistentSessionScrollback) ?? 100,
46+
useExperimentalSerialization: configurationService.getValue<boolean>(TerminalSettingId.PersistentSessionExperimentalSerializer) ?? true,
4647
};
4748
const ptyHostService = new PtyHostService(reconnectConstants, configurationService, logService, telemetryService);
4849
channelServer.registerChannel(REMOTE_TERMINAL_CHANNEL_NAME, new RemoteTerminalChannelServer(rawURITransformerFactory, logService, ptyHostService));

0 commit comments

Comments
 (0)