tldraw/apps/vscode/extension/package.json
David Sheldrick ee6aa172b2
Unfurl bookmarks in worker (#4039)
This PR adds a `GET /api/unfurl?url=blahblah` endpoint to our worker.

I tried out the existing cheerio implementation but it added 300kb to
our worker bundle in the end, due to transitive dependencies.

So I implemented the same logic with cloudflare's sanctioned streaming
HTML parser `HTMLRewriter` and it seems to work fine.

I also made the vscode extension do its fetching locally (from the node
process so it's not bound by security policies), retaining the cheerio
version for that. At the same time I fixed a bug in the RPC layer that
was preventing unfurled metadata from loading correctly.

In a few months we can retire the bookmark-extractor app by just
deleting it in the vercel dashboard.

### Change Type


<!--  Please select a 'Type' label ️ -->

- [ ] `feature` — New feature
- [x] `improvement` — Product improvement
- [ ] `api` — API change
- [ ] `bugfix` — Bug fix
- [ ] `other` — Changes that don't affect SDK users, e.g. internal or
.com changes


### Test Plan

1. Add a step-by-step description of how to test your PR here.
2.

- [ ] Unit Tests
- [ ] End to end tests

### Release Notes

- Do link unfurling on the same subdomain as all our other api
endpoints.
2024-07-01 14:40:03 +00:00

164 lines
3.6 KiB
JSON

{
"name": "tldraw-vscode",
"description": "The tldraw extension for VS Code.",
"version": "2.0.36",
"private": true,
"author": {
"name": "tldraw Inc.",
"email": "hello@tldraw.com"
},
"homepage": "https://tldraw.dev",
"license": "SEE LICENSE IN LICENSE.md",
"repository": {
"type": "git",
"url": "https://github.com/tldraw/tldraw"
},
"bugs": {
"url": "https://github.com/tldraw/tldraw/issues"
},
"keywords": [
"tldraw",
"drawing",
"app",
"development",
"whiteboard",
"canvas",
"infinite"
],
"displayName": "tldraw",
"publisher": "tldraw-org",
"icon": "icon.png",
"galleryBanner": {
"color": "#1d1d1d",
"theme": "dark"
},
"categories": [
"Visualization"
],
"engines": {
"vscode": "^1.75.1"
},
"activationEvents": [],
"browser": "./dist/web/extension.js",
"main": "./dist/web/extension.js",
"extensionKind": [
"workspace"
],
"contributes": {
"customEditors": [
{
"viewType": "tldraw.tldr",
"displayName": "tldraw",
"selector": [
{
"filenamePattern": "*.tldr"
},
{
"filenamePattern": "*.tldr.json"
}
]
}
],
"keybindings": [
{
"key": "ctrl+shift+d",
"mac": "cmd+shift+d",
"title": "Toggle Dark Mode",
"command": "tldraw.tldr.toggleDarkMode",
"category": "tldraw",
"when": "resourceExtname == .tldr"
},
{
"key": "ctrl+numpad_add",
"mac": "cmd+numpad_add",
"title": "Zoom In",
"command": "tldraw.tldr.zoomIn",
"category": "tldraw",
"when": "resourceExtname == .tldr"
},
{
"key": "ctrl+=",
"mac": "cmd+=",
"title": "Zoom In",
"command": "tldraw.tldr.zoomIn",
"category": "tldraw",
"when": "resourceExtname == .tldr"
},
{
"key": "ctrl+numpad_subtract",
"mac": "cmd+numpad_subtract",
"title": "Zoom Out",
"command": "tldraw.tldr.zoomOut",
"category": "tldraw",
"when": "resourceExtname == .tldr"
},
{
"key": "ctrl+-",
"mac": "cmd+-",
"title": "Zoom Out",
"command": "tldraw.tldr.zoomOut",
"category": "tldraw",
"when": "resourceExtname == .tldr"
},
{
"key": "ctrl+numpad0",
"mac": "cmd+numpad0",
"title": "Reset Zoom",
"command": "tldraw.tldr.resetZoom",
"category": "tldraw",
"when": "resourceExtname == .tldr"
}
],
"commands": [
{
"command": "tldraw.tldr.new",
"title": "New Project",
"category": "tldraw"
}
]
},
"vsce": {
"dependencies": false
},
"scripts": {
"dev": "tsx scripts/dev.ts",
"build": "cd ../editor && yarn build && cd ../extension && tsx scripts/build.ts",
"get-info": "vsce show tldraw-org.tldraw-vscode --json > extension.json",
"package": "yarn build && tsx scripts/package.ts",
"publish": "tsx scripts/publish.ts",
"lint": "yarn run -T tsx ../../../scripts/lint.ts",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf editor && rm -rf temp & yarn"
},
"devDependencies": {
"@tldraw/editor": "workspace:*",
"@types/fs-extra": "^11.0.1",
"@types/node-fetch": "^2.6.2",
"@types/vscode": "^1.75.1",
"@typescript-eslint/eslint-plugin": "^5.57.0",
"@typescript-eslint/parser": "^5.57.0",
"assert": "^2.0.0",
"esbuild": "^0.21.5",
"eslint": "^8.37.0",
"fs-extra": "^11.1.0",
"lazyrepo": "0.0.0-alpha.27",
"lodash": "^4.17.21",
"mocha": "^9.1.1",
"process": "^0.11.10",
"tldraw": "workspace:*",
"ts-loader": "^9.2.5",
"tslib": "^2.6.2",
"tsx": "^4.0.0",
"typescript": "^5.3.3",
"vsce": "^2.15.0",
"webpack": "^5.0.0"
},
"gitHead": "4b1137849ad07da36fc8f0f19cb64e7535a79296",
"dependencies": {
"cheerio": "^1.0.0-rc.12",
"node-fetch": "^2.0.0"
},
"peerDependencies": {
"react": "^18",
"react-dom": "^18"
}
}