Compare commits
26 Commits
WebView-wi
...
06-06-a
Author | SHA1 | Date | |
---|---|---|---|
a4f696bb9a | |||
d87502a95e | |||
5ad1f744d2 | |||
47d3a22371 | |||
71219673e5 | |||
70674c616d | |||
07b932e913 | |||
14332079cb | |||
d649b52345 | |||
ab334f91dc | |||
baa3c222f3 | |||
ca9375d25d | |||
5269b0db43 | |||
8ca13ac88a | |||
4ad075088a | |||
e64c2a988c | |||
44d1dd172a | |||
847eef1a84 | |||
1afd11d693 | |||
24e700065e | |||
ed2cd40f59 | |||
2eae9ad27d | |||
a3321fcb20 | |||
3c0b01091a | |||
927db6dbd5 | |||
929d4e1ccd |
39
.gitignore
vendored
39
.gitignore
vendored
@ -264,3 +264,42 @@ __pycache__/
|
||||
type-script-helper-1.1.6.vsix
|
||||
type-script-helper-1.1.7.vsix
|
||||
type-script-helper-1.1.8.vsix
|
||||
|
||||
.kanbn
|
||||
*.exe
|
||||
*.pdb
|
||||
|
||||
.vscode/helper/**
|
||||
|
||||
type-script-helper/src/Card.js
|
||||
type-script-helper/src/Card.js.map
|
||||
type-script-helper/src/ColumnsToCardsWebviewViewProvider.js
|
||||
type-script-helper/src/ColumnsToCardsWebviewViewProvider.js.map
|
||||
type-script-helper/src/constants.js
|
||||
type-script-helper/src/constants.js.map
|
||||
type-script-helper/src/extension.js
|
||||
type-script-helper/src/extension.js.map
|
||||
type-script-helper/src/getNonce.js
|
||||
type-script-helper/src/getNonce.js.map
|
||||
type-script-helper/src/H2HexColor.js
|
||||
type-script-helper/src/H2HexColor.js.map
|
||||
type-script-helper/src/H2NoCheckboxes.js
|
||||
type-script-helper/src/H2NoCheckboxes.js.map
|
||||
type-script-helper/src/H2WithCheckboxes.js
|
||||
type-script-helper/src/H2WithCheckboxes.js.map
|
||||
type-script-helper/src/kanbanHelper.js
|
||||
type-script-helper/src/kanbanHelper.js.map
|
||||
type-script-helper/src/LineNumber.js
|
||||
type-script-helper/src/LineNumber.js.map
|
||||
type-script-helper/src/markdownHelper.js
|
||||
type-script-helper/src/markdownHelper.js.map
|
||||
type-script-helper/src/PostMessage.js
|
||||
type-script-helper/src/PostMessage.js.map
|
||||
type-script-helper/src/promiseLinesHelper.js
|
||||
type-script-helper/src/promiseLinesHelper.js.map
|
||||
type-script-helper/src/readOnlyLinesHelper.js
|
||||
type-script-helper/src/readOnlyLinesHelper.js.map
|
||||
type-script-helper/src/replaceLinesHelper.js
|
||||
type-script-helper/src/replaceLinesHelper.js.map
|
||||
type-script-helper/src/WebViewPanel.js
|
||||
type-script-helper/src/WebViewPanel.js.map
|
||||
|
28
.vscode/settings.json
vendored
28
.vscode/settings.json
vendored
@ -1,5 +1,27 @@
|
||||
{
|
||||
"cSpell.words": [
|
||||
"VSIX"
|
||||
]
|
||||
"[markdown]": {
|
||||
"editor.wordWrap": "off"
|
||||
},
|
||||
"cSpell.words": [
|
||||
"Infineon",
|
||||
"initialise",
|
||||
"Kanban",
|
||||
"Phares",
|
||||
"VSIX",
|
||||
"Weightest",
|
||||
"WSJF"
|
||||
],
|
||||
"files.eol": "\n",
|
||||
"files.exclude": {
|
||||
"**/dist": false,
|
||||
"**/node_modules": true,
|
||||
"**/out": false
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
"**/node_modules": true
|
||||
},
|
||||
"search.exclude": {
|
||||
"**/dist": true,
|
||||
"**/out": true
|
||||
}
|
||||
}
|
BIN
Application.evtx
Normal file
BIN
Application.evtx
Normal file
Binary file not shown.
15
svelte-helper/.gitignore
vendored
Normal file
15
svelte-helper/.gitignore
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
.dist
|
3
svelte-helper/.vscode/extensions.json
vendored
Normal file
3
svelte-helper/.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": ["svelte.svelte-vscode"]
|
||||
}
|
35
svelte-helper/.vscode/launch.json
vendored
Normal file
35
svelte-helper/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Launch server",
|
||||
"request": "launch",
|
||||
"runtimeArgs": [
|
||||
"run",
|
||||
"dev"
|
||||
],
|
||||
"runtimeExecutable": "bun",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node",
|
||||
"console": "internalConsole"
|
||||
},
|
||||
{
|
||||
"type": "msedge",
|
||||
"request": "launch",
|
||||
"name": "Launch Edge",
|
||||
"url": "http://localhost:5173/",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Both",
|
||||
"configurations": [
|
||||
"Launch server",
|
||||
"Launch Edge"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
11
svelte-helper/.vscode/mklink.md
vendored
Normal file
11
svelte-helper/.vscode/mklink.md
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
type: "note"
|
||||
created: "2023-10-20T03:53:13.742Z"
|
||||
updated: "2023-10-20T04:00:37.259Z"
|
||||
---
|
||||
|
||||
# mklink
|
||||
|
||||
```bash
|
||||
mklink /J "L:\Git\YO-VSCode\svelte-helper\.dist" "L:\Git\YO-VSCode\type-script-helper\dist"
|
||||
```
|
30
svelte-helper/.vscode/settings.json
vendored
Normal file
30
svelte-helper/.vscode/settings.json
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
"[markdown]": {
|
||||
"editor.wordWrap": "off"
|
||||
},
|
||||
"cSpell.words": [
|
||||
"Infineon",
|
||||
"initialise",
|
||||
"Kanban",
|
||||
"lihau",
|
||||
"Phares",
|
||||
"signalr",
|
||||
"VSIX",
|
||||
"Weightest",
|
||||
"WSJF"
|
||||
],
|
||||
"files.eol": "\n",
|
||||
"files.exclude": {
|
||||
"**/dist": false,
|
||||
"**/node_modules": true,
|
||||
"**/out": false
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
"**/node_modules": true
|
||||
},
|
||||
"explorer.sortOrder": "default",
|
||||
"search.exclude": {
|
||||
"**/dist": true,
|
||||
"**/out": true
|
||||
}
|
||||
}
|
47
svelte-helper/README.md
Normal file
47
svelte-helper/README.md
Normal file
@ -0,0 +1,47 @@
|
||||
# Svelte + Vite
|
||||
|
||||
This template should help get you started developing with Svelte in Vite.
|
||||
|
||||
## Recommended IDE Setup
|
||||
|
||||
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
|
||||
|
||||
## Need an official Svelte framework?
|
||||
|
||||
Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
|
||||
|
||||
## Technical considerations
|
||||
|
||||
**Why use this over SvelteKit?**
|
||||
|
||||
- It brings its own routing solution which might not be preferable for some users.
|
||||
- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
|
||||
|
||||
This template contains as little as possible to get started with Vite + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
|
||||
|
||||
Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
|
||||
|
||||
**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
|
||||
|
||||
Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
|
||||
|
||||
**Why include `.vscode/extensions.json`?**
|
||||
|
||||
Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
|
||||
|
||||
**Why enable `checkJs` in the JS template?**
|
||||
|
||||
It is likely that most cases of changing variable types in runtime are likely to be accidental, rather than deliberate. This provides advanced typechecking out of the box. Should you like to take advantage of the dynamically-typed nature of JavaScript, it is trivial to change the configuration.
|
||||
|
||||
**Why is HMR not preserving my local component state?**
|
||||
|
||||
HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/sveltejs/svelte-hmr/tree/master/packages/svelte-hmr#preservation-of-local-state).
|
||||
|
||||
If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
|
||||
|
||||
```js
|
||||
// store.js
|
||||
// An extremely simple external store
|
||||
import { writable } from 'svelte/store'
|
||||
export default writable(0)
|
||||
```
|
425
svelte-helper/bun.lock
Normal file
425
svelte-helper/bun.lock
Normal file
@ -0,0 +1,425 @@
|
||||
{
|
||||
"lockfileVersion": 1,
|
||||
"workspaces": {
|
||||
"": {
|
||||
"name": "www",
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-node-resolve": "^16.0.1",
|
||||
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
||||
"rollup-plugin-postcss": "^4.0.2",
|
||||
"rollup-plugin-svelte": "^7.2.2",
|
||||
"svelte": "^4.2.4",
|
||||
"vite": "^6.3.5",
|
||||
},
|
||||
},
|
||||
},
|
||||
"packages": {
|
||||
"@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
|
||||
|
||||
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA=="],
|
||||
|
||||
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.5", "", { "os": "android", "cpu": "arm" }, "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA=="],
|
||||
|
||||
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.5", "", { "os": "android", "cpu": "arm64" }, "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg=="],
|
||||
|
||||
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.5", "", { "os": "android", "cpu": "x64" }, "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw=="],
|
||||
|
||||
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ=="],
|
||||
|
||||
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ=="],
|
||||
|
||||
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw=="],
|
||||
|
||||
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw=="],
|
||||
|
||||
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.5", "", { "os": "linux", "cpu": "arm" }, "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw=="],
|
||||
|
||||
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg=="],
|
||||
|
||||
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA=="],
|
||||
|
||||
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg=="],
|
||||
|
||||
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg=="],
|
||||
|
||||
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ=="],
|
||||
|
||||
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA=="],
|
||||
|
||||
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ=="],
|
||||
|
||||
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.5", "", { "os": "linux", "cpu": "x64" }, "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw=="],
|
||||
|
||||
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.5", "", { "os": "none", "cpu": "arm64" }, "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw=="],
|
||||
|
||||
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.5", "", { "os": "none", "cpu": "x64" }, "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ=="],
|
||||
|
||||
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.5", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw=="],
|
||||
|
||||
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg=="],
|
||||
|
||||
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA=="],
|
||||
|
||||
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw=="],
|
||||
|
||||
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ=="],
|
||||
|
||||
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g=="],
|
||||
|
||||
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="],
|
||||
|
||||
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
|
||||
|
||||
"@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="],
|
||||
|
||||
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="],
|
||||
|
||||
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="],
|
||||
|
||||
"@rollup/plugin-node-resolve": ["@rollup/plugin-node-resolve@16.0.1", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA=="],
|
||||
|
||||
"@rollup/pluginutils": ["@rollup/pluginutils@5.1.4", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ=="],
|
||||
|
||||
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.41.1", "", { "os": "android", "cpu": "arm" }, "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw=="],
|
||||
|
||||
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.41.1", "", { "os": "android", "cpu": "arm64" }, "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA=="],
|
||||
|
||||
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.41.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w=="],
|
||||
|
||||
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.41.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg=="],
|
||||
|
||||
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.41.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg=="],
|
||||
|
||||
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.41.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA=="],
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.41.1", "", { "os": "linux", "cpu": "arm" }, "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg=="],
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.41.1", "", { "os": "linux", "cpu": "arm" }, "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA=="],
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.41.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA=="],
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.41.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg=="],
|
||||
|
||||
"@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.41.1", "", { "os": "linux", "cpu": "none" }, "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw=="],
|
||||
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.41.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A=="],
|
||||
|
||||
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.41.1", "", { "os": "linux", "cpu": "none" }, "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw=="],
|
||||
|
||||
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.41.1", "", { "os": "linux", "cpu": "none" }, "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw=="],
|
||||
|
||||
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.41.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g=="],
|
||||
|
||||
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.41.1", "", { "os": "linux", "cpu": "x64" }, "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A=="],
|
||||
|
||||
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.41.1", "", { "os": "linux", "cpu": "x64" }, "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ=="],
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.41.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ=="],
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.41.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg=="],
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.41.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw=="],
|
||||
|
||||
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@5.0.3", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.0", "deepmerge": "^4.3.1", "kleur": "^4.1.5", "magic-string": "^0.30.15", "vitefu": "^1.0.4" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw=="],
|
||||
|
||||
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@4.0.1", "", { "dependencies": { "debug": "^4.3.7" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.0", "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw=="],
|
||||
|
||||
"@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="],
|
||||
|
||||
"@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="],
|
||||
|
||||
"@types/resolve": ["@types/resolve@1.20.2", "", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="],
|
||||
|
||||
"acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="],
|
||||
|
||||
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
|
||||
|
||||
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
|
||||
|
||||
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
||||
|
||||
"boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="],
|
||||
|
||||
"browserslist": ["browserslist@4.25.0", "", { "dependencies": { "caniuse-lite": "^1.0.30001718", "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA=="],
|
||||
|
||||
"caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="],
|
||||
|
||||
"caniuse-lite": ["caniuse-lite@1.0.30001720", "", {}, "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g=="],
|
||||
|
||||
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
||||
|
||||
"code-red": ["code-red@1.0.4", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", "@types/estree": "^1.0.1", "acorn": "^8.10.0", "estree-walker": "^3.0.3", "periscopic": "^3.1.0" } }, "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw=="],
|
||||
|
||||
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
|
||||
|
||||
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
||||
|
||||
"colord": ["colord@2.9.3", "", {}, "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="],
|
||||
|
||||
"commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="],
|
||||
|
||||
"concat-with-sourcemaps": ["concat-with-sourcemaps@1.1.0", "", { "dependencies": { "source-map": "^0.6.1" } }, "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg=="],
|
||||
|
||||
"css-declaration-sorter": ["css-declaration-sorter@6.4.1", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g=="],
|
||||
|
||||
"css-select": ["css-select@4.3.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="],
|
||||
|
||||
"css-tree": ["css-tree@2.3.1", "", { "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" } }, "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw=="],
|
||||
|
||||
"css-what": ["css-what@6.1.0", "", {}, "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="],
|
||||
|
||||
"cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
|
||||
|
||||
"cssnano": ["cssnano@5.1.15", "", { "dependencies": { "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw=="],
|
||||
|
||||
"cssnano-preset-default": ["cssnano-preset-default@5.2.14", "", { "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", "postcss-normalize-positions": "^5.1.1", "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A=="],
|
||||
|
||||
"cssnano-utils": ["cssnano-utils@3.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA=="],
|
||||
|
||||
"csso": ["csso@4.2.0", "", { "dependencies": { "css-tree": "^1.1.2" } }, "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA=="],
|
||||
|
||||
"debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
|
||||
|
||||
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
|
||||
|
||||
"dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="],
|
||||
|
||||
"domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],
|
||||
|
||||
"domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="],
|
||||
|
||||
"domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="],
|
||||
|
||||
"electron-to-chromium": ["electron-to-chromium@1.5.161", "", {}, "sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA=="],
|
||||
|
||||
"entities": ["entities@2.2.0", "", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="],
|
||||
|
||||
"esbuild": ["esbuild@0.25.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.5", "@esbuild/android-arm": "0.25.5", "@esbuild/android-arm64": "0.25.5", "@esbuild/android-x64": "0.25.5", "@esbuild/darwin-arm64": "0.25.5", "@esbuild/darwin-x64": "0.25.5", "@esbuild/freebsd-arm64": "0.25.5", "@esbuild/freebsd-x64": "0.25.5", "@esbuild/linux-arm": "0.25.5", "@esbuild/linux-arm64": "0.25.5", "@esbuild/linux-ia32": "0.25.5", "@esbuild/linux-loong64": "0.25.5", "@esbuild/linux-mips64el": "0.25.5", "@esbuild/linux-ppc64": "0.25.5", "@esbuild/linux-riscv64": "0.25.5", "@esbuild/linux-s390x": "0.25.5", "@esbuild/linux-x64": "0.25.5", "@esbuild/netbsd-arm64": "0.25.5", "@esbuild/netbsd-x64": "0.25.5", "@esbuild/openbsd-arm64": "0.25.5", "@esbuild/openbsd-x64": "0.25.5", "@esbuild/sunos-x64": "0.25.5", "@esbuild/win32-arm64": "0.25.5", "@esbuild/win32-ia32": "0.25.5", "@esbuild/win32-x64": "0.25.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ=="],
|
||||
|
||||
"escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
|
||||
|
||||
"estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="],
|
||||
|
||||
"eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="],
|
||||
|
||||
"fdir": ["fdir@6.4.5", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw=="],
|
||||
|
||||
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
||||
|
||||
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
|
||||
|
||||
"generic-names": ["generic-names@4.0.0", "", { "dependencies": { "loader-utils": "^3.2.0" } }, "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A=="],
|
||||
|
||||
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
|
||||
|
||||
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
||||
|
||||
"icss-replace-symbols": ["icss-replace-symbols@1.1.0", "", {}, "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg=="],
|
||||
|
||||
"icss-utils": ["icss-utils@5.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="],
|
||||
|
||||
"import-cwd": ["import-cwd@3.0.0", "", { "dependencies": { "import-from": "^3.0.0" } }, "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg=="],
|
||||
|
||||
"import-from": ["import-from@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ=="],
|
||||
|
||||
"is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
|
||||
|
||||
"is-module": ["is-module@1.0.0", "", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="],
|
||||
|
||||
"is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="],
|
||||
|
||||
"kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
|
||||
|
||||
"lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="],
|
||||
|
||||
"loader-utils": ["loader-utils@3.3.1", "", {}, "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg=="],
|
||||
|
||||
"locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
|
||||
|
||||
"lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="],
|
||||
|
||||
"lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="],
|
||||
|
||||
"lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="],
|
||||
|
||||
"magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="],
|
||||
|
||||
"mdn-data": ["mdn-data@2.0.30", "", {}, "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="],
|
||||
|
||||
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||
|
||||
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
||||
|
||||
"node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="],
|
||||
|
||||
"normalize-url": ["normalize-url@6.1.0", "", {}, "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="],
|
||||
|
||||
"nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
|
||||
|
||||
"p-finally": ["p-finally@1.0.0", "", {}, "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="],
|
||||
|
||||
"p-queue": ["p-queue@6.6.2", "", { "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" } }, "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ=="],
|
||||
|
||||
"p-timeout": ["p-timeout@3.2.0", "", { "dependencies": { "p-finally": "^1.0.0" } }, "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="],
|
||||
|
||||
"path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="],
|
||||
|
||||
"periscopic": ["periscopic@3.1.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^3.0.0", "is-reference": "^3.0.0" } }, "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw=="],
|
||||
|
||||
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
||||
|
||||
"picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="],
|
||||
|
||||
"pify": ["pify@5.0.0", "", {}, "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA=="],
|
||||
|
||||
"postcss": ["postcss@8.5.4", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w=="],
|
||||
|
||||
"postcss-calc": ["postcss-calc@8.2.4", "", { "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.2" } }, "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q=="],
|
||||
|
||||
"postcss-colormin": ["postcss-colormin@5.3.1", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ=="],
|
||||
|
||||
"postcss-convert-values": ["postcss-convert-values@5.1.3", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA=="],
|
||||
|
||||
"postcss-discard-comments": ["postcss-discard-comments@5.1.2", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ=="],
|
||||
|
||||
"postcss-discard-duplicates": ["postcss-discard-duplicates@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw=="],
|
||||
|
||||
"postcss-discard-empty": ["postcss-discard-empty@5.1.1", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A=="],
|
||||
|
||||
"postcss-discard-overridden": ["postcss-discard-overridden@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw=="],
|
||||
|
||||
"postcss-load-config": ["postcss-load-config@3.1.4", "", { "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="],
|
||||
|
||||
"postcss-merge-longhand": ["postcss-merge-longhand@5.1.7", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ=="],
|
||||
|
||||
"postcss-merge-rules": ["postcss-merge-rules@5.1.4", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g=="],
|
||||
|
||||
"postcss-minify-font-values": ["postcss-minify-font-values@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA=="],
|
||||
|
||||
"postcss-minify-gradients": ["postcss-minify-gradients@5.1.1", "", { "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw=="],
|
||||
|
||||
"postcss-minify-params": ["postcss-minify-params@5.1.4", "", { "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw=="],
|
||||
|
||||
"postcss-minify-selectors": ["postcss-minify-selectors@5.2.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg=="],
|
||||
|
||||
"postcss-modules": ["postcss-modules@4.3.1", "", { "dependencies": { "generic-names": "^4.0.0", "icss-replace-symbols": "^1.1.0", "lodash.camelcase": "^4.3.0", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "string-hash": "^1.1.1" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q=="],
|
||||
|
||||
"postcss-modules-extract-imports": ["postcss-modules-extract-imports@3.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q=="],
|
||||
|
||||
"postcss-modules-local-by-default": ["postcss-modules-local-by-default@4.2.0", "", { "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw=="],
|
||||
|
||||
"postcss-modules-scope": ["postcss-modules-scope@3.2.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA=="],
|
||||
|
||||
"postcss-modules-values": ["postcss-modules-values@4.0.0", "", { "dependencies": { "icss-utils": "^5.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ=="],
|
||||
|
||||
"postcss-normalize-charset": ["postcss-normalize-charset@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg=="],
|
||||
|
||||
"postcss-normalize-display-values": ["postcss-normalize-display-values@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA=="],
|
||||
|
||||
"postcss-normalize-positions": ["postcss-normalize-positions@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg=="],
|
||||
|
||||
"postcss-normalize-repeat-style": ["postcss-normalize-repeat-style@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g=="],
|
||||
|
||||
"postcss-normalize-string": ["postcss-normalize-string@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w=="],
|
||||
|
||||
"postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg=="],
|
||||
|
||||
"postcss-normalize-unicode": ["postcss-normalize-unicode@5.1.1", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA=="],
|
||||
|
||||
"postcss-normalize-url": ["postcss-normalize-url@5.1.0", "", { "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew=="],
|
||||
|
||||
"postcss-normalize-whitespace": ["postcss-normalize-whitespace@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA=="],
|
||||
|
||||
"postcss-ordered-values": ["postcss-ordered-values@5.1.3", "", { "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ=="],
|
||||
|
||||
"postcss-reduce-initial": ["postcss-reduce-initial@5.1.2", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg=="],
|
||||
|
||||
"postcss-reduce-transforms": ["postcss-reduce-transforms@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ=="],
|
||||
|
||||
"postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
|
||||
|
||||
"postcss-svgo": ["postcss-svgo@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA=="],
|
||||
|
||||
"postcss-unique-selectors": ["postcss-unique-selectors@5.1.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA=="],
|
||||
|
||||
"postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="],
|
||||
|
||||
"promise.series": ["promise.series@0.2.0", "", {}, "sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ=="],
|
||||
|
||||
"resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
|
||||
|
||||
"resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="],
|
||||
|
||||
"resolve.exports": ["resolve.exports@2.0.3", "", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="],
|
||||
|
||||
"rollup": ["rollup@4.41.1", "", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.41.1", "@rollup/rollup-android-arm64": "4.41.1", "@rollup/rollup-darwin-arm64": "4.41.1", "@rollup/rollup-darwin-x64": "4.41.1", "@rollup/rollup-freebsd-arm64": "4.41.1", "@rollup/rollup-freebsd-x64": "4.41.1", "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", "@rollup/rollup-linux-arm-musleabihf": "4.41.1", "@rollup/rollup-linux-arm64-gnu": "4.41.1", "@rollup/rollup-linux-arm64-musl": "4.41.1", "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", "@rollup/rollup-linux-riscv64-gnu": "4.41.1", "@rollup/rollup-linux-riscv64-musl": "4.41.1", "@rollup/rollup-linux-s390x-gnu": "4.41.1", "@rollup/rollup-linux-x64-gnu": "4.41.1", "@rollup/rollup-linux-x64-musl": "4.41.1", "@rollup/rollup-win32-arm64-msvc": "4.41.1", "@rollup/rollup-win32-ia32-msvc": "4.41.1", "@rollup/rollup-win32-x64-msvc": "4.41.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw=="],
|
||||
|
||||
"rollup-plugin-postcss": ["rollup-plugin-postcss@4.0.2", "", { "dependencies": { "chalk": "^4.1.0", "concat-with-sourcemaps": "^1.1.0", "cssnano": "^5.0.1", "import-cwd": "^3.0.0", "p-queue": "^6.6.2", "pify": "^5.0.0", "postcss-load-config": "^3.0.0", "postcss-modules": "^4.0.0", "promise.series": "^0.2.0", "resolve": "^1.19.0", "rollup-pluginutils": "^2.8.2", "safe-identifier": "^0.4.2", "style-inject": "^0.3.0" }, "peerDependencies": { "postcss": "8.x" } }, "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w=="],
|
||||
|
||||
"rollup-plugin-svelte": ["rollup-plugin-svelte@7.2.2", "", { "dependencies": { "@rollup/pluginutils": "^4.1.0", "resolve.exports": "^2.0.0" }, "peerDependencies": { "rollup": ">=2.0.0", "svelte": ">=3.5.0" } }, "sha512-hgnIblTRewaBEVQD6N0Q43o+y6q1TmDRhBjaEzQCi50bs8TXqjc+d1zFZyE8tsfgcfNHZQzclh4RxlFUB85H8Q=="],
|
||||
|
||||
"rollup-pluginutils": ["rollup-pluginutils@2.8.2", "", { "dependencies": { "estree-walker": "^0.6.1" } }, "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ=="],
|
||||
|
||||
"safe-identifier": ["safe-identifier@0.4.2", "", {}, "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="],
|
||||
|
||||
"source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
|
||||
|
||||
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
||||
|
||||
"stable": ["stable@0.1.8", "", {}, "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="],
|
||||
|
||||
"string-hash": ["string-hash@1.1.3", "", {}, "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="],
|
||||
|
||||
"style-inject": ["style-inject@0.3.0", "", {}, "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw=="],
|
||||
|
||||
"stylehacks": ["stylehacks@5.1.1", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw=="],
|
||||
|
||||
"supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
|
||||
|
||||
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
|
||||
|
||||
"svelte": ["svelte@4.2.20", "", { "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/trace-mapping": "^0.3.18", "@types/estree": "^1.0.1", "acorn": "^8.9.0", "aria-query": "^5.3.0", "axobject-query": "^4.0.0", "code-red": "^1.0.3", "css-tree": "^2.3.1", "estree-walker": "^3.0.3", "is-reference": "^3.0.1", "locate-character": "^3.0.0", "magic-string": "^0.30.4", "periscopic": "^3.1.0" } }, "sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q=="],
|
||||
|
||||
"svgo": ["svgo@2.8.0", "", { "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", "picocolors": "^1.0.0", "stable": "^0.1.8" }, "bin": { "svgo": "bin/svgo" } }, "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg=="],
|
||||
|
||||
"tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="],
|
||||
|
||||
"update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
|
||||
|
||||
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
||||
|
||||
"vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="],
|
||||
|
||||
"vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="],
|
||||
|
||||
"yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="],
|
||||
|
||||
"@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
|
||||
|
||||
"csso/css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="],
|
||||
|
||||
"postcss-calc/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
|
||||
|
||||
"postcss-merge-rules/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
|
||||
|
||||
"postcss-minify-selectors/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
|
||||
|
||||
"postcss-unique-selectors/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
|
||||
|
||||
"rollup-plugin-svelte/@rollup/pluginutils": ["@rollup/pluginutils@4.2.1", "", { "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" } }, "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ=="],
|
||||
|
||||
"rollup-pluginutils/estree-walker": ["estree-walker@0.6.1", "", {}, "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="],
|
||||
|
||||
"stylehacks/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
|
||||
|
||||
"svgo/css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="],
|
||||
|
||||
"csso/css-tree/mdn-data": ["mdn-data@2.0.14", "", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="],
|
||||
|
||||
"rollup-plugin-svelte/@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
|
||||
|
||||
"rollup-plugin-svelte/@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
||||
|
||||
"svgo/css-tree/mdn-data": ["mdn-data@2.0.14", "", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="],
|
||||
}
|
||||
}
|
16
svelte-helper/index.html
Normal file
16
svelte-helper/index.html
Normal file
@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite + Svelte</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
32
svelte-helper/jsconfig.json
Normal file
32
svelte-helper/jsconfig.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"moduleResolution": "bundler",
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
/**
|
||||
* svelte-preprocess cannot figure out whether you have
|
||||
* a value or a type, so tell TypeScript to enforce using
|
||||
* `import type` instead of `import` for Types.
|
||||
*/
|
||||
"verbatimModuleSyntax": true,
|
||||
"isolatedModules": true,
|
||||
"resolveJsonModule": true,
|
||||
/**
|
||||
* To have warnings / errors of the Svelte compiler at the
|
||||
* correct position, enable source maps by default.
|
||||
*/
|
||||
"sourceMap": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
/**
|
||||
* Typecheck JS in `.svelte` and `.js` files by default.
|
||||
* Disable this if you'd like to use dynamic types.
|
||||
*/
|
||||
"checkJs": true
|
||||
},
|
||||
/**
|
||||
* Use global.d.ts instead of compilerOptions.types
|
||||
* to avoid limiting type declarations.
|
||||
*/
|
||||
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
|
||||
}
|
20
svelte-helper/package.json
Normal file
20
svelte-helper/package.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-node-resolve": "^16.0.1",
|
||||
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
||||
"rollup-plugin-postcss": "^4.0.2",
|
||||
"rollup-plugin-svelte": "^7.2.2",
|
||||
"svelte": "^4.2.4",
|
||||
"vite": "^6.3.5"
|
||||
},
|
||||
"name": "svelte-helper",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "vite build",
|
||||
"dev": "vite",
|
||||
"preview": "vite preview",
|
||||
"svelte-build": "rollup -c"
|
||||
},
|
||||
"type": "module",
|
||||
"version": "0.0.0"
|
||||
}
|
21
svelte-helper/public/b/demo.html
Normal file
21
svelte-helper/public/b/demo.html
Normal file
@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>Demo page</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<body>
|
||||
|
||||
<h1>Svelte embedding demo</h1>
|
||||
|
||||
<p>Below, we have inserted a <code>script</code> tag that should
|
||||
renter a Svelte component upon loading this page.</p>
|
||||
|
||||
<script src="dist.js"></script>
|
||||
|
||||
<script src="dist.js"></script>
|
||||
|
||||
<script src="dist.js"></script>
|
||||
|
||||
<p>This text will come after the embedded content.</p>
|
||||
</body>
|
||||
</html>
|
372
svelte-helper/public/b/dist.js
Normal file
372
svelte-helper/public/b/dist.js
Normal file
@ -0,0 +1,372 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function noop() { }
|
||||
function run(fn) {
|
||||
return fn();
|
||||
}
|
||||
function blank_object() {
|
||||
return Object.create(null);
|
||||
}
|
||||
function run_all(fns) {
|
||||
fns.forEach(run);
|
||||
}
|
||||
function is_function(thing) {
|
||||
return typeof thing === 'function';
|
||||
}
|
||||
function safe_not_equal(a, b) {
|
||||
return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');
|
||||
}
|
||||
function is_empty(obj) {
|
||||
return Object.keys(obj).length === 0;
|
||||
}
|
||||
function append(target, node) {
|
||||
target.appendChild(node);
|
||||
}
|
||||
function insert(target, node, anchor) {
|
||||
target.insertBefore(node, anchor || null);
|
||||
}
|
||||
function detach(node) {
|
||||
if (node.parentNode) {
|
||||
node.parentNode.removeChild(node);
|
||||
}
|
||||
}
|
||||
function element(name) {
|
||||
return document.createElement(name);
|
||||
}
|
||||
function text(data) {
|
||||
return document.createTextNode(data);
|
||||
}
|
||||
function space() {
|
||||
return text(' ');
|
||||
}
|
||||
function children(element) {
|
||||
return Array.from(element.childNodes);
|
||||
}
|
||||
function set_data(text, data) {
|
||||
data = '' + data;
|
||||
if (text.data === data)
|
||||
return;
|
||||
text.data = data;
|
||||
}
|
||||
|
||||
let current_component;
|
||||
function set_current_component(component) {
|
||||
current_component = component;
|
||||
}
|
||||
|
||||
const dirty_components = [];
|
||||
const binding_callbacks = [];
|
||||
let render_callbacks = [];
|
||||
const flush_callbacks = [];
|
||||
const resolved_promise = /* @__PURE__ */ Promise.resolve();
|
||||
let update_scheduled = false;
|
||||
function schedule_update() {
|
||||
if (!update_scheduled) {
|
||||
update_scheduled = true;
|
||||
resolved_promise.then(flush);
|
||||
}
|
||||
}
|
||||
function add_render_callback(fn) {
|
||||
render_callbacks.push(fn);
|
||||
}
|
||||
// flush() calls callbacks in this order:
|
||||
// 1. All beforeUpdate callbacks, in order: parents before children
|
||||
// 2. All bind:this callbacks, in reverse order: children before parents.
|
||||
// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT
|
||||
// for afterUpdates called during the initial onMount, which are called in
|
||||
// reverse order: children before parents.
|
||||
// Since callbacks might update component values, which could trigger another
|
||||
// call to flush(), the following steps guard against this:
|
||||
// 1. During beforeUpdate, any updated components will be added to the
|
||||
// dirty_components array and will cause a reentrant call to flush(). Because
|
||||
// the flush index is kept outside the function, the reentrant call will pick
|
||||
// up where the earlier call left off and go through all dirty components. The
|
||||
// current_component value is saved and restored so that the reentrant call will
|
||||
// not interfere with the "parent" flush() call.
|
||||
// 2. bind:this callbacks cannot trigger new flush() calls.
|
||||
// 3. During afterUpdate, any updated components will NOT have their afterUpdate
|
||||
// callback called a second time; the seen_callbacks set, outside the flush()
|
||||
// function, guarantees this behavior.
|
||||
const seen_callbacks = new Set();
|
||||
let flushidx = 0; // Do *not* move this inside the flush() function
|
||||
function flush() {
|
||||
// Do not reenter flush while dirty components are updated, as this can
|
||||
// result in an infinite loop. Instead, let the inner flush handle it.
|
||||
// Reentrancy is ok afterwards for bindings etc.
|
||||
if (flushidx !== 0) {
|
||||
return;
|
||||
}
|
||||
const saved_component = current_component;
|
||||
do {
|
||||
// first, call beforeUpdate functions
|
||||
// and update components
|
||||
try {
|
||||
while (flushidx < dirty_components.length) {
|
||||
const component = dirty_components[flushidx];
|
||||
flushidx++;
|
||||
set_current_component(component);
|
||||
update(component.$$);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
// reset dirty state to not end up in a deadlocked state and then rethrow
|
||||
dirty_components.length = 0;
|
||||
flushidx = 0;
|
||||
throw e;
|
||||
}
|
||||
set_current_component(null);
|
||||
dirty_components.length = 0;
|
||||
flushidx = 0;
|
||||
while (binding_callbacks.length)
|
||||
binding_callbacks.pop()();
|
||||
// then, once components are updated, call
|
||||
// afterUpdate functions. This may cause
|
||||
// subsequent updates...
|
||||
for (let i = 0; i < render_callbacks.length; i += 1) {
|
||||
const callback = render_callbacks[i];
|
||||
if (!seen_callbacks.has(callback)) {
|
||||
// ...so guard against infinite loops
|
||||
seen_callbacks.add(callback);
|
||||
callback();
|
||||
}
|
||||
}
|
||||
render_callbacks.length = 0;
|
||||
} while (dirty_components.length);
|
||||
while (flush_callbacks.length) {
|
||||
flush_callbacks.pop()();
|
||||
}
|
||||
update_scheduled = false;
|
||||
seen_callbacks.clear();
|
||||
set_current_component(saved_component);
|
||||
}
|
||||
function update($$) {
|
||||
if ($$.fragment !== null) {
|
||||
$$.update();
|
||||
run_all($$.before_update);
|
||||
const dirty = $$.dirty;
|
||||
$$.dirty = [-1];
|
||||
$$.fragment && $$.fragment.p($$.ctx, dirty);
|
||||
$$.after_update.forEach(add_render_callback);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Useful for example to execute remaining `afterUpdate` callbacks before executing `destroy`.
|
||||
*/
|
||||
function flush_render_callbacks(fns) {
|
||||
const filtered = [];
|
||||
const targets = [];
|
||||
render_callbacks.forEach((c) => fns.indexOf(c) === -1 ? filtered.push(c) : targets.push(c));
|
||||
targets.forEach((c) => c());
|
||||
render_callbacks = filtered;
|
||||
}
|
||||
const outroing = new Set();
|
||||
function transition_in(block, local) {
|
||||
if (block && block.i) {
|
||||
outroing.delete(block);
|
||||
block.i(local);
|
||||
}
|
||||
}
|
||||
function mount_component(component, target, anchor, customElement) {
|
||||
const { fragment, after_update } = component.$$;
|
||||
fragment && fragment.m(target, anchor);
|
||||
if (!customElement) {
|
||||
// onMount happens before the initial afterUpdate
|
||||
add_render_callback(() => {
|
||||
const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);
|
||||
// if the component was destroyed immediately
|
||||
// it will update the `$$.on_destroy` reference to `null`.
|
||||
// the destructured on_destroy may still reference to the old array
|
||||
if (component.$$.on_destroy) {
|
||||
component.$$.on_destroy.push(...new_on_destroy);
|
||||
}
|
||||
else {
|
||||
// Edge case - component was destroyed immediately,
|
||||
// most likely as a result of a binding initialising
|
||||
run_all(new_on_destroy);
|
||||
}
|
||||
component.$$.on_mount = [];
|
||||
});
|
||||
}
|
||||
after_update.forEach(add_render_callback);
|
||||
}
|
||||
function destroy_component(component, detaching) {
|
||||
const $$ = component.$$;
|
||||
if ($$.fragment !== null) {
|
||||
flush_render_callbacks($$.after_update);
|
||||
run_all($$.on_destroy);
|
||||
$$.fragment && $$.fragment.d(detaching);
|
||||
// TODO null out other refs, including component.$$ (but need to
|
||||
// preserve final state?)
|
||||
$$.on_destroy = $$.fragment = null;
|
||||
$$.ctx = [];
|
||||
}
|
||||
}
|
||||
function make_dirty(component, i) {
|
||||
if (component.$$.dirty[0] === -1) {
|
||||
dirty_components.push(component);
|
||||
schedule_update();
|
||||
component.$$.dirty.fill(0);
|
||||
}
|
||||
component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));
|
||||
}
|
||||
function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {
|
||||
const parent_component = current_component;
|
||||
set_current_component(component);
|
||||
const $$ = component.$$ = {
|
||||
fragment: null,
|
||||
ctx: [],
|
||||
// state
|
||||
props,
|
||||
update: noop,
|
||||
not_equal,
|
||||
bound: blank_object(),
|
||||
// lifecycle
|
||||
on_mount: [],
|
||||
on_destroy: [],
|
||||
on_disconnect: [],
|
||||
before_update: [],
|
||||
after_update: [],
|
||||
context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),
|
||||
// everything else
|
||||
callbacks: blank_object(),
|
||||
dirty,
|
||||
skip_bound: false,
|
||||
root: options.target || parent_component.$$.root
|
||||
};
|
||||
append_styles && append_styles($$.root);
|
||||
let ready = false;
|
||||
$$.ctx = instance
|
||||
? instance(component, options.props || {}, (i, ret, ...rest) => {
|
||||
const value = rest.length ? rest[0] : ret;
|
||||
if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
|
||||
if (!$$.skip_bound && $$.bound[i])
|
||||
$$.bound[i](value);
|
||||
if (ready)
|
||||
make_dirty(component, i);
|
||||
}
|
||||
return ret;
|
||||
})
|
||||
: [];
|
||||
$$.update();
|
||||
ready = true;
|
||||
run_all($$.before_update);
|
||||
// `false` as a special case of no DOM component
|
||||
$$.fragment = create_fragment ? create_fragment($$.ctx) : false;
|
||||
if (options.target) {
|
||||
if (options.hydrate) {
|
||||
const nodes = children(options.target);
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
$$.fragment && $$.fragment.l(nodes);
|
||||
nodes.forEach(detach);
|
||||
}
|
||||
else {
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
$$.fragment && $$.fragment.c();
|
||||
}
|
||||
if (options.intro)
|
||||
transition_in(component.$$.fragment);
|
||||
mount_component(component, options.target, options.anchor, options.customElement);
|
||||
flush();
|
||||
}
|
||||
set_current_component(parent_component);
|
||||
}
|
||||
/**
|
||||
* Base class for Svelte components. Used when dev=false.
|
||||
*/
|
||||
class SvelteComponent {
|
||||
$destroy() {
|
||||
destroy_component(this, 1);
|
||||
this.$destroy = noop;
|
||||
}
|
||||
$on(type, callback) {
|
||||
if (!is_function(callback)) {
|
||||
return noop;
|
||||
}
|
||||
const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));
|
||||
callbacks.push(callback);
|
||||
return () => {
|
||||
const index = callbacks.indexOf(callback);
|
||||
if (index !== -1)
|
||||
callbacks.splice(index, 1);
|
||||
};
|
||||
}
|
||||
$set($$props) {
|
||||
if (this.$$set && !is_empty($$props)) {
|
||||
this.$$.skip_bound = true;
|
||||
this.$$set($$props);
|
||||
this.$$.skip_bound = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Embed.svelte generated by Svelte v3.59.2 */
|
||||
|
||||
function create_fragment(ctx) {
|
||||
let h1;
|
||||
let t0;
|
||||
let t1;
|
||||
let t2;
|
||||
let t3;
|
||||
let p;
|
||||
|
||||
return {
|
||||
c() {
|
||||
h1 = element("h1");
|
||||
t0 = text("Hello, ");
|
||||
t1 = text(/*name*/ ctx[0]);
|
||||
t2 = text("!");
|
||||
t3 = space();
|
||||
p = element("p");
|
||||
|
||||
p.innerHTML = `This component was brought to you by <a href="https://codeandlife.com/">Code
|
||||
& Life</a>.`;
|
||||
},
|
||||
m(target, anchor) {
|
||||
insert(target, h1, anchor);
|
||||
append(h1, t0);
|
||||
append(h1, t1);
|
||||
append(h1, t2);
|
||||
insert(target, t3, anchor);
|
||||
insert(target, p, anchor);
|
||||
},
|
||||
p(ctx, [dirty]) {
|
||||
if (dirty & /*name*/ 1) set_data(t1, /*name*/ ctx[0]);
|
||||
},
|
||||
i: noop,
|
||||
o: noop,
|
||||
d(detaching) {
|
||||
if (detaching) detach(h1);
|
||||
if (detaching) detach(t3);
|
||||
if (detaching) detach(p);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function instance($$self, $$props, $$invalidate) {
|
||||
let { name } = $$props;
|
||||
|
||||
$$self.$$set = $$props => {
|
||||
if ('name' in $$props) $$invalidate(0, name = $$props.name);
|
||||
};
|
||||
|
||||
return [name];
|
||||
}
|
||||
|
||||
class Embed extends SvelteComponent {
|
||||
constructor(options) {
|
||||
super();
|
||||
init(this, options, instance, create_fragment, safe_not_equal, { name: 0 });
|
||||
}
|
||||
}
|
||||
|
||||
var div = document.createElement('DIV');
|
||||
var script = document.currentScript;
|
||||
script.parentNode.insertBefore(div, script);
|
||||
|
||||
new Embed({
|
||||
target: div,
|
||||
props: { name: 'Svelte component' },
|
||||
});
|
||||
|
||||
})();
|
23
svelte-helper/public/c/demo.html
Normal file
23
svelte-helper/public/c/demo.html
Normal file
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>Demo page</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Svelte embedding demo</h1>
|
||||
|
||||
<p>Below, we have inserted a <code>script</code> tag that should
|
||||
renter a Svelte component upon loading this page.</p>
|
||||
<hr>
|
||||
<script src="dist.js"></script>
|
||||
<hr>
|
||||
<script src="dist.js"></script>
|
||||
<hr>
|
||||
<script src="dist.js"></script>
|
||||
<hr>
|
||||
<p>This text will come after the embedded content.</p>
|
||||
</body>
|
||||
|
||||
</html>
|
2903
svelte-helper/public/c/dist.js
Normal file
2903
svelte-helper/public/c/dist.js
Normal file
File diff suppressed because it is too large
Load Diff
23
svelte-helper/public/d/demo.html
Normal file
23
svelte-helper/public/d/demo.html
Normal file
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>Demo page</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Svelte embedding demo</h1>
|
||||
|
||||
<p>Below, we have inserted a <code>script</code> tag that should
|
||||
renter a Svelte component upon loading this page.</p>
|
||||
<hr>
|
||||
<script src="dist.js"></script>
|
||||
<hr>
|
||||
<script src="dist.js"></script>
|
||||
<hr>
|
||||
<script src="dist.js"></script>
|
||||
<hr>
|
||||
<p>This text will come after the embedded content.</p>
|
||||
</body>
|
||||
|
||||
</html>
|
3276
svelte-helper/public/d/dist.js
Normal file
3276
svelte-helper/public/d/dist.js
Normal file
File diff suppressed because it is too large
Load Diff
41
svelte-helper/public/demo.html
Normal file
41
svelte-helper/public/demo.html
Normal file
@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Demo page</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<style>
|
||||
body {
|
||||
margin: 3em;
|
||||
}
|
||||
|
||||
p {
|
||||
color: green;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Svelte Embedding Demo</h1>
|
||||
|
||||
<p>
|
||||
Below, we have inserted a <code>script</code> tag that should render a
|
||||
Svelte Calculator component upon loading this page. Its font size is set
|
||||
to 10px.
|
||||
</p>
|
||||
|
||||
<script>
|
||||
calcFontSize = "10px";
|
||||
</script>
|
||||
<script src="embed-rollup.js"></script>
|
||||
<p>Below this line is a Calculator with font size of 16px.</p>
|
||||
<script>
|
||||
calcFontSize = "16px";
|
||||
</script>
|
||||
<script src="embed-rollup.js"></script>
|
||||
|
||||
<p>This text will come after the embedded content.</p>
|
||||
</body>
|
||||
|
||||
</html>
|
23
svelte-helper/public/e/demo.html
Normal file
23
svelte-helper/public/e/demo.html
Normal file
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>Demo page</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Svelte embedding demo</h1>
|
||||
|
||||
<p>Below, we have inserted a <code>script</code> tag that should
|
||||
renter a Svelte component upon loading this page.</p>
|
||||
<hr>
|
||||
<script src="embed-rollup.js"></script>
|
||||
<hr>
|
||||
<script src="embed-rollup.js"></script>
|
||||
<hr>
|
||||
<script src="embed-rollup.js"></script>
|
||||
<hr>
|
||||
<p>This text will come after the embedded content.</p>
|
||||
</body>
|
||||
|
||||
</html>
|
3277
svelte-helper/public/e/embed-rollup.js
Normal file
3277
svelte-helper/public/e/embed-rollup.js
Normal file
File diff suppressed because it is too large
Load Diff
3457
svelte-helper/public/embed-rollup.js
Normal file
3457
svelte-helper/public/embed-rollup.js
Normal file
File diff suppressed because it is too large
Load Diff
21
svelte-helper/public/example.json
Normal file
21
svelte-helper/public/example.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"LeftDirectory": "D:/Tmp/phares/VisualStudioCodeLeft",
|
||||
"RightDirectory": "D:/Tmp/phares/VisualStudioCode",
|
||||
"Records": [
|
||||
{
|
||||
"RelativePath": "D:/Tmp/phares/VisualStudioCode",
|
||||
"Size": 0,
|
||||
"Ticks": 0
|
||||
},
|
||||
{
|
||||
"RelativePath": "z-exclude-patterns.nsv",
|
||||
"Size": 230,
|
||||
"Ticks": 638843891271017574
|
||||
},
|
||||
{
|
||||
"RelativePath": "z-include-patterns.nsv",
|
||||
"Size": 4,
|
||||
"Ticks": 638796666663591762
|
||||
}
|
||||
]
|
||||
}
|
1
svelte-helper/public/vite.svg
Normal file
1
svelte-helper/public/vite.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
21
svelte-helper/rollup.config.js
Normal file
21
svelte-helper/rollup.config.js
Normal file
@ -0,0 +1,21 @@
|
||||
import svelte from 'rollup-plugin-svelte';
|
||||
import postcss from 'rollup-plugin-postcss';
|
||||
import resolve from '@rollup/plugin-node-resolve';
|
||||
|
||||
export default {
|
||||
input: 'src/lib/embed.js',
|
||||
output: {
|
||||
format: 'iife',
|
||||
file: '.dist/embed-rollup.js',
|
||||
sourcemap: false,
|
||||
name: 'MyBundle',
|
||||
},
|
||||
plugins: [
|
||||
svelte({ emitCss: false }),
|
||||
postcss({
|
||||
extract: 'global.css',
|
||||
minimize: false,
|
||||
}),
|
||||
resolve({ browser: true, dedupe: ['svelte'] }),
|
||||
],
|
||||
};
|
33
svelte-helper/src/App.svelte
Normal file
33
svelte-helper/src/App.svelte
Normal file
@ -0,0 +1,33 @@
|
||||
<script>
|
||||
import Counter from "./lib/Counter.svelte";
|
||||
import Review from "./lib/Review.svelte";
|
||||
</script>
|
||||
|
||||
<main>
|
||||
<div></div>
|
||||
<h1>Vite + Svelte</h1>
|
||||
|
||||
<div class="card">
|
||||
<Counter />
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<Review />
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Check out <a
|
||||
href="https://github.com/sveltejs/kit#readme"
|
||||
target="_blank"
|
||||
rel="noreferrer">SvelteKit</a
|
||||
>, the official Svelte app framework powered by Vite!
|
||||
</p>
|
||||
|
||||
<p class="read-the-docs">Click on the Vite and Svelte logos to learn more</p>
|
||||
</main>
|
||||
|
||||
<style>
|
||||
.read-the-docs {
|
||||
color: #888;
|
||||
}
|
||||
</style>
|
84
svelte-helper/src/app.css
Normal file
84
svelte-helper/src/app.css
Normal file
@ -0,0 +1,84 @@
|
||||
:root {
|
||||
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.5;
|
||||
font-weight: 400;
|
||||
|
||||
color-scheme: light dark;
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
background-color: #242424;
|
||||
|
||||
font-synthesis: none;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: 500;
|
||||
color: #646cff;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #535bf2;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
place-items: center;
|
||||
min-width: 320px;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3.2em;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
#app {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 8px;
|
||||
border: 1px solid transparent;
|
||||
padding: 0.6em 1.2em;
|
||||
font-size: 1em;
|
||||
font-weight: 500;
|
||||
font-family: inherit;
|
||||
background-color: #1a1a1a;
|
||||
cursor: pointer;
|
||||
transition: border-color 0.25s;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
border-color: #646cff;
|
||||
}
|
||||
|
||||
button:focus,
|
||||
button:focus-visible {
|
||||
outline: 4px auto -webkit-focus-ring-color;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
:root {
|
||||
color: #213547;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #747bff;
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
}
|
18
svelte-helper/src/lib/AreEqual.svelte
Normal file
18
svelte-helper/src/lib/AreEqual.svelte
Normal file
@ -0,0 +1,18 @@
|
||||
<script>
|
||||
import Left from './Left.svelte';
|
||||
import Right from './Right.svelte';
|
||||
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>AreEqual data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>AreEqual data is empty</p>
|
||||
{:else}
|
||||
{#each data as segment}
|
||||
AreEqual:
|
||||
<Left data={segment.Left} />
|
||||
<Right data={segment.Right} />
|
||||
{/each}
|
||||
{/if}
|
10
svelte-helper/src/lib/Counter.svelte
Normal file
10
svelte-helper/src/lib/Counter.svelte
Normal file
@ -0,0 +1,10 @@
|
||||
<script>
|
||||
let count = $state(0);
|
||||
const increment = () => {
|
||||
count += 1;
|
||||
};
|
||||
</script>
|
||||
|
||||
<button onclick={increment}>
|
||||
count is {count}
|
||||
</button>
|
9
svelte-helper/src/lib/Left.svelte
Normal file
9
svelte-helper/src/lib/Left.svelte
Normal file
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>Left data is null</p>
|
||||
{:else}
|
||||
<li>Left: {data.RelativePath} - {data.Size} - {data.Ticks}</li>
|
||||
{/if}
|
18
svelte-helper/src/lib/LeftSideIsNewer.svelte
Normal file
18
svelte-helper/src/lib/LeftSideIsNewer.svelte
Normal file
@ -0,0 +1,18 @@
|
||||
<script>
|
||||
import Left from './Left.svelte';
|
||||
import Right from './Right.svelte';
|
||||
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>LeftSideIsNewer data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>LeftSideIsNewer data is empty</p>
|
||||
{:else}
|
||||
{#each data as segment}
|
||||
LeftSideIsNewer:
|
||||
<Left data={segment.Left} />
|
||||
<Right data={segment.Right} />
|
||||
{/each}
|
||||
{/if}
|
18
svelte-helper/src/lib/LeftSideOnly.svelte
Normal file
18
svelte-helper/src/lib/LeftSideOnly.svelte
Normal file
@ -0,0 +1,18 @@
|
||||
<script>
|
||||
import Left from './Left.svelte';
|
||||
import Right from './Right.svelte';
|
||||
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>LeftSideOnly data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>LeftSideOnly data is empty</p>
|
||||
{:else}
|
||||
{#each data as segment}
|
||||
LeftSideOnly:
|
||||
<Left data={segment.Left} />
|
||||
<Right data={segment.Right} />
|
||||
{/each}
|
||||
{/if}
|
18
svelte-helper/src/lib/NotEqualBut.svelte
Normal file
18
svelte-helper/src/lib/NotEqualBut.svelte
Normal file
@ -0,0 +1,18 @@
|
||||
<script>
|
||||
import Left from './Left.svelte';
|
||||
import Right from './Right.svelte';
|
||||
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>NotEqualBut data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>NotEqualBut data is empty</p>
|
||||
{:else}
|
||||
{#each data as segment}
|
||||
NotEqualBut:
|
||||
<Left data={segment.Left} />
|
||||
<Right data={segment.Right} />
|
||||
{/each}
|
||||
{/if}
|
14
svelte-helper/src/lib/Records.svelte
Normal file
14
svelte-helper/src/lib/Records.svelte
Normal file
@ -0,0 +1,14 @@
|
||||
<script>
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>Records data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>Records data is empty</p>
|
||||
{:else}
|
||||
Records:
|
||||
{#each data as record}
|
||||
<li>{record.Left.Records}</li>
|
||||
{/each}
|
||||
{/if}
|
41
svelte-helper/src/lib/Review.svelte
Normal file
41
svelte-helper/src/lib/Review.svelte
Normal file
@ -0,0 +1,41 @@
|
||||
<script>
|
||||
import AreEqual from './AreEqual.svelte';
|
||||
import LeftSideIsNewer from './LeftSideIsNewer.svelte';
|
||||
import LeftSideOnly from './LeftSideOnly.svelte';
|
||||
import NotEqualBut from './NotEqualBut.svelte';
|
||||
import Records from './Records.svelte';
|
||||
import RightSideIsNewer from './RightSideIsNewer.svelte';
|
||||
import RightSideOnly from './RightSideOnly.svelte';
|
||||
|
||||
export let page; // from props
|
||||
export let json; // from props
|
||||
export let baseUrl; // from props
|
||||
|
||||
let promise = fetch(baseUrl + page, {
|
||||
method: 'POST',
|
||||
body: json,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
}).then((x) => x.json());
|
||||
</script>
|
||||
|
||||
{#await promise}
|
||||
<!-- optionally show something while promise is pending -->
|
||||
<span>waiting</span>
|
||||
{:then data}
|
||||
<!-- promise was fulfilled -->
|
||||
{#if !data}
|
||||
<p>Review data is null</p>
|
||||
{:else}
|
||||
<p>Review:</p>
|
||||
<AreEqual data={data.AreEqual} />
|
||||
<LeftSideIsNewer data={data.LeftSideIsNewer} />
|
||||
<LeftSideOnly data={data.LeftSideOnly} />
|
||||
<NotEqualBut data={data.NotEqualBut} />
|
||||
<Records data={data.Records} />
|
||||
<RightSideIsNewer data={data.RightSideIsNewer} />
|
||||
<RightSideOnly data={data.RightSideOnly} />
|
||||
{/if}
|
||||
{:catch error}
|
||||
<span>{error}</span>
|
||||
<!-- optionally show something while promise was rejected -->
|
||||
{/await}
|
9
svelte-helper/src/lib/Right.svelte
Normal file
9
svelte-helper/src/lib/Right.svelte
Normal file
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>Right data is null</p>
|
||||
{:else}
|
||||
<li>Right: {data.RelativePath} - {data.Size} - {data.Ticks}</li>
|
||||
{/if}
|
18
svelte-helper/src/lib/RightSideIsNewer.svelte
Normal file
18
svelte-helper/src/lib/RightSideIsNewer.svelte
Normal file
@ -0,0 +1,18 @@
|
||||
<script>
|
||||
import Left from './Left.svelte';
|
||||
import Right from './Right.svelte';
|
||||
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>RightSideIsNewer data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>RightSideIsNewer data is empty</p>
|
||||
{:else}
|
||||
{#each data as segment}
|
||||
RightSideIsNewer:
|
||||
<Left data={segment.Left} />
|
||||
<Right data={segment.Right} />
|
||||
{/each}
|
||||
{/if}
|
18
svelte-helper/src/lib/RightSideOnly.svelte
Normal file
18
svelte-helper/src/lib/RightSideOnly.svelte
Normal file
@ -0,0 +1,18 @@
|
||||
<script>
|
||||
import Left from './Left.svelte';
|
||||
import Right from './Right.svelte';
|
||||
|
||||
export let data; // from props
|
||||
</script>
|
||||
|
||||
{#if !data}
|
||||
<p>RightSideOnly data is null</p>
|
||||
{:else if data.length === 0}
|
||||
<p>RightSideOnly data is empty</p>
|
||||
{:else}
|
||||
{#each data as segment}
|
||||
RightSideOnly:
|
||||
<Left data={segment.Left} />
|
||||
<Right data={segment.Right} />
|
||||
{/each}
|
||||
{/if}
|
37
svelte-helper/src/lib/embed.js
Normal file
37
svelte-helper/src/lib/embed.js
Normal file
@ -0,0 +1,37 @@
|
||||
import Review from './Review.svelte';
|
||||
|
||||
var div = document.createElement('DIV');
|
||||
var script = document.currentScript;
|
||||
script.parentNode.insertBefore(div, script);
|
||||
|
||||
const page = '/api/SyncV1/?';
|
||||
const baseUrl = 'http://localhost:5004';
|
||||
|
||||
const json = `
|
||||
{
|
||||
"LeftDirectory": "D:/Tmp/phares/VisualStudioCodeLeft",
|
||||
"RightDirectory": "D:/Tmp/phares/VisualStudioCode",
|
||||
"Records": [
|
||||
{
|
||||
"RelativePath": "D:/Tmp/phares/VisualStudioCode",
|
||||
"Size": 0,
|
||||
"Ticks": 0
|
||||
},
|
||||
{
|
||||
"RelativePath": "z-exclude-patterns.nsv",
|
||||
"Size": 230,
|
||||
"Ticks": 638843891271017574
|
||||
},
|
||||
{
|
||||
"RelativePath": "z-include-patterns.nsv",
|
||||
"Size": 4,
|
||||
"Ticks": 638796666663591762
|
||||
}
|
||||
]
|
||||
}
|
||||
`;
|
||||
|
||||
const embed = new Review({
|
||||
target: div,
|
||||
props: { page: page, baseUrl: baseUrl, json: json },
|
||||
});
|
101
svelte-helper/src/lib/x.js
Normal file
101
svelte-helper/src/lib/x.js
Normal file
@ -0,0 +1,101 @@
|
||||
const exampleData = `
|
||||
{
|
||||
"RightDirectory": "D:/Tmp/phares/VisualStudioCode",
|
||||
"Helper": "Day-Helper-2025-05-19",
|
||||
"LeftDirectory": "D:/Tmp/phares/VisualStudioCodeLeft",
|
||||
"IncludePatternsFile": "z-include-patterns.nsv",
|
||||
"ExcludePatternsFile": "z-exclude-patterns.nsv",
|
||||
"BaseAddresses": [
|
||||
"http://localhost:5004"
|
||||
],
|
||||
"Page": "/api/SyncV1/?",
|
||||
"LessThan": ",L",
|
||||
"GreaterThan": ".G",
|
||||
"Segments": [
|
||||
"+",
|
||||
"G",
|
||||
"",
|
||||
"L",
|
||||
"+",
|
||||
"Custom-Default"
|
||||
],
|
||||
"Empty": "",
|
||||
"Mirror": "+~G~~G~-~Mirror",
|
||||
"Update": "+~G~~~~Update",
|
||||
"Custom-Default": "+~G~~L~+~Custom-Default",
|
||||
"Custom-A": "-~G~~G~+~Custom-A",
|
||||
"Custom-B": "-~L~~L~+~Custom-B",
|
||||
"Custom-C": "+~L~~L~-~Custom-C"
|
||||
}
|
||||
`;
|
||||
|
||||
window.addEventListener('message', event => { onDidReceiveMessage(event); });
|
||||
|
||||
function onDidReceiveMessage(event) {
|
||||
const message = event.data;
|
||||
console.info(message);
|
||||
const headerGrid = document.getElementById('HeaderGrid');
|
||||
const allTextarea = document.getElementById('AllTextarea');
|
||||
if (!headerGrid || !allTextarea) {
|
||||
console.warn('Could not select html element(s)!');
|
||||
}
|
||||
else {
|
||||
allTextarea.value = '';
|
||||
headerGrid.innerHTML = '';
|
||||
if (message.command && message.command === 'post') {
|
||||
post(allTextarea, headerGrid, event.data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function post(allTextarea, headerGrid, data) {
|
||||
$.post(data.input.BaseAddresses[0] + data.input.Page, data.relativePath)
|
||||
.done(function (reply) {
|
||||
loadPage(allTextarea, headerGrid, data.input, data.relativePath, reply);
|
||||
})
|
||||
.fail(function (_, textStatus, __) {
|
||||
console.warn(textStatus);
|
||||
});
|
||||
}
|
||||
|
||||
function loadPage(allTextarea, headerGrid, input, relativePath, reply) {
|
||||
console.log('Input value of ' + input);
|
||||
console.log('RelativePath value of ' + relativePath);
|
||||
console.log('Posted value of ' + reply);
|
||||
if (!reply || !reply.RightSideIsNewer) {
|
||||
console.warn('Data retrieved is not valid!');
|
||||
}
|
||||
else {
|
||||
let record;
|
||||
let line = '';
|
||||
let text = 'RelativePath\tSize\tTicks\r\n';
|
||||
let html = '<tr><th>RelativePath</th><th>Size</th><th>Ticks</th></tr>';
|
||||
for (let i = 0; i < reply.RightSideIsNewer.length; i++) {
|
||||
record = reply.RightSideIsNewer[i];
|
||||
text += record.Left.RelativePath + '\t' +
|
||||
record.Left.Size + '\t' +
|
||||
record.Left.Ticks + '\r\n';
|
||||
line = '<tr id="tr' + record.Left.Ticks + '-' + record.Left.Size + '"><td>' +
|
||||
record.Left.RelativePath + '</td><td>' +
|
||||
record.Left.Size + "</td><td>" +
|
||||
record.Left.Ticks +
|
||||
'</td></tr>';
|
||||
html += line;
|
||||
}
|
||||
headerGrid.innerHTML = html.replaceAll('>null<', '> <');
|
||||
allTextarea.value = text.replaceAll('null', '').replaceAll(' ', '');
|
||||
}
|
||||
}
|
||||
|
||||
function getRelativePathAndPost() {
|
||||
if (!acquiredVsCodeApi || typeof acquiredVsCodeApi.postMessage !== 'function') {
|
||||
console.warn('VSCode function is not available!');
|
||||
}
|
||||
else {
|
||||
acquiredVsCodeApi.postMessage({ command: 'File-Folder-Helper.exe', subcommand: 'post', value: null, collection: [] });
|
||||
}
|
||||
}
|
||||
|
||||
if (!exampleData) {
|
||||
getRelativePathAndPost();
|
||||
}
|
9
svelte-helper/src/main.js
Normal file
9
svelte-helper/src/main.js
Normal file
@ -0,0 +1,9 @@
|
||||
import { mount } from 'svelte'
|
||||
import './app.css'
|
||||
import App from './App.svelte'
|
||||
|
||||
const app = mount(App, {
|
||||
target: document.getElementById('app'),
|
||||
})
|
||||
|
||||
export default app
|
2
svelte-helper/src/vite-env.d.ts
vendored
Normal file
2
svelte-helper/src/vite-env.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/// <reference types="svelte" />
|
||||
/// <reference types="vite/client" />
|
7
svelte-helper/svelte.config.js
Normal file
7
svelte-helper/svelte.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
||||
|
||||
export default {
|
||||
// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
|
||||
// for more information about preprocessors
|
||||
preprocess: vitePreprocess(),
|
||||
}
|
7
svelte-helper/vite.config.js
Normal file
7
svelte-helper/vite.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import { svelte } from '@sveltejs/vite-plugin-svelte'
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [svelte()],
|
||||
})
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
type-script-helper-1.6.1.vsix
Normal file
BIN
type-script-helper-1.6.1.vsix
Normal file
Binary file not shown.
9
type-script-helper/.gitignore
vendored
9
type-script-helper/.gitignore
vendored
@ -1,5 +1,8 @@
|
||||
out
|
||||
.vscode-test/
|
||||
.vscode/helper/**
|
||||
*.vsix
|
||||
dist
|
||||
node_modules
|
||||
.vscode-test/
|
||||
*.vsix
|
||||
out
|
||||
src/*.js*
|
||||
!src/embed.js
|
53
type-script-helper/.vscode/launch.json
vendored
53
type-script-helper/.vscode/launch.json
vendored
@ -3,33 +3,28 @@
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Run Extension",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "${defaultBuildTask}"
|
||||
},
|
||||
{
|
||||
"name": "Extension Tests",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
|
||||
],
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js",
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "tasks: watch-tests"
|
||||
}
|
||||
]
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Run Extension",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"preLaunchTask": "npm: webpack",
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||
],
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/dist/**/*.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Program",
|
||||
"program": "${workspaceFolder}/src/extension.ts",
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
11
type-script-helper/.vscode/mklink.md
vendored
Normal file
11
type-script-helper/.vscode/mklink.md
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
type: "note"
|
||||
created: "2023-10-20T03:53:13.742Z"
|
||||
updated: "2023-10-20T04:00:37.259Z"
|
||||
---
|
||||
|
||||
# mklink
|
||||
|
||||
```bash
|
||||
mklink /J "L:\Git\YO-VSCode\type-script-helper\net8.0\win-x64\publish" "L:\DevOps\Mesa_FI\File-Folder-Helper\bin\Release\net8.0\win-x64\publish"
|
||||
```
|
38
type-script-helper/.vscode/settings.json
vendored
38
type-script-helper/.vscode/settings.json
vendored
@ -1,13 +1,29 @@
|
||||
// Place your settings in this file to overwrite default and user settings.
|
||||
{
|
||||
"files.exclude": {
|
||||
"out": false, // set this to true to hide the "out" folder with the compiled JS files
|
||||
"dist": false // set this to true to hide the "dist" folder with the compiled JS files
|
||||
},
|
||||
"search.exclude": {
|
||||
"out": true, // set this to false to include "out" folder in search results
|
||||
"dist": true // set this to false to include "dist" folder in search results
|
||||
},
|
||||
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
|
||||
"typescript.tsc.autoDetect": "off"
|
||||
"[markdown]": {
|
||||
"editor.wordWrap": "off"
|
||||
},
|
||||
"cSpell.words": [
|
||||
"Infineon",
|
||||
"initialise",
|
||||
"Kanban",
|
||||
"Phares",
|
||||
"signalr",
|
||||
"VSIX",
|
||||
"Weightest",
|
||||
"WSJF"
|
||||
],
|
||||
"files.eol": "\n",
|
||||
"files.exclude": {
|
||||
"**/dist": false,
|
||||
"**/node_modules": true,
|
||||
"**/out": false
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
"**/node_modules": true
|
||||
},
|
||||
"explorer.sortOrder": "default",
|
||||
"search.exclude": {
|
||||
"**/dist": true,
|
||||
"**/out": true
|
||||
}
|
||||
}
|
106
type-script-helper/.vscode/tasks.json
vendored
106
type-script-helper/.vscode/tasks.json
vendored
@ -1,40 +1,70 @@
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "watch",
|
||||
"problemMatcher": "$ts-webpack-watch",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"reveal": "never",
|
||||
"group": "watchers"
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "watch-tests",
|
||||
"problemMatcher": "$tsc-watch",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"reveal": "never",
|
||||
"group": "watchers"
|
||||
},
|
||||
"group": "build"
|
||||
},
|
||||
{
|
||||
"label": "tasks: watch-tests",
|
||||
"dependsOn": [
|
||||
"npm: watch",
|
||||
"npm: watch-tests"
|
||||
],
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
"tasks": [
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "tsc-build",
|
||||
"group": "build",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: tsc-build",
|
||||
"detail": "tsc"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "tsc-clean",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: tsc-clean",
|
||||
"detail": "tsc --build --clean"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "vscode:package",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: vscode:package",
|
||||
"detail": "node node_modules/@vscode/vsce/vsce package"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "vscode:login",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: vscode:login",
|
||||
"detail": "node node_modules/@vscode/vsce/vsce login Infineon-Technologies-AG-Mesa-FI"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "vscode:ls-publishers",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: vscode:ls-publishers",
|
||||
"detail": "node node_modules/@vscode/vsce/vsce ls-publishers"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "vscode:publish",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: vscode:publish",
|
||||
"detail": "node node_modules/@vscode/vsce/vsce publish"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "watch",
|
||||
"group": "build",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: watch",
|
||||
"detail": "concurrently \"rollup -c -w\" \"webpack --watch --config ./build/node-extension.webpack.config.js\""
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "webpack",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: webpack",
|
||||
"detail": "webpack --config ./build/node-extension.webpack.config.js"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "svelte-build",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: svelte-build",
|
||||
"detail": "rollup -c"
|
||||
}
|
||||
],
|
||||
"version": "2.0.0"
|
||||
}
|
@ -1,13 +1,14 @@
|
||||
.vscode/**
|
||||
.vscode-test/**
|
||||
out/**
|
||||
node_modules/**
|
||||
src/**
|
||||
.gitignore
|
||||
.vscode-test/**
|
||||
.vscode/**
|
||||
.yarnrc
|
||||
webpack.config.js
|
||||
vsc-extension-quickstart.md
|
||||
**/tsconfig.json
|
||||
**/.eslintrc.json
|
||||
**/*.map
|
||||
**/*.ts
|
||||
**/tsconfig.json
|
||||
build/**
|
||||
node_modules/**
|
||||
src/**
|
||||
webviews/**
|
||||
vsc-extension-quickstart.md
|
||||
webpack.config.js
|
||||
|
@ -1,9 +0,0 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to the "type-script-helper" extension will be documented in this file.
|
||||
|
||||
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
- Initial release
|
@ -1,3 +1,11 @@
|
||||
---
|
||||
type: "note"
|
||||
created: "2022-03-10T21:18:17.054Z"
|
||||
updated: "2022-03-10T21:18:17.054Z"
|
||||
---
|
||||
|
||||
# LICENSE
|
||||
|
||||
Copyright (c) Twitter Inc
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
@ -1,3 +1,9 @@
|
||||
---
|
||||
type: "read-me"
|
||||
created: "2023-09-30T01:47:18.241Z"
|
||||
updated: "2023-09-30T01:47:18.242Z"
|
||||
---
|
||||
|
||||
# type-script-helper README
|
||||
|
||||
## Features
|
||||
@ -16,10 +22,10 @@ yo code
|
||||
# ? What's the name of your extension? HelloWorld
|
||||
### Press <Enter> to choose default for all options below ###
|
||||
|
||||
# ? What's the identifier of your extension? helloworld
|
||||
# ? What's the identifier of your extension? hello-world
|
||||
# ? What's the description of your extension? LEAVE BLANK
|
||||
# ? Initialize a git repository? Yes
|
||||
# ? Bundle the source code with webpack? No
|
||||
# ? Bundle the source code with webpack? No (should be yes?)
|
||||
# ? Which package manager to use? npm
|
||||
|
||||
# ? Do you want to open the new folder with Visual Studio Code? Open with `code`
|
||||
@ -104,3 +110,155 @@ None
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Transform to Param Case
|
||||
|
||||
## 1.5.1
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- columns-to-cards-webview-view-provider
|
||||
- file-folder-helper-exe
|
||||
- clickable list
|
||||
|
||||
## 1.5.2
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- file-folder-helper-exe net8.0
|
||||
|
||||
## 1.5.3
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Updated File-Folder-Helper ccea8de8cf49343dd4190a77ac755d233bb4e528
|
||||
|
||||
## 1.6.0
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Updated File-Folder-Helper 4e3f06bb44b7e85ba40a5e589e6ca871cbdbfb3e
|
||||
|
||||
## 1.6.1
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Updated File-Folder-Helper 299aa19d538bcfd5e06e4743a5a05f6d62960a80
|
||||
- code --install-extension D:\Tmp\phares\type-script-helper-1.6.1.vsix
|
||||
- code-insiders --install-extension D:\Tmp\phares\type-script-helper-1.6.1.vsix
|
||||
|
||||
## 1.6.2
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Updated File-Folder-Helper 47e6b85c218f994216fb35d44906850a790c36d0
|
||||
- Open with Text Editor Kanban
|
||||
|
||||
## 1.6.4 Fri Aug 02 2024 13:07:24 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Wrap directory in quotes
|
||||
|
||||
## 1.7.0 Fri Aug 30 2024 11:13:09 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Copy Syntax In Light Theme
|
||||
- [Copy-Syntax-in-Light](https://github.com/Ahmed-Adel-Morsi/Copy-Syntax-in-Light)
|
||||
|
||||
## 1.8.0 Wed Nov 06 2024 06:03:59 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Change insert date to include epoch seconds and ticks *
|
||||
|
||||
## 1.9.0 1735586943373 = 638711837433730000 = Mon Dec 30 2024 12:29:02 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Insert All Extensions (Not Disabled)
|
||||
|
||||
## 1.110.0 1735689397890 = 638712861978900000 = Tue Dec 31 2024 16:56:37 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Open Sub-Kanban in New Window
|
||||
|
||||
## 1.111.0 1736196204601 = 638717930046010000 = 2025-0.Winter = Mon Jan 06 2025 13:43:24 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Added season to insert date
|
||||
- Removed
|
||||
- kanban.refreshBoth
|
||||
- kanban.refreshSidebar
|
||||
- kanban.refreshWebview
|
||||
- kanban.debugReload
|
||||
- columns-to-cards-webview-view-provider-view
|
||||
|
||||
- Open Sub-Kanban in New Window
|
||||
|
||||
## 1.111.1 1738206291411 = 638738030914110000 = 2025-0.Winter = Wed Jan 29 2025 20:04:50 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Changed trigger for code-insiders
|
||||
|
||||
## 1.112.0 1738349146299 = 638739459462990000 = 2025-0.Winter = Fri Jan 31 2025 11:45:45 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Added Cost of Delay (CoD)
|
||||
|
||||
## 1.113.0 1739287994496 = 638748847944960000 = 2025-0.Winter = Tue Feb 11 2025 08:33:14 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Add Code Insiders lines when not present
|
||||
|
||||
## 1.114.0 1739295723637 = 638748925236370000 = 2025-0.Winter = Tue Feb 11 2025 10:42:03 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- infineon-mes-mike-phares
|
||||
|
||||
## 1.115.0 1739295727065 = 638748925270650000 = 2025-0.Winter = Tue Feb 11 2025 10:42:06 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Infineon-Technologies-AG-Mesa-FI
|
||||
|
||||
## 1.116.0 1740441381597 = 638760381815970000 = 2025-0.Winter = Mon Feb 24 2025 16:56:21 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Calculator
|
||||
- Explorer Sort Order
|
||||
|
||||
## 1.117.0 1740671831803 = 638762686318030000 = 2025-0.Winter = Thu Feb 27 2025 08:57:11 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Close active after opening Sub-Kanban when directory found
|
||||
|
||||
## 1.118.0 1741303103654 = 638768999036540000 = 2025-0.Winter = Thu Mar 06 2025 16:18:23 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Add search page for Backlog
|
||||
|
||||
## 1.119.0 1744337196592 = 638799339965920000 = 2025-1.Spring = Thu Apr 10 2025 19:06:36 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Changed ADO Priority servers
|
||||
|
||||
## 1.120.0 1744401374311 = 638799981743110000 = 2025-1.Spring = Fri Apr 11 2025 12:56:13 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Sidebar button for view command pallette images
|
||||
|
||||
## 1.121.0 1744403802837 = 638800006028370000 = 2025-1.Spring = Fri Apr 11 2025 13:36:42 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Extension logo
|
||||
|
||||
## 1.122.0 1744403802837 = 638800006028370000 = 2025-1.Spring = Fri Apr 11 2025 13:36:42 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Extension to javascript communication
|
||||
- cod-1-122-0.js
|
||||
|
||||
## 1.123.0 1745545527205 = 638811423272050000 = 2025-1.Spring = Thu Apr 24 2025 18:45:26 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Enable find within Cost of Delay (CoD)
|
||||
|
||||
## 1.123.1 1746135167656 = 638817319676560000 = 2025-1.Spring = Thu May 01 2025 14:32:47 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Spelling fixes
|
||||
|
||||
## 1.124.0 1748725130788 = 638843219307880000 = 2025-2.Spring = Sat May 31 2025 13:58:50 GMT-0700 (Mountain Standard Time)
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Bun support
|
||||
- FileSync
|
||||
|
@ -4,24 +4,21 @@
|
||||
|
||||
const path = require('path');
|
||||
|
||||
//@ts-check
|
||||
/** @typedef {import('webpack').Configuration} WebpackConfig **/
|
||||
|
||||
/** @type WebpackConfig */
|
||||
const extensionConfig = {
|
||||
target: 'node', // VS Code extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
|
||||
/**@type {import('webpack').Configuration}*/
|
||||
const config = {
|
||||
target: 'node', // vscode extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
|
||||
mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
|
||||
|
||||
entry: './src/extension.ts', // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/
|
||||
output: {
|
||||
// the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
path: path.resolve(__dirname, '..', 'dist'),
|
||||
filename: 'extension.js',
|
||||
libraryTarget: 'commonjs2'
|
||||
},
|
||||
devtool: 'nosources-source-map',
|
||||
externals: {
|
||||
vscode: 'commonjs vscode' // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/
|
||||
// modules added here also need to be added in the .vscodeignore file
|
||||
},
|
||||
resolve: {
|
||||
// support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader
|
||||
@ -39,10 +36,6 @@ const extensionConfig = {
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
devtool: 'nosources-source-map',
|
||||
infrastructureLogging: {
|
||||
level: "log", // enables logging required for problem matchers
|
||||
},
|
||||
}
|
||||
};
|
||||
module.exports = [ extensionConfig ];
|
||||
module.exports = config;
|
1444
type-script-helper/bun.lock
Normal file
1444
type-script-helper/bun.lock
Normal file
File diff suppressed because it is too large
Load Diff
BIN
type-script-helper/media/LOGO_RGB.png
Normal file
BIN
type-script-helper/media/LOGO_RGB.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
BIN
type-script-helper/media/Screenshot 2025-04-11 125031.png
Normal file
BIN
type-script-helper/media/Screenshot 2025-04-11 125031.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
BIN
type-script-helper/media/Screenshot 2025-04-11 125350.png
Normal file
BIN
type-script-helper/media/Screenshot 2025-04-11 125350.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
20
type-script-helper/media/bootstrap.min.css
vendored
Normal file
20
type-script-helper/media/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
type-script-helper/media/checklist.svg
Normal file
1
type-script-helper/media/checklist.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.75 4.48h-.71L2 3.43l.71-.7.69.68L4.81 2l.71.71-1.77 1.77zM6.99 3h8v1h-8V3zm0 3h8v1h-8V6zm8 3h-8v1h8V9zm-8 3h8v1h-8v-1zM3.04 7.48h.71l1.77-1.77-.71-.7L3.4 6.42l-.69-.69-.71.71 1.04 1.04zm.71 3.01h-.71L2 9.45l.71-.71.69.69 1.41-1.42.71.71-1.77 1.77zm-.71 3.01h.71l1.77-1.77-.71-.71-1.41 1.42-.69-.69-.71.7 1.04 1.05z"/></svg>
|
After Width: | Height: | Size: 479 B |
37
type-script-helper/media/cod.css
Normal file
37
type-script-helper/media/cod.css
Normal file
@ -0,0 +1,37 @@
|
||||
#HeaderGridDiv,
|
||||
#DetailsGridDiv {
|
||||
font-size: 12px;
|
||||
min-width: 1200px;
|
||||
max-width: 1200px;
|
||||
}
|
||||
|
||||
#HeaderGrid {
|
||||
font-family: monospace;
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
#HeaderGrid tr td {
|
||||
max-width: 200px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#AllGrid {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
min-width: 1200px;
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
|
||||
tr:nth-of-type(odd) {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#AllTextarea {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
#th-span {
|
||||
margin-right: 500px;
|
||||
}
|
51
type-script-helper/media/cost-of-delay.js
Normal file
51
type-script-helper/media/cost-of-delay.js
Normal file
@ -0,0 +1,51 @@
|
||||
$(document).ready(function () {
|
||||
const fromHtml = true;
|
||||
const username = _webviewUsername;
|
||||
const machineId = _webviewMachineId;
|
||||
const baseUri = 'https://eaf-dev.mes.infineon.com';
|
||||
const apiUrl = 'https://eaf-dev.mes.infineon.com/api/v1/ado/';
|
||||
const windowLocationHRef = window.location.href + '?site=' + _webviewSite + 'view=' + _webviewView;
|
||||
const signalRUrl = baseUri + '/signalr';
|
||||
const workItems = {
|
||||
a: baseUri + '/markdown/bugs-features-with-parents.json?v=2025-04-10-15-59',
|
||||
b: baseUri + '/markdown/{[]}.json?v=2025-04-10-15-59',
|
||||
timeout: 3000,
|
||||
};
|
||||
const b = {
|
||||
page: 'business',
|
||||
description: 'Value',
|
||||
th: 'Business Value',
|
||||
span: 'What is the relative value to the Customer or business?<br>• Do our users prefer this over that?<br>• What is the revenue impact on our business?<br>• Is there a potential penalty or other negative effects if we delay?'
|
||||
};
|
||||
const r = {
|
||||
page: 'risk',
|
||||
description: 'Risk',
|
||||
th: 'Risk Reduction and/or Opportunity Enablement',
|
||||
span: 'What else does this do for our business?<br>• Reduce the risk of this or future delivery?<br>• Is there value in the information we will receive?<br>• Enable new business opportunities?'
|
||||
};
|
||||
const t = {
|
||||
page: 'time',
|
||||
description: 'Critical',
|
||||
th: 'Time Criticality',
|
||||
span: 'How does user/business value decay over time?<br>• Is there a fixed deadline?<br>• Will they wait for us or move to another Solution?<br>• What is the current effect on Customer satisfaction?'
|
||||
};
|
||||
const c = {
|
||||
page: 'cod',
|
||||
description: 'CoD',
|
||||
th: 'Cost of Delay (CoD)',
|
||||
span: "Cost of Delay (CoD) is the money lost by delaying or not doing a job for a specific time. It's a measure of the economic value of a job over time."
|
||||
};
|
||||
const e = {
|
||||
page: 'effort',
|
||||
description: 'Effort',
|
||||
th: 'Effort',
|
||||
span: 'Effort'
|
||||
};
|
||||
const w = {
|
||||
page: 'wsjf',
|
||||
description: 'WSJF',
|
||||
th: 'Weightest Shortest Job First calculation (WSJF)',
|
||||
span: 'Weightest Shortest Job First calculation (see @SCALE formula)'
|
||||
};
|
||||
initIndex(fromHtml, username, machineId, windowLocationHRef, workItems, b, r, t, c, e, w, apiUrl, signalRUrl);
|
||||
});
|
4
type-script-helper/media/jquery-1.6.4.min.js
vendored
Normal file
4
type-script-helper/media/jquery-1.6.4.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
9
type-script-helper/media/jquery.signalR-2.4.3.min.js
vendored
Normal file
9
type-script-helper/media/jquery.signalR-2.4.3.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
type-script-helper/media/lowres-LOGO_Black.png.png
Normal file
BIN
type-script-helper/media/lowres-LOGO_Black.png.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
7
type-script-helper/media/main.js
Normal file
7
type-script-helper/media/main.js
Normal file
@ -0,0 +1,7 @@
|
||||
// This script will be run within the webview itself
|
||||
// It cannot access the main VS Code APIs directly.
|
||||
(function () {
|
||||
const vscode = acquireVsCodeApi();
|
||||
|
||||
console.log("hello there from javascript");
|
||||
})();
|
30
type-script-helper/media/reset.css
Normal file
30
type-script-helper/media/reset.css
Normal file
@ -0,0 +1,30 @@
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p,
|
||||
ol,
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
91
type-script-helper/media/vscode.css
Normal file
91
type-script-helper/media/vscode.css
Normal file
@ -0,0 +1,91 @@
|
||||
:root {
|
||||
--container-paddding: 20px;
|
||||
--input-padding-vertical: 6px;
|
||||
--input-padding-horizontal: 4px;
|
||||
--input-margin-vertical: 4px;
|
||||
--input-margin-horizontal: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 0 var(--container-paddding);
|
||||
color: var(--vscode-foreground);
|
||||
font-size: var(--vscode-font-size);
|
||||
font-weight: var(--vscode-font-weight);
|
||||
font-family: var(--vscode-font-family);
|
||||
background-color: var(--vscode-editor-background);
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
padding-left: var(--container-paddding);
|
||||
}
|
||||
|
||||
body > *,
|
||||
form > * {
|
||||
margin-block-start: var(--input-margin-vertical);
|
||||
margin-block-end: var(--input-margin-vertical);
|
||||
}
|
||||
|
||||
*:focus {
|
||||
outline-color: var(--vscode-focusBorder) !important;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--vscode-textLink-foreground);
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:active {
|
||||
color: var(--vscode-textLink-activeForeground);
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: var(--vscode-editor-font-size);
|
||||
font-family: var(--vscode-editor-font-family);
|
||||
}
|
||||
|
||||
button {
|
||||
border: none;
|
||||
padding: var(--input-padding-vertical) var(--input-padding-horizontal);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
outline: 1px solid transparent;
|
||||
outline-offset: 2px !important;
|
||||
color: var(--vscode-button-foreground);
|
||||
background: var(--vscode-button-background);
|
||||
}
|
||||
|
||||
button:hover {
|
||||
cursor: pointer;
|
||||
background: var(--vscode-button-hoverBackground);
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline-color: var(--vscode-focusBorder);
|
||||
}
|
||||
|
||||
button.secondary {
|
||||
color: var(--vscode-button-secondaryForeground);
|
||||
background: var(--vscode-button-secondaryBackground);
|
||||
}
|
||||
|
||||
button.secondary:hover {
|
||||
background: var(--vscode-button-secondaryHoverBackground);
|
||||
}
|
||||
|
||||
input:not([type="checkbox"]),
|
||||
textarea {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border: none;
|
||||
font-family: var(--vscode-font-family);
|
||||
padding: var(--input-padding-vertical) var(--input-padding-horizontal);
|
||||
color: var(--vscode-input-foreground);
|
||||
outline-color: var(--vscode-input-border);
|
||||
background-color: var(--vscode-input-background);
|
||||
}
|
||||
|
||||
input::placeholder,
|
||||
textarea::placeholder {
|
||||
color: var(--vscode-input-placeholderForeground);
|
||||
}
|
7635
type-script-helper/package-lock.json
generated
7635
type-script-helper/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,158 +1,371 @@
|
||||
{
|
||||
"name": "type-script-helper",
|
||||
"displayName": "Type Script Helper",
|
||||
"description": "Helper for VS Code in TypeScript",
|
||||
"publisher": "IFX",
|
||||
"repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper",
|
||||
"version": "1.4.4",
|
||||
"engines": {
|
||||
"vscode": "^1.79.0"
|
||||
},
|
||||
"activationEvents": [
|
||||
"onLanguage:csharp",
|
||||
"onLanguage:markdown",
|
||||
"onLanguage:javascript",
|
||||
"onLanguage:json",
|
||||
"onLanguage:typescript",
|
||||
"onLanguage:yaml"
|
||||
],
|
||||
"categories": [
|
||||
"Other"
|
||||
],
|
||||
"activationEvents": [],
|
||||
"main": "./dist/extension.js",
|
||||
"contributes": {
|
||||
"commands": [
|
||||
{
|
||||
"category": "Calculate",
|
||||
"command": "extension.calcAppendWithCursor",
|
||||
"title": "Calculate and append in front of cursor"
|
||||
},
|
||||
{
|
||||
"category": "Calculate",
|
||||
"command": "extension.calcAppend",
|
||||
"title": "Calculate and append"
|
||||
},
|
||||
{
|
||||
"category": "Calculate",
|
||||
"command": "extension.calcReplaceWithCursor",
|
||||
"title": "Calculate and replace in front of cursor"
|
||||
},
|
||||
{
|
||||
"category": "Explorer",
|
||||
"command": "extension.rotateExplorerSortOrder",
|
||||
"title": "Rotate Explorer Sort Order"
|
||||
},
|
||||
{
|
||||
"category": "FileSync",
|
||||
"command": "webview.fileSync",
|
||||
"title": "FileSync"
|
||||
},
|
||||
{
|
||||
"category": "Calculate",
|
||||
"command": "extension.calcReplace",
|
||||
"title": "Calculate and replace"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "copyHelper.copySyntaxInLight",
|
||||
"title": "Copy Syntax In Light Theme"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "open-in-new-window.open",
|
||||
"title": "Open in New Window"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "promiseLinesHelper.codeGeneratorQuickPick",
|
||||
"title": "Code Generator - Quick Pick"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "promiseLinesHelper.insertDateTime",
|
||||
"title": "Insert DateTime"
|
||||
},
|
||||
{
|
||||
"command": "promiseLinesHelper.transformToPopperCase",
|
||||
"title": "Transform to Popper Case"
|
||||
"category": "Helper",
|
||||
"command": "promiseLinesHelper.insertAllExtensions",
|
||||
"title": "Insert All Extensions (Not Disabled)"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "promiseLinesHelper.transformToParamCase",
|
||||
"title": "Transform to Param Case"
|
||||
"title": "Transform to Param (Kebab) Case"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "promiseLinesHelper.transformToProperCase",
|
||||
"title": "Transform to Proper (Pascal) Case"
|
||||
},
|
||||
{
|
||||
"category": "Helper",
|
||||
"command": "readOnlyLinesHelper.searchGoogle",
|
||||
"title": "Search Google"
|
||||
},
|
||||
{
|
||||
"category": "Kanban",
|
||||
"command": "kanban.openInNewWindow",
|
||||
"title": "Open Sub-Kanban in New Window"
|
||||
},
|
||||
{
|
||||
"category": "Kanban",
|
||||
"command": "kanban.openWithTextEditor",
|
||||
"title": "Open with Text Editor Kanban"
|
||||
},
|
||||
{
|
||||
"category": "Leominster",
|
||||
"command": "webview.backlogLeominster",
|
||||
"title": "Backlog (Bugs & Features with parents)"
|
||||
},
|
||||
{
|
||||
"category": "Leominster",
|
||||
"command": "webview.costOfDelayLeominster",
|
||||
"title": "Cost of Delay (CoD)"
|
||||
},
|
||||
{
|
||||
"category": "Leominster",
|
||||
"command": "webview.costOfDelayLiveLeominster",
|
||||
"title": "Cost of Delay (CoD) - Live Update"
|
||||
},
|
||||
{
|
||||
"category": "Leominster",
|
||||
"command": "webview.costOfDelayEffortLeominster",
|
||||
"title": "Effort"
|
||||
},
|
||||
{
|
||||
"category": "Leominster",
|
||||
"command": "webview.costOfDelayWSJFLeominster",
|
||||
"title": "Weightest Shortest Job First calculation (WSJF)"
|
||||
},
|
||||
{
|
||||
"category": "Markdown",
|
||||
"command": "markdown.newMarkdownFile",
|
||||
"title": "New Markdown File"
|
||||
},
|
||||
{
|
||||
"category": "Mesa",
|
||||
"command": "webview.backlogMesa",
|
||||
"title": "Backlog (Bugs & Features with parents)"
|
||||
},
|
||||
{
|
||||
"category": "Mesa",
|
||||
"command": "webview.costOfDelayMesa",
|
||||
"title": "Cost of Delay (CoD)"
|
||||
},
|
||||
{
|
||||
"category": "Mesa",
|
||||
"command": "webview.costOfDelayLiveMesa",
|
||||
"title": "Cost of Delay (CoD) - Live Update"
|
||||
},
|
||||
{
|
||||
"category": "Mesa",
|
||||
"command": "webview.costOfDelayEffortMesa",
|
||||
"title": "Effort"
|
||||
},
|
||||
{
|
||||
"category": "Mesa",
|
||||
"command": "webview.costOfDelayWSJFMesa",
|
||||
"title": "Weightest Shortest Job First calculation (WSJF)"
|
||||
},
|
||||
{
|
||||
"category": "Quick Fix",
|
||||
"command": "replaceLinesHelper.quickFixCamelCaseProperties",
|
||||
"title": "Camel Case Properties"
|
||||
},
|
||||
{
|
||||
"category": "Quick Fix",
|
||||
"command": "replaceLinesHelper.quickFixCS0108",
|
||||
"title": " CS0108 (Data Annotations)"
|
||||
},
|
||||
{
|
||||
"category": "Quick Fix",
|
||||
"command": "replaceLinesHelper.quickFixInstanceFieldToCalisthenics",
|
||||
"title": "Instance Field to Calisthenics"
|
||||
},
|
||||
{
|
||||
"category": "Quick Fix",
|
||||
"command": "replaceLinesHelper.quickFixProperCaseProperties",
|
||||
"title": "Proper Case Properties"
|
||||
},
|
||||
{
|
||||
"category": "Quick Fix",
|
||||
"command": "replaceLinesHelper.quickFixPublic",
|
||||
"title": "Public (Expression Body)"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.addCSharpComment",
|
||||
"title": "Add C# Comment"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.addVBComment",
|
||||
"title": "Add VB Comment"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.convertToRegularExpression",
|
||||
"title": "Convert to Regular Expression"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.cutEachLine",
|
||||
"title": "Cut each line after |||"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.distinctLines",
|
||||
"title": "Distinct Lines"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.expandSql",
|
||||
"title": "Expand Sql"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.listToListFamily",
|
||||
"title": "List to list family (Kristy, Mike ...)"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.listToListWrappedComma",
|
||||
"title": "List to list wrapped comma"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.prettySql",
|
||||
"title": "Pretty Sql"
|
||||
},
|
||||
{
|
||||
"command": "replaceLinesHelper.quickFixCamelCaseProperties",
|
||||
"title": "Quick Fix - Camel Case Properties"
|
||||
},
|
||||
{
|
||||
"command": "replaceLinesHelper.quickFixCS0108",
|
||||
"title": "Quick Fix - CS0108 (Data Annotations)"
|
||||
},
|
||||
{
|
||||
"command": "replaceLinesHelper.quickFixInstanceFieldToCalisthenics",
|
||||
"title": "Quick Fix - Instance Field to Calisthenics"
|
||||
},
|
||||
{
|
||||
"command": "replaceLinesHelper.quickFixProperCaseProperties",
|
||||
"title": "Quick Fix - Proper Case Properties"
|
||||
},
|
||||
{
|
||||
"command": "replaceLinesHelper.quickFixPublic",
|
||||
"title": "Quick Fix - Public (Expression Body)"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.removeComment",
|
||||
"title": "Remove comment"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.sortLength",
|
||||
"title": "Sort by Length"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.sortNormal",
|
||||
"title": "My Sort lines (ascending, case sensitive)"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.splitBySpaceReverseJoinSort",
|
||||
"title": "Split by Space Reverse Join Sort lines (ascending, case sensitive)"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.unwrapSql",
|
||||
"title": "Un-wrap Sql"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.wrapSqlCSharp",
|
||||
"title": "Wrap Sql for C#"
|
||||
},
|
||||
{
|
||||
"category": "Replace",
|
||||
"command": "replaceLinesHelper.wrapSqlVB",
|
||||
"title": "Wrap Sql for VB"
|
||||
},
|
||||
{
|
||||
"category": "Webview",
|
||||
"command": "webview.example",
|
||||
"title": "Webview Example"
|
||||
}
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"vscode:prepublish": "npm run package",
|
||||
"compile": "webpack",
|
||||
"watch": "webpack --watch",
|
||||
"package": "webpack --mode production --devtool hidden-source-map",
|
||||
"compile-tests": "tsc -p . --outDir out",
|
||||
"watch-tests": "tsc -p . -w --outDir out",
|
||||
"pretest": "npm run compile-tests && npm run compile && npm run lint",
|
||||
"lint": "eslint src --ext ts",
|
||||
"test": "node ./out/test/runTest.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/glob": "^8.1.0",
|
||||
"@types/mocha": "^10.0.1",
|
||||
"@types/node": "20.2.5",
|
||||
"@types/vscode": "^1.79.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.59.8",
|
||||
"@typescript-eslint/parser": "^5.59.8",
|
||||
"@vscode/test-electron": "^2.3.2",
|
||||
"eslint": "^8.41.0",
|
||||
"glob": "^8.1.0",
|
||||
"mocha": "^10.2.0",
|
||||
"ts-loader": "^9.4.3",
|
||||
"typescript": "^5.1.3",
|
||||
"webpack": "^5.85.0",
|
||||
"webpack-cli": "^5.1.1"
|
||||
],
|
||||
"configuration": {
|
||||
"properties": {
|
||||
"fileTemplates.author": {
|
||||
"default": null,
|
||||
"description": "Value to use to replace #{author} variable.",
|
||||
"type": [
|
||||
"string",
|
||||
"Mike Phares"
|
||||
]
|
||||
},
|
||||
"fileTemplates.company": {
|
||||
"default": null,
|
||||
"description": "Value to use to replace #{company} variable.",
|
||||
"type": [
|
||||
"string",
|
||||
"Infineon Technologies Americas Corp."
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": "Cost of Delay Helper Configuration",
|
||||
"type": "object"
|
||||
},
|
||||
"views": {
|
||||
"view-command-pallete-webview-view-provider-view": [
|
||||
{
|
||||
"contextualTitle": "Infineon Technologies Americas Corp.",
|
||||
"icon": "media/lowres-LOGO_Black.png.png",
|
||||
"id": "view-command-pallete-webview-view-provider",
|
||||
"name": "Infineon",
|
||||
"type": "webview"
|
||||
}
|
||||
]
|
||||
},
|
||||
"viewsContainers": {
|
||||
"activitybar": [
|
||||
{
|
||||
"icon": "media/lowres-LOGO_Black.png.png",
|
||||
"id": "view-command-pallete-webview-view-provider-view",
|
||||
"title": "Infineon Technologies Americas Corp."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@vscode/vsce": "^2.19.0"
|
||||
}
|
||||
"@rollup/plugin-commonjs": "^28.0.3",
|
||||
"@rollup/plugin-node-resolve": "^16.0.1",
|
||||
"@rollup/plugin-typescript": "^12.1.2",
|
||||
"@tsconfig/svelte": "^5.0.4",
|
||||
"@vscode/vsce": "^3.2.1",
|
||||
"polka": "^0.5.2",
|
||||
"rollup-plugin-svelte": "^7.2.2",
|
||||
"rollup-plugin-terser": "^7.0.2",
|
||||
"svelte-preprocess": "^6.0.3"
|
||||
},
|
||||
"description": "Cost of Delay Helper",
|
||||
"devDependencies": {
|
||||
"@nodelib/fs.stat": "^3.0.0",
|
||||
"@types/mocha": "^10.0.6",
|
||||
"@types/node": "^18.11.0",
|
||||
"@types/vscode": "^1.63.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.40.0",
|
||||
"@typescript-eslint/parser": "^5.40.0",
|
||||
"@vscode/test-electron": "^2.4.0",
|
||||
"@vscode/test-web": "*",
|
||||
"concurrently": "^8.2.2",
|
||||
"editor-calc": "^2.1.0",
|
||||
"eslint": "^8.25.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"glob": "^10.4.1",
|
||||
"mocha": "^10.4.0",
|
||||
"prettier": "^2.7.1",
|
||||
"ts-loader": "^9.4.1",
|
||||
"typescript": "^4.8.4",
|
||||
"webpack": "^5.74.0",
|
||||
"webpack-cli": "^4.10.0"
|
||||
},
|
||||
"displayName": "Cost of Delay Helper",
|
||||
"engines": {
|
||||
"vscode": "^1.79.0"
|
||||
},
|
||||
"icon": "media/LOGO_RGB.png",
|
||||
"keywords": [
|
||||
"Backlog",
|
||||
"CoD",
|
||||
"Cost of Delay (CoD)",
|
||||
"FI",
|
||||
"Infineon",
|
||||
"Leominster",
|
||||
"Mesa",
|
||||
"Phares",
|
||||
"Weightest Shortest Job First calculation (WSJF)",
|
||||
"WSJF"
|
||||
],
|
||||
"main": "./dist/extension.js",
|
||||
"name": "infineon-technologies-ag-mesa-fi-cost-of-delay-helper",
|
||||
"publisher": "Infineon-Technologies-AG-Mesa-FI",
|
||||
"repository": "https://gitea.phares.duckdns.org/phares3757/yo-vscode.git",
|
||||
"scripts": {
|
||||
"tsc-build": "tsc",
|
||||
"svelte-build": "rollup -c",
|
||||
"tsc-clean": "tsc --build --clean",
|
||||
"vscode:login": "node node_modules/@vscode/vsce/vsce login Infineon-Technologies-AG-Mesa-FI",
|
||||
"vscode:ls-publishers": "node node_modules/@vscode/vsce/vsce ls-publishers",
|
||||
"vscode:package": "node node_modules/@vscode/vsce/vsce package",
|
||||
"vscode:publish": "node node_modules/@vscode/vsce/vsce publish",
|
||||
"watch": "concurrently \"rollup -c -w\" \"webpack --watch --config ./build/node-extension.webpack.config.js\"",
|
||||
"webpack": "webpack --config ./build/node-extension.webpack.config.js"
|
||||
},
|
||||
"version": "1.124.0"
|
||||
}
|
22
type-script-helper/src/Card.ts
Normal file
22
type-script-helper/src/Card.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { H2HexColor } from "./H2HexColor";
|
||||
import { LineNumber } from "./LineNumber";
|
||||
import { H2NoCheckboxes } from "./H2NoCheckboxes";
|
||||
import { H2WithCheckboxes } from "./H2WithCheckboxes";
|
||||
|
||||
export type Card = {
|
||||
Assignees: Array<string>;
|
||||
CreationDateTime: Date;
|
||||
Directory: string;
|
||||
Extension: string;
|
||||
File: string;
|
||||
FileName: string;
|
||||
FileNameWithoutExtension: string;
|
||||
H1: string;
|
||||
H2HexColorCollection: Array<H2HexColor>;
|
||||
H2NoCheckboxesCollection: Array<H2NoCheckboxes>;
|
||||
H2WithCheckboxesCollection: Array<H2WithCheckboxes>;
|
||||
LastWriteDateTime: Date;
|
||||
LineNumber: LineNumber;
|
||||
RequestedDateTime: string;
|
||||
Type: string;
|
||||
};
|
4
type-script-helper/src/H2HexColor.ts
Normal file
4
type-script-helper/src/H2HexColor.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export type H2HexColor = {
|
||||
H2: string;
|
||||
HexColor: string;
|
||||
};
|
5
type-script-helper/src/H2NoCheckboxes.ts
Normal file
5
type-script-helper/src/H2NoCheckboxes.ts
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
export type H2NoCheckboxes = {
|
||||
H2: string;
|
||||
Lines: Array<string>;
|
||||
};
|
7
type-script-helper/src/H2WithCheckboxes.ts
Normal file
7
type-script-helper/src/H2WithCheckboxes.ts
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
export type H2WithCheckboxes = {
|
||||
Completed: number;
|
||||
H2: string;
|
||||
NotCompleted: number;
|
||||
Total: number;
|
||||
};
|
9
type-script-helper/src/LineNumber.ts
Normal file
9
type-script-helper/src/LineNumber.ts
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
export type LineNumber = {
|
||||
Created: number;
|
||||
H1: number;
|
||||
FrontMatterYamlEnd: number;
|
||||
Status: number;
|
||||
Type: number;
|
||||
Updated: number;
|
||||
};
|
5
type-script-helper/src/PostMessage.ts
Normal file
5
type-script-helper/src/PostMessage.ts
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
export type PostMessage = {
|
||||
type: string;
|
||||
value: any;
|
||||
};
|
7
type-script-helper/src/ReceivedMessage.ts
Normal file
7
type-script-helper/src/ReceivedMessage.ts
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
export type ReceivedMessage = {
|
||||
command: string;
|
||||
collection: Array<any>;
|
||||
subcommand: string;
|
||||
value: any;
|
||||
};
|
@ -0,0 +1,65 @@
|
||||
import * as vscode from "vscode";
|
||||
import { getNonce } from "./getNonce";
|
||||
|
||||
export class ViewCommandPalletteWebviewViewProvider implements vscode.WebviewViewProvider {
|
||||
_webviewView?: vscode.WebviewView;
|
||||
|
||||
constructor(private readonly _extensionContext: vscode.ExtensionContext) {
|
||||
}
|
||||
|
||||
public revive(webviewView: vscode.WebviewView) {
|
||||
this._webviewView = webviewView;
|
||||
}
|
||||
|
||||
public resolveWebviewView(webviewView: vscode.WebviewView) {
|
||||
this._webviewView = webviewView;
|
||||
webviewView.webview.options = {
|
||||
// Allow scripts in the webview
|
||||
enableScripts: true,
|
||||
|
||||
localResourceRoots: [this._extensionContext.extensionUri],
|
||||
};
|
||||
|
||||
webviewView.webview.html = this._getHtmlForWebview(webviewView.webview);
|
||||
}
|
||||
|
||||
private _getHtmlForWebview(webview: vscode.Webview) {
|
||||
|
||||
const imageA = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "Screenshot 2025-04-11 125031.png")
|
||||
);
|
||||
const imageB = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "Screenshot 2025-04-11 125350.png")
|
||||
);
|
||||
|
||||
// Use a nonce to only allow a specific script to be run.
|
||||
const nonce = getNonce();
|
||||
|
||||
return `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<!--
|
||||
Use a content security policy to only allow loading images from https or from our extension directory,
|
||||
and only allow scripts that have a specific nonce.
|
||||
-->
|
||||
<meta http-equiv="Content-Security-Policy"
|
||||
content="img-src https: data:;
|
||||
style-src 'unsafe-inline' ${webview.cspSource};
|
||||
script-src 'nonce-${nonce}';">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Infineon Technologies Americas Corp.</h1>
|
||||
<ul>
|
||||
<li>View</li>
|
||||
<li>Command Pallette... Ctrl+Shift+P</li>
|
||||
<li>Type Mesa or Leominster</li>
|
||||
<li>Select item</li>
|
||||
</ul>
|
||||
<img src="${imageA}" alt="Screenshot 2025-04-11 125031.png" width="75%" height="75%">
|
||||
<img src="${imageB}" alt="Screenshot 2025-04-11 125350" width="75%" height="75%">
|
||||
</body>
|
||||
</html>`;
|
||||
}
|
||||
}
|
223
type-script-helper/src/WebviewPanelCostOfDelay.ts
Normal file
223
type-script-helper/src/WebviewPanelCostOfDelay.ts
Normal file
@ -0,0 +1,223 @@
|
||||
import * as vscode from "vscode";
|
||||
import { getNonce } from "./getNonce";
|
||||
import { apiBaseUrl } from "./constants";
|
||||
|
||||
export class WebviewPanelCostOfDelay {
|
||||
/**
|
||||
* Track the currently panel. Only allow a single panel to exist at a time.
|
||||
*/
|
||||
public static _site: string;
|
||||
public static _view: string;
|
||||
public static _title: string;
|
||||
public static currentPanel: WebviewPanelCostOfDelay | undefined;
|
||||
|
||||
public static readonly viewType = "web-view-panel";
|
||||
|
||||
private _disposables: vscode.Disposable[] = [];
|
||||
|
||||
public static createOrShow(extensionContext: vscode.ExtensionContext, site: string, view: string) {
|
||||
this._site = site;
|
||||
this._view = view;
|
||||
|
||||
const column = vscode.window.activeTextEditor
|
||||
? vscode.window.activeTextEditor.viewColumn
|
||||
: undefined;
|
||||
|
||||
const title = view === '' ? 'Cost of Delay (CoD)' :
|
||||
view === 'EFFORT' ? 'Effort' :
|
||||
view === 'LIVE' ? 'Cost of Delay (CoD) - Live Update' :
|
||||
view === 'HTML' ? 'Backlog (Bugs & Features with parents)' :
|
||||
view === 'WSJF' ? 'Weightest Shortest Job First calculation (WSJF)' :
|
||||
'CoD';
|
||||
this._title = title;
|
||||
|
||||
// If we already have a panel, show it.
|
||||
if (WebviewPanelCostOfDelay.currentPanel) {
|
||||
WebviewPanelCostOfDelay.currentPanel._panel.reveal(column);
|
||||
WebviewPanelCostOfDelay.currentPanel._update(site, title, view);
|
||||
return;
|
||||
}
|
||||
|
||||
// Otherwise, create a new panel.
|
||||
const panel = vscode.window.createWebviewPanel(
|
||||
WebviewPanelCostOfDelay.viewType,
|
||||
title,
|
||||
column || vscode.ViewColumn.One,
|
||||
{
|
||||
// Enable javascript in the webview
|
||||
enableScripts: true,
|
||||
enableFindWidget: true,
|
||||
|
||||
// And restrict the webview to only loading content from our extension's `media` directory.
|
||||
localResourceRoots: [
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, "media"),
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, "out/compiled"),
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
WebviewPanelCostOfDelay.currentPanel = new WebviewPanelCostOfDelay(extensionContext, panel, site, title, view);
|
||||
}
|
||||
|
||||
public static kill() {
|
||||
WebviewPanelCostOfDelay.currentPanel?.dispose();
|
||||
WebviewPanelCostOfDelay.currentPanel = undefined;
|
||||
}
|
||||
|
||||
public static revive(panel: vscode.WebviewPanel, extensionContext: vscode.ExtensionContext) {
|
||||
WebviewPanelCostOfDelay.currentPanel = new WebviewPanelCostOfDelay(extensionContext, panel, this._site, this._title, this._view);
|
||||
}
|
||||
|
||||
private constructor(private readonly _extensionContext: vscode.ExtensionContext, private readonly _panel: vscode.WebviewPanel, site: string, title: string, view: string) {
|
||||
|
||||
// Set the webview's initial html content
|
||||
this._update(site, title, view);
|
||||
|
||||
// Listen for when the panel is disposed
|
||||
// This happens when the user closes the panel or when the panel is closed programmatically
|
||||
this._panel.onDidDispose(() => this.dispose(), null, this._disposables);
|
||||
|
||||
// Handle messages from the webview
|
||||
this._panel.webview.onDidReceiveMessage(
|
||||
(message) => {
|
||||
switch (message.command) {
|
||||
case "alert":
|
||||
vscode.window.showErrorMessage(message.text);
|
||||
return;
|
||||
default:
|
||||
vscode.window.showErrorMessage(message.text);
|
||||
break;
|
||||
}
|
||||
},
|
||||
null,
|
||||
this._disposables
|
||||
);
|
||||
}
|
||||
|
||||
public dispose() {
|
||||
WebviewPanelCostOfDelay.currentPanel = undefined;
|
||||
|
||||
// Clean up our resources
|
||||
this._panel.dispose();
|
||||
|
||||
while (this._disposables.length) {
|
||||
const x = this._disposables.pop();
|
||||
if (x) {
|
||||
x.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async _update(site: string, title: string, view: string) {
|
||||
const webview = this._panel.webview;
|
||||
this._panel.webview.html = this._getHtmlForWebview(site, title, view, webview);
|
||||
webview.onDidReceiveMessage(async (message: string) => {
|
||||
vscode.window.showErrorMessage(message);
|
||||
});
|
||||
}
|
||||
|
||||
private _getHtmlForWebview(site: string, title: string, view: string, webview: vscode.Webview) {
|
||||
const baseUri = 'https://eaf-dev.mes.infineon.com';
|
||||
const scriptUri = 'cod-1-123-0.js?v=2025-04-14-08-10';
|
||||
|
||||
// Use a nonce to only allow a specific script to be run.
|
||||
const nonce = getNonce();
|
||||
|
||||
if (view === 'HTML') {
|
||||
return `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Infineon - ${title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<iframe width="100%" style="height: 100vh;" src="${baseUri}/html/mes.html?site=${site}" title="${title}">
|
||||
</iframe>
|
||||
</body>
|
||||
</html>`;
|
||||
}
|
||||
else {
|
||||
const styleBootstrapUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "bootstrap.min.css")
|
||||
);
|
||||
const styleCostOfDelayUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "cod.css")
|
||||
);
|
||||
const scriptJQueryUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "jquery-1.6.4.min.js")
|
||||
);
|
||||
const scriptSignalRUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "jquery.signalR-2.4.3.min.js")
|
||||
);
|
||||
const scriptCostOfDelayUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "cost-of-delay.js")
|
||||
);
|
||||
|
||||
return `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Infineon - ${title}</title>
|
||||
<link href="${styleBootstrapUri}" rel="stylesheet" />
|
||||
<link href="${styleCostOfDelayUri}" rel="stylesheet" />
|
||||
<script nonce="${nonce}" src="${scriptJQueryUri}"></script>
|
||||
<script nonce="${nonce}" src="${scriptSignalRUri}"></script>
|
||||
<script nonce="${nonce}" src="${baseUri}/js/${scriptUri}" type="text/javascript"></script>
|
||||
<script nonce="${nonce}">
|
||||
const _webviewSite = '${site}';
|
||||
const _webviewView = '${view}';
|
||||
const acquiredVsCodeApi = acquireVsCodeApi();
|
||||
const apiBaseUrl = ${JSON.stringify(apiBaseUrl)}
|
||||
const _webviewUsername = '${process.env.USERNAME}';
|
||||
const _webviewMachineId = '${vscode.env.machineId}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<div class="navbar-brand">
|
||||
<span id="siteHeader"> </span> -
|
||||
<span id="th-span"> </span>
|
||||
<button id="toggle">Toggle</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
</ul>
|
||||
<p class="navbar-text navbar-right">
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid body-content" style="margin-top: 40px; margin-left: 15px;">
|
||||
<div id="HeaderGridDiv">
|
||||
<table id="HeaderGrid" border="1"></table>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div id="AllGridDiv">
|
||||
<table id="AllGrid"></table>
|
||||
</div>
|
||||
|
||||
<textarea id="AllTextarea" rows="20" cols="147"></textarea>
|
||||
</div>
|
||||
|
||||
<script nonce="${nonce}" src="${scriptCostOfDelayUri}"></script>
|
||||
</body>
|
||||
|
||||
</html>`;
|
||||
}
|
||||
}
|
||||
}
|
167
type-script-helper/src/WebviewPanelExample.ts
Normal file
167
type-script-helper/src/WebviewPanelExample.ts
Normal file
@ -0,0 +1,167 @@
|
||||
import * as vscode from "vscode";
|
||||
import { getNonce } from "./getNonce";
|
||||
import { apiBaseUrl } from "./constants";
|
||||
import { PostMessage } from "./PostMessage";
|
||||
|
||||
export function refreshWebviewPanelExample(extensionContext: vscode.ExtensionContext): any {
|
||||
WebviewPanelExample.kill();
|
||||
WebviewPanelExample.createOrShow(extensionContext);
|
||||
}
|
||||
|
||||
export class WebviewPanelExample {
|
||||
/**
|
||||
* Track the currently panel. Only allow a single panel to exist at a time.
|
||||
*/
|
||||
public static currentPanel: WebviewPanelExample | undefined;
|
||||
|
||||
public static readonly viewType = "web-view-panel";
|
||||
|
||||
private _disposables: vscode.Disposable[] = [];
|
||||
|
||||
public static createOrShow(extensionContext: vscode.ExtensionContext) {
|
||||
const column = vscode.window.activeTextEditor
|
||||
? vscode.window.activeTextEditor.viewColumn
|
||||
: undefined;
|
||||
|
||||
// If we already have a panel, show it.
|
||||
if (WebviewPanelExample.currentPanel) {
|
||||
WebviewPanelExample.currentPanel._panel.reveal(column);
|
||||
WebviewPanelExample.currentPanel._update();
|
||||
return;
|
||||
}
|
||||
|
||||
// Otherwise, create a new panel.
|
||||
const panel = vscode.window.createWebviewPanel(
|
||||
WebviewPanelExample.viewType,
|
||||
"Web-View-Panel",
|
||||
column || vscode.ViewColumn.One,
|
||||
{
|
||||
// Enable javascript in the webview
|
||||
enableScripts: true,
|
||||
enableFindWidget: true,
|
||||
|
||||
// And restrict the webview to only loading content from our extension's `media` directory.
|
||||
localResourceRoots: [
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, "media"),
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, "out/compiled"),
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
WebviewPanelExample.currentPanel = new WebviewPanelExample(panel, extensionContext);
|
||||
}
|
||||
|
||||
public static kill() {
|
||||
WebviewPanelExample.currentPanel?.dispose();
|
||||
WebviewPanelExample.currentPanel = undefined;
|
||||
}
|
||||
|
||||
public static revive(panel: vscode.WebviewPanel, extensionContext: vscode.ExtensionContext) {
|
||||
WebviewPanelExample.currentPanel = new WebviewPanelExample(panel, extensionContext);
|
||||
}
|
||||
|
||||
private constructor(private readonly _panel: vscode.WebviewPanel, private readonly _extensionContext: vscode.ExtensionContext) {
|
||||
|
||||
// Set the webview's initial html content
|
||||
this._update();
|
||||
|
||||
// Listen for when the panel is disposed
|
||||
// This happens when the user closes the panel or when the panel is closed programmatically
|
||||
this._panel.onDidDispose(() => this.dispose(), null, this._disposables);
|
||||
|
||||
// // Handle messages from the webview
|
||||
// this._panel.webview.onDidReceiveMessage(
|
||||
// (message) => {
|
||||
// switch (message.command) {
|
||||
// case "alert":
|
||||
// vscode.window.showErrorMessage(message.text);
|
||||
// return;
|
||||
// }
|
||||
// },
|
||||
// null,
|
||||
// this._disposables
|
||||
// );
|
||||
}
|
||||
|
||||
public dispose() {
|
||||
WebviewPanelExample.currentPanel = undefined;
|
||||
|
||||
// Clean up our resources
|
||||
this._panel.dispose();
|
||||
|
||||
while (this._disposables.length) {
|
||||
const x = this._disposables.pop();
|
||||
if (x) {
|
||||
x.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async _update() {
|
||||
const webview = this._panel.webview;
|
||||
|
||||
this._panel.webview.html = this._getHtmlForWebview(webview);
|
||||
webview.onDidReceiveMessage(async (postMessage: PostMessage) => {
|
||||
switch (postMessage.type) {
|
||||
case "on-info":
|
||||
if (!postMessage.value)
|
||||
return;
|
||||
vscode.window.showInformationMessage(postMessage.value);
|
||||
break;
|
||||
case "on-error":
|
||||
if (!postMessage.value)
|
||||
return;
|
||||
vscode.window.showErrorMessage(postMessage.value);
|
||||
break;
|
||||
default:
|
||||
vscode.window.showErrorMessage(postMessage.type);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private _getHtmlForWebview(webview: vscode.Webview) {
|
||||
const styleResetUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "reset.css")
|
||||
);
|
||||
const styleVSCodeUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "vscode.css")
|
||||
);
|
||||
|
||||
const scriptUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "out", "compiled/DisplayDate.js")
|
||||
);
|
||||
const styleMainUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this._extensionContext.extensionUri, "out", "compiled/DisplayDate.css")
|
||||
);
|
||||
|
||||
// Use a nonce to only allow a specific script to be run.
|
||||
const nonce = getNonce();
|
||||
|
||||
return `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<!--
|
||||
Use a content security policy to only allow loading images from https or from our extension directory,
|
||||
and only allow scripts that have a specific nonce.
|
||||
-->
|
||||
<meta http-equiv="Content-Security-Policy"
|
||||
content="img-src https: data:;
|
||||
style-src 'unsafe-inline' ${webview.cspSource};
|
||||
script-src 'nonce-${nonce}';">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="${styleResetUri}" rel="stylesheet">
|
||||
<link href="${styleVSCodeUri}" rel="stylesheet">
|
||||
<link href="${styleMainUri}" rel="stylesheet">
|
||||
<script nonce="${nonce}">
|
||||
const acquiredVsCodeApi = acquireVsCodeApi();
|
||||
const apiBaseUrl = ${JSON.stringify(apiBaseUrl)}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<script nonce="${nonce}" src="${scriptUri}"></script>
|
||||
</body>
|
||||
</html>`;
|
||||
}
|
||||
}
|
241
type-script-helper/src/WebviewPanelFileSync.ts
Normal file
241
type-script-helper/src/WebviewPanelFileSync.ts
Normal file
@ -0,0 +1,241 @@
|
||||
import { readFile } from 'fs';
|
||||
import * as vscode from 'vscode';
|
||||
import { getNonce } from './getNonce';
|
||||
import { fileFolderHelperExe } from './constants';
|
||||
import { ExecException, exec } from 'child_process';
|
||||
import { ReceivedMessage } from './ReceivedMessage';
|
||||
|
||||
async function postRelativePath(extensionUri: vscode.Uri, webviewPanel: vscode.WebviewPanel, receivedMessage: ReceivedMessage) {
|
||||
if (vscode.workspace.workspaceFolders === undefined) {
|
||||
vscode.window.showInformationMessage('Open workspace first!');
|
||||
}
|
||||
else {
|
||||
const workspaceFoldersZero = vscode.workspace.workspaceFolders[0].uri;
|
||||
const inputUri: vscode.Uri = vscode.Uri.joinPath(workspaceFoldersZero, '.vscode', 'input.json');
|
||||
readFile(inputUri.fsPath, (err, data) =>
|
||||
inputUriRead(extensionUri, webviewPanel, receivedMessage, workspaceFoldersZero, inputUri, err, data.toString('utf8')));
|
||||
}
|
||||
}
|
||||
|
||||
function inputUriRead(extensionUri: vscode.Uri, webviewPanel: vscode.WebviewPanel, receivedMessage: ReceivedMessage, workspaceFoldersZero: vscode.Uri, inputUri: vscode.Uri, err: NodeJS.ErrnoException | null, data: string) {
|
||||
if (err) {
|
||||
vscode.window.showInformationMessage(`<${inputUri.fsPath}> doesn't exist! ${err.message}`);
|
||||
}
|
||||
else {
|
||||
const jsonObject: any = JSON.parse(data);
|
||||
if (!jsonObject.BaseAddresses || !jsonObject.Page || jsonObject.BaseAddresses.length === 0) {
|
||||
vscode.window.showInformationMessage(`<${inputUri.fsPath}> doesn't have valid json! ${data}`);
|
||||
}
|
||||
else {
|
||||
const relativePathUri: vscode.Uri = vscode.Uri.joinPath(workspaceFoldersZero, '.vscode', 'RelativePath.json');
|
||||
const fileFolderHelper: vscode.Uri = vscode.Uri.joinPath(extensionUri, 'net8.0', 'win-x64', 'publish', fileFolderHelperExe);
|
||||
const command: string = `${fileFolderHelper.fsPath} s X "${workspaceFoldersZero.fsPath}" Day-Helper-2025-05-19 "${inputUri.fsPath}"`;
|
||||
exec(command, (error, stdout, stderr) =>
|
||||
execCallback(webviewPanel, receivedMessage, jsonObject, relativePathUri, error, stdout, stderr));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function execCallback(webviewPanel: vscode.WebviewPanel, receivedMessage: ReceivedMessage, jsonObject: any, relativePathUri: vscode.Uri, error: ExecException | null, stdout: string, stderr: string) {
|
||||
if (error) {
|
||||
vscode.window.showInformationMessage(error.message);
|
||||
return;
|
||||
}
|
||||
if (stderr) {
|
||||
vscode.window.showInformationMessage(stderr);
|
||||
return;
|
||||
}
|
||||
console.log(`stdout: ${stdout}`);
|
||||
readFile(relativePathUri.fsPath, (err, data) =>
|
||||
relativePathUriRead(webviewPanel, receivedMessage, jsonObject, relativePathUri, err, data.toString('utf8')));
|
||||
};
|
||||
|
||||
function relativePathUriRead(webviewPanel: vscode.WebviewPanel, receivedMessage: ReceivedMessage, jsonObject: any, relativePathUri: vscode.Uri, err: NodeJS.ErrnoException | null, data: string) {
|
||||
if (err) {
|
||||
vscode.window.showInformationMessage(`<${relativePathUri.fsPath}> doesn't exist! ${err.message}`);
|
||||
}
|
||||
else {
|
||||
// const jsonObject: any = JSON.parse(data);
|
||||
// const receivedMessage: ReceivedMessage = { command: 'File-Folder-Helper', subcommand: 'post', value: jsonObject, collection: [] };
|
||||
// receivedMessage.command = 'done';
|
||||
// webviewPanel.webview.postMessage(receivedMessage);
|
||||
const message = { command: receivedMessage.subcommand, from: receivedMessage.command + '-' + receivedMessage.subcommand, input: jsonObject, relativePath: data };
|
||||
webviewPanel.webview.postMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
export class WebviewPanelFileSync {
|
||||
|
||||
public static _title: string;
|
||||
public static readonly viewType = 'web-view-panel';
|
||||
public static currentPanel: WebviewPanelFileSync | undefined;
|
||||
|
||||
private _disposables: vscode.Disposable[] = [];
|
||||
|
||||
public static createOrShow(extensionContext: vscode.ExtensionContext, title: string) {
|
||||
this._title = title;
|
||||
|
||||
const column = vscode.window.activeTextEditor
|
||||
? vscode.window.activeTextEditor.viewColumn
|
||||
: undefined;
|
||||
|
||||
if (WebviewPanelFileSync.currentPanel) {
|
||||
WebviewPanelFileSync.currentPanel._panel.reveal(column);
|
||||
WebviewPanelFileSync.currentPanel._update(title);
|
||||
return;
|
||||
}
|
||||
|
||||
const panel = vscode.window.createWebviewPanel(
|
||||
WebviewPanelFileSync.viewType,
|
||||
title,
|
||||
column || vscode.ViewColumn.One,
|
||||
{
|
||||
enableScripts: true,
|
||||
enableFindWidget: true,
|
||||
localResourceRoots: [
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, 'dist'),
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, 'media'),
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
WebviewPanelFileSync.currentPanel = new WebviewPanelFileSync(extensionContext, panel, title);
|
||||
}
|
||||
|
||||
public static kill() {
|
||||
WebviewPanelFileSync.currentPanel?.dispose();
|
||||
WebviewPanelFileSync.currentPanel = undefined;
|
||||
}
|
||||
|
||||
public static revive(panel: vscode.WebviewPanel, extensionContext: vscode.ExtensionContext) {
|
||||
WebviewPanelFileSync.currentPanel = new WebviewPanelFileSync(extensionContext, panel, this._title);
|
||||
}
|
||||
|
||||
public dispose() {
|
||||
WebviewPanelFileSync.currentPanel = undefined;
|
||||
this._panel.dispose();
|
||||
while (this._disposables.length) {
|
||||
const x = this._disposables.pop();
|
||||
if (x) {
|
||||
x.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private constructor(private readonly _extensionContext: vscode.ExtensionContext, private readonly _panel: vscode.WebviewPanel, title: string) {
|
||||
this._update(title);
|
||||
this._panel.onDidDispose(() => this.dispose(), null, this._disposables);
|
||||
}
|
||||
|
||||
private async _update(title: string) {
|
||||
const webview = this._panel.webview;
|
||||
this._panel.webview.html = this._getHtmlForWebview(title, webview);
|
||||
webview.onDidReceiveMessage(
|
||||
(receivedMessage: ReceivedMessage) => {
|
||||
WebviewPanelFileSync.onDidReceiveMessage(
|
||||
this._extensionContext.extensionUri,
|
||||
this._panel,
|
||||
receivedMessage
|
||||
);
|
||||
},
|
||||
null,
|
||||
this._disposables
|
||||
);
|
||||
}
|
||||
|
||||
private static onDidReceiveMessage(extensionUri: vscode.Uri, webviewPanel: vscode.WebviewPanel, receivedMessage: ReceivedMessage) {
|
||||
switch (receivedMessage.command) {
|
||||
case 'alert':
|
||||
vscode.window.showErrorMessage(receivedMessage.value);
|
||||
return;
|
||||
case fileFolderHelperExe:
|
||||
if (receivedMessage.subcommand === 'post') {
|
||||
postRelativePath(extensionUri, webviewPanel, receivedMessage);
|
||||
}
|
||||
return;
|
||||
default:
|
||||
vscode.window.showErrorMessage(receivedMessage.value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private _getHtmlForWebview(title: string, webview: vscode.Webview) {
|
||||
// Use a nonce to only allow a specific script to be run.
|
||||
const nonce = getNonce();
|
||||
|
||||
if (title === 'HTML') {
|
||||
return `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Infineon - ${title}</title>
|
||||
</head>
|
||||
<body>
|
||||
${title}
|
||||
</body>
|
||||
</html>`;
|
||||
}
|
||||
else {
|
||||
const styleCostOfDelayUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "cod.css"));
|
||||
const scriptEmbedRollup = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionContext.extensionUri, "dist", "embed-rollup.js"));
|
||||
const scriptJQueryUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "jquery-1.6.4.min.js"));
|
||||
const styleBootstrapUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "bootstrap.min.css"));
|
||||
|
||||
return `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Infineon - ${title}</title>
|
||||
<link href="${styleBootstrapUri}" rel="stylesheet" />
|
||||
<link href="${styleCostOfDelayUri}" rel="stylesheet" />
|
||||
<script nonce="${nonce}" src="${scriptJQueryUri}" type="text/javascript"></script>
|
||||
<script nonce="${nonce}" type="text/javascript">
|
||||
const acquiredVsCodeApi = acquireVsCodeApi();
|
||||
const _webviewUsername = '${process.env.USERNAME}';
|
||||
const _webviewMachineId = '${vscode.env.machineId}';
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<div class="navbar-brand">
|
||||
<span id="siteHeader"> </span> -
|
||||
<span id="th-span"> </span>
|
||||
<button id="toggle" onclick="getRelativePathAndPost()">Toggle</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
</ul>
|
||||
<p class="navbar-text navbar-right">
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid body-content" style="margin-top: 40px; margin-left: 15px;">
|
||||
<script nonce="${nonce}" src="${scriptEmbedRollup}" type="text/javascript"></script>
|
||||
|
||||
<div id="HeaderGridDiv">
|
||||
<table id="HeaderGrid" border="1"></table>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<textarea id="AllTextarea" rows="20" cols="147"></textarea>
|
||||
</div>
|
||||
</body>
|
||||
</html>`;
|
||||
}
|
||||
}
|
||||
}
|
193
type-script-helper/src/calculator.ts
Normal file
193
type-script-helper/src/calculator.ts
Normal file
@ -0,0 +1,193 @@
|
||||
import * as vscode from 'vscode';
|
||||
import * as editorCalc from 'editor-calc';
|
||||
|
||||
export class CalcProvider implements vscode.CompletionItemProvider {
|
||||
public enableActive: boolean;
|
||||
|
||||
private decorationType: vscode.TextEditorDecorationType;
|
||||
|
||||
constructor(
|
||||
public config: vscode.WorkspaceConfiguration,
|
||||
private onError: (error: unknown) => any,
|
||||
) {
|
||||
this.enableActive = false;
|
||||
this.decorationType = vscode.window.createTextEditorDecorationType({
|
||||
dark: {
|
||||
border: '1px dashed gray',
|
||||
},
|
||||
light: {
|
||||
border: '1px dashed black',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
public async highlight(range: vscode.Range) {
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (editor) {
|
||||
editor.setDecorations(this.decorationType, [range]);
|
||||
}
|
||||
}
|
||||
|
||||
public async clearHighlight() {
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (editor) {
|
||||
editor.setDecorations(this.decorationType, []);
|
||||
}
|
||||
}
|
||||
|
||||
public calculateLine(
|
||||
position: vscode.Position,
|
||||
exprLine: string,
|
||||
): {
|
||||
skip: number;
|
||||
result: string;
|
||||
insertText: string;
|
||||
expressionRange: vscode.Range;
|
||||
expressionWithEqualSignRange: vscode.Range;
|
||||
expressionEndRange: vscode.Range;
|
||||
} | null {
|
||||
let skip, result;
|
||||
try {
|
||||
({ skip, result } = editorCalc.calculate(exprLine));
|
||||
} catch (error) {
|
||||
this.onError(error);
|
||||
return null;
|
||||
}
|
||||
const formulaRaw = exprLine.slice(skip);
|
||||
const leftMatches = formulaRaw.match(/^\s+/);
|
||||
const leftEmpty = leftMatches ? leftMatches[0].length : 0;
|
||||
const rightMatches = formulaRaw.match(/[\s=]+$/);
|
||||
const rightEmpty = rightMatches ? rightMatches[0].length : 0;
|
||||
|
||||
const insertText = exprLine.endsWith(' =') ? ` ${result}` : result;
|
||||
|
||||
return {
|
||||
skip,
|
||||
result,
|
||||
insertText,
|
||||
expressionRange: new vscode.Range(
|
||||
position.line,
|
||||
skip + leftEmpty,
|
||||
position.line,
|
||||
position.character - rightEmpty,
|
||||
),
|
||||
expressionWithEqualSignRange: new vscode.Range(
|
||||
position.line,
|
||||
skip + leftEmpty,
|
||||
position.line,
|
||||
position.character,
|
||||
),
|
||||
expressionEndRange: new vscode.Range(
|
||||
position.line,
|
||||
position.character,
|
||||
position.line,
|
||||
position.character,
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
private getCompletionResultsFromExtraCursors(document: vscode.TextDocument): {
|
||||
additionalReplacements: vscode.Range[];
|
||||
additionalTextInserts: string[];
|
||||
additionalResults: string[];
|
||||
} {
|
||||
const additionalReplacements = [];
|
||||
const additionalTextInserts = [];
|
||||
const additionalResults = [];
|
||||
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (editor) {
|
||||
for (const selection of editor.selections.slice(1)) {
|
||||
const position = selection.active;
|
||||
const exprLine = document.getText(
|
||||
new vscode.Range(new vscode.Position(position.line, 0), position),
|
||||
);
|
||||
const lineCalcResult = this.calculateLine(position, exprLine);
|
||||
if (lineCalcResult == null) {
|
||||
continue;
|
||||
}
|
||||
const { expressionWithEqualSignRange, insertText, result } =
|
||||
lineCalcResult;
|
||||
additionalReplacements.push(expressionWithEqualSignRange);
|
||||
additionalTextInserts.push(insertText);
|
||||
additionalResults.push(result);
|
||||
}
|
||||
}
|
||||
|
||||
return { additionalReplacements, additionalTextInserts, additionalResults };
|
||||
}
|
||||
|
||||
public async provideCompletionItems(
|
||||
document: vscode.TextDocument,
|
||||
position: vscode.Position,
|
||||
_token: vscode.CancellationToken,
|
||||
_context: vscode.CompletionContext,
|
||||
): Promise<vscode.CompletionItem[]> {
|
||||
const exprLine = document.getText(
|
||||
new vscode.Range(new vscode.Position(position.line, 0), position),
|
||||
);
|
||||
if (!this.enableActive && !exprLine.trimRight().endsWith('=')) {
|
||||
return [];
|
||||
}
|
||||
const lineCalcResult = this.calculateLine(position, exprLine);
|
||||
if (lineCalcResult == null) {
|
||||
return [];
|
||||
}
|
||||
const {
|
||||
skip,
|
||||
result,
|
||||
expressionRange,
|
||||
expressionWithEqualSignRange,
|
||||
expressionEndRange,
|
||||
insertText,
|
||||
} = lineCalcResult;
|
||||
|
||||
this.clearHighlight().catch(this.onError);
|
||||
|
||||
this.highlight(expressionRange).catch(this.onError);
|
||||
|
||||
const { additionalReplacements, additionalTextInserts, additionalResults } =
|
||||
this.getCompletionResultsFromExtraCursors(document);
|
||||
const documentationPostfix =
|
||||
additionalResults.length > 0 ? ' (multiple)' : '';
|
||||
|
||||
return [
|
||||
{
|
||||
label: result,
|
||||
kind: vscode.CompletionItemKind.Constant,
|
||||
detail: `calc append${documentationPostfix}`,
|
||||
documentation: `\`${exprLine
|
||||
.slice(skip)
|
||||
.trimStart()}${insertText}\`${documentationPostfix}`,
|
||||
range: expressionEndRange,
|
||||
additionalTextEdits: [
|
||||
vscode.TextEdit.insert(expressionWithEqualSignRange.end, insertText),
|
||||
...additionalReplacements.map((replacementRange, i) =>
|
||||
vscode.TextEdit.insert(replacementRange.end, additionalTextInserts[i]),
|
||||
),
|
||||
],
|
||||
insertText: '', // text specified here will be inserted on every line
|
||||
},
|
||||
{
|
||||
label: result,
|
||||
kind: vscode.CompletionItemKind.Constant,
|
||||
detail: `calc replace${documentationPostfix}`,
|
||||
documentation: `\`${result}\`${documentationPostfix}`,
|
||||
additionalTextEdits: [
|
||||
vscode.TextEdit.replace(expressionWithEqualSignRange, result),
|
||||
...additionalReplacements.map((replacementRange, i) =>
|
||||
vscode.TextEdit.replace(replacementRange, additionalResults[i]),
|
||||
),
|
||||
],
|
||||
insertText: '',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
async resolveCompletionItem(
|
||||
item: vscode.CompletionItem,
|
||||
_token: vscode.CancellationToken,
|
||||
): Promise<vscode.CompletionItem> {
|
||||
return item;
|
||||
}
|
||||
}
|
3
type-script-helper/src/constants.ts
Normal file
3
type-script-helper/src/constants.ts
Normal file
@ -0,0 +1,3 @@
|
||||
export const key: string = 'type-script-helper';
|
||||
export const apiBaseUrl: string = 'http://localhost:3002';
|
||||
export const fileFolderHelperExe: string = 'File-Folder-Helper.exe'
|
37
type-script-helper/src/copyHelper.ts
Normal file
37
type-script-helper/src/copyHelper.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
async function copySyntaxInLightLogic(): Promise<any> {
|
||||
try {
|
||||
// Get the current configuration
|
||||
const config = vscode.workspace.getConfiguration();
|
||||
|
||||
// Get the current color theme
|
||||
const currentTheme = config.get("workbench.colorTheme");
|
||||
|
||||
// Set the color theme to "Default Light+"
|
||||
await config.update(
|
||||
"workbench.colorTheme",
|
||||
"Default Light Modern",
|
||||
vscode.ConfigurationTarget.Global
|
||||
);
|
||||
|
||||
// Copy Selected Text
|
||||
await vscode.commands.executeCommand(
|
||||
"editor.action.clipboardCopyAction"
|
||||
);
|
||||
|
||||
// Show success message
|
||||
vscode.window.showInformationMessage("Text copied in Light Mode");
|
||||
|
||||
// Switch back to dark theme
|
||||
await config.update(
|
||||
"workbench.colorTheme",
|
||||
currentTheme,
|
||||
vscode.ConfigurationTarget.Global
|
||||
);
|
||||
} catch (error) {
|
||||
vscode.window.showErrorMessage(`Error: ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
export const copySyntaxInLight = () => copySyntaxInLightLogic();
|
@ -1,33 +1,162 @@
|
||||
// The module 'vscode' contains the VS Code extensibility API
|
||||
// Import the module and reference it with the alias vscode in your code below
|
||||
import * as vscode from 'vscode';
|
||||
import * as Calculator from './calculator';
|
||||
import * as copyHelper from './copyHelper';
|
||||
import * as kanbanHelper from './kanbanHelper';
|
||||
import * as markdownHelper from './markdownHelper';
|
||||
import * as settingsHelper from './settingsHelper';
|
||||
import * as promiseLinesHelper from './promiseLinesHelper';
|
||||
import * as replaceLinesHelper from './replaceLinesHelper';
|
||||
import * as readOnlyLinesHelper from './readOnlyLinesHelper';
|
||||
import * as promiseLinesHelper from './promiseLinesHelper';
|
||||
import * as WebviewPanelExample from './WebviewPanelExample';
|
||||
import * as WebviewPanelFileSync from './WebviewPanelFileSync';
|
||||
import * as WebviewPanelCostOfDelay from './WebviewPanelCostOfDelay';
|
||||
import { ViewCommandPalletteWebviewViewProvider } from "./ViewCommandPalletteWebviewViewProvider";
|
||||
|
||||
// This method is called when your extension is activated
|
||||
// Your extension is activated the very first time the command is executed
|
||||
export function activate(context: vscode.ExtensionContext) {
|
||||
export async function activate(extensionContext: vscode.ExtensionContext) {
|
||||
|
||||
// Use the console to output diagnostic information (console.log) and errors (console.error)
|
||||
// This line of code will only be executed once when your extension is activated
|
||||
console.log('Congratulations, your extension "type-script-helper" is now active!');
|
||||
const viewCommandPalletteWebviewViewProvider = new ViewCommandPalletteWebviewViewProvider(extensionContext);
|
||||
extensionContext.subscriptions.push(vscode.window.registerWebviewViewProvider("view-command-Pallette-webview-view-provider", viewCommandPalletteWebviewViewProvider));
|
||||
|
||||
// // The command has been defined in the package.json file
|
||||
// // Now provide the implementation of the command with registerCommand
|
||||
// // The commandId parameter must match the command field in package.json
|
||||
// let disposable = vscode.commands.registerCommand('type-script-helper.helloWorld', () => {
|
||||
// // The code you place here will be executed every time your command is executed
|
||||
// // Display a message box to the user
|
||||
// vscode.window.showInformationMessage('Hello World from type-script-helper!');
|
||||
// });
|
||||
const config = vscode.workspace.getConfiguration('calc');
|
||||
const outputChannel = vscode.window.createOutputChannel('calc');
|
||||
|
||||
// context.subscriptions.push(disposable);
|
||||
const onError = (error: unknown) => {
|
||||
if (error instanceof Error) {
|
||||
outputChannel.appendLine(error.message);
|
||||
if (error.stack) outputChannel.appendLine(error.stack);
|
||||
} else {
|
||||
outputChannel.appendLine((error as any).toString().message);
|
||||
}
|
||||
};
|
||||
|
||||
const calcProvider = new Calculator.CalcProvider(config, onError);
|
||||
|
||||
extensionContext.subscriptions.push(
|
||||
vscode.languages.registerCompletionItemProvider('*', calcProvider, '=', ' '),
|
||||
vscode.workspace.onDidOpenTextDocument(() => {
|
||||
calcProvider.clearHighlight().catch(onError);
|
||||
}),
|
||||
vscode.window.onDidChangeTextEditorSelection(() => {
|
||||
calcProvider.clearHighlight().catch(onError);
|
||||
}),
|
||||
);
|
||||
|
||||
function getWebviewView(title: string) {
|
||||
const column = vscode.window.activeTextEditor
|
||||
? vscode.window.activeTextEditor.viewColumn
|
||||
: undefined;
|
||||
|
||||
// Otherwise, create a new panel.
|
||||
const webviewView = vscode.window.createWebviewPanel(
|
||||
"web-view-panel",
|
||||
title,
|
||||
column || vscode.ViewColumn.One,
|
||||
{
|
||||
// Enable javascript in the webview
|
||||
enableScripts: true,
|
||||
|
||||
// And restrict the webview to only loading content from our extension's `media` directory.
|
||||
localResourceRoots: [
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, "media"),
|
||||
vscode.Uri.joinPath(extensionContext.extensionUri, "out/compiled"),
|
||||
],
|
||||
}
|
||||
);
|
||||
return webviewView;
|
||||
}
|
||||
|
||||
async function replaceResultsWithPositions(
|
||||
editor: vscode.TextEditor,
|
||||
positionsAndExpressions: [vscode.Position, string][],
|
||||
mode: 'append' | 'replace',
|
||||
) {
|
||||
await editor.edit((editBuilder) => {
|
||||
for (const [position, expression] of positionsAndExpressions) {
|
||||
const lineCalcResult = calcProvider.calculateLine(position, expression);
|
||||
if (lineCalcResult == null) {
|
||||
continue;
|
||||
}
|
||||
const { insertText, expressionWithEqualSignRange, expressionEndRange } =
|
||||
lineCalcResult;
|
||||
|
||||
if (mode === 'append') {
|
||||
const endWithEqual = expression.trimEnd().endsWith('=');
|
||||
editBuilder.replace(
|
||||
expressionEndRange,
|
||||
endWithEqual ? insertText : ` = ${insertText}`,
|
||||
);
|
||||
} else if (mode === 'replace') {
|
||||
editBuilder.replace(expressionWithEqualSignRange, insertText);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function replaceResult(
|
||||
mode: 'append' | 'replace',
|
||||
withCursor: boolean,
|
||||
) {
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (!editor || !editor.selection.isEmpty) {
|
||||
return;
|
||||
}
|
||||
const doc = editor.document;
|
||||
|
||||
let positionsAndExpressions;
|
||||
if (withCursor) {
|
||||
positionsAndExpressions = editor.selections.map(
|
||||
(selection) =>
|
||||
<[vscode.Position, string]>[
|
||||
selection.active,
|
||||
doc
|
||||
.lineAt(selection.active.line)
|
||||
.text.slice(0, selection.active.character),
|
||||
],
|
||||
);
|
||||
} else {
|
||||
const uniqueLineNumbers = [
|
||||
...new Set(editor.selections.map((selection) => selection.active.line)),
|
||||
];
|
||||
positionsAndExpressions = uniqueLineNumbers.map((number) => {
|
||||
const line = doc.lineAt(number);
|
||||
return <[vscode.Position, string]>[line.range.end, line.text];
|
||||
});
|
||||
}
|
||||
await replaceResultsWithPositions(editor, positionsAndExpressions, mode);
|
||||
}
|
||||
|
||||
extensionContext.subscriptions.push(
|
||||
vscode.commands.registerTextEditorCommand('extension.calcAppendWithCursor', () => {
|
||||
replaceResult('append', true).catch(onError);
|
||||
}),
|
||||
vscode.commands.registerTextEditorCommand('extension.calcAppend', () => {
|
||||
replaceResult('append', false).catch(onError);
|
||||
}),
|
||||
vscode.commands.registerTextEditorCommand(
|
||||
'extension.calcReplaceWithCursor',
|
||||
() => {
|
||||
replaceResult('replace', true).catch(onError);
|
||||
},
|
||||
),
|
||||
vscode.commands.registerTextEditorCommand('extension.calcReplace', () => {
|
||||
replaceResult('replace', false).catch(onError);
|
||||
}),
|
||||
);
|
||||
|
||||
const commands = [
|
||||
vscode.commands.registerCommand("copyHelper.copySyntaxInLight", copyHelper.copySyntaxInLight),
|
||||
vscode.commands.registerCommand("extension.rotateExplorerSortOrder", settingsHelper.rotateExplorerSortOrder),
|
||||
vscode.commands.registerCommand("kanban.openWithTextEditor", kanbanHelper.openWithTextEditor),
|
||||
vscode.commands.registerCommand("kanban.openInNewWindow", kanbanHelper.openInNewWindow),
|
||||
vscode.commands.registerCommand("markdown.newMarkdownFile", markdownHelper.newMarkdownFile),
|
||||
vscode.commands.registerCommand('promiseLinesHelper.codeGeneratorQuickPick', promiseLinesHelper.codeGeneratorQuickPick),
|
||||
vscode.commands.registerCommand('promiseLinesHelper.insertDateTime', promiseLinesHelper.insertDateTime),
|
||||
vscode.commands.registerCommand('promiseLinesHelper.transformToPopperCase', promiseLinesHelper.transformToPopperCase),
|
||||
vscode.commands.registerCommand("promiseLinesHelper.insertAllExtensions", promiseLinesHelper.insertAllExtensions),
|
||||
vscode.commands.registerCommand('promiseLinesHelper.transformToProperCase', promiseLinesHelper.transformToProperCase),
|
||||
vscode.commands.registerCommand('promiseLinesHelper.transformToParamCase', promiseLinesHelper.transformToParamCase),
|
||||
vscode.commands.registerCommand('readOnlyLinesHelper.searchGoogle', readOnlyLinesHelper.searchGoogle),
|
||||
vscode.commands.registerCommand('replaceLinesHelper.addCSharpComment', replaceLinesHelper.addCSharpComment),
|
||||
@ -50,10 +179,22 @@ export function activate(context: vscode.ExtensionContext) {
|
||||
vscode.commands.registerCommand('replaceLinesHelper.splitBySpaceReverseJoinSort', replaceLinesHelper.splitBySpaceReverseJoinSort),
|
||||
vscode.commands.registerCommand('replaceLinesHelper.unwrapSql', replaceLinesHelper.unwrapSql),
|
||||
vscode.commands.registerCommand('replaceLinesHelper.wrapSqlCSharp', replaceLinesHelper.wrapSqlCSharp),
|
||||
vscode.commands.registerCommand('replaceLinesHelper.wrapSqlVB', replaceLinesHelper.wrapSqlVB)
|
||||
vscode.commands.registerCommand('replaceLinesHelper.wrapSqlVB', replaceLinesHelper.wrapSqlVB),
|
||||
vscode.commands.registerCommand("webview.fileSync", () => { WebviewPanelFileSync.WebviewPanelFileSync.createOrShow(extensionContext, 'File-Sync'); }),
|
||||
vscode.commands.registerCommand("webview.backlogMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'HTML'); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', ''); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayEffortMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'EFFORT'); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayLiveMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'LIVE'); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayWSJFMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'WSJF'); }),
|
||||
vscode.commands.registerCommand("webview.backlogLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'HTML'); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', ''); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayEffortLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'EFFORT'); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayLiveLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'LIVE'); }),
|
||||
vscode.commands.registerCommand("webview.costOfDelayWSJFLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'WSJF'); }),
|
||||
vscode.commands.registerCommand("webview.example", () => { WebviewPanelExample.WebviewPanelExample.createOrShow(extensionContext); })
|
||||
];
|
||||
|
||||
commands.forEach(command => context.subscriptions.push(command));
|
||||
commands.forEach(command => extensionContext.subscriptions.push(command));
|
||||
}
|
||||
|
||||
// This method is called when your extension is deactivated
|
||||
|
9
type-script-helper/src/getNonce.ts
Normal file
9
type-script-helper/src/getNonce.ts
Normal file
@ -0,0 +1,9 @@
|
||||
export function getNonce() {
|
||||
let text = "";
|
||||
const possible =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
for (let i = 0; i < 32; i++) {
|
||||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||||
}
|
||||
return text;
|
||||
}
|
126
type-script-helper/src/kanbanHelper.ts
Normal file
126
type-script-helper/src/kanbanHelper.ts
Normal file
@ -0,0 +1,126 @@
|
||||
import * as vscode from 'vscode';
|
||||
import { paramCase } from './promiseLinesHelper';
|
||||
|
||||
async function updateWithLogic(textDocument: vscode.TextDocument) {
|
||||
await vscode.window.showTextDocument(textDocument);
|
||||
const textEditor = vscode.window.activeTextEditor;
|
||||
if (!textEditor) {
|
||||
return undefined;
|
||||
}
|
||||
const now: Date = new Date();
|
||||
const time: number = now.getTime();
|
||||
const year: number = now.getFullYear();
|
||||
const start: Date = new Date(year, 0, 0);
|
||||
const oneDay: number = 1000 * 60 * 60 * 24;
|
||||
const timezoneOffset: number = now.getTimezoneOffset();
|
||||
let segments: string[] = textDocument.fileName.split('\\');
|
||||
const diff: number = (time - start.getTime()) + ((start.getTimezoneOffset() - timezoneOffset) * 60 * 1000);
|
||||
const day: number = Math.floor(diff / oneDay);
|
||||
const seconds: number = time.valueOf() + timezoneOffset;
|
||||
let notLastThree: string[] = segments.slice(0, -3);
|
||||
let season: string = year + "-";
|
||||
if (day < 78) {
|
||||
season += "0.Winter";
|
||||
} else if (day < 124) {
|
||||
season += "1.Spring";
|
||||
} else if (day < 171) {
|
||||
season += "2.Spring";
|
||||
} else if (day < 217) {
|
||||
season += "3.Summer";
|
||||
} else if (day < 264) {
|
||||
season += "4.Summer";
|
||||
} else if (day < 309) {
|
||||
season += "5.Fall";
|
||||
} else if (day < 354) {
|
||||
season += "6.Fall";
|
||||
} else {
|
||||
season += "7.Winter";
|
||||
}
|
||||
let path: string = notLastThree.join('\\') + `\\${year}\\${season}\\${seconds}`;
|
||||
const uri = vscode.Uri.parse(path);
|
||||
textEditor.edit(editBuilder => {
|
||||
let text: string = `\r\n## Code Insiders\r\n\r\n- [code-insiders](${path})\r\n\r\n## Sub-tasks\r\n\r\n- [ ] To do`;
|
||||
let position: vscode.Position = new vscode.Position(textDocument.lineCount, 0);
|
||||
editBuilder.insert(position, text);
|
||||
});
|
||||
}
|
||||
|
||||
async function openInNewWindowLogic(): Promise<any> {
|
||||
if (vscode.workspace.workspaceFolders === undefined) {
|
||||
vscode.window.showInformationMessage("Open workspace first!");
|
||||
return;
|
||||
}
|
||||
if (vscode.window.tabGroups.activeTabGroup.activeTab === undefined) {
|
||||
vscode.window.showInformationMessage("Open a tab first!");
|
||||
return;
|
||||
}
|
||||
const activeTab = vscode.window.tabGroups.activeTabGroup.activeTab;
|
||||
const tabs: vscode.Tab[] = vscode.window.tabGroups.all.map(tagGroup => tagGroup.tabs).flat();
|
||||
const index = tabs.findIndex(tab => tab.label === activeTab.label);
|
||||
const paramCaseActiveTabLabel: string = paramCase(activeTab.label);
|
||||
vscode.window.showInformationMessage(`Searching for <${paramCaseActiveTabLabel}>`);
|
||||
const fileUris: vscode.Uri[] = await vscode.workspace.findFiles(`**/${paramCaseActiveTabLabel}*`);
|
||||
if (fileUris.length === 0) {
|
||||
vscode.window.showInformationMessage(`Didn't find a file matching <${paramCaseActiveTabLabel}>!`);
|
||||
return;
|
||||
}
|
||||
for (let i = 0; i < fileUris.length; ++i) {
|
||||
let found: boolean = false;
|
||||
const textDocument: vscode.TextDocument = await vscode.workspace.openTextDocument(fileUris[i]);
|
||||
for (let j = 0; j < textDocument.lineCount; ++j) {
|
||||
const text = textDocument.lineAt(j).text;
|
||||
if (text.endsWith(')')) {
|
||||
if (text.startsWith("- [code](")) {
|
||||
found = true;
|
||||
const uri = vscode.Uri.parse("file:" + text.substring(9, text.length - 1));
|
||||
await vscode.commands.executeCommand('vscode.openFolder', uri, true);
|
||||
break;
|
||||
}
|
||||
if (text.startsWith("- [codium](")) {
|
||||
found = true;
|
||||
const uri = vscode.Uri.parse("file:" + text.substring(11, text.length - 1));
|
||||
await vscode.commands.executeCommand('vscode.openFolder', uri, true);
|
||||
break;
|
||||
}
|
||||
if (text.startsWith("- [code-insiders](")) {
|
||||
found = true;
|
||||
const uri = vscode.Uri.parse("file:" + text.substring(18, text.length - 1));
|
||||
await vscode.commands.executeCommand('vscode.openFolder', uri, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
updateWithLogic(textDocument);
|
||||
}
|
||||
else if (index !== -1) {
|
||||
await vscode.window.tabGroups.close(tabs[index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function openWithTextEditorLogic(): Promise<any> {
|
||||
if (vscode.workspace.workspaceFolders === undefined) {
|
||||
vscode.window.showInformationMessage("Open workspace first!");
|
||||
return;
|
||||
}
|
||||
if (vscode.window.tabGroups.activeTabGroup.activeTab === undefined) {
|
||||
vscode.window.showInformationMessage("Open a tab first!");
|
||||
return;
|
||||
}
|
||||
const activeTabLabel = vscode.window.tabGroups.activeTabGroup.activeTab.label;
|
||||
const paramCaseActiveTabLabel: string = paramCase(activeTabLabel);
|
||||
vscode.window.showInformationMessage(`Searching for <${paramCaseActiveTabLabel}>`);
|
||||
const fileUris: vscode.Uri[] = await vscode.workspace.findFiles(`**/${paramCaseActiveTabLabel}*`);
|
||||
if (fileUris.length === 0) {
|
||||
vscode.window.showInformationMessage(`Didn't find a file matching <${paramCaseActiveTabLabel}>!`);
|
||||
return;
|
||||
}
|
||||
for (let i = 0; i < fileUris.length; ++i) {
|
||||
const textDocument: vscode.TextDocument = await vscode.workspace.openTextDocument(fileUris[i]);
|
||||
await vscode.window.showTextDocument(textDocument);
|
||||
}
|
||||
}
|
||||
|
||||
export const openInNewWindow = () => openInNewWindowLogic();
|
||||
export const openWithTextEditor = () => openWithTextEditorLogic();
|
22
type-script-helper/src/markdownHelper.ts
Normal file
22
type-script-helper/src/markdownHelper.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import * as vscode from 'vscode';
|
||||
import { paramCase } from './promiseLinesHelper';
|
||||
|
||||
async function newMarkdownFileLogic(): Promise<any> {
|
||||
console.log(vscode.window.tabGroups.activeTabGroup.activeTab?.label);
|
||||
if (vscode.workspace.workspaceFolders === undefined) {
|
||||
vscode.window.showInformationMessage("Open workspace first!");
|
||||
return;
|
||||
}
|
||||
const workspaceFoldersZero = vscode.workspace.workspaceFolders[0].uri;
|
||||
const cardTitle = await vscode.window.showInputBox({ prompt: 'Provide title for card.' });
|
||||
if (cardTitle === undefined)
|
||||
return;
|
||||
const paramCaseCardTitle: string = paramCase(cardTitle);
|
||||
const fileUri: vscode.Uri = vscode.Uri.joinPath(workspaceFoldersZero, `${paramCaseCardTitle}.md`);
|
||||
const buffer: Buffer = Buffer.from(`# ${cardTitle}`, 'utf8');
|
||||
await vscode.workspace.fs.writeFile(fileUri, buffer);
|
||||
const textDocument: vscode.TextDocument = await vscode.workspace.openTextDocument(fileUri);
|
||||
vscode.window.showTextDocument(textDocument);
|
||||
}
|
||||
|
||||
export const newMarkdownFile = () => newMarkdownFileLogic();
|
@ -133,16 +133,66 @@ function insertDateTimeLogic(): undefined {
|
||||
if (!textEditor) {
|
||||
return undefined;
|
||||
}
|
||||
const date = new Date();
|
||||
const selection = textEditor.selection;
|
||||
textEditor.edit(editBuilder => {
|
||||
var range;
|
||||
const now: Date = new Date();
|
||||
const time: number = now.getTime();
|
||||
const year: number = now.getFullYear();
|
||||
const start: Date = new Date(year, 0, 0);
|
||||
const oneDay: number = 1000 * 60 * 60 * 24;
|
||||
const timezoneOffset: number = now.getTimezoneOffset();
|
||||
const diff: number = (time - start.getTime()) + ((start.getTimezoneOffset() - timezoneOffset) * 60 * 1000);
|
||||
const seconds: number = time.valueOf() + timezoneOffset;
|
||||
const day: number = Math.floor(diff / oneDay);
|
||||
const epoch: number = seconds * 10000;
|
||||
const ticks: number = epoch + 621355968000000000;
|
||||
let season: string = year + "-";
|
||||
if (day < 78) {
|
||||
season += "0.Winter";
|
||||
} else if (day < 124) {
|
||||
season += "1.Spring";
|
||||
} else if (day < 171) {
|
||||
season += "2.Spring";
|
||||
} else if (day < 217) {
|
||||
season += "3.Summer";
|
||||
} else if (day < 264) {
|
||||
season += "4.Summer";
|
||||
} else if (day < 309) {
|
||||
season += "5.Fall";
|
||||
} else if (day < 354) {
|
||||
season += "6.Fall";
|
||||
} else {
|
||||
season += "7.Winter";
|
||||
}
|
||||
const dateText = seconds + " = " + ticks + " = " + season + " = " + now.toString();
|
||||
if (selection.isEmpty) {
|
||||
editBuilder.insert(selection.start, date.toString())
|
||||
editBuilder.insert(selection.start, dateText)
|
||||
}
|
||||
else {
|
||||
range = new vscode.Range(selection.start.line, selection.start.character, selection.end.line, selection.end.character);
|
||||
editBuilder.replace(range, date.toString());
|
||||
editBuilder.replace(range, dateText);
|
||||
}
|
||||
});
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function insertAllExtensionsLogic(): undefined {
|
||||
const textEditor = vscode.window.activeTextEditor;
|
||||
if (!textEditor) {
|
||||
return undefined;
|
||||
}
|
||||
const selection = textEditor.selection;
|
||||
textEditor.edit(editBuilder => {
|
||||
var range;
|
||||
let extensions = vscode.extensions.all;
|
||||
let text = extensions.map(extension => extension.id).join("\n");
|
||||
if (selection.isEmpty) {
|
||||
editBuilder.insert(selection.start, text)
|
||||
}
|
||||
else {
|
||||
range = new vscode.Range(selection.start.line, selection.start.character, selection.end.line, selection.end.character);
|
||||
editBuilder.replace(range, text);
|
||||
}
|
||||
});
|
||||
return undefined;
|
||||
@ -155,7 +205,7 @@ function camelCase(str: string) {
|
||||
});
|
||||
}
|
||||
|
||||
function transformToPopperCaseLogic(): undefined {
|
||||
function transformToProperCaseLogic(): undefined {
|
||||
const textEditor = vscode.window.activeTextEditor;
|
||||
if (!textEditor) {
|
||||
return undefined;
|
||||
@ -177,7 +227,7 @@ function transformToPopperCaseLogic(): undefined {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function paramCase(str: string) {
|
||||
export function paramCase(str: string) {
|
||||
return str
|
||||
.replace(
|
||||
/([A-Z]+(.))/g,
|
||||
@ -211,5 +261,6 @@ function transformToParamCaseLogic(): undefined {
|
||||
|
||||
export const codeGeneratorQuickPick = () => codeGeneratorQuickPickLogic();
|
||||
export const insertDateTime = () => insertDateTimeLogic();
|
||||
export const transformToPopperCase = () => transformToPopperCaseLogic();
|
||||
export const insertAllExtensions = () => insertAllExtensionsLogic();
|
||||
export const transformToProperCase = () => transformToProperCaseLogic();
|
||||
export const transformToParamCase = () => transformToParamCaseLogic();
|
@ -5,12 +5,16 @@ enum LinesAction {
|
||||
}
|
||||
|
||||
function searchGoogleLogic(text: string, lines: string[]): void {
|
||||
let searchText: string = '';
|
||||
if (text.length > 0) {
|
||||
vscode.env.openExternal(
|
||||
vscode.Uri.parse(`https://www.google.com/search?q=${text.trim()}`)
|
||||
)
|
||||
searchText = text.trim();
|
||||
}
|
||||
else if (lines.length > 0) {
|
||||
searchText = lines[0].trim();
|
||||
}
|
||||
else
|
||||
return undefined;
|
||||
if (searchText != '') {
|
||||
vscode.env.openExternal(
|
||||
vscode.Uri.parse(`https://www.google.com/search?q=${lines[0].trim()}`)
|
||||
)
|
||||
|
29
type-script-helper/src/settingsHelper.ts
Normal file
29
type-script-helper/src/settingsHelper.ts
Normal file
@ -0,0 +1,29 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
async function rotateExplorerSortOrderLogic(): Promise<any> {
|
||||
const config = vscode.workspace.getConfiguration("explorer");
|
||||
const sortOrder = config.get("sortOrder");
|
||||
let sortOrderOptions = [
|
||||
"default",
|
||||
"modified",
|
||||
"type",
|
||||
"mixed",
|
||||
"filesFirst",
|
||||
"foldersNestsFiles",
|
||||
];
|
||||
let index = sortOrderOptions.findIndex(l => l === sortOrder);
|
||||
if (index !== -1)
|
||||
index++;
|
||||
else
|
||||
index = 0;
|
||||
if (index >= sortOrderOptions.length)
|
||||
index = 0;
|
||||
let value = sortOrderOptions[index];
|
||||
await config.update("sortOrder", value);
|
||||
index++;
|
||||
if (index >= sortOrderOptions.length)
|
||||
index = 0;
|
||||
vscode.window.showInformationMessage(`Explorer Sort Order set to: ${value}; next will be: ${sortOrderOptions[index]};`);
|
||||
}
|
||||
|
||||
export const rotateExplorerSortOrder = () => rotateExplorerSortOrderLogic();
|
@ -1,23 +0,0 @@
|
||||
import * as path from 'path';
|
||||
|
||||
import { runTests } from '@vscode/test-electron';
|
||||
|
||||
async function main() {
|
||||
try {
|
||||
// The folder containing the Extension Manifest package.json
|
||||
// Passed to `--extensionDevelopmentPath`
|
||||
const extensionDevelopmentPath = path.resolve(__dirname, '../../');
|
||||
|
||||
// The path to test runner
|
||||
// Passed to --extensionTestsPath
|
||||
const extensionTestsPath = path.resolve(__dirname, './suite/index');
|
||||
|
||||
// Download VS Code, unzip it and run the integration test
|
||||
await runTests({ extensionDevelopmentPath, extensionTestsPath });
|
||||
} catch (err) {
|
||||
console.error('Failed to run tests', err);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
@ -1,15 +0,0 @@
|
||||
import * as assert from 'assert';
|
||||
|
||||
// You can import and use all API from the 'vscode' module
|
||||
// as well as import your extension to test it
|
||||
import * as vscode from 'vscode';
|
||||
// import * as myExtension from '../../extension';
|
||||
|
||||
suite('Extension Test Suite', () => {
|
||||
vscode.window.showInformationMessage('Start all tests.');
|
||||
|
||||
test('Sample test', () => {
|
||||
assert.strictEqual(-1, [1, 2, 3].indexOf(5));
|
||||
assert.strictEqual(-1, [1, 2, 3].indexOf(0));
|
||||
});
|
||||
});
|
@ -1,38 +0,0 @@
|
||||
import * as path from 'path';
|
||||
import * as Mocha from 'mocha';
|
||||
import * as glob from 'glob';
|
||||
|
||||
export function run(): Promise<void> {
|
||||
// Create the mocha test
|
||||
const mocha = new Mocha({
|
||||
ui: 'tdd',
|
||||
color: true
|
||||
});
|
||||
|
||||
const testsRoot = path.resolve(__dirname, '..');
|
||||
|
||||
return new Promise((c, e) => {
|
||||
glob('**/**.test.js', { cwd: testsRoot }, (err, files) => {
|
||||
if (err) {
|
||||
return e(err);
|
||||
}
|
||||
|
||||
// Add files to the test suite
|
||||
files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)));
|
||||
|
||||
try {
|
||||
// Run the mocha test
|
||||
mocha.run(failures => {
|
||||
if (failures > 0) {
|
||||
e(new Error(`${failures} tests failed.`));
|
||||
} else {
|
||||
c();
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
e(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
@ -1,16 +1,19 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "ES2020",
|
||||
"typeRoots": ["./node_modules/@types"],
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"lib": [
|
||||
"ES2020"
|
||||
],
|
||||
"sourceMap": true,
|
||||
"module": "commonjs",
|
||||
"rootDir": "src",
|
||||
"strict": true /* enable all strict type-checking options */
|
||||
/* Additional Checks */
|
||||
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
|
||||
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
|
||||
// "noUnusedParameters": true, /* Report errors on unused parameters. */
|
||||
}
|
||||
"sourceMap": true,
|
||||
"strict": true,
|
||||
"target": "ES2020"
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
".vscode-test",
|
||||
"webviews"
|
||||
]
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user