* 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
* Simple tree sitter based syntax highlighting for typescript
Part of #210475
* Implement onceIf using filter
* Mix monaco
* Fix tests
* Switch back to classic
* PR feedback
* Fix bug causing test failure
* Update tree-sitter-wasm
* Fix monaco editor tree shaking
* Fix running monaco checks on Windows
* Use dummy tree sitter service in standalone
* PR feedback
* Experiment with adding ata using `@types` packages shipped in an extension
* Use own file system instead of `https`
* JS/TS type support on web
* Tsconfig needs esModuleInterop not module:nodenext
We actually want webpack to emit commonjs, but need to write ES default
imports to use node-maintainer
* fix package.json indentation
* Adding setting to disable web type acquisition
* Fix merge of yarn lock
* Fixing merge errors
* Fixing errors
* Pick up package externally
* Fixing conflicts
* Bump version
---------
Co-authored-by: Kat Marchán <kzm@zkat.tech>
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* Initial contents for JavaScript walkthrough.
* Just suggest a `.js` file.
* Switch the walkthrough to be a Node.js walkthrough.
* Remove leftover file from HTML walkthrough.
* Add basic detection mechanism for node.
* Don't check for a Node install until the user runs debug.
* Add "learn more" link.
* Some assets.
* Remove "run" section.
* Add a "try debugging anyway" option just in case.
* Remove "view terminal" command in run & debug.
* More copy.
* Remove unused command.
* Update icon and themed walkthrough SVGs
* Default to not showing the extension.
* Replace icon
* Delete TODO.md
* jsWelcome -> nodejsWelcome
Co-authored-by: David Dossett <ddossett@microsoft.com>
Co-authored-by: Matt Bierner <matb@microsoft.com>
* web - first cut `yarn web` via our server
* properly pipe output
* web - remove traces of web playground
* web - remember last opened workspace for convinience
* use vscode-test-web for server less, clean up web commands
* fix comment
* fix `yarn web`
* rename to code-server
* open system browser
* code-server script: use minimist
* test resolver: use ./scripts/code-server
* integartion tests: fix code-server command name
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
* Switch to dompurify for sanitizing markdown content
Switches us from using `insane` to instead use `dompurify`, which seems to be better maintained and also has some nice features, such as built-in trusted types support
I've tried to port over our existing sanitizer settings as best as possible, but there's not always a 1:1 mapping between how insane works and how dompurify does. I'd like to get this change in early in the iteration to catch potential regressions
* Remove logging and renaming param
* Move dompurify to browser layer
* Fixing tests and how we check valid attributes
* Allow innerhtml in specific files
* Use isEqualNode instead of checking innerHTML directly
innerHTML can return different results on different browsers. Use `isEqualNode` instead
* Reapply fix for trusted types
* Enable ALLOW_UNKNOWN_PROTOCOLS
I beleive this is required since we allow links to commands and loading images over remote
* in -> of
* Fix check of protocol
* Enable two more safe tags
* fix: use clang and libcxx from chromium
* chore: add flags for Link-Time Optimization
libcxx builds from upstream are built with LTO, avoiding these
flags will cause miscompiles
* chore: add lto flags to compilation units
* Use shared webpack version instead of installing locally for simple-browser
* Use npm for building markdown preview
* render markdown in webview.
* update markdown preview height and offset
* Add basic custom notebook renderer point
* update css
* style update.
* update markdown header padding left
* Add example of loading katex to extend the markdown-it renderer
* Rename global to make clear it only applies to markdown-in
* hide/remove markdown preview
* Add wait for initial markdown preview rendering before showing notebook
* Add double click to switch to editing mode
* Fix markdown cells not getting updated after editing
* style polish
* notebook.experimental.useMarkdownRenderer
* switch render strategy.
* Adding very intial drag drop support for notebook markdown cells
* Implement drag/drop stubs for test classes
* Revert unrelated file changes
* Move markdown notebook math to own extension
* Add missing imports
Co-authored-by: rebornix <penn.lv@gmail.com>