Commit Graph

112 Commits (2154b42823b95d7669376e493329a98e562c22de)

Author SHA1 Message Date
Tyler James Leonhardt 305134296c
Adopt the MSAL broker to talk to the OS for Microsoft auth (#233739)
This adopts the `NativeBrokerPlugin` provided by `@azure/msal-node-extensions` to provide the ability to use auth state from the OS, and show native auth dialogs instead of going to the browser.

This has several pieces:
* The adoption of the broker in the microsoft-authentication extension:
  * Adding `NativeBrokerPlugin` to our PCAs
  * Using the proposed handle API to pass the native window handle down to MSAL calls (btw, this API will change in a follow up PR)
  * Adopting an AccountAccess layer to handle:
    * giving the user control of which accounts VS Code uses
    * an eventing layer so that auth state can be updated across multiple windows
* Getting the extension to build properly and only build what it really needs. This required several package.json/webpack hacks:
  * Use a fake keytar since we don't use the feature in `@azure/msal-node-extensions` that uses keytar
  * Use a fake dpapi layer since we don't use the feature in  `@azure/msal-node-extensions` that uses it
  * Ensure the msal runtime `.node` and `.dll` files are included in the bundle
* Get the VS Code build to allow a native node module in an extension: by having a list of native extensions that will be built in the "ci" part of the build - in other words when VS Code is building on the target platform

There are a couple of followups:
* Refactor the `handle` API to handle (heh) Auxiliary Windows https://github.com/microsoft/vscode/issues/233106
* Separate the call to `acquireTokenSilent` and `acquireTokenInteractive` and all the usage of this native node module into a separate process or maybe in Core... we'll see. Something to experiment with after we have something working. NEEDS FOLLOW UP ISSUE

Fixes https://github.com/microsoft/vscode/issues/229431
2024-11-15 20:53:28 +09:00
Daniel Imms 7e688863a8
Move fish SI script out of xdg named dir
Fixes #232408
2024-10-28 06:57:42 -07:00
Benjamin Pasero dc265add0b
esm - drop need for manual concat (#230571) 2024-10-06 14:12:20 +02:00
Benjamin Pasero f09184ceb7
esm - set `type: module` top level (#230210) 2024-10-01 20:48:56 +02:00
Benjamin Pasero 3b68a06818
esm - removal of CSS loader (#230206) 2024-10-01 19:24:18 +02:00
Benjamin Pasero e7abf7becb
esm - inline main entry points (#230135) 2024-09-30 20:22:47 +02:00
Benjamin Pasero c7caef00ea
esm - make `optimize.ts` ESM only 2024-09-27 08:05:06 +02:00
Benjamin Pasero b544846460
esm - further cleanup build scripts 2024-09-27 08:04:56 +02:00
Benjamin Pasero c1952297c5
esm - cleanup editor worker build descriptors 2024-09-27 08:04:36 +02:00
Benjamin Pasero d2701aa2ec
esm - remove AMD modifications in sources 2024-09-27 08:04:16 +02:00
Benjamin Pasero 332b89f198
esm - remove AMD build scripts, tests and variables 2024-09-27 08:04:01 +02:00
Robo b5a6aa14a8
feat: switch to npm as default package manager (#226927)
* feat: move from yarn to npm

* chore: skip yarn.lock files

* fix: playwright download

* chore: fix compile and hygiene

* chore: bump vsce@2.17.0

Refs 8b49e9dfdf

* test: update results for bat and sh colorizer tests

* fix: add missing lock files for windows

* fix: switch to legacy-peer-deps

* chore: update markdown-it@14.1.0

Refs 737c95a129

esbuild step in extensions-ci-pr was previously using markdown-it
from root which had userland punycode and was able to compile successfully.

* ci: increase pr timeout for windows integration tests

* chore: fix product build

* build: ignore extension dev dependency for rcedit

* build: fix working directory inside container

* build: fix dependency generation

* npm: update dependencies

* ci: use global npmrc

* ci: update cache

* ci: setup global npmrc for private npm auth

* build: fix extension bundling

* chore: sync npm dependencies

* ci: debug env variables for container

* ci: fix win32 cli pipeline

* build: fix npmrc config usage for build/ and remote/ dirs

* fix: windows build

* fix: container builds

* fix: markdown-language-features tests and bundling

```
[03:58:22] Error: Command failed: /Users/demohan/.nvm/versions/node/v20.15.1/bin/node /Users/demohan/github/vscode/extensions/markdown-language-features/esbuild-notebook.js --outputRoot /Users/demohan/github/vscode/.build/extensions/markdown-language-features
✘ [ERROR] Could not resolve "punycode"

    extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```

Adds userland package based on beed9aee2c

* fix: container builds for distro

* chore: update yarn occurrences

* fixup! chore: bump vsce@2.17.0

Uses the closest version to `main` branch that does not
include d3cc84cdec
while still having the fix 8b49e9dfdf

* chore: sync npm dependencies

* chore: sync npm dependencies

* chore: sync npm dependencies

* chore: throw error when yarn is used for installation

* chore: add review feedback

* chore: switch exec => run where needed

* chore: npm sync dependencies

* fix: markdown-language-features bundling

```
✘ [ERROR] Could not resolve "punycode"

    extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```

Adds missing userland package based on markdown-it/markdown-it@beed9ae,
can be removed once we update markdown-it >= 14.1.0

* ci: rename no-yarn-lock-changes.yml

* chore: sync npm dependencies

* ci: restore no-yarn-lock-changes.yml

We can disable it in a separate PR to keep the required
checks happy and also need workflow edit perms.

* chore: sync npm dependencies

* ci: rebuild cache

* ci: fix no-package-lock-changes.yml

* chore: bump distro

* chore: rm yarn.lock files

* chore: rm yarn.lock files without dependencies

* chore: add vscode-selfhost-import-aid to postinstall dirs

* chore: bump distro
2024-09-06 22:18:02 +09:00
Sandeep Somavarapu ebc02af2d8
rename electron-node to electron-utility (#227672) 2024-09-05 00:49:23 -07:00
Sandeep Somavarapu 01fcf004a6
Use electron net directly in shared process (#227553)
* Use electron net directly in shared process

* add built file

* introduce shared electron-node layer

* remove electron-utility layer

* fix (overlook): move back cli files to node
2024-09-04 07:26:43 -07:00
Daniel Imms 5a6d09c6df
Merge pull request #227383 from microsoft/tyriar/225665_2
Move shell integration scripts into common take 2
2024-09-03 06:52:49 -07:00
Benjamin Pasero 21135c81b5
esm - provide a bridge to AMD world (#227361) 2024-09-02 12:09:12 -07:00
Daniel Imms d78f189b6d
Add back SI scripts for REH 2024-09-02 07:13:16 -07:00
Daniel Imms a91854820a
Move shell integration scripts into common
Fixes #225665
2024-09-02 07:12:43 -07:00
Christof Marti d22ce6b05a
Revert "Merge pull request #227244 from microsoft/tyriar/225665"
This reverts commit 0978e9ebf5, reversing
changes made to 9aa46099e1.
2024-09-02 11:51:52 +02:00
Daniel Imms 5f1569aed7
Move shell integration scripts into common
Fixes #225665
2024-08-30 12:19:42 -07:00
Benjamin Pasero 6b924c5152
ESM merge to main (#227184)
Co-authored-by: Johannes Rieken <jrieken@microsoft.com>
Co-authored-by: Alexandru Dima <alexdima@microsoft.com>
2024-08-30 10:31:46 +02:00
Benjamin Pasero a002d1512e
build - move `buildfile.js` out of `src` (#226403)
* build - move `buildfile.js` out of `src`

* .

* fix build
2024-08-23 12:18:26 +02:00
Benjamin Pasero 3dc8c38c92
esm - some build polish (#225948) 2024-08-19 16:54:29 +02:00
Benjamin Pasero bea40cdd3d
esm - more diff reduction (#225666) 2024-08-15 10:34:03 +02:00
Benjamin Pasero 0dea4804f4
esm - introduce VSCODE_BUILD_ESM variable (#225586) 2024-08-14 14:49:26 +02:00
Robo 1835a67cb6
ci: publish win32 arm64 server (#224929) 2024-08-06 14:57:22 +02:00
Daniel Imms c61d964558
Bundle psm1 files 2024-07-20 13:02:21 -07:00
Robo 2fe0527205
chore: update to electron 30 (#215406)
* chore: update electron@30.0.9

* chore: update rpm deps

* chore: bump electron@30.1.2

* fix: update kerberos for Node.js 20.x

Refs c1f7acafb2

* fix: use shell when spawning .bat or .cmd files

Refs https://github.com/nodejs/node/commit/6627222409

* fix: update @vscode/test-electron@2.4.0

Refs 3f7a3cc5c5

* fixup! use shell when spawning .bat or .cmd files

* chore: bump nodejs@20.14.0 internal build

* ci: skip nodejsMirror for 20.14.0 due to missing builds

* fixup! use shell when spawning .bat or .cmd files

* chore: update debian deps

* fixup! skip nodejsMirror for 20.14.0 due to missing builds

* fix: universal build

- Updates vscode-universal-bundler to support x64ArchFiles option
- Kerberos starts building universal binaries which should now be
  skipped from lipo step via x64ArchFiles
- Skips bundling *.mk files

* chore: bump distro
2024-07-09 14:33:22 +09:00
Benjamin Pasero 7c8097dbbf
build - reuse the same `date` across builds (#220076) 2024-07-05 11:06:43 -07:00
Benjamin Pasero 42f6c85556
web - include `nls.messages.js` in standalone build (#219919) 2024-07-04 08:47:46 +02:00
Benjamin Pasero 82c54248fd
perf - inline `package.json` and `product.json` (#219841) 2024-07-04 07:59:10 +02:00
Benjamin Pasero d65fd5ba2e
nls follow up debt work (#219265) 2024-07-01 11:44:19 +02:00
Benjamin Pasero 2014f1ddb2
nls - removal of loader plugin (#219098) 2024-06-28 15:45:52 +02:00
Benjamin Pasero f6f90e0163
Implement NLS without AMD loader (#214588) 2024-06-28 11:55:48 +02:00
Robo fec18ef7d6
fix: expected checksum for windows remote server (#214751) 2024-06-10 06:53:33 +02:00
João Moreno addd445017
upload sourcemaps to CDN instead of ticino (#214141) 2024-06-03 16:10:01 +02:00
Martin Aeschlimann 57b0c146d0
Use serverDataFolderName in check-requirements-linux.sh (#208074)
* Use serverDataFolderName in check-requirements-linux.sh

* remove the (new) file check
2024-03-23 10:10:17 +09:00
Robo 5e0394c8d1
fix: don't package detection script in legacy server (#208274)
* fix: don't package detection script in legacy server

* chore: address review feedback

* chore: rename download asset name
2024-03-21 14:11:57 +01:00
Robo c45557f69b
chore: update server detection script for legacy server (#208000)
* chore: update server detection script for legacy server

* chore: address review feedback
2024-03-18 16:09:27 +01:00
Robo cf7ddbb51d
fix: use legacy server as default with additional warnings (#204377)
* ci: switch to glibc 2.17 remote server

* chore: signal user about unsupported connection

* chore: address review comments

* chore: update nodejs build

* chore: bump distro

* chore: lower the minimum requirements

* fix: glibc version check

* chore: remove explicit connection disposal
2024-02-06 11:25:58 +01:00
Robo 1339f075b1
fix: add linux library dependency check for remote server (#202210)
* fix: add linux library dependency check for remote server

* chore: add faq link

* chore: move to separate file for reuse

* chore: add option to skip check

* fix: check

* fix: package path

* fix: don't forget to exit main script
2024-01-15 17:43:42 +09:00
João Moreno 9905225b1a
Remove win32-ia32 target (#195559)
* remove win32-ia32

* update distro
2023-10-16 13:28:09 +02:00
Benjamin Pasero 652e2d069c
voice - update build script includes 2023-08-09 20:28:46 +02:00
Robo 9cdd289db0
chore: update node checksums (#186181)
* chore: update node checksums

* chore: bump distro
2023-06-26 18:20:59 +02:00
Benjamin Pasero 518a183762
eng - add build version of node.js to `.yarnrc` (#185302)
* eng - add build version of node.js to `.yarnrc`

* 🆙 distro
2023-06-16 09:10:24 +02:00
Benjamin Pasero 8afb685c9b
eng - add `checksum` validation support to `nodejs` and `extensions` (#184877)
* eng - add `checksum` validation support to `remote`

* eng - wire in more `checksum` support

* eng - renames for remote fetching

* eng - renames for remote fetching

* eng - disable verbose

* eng - always fetch verbose in CI

* eng - 💄

* eng - add checksums for node

* eng - report checksum matches

* eng - fix build

* eng - warn when not being able to check sum

* eng - support checksums for built in extensions

* eng - clear todo

* eng - add nodejs metadata to product.json

* 🆙 version

* 🆙 distro

* update distro

* eng - switch to checksum file

* cleanup alpine

* fix alpine

* fix bug

* eng - fetch all from remote

* eng - 💄

* eng - print checksums

* eng - fix missing import

* 🆙 distro

* undo version change
2023-06-14 16:57:06 +02:00
Benjamin Pasero 4b939d0a0e
unc - fix path traversal bypass (#185048) 2023-06-13 19:56:46 +02:00
Raymond Zhao 06ae4b61c2
Bump windows-mutex to 0.4.4 (#184366)
Also adds OS-specific .moduleignore files
2023-06-09 09:40:10 -07:00
Martin Aeschlimann 3f5def1cdc
Add logging to node download (#184070)
Add logging to node download. For #182951
2023-06-01 16:42:36 +02:00
Martin Aeschlimann c2a9a86afa
Delete --compatibility=1.63 code from the server (#183738) 2023-05-29 15:24:14 -07:00