Commit Graph

154 Commits

Author SHA1 Message Date
Matt Bierner
3d7cf10fd1 Remove remaining webpack references for building extensions
All extensions now should be fully ported over to use esbuild instead of webpack
2026-03-02 15:07:39 -08:00
Matt Bierner
5a566c256d Merge pull request #295104 from microsoft/dev/mjbvz/esbuild-css
Use esbuild instead of webpack to bundle the css extension
2026-02-18 10:51:19 -08:00
Matt Bierner
bf3b738a9f Try to align scanBuiltinExtensions with new esbuild changes 2026-02-17 10:01:30 -08:00
Matt Bierner
39ebcc7f34 Use esbuild instead of webpack to bundle the css extension
Switches from webpack to esbuild to bundle the css extension. Tested this locally in a browser and creating an official build to test the bundled extension still work correctly
2026-02-13 00:05:47 -08:00
Matt Bierner
cb714c7c9f Addressing code review comments 2026-02-11 16:38:06 -08:00
Matt Bierner
03561955b7 Clean up esbuilding of extensions
- Make sure we still always type check using `tsgo --noEmit`
- Align names of esbuild files
- Convert all esbuild files to typescript. We use the `.mts` extension to avoid annoying node warnings about using pacakges
2026-02-11 14:57:16 -08:00
Matt Bierner
d434a65945 Use esbuild to pack the markdown extension for desktop and web (#294208)
* Try using esbuild to bundle our built-in extensions

Test switching to esbuild instead of webpack to bundle our buildin extensions. Setup so we can do this incrementally and starting with the markdown extension as a test

* Fix build ext media

* Fix .ts script name check

* Update comment

* Use ts for all scripts
2026-02-10 20:32:40 +00:00
João Moreno
bf729fa50a strip out git askpass sourcemap footer (#291673)
fixes #282020
2026-01-29 18:27:20 +00:00
Matt Bierner
e779f86b17 Build script cleanup
For #277526

Quick cleanup pass after converting these scripts
2025-11-24 14:07:28 -08:00
Matt Bierner
2648263d3e Run our build scripts directly as typescript (#277567)
* Run our build scripts directly as typescript #277567

Follow up on #276864
For #277526

* Remove a few more ts-node references

* Fix linux and script reference

* Remove `_build-script` ref

* Fix script missing closing quote

* use type only import

* Fix export

* Make sure to run copy-policy-dto

* Make sure we run the copy-policy-dto script

* Enable `verbatimModuleSyntax`

* Pipelines fixes

* Try adding explicit ext to path

* Fix bad edit

* Revert extra `--`

---------

Co-authored-by: João Moreno <joaomoreno@users.noreply.github.com>
2025-11-21 14:56:00 +01:00
João Moreno
f4c2700d45 cleanup any casts (#270371)
related to #269213
cc @mjbvz @jrieken
2025-10-08 14:05:31 +00:00
Matt Bierner
360c9fd134 Add lint rule for as any and bulk ignore all existing breaks
For #269213

This adds a new eslint rule for `as any` and `<any>({... })`. We'd like to remove almost all of these, however right now the first goal is to prevent them in new code. That's why with this first PR I simply add `eslint-disable` comments for all breaks

Trying to get this change in soon after branching off for release to hopefully minimize disruption during debt week work
2025-10-02 23:38:33 -07:00
Matt Bierner
c7e7a779e8 Add basic mermaid rendering support in core
For #257761

Ports over extension sample + a few improvements to core
2025-09-10 18:22:39 -07:00
Matt Bierner
0b4691fe56 Fix compile of the github extension
All of our webpack scripts are modules now
2025-08-13 10:09:04 -07:00
Matt Bierner
2c749892ad Merge pull request #260466 from mjbvz/sick-marmoset
Convert esbuild scripts to modules
2025-08-07 21:57:27 -07:00
Matt Bierner
e4f9730eae Also update gulp 2025-08-07 20:15:04 -07:00
Matt Bierner
bad96b4abb Also update desktop webpack gulp 2025-08-07 19:40:47 -07:00
Matt Bierner
ed71020bfc Convert extension webpack scripts to modules 2025-08-07 17:20:22 -07:00
Matt Bierner
d865a99c49 Clean up some typings in build
- Adding ts-check in a few more js files
- Switching to use `@types` for a few more packages
- Remove some unused code
2025-08-07 09:38:52 -07:00
Johannes Rieken
cb0950e9d7 Migrate github extension to ESM (2nd attempt) (#248312)
* Revert "GitHub - revert ESM migration (#247322)"

This reverts commit 2047ab0fff.

* use `"@vscode/extension-telemetry": "^1.0.0"` which doesn't use default export anymore
2025-05-07 15:52:46 +02:00
Ladislau Szomoru
2047ab0fff GitHub - revert ESM migration (#247322)
* Revert "fix github extension bundling (#247314)"

This reverts commit 0cffb673f5.

* Revert "migrate github-extension to ESM"

This reverts commit 493874c390.

* Add missing JS file
2025-04-24 19:24:59 +02:00
Johannes
493874c390 migrate github-extension to ESM 2025-04-16 16:04:12 +02:00
Connor Peet
cccd0a35c6 eng: cherry-pick 1.97.1 fixes (#240409) 2025-02-11 19:47:56 +01:00
Aman Karmani
e76c50f20e build: switch build/tsconfig.json to module: nodenext (#238426)
* build/tsconfig: switch to module: nodenext for bun compat

* build: rewrite imports for nodenext compat

* build: re-generate
2025-01-22 20:12:39 +01:00
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
Tyler James Leonhardt
d6688b5ba3 Only rewrite sourcemap urls when js (#233626)
This prevents the build from touching any other kind of file.
2024-11-12 00:45:15 +01:00
Alex Ross
e6f2cc2f0a Add an easy way to run performance tests for tree-sitter (#233072)
* Add an easy way to run performance tests for tree-sitter
Part os #210475

* Compile build folder
2024-11-05 15:35:58 +01: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
Connor Peet
1acc838297 fix: yarn run gulp vscode-darwin-arm64 fails when run in the debug terminal (#224245)
>I think that block can just be removed safely since execFile with provide an error if the subprocess has a !=0 exit code

Fixes #221581
2024-07-29 16:30:35 -07:00
João Moreno
addd445017 upload sourcemaps to CDN instead of ticino (#214141) 2024-06-03 16:10:01 +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
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
Johannes
978bb08619 add extensions-ci-pr task which does a full build without mangling 2023-06-07 16:36:02 +02:00
Martin Aeschlimann
899cdd5ace remove request dependency (#179149)
* remove request dependency

* replace gulp-remote-retry-src in build scripts

* fix retry delay & polish
2023-04-05 16:05:16 +02:00
Benjamin Pasero
34d69db22c server - introduce support for nodejsRepository (#179105)
* server - introduce support for `nodejsRepository`

* fix path

* add auth

* proper download

* extract to utility function

* reuse

* fix compile
2023-04-05 14:36:25 +02:00
Tyler James Leonhardt
bc392ac9ff Remove stale code & old migration (#176828)
* Remove stale code & old migration

* Removes browserNlsMetadataPath everywhere which was the old attempt to localize the web
* Removes an old migration

* js file
2023-03-13 18:41:59 +01:00
Johannes Rieken
7e69465303 don't use underscore for native JS things (#173282) 2023-02-03 03:47:51 -08:00
João Moreno
326876fa9e bump vsce (#168071)
* bump vsce

* remainder

* use latest vsce

* compile build output
2022-12-22 17:00:21 +01:00
Matt Bierner
ce934ff443 Also run cleanNodeModules on extensions/node_modules (#167476)
Also run cleanNodeModules on extensions/node_modules

Fixes #166652
2022-11-29 12:15:09 -08:00
Martin Aeschlimann
86ff830c3a fix string.replace (for #167239) (#167259) 2022-11-25 14:45:57 +00:00
Matt Bierner
d0d28a6295 Reapply building of web server (#166391)
* Reapply building of web server

Revert 8b4642ab23

* Fix critical dep error
2022-11-15 14:55:40 -08:00
Henning Dieterichs
b11207c539 Revert "Copy webServer from Typescript to VS Code (#165771)"
This reverts commit cb43019d6a.
2022-11-15 14:45:32 +01:00
Nathan Shively-Sanders
cb43019d6a Copy webServer from Typescript to VS Code (#165771)
* Initial draft.

Not working.
Also not correctly formatted, I'll do that later.

* Various fixes

It works now

* A bit of cleanup

* Move webServer to its own directory

And prepare for getting rid of dynamicImportCompat.js hack

* Remove dynamicImportCompat.js hack

* Revert unrelated change

* Webpac tsserver.web.js with webServer.ts as entrypoint

Instead of using CopyPlugin.

1. Shipping multiple entrypoints in a single file required fixes to
build code.
2. There are a couple of warnings from `require` calls in
tsserverlibrary.js. Those are not relevant since they're in non-web
code, but I haven't figured how to turn them off; they are fully dynamic
so `externals` didn't work.

* Ignore warnings from dynamic import in tsserver

* Add to .vscodeignore files
2022-11-14 10:56:31 -08:00
Matt Bierner
d950552131 Allow trailing commas while minifying json resources (#165870)
I noticed a few of our built-in extension's json resources were not being minified. The root cause appears to be trailing commas in the json
2022-11-08 14:38:53 -08:00
Connor Peet
18f743d534 address pr comments 2022-10-05 12:56:07 -07:00
Rob Lourens
c717237d7c Reenable a couple notebook smoketests (#159521)
* Remove vscode-notebook-tests in favor of an .ipynb in vscode-smoketest-express

* Update build folder

* Add build task to correct platform

* Build for smoke tests on other platforms

* Fix repo url and remove comment

* Just -media?

* Update darwin/win32 as well
2022-09-14 13:22:16 -07:00
Tyler James Leonhardt
49394cc44d Enable translations for extension code for the web (#155355)
* Initial attempt

* alex feedback
2022-08-08 09:11:16 -07:00
Connor Peet
ca48c64699 build: cache built-in extensions to avoid rate limiting (#156918) 2022-08-03 00:27:16 +02:00
Michael Lively
e617076801 added ipynb/esbuild.js to the media scripts when building extensions 2022-07-27 09:34:22 -07:00
Matt Bierner
bbe7b54cf4 Remove custom editor tests (#152777)
These tests are not actively being run or maintained. Removing them for now
2022-06-21 15:37:19 -04:00