├── .changeset ├── README.md └── config.json ├── .github ├── hmr.gif └── workflows │ ├── cr.yml │ ├── e2e.yml │ ├── release.yml │ └── vitest.yml ├── .gitignore ├── .prettierrc ├── CHANGELOG.md ├── README.md ├── banner.png ├── cypress.config.ts ├── cypress ├── e2e │ └── examples.cy.ts └── support │ └── e2e.ts ├── examples ├── vite-3 │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── main.tsx │ ├── tsconfig.json │ └── vite.config.ts ├── vite-4 │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── main.tsx │ ├── tsconfig.json │ └── vite.config.ts ├── vite-5 │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── main.tsx │ ├── tsconfig.json │ └── vite.config.ts └── vite-6 │ ├── index.html │ ├── package.json │ ├── src │ ├── App.tsx │ ├── CounterContext.tsx │ └── main.tsx │ ├── tests │ ├── App.test.tsx │ └── tsconfig.json │ ├── tsconfig.json │ ├── vite.config.ts │ └── vitest.config.ts ├── package.json ├── playground ├── assets │ └── test.txt ├── components │ └── counter.tsx ├── hello.mdx ├── index.html ├── index.tsx ├── package.json ├── pages │ ├── about.tsx │ └── index.tsx ├── pnpm-lock.yaml ├── tsconfig.json └── vite.config.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── rollup.config.js ├── scripts └── test-examples.ts ├── src └── index.ts └── tsconfig.json /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.github/hmr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/vite-plugin-solid/5b6d8ac271470fdfdad5d4f2a5ce4880bc5f9b93/.github/hmr.gif -------------------------------------------------------------------------------- /.github/workflows/cr.yml: -------------------------------------------------------------------------------- 1 | name: ⚡️ Continuous Releases 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | merge_group: 8 | pull_request: 9 | 10 | jobs: 11 | cr: 12 | name: "⚡️ Continuous Releases" 13 | 14 | strategy: 15 | fail-fast: false 16 | 17 | runs-on: ubuntu-latest 18 | 19 | steps: 20 | - uses: actions/checkout@v4 21 | 22 | - uses: pnpm/action-setup@v3 23 | with: 24 | # https://github.com/pnpm/pnpm/issues/8953 25 | version: 9.15.3 26 | 27 | - name: Use Node.js 20 28 | uses: actions/setup-node@v4 29 | with: 30 | node-version: 20 31 | cache: "pnpm" 32 | 33 | - name: Install dependencies 34 | run: pnpm install --frozen-lockfile 35 | 36 | - name: Build start 37 | run: pnpm run build 38 | 39 | - name: Release 40 | run: pnpm dlx pkg-pr-new@0.0 publish --compact 41 | -------------------------------------------------------------------------------- /.github/workflows/e2e.yml: -------------------------------------------------------------------------------- 1 | 2 | name: ci 3 | 4 | on: 5 | pull_request: 6 | branches: [main] 7 | push: 8 | branches: [main] 9 | 10 | jobs: 11 | e2e-tests: 12 | name: "E2E tests" 13 | strategy: 14 | fail-fast: false 15 | 16 | runs-on: ubuntu-22.04 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v4 20 | - uses: actions/setup-node@v4 21 | with: 22 | node-version: "23" 23 | 24 | - uses: pnpm/action-setup@v4 25 | with: 26 | version: 9.15.3 27 | 28 | - name: Install project dependencies 29 | run: pnpm i 30 | 31 | - name: Build project 32 | run: pnpm run build 33 | 34 | - name: Run tests 35 | run: pnpm run test 36 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | concurrency: ${{ github.workflow }}-${{ github.ref }} 9 | 10 | jobs: 11 | release: 12 | name: Release 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout Repo 16 | uses: actions/checkout@v3 17 | 18 | - uses: pnpm/action-setup@v3 19 | with: 20 | # https://github.com/pnpm/pnpm/issues/8953 21 | version: 9.15.3 22 | 23 | - name: Setup Node.js 20.x 24 | uses: actions/setup-node@v3 25 | with: 26 | node-version: 20.x 27 | 28 | - name: Install Dependencies 29 | run: pnpm i --frozen-lockfile 30 | 31 | - name: Create Release Pull Request or Publish to npm 32 | id: changesets 33 | uses: changesets/action@v1 34 | with: 35 | publish: pnpm run release 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/vitest.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | on: 4 | pull_request: 5 | branches: [main] 6 | push: 7 | branches: [main] 8 | 9 | jobs: 10 | vitest: 11 | name: 'Vitest' 12 | strategy: 13 | fail-fast: false 14 | 15 | runs-on: ubuntu-22.04 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | - uses: actions/setup-node@v4 20 | with: 21 | node-version: '23' 22 | 23 | - uses: pnpm/action-setup@v4 24 | with: 25 | version: 9.15.3 26 | 27 | - name: Install project dependencies 28 | run: pnpm i 29 | 30 | - name: Install playwright browser 31 | working-directory: examples/vite-6 32 | run: pnpm exec playwright install chromium 33 | 34 | - name: Run tests 35 | working-directory: examples/vite-6 36 | run: pnpm run test 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "trailingComma": "all", 4 | "useTabs": false, 5 | "printWidth": 100, 6 | "semi": true, 7 | "singleQuote": true 8 | } 9 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 2.11.6 4 | 5 | ### Patch Changes 6 | 7 | - 14da18d: Fix accessing the wrong user test configuration 8 | 9 | ## 2.11.5 10 | 11 | ### Patch Changes 12 | 13 | - 57cb53a: Update path to type declaration 14 | 15 | ## 2.11.4 16 | 17 | ### Patch Changes 18 | 19 | - ff66baf: Adjust path to type declaration 20 | 21 | ## 2.11.3 22 | 23 | ### Patch Changes 24 | 25 | - d87159b: Fix duplicated test setupFiles in resolved vite config 26 | 27 | ## 2.11.2 28 | 29 | ### Patch Changes 30 | 31 | - 5003976: handle empty query string 32 | - 3da707e: Support query string in tsx/jsx files 33 | 34 | ## 2.11.1 35 | 36 | ### Patch Changes 37 | 38 | - c5ddd03: Fix vite6 environment detection 39 | 40 | ## 2.11.0 41 | 42 | ### Minor Changes 43 | 44 | - 8a6d81e: Add vite 6 compat 45 | 46 | ### Patch Changes 47 | 48 | - 74c75d0: Support Vite 6's `resolve.conditions` breaking change 49 | 50 | ## 2.10.2 51 | 52 | ### Patch Changes 53 | 54 | - e52d554: import solid as external to fix testing with npm 55 | - 7500d78: update option types 56 | 57 | ## 2.10.1 58 | 59 | ### Patch Changes 60 | 61 | - 1552678: emergency temporary revert of solid-refresh 62 | 63 | ## 2.10.0 64 | 65 | ### Minor Changes 66 | 67 | - 6156811: add changesets, update to solid-refresh 0.7 68 | 69 | 70 | 71 | ## 2.3.0 (2022-07-14) 72 | 73 | ### Changed 74 | 75 | - ⬆️ Update playground dependencies [[0438ab4](https://github.com/solidjs/vite-plugin-solid/commit/0438ab4a594d31b6cb15a57caf517060639b6de6)] 76 | - ⬆️ Update dependencies (vite 3) [[17d5aef](https://github.com/solidjs/vite-plugin-solid/commit/17d5aef698836de5a2514056e5d622be3da711a9)] 77 | - ⬆️ Update dependencies [[ac130ae](https://github.com/solidjs/vite-plugin-solid/commit/ac130ae5141591f292fa703573282c4f7286aeb1)] 78 | - ⬆️ Update example folder dependencies [[093f738](https://github.com/solidjs/vite-plugin-solid/commit/093f7380708b22a660f63e3b91c3dd9d27ad5375)] 79 | - ⬆️ Update dependencies [[0259ba6](https://github.com/solidjs/vite-plugin-solid/commit/0259ba6ad5ee9b46890804a900da9f6e71f92d84)] 80 | 81 | ### Removed 82 | 83 | - 🔥 Remove legacy option `alias` [[4a432e8](https://github.com/solidjs/vite-plugin-solid/commit/4a432e80e66f527404db4bd224b689fb59866bf2)] 84 | 85 | ### Miscellaneous 86 | 87 | - Merge pull request [#44](https://github.com/solidjs/vite-plugin-solid/issues/44) from vjoao/patch-1 [[88fd588](https://github.com/solidjs/vite-plugin-solid/commit/88fd5884ea6f509efabcb58c0ecf25d1e8fce628)] 88 | - Add 'universal' to compiler output [[75d66bb](https://github.com/solidjs/vite-plugin-solid/commit/75d66bb484fc3c4f9f282affb3d5258400b53619)] 89 | - Merge pull request [#39](https://github.com/solidjs/vite-plugin-solid/issues/39) from btakita/issues/38 [[dce3536](https://github.com/solidjs/vite-plugin-solid/commit/dce35361935425d30627113c112b25abc5c8fe47)] 90 | - Merge pull request [#37](https://github.com/solidjs/vite-plugin-solid/issues/37) from JoviDeCroock/patch-1 [[6c9c566](https://github.com/solidjs/vite-plugin-solid/commit/6c9c566a0352d9fe68de05b44ce6e70370ec00e3)] 91 | - upgrade babel-preset-solid to 1.4.2 [[91e9511](https://github.com/solidjs/vite-plugin-solid/commit/91e9511429ab3e2e3ba3651819283d187775f0bb)] 92 | - add types discoverability [[820c115](https://github.com/solidjs/vite-plugin-solid/commit/820c11580d8fe7ecb846616c20e395539a7664fc)] 93 | - move "vite" and "solid-js" to peer dependencies [[dfd81c2](https://github.com/solidjs/vite-plugin-solid/commit/dfd81c2ab7b735846096562ea1ced248693b34a9)] 94 | - Merge pull request [#36](https://github.com/solidjs/vite-plugin-solid/issues/36) from g-plane/peer-deps [[f896d4d](https://github.com/solidjs/vite-plugin-solid/commit/f896d4d306ccb20c3793c1ce741339d746d3966c)] 95 | - remove ?. and bump version [[b310f93](https://github.com/solidjs/vite-plugin-solid/commit/b310f938f2a8a7fa7b7e516335dba1ef14c12b8e)] 96 | - 📝 Update changelog [[b57f3e9](https://github.com/solidjs/vite-plugin-solid/commit/b57f3e9ed8c3048afe7d1f33bb85b4daefad2e03)] 97 | - 📝 Update changelog [[55ed4f3](https://github.com/solidjs/vite-plugin-solid/commit/55ed4f3e39f0c15e12c897efdfcb6dc42ad756cc)] 98 | 99 | 100 | 101 | ## 2.2.5 (2022-01-26) 102 | 103 | ### Changed 104 | 105 | - ⬆️ Update dependencies to latest [[0d429c2](https://github.com/solidjs/vite-plugin-solid/commit/0d429c2c59261f4bb23a62e5f9736eed113724bf)] 106 | - 🎨 Rename poorly named variable [[d71ff9e](https://github.com/solidjs/vite-plugin-solid/commit/d71ff9ee486fa08a8a577f888b1b6902265ff826)] 107 | 108 | ### Miscellaneous 109 | 110 | - Merge pull request [#29](https://github.com/solidjs/vite-plugin-solid/issues/29) from bgoscinski/master [[7443f0c](https://github.com/solidjs/vite-plugin-solid/commit/7443f0c5e790c4ba5c9539e0d96600ccf816dfab)] 111 | - Merge branch 'master' into master [[5788cc3](https://github.com/solidjs/vite-plugin-solid/commit/5788cc3098fca7d53a0bb770b516a42d670843b3)] 112 | - Merge pull request [#27](https://github.com/solidjs/vite-plugin-solid/issues/27) from LXSMNSYC/patch-2 [[e7eb9dc](https://github.com/solidjs/vite-plugin-solid/commit/e7eb9dcc2202d93a5fc79d5fac012076a7c6ae69)] 113 | - Update merge-anything to 5.0.0 [[8a5f9b5](https://github.com/solidjs/vite-plugin-solid/commit/8a5f9b51943f189f3147700c24748853a06c22d6)] 114 | - revert temporary fix push people to newer vite with windows fix [[1fd98f6](https://github.com/solidjs/vite-plugin-solid/commit/1fd98f6ca566a54b9bc219f3613a382ee361515c)] 115 | - Revert "fix around vite plugin merging" [[58dcda1](https://github.com/solidjs/vite-plugin-solid/commit/58dcda14c265122eb497d347b4d6429cf9401147)] 116 | - Fix [#26](https://github.com/solidjs/vite-plugin-solid/issues/26) [[408367d](https://github.com/solidjs/vite-plugin-solid/commit/408367d96d4557fe6cac5d4970290a9b8d362372)] 117 | - fix around vite plugin merging [[84c2568](https://github.com/solidjs/vite-plugin-solid/commit/84c25682361e94e112f2274910450291208eeee5)] 118 | - bump [[2162537](https://github.com/solidjs/vite-plugin-solid/commit/2162537529f8a666cdef314fd67c48f1fac84d36)] 119 | - Merge pull request [#25](https://github.com/solidjs/vite-plugin-solid/issues/25) from devinxi/nksaraf-patch-1 [[d61b98d](https://github.com/solidjs/vite-plugin-solid/commit/d61b98d77282b6c4c368c23d8c113c1c2b42f550)] 120 | - Disable solid-refresh transform during SSR [[97debbe](https://github.com/solidjs/vite-plugin-solid/commit/97debbe5f820de1112f37a323ba420d9af8449a5)] 121 | - update deps [[1494e5d](https://github.com/solidjs/vite-plugin-solid/commit/1494e5d28fb8ae923742b770972c7b12ae644730)] 122 | - 📝 Adding `extensions` option to README [[d3ffe73](https://github.com/solidjs/vite-plugin-solid/commit/d3ffe73c63ff1af91254928820c742a1b15f4311)] 123 | - 📝 Update changelog [[34095c3](https://github.com/solidjs/vite-plugin-solid/commit/34095c3dcc3cb2c7b867f957694d235c186d44e7)] 124 | 125 | 126 | 127 | ## 2.2.0 (2022-01-03) 128 | 129 | ### Added 130 | 131 | - ✨ Add mdx example [[988e065](https://github.com/solidjs/vite-plugin-solid/commit/988e065a02bd9df742d5f56d896732d4593a2bdb)] 132 | 133 | ### Changed 134 | 135 | - 🎨 Refactor code [[3a249f3](https://github.com/solidjs/vite-plugin-solid/commit/3a249f37001561ef66f8e8ab4eed82a42f52832e)] 136 | - 🔧 Fix lock file [[0a14b3a](https://github.com/solidjs/vite-plugin-solid/commit/0a14b3ab5f00c77a9f28a9bf974f6a1f606b6465)] 137 | - 🔧 Add pnpm as the default corepack package manager [[6ee5701](https://github.com/solidjs/vite-plugin-solid/commit/6ee5701a5d6702351afa08a95b87abbc0f403ee3)] 138 | - ⬆️ Update playground dependencies [[3306823](https://github.com/solidjs/vite-plugin-solid/commit/3306823f453639e9af0844ba63b904717189f1fa)] 139 | - ⬆️ Update dependencies [[5df5464](https://github.com/solidjs/vite-plugin-solid/commit/5df5464e7d3e53b9987e7df55134fba599dfa20c)] 140 | 141 | ### Removed 142 | 143 | - 🔥 Remove deprecated code [[58f0623](https://github.com/solidjs/vite-plugin-solid/commit/58f0623506c588b1312793f281fe33e342eb6ec7)] 144 | 145 | ### Miscellaneous 146 | 147 | - Merge pull request [#24](https://github.com/solidjs/vite-plugin-solid/issues/24) from high1/solid-mdx [[0416a1a](https://github.com/solidjs/vite-plugin-solid/commit/0416a1ac45c28967abc2ba8864f0b9ee2fd541b3)] 148 | - Merge branch 'master' into solid-mdx [[2d7d862](https://github.com/solidjs/vite-plugin-solid/commit/2d7d86269589f27e5577a90b400a64dc062db178)] 149 | - Removed flags parsing [[41bd673](https://github.com/solidjs/vite-plugin-solid/commit/41bd67326cdc9425d48c6369b9f9b5b4363a5a7b)] 150 | - Fixed undefined issue [[ea2724e](https://github.com/solidjs/vite-plugin-solid/commit/ea2724e5a336bd1a5147fc1e1d1f33dc027c7a74)] 151 | - Updated the code [[2e07b2b](https://github.com/solidjs/vite-plugin-solid/commit/2e07b2bfcc822dc0343ae2d851ad1393288b6f2b)] 152 | - Extensions option added [[e5b6389](https://github.com/solidjs/vite-plugin-solid/commit/e5b6389aa7fe579201ad6e4cbeec332441396040)] 153 | - New banner [[34967e8](https://github.com/solidjs/vite-plugin-solid/commit/34967e82ea235c8dfe389f3bd91d440382835036)] 154 | - Added new banner [[5a4e52f](https://github.com/solidjs/vite-plugin-solid/commit/5a4e52fa2099dea3bb67aeed705cb268999ce6a6)] 155 | - bump deps [[9f8a623](https://github.com/solidjs/vite-plugin-solid/commit/9f8a6234cdb1ae290f2f9d434221abbff7c5a870)] 156 | - update readme [[04ed442](https://github.com/solidjs/vite-plugin-solid/commit/04ed44299d88d34143cdad5f8764681035d2bb2e)] 157 | - fix dev build in prod, stop adding transform refresh to node_modules [[2ea81e1](https://github.com/solidjs/vite-plugin-solid/commit/2ea81e1e6aac3e8a25eff3f0deae222d32d3f16c)] 158 | - bump versions [[9395b64](https://github.com/solidjs/vite-plugin-solid/commit/9395b64632d04b860f89109998ae686087e59458)] 159 | - 📝 Update changelog [[04f1081](https://github.com/solidjs/vite-plugin-solid/commit/04f1081853932b169c4ecbc960d56fa6f6fadfa6)] 160 | 161 | 162 | 163 | ## 2.1.2 (2021-11-04) 164 | 165 | ### Changed 166 | 167 | - ⬆️ Update dependencies [[9938081](https://github.com/solidjs/vite-plugin-solid/commit/993808181e46bf7f92ab9fe5b1c908abaca9d395)] 168 | 169 | ### Fixed 170 | 171 | - 🐛 Fix issues where the sourcemap wasn't properly set (fix [#21](https://github.com/solidjs/vite-plugin-solid/issues/21)) [[d12159d](https://github.com/solidjs/vite-plugin-solid/commit/d12159d55f6a0fa16a72521219dc125ddb17a8c7)] 172 | 173 | 174 | 175 | ## 2.1.1 (2021-10-14) 176 | 177 | ### Changed 178 | 179 | - 🔧 Prepare for upcomming vite update around ssr boolean [[b9b3f73](https://github.com/solidjs/vite-plugin-solid/commit/b9b3f73ab22bfc6e3451fbfc21441a06dc3acd9c)] 180 | - ⬆️ Update dependencies [[5701543](https://github.com/solidjs/vite-plugin-solid/commit/5701543cec6a4921cb44dabf70cf6d3e43420fc0)] 181 | 182 | ### Miscellaneous 183 | 184 | - 📝 Remove deprecated section [[942ede6](https://github.com/solidjs/vite-plugin-solid/commit/942ede6bc263903f492a9862f8905d18c5349127)] 185 | 186 | 187 | 188 | ## 2.1.0 (2021-10-02) 189 | 190 | ### Added 191 | 192 | - ✨ Adding opt-in @babel/preset-typescript options [[fd746e6](https://github.com/solidjs/vite-plugin-solid/commit/fd746e6735c84ea51ddcd686b17be0ad7c91bd40)] 193 | 194 | ### Changed 195 | 196 | - ⬆️ Update dependencies [[c6c96d5](https://github.com/solidjs/vite-plugin-solid/commit/c6c96d561fd6291e2756a877d2dfd903f98236a1)] 197 | 198 | ### Removed 199 | 200 | - 🔥 Remove config merging (fix [#20](https://github.com/solidjs/vite-plugin-solid/issues/20)) [[124e7fa](https://github.com/solidjs/vite-plugin-solid/commit/124e7fa68d3b4270e45baed8be3a9d3cd4df1e81)] 201 | 202 | ### Miscellaneous 203 | 204 | - Merge branch 'master' of github.com:solidjs/vite-plugin-solid [[02aaa9f](https://github.com/solidjs/vite-plugin-solid/commit/02aaa9fd3e1f01d5e4f4c7444b7333fac9ab9c6f)] 205 | 206 | 207 | 208 | ## 2.0.2 (2021-08-27) 209 | 210 | ### Added 211 | 212 | - ✨ Add directive to playground to make sure it works [[d506e83](https://github.com/solidjs/vite-plugin-solid/commit/d506e83a7d575b798e7cb4a3551022ee93f8309d)] 213 | 214 | ### Changed 215 | 216 | - ⬆️ Update playground dependencies [[dfadfd7](https://github.com/solidjs/vite-plugin-solid/commit/dfadfd7ba3891f92486db76c7326a2e47d85af8b)] 217 | - ⬆️ Update dependencies [[9a31397](https://github.com/solidjs/vite-plugin-solid/commit/9a31397f3218f93b81b907ad671e20a58d0ba171)] 218 | - 🔧 Add `onlyRemoveTypeImports` on the TS preset [[7c9ad7e](https://github.com/solidjs/vite-plugin-solid/commit/7c9ad7edd65052f8a1f112786ebd7e7c529f8226)] 219 | - 🔧 Fix playground after latest update [[18f8307](https://github.com/solidjs/vite-plugin-solid/commit/18f8307a6f874de3ea5356f98df1fea2a57e3efa)] 220 | - ⬆️ Update to latest dependencies [[4856be5](https://github.com/solidjs/vite-plugin-solid/commit/4856be51360dd2be2104203fdc0c2fd55ffccc87)] 221 | 222 | ### Miscellaneous 223 | 224 | - 📦 Fix lock file [[8740ad6](https://github.com/solidjs/vite-plugin-solid/commit/8740ad6fa4c6e20a6c26a788ea5ca27d9fd2a5cf)] 225 | - 📝 Update readme [[6c18a33](https://github.com/solidjs/vite-plugin-solid/commit/6c18a3387b2160fdf0e8c703bc37c644b8ac4234)] 226 | - Merge pull request [#17](https://github.com/solidjs/vite-plugin-solid/issues/17) from LXSMNSYC/patch-1 [[b03c61b](https://github.com/solidjs/vite-plugin-solid/commit/b03c61b15610f4acc498ecfecdb63299998b7c80)] 227 | - Fix `solid-js` credits pointing to wrong url [[18d8dad](https://github.com/solidjs/vite-plugin-solid/commit/18d8dad1dba68a275535bb9e611f634770f82753)] 228 | - Merge pull request [#16](https://github.com/solidjs/vite-plugin-solid/issues/16) from sprabowo/master [[17da93e](https://github.com/solidjs/vite-plugin-solid/commit/17da93e35e200e29e0869575aa75949b6ceab902)] 229 | - fix: update repo in degit script [[b11624d](https://github.com/solidjs/vite-plugin-solid/commit/b11624db8a9652d04d165054858cbb1b35afe961)] 230 | - Merge pull request [#15](https://github.com/solidjs/vite-plugin-solid/issues/15) from visualfanatic/patch-1 [[b2c64b7](https://github.com/solidjs/vite-plugin-solid/commit/b2c64b7390620ca1cfaea739db788724cfa12b3b)] 231 | - Fix example Vite config [[198e27f](https://github.com/solidjs/vite-plugin-solid/commit/198e27fa8da8dabbbf25dd20e25c770aea73beaf)] 232 | - 📝 Update changelog [[0c76257](https://github.com/solidjs/vite-plugin-solid/commit/0c76257ad2a864793fb48732168b216899d75a32)] 233 | 234 | 235 | 236 | ## 2.0.1 (2021-07-17) 237 | 238 | ### Changed 239 | 240 | - 🔧 Externalize all dependencies [[0ec0692](https://github.com/solidjs/vite-plugin-solid/commit/0ec06926a7bb03d352583d07a84176c8dbe506cd)] 241 | - ⬆️ Update dependencies [[f684995](https://github.com/solidjs/vite-plugin-solid/commit/f684995f378b3ad4055b0bbe93506ec70179c998)] 242 | - ⬆️ Update solid-refresh [[b3180ae](https://github.com/solidjs/vite-plugin-solid/commit/b3180aeb89338bce2b8285df90b359812d6a294a)] 243 | 244 | ### Fixed 245 | 246 | - 🐛 Fix solid-refresh import [[f24ef12](https://github.com/solidjs/vite-plugin-solid/commit/f24ef1200394b839d3c3cec0b89f83bf6e884fe2)] 247 | 248 | 249 | 250 | ## 2.0.0 (2021-06-28) 251 | 252 | ### Added 253 | 254 | - ✨ Adding `babel-preset-solid` options from the vite plugin (fix [#13](https://github.com/solidjs/vite-plugin-solid/issues/13)) [[6759fee](https://github.com/solidjs/vite-plugin-solid/commit/6759fee6e732897c02918c21e6f35bd831a2999e)] 255 | 256 | ### Changed 257 | 258 | - ⬆️ Update to solid 1.0 [[752e47e](https://github.com/solidjs/vite-plugin-solid/commit/752e47e73ef94109e3efd22dafea393edf702f6a)] 259 | 260 | ### Miscellaneous 261 | 262 | - Merge remote-tracking branch 'origin/master' [[66d8501](https://github.com/solidjs/vite-plugin-solid/commit/66d85018959eb6e1b6bb90f8e60c58e0ae26d912)] 263 | - Merge branch 'next' [[6d26d87](https://github.com/solidjs/vite-plugin-solid/commit/6d26d87ba10836347b913aca6cc3f993960076fd)] 264 | - 📝 Update README [[337b022](https://github.com/solidjs/vite-plugin-solid/commit/337b0226143e6b525945d3d6252ccf732e0545f5)] 265 | - 📝 Update readme for solid options [[4550cbf](https://github.com/solidjs/vite-plugin-solid/commit/4550cbf8bf4b5ba828273850396b30f98c4ae435)] 266 | 267 | 268 | 269 | ## 2.0.0-rc.4 (2021-06-25) 270 | 271 | ### Added 272 | 273 | - ✨ Adding new exports to dedupe / deps include [[7b7ca58](https://github.com/solidjs/vite-plugin-solid/commit/7b7ca583d4625e033b016f8b615f59d0fcd38460)] 274 | 275 | ### Changed 276 | 277 | - ⬆️ Update dependencies to latest [[b36514b](https://github.com/solidjs/vite-plugin-solid/commit/b36514ba35fc248b01fadf4cd62fcf647fd841bb)] 278 | 279 | 280 | 281 | ## 2.0.0-rc.3 (2021-06-19) 282 | 283 | ### Changed 284 | 285 | - ⬆️ Update solid-refresh to latest [[3dd8081](https://github.com/solidjs/vite-plugin-solid/commit/3dd8081b353caf9552405c9253b4d86072cc75ed)] 286 | 287 | ### Miscellaneous 288 | 289 | - 📝 Update readme for solid options [[66d35f0](https://github.com/solidjs/vite-plugin-solid/commit/66d35f0761023593dcb05557abad2ca59244cb22)] 290 | 291 | 292 | 293 | ## 2.0.0-rc.2 (2021-06-06) 294 | 295 | ### Added 296 | 297 | - ✨ Adding `babel-preset-solid` options from the vite plugin (fix [#13](https://github.com/solidjs/vite-plugin-solid/issues/13)) [[584d4e9](https://github.com/solidjs/vite-plugin-solid/commit/584d4e98c5b32affeeca625e92524e96a81f4844)] 298 | 299 | ### Changed 300 | 301 | - ⬆️ Update to solid 1.0.0-rc.2 [[b4795bd](https://github.com/solidjs/vite-plugin-solid/commit/b4795bdd7f6dd688ea7bc3f7e63e0b934886bf14)] 302 | 303 | ### Miscellaneous 304 | 305 | - 📝 Update changelog [[6389e88](https://github.com/solidjs/vite-plugin-solid/commit/6389e88f5472abf7cb39cf7e078bda64b05c78f6)] 306 | 307 | 308 | 309 | ## 1.9.0 (2021-06-06) 310 | 311 | ### Added 312 | 313 | - ✨ Adding `babel-preset-solid` options from the vite plugin (fix [#13](https://github.com/solidjs/vite-plugin-solid/issues/13)) [[6759fee](https://github.com/solidjs/vite-plugin-solid/commit/6759fee6e732897c02918c21e6f35bd831a2999e)] 314 | 315 | 316 | 317 | ## 2.0.0-rc.1 (2021-06-02) 318 | 319 | ### Changed 320 | 321 | - ⬆️ Update to solid 1.0.0-rc.2 [[b4795bd](https://github.com/amoutonbrady/vite-plugin-solid/commit/b4795bdd7f6dd688ea7bc3f7e63e0b934886bf14)] 322 | 323 | ### Miscellaneous 324 | 325 | - 📝 Update changelog [[c2bf813](https://github.com/amoutonbrady/vite-plugin-solid/commit/c2bf81380628b5696ca8c5a6f336d0e9613f5e35)] 326 | 327 | 328 | 329 | ## 1.8.0 (2021-05-13) 330 | 331 | ### Changed 332 | 333 | - ⬆️ Update dependencies [[90b8a4c](https://github.com/amoutonbrady/vite-plugin-solid/commit/90b8a4c076ff235d23305e4b14985684c1efad2a)] 334 | 335 | ### Fixed 336 | 337 | - ✏️ Fix typo in the readme regarding opting out of hmr (fix [#10](https://github.com/amoutonbrady/vite-plugin-solid/issues/10)) [[a3720a5](https://github.com/amoutonbrady/vite-plugin-solid/commit/a3720a563d3293b07e0cd9d9690afa91fee5d1d9)] 338 | - 🐛 Make dev mode work in prod when set to true [[84a6eff](https://github.com/amoutonbrady/vite-plugin-solid/commit/84a6eff5de065800ff4be0962a8603ddc60f57ff)] 339 | 340 | ### Miscellaneous 341 | 342 | - Merge pull request [#12](https://github.com/amoutonbrady/vite-plugin-solid/issues/12) from jorroll/monorepo-fix [[ba5d40c](https://github.com/amoutonbrady/vite-plugin-solid/commit/ba5d40c710bef282a88bffae48305abb83a27490)] 343 | - fix: ensure `solid-js` is included in pre-bundle [[7098edc](https://github.com/amoutonbrady/vite-plugin-solid/commit/7098edcceff1af62328203f1dff6ed3edf0746d1)] 344 | - Merge branch 'master' of github.com:amoutonbrady/vite-plugin-solid [[c8a6cfc](https://github.com/amoutonbrady/vite-plugin-solid/commit/c8a6cfc4234f8b0ce48b4e4d200c43b53b21e49f)] 345 | - 📝 Update changelog [[c7590ac](https://github.com/amoutonbrady/vite-plugin-solid/commit/c7590ac38fba0d6720d640fd75386f18122cba99)] 346 | - Merge pull request [#11](https://github.com/amoutonbrady/vite-plugin-solid/issues/11) from jorroll/patch-1 [[25f0cea](https://github.com/amoutonbrady/vite-plugin-solid/commit/25f0ceacfe6f47cd026faa1811cc4ccfa84d18a3)] 347 | - docs: add jsdoc comments for Options interface [[6f0cea9](https://github.com/amoutonbrady/vite-plugin-solid/commit/6f0cea9d76593d4dc59006b6599d01fd1042ff53)] 348 | - fix: export this plugin's options interface [[6d5a31a](https://github.com/amoutonbrady/vite-plugin-solid/commit/6d5a31ae6f1781d00e8fb53f16e730c04558462e)] 349 | 350 | 351 | 352 | ## 1.7.0 (2021-05-08) 353 | 354 | ### Changed 355 | 356 | - ⬆️ Update dependnecies [[baf497a](https://github.com/amoutonbrady/vite-plugin-solid/commit/baf497afc3a144ecff904825e4e3640a58405d3c)] 357 | 358 | ### Miscellaneous 359 | 360 | - 📝 Update changelog [[e2df01b](https://github.com/amoutonbrady/vite-plugin-solid/commit/e2df01b264b346fff8a2386a34f2c989244238dd)] 361 | 362 | 363 | 364 | ## 1.6.0 (2021-04-20) 365 | 366 | ### Changed 367 | 368 | - ⬆️ Update dependencies [[1a2a2d6](https://github.com/amoutonbrady/vite-plugin-solid/commit/1a2a2d6b08abca585b8d9170250daf8541f3ec94)] 369 | 370 | ### Miscellaneous 371 | 372 | - 📝 Adding requirements in the readme [#9](https://github.com/amoutonbrady/vite-plugin-solid/issues/9) [[eb5a019](https://github.com/amoutonbrady/vite-plugin-solid/commit/eb5a0194caec42158ed14d5cd2bd60bfacbf8759)] 373 | - 📝 Update changelog [[94d199d](https://github.com/amoutonbrady/vite-plugin-solid/commit/94d199d2f87c13875e93ef8993672f9b5f070034)] 374 | 375 | 376 | 377 | ## 1.5.1 (2021-04-09) 378 | 379 | ### Changed 380 | 381 | - ⚡ Bake merge-anything into the plugin [[ba1f655](https://github.com/amoutonbrady/vite-plugin-solid/commit/ba1f65562c6b45ea25ccb74ff690e052a4d0ec4e)] 382 | 383 | 384 | 385 | ## 1.5.0 (2021-04-02) 386 | 387 | ### Added 388 | 389 | - ✨ Support "type: module" [[81b28a3](https://github.com/amoutonbrady/vite-plugin-solid/commit/81b28a3681a217ad3b674871133c672d0ef1e4bc)] 390 | - ✨ Adding babel transform options [#7](https://github.com/amoutonbrady/vite-plugin-solid/issues/7) [[a70b7b7](https://github.com/amoutonbrady/vite-plugin-solid/commit/a70b7b707d7200bf1085501b4d74f159c6f7e09c)] 391 | 392 | ### Miscellaneous 393 | 394 | - 📝 Update changelog [[296fa6c](https://github.com/amoutonbrady/vite-plugin-solid/commit/296fa6cbf63162315f2aea74c7038489bbe71d5d)] 395 | 396 | 397 | 398 | ## 1.4.0 (2021-04-01) 399 | 400 | ### Changed 401 | 402 | - ⬆️ Update dependencies [[d065caa](https://github.com/amoutonbrady/vite-plugin-solid/commit/d065caa126cab3b7def1fe3f8c4b8e44df3808a4)] 403 | - 🔧 Configure plugin target to current node fix [#8](https://github.com/amoutonbrady/vite-plugin-solid/issues/8) [[9a0a635](https://github.com/amoutonbrady/vite-plugin-solid/commit/9a0a635400c636ce012142c87456196d8bf74b5d)] 404 | 405 | ### Miscellaneous 406 | 407 | - 📝 Update changelog [[ba5ced3](https://github.com/amoutonbrady/vite-plugin-solid/commit/ba5ced3928f7d059617ec56ac63dbdc52dd16eed)] 408 | 409 | 410 | 411 | ## 1.3.3 (2021-03-25) 412 | 413 | ### Changed 414 | 415 | - ⬆️ Update dependencies [[7e9bec8](https://github.com/amoutonbrady/vite-plugin-solid/commit/7e9bec89b7d72600f38bb6fa60263e1832201d4f)] 416 | 417 | ### Fixed 418 | 419 | - 🐛 Fix legacy alias warning [[847cdfe](https://github.com/amoutonbrady/vite-plugin-solid/commit/847cdfe5e7809be1b29817f382ca1c2659ab400d)] 420 | 421 | 422 | 423 | ## 1.3.2 (2021-03-19) 424 | 425 | ### Fixed 426 | 427 | - 🐛 Force alias to be arrays to properly support config merging fix [#3](https://github.com/amoutonbrady/vite-plugin-solid/issues/3) [[9ffe0e5](https://github.com/amoutonbrady/vite-plugin-solid/commit/9ffe0e5989a36c8871a01f8aa767d8a7d57f089a)] 428 | 429 | ### Miscellaneous 430 | 431 | - 📝 Updating changelog [[af0ab70](https://github.com/amoutonbrady/vite-plugin-solid/commit/af0ab7039950792ea1778955cc9eb4f46999aac7)] 432 | 433 | 434 | 435 | ## 1.3.1 (2021-03-15) 436 | 437 | ### Fixed 438 | 439 | - 🐛 Merge arrays together' [[a2e7837](https://github.com/amoutonbrady/vite-plugin-solid/commit/a2e783716c8bb2e304e03a562cfcaaa0a2c3831f)] 440 | 441 | ### Miscellaneous 442 | 443 | - 📝 Adding changelog [[2b2ade7](https://github.com/amoutonbrady/vite-plugin-solid/commit/2b2ade70c7d85237a47e403f4f41426505eeb1c5)] 444 | 445 | 446 | 447 | ## 1.3.0 (2021-03-09) 448 | 449 | ### Fixed 450 | 451 | - 🐛 Fix HMR warning and remove peerDeps [[2a93fb5](https://github.com/amoutonbrady/vite-plugin-solid/commit/2a93fb59b39a98f1931e259bd2d72cc0dba4f161)] 452 | 453 | 454 | 455 | ## 1.2.4 (2021-03-08) 456 | 457 | ### Fixed 458 | 459 | - 🐛 Fix deepmerge config issue + patch [[ea5225b](https://github.com/amoutonbrady/vite-plugin-solid/commit/ea5225b199972f1266e483723fd1ac1d3af40a4d)] 460 | 461 | 462 | 463 | ## 1.2.3 (2021-03-08) 464 | 465 | ### Changed 466 | 467 | - ⬆️ Update dependencies [[079503b](https://github.com/amoutonbrady/vite-plugin-solid/commit/079503b2b60b2cd9dffa69ea74d182a4269c9760)] 468 | 469 | ### Miscellaneous 470 | 471 | - 💩 Apply patch for the babel warning [[6e71e80](https://github.com/amoutonbrady/vite-plugin-solid/commit/6e71e80b79cbcc68499ca3aadf905b40bf59f739)] 472 | - Merge pull request [#5](https://github.com/amoutonbrady/vite-plugin-solid/issues/5) from aminya/patch-1 [[79165cd](https://github.com/amoutonbrady/vite-plugin-solid/commit/79165cd9874cd1c0e7698e600508f6a01847f957)] 473 | - fix start command in the readme [[85d08e2](https://github.com/amoutonbrady/vite-plugin-solid/commit/85d08e2eac1a310a7944e044650fe160ada64cbd)] 474 | - Merge pull request [#4](https://github.com/amoutonbrady/vite-plugin-solid/issues/4) from maksimsemenov/respect-alias-in-user-config fixes [#3](https://github.com/amoutonbrady/vite-plugin-solid/issues/3) [[30e0442](https://github.com/amoutonbrady/vite-plugin-solid/commit/30e0442641d010d77131d985d006e73bba846b12)] 475 | - Use map instead of reduce [[cb869a5](https://github.com/amoutonbrady/vite-plugin-solid/commit/cb869a52cee9662211b7153b10adadf629e9955b)] 476 | - Resolve user alias config [[d775f6c](https://github.com/amoutonbrady/vite-plugin-solid/commit/d775f6c996a3c12a54e7af18492178f0fc832e1a)] 477 | 478 | 479 | 480 | ## 1.2.2 (2021-03-04) 481 | 482 | ### Changed 483 | 484 | - ⬆️ Update dependencies (solid-refresh) [[3d74b58](https://github.com/amoutonbrady/vite-plugin-solid/commit/3d74b5841c8c0fa8e7c1827b41de7ba0f30a1a09)] 485 | 486 | 487 | 488 | ## 1.2.1 (2021-03-02) 489 | 490 | ### Changed 491 | 492 | - ⬆️ Update dependencies [[272d553](https://github.com/amoutonbrady/vite-plugin-solid/commit/272d5537a7f9983e6a6c684965b97c0d6174fd57)] 493 | - ⬆️ Update dependencies [[5baddad](https://github.com/amoutonbrady/vite-plugin-solid/commit/5baddad7ac366fd11b4e8dae184954cbfcd717a5)] 494 | 495 | ### Miscellaneous 496 | 497 | - 📝 Update README for broken dependencies [[2dad73a](https://github.com/amoutonbrady/vite-plugin-solid/commit/2dad73a31a0b25c806ab62dbfc24f77b72d14912)] 498 | 499 | 500 | 501 | ## 1.2.0 (2021-02-22) 502 | 503 | ### Changed 504 | 505 | - ⬆️ Update dependencies (and resolve solid export mapping) [[a7f5ee8](https://github.com/amoutonbrady/vite-plugin-solid/commit/a7f5ee898e2e4b5b29efe1c58fade08910bca7ef)] 506 | 507 | 508 | 509 | ## 1.1.3 (2021-02-22) 510 | 511 | ### Changed 512 | 513 | - ⬆️ Update dependencies [[e55e8cd](https://github.com/amoutonbrady/vite-plugin-solid/commit/e55e8cdd564eed2ed2e537d53f3d70305650fa90)] 514 | 515 | 516 | 517 | ## 1.1.2 (2021-02-20) 518 | 519 | ### Fixed 520 | 521 | - 🐛 Fix solid-refresh dependency [[71af74e](https://github.com/amoutonbrady/vite-plugin-solid/commit/71af74e0dce778d07bb07ab6952a0f10c7870bbe)] 522 | 523 | 524 | 525 | ## 1.1.1 (2021-02-20) 526 | 527 | ### Changed 528 | 529 | - 🔧 Make solid-refresh a dependency instead of a devDependency [[c9a862b](https://github.com/amoutonbrady/vite-plugin-solid/commit/c9a862bb170583a505924b57e5a37321a2b7b5a8)] 530 | 531 | ### Miscellaneous 532 | 533 | - 📝 Adding a demo gif [[85c8e6e](https://github.com/amoutonbrady/vite-plugin-solid/commit/85c8e6e9c1824e107ef8ff70d4d139d529797d5f)] 534 | 535 | 536 | 537 | ## 1.1.0 (2021-02-20) 538 | 539 | ### Added 540 | 541 | - ✨ HMR is here! [[949f7e1](https://github.com/amoutonbrady/vite-plugin-solid/commit/949f7e1e3cddd8a4a71e0e53793ac6ba8c73321f)] 542 | 543 | ### Miscellaneous 544 | 545 | - 📝 Update README for HMR [[8d48bb0](https://github.com/amoutonbrady/vite-plugin-solid/commit/8d48bb070b4c361537e95c77c95c099f2c5b04bb)] 546 | 547 | 548 | 549 | ## 1.0.0 (2021-02-17) 550 | 551 | ### Changed 552 | 553 | - 🔧 Make sure the compiled output works [[00651db](https://github.com/amoutonbrady/vite-plugin-solid/commit/00651db6b0ab1ee8c1c44b7dffbd2562b5acf23b)] 554 | - ♻️ Refactor a bit the plugin [[481f74b](https://github.com/amoutonbrady/vite-plugin-solid/commit/481f74bf89e0e54d16ee05bcbc4735cb66023366)] 555 | - ⬆️ Update dependencies [[2af8a39](https://github.com/amoutonbrady/vite-plugin-solid/commit/2af8a39b46c14b341b98d4482436640b7f3a2eb0)] 556 | 557 | ### Miscellaneous 558 | 559 | - 🏷️ Fixing some types & indentation [[c9bb615](https://github.com/amoutonbrady/vite-plugin-solid/commit/c9bb61576da69ed60e0e1b3e35d44ce02350fcf3)] 560 | 561 | 562 | 563 | ## 0.9.1 (2021-02-13) 564 | 565 | ### Fixed 566 | 567 | - 🐛 Fix SSR bug [[2eeefe9](https://github.com/amoutonbrady/vite-plugin-solid/commit/2eeefe93a7496b05ebc07d3026e66b789c8bb078)] 568 | 569 | 570 | 571 | ## 0.9.0 (2021-02-13) 572 | 573 | ### Added 574 | 575 | - ✨ Adding hacky SSR [[720832a](https://github.com/amoutonbrady/vite-plugin-solid/commit/720832ac5dbc88dcc0bd4e7c4bbaac32b505e4c5)] 576 | 577 | 578 | 579 | ## 0.8.3 (2021-02-12) 580 | 581 | ### Added 582 | 583 | - ✨ Aliasing solid-js for solid-js/dev in dev mode [[4ef6a4f](https://github.com/amoutonbrady/vite-plugin-solid/commit/4ef6a4f845a84e49ee91706387706c45ef928234)] 584 | 585 | ### Changed 586 | 587 | - ⬆️ Update dependencies [[6c37c39](https://github.com/amoutonbrady/vite-plugin-solid/commit/6c37c39992998e38858a33c9da260f03b124e5a5)] 588 | 589 | 590 | 591 | ## 0.8.2 (2021-02-11) 592 | 593 | ### Removed 594 | 595 | - 🔇 Remove logs [[54c2bb5](https://github.com/amoutonbrady/vite-plugin-solid/commit/54c2bb576d09a9858dcc4ffe52bef42603a927d7)] 596 | 597 | 598 | 599 | ## 0.8.1 (2021-02-11) 600 | 601 | ### Added 602 | 603 | - ✅ Added extra check in the playground [[418d494](https://github.com/amoutonbrady/vite-plugin-solid/commit/418d494fc05077776a87d973e0828cb43741a935)] 604 | 605 | ### Changed 606 | 607 | - ♻️ Simplified resolve rules [[55ef16b](https://github.com/amoutonbrady/vite-plugin-solid/commit/55ef16b09dcfc8a27647cf4b78d5e7edf11e498b)] 608 | - ⬆️ Update dependencies [[e91b9a0](https://github.com/amoutonbrady/vite-plugin-solid/commit/e91b9a00f74546a634d3c5a1b9cef1ca97670a0a)] 609 | 610 | 611 | 612 | ## 0.8.0 (2021-02-04) 613 | 614 | ### Changed 615 | 616 | - ⬆️ Update to solid 0.24 [[a87ea3f](https://github.com/amoutonbrady/vite-plugin-solid/commit/a87ea3fdef3e6c037ac2e41c5ce61b3f5add6bf9)] 617 | 618 | 619 | 620 | ## 0.7.1 (2021-01-30) 621 | 622 | ### Changed 623 | 624 | - ⬆️ Update dependencies and minor fixes [[b37df18](https://github.com/amoutonbrady/vite-plugin-solid/commit/b37df186f13760a7a5c65454b3c33e2983137dd1)] 625 | 626 | 627 | 628 | ## 0.7.0 (2021-01-23) 629 | 630 | ### Changed 631 | 632 | - 🔧 Adjusting the playground accordingly [[b723b26](https://github.com/amoutonbrady/vite-plugin-solid/commit/b723b2665b4c4672b3b2cc32a23d444c8ec0a331)] 633 | - ♻️ Drastically simplify the plugin thanks to newer version of vite [[6fb5f87](https://github.com/amoutonbrady/vite-plugin-solid/commit/6fb5f87931e25c6c28fe853db8dddc56231aa774)] 634 | - ⬆️ Update dependencies [[e9212ac](https://github.com/amoutonbrady/vite-plugin-solid/commit/e9212ac396e0ccd4a6c9f2a8250b71fc7bcd65f9)] 635 | - ⬆️ Update dependencies [[6fbe325](https://github.com/amoutonbrady/vite-plugin-solid/commit/6fbe325c16a14ad431dbc707ee20143eedac8629)] 636 | - ⬆️ Update dependencies [[0d25ea3](https://github.com/amoutonbrady/vite-plugin-solid/commit/0d25ea3d0b253a8b2ab4d95dc2b2056d2aa3968c)] 637 | 638 | ### Fixed 639 | 640 | - ✏️ Fix typo [[0431ded](https://github.com/amoutonbrady/vite-plugin-solid/commit/0431ded78484d191b05f733c13ab1a9917aafd0b)] 641 | 642 | 643 | 644 | ## 0.6.0 (2021-01-04) 645 | 646 | ### Added 647 | 648 | - ✨ Improved and document the code based on the vue jsx plugin [[531b698](https://github.com/amoutonbrady/vite-plugin-solid/commit/531b698f0636297ff441a703e80c0823127fcd80)] 649 | 650 | 651 | 652 | ## 0.5.0 (2021-01-02) 653 | 654 | ### Added 655 | 656 | - ➕ Adding prettier [[91779f4](https://github.com/amoutonbrady/vite-plugin-solid/commit/91779f4a1b3a08723e1a0872ff363ec9cd57b38d)] 657 | - ✨ Adding a testing playground [[75126cf](https://github.com/amoutonbrady/vite-plugin-solid/commit/75126cfb0944e206fb2b0c30880d1b03c1a25ac1)] 658 | - ✨ Rewriting for vite 2 [[c82e81f](https://github.com/amoutonbrady/vite-plugin-solid/commit/c82e81fa135a6a621398883e7ceae1db8aa0a742)] 659 | 660 | ### Changed 661 | 662 | - 🔧 Adding package check + publish hook [[499ac04](https://github.com/amoutonbrady/vite-plugin-solid/commit/499ac0440e6e35a89021fdc8c60a44b51ce7776e)] 663 | 664 | ### Fixed 665 | 666 | - 🐛 Fix HMR issue 2 [[ab27288](https://github.com/amoutonbrady/vite-plugin-solid/commit/ab27288440e918f86d8b5462802693f624df139c)] 667 | 668 | ### Miscellaneous 669 | 670 | - 📝 Adding disclaimer to readme [[99c2ef7](https://github.com/amoutonbrady/vite-plugin-solid/commit/99c2ef74854eacd18090dee16dbdfb2a5adc4f56)] 671 | - 📝 Updating readme for vite 2 [[298205f](https://github.com/amoutonbrady/vite-plugin-solid/commit/298205f1037a665969cbc1a213d3042a6c0b4e91)] 672 | 673 | 674 | 675 | ## 0.4.1 (2020-11-23) 676 | 677 | ### Changed 678 | 679 | - ⬆️ Update dependencies [[844ec9c](https://github.com/amoutonbrady/vite-plugin-solid/commit/844ec9c0799049241ce007d254ea3de128883070)] 680 | 681 | ### Fixed 682 | 683 | - 🐛 Fix HMR issue [[e521e35](https://github.com/amoutonbrady/vite-plugin-solid/commit/e521e3516f05d143012033b86ef09ef49f57e32e)] 684 | 685 | ### Miscellaneous 686 | 687 | - Merge pull request [#1](https://github.com/amoutonbrady/vite-plugin-solid/issues/1) from boogerlad/master [[1261690](https://github.com/amoutonbrady/vite-plugin-solid/commit/1261690d50bb47702f1c46d68ad0985ab8ab0642)] 688 | - remove redundant textContent = '' for HMR since as of solid 0.21.0 it's handled by dom expressions [[2dfe316](https://github.com/amoutonbrady/vite-plugin-solid/commit/2dfe316f26930e99a9c3dcdc2b48c4e1f73b93e1)] 689 | 690 | 691 | 692 | ## 0.3.0 (2020-11-06) 693 | 694 | ### Changed 695 | 696 | - ⬆️ Update dependencies for V1 [[ca68e35](https://github.com/amoutonbrady/vite-plugin-solid/commit/ca68e35c296d8aac46e243e9245337d3b6d52704)] 697 | - ⬆️ Update to yarn 2 + solid 0.20 + clean up deps [[1106de0](https://github.com/amoutonbrady/vite-plugin-solid/commit/1106de0b5e7bd596f58a4c14bb2584a884b9aa62)] 698 | 699 | ### Miscellaneous 700 | 701 | - Merge branch 'release/0.1.1' into develop [[cb7698e](https://github.com/amoutonbrady/vite-plugin-solid/commit/cb7698e376a78e5f062c9c4f153cab4b9c97d7b0)] 702 | 703 | 704 | 705 | ## 0.1.1 (2020-08-13) 706 | 707 | ### Changed 708 | 709 | - ⬆️ Update dependencies [[3e04f31](https://github.com/amoutonbrady/vite-plugin-solid/commit/3e04f3158c4ea0c8907c7d3fadea4a30b2bd9f4f)] 710 | 711 | 712 | 713 | ## 0.1.0 (2020-07-31) 714 | 715 | ### Added 716 | 717 | - ✨ auto. hmr [[d96fcf2](https://github.com/amoutonbrady/vite-plugin-solid/commit/d96fcf2bfeb8e176dd79307dbd3f3e9dc62b2973)] 718 | 719 | ### Changed 720 | 721 | - ⬆️ update dependencies [[bfa4da5](https://github.com/amoutonbrady/vite-plugin-solid/commit/bfa4da567115a5346e57adbe0406a9f5f83886bc)] 722 | 723 | ### Miscellaneous 724 | 725 | - Merge branch 'develop' into main [[fce4c49](https://github.com/amoutonbrady/vite-plugin-solid/commit/fce4c491d63f23d6c1ec51dccce23f29c4901415)] 726 | - uh [[1dd1989](https://github.com/amoutonbrady/vite-plugin-solid/commit/1dd19895ee9653fd907aaad4a774721a7a0ad9f2)] 727 | - Merge branch 'release/0.0.4' into develop [[e7bd88d](https://github.com/amoutonbrady/vite-plugin-solid/commit/e7bd88d23e2c0e082b02a516725ec58a0710d4ba)] 728 | 729 | 730 | 731 | ## 0.0.4 (2020-07-21) 732 | 733 | ### Changed 734 | 735 | - ⬆️ Update dependencies [[a1fd000](https://github.com/amoutonbrady/vite-plugin-solid/commit/a1fd00027cdf0ec67c366e8c5d12fb5dee493940)] 736 | - 🔧 Try to fix missing dependencies [[340d82a](https://github.com/amoutonbrady/vite-plugin-solid/commit/340d82af3cd380ffb58bad754b76b107c94165ed)] 737 | 738 | ### Miscellaneous 739 | 740 | - Merge branch 'release/0.0.4' into main [[1855560](https://github.com/amoutonbrady/vite-plugin-solid/commit/18555608eeae7a96a4193d2c6e12d6f80b51ec78)] 741 | - Merge remote-tracking branch 'origin/develop' into develop [[b852754](https://github.com/amoutonbrady/vite-plugin-solid/commit/b85275415817d0b9402ac6634f8b0d23cd2fcb70)] 742 | - 📝 Added a troubleshoooting section [[6532b51](https://github.com/amoutonbrady/vite-plugin-solid/commit/6532b51a59a0c248aa9c46e8f4703fb64ccf7002)] 743 | - 📝 Update quickstart section to include the template [[17684c7](https://github.com/amoutonbrady/vite-plugin-solid/commit/17684c7c47cb2298408900d711b43a973c68bc5f)] 744 | - Merge branch 'develop' into main [[0f91383](https://github.com/amoutonbrady/vite-plugin-solid/commit/0f913830893275a88f0096c20838b1e1032a7f5f)] 745 | - Merge branch 'release/0.0.3' into main [[bb1c59b](https://github.com/amoutonbrady/vite-plugin-solid/commit/bb1c59bb1650240aa7d65cec4a9b53f1af46a24b)] 746 | - Merge branch 'release/0.0.2' into develop [[acd49de](https://github.com/amoutonbrady/vite-plugin-solid/commit/acd49de622408a348e04767563941d57a3f23c87)] 747 | 748 | 749 | 750 | ## 0.0.2 (2020-07-12) 751 | 752 | ### Changed 753 | 754 | - 🔧 Export file to CJS [[fb5ed9c](https://github.com/amoutonbrady/vite-plugin-solid/commit/fb5ed9c0d08018f24f7fcf6041a3507adc3a3054)] 755 | 756 | ### Miscellaneous 757 | 758 | - Merge branch 'release/0.0.2' into main [[dda3822](https://github.com/amoutonbrady/vite-plugin-solid/commit/dda382268a9384028c1ca85c84c0ba6e25755433)] 759 | - Merge branch 'main' into develop [[19cd994](https://github.com/amoutonbrady/vite-plugin-solid/commit/19cd994f7c7fbb490bfe9dc251e7fe1012b29748)] 760 | - 📦 Update package.json for release [[865fc11](https://github.com/amoutonbrady/vite-plugin-solid/commit/865fc119148115d30ffce3b2b45e75c768fe631d)] 761 | 762 | 763 | 764 | ## 0.0.1 (2020-07-12) 765 | 766 | ### Added 767 | 768 | - 🎉 Initial commit [[004bebf](https://github.com/amoutonbrady/vite-plugin-solid/commit/004bebf08ad0f12b458dfbf6288113f5727fc987)] 769 | 770 | ### Miscellaneous 771 | 772 | - 📝 Improve README [[2de0927](https://github.com/amoutonbrady/vite-plugin-solid/commit/2de09279b63096a9379523fab69860194fc79ed3)] 773 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Solid Vite Plugin 3 |

4 | 5 | # ⚡ vite-plugin-solid 6 | 7 | A simple integration to run [solid-js](https://github.com/solidjs/solid) with [vite](https://github.com/vitejs/vite) 8 | 9 | HMR gif demonstrationdemodemodemo 10 | 11 | # Got a question? / Need help? 12 | 13 | Join [solid discord](https://discord.com/invite/solidjs) and check the [troubleshooting section](#troubleshooting) to see if your question hasn't been already answered. 14 | 15 | ## Features 16 | 17 | - HMR with no configuration needed 18 | - Drop-in installation as a vite plugin 19 | - Minimal bundle size 20 | - Support typescript (`.tsx`) out of the box 21 | - Support code splitting out of the box 22 | 23 | ## Requirements 24 | 25 | This module 100% ESM compatible and requires NodeJS `14.18.0` or later. 26 | 27 | You can check your current version of NodeJS by typing `node -v` in your terminal. If your version is below that one version I'd encourage you to either do an update globally or use a NodeJS version management tool such as [Volta](https://volta.sh/) or [nvm](https://github.com/nvm-sh/nvm). 28 | 29 | ## Quickstart 30 | 31 | You can use the [vite-template-solid](https://github.com/solidjs/templates) starter templates similar to CRA: 32 | 33 | ```bash 34 | $ npx degit solidjs/templates/js my-solid-project 35 | $ cd my-solid-project 36 | $ npm install # or pnpm install or yarn install 37 | $ npm run start # starts dev-server with hot-module-reloading 38 | $ npm run build # builds to /dist 39 | ``` 40 | 41 | ## Installation 42 | 43 | Install `vite`, `vite-plugin-solid` as dev dependencies. 44 | 45 | Install `solid-js` as dependency. 46 | 47 | You have to install those so that you are in control to which solid version is used to compile your code. 48 | 49 | ```bash 50 | # with npm 51 | $ npm install -D vite vite-plugin-solid 52 | $ npm install solid-js 53 | 54 | # with pnpm 55 | $ pnpm add -D vite vite-plugin-solid 56 | $ pnpm add solid-js 57 | 58 | # with yarn 59 | $ yarn add -D vite vite-plugin-solid 60 | $ yarn add solid-js 61 | ``` 62 | 63 | Add it as plugin to `vite.config.js` 64 | 65 | ```js 66 | // vite.config.ts 67 | import { defineConfig } from 'vite'; 68 | import solidPlugin from 'vite-plugin-solid'; 69 | 70 | export default defineConfig({ 71 | plugins: [solidPlugin()], 72 | }); 73 | ``` 74 | 75 | ## Run 76 | 77 | Just use regular `vite` or `vite build` commands 78 | 79 | ```json 80 | { 81 | "scripts": { 82 | "dev": "vite", 83 | "build": "vite build" 84 | } 85 | } 86 | ``` 87 | 88 | ## API 89 | 90 | ### options 91 | 92 | - Type: Object 93 | - Default: {} 94 | 95 | #### options.include 96 | 97 | - Type: (string | RegExp)[] | string | RegExp | null 98 | - Default: undefined 99 | 100 | A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files the plugin should operate on. 101 | 102 | #### options.exclude 103 | 104 | - Type: (string | RegExp)[] | string | RegExp | null 105 | - Default: undefined 106 | 107 | A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files to be ignored by the plugin. 108 | 109 | #### options.dev 110 | 111 | - Type: Boolean 112 | - Default: true 113 | 114 | This will inject `solid-js/dev` in place of `solid-js` in dev mode. Has no effect in prod. 115 | If set to false, it won't inject it in dev. 116 | This is useful for extra logs and debug. 117 | 118 | #### options.hot 119 | 120 | - Type: Boolean 121 | - Default: true 122 | 123 | This will inject HMR runtime in dev mode. Has no effect in prod. 124 | If set to false, it won't inject the runtime in dev. 125 | 126 | #### options.ssr 127 | 128 | - Type: Boolean 129 | - Default: false 130 | 131 | This will force SSR code in the produced files. 132 | 133 | #### options.babel 134 | 135 | - Type: Babel.TransformOptions 136 | - Default: {} 137 | 138 | Pass any additional [babel transform options](https://babeljs.io/docs/en/options). Those will be merged with the transformations required by Solid. 139 | 140 | #### options.solid 141 | 142 | - Type: [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options) 143 | - Default: {} 144 | 145 | Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options). 146 | They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25). 147 | 148 | #### options.typescript 149 | 150 | - Type: [@babel/preset-typescript](https://babeljs.io/docs/en/babel-preset-typescript) 151 | - Default: {} 152 | 153 | Pass any additional [@babel/preset-typescript](https://babeljs.io/docs/en/babel-preset-typescript). 154 | 155 | #### options.extensions 156 | 157 | - Type: (string, [string, { typescript: boolean }])[] 158 | - Default: [] 159 | 160 | An array of custom extension that will be passed through the solid compiler. 161 | By default, the plugin only transform `jsx` and `tsx` files. 162 | This is useful if you want to transform `mdx` files for example. 163 | 164 | ## Note on HMR 165 | 166 | Starting from version `1.1.0`, this plugin handle automatic HMR via [solid-refresh](https://github.com/solidjs/solid-refresh). 167 | 168 | At this stage it's still early work but provide basic HMR. In order to get the best out of it there are couple of things to keep in mind: 169 | 170 | - When you modify a file every state below this component will be reset to default state (including the current file). The state in parent component is preserved. 171 | 172 | - The entrypoint can't benefit from HMR yet and will force a hard reload of the entire app. This is still really fast thanks to browser caching. 173 | 174 | If at least one of this point is blocking to you, you can revert to the old behavior by [opting out the automatic HMR](#options) and placing the following snippet in your entry point: 175 | 176 | ```jsx 177 | const dispose = render(() => , document.body); 178 | 179 | if (import.meta.hot) { 180 | import.meta.hot.accept(); 181 | import.meta.hot.dispose(dispose); 182 | } 183 | ``` 184 | 185 | # Troubleshooting 186 | 187 | - It appears that Webstorm generate some weird triggers when saving a file. In order to prevent that you can follow [this thread](https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000154544-I-m-having-a-huge-problem-with-Webstorm-and-react-hot-loader-) and disable the **"Safe Write"** option in **"Settings | Appearance & Behavior | System Settings"**. 188 | 189 | - If one of your dependency spit out React code instead of Solid that means that they don't expose JSX properly. To get around it, you might want to manually exclude it from the [dependencies optimization](https://vitejs.dev/config/dep-optimization-options.html#optimizedeps-exclude) 190 | 191 | - If you are trying to make [directives](https://www.solidjs.com/docs/latest/api#use%3A___) work, and they somehow don't try setting the `options.typescript.onlyRemoveTypeImports` option to `true` 192 | 193 | ## Migration from v1 194 | 195 | The master branch now target vite 2. 196 | 197 | The main breaking change from previous version is that the package has been renamed from `@amoutonbrady/vite-plugin-solid` to `vite-plugin-solid`. 198 | 199 | For other breaking changes, check [the migration guide of vite](https://vitejs.dev/guide/migration.html). 200 | 201 | # Testing 202 | 203 | If you are using [vitest](https://vitest.dev/), this plugin already injects the necessary configuration for you. It even automatically detects if you have `@testing-library/jest-dom` installed in your project and automatically adds it to the `setupFiles`. All you need to add (if you want) is `globals`, `coverage`, and other testing configuration of your choice. If you can live without those, enjoy using vitest without the need to configure it yourself. 204 | 205 | # Credits 206 | 207 | - [solid-js](https://github.com/solidjs/solid) 208 | - [vite](https://github.com/vitejs/vite) 209 | -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/vite-plugin-solid/5b6d8ac271470fdfdad5d4f2a5ce4880bc5f9b93/banner.png -------------------------------------------------------------------------------- /cypress.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'cypress' 2 | import vitePreprocessor from 'cypress-vite' 3 | 4 | export default defineConfig({ 5 | e2e: { 6 | baseUrl: 'http://localhost:4173', 7 | supportFile: 'cypress/support/e2e.ts', 8 | specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', 9 | setupNodeEvents(on) { 10 | on('file:preprocessor', vitePreprocessor()) 11 | }, 12 | env: { 13 | example: '', 14 | } 15 | }, 16 | }) 17 | -------------------------------------------------------------------------------- /cypress/e2e/examples.cy.ts: -------------------------------------------------------------------------------- 1 | describe('Vite Plugin Solid Examples', () => { 2 | it('should increment counter correctly', () => { 3 | cy.visit('/') 4 | cy.get('h1').contains('Count: 0') 5 | cy.contains('button', 'Increment').click() 6 | cy.get('h1').contains('Count: 1') 7 | }) 8 | }) -------------------------------------------------------------------------------- /cypress/support/e2e.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/vite-plugin-solid/5b6d8ac271470fdfdad5d4f2a5ce4880bc5f9b93/cypress/support/e2e.ts -------------------------------------------------------------------------------- /examples/vite-3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/vite-3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "private": "true", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "devDependencies": { 11 | "vite": "^3.2.7", 12 | "vite-plugin-solid": "workspace:*" 13 | }, 14 | "dependencies": { 15 | "solid-js": "catalog:" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/vite-3/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { onCleanup, onMount } from "solid-js"; 2 | import { CounterProvider, useCounter } from "./CounterContext"; 3 | 4 | const title = 'Count'; 5 | 6 | function Count() { 7 | const counter = useCounter(); 8 | onMount(() => { 9 | console.log('Mounted Count'); 10 | }); 11 | onCleanup(() => { 12 | console.log('Unmounted Count'); 13 | }); 14 | return ( 15 |

{title}: {counter.value()}

16 | ); 17 | } 18 | 19 | function Increment() { 20 | const counter = useCounter(); 21 | onMount(() => { 22 | console.log('Mounted Increment'); 23 | }); 24 | onCleanup(() => { 25 | console.log('Unmounted Increment'); 26 | }); 27 | return ( 28 | 31 | ); 32 | } 33 | 34 | function Decrement() { 35 | const counter = useCounter(); 36 | onMount(() => { 37 | console.log('Mounted Decrement'); 38 | }); 39 | onCleanup(() => { 40 | console.log('Unmounted Decrement'); 41 | }); 42 | return ( 43 | 46 | ); 47 | } 48 | 49 | export default function App() { 50 | onMount(() => { 51 | console.log('Mounted App'); 52 | }); 53 | onCleanup(() => { 54 | console.log('Unmounted App'); 55 | }); 56 | 57 | return ( 58 | 59 | 60 | 61 | 62 | 63 | ); 64 | } -------------------------------------------------------------------------------- /examples/vite-3/src/CounterContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext, createSignal, JSX, onCleanup, onMount, useContext } from "solid-js"; 2 | 3 | interface CounterContext { 4 | value(): number; 5 | increment(): void; 6 | decrement(): void; 7 | } 8 | 9 | 10 | const CounterContext = createContext(); 11 | 12 | export function useCounter() { 13 | const ctx = useContext(CounterContext); 14 | if (!ctx) { 15 | throw new Error('Missing CounterContext'); 16 | } 17 | return ctx; 18 | } 19 | 20 | export function CounterProvider(props: { children: JSX.Element }) { 21 | const [value, setValue] = createSignal(0); 22 | 23 | function increment() { 24 | setValue((c) => c + 1); 25 | } 26 | 27 | function decrement() { 28 | setValue((c) => c - 1); 29 | } 30 | onMount(() => { 31 | console.log('Mounted CounterProvider'); 32 | }); 33 | onCleanup(() => { 34 | console.log('Unmounted CounterProvider'); 35 | }); 36 | 37 | return ( 38 | 39 |

Counter

40 | {props.children} 41 |
42 | ); 43 | } 44 | -------------------------------------------------------------------------------- /examples/vite-3/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { render } from 'solid-js/web'; 2 | import App from './App'; 3 | 4 | const app = document.getElementById('app'); 5 | 6 | if (app) { 7 | render(() => , app); 8 | } -------------------------------------------------------------------------------- /examples/vite-3/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "allowSyntheticDefaultImports": true, 6 | "esModuleInterop": true, 7 | "resolveJsonModule": true, 8 | "moduleResolution": "node", 9 | "jsx": "preserve", 10 | "jsxImportSource": "solid-js", 11 | "types": ["vite/client"], 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": ["./pages/*"], 15 | "@@/*": ["./assets/*"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/vite-3/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import solidPlugin from 'vite-plugin-solid'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | solidPlugin(), 7 | ], 8 | }); -------------------------------------------------------------------------------- /examples/vite-4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/vite-4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "private": "true", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "devDependencies": { 11 | "vite": "^4.1.5", 12 | "vite-plugin-solid": "workspace:*" 13 | }, 14 | "dependencies": { 15 | "solid-js": "catalog:" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/vite-4/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { onCleanup, onMount } from "solid-js"; 2 | import { CounterProvider, useCounter } from "./CounterContext"; 3 | 4 | const title = 'Count'; 5 | 6 | function Count() { 7 | const counter = useCounter(); 8 | onMount(() => { 9 | console.log('Mounted Count'); 10 | }); 11 | onCleanup(() => { 12 | console.log('Unmounted Count'); 13 | }); 14 | return ( 15 |

{title}: {counter.value()}

16 | ); 17 | } 18 | 19 | function Increment() { 20 | const counter = useCounter(); 21 | onMount(() => { 22 | console.log('Mounted Increment'); 23 | }); 24 | onCleanup(() => { 25 | console.log('Unmounted Increment'); 26 | }); 27 | return ( 28 | 31 | ); 32 | } 33 | 34 | function Decrement() { 35 | const counter = useCounter(); 36 | onMount(() => { 37 | console.log('Mounted Decrement'); 38 | }); 39 | onCleanup(() => { 40 | console.log('Unmounted Decrement'); 41 | }); 42 | return ( 43 | 46 | ); 47 | } 48 | 49 | export default function App() { 50 | onMount(() => { 51 | console.log('Mounted App'); 52 | }); 53 | onCleanup(() => { 54 | console.log('Unmounted App'); 55 | }); 56 | 57 | return ( 58 | 59 | 60 | 61 | 62 | 63 | ); 64 | } -------------------------------------------------------------------------------- /examples/vite-4/src/CounterContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext, createSignal, JSX, onCleanup, onMount, useContext } from "solid-js"; 2 | 3 | interface CounterContext { 4 | value(): number; 5 | increment(): void; 6 | decrement(): void; 7 | } 8 | 9 | 10 | const CounterContext = createContext(); 11 | 12 | export function useCounter() { 13 | const ctx = useContext(CounterContext); 14 | if (!ctx) { 15 | throw new Error('Missing CounterContext'); 16 | } 17 | return ctx; 18 | } 19 | 20 | export function CounterProvider(props: { children: JSX.Element }) { 21 | const [value, setValue] = createSignal(0); 22 | 23 | function increment() { 24 | setValue((c) => c + 1); 25 | } 26 | 27 | function decrement() { 28 | setValue((c) => c - 1); 29 | } 30 | onMount(() => { 31 | console.log('Mounted CounterProvider'); 32 | }); 33 | onCleanup(() => { 34 | console.log('Unmounted CounterProvider'); 35 | }); 36 | 37 | return ( 38 | 39 |

Counter

40 | {props.children} 41 |
42 | ); 43 | } 44 | -------------------------------------------------------------------------------- /examples/vite-4/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { render } from 'solid-js/web'; 2 | import App from './App'; 3 | 4 | const app = document.getElementById('app'); 5 | 6 | if (app) { 7 | render(() => , app); 8 | } -------------------------------------------------------------------------------- /examples/vite-4/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "allowSyntheticDefaultImports": true, 6 | "esModuleInterop": true, 7 | "resolveJsonModule": true, 8 | "moduleResolution": "node", 9 | "jsx": "preserve", 10 | "jsxImportSource": "solid-js", 11 | "types": ["vite/client"], 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": ["./pages/*"], 15 | "@@/*": ["./assets/*"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/vite-4/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import solidPlugin from 'vite-plugin-solid'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | solidPlugin(), 7 | ], 8 | }); -------------------------------------------------------------------------------- /examples/vite-5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/vite-5/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "private": "true", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "devDependencies": { 11 | "vite": "^5.1.1", 12 | "vite-plugin-solid": "workspace:*" 13 | }, 14 | "dependencies": { 15 | "solid-js": "catalog:" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/vite-5/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { onCleanup, onMount } from "solid-js"; 2 | import { CounterProvider, useCounter } from "./CounterContext"; 3 | 4 | const title = 'Count'; 5 | 6 | function Count() { 7 | const counter = useCounter(); 8 | onMount(() => { 9 | console.log('Mounted Count'); 10 | }); 11 | onCleanup(() => { 12 | console.log('Unmounted Count'); 13 | }); 14 | return ( 15 |

{title}: {counter.value()}

16 | ); 17 | } 18 | 19 | function Increment() { 20 | const counter = useCounter(); 21 | onMount(() => { 22 | console.log('Mounted Increment'); 23 | }); 24 | onCleanup(() => { 25 | console.log('Unmounted Increment'); 26 | }); 27 | return ( 28 | 31 | ); 32 | } 33 | 34 | function Decrement() { 35 | const counter = useCounter(); 36 | onMount(() => { 37 | console.log('Mounted Decrement'); 38 | }); 39 | onCleanup(() => { 40 | console.log('Unmounted Decrement'); 41 | }); 42 | return ( 43 | 46 | ); 47 | } 48 | 49 | export default function App() { 50 | onMount(() => { 51 | console.log('Mounted App'); 52 | }); 53 | onCleanup(() => { 54 | console.log('Unmounted App'); 55 | }); 56 | 57 | return ( 58 | 59 | 60 | 61 | 62 | 63 | ); 64 | } -------------------------------------------------------------------------------- /examples/vite-5/src/CounterContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext, createSignal, JSX, onCleanup, onMount, useContext } from "solid-js"; 2 | 3 | interface CounterContext { 4 | value(): number; 5 | increment(): void; 6 | decrement(): void; 7 | } 8 | 9 | 10 | const CounterContext = createContext(); 11 | 12 | export function useCounter() { 13 | const ctx = useContext(CounterContext); 14 | if (!ctx) { 15 | throw new Error('Missing CounterContext'); 16 | } 17 | return ctx; 18 | } 19 | 20 | export function CounterProvider(props: { children: JSX.Element }) { 21 | const [value, setValue] = createSignal(0); 22 | 23 | function increment() { 24 | setValue((c) => c + 1); 25 | } 26 | 27 | function decrement() { 28 | setValue((c) => c - 1); 29 | } 30 | onMount(() => { 31 | console.log('Mounted CounterProvider'); 32 | }); 33 | onCleanup(() => { 34 | console.log('Unmounted CounterProvider'); 35 | }); 36 | 37 | return ( 38 | 39 |

Counter

40 | {props.children} 41 |
42 | ); 43 | } 44 | -------------------------------------------------------------------------------- /examples/vite-5/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { render } from 'solid-js/web'; 2 | import App from './App'; 3 | 4 | const app = document.getElementById('app'); 5 | 6 | if (app) { 7 | render(() => , app); 8 | } -------------------------------------------------------------------------------- /examples/vite-5/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "allowSyntheticDefaultImports": true, 6 | "esModuleInterop": true, 7 | "resolveJsonModule": true, 8 | "moduleResolution": "node", 9 | "jsx": "preserve", 10 | "jsxImportSource": "solid-js", 11 | "types": ["vite/client"], 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": ["./pages/*"], 15 | "@@/*": ["./assets/*"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/vite-5/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import solidPlugin from 'vite-plugin-solid'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | solidPlugin(), 7 | ], 8 | }); -------------------------------------------------------------------------------- /examples/vite-6/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/vite-6/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "private": "true", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "test": "vitest --browser.headless --run", 10 | "test-dev": "vitest" 11 | }, 12 | "devDependencies": { 13 | "@solidjs/testing-library": "^0.8.10", 14 | "@testing-library/jest-dom": "^6.6.3", 15 | "@testing-library/user-event": "^14.6.1", 16 | "@vitest/browser": "^3.0.7", 17 | "playwright": "^1.50.1", 18 | "vite": "^6.2.0", 19 | "vite-plugin-solid": "workspace:*", 20 | "vitest": "^3.0.7" 21 | }, 22 | "dependencies": { 23 | "solid-js": "catalog:" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/vite-6/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { onCleanup, onMount } from "solid-js"; 2 | import { CounterProvider, useCounter } from "./CounterContext"; 3 | 4 | const title = 'Count'; 5 | 6 | function Count() { 7 | const counter = useCounter(); 8 | onMount(() => { 9 | console.log('Mounted Count'); 10 | }); 11 | onCleanup(() => { 12 | console.log('Unmounted Count'); 13 | }); 14 | return ( 15 |

{title}: {counter.value()}

16 | ); 17 | } 18 | 19 | function Increment() { 20 | const counter = useCounter(); 21 | onMount(() => { 22 | console.log('Mounted Increment'); 23 | }); 24 | onCleanup(() => { 25 | console.log('Unmounted Increment'); 26 | }); 27 | return ( 28 | 31 | ); 32 | } 33 | 34 | function Decrement() { 35 | const counter = useCounter(); 36 | onMount(() => { 37 | console.log('Mounted Decrement'); 38 | }); 39 | onCleanup(() => { 40 | console.log('Unmounted Decrement'); 41 | }); 42 | return ( 43 | 46 | ); 47 | } 48 | 49 | export default function App() { 50 | onMount(() => { 51 | console.log('Mounted App'); 52 | }); 53 | onCleanup(() => { 54 | console.log('Unmounted App'); 55 | }); 56 | 57 | return ( 58 | 59 | 60 | 61 | 62 | 63 | ); 64 | } -------------------------------------------------------------------------------- /examples/vite-6/src/CounterContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext, createSignal, JSX, onCleanup, onMount, useContext } from "solid-js"; 2 | 3 | interface CounterContext { 4 | value(): number; 5 | increment(): void; 6 | decrement(): void; 7 | } 8 | 9 | 10 | const CounterContext = createContext(); 11 | 12 | export function useCounter() { 13 | const ctx = useContext(CounterContext); 14 | if (!ctx) { 15 | throw new Error('Missing CounterContext'); 16 | } 17 | return ctx; 18 | } 19 | 20 | export function CounterProvider(props: { children: JSX.Element }) { 21 | const [value, setValue] = createSignal(0); 22 | 23 | function increment() { 24 | setValue((c) => c + 1); 25 | } 26 | 27 | function decrement() { 28 | setValue((c) => c - 1); 29 | } 30 | onMount(() => { 31 | console.log('Mounted CounterProvider'); 32 | }); 33 | onCleanup(() => { 34 | console.log('Unmounted CounterProvider'); 35 | }); 36 | 37 | return ( 38 | 39 |

Counter

40 | {props.children} 41 |
42 | ); 43 | } 44 | -------------------------------------------------------------------------------- /examples/vite-6/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { render } from 'solid-js/web'; 2 | import App from './App'; 3 | 4 | const app = document.getElementById('app'); 5 | 6 | if (app) { 7 | render(() => , app); 8 | } -------------------------------------------------------------------------------- /examples/vite-6/tests/App.test.tsx: -------------------------------------------------------------------------------- 1 | /// 2 | import { render } from '@solidjs/testing-library'; 3 | import { page } from '@vitest/browser/context'; 4 | import { expect, test } from 'vitest'; 5 | 6 | import App from '../src/App.jsx'; 7 | 8 | test('App', async () => { 9 | const root = page.elementLocator(render(() => ).baseElement); 10 | 11 | const count = root.getByText('Count:'); 12 | await expect.element(count).toHaveTextContent('Count: 0'); 13 | 14 | const incrementButton = root.getByText('Increment'); 15 | await incrementButton.click(); 16 | await expect.element(count).toHaveTextContent('Count: 1'); 17 | 18 | const decrementButton = root.getByText('Decrement'); 19 | await decrementButton.click(); 20 | await expect.element(count).toHaveTextContent('Count: 0'); 21 | }); 22 | -------------------------------------------------------------------------------- /examples/vite-6/tests/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "types": [ 5 | "@testing-library/jest-dom" 6 | ] 7 | }, 8 | "include": [ 9 | "**/*.ts", 10 | "**/*.tsx" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /examples/vite-6/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "allowSyntheticDefaultImports": true, 6 | "esModuleInterop": true, 7 | "resolveJsonModule": true, 8 | "moduleResolution": "node", 9 | "jsx": "preserve", 10 | "jsxImportSource": "solid-js", 11 | "types": ["vite/client"], 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": ["./pages/*"], 15 | "@@/*": ["./assets/*"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/vite-6/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import solidPlugin from 'vite-plugin-solid'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | solidPlugin(), 7 | ], 8 | }); -------------------------------------------------------------------------------- /examples/vite-6/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | import solidPlugin from '../../src/index.js'; 3 | 4 | export default defineConfig({ 5 | plugins: [solidPlugin()], 6 | resolve: { 7 | conditions: ['development', 'browser'], 8 | }, 9 | test: { 10 | environment: 'node', 11 | browser: { 12 | enabled: true, 13 | provider: 'playwright', 14 | instances: [{ browser: 'chromium' }], 15 | }, 16 | }, 17 | }); 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-plugin-solid", 3 | "version": "2.11.6", 4 | "description": "solid-js integration plugin for vite 3/4/5/6", 5 | "type": "module", 6 | "files": [ 7 | "dist" 8 | ], 9 | "main": "dist/cjs/index.cjs", 10 | "module": "dist/esm/index.mjs", 11 | "types": "dist/types/src/index.d.ts", 12 | "exports": { 13 | "types": "./dist/types/src/index.d.ts", 14 | "import": "./dist/esm/index.mjs", 15 | "node": "./dist/cjs/index.cjs", 16 | "require": "./dist/cjs/index.cjs", 17 | "default": "./dist/cjs/index.cjs" 18 | }, 19 | "scripts": { 20 | "build": "rollup -c && tsc --emitDeclarationOnly", 21 | "dev": "rollup -c -w", 22 | "prepublishOnly": "pnpm build", 23 | "release": "pnpm build && changeset publish", 24 | "check": "package-check", 25 | "test": "node scripts/test-examples.ts" 26 | }, 27 | "repository": { 28 | "type": "git", 29 | "url": "git+https://github.com/solidjs/vite-plugin-solid.git" 30 | }, 31 | "keywords": [ 32 | "vite", 33 | "vite plugin", 34 | "vitejs", 35 | "vitejs plugin", 36 | "vite-plugin", 37 | "solid" 38 | ], 39 | "author": "Alexandre Mouton-Brady ", 40 | "license": "MIT", 41 | "bugs": { 42 | "url": "https://github.com/solidjs/vite-plugin-solid/issues" 43 | }, 44 | "homepage": "https://github.com/solidjs/vite-plugin-solid#readme", 45 | "dependencies": { 46 | "@babel/core": "^7.23.3", 47 | "@types/babel__core": "^7.20.4", 48 | "babel-preset-solid": "^1.8.4", 49 | "merge-anything": "^5.1.7", 50 | "solid-refresh": "^0.6.3", 51 | "vitefu": "^1.0.4" 52 | }, 53 | "devDependencies": { 54 | "@babel/preset-env": "^7.23.3", 55 | "@babel/preset-typescript": "^7.23.3", 56 | "@changesets/cli": "^2.27.1", 57 | "@rollup/plugin-babel": "^6.0.4", 58 | "@rollup/plugin-commonjs": "^25.0.7", 59 | "@rollup/plugin-node-resolve": "^15.2.3", 60 | "@skypack/package-check": "^0.2.2", 61 | "@types/node": "^18.18.4", 62 | "cypress": "^14.0.0", 63 | "cypress-visual-regression": "^5.2.2", 64 | "cypress-vite": "^1.6.0", 65 | "cypress-wait-until": "^3.0.2", 66 | "prettier": "^3.1.0", 67 | "rollup": "^4.5.0", 68 | "rollup-plugin-cleaner": "^1.0.0", 69 | "solid-js": "^1.9.3", 70 | "typescript": "^5.2.2", 71 | "vite": "^6.0.0" 72 | }, 73 | "peerDependencies": { 74 | "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", 75 | "solid-js": "^1.7.2", 76 | "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" 77 | }, 78 | "peerDependenciesMeta": { 79 | "@testing-library/jest-dom": { 80 | "optional": true 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /playground/assets/test.txt: -------------------------------------------------------------------------------- 1 | Hello world!!! 2 | -------------------------------------------------------------------------------- /playground/components/counter.tsx: -------------------------------------------------------------------------------- 1 | import { Component, createSignal } from 'solid-js'; 2 | 3 | const Counter: Component = () => { 4 | const style = { padding: '8px', color: 'white', background: 'black', borderRadius: '4px' }; 5 | 6 | const [click, setClick] = createSignal(0); 7 | const increment = () => setClick((click) => click + 1); 8 | const decrement = () => setClick((click) => click - 1); 9 | 10 | return ( 11 | <> 12 | 15 | {click()} 16 | 19 | 20 | ); 21 | }; 22 | 23 | export default Counter; 24 | -------------------------------------------------------------------------------- /playground/hello.mdx: -------------------------------------------------------------------------------- 1 | import Counter from './components/counter'; 2 | 3 | # This is MDX woo 4 | 5 | 6 | -------------------------------------------------------------------------------- /playground/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /playground/index.tsx: -------------------------------------------------------------------------------- 1 | import { createSignal, lazy } from 'solid-js'; 2 | import { MetaProvider } from 'solid-meta'; 3 | import { createApp } from 'solid-utils'; 4 | import { Router, useRoutes, Link } from 'solid-app-router'; 5 | import type { RouteDefinition } from 'solid-app-router'; 6 | 7 | import test from '@@/test.txt?raw'; 8 | import Home from '@/index'; 9 | // @ts-ignore 10 | import Hello from './hello.mdx'; 11 | 12 | const json = await fetch('https://jsonplaceholder.typicode.com/todos/1').then((response) => 13 | response.json(), 14 | ); 15 | 16 | console.log({ json }); 17 | 18 | // This should log Hello World 19 | console.log(test); 20 | 21 | const routes: RouteDefinition[] = [ 22 | { 23 | path: '/', 24 | component: Home, 25 | }, 26 | { 27 | path: '/about', 28 | component: lazy(() => import('./pages/about')), 29 | }, 30 | ]; 31 | 32 | const App = () => { 33 | const [count, setCount] = createSignal(0); 34 | const Route = useRoutes(routes); 35 | 36 | return ( 37 | <> 38 | Home 39 | About 40 |
41 | 42 | 43 | 44 | 45 | ); 46 | }; 47 | 48 | createApp(App).use(MetaProvider).use(Router).mount('#app'); 49 | -------------------------------------------------------------------------------- /playground/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "playground", 3 | "description": "playground", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "@babel/core": "^7.18.6", 12 | "@babel/plugin-syntax-top-level-await": "^7.14.5", 13 | "@mdx-js/mdx": "^2.1.2", 14 | "vite": "^3.0.0", 15 | "vite-plugin-solid": "link:.." 16 | }, 17 | "dependencies": { 18 | "solid-app-router": "^0.4.1", 19 | "solid-js": "^1.6.11", 20 | "solid-mdx": "^0.0.6", 21 | "solid-meta": "^0.27.5", 22 | "solid-utils": "^0.8.1" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /playground/pages/about.tsx: -------------------------------------------------------------------------------- 1 | export default function About() { 2 | return

Hello About!!

; 3 | } 4 | -------------------------------------------------------------------------------- /playground/pages/index.tsx: -------------------------------------------------------------------------------- 1 | import { Accessor, createRenderEffect, createSignal } from 'solid-js'; 2 | 3 | function model( 4 | element: HTMLInputElement, 5 | value: Accessor<[Accessor, (value: string) => void]>, 6 | ) { 7 | const [field, setField] = value(); 8 | createRenderEffect(() => (element.value = field())); 9 | element.addEventListener('input', (e: Event & { currentTarget: HTMLInputElement }) => 10 | setField(e.currentTarget.value), 11 | ); 12 | } 13 | 14 | export default function Home() { 15 | const [name, setName] = createSignal(''); 16 | return ( 17 | <> 18 | 19 |

Hello {name()}

20 | 21 | ); 22 | } 23 | 24 | declare module 'solid-js' { 25 | namespace JSX { 26 | interface Directives { 27 | model: [() => any, (v: any) => any]; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /playground/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@babel/core': ^7.18.6 5 | '@babel/plugin-syntax-top-level-await': ^7.14.5 6 | '@mdx-js/mdx': ^2.1.2 7 | solid-app-router: ^0.4.1 8 | solid-js: ^1.6.11 9 | solid-mdx: ^0.0.6 10 | solid-meta: ^0.27.5 11 | solid-utils: ^0.8.1 12 | vite: ^3.0.0 13 | vite-plugin-solid: link:.. 14 | 15 | dependencies: 16 | solid-app-router: 0.4.1_solid-js@1.6.11 17 | solid-js: 1.6.11 18 | solid-mdx: 0.0.6_solid-js@1.6.11+vite@3.0.0 19 | solid-meta: 0.27.5_solid-js@1.6.11 20 | solid-utils: 0.8.1_solid-js@1.6.11 21 | 22 | devDependencies: 23 | '@babel/core': 7.18.6 24 | '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.18.6 25 | '@mdx-js/mdx': 2.1.2 26 | vite: 3.0.0 27 | vite-plugin-solid: link:.. 28 | 29 | packages: 30 | 31 | /@ampproject/remapping/2.2.0: 32 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 33 | engines: {node: '>=6.0.0'} 34 | dependencies: 35 | '@jridgewell/gen-mapping': 0.1.1 36 | '@jridgewell/trace-mapping': 0.3.14 37 | dev: true 38 | 39 | /@babel/code-frame/7.18.6: 40 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} 41 | engines: {node: '>=6.9.0'} 42 | dependencies: 43 | '@babel/highlight': 7.18.6 44 | dev: true 45 | 46 | /@babel/code-frame/7.22.13: 47 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} 48 | engines: {node: '>=6.9.0'} 49 | dependencies: 50 | '@babel/highlight': 7.22.20 51 | chalk: 2.4.2 52 | dev: true 53 | 54 | /@babel/compat-data/7.18.8: 55 | resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} 56 | engines: {node: '>=6.9.0'} 57 | dev: true 58 | 59 | /@babel/core/7.18.6: 60 | resolution: {integrity: sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==} 61 | engines: {node: '>=6.9.0'} 62 | dependencies: 63 | '@ampproject/remapping': 2.2.0 64 | '@babel/code-frame': 7.18.6 65 | '@babel/generator': 7.18.7 66 | '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6 67 | '@babel/helper-module-transforms': 7.18.8 68 | '@babel/helpers': 7.18.6 69 | '@babel/parser': 7.18.8 70 | '@babel/template': 7.18.6 71 | '@babel/traverse': 7.23.2 72 | '@babel/types': 7.18.8 73 | convert-source-map: 1.8.0 74 | debug: 4.3.4 75 | gensync: 1.0.0-beta.2 76 | json5: 2.2.3 77 | semver: 6.3.0 78 | transitivePeerDependencies: 79 | - supports-color 80 | dev: true 81 | 82 | /@babel/generator/7.18.7: 83 | resolution: {integrity: sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==} 84 | engines: {node: '>=6.9.0'} 85 | dependencies: 86 | '@babel/types': 7.18.8 87 | '@jridgewell/gen-mapping': 0.3.2 88 | jsesc: 2.5.2 89 | dev: true 90 | 91 | /@babel/generator/7.23.0: 92 | resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} 93 | engines: {node: '>=6.9.0'} 94 | dependencies: 95 | '@babel/types': 7.23.0 96 | '@jridgewell/gen-mapping': 0.3.2 97 | '@jridgewell/trace-mapping': 0.3.20 98 | jsesc: 2.5.2 99 | dev: true 100 | 101 | /@babel/helper-compilation-targets/7.18.6_@babel+core@7.18.6: 102 | resolution: {integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==} 103 | engines: {node: '>=6.9.0'} 104 | peerDependencies: 105 | '@babel/core': ^7.0.0 106 | dependencies: 107 | '@babel/compat-data': 7.18.8 108 | '@babel/core': 7.18.6 109 | '@babel/helper-validator-option': 7.18.6 110 | browserslist: 4.21.2 111 | semver: 6.3.0 112 | dev: true 113 | 114 | /@babel/helper-environment-visitor/7.18.6: 115 | resolution: {integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==} 116 | engines: {node: '>=6.9.0'} 117 | dev: true 118 | 119 | /@babel/helper-environment-visitor/7.22.20: 120 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 121 | engines: {node: '>=6.9.0'} 122 | dev: true 123 | 124 | /@babel/helper-function-name/7.23.0: 125 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 126 | engines: {node: '>=6.9.0'} 127 | dependencies: 128 | '@babel/template': 7.22.15 129 | '@babel/types': 7.23.0 130 | dev: true 131 | 132 | /@babel/helper-hoist-variables/7.22.5: 133 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 134 | engines: {node: '>=6.9.0'} 135 | dependencies: 136 | '@babel/types': 7.23.0 137 | dev: true 138 | 139 | /@babel/helper-module-imports/7.18.6: 140 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} 141 | engines: {node: '>=6.9.0'} 142 | dependencies: 143 | '@babel/types': 7.23.0 144 | dev: true 145 | 146 | /@babel/helper-module-transforms/7.18.8: 147 | resolution: {integrity: sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==} 148 | engines: {node: '>=6.9.0'} 149 | dependencies: 150 | '@babel/helper-environment-visitor': 7.18.6 151 | '@babel/helper-module-imports': 7.18.6 152 | '@babel/helper-simple-access': 7.18.6 153 | '@babel/helper-split-export-declaration': 7.18.6 154 | '@babel/helper-validator-identifier': 7.18.6 155 | '@babel/template': 7.18.6 156 | '@babel/traverse': 7.23.2 157 | '@babel/types': 7.18.8 158 | transitivePeerDependencies: 159 | - supports-color 160 | dev: true 161 | 162 | /@babel/helper-plugin-utils/7.18.6: 163 | resolution: {integrity: sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==} 164 | engines: {node: '>=6.9.0'} 165 | dev: true 166 | 167 | /@babel/helper-simple-access/7.18.6: 168 | resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} 169 | engines: {node: '>=6.9.0'} 170 | dependencies: 171 | '@babel/types': 7.23.0 172 | dev: true 173 | 174 | /@babel/helper-split-export-declaration/7.18.6: 175 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} 176 | engines: {node: '>=6.9.0'} 177 | dependencies: 178 | '@babel/types': 7.23.0 179 | dev: true 180 | 181 | /@babel/helper-split-export-declaration/7.22.6: 182 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 183 | engines: {node: '>=6.9.0'} 184 | dependencies: 185 | '@babel/types': 7.23.0 186 | dev: true 187 | 188 | /@babel/helper-string-parser/7.22.5: 189 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} 190 | engines: {node: '>=6.9.0'} 191 | dev: true 192 | 193 | /@babel/helper-validator-identifier/7.18.6: 194 | resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} 195 | engines: {node: '>=6.9.0'} 196 | dev: true 197 | 198 | /@babel/helper-validator-identifier/7.22.20: 199 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 200 | engines: {node: '>=6.9.0'} 201 | dev: true 202 | 203 | /@babel/helper-validator-option/7.18.6: 204 | resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} 205 | engines: {node: '>=6.9.0'} 206 | dev: true 207 | 208 | /@babel/helpers/7.18.6: 209 | resolution: {integrity: sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==} 210 | engines: {node: '>=6.9.0'} 211 | dependencies: 212 | '@babel/template': 7.18.6 213 | '@babel/traverse': 7.23.2 214 | '@babel/types': 7.18.8 215 | transitivePeerDependencies: 216 | - supports-color 217 | dev: true 218 | 219 | /@babel/highlight/7.18.6: 220 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 221 | engines: {node: '>=6.9.0'} 222 | dependencies: 223 | '@babel/helper-validator-identifier': 7.18.6 224 | chalk: 2.4.2 225 | js-tokens: 4.0.0 226 | dev: true 227 | 228 | /@babel/highlight/7.22.20: 229 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} 230 | engines: {node: '>=6.9.0'} 231 | dependencies: 232 | '@babel/helper-validator-identifier': 7.22.20 233 | chalk: 2.4.2 234 | js-tokens: 4.0.0 235 | dev: true 236 | 237 | /@babel/parser/7.18.8: 238 | resolution: {integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==} 239 | engines: {node: '>=6.0.0'} 240 | hasBin: true 241 | dependencies: 242 | '@babel/types': 7.18.8 243 | dev: true 244 | 245 | /@babel/parser/7.23.0: 246 | resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} 247 | engines: {node: '>=6.0.0'} 248 | hasBin: true 249 | dependencies: 250 | '@babel/types': 7.23.0 251 | dev: true 252 | 253 | /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.18.6: 254 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} 255 | engines: {node: '>=6.9.0'} 256 | peerDependencies: 257 | '@babel/core': ^7.0.0-0 258 | dependencies: 259 | '@babel/core': 7.18.6 260 | '@babel/helper-plugin-utils': 7.18.6 261 | dev: true 262 | 263 | /@babel/template/7.18.6: 264 | resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} 265 | engines: {node: '>=6.9.0'} 266 | dependencies: 267 | '@babel/code-frame': 7.18.6 268 | '@babel/parser': 7.18.8 269 | '@babel/types': 7.18.8 270 | dev: true 271 | 272 | /@babel/template/7.22.15: 273 | resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 274 | engines: {node: '>=6.9.0'} 275 | dependencies: 276 | '@babel/code-frame': 7.22.13 277 | '@babel/parser': 7.23.0 278 | '@babel/types': 7.23.0 279 | dev: true 280 | 281 | /@babel/traverse/7.23.2: 282 | resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} 283 | engines: {node: '>=6.9.0'} 284 | dependencies: 285 | '@babel/code-frame': 7.22.13 286 | '@babel/generator': 7.23.0 287 | '@babel/helper-environment-visitor': 7.22.20 288 | '@babel/helper-function-name': 7.23.0 289 | '@babel/helper-hoist-variables': 7.22.5 290 | '@babel/helper-split-export-declaration': 7.22.6 291 | '@babel/parser': 7.23.0 292 | '@babel/types': 7.23.0 293 | debug: 4.3.4 294 | globals: 11.12.0 295 | transitivePeerDependencies: 296 | - supports-color 297 | dev: true 298 | 299 | /@babel/types/7.18.8: 300 | resolution: {integrity: sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==} 301 | engines: {node: '>=6.9.0'} 302 | dependencies: 303 | '@babel/helper-validator-identifier': 7.18.6 304 | to-fast-properties: 2.0.0 305 | dev: true 306 | 307 | /@babel/types/7.23.0: 308 | resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} 309 | engines: {node: '>=6.9.0'} 310 | dependencies: 311 | '@babel/helper-string-parser': 7.22.5 312 | '@babel/helper-validator-identifier': 7.22.20 313 | to-fast-properties: 2.0.0 314 | dev: true 315 | 316 | /@jridgewell/gen-mapping/0.1.1: 317 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 318 | engines: {node: '>=6.0.0'} 319 | dependencies: 320 | '@jridgewell/set-array': 1.1.2 321 | '@jridgewell/sourcemap-codec': 1.4.14 322 | dev: true 323 | 324 | /@jridgewell/gen-mapping/0.3.2: 325 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 326 | engines: {node: '>=6.0.0'} 327 | dependencies: 328 | '@jridgewell/set-array': 1.1.2 329 | '@jridgewell/sourcemap-codec': 1.4.14 330 | '@jridgewell/trace-mapping': 0.3.14 331 | dev: true 332 | 333 | /@jridgewell/resolve-uri/3.1.0: 334 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 335 | engines: {node: '>=6.0.0'} 336 | dev: true 337 | 338 | /@jridgewell/set-array/1.1.2: 339 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 340 | engines: {node: '>=6.0.0'} 341 | dev: true 342 | 343 | /@jridgewell/sourcemap-codec/1.4.14: 344 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 345 | dev: true 346 | 347 | /@jridgewell/trace-mapping/0.3.14: 348 | resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} 349 | dependencies: 350 | '@jridgewell/resolve-uri': 3.1.0 351 | '@jridgewell/sourcemap-codec': 1.4.14 352 | dev: true 353 | 354 | /@jridgewell/trace-mapping/0.3.20: 355 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 356 | dependencies: 357 | '@jridgewell/resolve-uri': 3.1.0 358 | '@jridgewell/sourcemap-codec': 1.4.14 359 | dev: true 360 | 361 | /@mdx-js/mdx/2.1.2: 362 | resolution: {integrity: sha512-ASN1GUH0gXsgJ2UD/Td7FzJo1SwFkkQ5V1i9at5o/ROra7brkyMcBsotsOWJWRzmXZaLw2uXWn4aN8B3PMNFMA==} 363 | dependencies: 364 | '@types/estree-jsx': 0.0.1 365 | '@types/mdx': 2.0.2 366 | astring: 1.8.3 367 | estree-util-build-jsx: 2.1.0 368 | estree-util-is-identifier-name: 2.0.1 369 | estree-walker: 3.0.1 370 | hast-util-to-estree: 2.0.2 371 | markdown-extensions: 1.1.1 372 | periscopic: 3.0.4 373 | remark-mdx: 2.1.2 374 | remark-parse: 10.0.1 375 | remark-rehype: 10.1.0 376 | unified: 10.1.2 377 | unist-util-position-from-estree: 1.1.1 378 | unist-util-stringify-position: 3.0.2 379 | unist-util-visit: 4.1.0 380 | vfile: 5.3.4 381 | transitivePeerDependencies: 382 | - supports-color 383 | dev: true 384 | 385 | /@types/acorn/4.0.6: 386 | resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} 387 | dependencies: 388 | '@types/estree': 1.0.0 389 | dev: true 390 | 391 | /@types/debug/4.1.7: 392 | resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} 393 | dependencies: 394 | '@types/ms': 0.7.31 395 | dev: true 396 | 397 | /@types/estree-jsx/0.0.1: 398 | resolution: {integrity: sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==} 399 | dependencies: 400 | '@types/estree': 1.0.0 401 | dev: true 402 | 403 | /@types/estree/0.0.51: 404 | resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} 405 | dev: true 406 | 407 | /@types/estree/1.0.0: 408 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} 409 | dev: true 410 | 411 | /@types/hast/2.3.4: 412 | resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} 413 | dependencies: 414 | '@types/unist': 2.0.6 415 | dev: true 416 | 417 | /@types/mdast/3.0.10: 418 | resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} 419 | dependencies: 420 | '@types/unist': 2.0.6 421 | dev: true 422 | 423 | /@types/mdurl/1.0.2: 424 | resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} 425 | dev: true 426 | 427 | /@types/mdx/2.0.2: 428 | resolution: {integrity: sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==} 429 | dev: true 430 | 431 | /@types/ms/0.7.31: 432 | resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} 433 | dev: true 434 | 435 | /@types/unist/2.0.6: 436 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} 437 | dev: true 438 | 439 | /acorn-jsx/5.3.2_acorn@8.7.1: 440 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 441 | peerDependencies: 442 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 443 | dependencies: 444 | acorn: 8.7.1 445 | dev: true 446 | 447 | /acorn/8.7.1: 448 | resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} 449 | engines: {node: '>=0.4.0'} 450 | hasBin: true 451 | dev: true 452 | 453 | /ansi-styles/3.2.1: 454 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 455 | engines: {node: '>=4'} 456 | dependencies: 457 | color-convert: 1.9.3 458 | dev: true 459 | 460 | /astring/1.8.3: 461 | resolution: {integrity: sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==} 462 | hasBin: true 463 | dev: true 464 | 465 | /bail/2.0.2: 466 | resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 467 | dev: true 468 | 469 | /browserslist/4.21.2: 470 | resolution: {integrity: sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==} 471 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 472 | hasBin: true 473 | dependencies: 474 | caniuse-lite: 1.0.30001366 475 | electron-to-chromium: 1.4.189 476 | node-releases: 2.0.6 477 | update-browserslist-db: 1.0.4_browserslist@4.21.2 478 | dev: true 479 | 480 | /caniuse-lite/1.0.30001366: 481 | resolution: {integrity: sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA==} 482 | dev: true 483 | 484 | /ccount/2.0.1: 485 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 486 | dev: true 487 | 488 | /chalk/2.4.2: 489 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 490 | engines: {node: '>=4'} 491 | dependencies: 492 | ansi-styles: 3.2.1 493 | escape-string-regexp: 1.0.5 494 | supports-color: 5.5.0 495 | dev: true 496 | 497 | /character-entities-html4/2.1.0: 498 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 499 | dev: true 500 | 501 | /character-entities-legacy/3.0.0: 502 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 503 | dev: true 504 | 505 | /character-entities/2.0.2: 506 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 507 | dev: true 508 | 509 | /character-reference-invalid/2.0.1: 510 | resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} 511 | dev: true 512 | 513 | /color-convert/1.9.3: 514 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 515 | dependencies: 516 | color-name: 1.1.3 517 | dev: true 518 | 519 | /color-name/1.1.3: 520 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 521 | dev: true 522 | 523 | /comma-separated-tokens/2.0.2: 524 | resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} 525 | dev: true 526 | 527 | /convert-source-map/1.8.0: 528 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} 529 | dependencies: 530 | safe-buffer: 5.1.2 531 | dev: true 532 | 533 | /csstype/3.1.1: 534 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 535 | dev: false 536 | 537 | /debug/4.3.4: 538 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 539 | engines: {node: '>=6.0'} 540 | peerDependencies: 541 | supports-color: '*' 542 | peerDependenciesMeta: 543 | supports-color: 544 | optional: true 545 | dependencies: 546 | ms: 2.1.2 547 | dev: true 548 | 549 | /decode-named-character-reference/1.0.2: 550 | resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} 551 | dependencies: 552 | character-entities: 2.0.2 553 | dev: true 554 | 555 | /dequal/2.0.3: 556 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 557 | engines: {node: '>=6'} 558 | dev: true 559 | 560 | /diff/5.1.0: 561 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 562 | engines: {node: '>=0.3.1'} 563 | dev: true 564 | 565 | /electron-to-chromium/1.4.189: 566 | resolution: {integrity: sha512-dQ6Zn4ll2NofGtxPXaDfY2laIa6NyCQdqXYHdwH90GJQW0LpJJib0ZU/ERtbb0XkBEmUD2eJtagbOie3pdMiPg==} 567 | dev: true 568 | 569 | /esbuild-android-64/0.14.49: 570 | resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==} 571 | engines: {node: '>=12'} 572 | cpu: [x64] 573 | os: [android] 574 | requiresBuild: true 575 | optional: true 576 | 577 | /esbuild-android-arm64/0.14.49: 578 | resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==} 579 | engines: {node: '>=12'} 580 | cpu: [arm64] 581 | os: [android] 582 | requiresBuild: true 583 | optional: true 584 | 585 | /esbuild-darwin-64/0.14.49: 586 | resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==} 587 | engines: {node: '>=12'} 588 | cpu: [x64] 589 | os: [darwin] 590 | requiresBuild: true 591 | optional: true 592 | 593 | /esbuild-darwin-arm64/0.14.49: 594 | resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==} 595 | engines: {node: '>=12'} 596 | cpu: [arm64] 597 | os: [darwin] 598 | requiresBuild: true 599 | optional: true 600 | 601 | /esbuild-freebsd-64/0.14.49: 602 | resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==} 603 | engines: {node: '>=12'} 604 | cpu: [x64] 605 | os: [freebsd] 606 | requiresBuild: true 607 | optional: true 608 | 609 | /esbuild-freebsd-arm64/0.14.49: 610 | resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==} 611 | engines: {node: '>=12'} 612 | cpu: [arm64] 613 | os: [freebsd] 614 | requiresBuild: true 615 | optional: true 616 | 617 | /esbuild-linux-32/0.14.49: 618 | resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==} 619 | engines: {node: '>=12'} 620 | cpu: [ia32] 621 | os: [linux] 622 | requiresBuild: true 623 | optional: true 624 | 625 | /esbuild-linux-64/0.14.49: 626 | resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==} 627 | engines: {node: '>=12'} 628 | cpu: [x64] 629 | os: [linux] 630 | requiresBuild: true 631 | optional: true 632 | 633 | /esbuild-linux-arm/0.14.49: 634 | resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==} 635 | engines: {node: '>=12'} 636 | cpu: [arm] 637 | os: [linux] 638 | requiresBuild: true 639 | optional: true 640 | 641 | /esbuild-linux-arm64/0.14.49: 642 | resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==} 643 | engines: {node: '>=12'} 644 | cpu: [arm64] 645 | os: [linux] 646 | requiresBuild: true 647 | optional: true 648 | 649 | /esbuild-linux-mips64le/0.14.49: 650 | resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==} 651 | engines: {node: '>=12'} 652 | cpu: [mips64el] 653 | os: [linux] 654 | requiresBuild: true 655 | optional: true 656 | 657 | /esbuild-linux-ppc64le/0.14.49: 658 | resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==} 659 | engines: {node: '>=12'} 660 | cpu: [ppc64] 661 | os: [linux] 662 | requiresBuild: true 663 | optional: true 664 | 665 | /esbuild-linux-riscv64/0.14.49: 666 | resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==} 667 | engines: {node: '>=12'} 668 | cpu: [riscv64] 669 | os: [linux] 670 | requiresBuild: true 671 | optional: true 672 | 673 | /esbuild-linux-s390x/0.14.49: 674 | resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==} 675 | engines: {node: '>=12'} 676 | cpu: [s390x] 677 | os: [linux] 678 | requiresBuild: true 679 | optional: true 680 | 681 | /esbuild-netbsd-64/0.14.49: 682 | resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==} 683 | engines: {node: '>=12'} 684 | cpu: [x64] 685 | os: [netbsd] 686 | requiresBuild: true 687 | optional: true 688 | 689 | /esbuild-openbsd-64/0.14.49: 690 | resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==} 691 | engines: {node: '>=12'} 692 | cpu: [x64] 693 | os: [openbsd] 694 | requiresBuild: true 695 | optional: true 696 | 697 | /esbuild-sunos-64/0.14.49: 698 | resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==} 699 | engines: {node: '>=12'} 700 | cpu: [x64] 701 | os: [sunos] 702 | requiresBuild: true 703 | optional: true 704 | 705 | /esbuild-windows-32/0.14.49: 706 | resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==} 707 | engines: {node: '>=12'} 708 | cpu: [ia32] 709 | os: [win32] 710 | requiresBuild: true 711 | optional: true 712 | 713 | /esbuild-windows-64/0.14.49: 714 | resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==} 715 | engines: {node: '>=12'} 716 | cpu: [x64] 717 | os: [win32] 718 | requiresBuild: true 719 | optional: true 720 | 721 | /esbuild-windows-arm64/0.14.49: 722 | resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==} 723 | engines: {node: '>=12'} 724 | cpu: [arm64] 725 | os: [win32] 726 | requiresBuild: true 727 | optional: true 728 | 729 | /esbuild/0.14.49: 730 | resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==} 731 | engines: {node: '>=12'} 732 | hasBin: true 733 | requiresBuild: true 734 | optionalDependencies: 735 | esbuild-android-64: 0.14.49 736 | esbuild-android-arm64: 0.14.49 737 | esbuild-darwin-64: 0.14.49 738 | esbuild-darwin-arm64: 0.14.49 739 | esbuild-freebsd-64: 0.14.49 740 | esbuild-freebsd-arm64: 0.14.49 741 | esbuild-linux-32: 0.14.49 742 | esbuild-linux-64: 0.14.49 743 | esbuild-linux-arm: 0.14.49 744 | esbuild-linux-arm64: 0.14.49 745 | esbuild-linux-mips64le: 0.14.49 746 | esbuild-linux-ppc64le: 0.14.49 747 | esbuild-linux-riscv64: 0.14.49 748 | esbuild-linux-s390x: 0.14.49 749 | esbuild-netbsd-64: 0.14.49 750 | esbuild-openbsd-64: 0.14.49 751 | esbuild-sunos-64: 0.14.49 752 | esbuild-windows-32: 0.14.49 753 | esbuild-windows-64: 0.14.49 754 | esbuild-windows-arm64: 0.14.49 755 | 756 | /escalade/3.1.1: 757 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 758 | engines: {node: '>=6'} 759 | dev: true 760 | 761 | /escape-string-regexp/1.0.5: 762 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 763 | engines: {node: '>=0.8.0'} 764 | dev: true 765 | 766 | /estree-util-attach-comments/2.0.1: 767 | resolution: {integrity: sha512-1wTBNndwMIsnvnuxjFIaYQz0M7PsCvcgP0YD7/dU8xWh1FuHk+O6pYpT4sLa5THY/CywJvdIdgw4uhozujga/g==} 768 | dependencies: 769 | '@types/estree': 0.0.51 770 | dev: true 771 | 772 | /estree-util-build-jsx/2.1.0: 773 | resolution: {integrity: sha512-gsBGfsY6LOJUIDwmMkTOcgCX+3r/LUjRBccgHMSW55PHjhZsV13RmPl/iwpAvW8KcQqoN9P0FEFWTSS2Zc5bGA==} 774 | dependencies: 775 | '@types/estree-jsx': 0.0.1 776 | estree-util-is-identifier-name: 2.0.1 777 | estree-walker: 3.0.1 778 | dev: true 779 | 780 | /estree-util-is-identifier-name/2.0.1: 781 | resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==} 782 | dev: true 783 | 784 | /estree-util-visit/1.1.0: 785 | resolution: {integrity: sha512-3lXJ4Us9j8TUif9cWcQy81t9p5OLasnDuuhrFiqb+XstmKC1d1LmrQWYsY49/9URcfHE64mPypDBaNK9NwWDPQ==} 786 | dependencies: 787 | '@types/estree-jsx': 0.0.1 788 | '@types/unist': 2.0.6 789 | dev: true 790 | 791 | /estree-walker/3.0.1: 792 | resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} 793 | dev: true 794 | 795 | /extend/3.0.2: 796 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 797 | dev: true 798 | 799 | /fsevents/2.3.2: 800 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 801 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 802 | os: [darwin] 803 | requiresBuild: true 804 | optional: true 805 | 806 | /function-bind/1.1.1: 807 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 808 | 809 | /gensync/1.0.0-beta.2: 810 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 811 | engines: {node: '>=6.9.0'} 812 | dev: true 813 | 814 | /globals/11.12.0: 815 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 816 | engines: {node: '>=4'} 817 | dev: true 818 | 819 | /has-flag/3.0.0: 820 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 821 | engines: {node: '>=4'} 822 | dev: true 823 | 824 | /has/1.0.3: 825 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 826 | engines: {node: '>= 0.4.0'} 827 | dependencies: 828 | function-bind: 1.1.1 829 | 830 | /hast-util-to-estree/2.0.2: 831 | resolution: {integrity: sha512-UQrZVeBj6A9od0lpFvqHKNSH9zvDrNoyWKbveu1a2oSCXEDUI+3bnd6BoiQLPnLrcXXn/jzJ6y9hmJTTlvf8lQ==} 832 | dependencies: 833 | '@types/estree-jsx': 0.0.1 834 | '@types/hast': 2.3.4 835 | '@types/unist': 2.0.6 836 | comma-separated-tokens: 2.0.2 837 | estree-util-attach-comments: 2.0.1 838 | estree-util-is-identifier-name: 2.0.1 839 | hast-util-whitespace: 2.0.0 840 | mdast-util-mdx-expression: 1.2.1 841 | mdast-util-mdxjs-esm: 1.2.1 842 | property-information: 6.1.1 843 | space-separated-tokens: 2.0.1 844 | style-to-object: 0.3.0 845 | unist-util-position: 4.0.3 846 | zwitch: 2.0.2 847 | transitivePeerDependencies: 848 | - supports-color 849 | dev: true 850 | 851 | /hast-util-whitespace/2.0.0: 852 | resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==} 853 | dev: true 854 | 855 | /inline-style-parser/0.1.1: 856 | resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} 857 | dev: true 858 | 859 | /is-alphabetical/2.0.1: 860 | resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} 861 | dev: true 862 | 863 | /is-alphanumerical/2.0.1: 864 | resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} 865 | dependencies: 866 | is-alphabetical: 2.0.1 867 | is-decimal: 2.0.1 868 | dev: true 869 | 870 | /is-buffer/2.0.5: 871 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} 872 | engines: {node: '>=4'} 873 | dev: true 874 | 875 | /is-core-module/2.9.0: 876 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 877 | dependencies: 878 | has: 1.0.3 879 | 880 | /is-decimal/2.0.1: 881 | resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} 882 | dev: true 883 | 884 | /is-hexadecimal/2.0.1: 885 | resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} 886 | dev: true 887 | 888 | /is-plain-obj/4.1.0: 889 | resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 890 | engines: {node: '>=12'} 891 | dev: true 892 | 893 | /is-reference/3.0.0: 894 | resolution: {integrity: sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q==} 895 | dependencies: 896 | '@types/estree': 1.0.0 897 | dev: true 898 | 899 | /js-tokens/4.0.0: 900 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 901 | dev: true 902 | 903 | /jsesc/2.5.2: 904 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 905 | engines: {node: '>=4'} 906 | hasBin: true 907 | dev: true 908 | 909 | /json5/2.2.3: 910 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 911 | engines: {node: '>=6'} 912 | hasBin: true 913 | dev: true 914 | 915 | /kleur/4.1.5: 916 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 917 | engines: {node: '>=6'} 918 | dev: true 919 | 920 | /longest-streak/3.0.1: 921 | resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} 922 | dev: true 923 | 924 | /markdown-extensions/1.1.1: 925 | resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} 926 | engines: {node: '>=0.10.0'} 927 | dev: true 928 | 929 | /mdast-util-definitions/5.1.1: 930 | resolution: {integrity: sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==} 931 | dependencies: 932 | '@types/mdast': 3.0.10 933 | '@types/unist': 2.0.6 934 | unist-util-visit: 4.1.0 935 | dev: true 936 | 937 | /mdast-util-from-markdown/1.2.0: 938 | resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} 939 | dependencies: 940 | '@types/mdast': 3.0.10 941 | '@types/unist': 2.0.6 942 | decode-named-character-reference: 1.0.2 943 | mdast-util-to-string: 3.1.0 944 | micromark: 3.0.10 945 | micromark-util-decode-numeric-character-reference: 1.0.0 946 | micromark-util-decode-string: 1.0.2 947 | micromark-util-normalize-identifier: 1.0.0 948 | micromark-util-symbol: 1.0.1 949 | micromark-util-types: 1.0.2 950 | unist-util-stringify-position: 3.0.2 951 | uvu: 0.5.6 952 | transitivePeerDependencies: 953 | - supports-color 954 | dev: true 955 | 956 | /mdast-util-mdx-expression/1.2.1: 957 | resolution: {integrity: sha512-BtQwyalaq6jRjx0pagtuAwGrmzL1yInrfA4EJv7GOoiPOUbR4gr6h65I+G3WTh1/Cag2Eda4ip400Ch6CFmWiA==} 958 | dependencies: 959 | '@types/estree-jsx': 0.0.1 960 | '@types/hast': 2.3.4 961 | '@types/mdast': 3.0.10 962 | mdast-util-from-markdown: 1.2.0 963 | mdast-util-to-markdown: 1.3.0 964 | transitivePeerDependencies: 965 | - supports-color 966 | dev: true 967 | 968 | /mdast-util-mdx-jsx/2.0.2: 969 | resolution: {integrity: sha512-Bs1HnFprSJW0al1h49ZQBaLfwROFEY3SLK98xWsA60fVhe6zEbPS8gVYxkuT07TeEZWIbkjyFYXkZ34ARxfYNQ==} 970 | dependencies: 971 | '@types/estree-jsx': 0.0.1 972 | '@types/hast': 2.3.4 973 | '@types/mdast': 3.0.10 974 | ccount: 2.0.1 975 | mdast-util-to-markdown: 1.3.0 976 | parse-entities: 4.0.0 977 | stringify-entities: 4.0.3 978 | unist-util-remove-position: 4.0.1 979 | unist-util-stringify-position: 3.0.2 980 | vfile-message: 3.1.2 981 | dev: true 982 | 983 | /mdast-util-mdx/2.0.0: 984 | resolution: {integrity: sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==} 985 | dependencies: 986 | mdast-util-mdx-expression: 1.2.1 987 | mdast-util-mdx-jsx: 2.0.2 988 | mdast-util-mdxjs-esm: 1.2.1 989 | transitivePeerDependencies: 990 | - supports-color 991 | dev: true 992 | 993 | /mdast-util-mdxjs-esm/1.2.1: 994 | resolution: {integrity: sha512-3zNmTy1V1OgIxoV97PTkAl+tLriilS8d4CJwPV9LvBmWra5nnRriN8rpGSGGIM7NLoHfsUfvjcPoNIzl77F8Kw==} 995 | dependencies: 996 | '@types/estree-jsx': 0.0.1 997 | '@types/hast': 2.3.4 998 | '@types/mdast': 3.0.10 999 | mdast-util-from-markdown: 1.2.0 1000 | mdast-util-to-markdown: 1.3.0 1001 | transitivePeerDependencies: 1002 | - supports-color 1003 | dev: true 1004 | 1005 | /mdast-util-to-hast/12.1.2: 1006 | resolution: {integrity: sha512-Wn6Mcj04qU4qUXHnHpPATYMH2Jd8RlntdnloDfYLe1ErWRHo6+pvSl/DzHp6sCZ9cBSYlc8Sk8pbwb8xtUoQhQ==} 1007 | dependencies: 1008 | '@types/hast': 2.3.4 1009 | '@types/mdast': 3.0.10 1010 | '@types/mdurl': 1.0.2 1011 | mdast-util-definitions: 5.1.1 1012 | mdurl: 1.0.1 1013 | micromark-util-sanitize-uri: 1.0.0 1014 | trim-lines: 3.0.1 1015 | unist-builder: 3.0.0 1016 | unist-util-generated: 2.0.0 1017 | unist-util-position: 4.0.3 1018 | unist-util-visit: 4.1.0 1019 | dev: true 1020 | 1021 | /mdast-util-to-markdown/1.3.0: 1022 | resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} 1023 | dependencies: 1024 | '@types/mdast': 3.0.10 1025 | '@types/unist': 2.0.6 1026 | longest-streak: 3.0.1 1027 | mdast-util-to-string: 3.1.0 1028 | micromark-util-decode-string: 1.0.2 1029 | unist-util-visit: 4.1.0 1030 | zwitch: 2.0.2 1031 | dev: true 1032 | 1033 | /mdast-util-to-string/3.1.0: 1034 | resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} 1035 | dev: true 1036 | 1037 | /mdurl/1.0.1: 1038 | resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} 1039 | dev: true 1040 | 1041 | /micromark-core-commonmark/1.0.6: 1042 | resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} 1043 | dependencies: 1044 | decode-named-character-reference: 1.0.2 1045 | micromark-factory-destination: 1.0.0 1046 | micromark-factory-label: 1.0.2 1047 | micromark-factory-space: 1.0.0 1048 | micromark-factory-title: 1.0.2 1049 | micromark-factory-whitespace: 1.0.0 1050 | micromark-util-character: 1.1.0 1051 | micromark-util-chunked: 1.0.0 1052 | micromark-util-classify-character: 1.0.0 1053 | micromark-util-html-tag-name: 1.1.0 1054 | micromark-util-normalize-identifier: 1.0.0 1055 | micromark-util-resolve-all: 1.0.0 1056 | micromark-util-subtokenize: 1.0.2 1057 | micromark-util-symbol: 1.0.1 1058 | micromark-util-types: 1.0.2 1059 | uvu: 0.5.6 1060 | dev: true 1061 | 1062 | /micromark-extension-mdx-expression/1.0.3: 1063 | resolution: {integrity: sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==} 1064 | dependencies: 1065 | micromark-factory-mdx-expression: 1.0.6 1066 | micromark-factory-space: 1.0.0 1067 | micromark-util-character: 1.1.0 1068 | micromark-util-events-to-acorn: 1.1.0 1069 | micromark-util-symbol: 1.0.1 1070 | micromark-util-types: 1.0.2 1071 | uvu: 0.5.6 1072 | dev: true 1073 | 1074 | /micromark-extension-mdx-jsx/1.0.3: 1075 | resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==} 1076 | dependencies: 1077 | '@types/acorn': 4.0.6 1078 | estree-util-is-identifier-name: 2.0.1 1079 | micromark-factory-mdx-expression: 1.0.6 1080 | micromark-factory-space: 1.0.0 1081 | micromark-util-character: 1.1.0 1082 | micromark-util-symbol: 1.0.1 1083 | micromark-util-types: 1.0.2 1084 | uvu: 0.5.6 1085 | vfile-message: 3.1.2 1086 | dev: true 1087 | 1088 | /micromark-extension-mdx-md/1.0.0: 1089 | resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==} 1090 | dependencies: 1091 | micromark-util-types: 1.0.2 1092 | dev: true 1093 | 1094 | /micromark-extension-mdxjs-esm/1.0.3: 1095 | resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==} 1096 | dependencies: 1097 | micromark-core-commonmark: 1.0.6 1098 | micromark-util-character: 1.1.0 1099 | micromark-util-events-to-acorn: 1.1.0 1100 | micromark-util-symbol: 1.0.1 1101 | micromark-util-types: 1.0.2 1102 | unist-util-position-from-estree: 1.1.1 1103 | uvu: 0.5.6 1104 | vfile-message: 3.1.2 1105 | dev: true 1106 | 1107 | /micromark-extension-mdxjs/1.0.0: 1108 | resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} 1109 | dependencies: 1110 | acorn: 8.7.1 1111 | acorn-jsx: 5.3.2_acorn@8.7.1 1112 | micromark-extension-mdx-expression: 1.0.3 1113 | micromark-extension-mdx-jsx: 1.0.3 1114 | micromark-extension-mdx-md: 1.0.0 1115 | micromark-extension-mdxjs-esm: 1.0.3 1116 | micromark-util-combine-extensions: 1.0.0 1117 | micromark-util-types: 1.0.2 1118 | dev: true 1119 | 1120 | /micromark-factory-destination/1.0.0: 1121 | resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} 1122 | dependencies: 1123 | micromark-util-character: 1.1.0 1124 | micromark-util-symbol: 1.0.1 1125 | micromark-util-types: 1.0.2 1126 | dev: true 1127 | 1128 | /micromark-factory-label/1.0.2: 1129 | resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} 1130 | dependencies: 1131 | micromark-util-character: 1.1.0 1132 | micromark-util-symbol: 1.0.1 1133 | micromark-util-types: 1.0.2 1134 | uvu: 0.5.6 1135 | dev: true 1136 | 1137 | /micromark-factory-mdx-expression/1.0.6: 1138 | resolution: {integrity: sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==} 1139 | dependencies: 1140 | micromark-factory-space: 1.0.0 1141 | micromark-util-character: 1.1.0 1142 | micromark-util-events-to-acorn: 1.1.0 1143 | micromark-util-symbol: 1.0.1 1144 | micromark-util-types: 1.0.2 1145 | unist-util-position-from-estree: 1.1.1 1146 | uvu: 0.5.6 1147 | vfile-message: 3.1.2 1148 | dev: true 1149 | 1150 | /micromark-factory-space/1.0.0: 1151 | resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} 1152 | dependencies: 1153 | micromark-util-character: 1.1.0 1154 | micromark-util-types: 1.0.2 1155 | dev: true 1156 | 1157 | /micromark-factory-title/1.0.2: 1158 | resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} 1159 | dependencies: 1160 | micromark-factory-space: 1.0.0 1161 | micromark-util-character: 1.1.0 1162 | micromark-util-symbol: 1.0.1 1163 | micromark-util-types: 1.0.2 1164 | uvu: 0.5.6 1165 | dev: true 1166 | 1167 | /micromark-factory-whitespace/1.0.0: 1168 | resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} 1169 | dependencies: 1170 | micromark-factory-space: 1.0.0 1171 | micromark-util-character: 1.1.0 1172 | micromark-util-symbol: 1.0.1 1173 | micromark-util-types: 1.0.2 1174 | dev: true 1175 | 1176 | /micromark-util-character/1.1.0: 1177 | resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} 1178 | dependencies: 1179 | micromark-util-symbol: 1.0.1 1180 | micromark-util-types: 1.0.2 1181 | dev: true 1182 | 1183 | /micromark-util-chunked/1.0.0: 1184 | resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} 1185 | dependencies: 1186 | micromark-util-symbol: 1.0.1 1187 | dev: true 1188 | 1189 | /micromark-util-classify-character/1.0.0: 1190 | resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} 1191 | dependencies: 1192 | micromark-util-character: 1.1.0 1193 | micromark-util-symbol: 1.0.1 1194 | micromark-util-types: 1.0.2 1195 | dev: true 1196 | 1197 | /micromark-util-combine-extensions/1.0.0: 1198 | resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} 1199 | dependencies: 1200 | micromark-util-chunked: 1.0.0 1201 | micromark-util-types: 1.0.2 1202 | dev: true 1203 | 1204 | /micromark-util-decode-numeric-character-reference/1.0.0: 1205 | resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} 1206 | dependencies: 1207 | micromark-util-symbol: 1.0.1 1208 | dev: true 1209 | 1210 | /micromark-util-decode-string/1.0.2: 1211 | resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} 1212 | dependencies: 1213 | decode-named-character-reference: 1.0.2 1214 | micromark-util-character: 1.1.0 1215 | micromark-util-decode-numeric-character-reference: 1.0.0 1216 | micromark-util-symbol: 1.0.1 1217 | dev: true 1218 | 1219 | /micromark-util-encode/1.0.1: 1220 | resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} 1221 | dev: true 1222 | 1223 | /micromark-util-events-to-acorn/1.1.0: 1224 | resolution: {integrity: sha512-hB8HzidNt/Us5q2BvqXj8eeEm0U9rRfnZxcA9T65JRUMAY4MbfJRAFm7m9fXMAdSHJiVPmajsp8/rp6/FlHL8A==} 1225 | dependencies: 1226 | '@types/acorn': 4.0.6 1227 | '@types/estree': 0.0.51 1228 | estree-util-visit: 1.1.0 1229 | micromark-util-types: 1.0.2 1230 | uvu: 0.5.6 1231 | vfile-location: 4.0.1 1232 | vfile-message: 3.1.2 1233 | dev: true 1234 | 1235 | /micromark-util-html-tag-name/1.1.0: 1236 | resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} 1237 | dev: true 1238 | 1239 | /micromark-util-normalize-identifier/1.0.0: 1240 | resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} 1241 | dependencies: 1242 | micromark-util-symbol: 1.0.1 1243 | dev: true 1244 | 1245 | /micromark-util-resolve-all/1.0.0: 1246 | resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} 1247 | dependencies: 1248 | micromark-util-types: 1.0.2 1249 | dev: true 1250 | 1251 | /micromark-util-sanitize-uri/1.0.0: 1252 | resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} 1253 | dependencies: 1254 | micromark-util-character: 1.1.0 1255 | micromark-util-encode: 1.0.1 1256 | micromark-util-symbol: 1.0.1 1257 | dev: true 1258 | 1259 | /micromark-util-subtokenize/1.0.2: 1260 | resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} 1261 | dependencies: 1262 | micromark-util-chunked: 1.0.0 1263 | micromark-util-symbol: 1.0.1 1264 | micromark-util-types: 1.0.2 1265 | uvu: 0.5.6 1266 | dev: true 1267 | 1268 | /micromark-util-symbol/1.0.1: 1269 | resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} 1270 | dev: true 1271 | 1272 | /micromark-util-types/1.0.2: 1273 | resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} 1274 | dev: true 1275 | 1276 | /micromark/3.0.10: 1277 | resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} 1278 | dependencies: 1279 | '@types/debug': 4.1.7 1280 | debug: 4.3.4 1281 | decode-named-character-reference: 1.0.2 1282 | micromark-core-commonmark: 1.0.6 1283 | micromark-factory-space: 1.0.0 1284 | micromark-util-character: 1.1.0 1285 | micromark-util-chunked: 1.0.0 1286 | micromark-util-combine-extensions: 1.0.0 1287 | micromark-util-decode-numeric-character-reference: 1.0.0 1288 | micromark-util-encode: 1.0.1 1289 | micromark-util-normalize-identifier: 1.0.0 1290 | micromark-util-resolve-all: 1.0.0 1291 | micromark-util-sanitize-uri: 1.0.0 1292 | micromark-util-subtokenize: 1.0.2 1293 | micromark-util-symbol: 1.0.1 1294 | micromark-util-types: 1.0.2 1295 | uvu: 0.5.6 1296 | transitivePeerDependencies: 1297 | - supports-color 1298 | dev: true 1299 | 1300 | /mri/1.2.0: 1301 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1302 | engines: {node: '>=4'} 1303 | dev: true 1304 | 1305 | /ms/2.1.2: 1306 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1307 | dev: true 1308 | 1309 | /nanoid/3.3.6: 1310 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1311 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1312 | hasBin: true 1313 | 1314 | /node-releases/2.0.6: 1315 | resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} 1316 | dev: true 1317 | 1318 | /parse-entities/4.0.0: 1319 | resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} 1320 | dependencies: 1321 | '@types/unist': 2.0.6 1322 | character-entities: 2.0.2 1323 | character-entities-legacy: 3.0.0 1324 | character-reference-invalid: 2.0.1 1325 | decode-named-character-reference: 1.0.2 1326 | is-alphanumerical: 2.0.1 1327 | is-decimal: 2.0.1 1328 | is-hexadecimal: 2.0.1 1329 | dev: true 1330 | 1331 | /path-parse/1.0.7: 1332 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1333 | 1334 | /periscopic/3.0.4: 1335 | resolution: {integrity: sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==} 1336 | dependencies: 1337 | estree-walker: 3.0.1 1338 | is-reference: 3.0.0 1339 | dev: true 1340 | 1341 | /picocolors/1.0.0: 1342 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1343 | 1344 | /postcss/8.4.31: 1345 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1346 | engines: {node: ^10 || ^12 || >=14} 1347 | dependencies: 1348 | nanoid: 3.3.6 1349 | picocolors: 1.0.0 1350 | source-map-js: 1.0.2 1351 | 1352 | /property-information/6.1.1: 1353 | resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} 1354 | dev: true 1355 | 1356 | /remark-mdx/2.1.2: 1357 | resolution: {integrity: sha512-npQagPdczPAv0xN9F8GSi5hJfAe/z6nBjylyfOfjLOmz086ahWrIjlk4BulRfNhA+asutqWxyuT3DFVsxiTVHA==} 1358 | dependencies: 1359 | mdast-util-mdx: 2.0.0 1360 | micromark-extension-mdxjs: 1.0.0 1361 | transitivePeerDependencies: 1362 | - supports-color 1363 | dev: true 1364 | 1365 | /remark-parse/10.0.1: 1366 | resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} 1367 | dependencies: 1368 | '@types/mdast': 3.0.10 1369 | mdast-util-from-markdown: 1.2.0 1370 | unified: 10.1.2 1371 | transitivePeerDependencies: 1372 | - supports-color 1373 | dev: true 1374 | 1375 | /remark-rehype/10.1.0: 1376 | resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} 1377 | dependencies: 1378 | '@types/hast': 2.3.4 1379 | '@types/mdast': 3.0.10 1380 | mdast-util-to-hast: 12.1.2 1381 | unified: 10.1.2 1382 | dev: true 1383 | 1384 | /resolve/1.22.1: 1385 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1386 | hasBin: true 1387 | dependencies: 1388 | is-core-module: 2.9.0 1389 | path-parse: 1.0.7 1390 | supports-preserve-symlinks-flag: 1.0.0 1391 | 1392 | /rollup/2.76.0: 1393 | resolution: {integrity: sha512-9jwRIEY1jOzKLj3nsY/yot41r19ITdQrhs+q3ggNWhr9TQgduHqANvPpS32RNpzGklJu3G1AJfvlZLi/6wFgWA==} 1394 | engines: {node: '>=10.0.0'} 1395 | hasBin: true 1396 | optionalDependencies: 1397 | fsevents: 2.3.2 1398 | 1399 | /sade/1.8.1: 1400 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1401 | engines: {node: '>=6'} 1402 | dependencies: 1403 | mri: 1.2.0 1404 | dev: true 1405 | 1406 | /safe-buffer/5.1.2: 1407 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1408 | dev: true 1409 | 1410 | /semver/6.3.0: 1411 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1412 | hasBin: true 1413 | dev: true 1414 | 1415 | /solid-app-router/0.4.1_solid-js@1.6.11: 1416 | resolution: {integrity: sha512-RKHyFQ+J5lXyE/SoyJVHgTBeBck2etYVJn1/9F7ehlzyD2pIOMqLpNXD1GfWQljHqNdXZBSyE+xB/Cck5l9Q/g==} 1417 | peerDependencies: 1418 | solid-js: ^1.3.5 1419 | dependencies: 1420 | solid-js: 1.6.11 1421 | dev: false 1422 | 1423 | /solid-js/1.6.11: 1424 | resolution: {integrity: sha512-JquQQHPArGq+i2PLURxJ99Pcz2/1docpbycSio/cKSA0SeI3z5zRjy0TNcH4NRYvbOLrcini+iovXwnexKabyw==} 1425 | dependencies: 1426 | csstype: 3.1.1 1427 | dev: false 1428 | 1429 | /solid-mdx/0.0.6_solid-js@1.6.11+vite@3.0.0: 1430 | resolution: {integrity: sha512-SDr+iOqxvB7ktdjrwgKLCLkJK43J+TQjoYmesHxmZHXtn6W+a5NRqWgBcybsSP0noHa2co1plSjuPYU4bdtklQ==} 1431 | peerDependencies: 1432 | solid-js: ^1.2.6 1433 | vite: '*' 1434 | dependencies: 1435 | solid-js: 1.6.11 1436 | vite: 3.0.0 1437 | dev: false 1438 | 1439 | /solid-meta/0.27.5_solid-js@1.6.11: 1440 | resolution: {integrity: sha512-9OA50aNBhCwuFo1Uby9NT3gB6I6iBRN0mSXkXROJyWDtmyhdw9iyMT9JsnGF/A/7IQq2BSLV75oPQjNKQAMeQw==} 1441 | peerDependencies: 1442 | solid-js: '>=1.4.0' 1443 | dependencies: 1444 | solid-js: 1.6.11 1445 | dev: false 1446 | 1447 | /solid-utils/0.8.1_solid-js@1.6.11: 1448 | resolution: {integrity: sha512-LLeO7Hr99OLFY+Zfx8U7Hw5VZOaFT8qWoLWGfnq3kDmo7KAGdIoq44ijy7mdYj88e+2cWPdkyhItsS3FGjeS6g==} 1449 | peerDependencies: 1450 | solid-js: '>= 1.0' 1451 | dependencies: 1452 | solid-js: 1.6.11 1453 | dev: false 1454 | 1455 | /source-map-js/1.0.2: 1456 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1457 | engines: {node: '>=0.10.0'} 1458 | 1459 | /space-separated-tokens/2.0.1: 1460 | resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==} 1461 | dev: true 1462 | 1463 | /stringify-entities/4.0.3: 1464 | resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} 1465 | dependencies: 1466 | character-entities-html4: 2.1.0 1467 | character-entities-legacy: 3.0.0 1468 | dev: true 1469 | 1470 | /style-to-object/0.3.0: 1471 | resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} 1472 | dependencies: 1473 | inline-style-parser: 0.1.1 1474 | dev: true 1475 | 1476 | /supports-color/5.5.0: 1477 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1478 | engines: {node: '>=4'} 1479 | dependencies: 1480 | has-flag: 3.0.0 1481 | dev: true 1482 | 1483 | /supports-preserve-symlinks-flag/1.0.0: 1484 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1485 | engines: {node: '>= 0.4'} 1486 | 1487 | /to-fast-properties/2.0.0: 1488 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1489 | engines: {node: '>=4'} 1490 | dev: true 1491 | 1492 | /trim-lines/3.0.1: 1493 | resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1494 | dev: true 1495 | 1496 | /trough/2.1.0: 1497 | resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} 1498 | dev: true 1499 | 1500 | /unified/10.1.2: 1501 | resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} 1502 | dependencies: 1503 | '@types/unist': 2.0.6 1504 | bail: 2.0.2 1505 | extend: 3.0.2 1506 | is-buffer: 2.0.5 1507 | is-plain-obj: 4.1.0 1508 | trough: 2.1.0 1509 | vfile: 5.3.4 1510 | dev: true 1511 | 1512 | /unist-builder/3.0.0: 1513 | resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} 1514 | dependencies: 1515 | '@types/unist': 2.0.6 1516 | dev: true 1517 | 1518 | /unist-util-generated/2.0.0: 1519 | resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==} 1520 | dev: true 1521 | 1522 | /unist-util-is/5.1.1: 1523 | resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} 1524 | dev: true 1525 | 1526 | /unist-util-position-from-estree/1.1.1: 1527 | resolution: {integrity: sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==} 1528 | dependencies: 1529 | '@types/unist': 2.0.6 1530 | dev: true 1531 | 1532 | /unist-util-position/4.0.3: 1533 | resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==} 1534 | dependencies: 1535 | '@types/unist': 2.0.6 1536 | dev: true 1537 | 1538 | /unist-util-remove-position/4.0.1: 1539 | resolution: {integrity: sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==} 1540 | dependencies: 1541 | '@types/unist': 2.0.6 1542 | unist-util-visit: 4.1.0 1543 | dev: true 1544 | 1545 | /unist-util-stringify-position/3.0.2: 1546 | resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} 1547 | dependencies: 1548 | '@types/unist': 2.0.6 1549 | dev: true 1550 | 1551 | /unist-util-visit-parents/5.1.0: 1552 | resolution: {integrity: sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==} 1553 | dependencies: 1554 | '@types/unist': 2.0.6 1555 | unist-util-is: 5.1.1 1556 | dev: true 1557 | 1558 | /unist-util-visit/4.1.0: 1559 | resolution: {integrity: sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==} 1560 | dependencies: 1561 | '@types/unist': 2.0.6 1562 | unist-util-is: 5.1.1 1563 | unist-util-visit-parents: 5.1.0 1564 | dev: true 1565 | 1566 | /update-browserslist-db/1.0.4_browserslist@4.21.2: 1567 | resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==} 1568 | hasBin: true 1569 | peerDependencies: 1570 | browserslist: '>= 4.21.0' 1571 | dependencies: 1572 | browserslist: 4.21.2 1573 | escalade: 3.1.1 1574 | picocolors: 1.0.0 1575 | dev: true 1576 | 1577 | /uvu/0.5.6: 1578 | resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} 1579 | engines: {node: '>=8'} 1580 | hasBin: true 1581 | dependencies: 1582 | dequal: 2.0.3 1583 | diff: 5.1.0 1584 | kleur: 4.1.5 1585 | sade: 1.8.1 1586 | dev: true 1587 | 1588 | /vfile-location/4.0.1: 1589 | resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} 1590 | dependencies: 1591 | '@types/unist': 2.0.6 1592 | vfile: 5.3.4 1593 | dev: true 1594 | 1595 | /vfile-message/3.1.2: 1596 | resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} 1597 | dependencies: 1598 | '@types/unist': 2.0.6 1599 | unist-util-stringify-position: 3.0.2 1600 | dev: true 1601 | 1602 | /vfile/5.3.4: 1603 | resolution: {integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==} 1604 | dependencies: 1605 | '@types/unist': 2.0.6 1606 | is-buffer: 2.0.5 1607 | unist-util-stringify-position: 3.0.2 1608 | vfile-message: 3.1.2 1609 | dev: true 1610 | 1611 | /vite/3.0.0: 1612 | resolution: {integrity: sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==} 1613 | engines: {node: '>=14.18.0'} 1614 | hasBin: true 1615 | peerDependencies: 1616 | less: '*' 1617 | sass: '*' 1618 | stylus: '*' 1619 | terser: ^5.4.0 1620 | peerDependenciesMeta: 1621 | less: 1622 | optional: true 1623 | sass: 1624 | optional: true 1625 | stylus: 1626 | optional: true 1627 | terser: 1628 | optional: true 1629 | dependencies: 1630 | esbuild: 0.14.49 1631 | postcss: 8.4.31 1632 | resolve: 1.22.1 1633 | rollup: 2.76.0 1634 | optionalDependencies: 1635 | fsevents: 2.3.2 1636 | 1637 | /zwitch/2.0.2: 1638 | resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} 1639 | dev: true 1640 | -------------------------------------------------------------------------------- /playground/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "allowSyntheticDefaultImports": true, 6 | "esModuleInterop": true, 7 | "resolveJsonModule": true, 8 | "moduleResolution": "node", 9 | "jsx": "preserve", 10 | "jsxImportSource": "solid-js", 11 | "types": ["vite/client"], 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": ["./pages/*"], 15 | "@@/*": ["./assets/*"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /playground/vite.config.ts: -------------------------------------------------------------------------------- 1 | import path from 'node:path'; 2 | import solid from 'vite-plugin-solid'; 3 | import { defineConfig, Plugin } from 'vite'; 4 | import { compile, CompileOptions } from '@mdx-js/mdx'; 5 | 6 | type MdxExtensionOptions = { mdx?: boolean }; 7 | 8 | type MDXOptions = { 9 | extensions?: (string | [string, MdxExtensionOptions])[]; 10 | } & Partial>; 11 | 12 | const mdx = (options: MDXOptions = {}): Plugin => { 13 | const MD_EXTENSIONS = ['md', 'markdown', 'mdown', 'mkdn', 'mkd', 'mdwn', 'mkdown', 'ron']; 14 | 15 | const MDX_EXTENSIONS = ['mdx']; 16 | 17 | const mdxExtensions = 18 | options.extensions 19 | ?.filter((extension) => typeof extension !== 'string' && extension[1].mdx) 20 | .map((extension) => extension[0]) ?? MDX_EXTENSIONS; 21 | 22 | const mdExtensions = 23 | options.extensions 24 | ?.filter((extension) => typeof extension === 'string' || !extension[1].mdx) 25 | .map((extension) => (typeof extension === 'string' ? extension : extension[0])) ?? 26 | MD_EXTENSIONS; 27 | 28 | return { 29 | name: 'mdx', 30 | enforce: 'pre', 31 | transform: async (source: string, id: string) => { 32 | const extension = path.extname(id); 33 | if ( 34 | ![...mdExtensions, ...mdxExtensions].map((extension) => `.${extension}`).includes(extension) 35 | ) 36 | return null; 37 | return { 38 | code: ( 39 | await compile(source, { 40 | format: mdxExtensions.includes(extension) 41 | ? 'mdx' 42 | : mdExtensions.includes(extension) 43 | ? 'md' 44 | : 'detect', 45 | jsx: true, 46 | jsxImportSource: 'solid-js', 47 | providerImportSource: 'solid-mdx', 48 | ...options, 49 | }) 50 | ).value.toString(), 51 | }; 52 | }, 53 | }; 54 | }; 55 | 56 | const logPlugin = (): Plugin => { 57 | return { 58 | name: 'looog', 59 | configResolved(config) { 60 | console.log({ alias: config.resolve.alias }); 61 | }, 62 | }; 63 | }; 64 | 65 | export default defineConfig({ 66 | plugins: [ 67 | mdx({}), 68 | solid({ 69 | extensions: ['.md', ['.mdx', { typescript: true }]], 70 | babel: { 71 | plugins: ['@babel/plugin-syntax-top-level-await'], 72 | }, 73 | }), 74 | logPlugin(), 75 | ], 76 | resolve: { 77 | alias: { 78 | '@': '/pages', 79 | '@@': '/assets', 80 | }, 81 | }, 82 | build: { target: 'esnext' }, 83 | }); 84 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - '.' 3 | - "examples/*" 4 | catalog: 5 | "solid-js": ^1.9.4 -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import cjs from '@rollup/plugin-commonjs'; 2 | import cleaner from 'rollup-plugin-cleaner'; 3 | import { babel } from '@rollup/plugin-babel'; 4 | import { nodeResolve } from '@rollup/plugin-node-resolve'; 5 | 6 | const extensions = ['.js', '.ts', '.json', '.tsx', '.jsx']; 7 | 8 | const external = [ 9 | '@babel/core', 10 | '@babel/preset-typescript', 11 | 'babel-preset-solid', 12 | 'solid-refresh', 13 | 'solid-refresh/babel', 14 | 'merge-anything', 15 | 'vitefu', 16 | 'vite' 17 | ]; 18 | 19 | /** 20 | * @type {import('rollup').RollupOptions} 21 | */ 22 | const config = { 23 | input: 'src/index.ts', 24 | output: [ 25 | { 26 | format: 'esm', 27 | file: 'dist/esm/index.mjs', 28 | sourcemap: true, 29 | }, 30 | { 31 | format: 'cjs', 32 | file: 'dist/cjs/index.cjs', 33 | sourcemap: true, 34 | exports: 'default', 35 | }, 36 | ], 37 | external, 38 | plugins: [ 39 | cleaner({ targets: ['./dist/'] }), 40 | babel({ 41 | extensions, 42 | babelHelpers: 'bundled', 43 | presets: [ 44 | ['@babel/preset-env', { targets: { node: 'current' } }], 45 | '@babel/preset-typescript', 46 | ], 47 | }), 48 | nodeResolve({ extensions, preferBuiltins: true, browser: false }), 49 | cjs({ extensions }), 50 | ], 51 | }; 52 | 53 | export default config; 54 | -------------------------------------------------------------------------------- /scripts/test-examples.ts: -------------------------------------------------------------------------------- 1 | import { spawn, exec, ChildProcess } from 'node:child_process'; 2 | import { promisify } from 'node:util'; 3 | 4 | const execAsync = promisify(exec); 5 | const examples = ['vite-3', 'vite-4', 'vite-5', 'vite-6']; 6 | const PORT = 4173; 7 | const TEST_TIMEOUT = 5 * 60 * 1000; // 5 minutes 8 | 9 | // Track active processes for cleanup 10 | const activeProcesses = new Set(); 11 | 12 | // Cleanup function 13 | function cleanup() { 14 | for (const proc of activeProcesses) { 15 | proc.kill('SIGTERM'); 16 | } 17 | process.exit(0); 18 | } 19 | 20 | // Handle termination signals 21 | process.on('SIGTERM', cleanup); 22 | process.on('SIGINT', cleanup); 23 | 24 | async function runExample(example) { 25 | console.log(`Testing ${example}...`); 26 | const examplePath = `examples/${example}`; 27 | 28 | try { 29 | // Install and build 30 | await execAsync('pnpm install', { cwd: examplePath }); 31 | await execAsync('pnpm run build', { cwd: examplePath }); 32 | 33 | // Start preview server with timeout 34 | const server = spawn('pnpm', ['run', 'preview'], { cwd: examplePath }); 35 | activeProcesses.add(server); 36 | 37 | server.on('error', (err) => { 38 | console.error(`Server error for ${example}:`, err); 39 | throw err; 40 | }); 41 | 42 | // Wait for server to be ready 43 | await new Promise(resolve => setTimeout(resolve, 2000)); 44 | 45 | // Run Cypress tests with timeout 46 | const testPromise = execAsync(`pnpm exec cypress run --config-file cypress.config.ts --env example=${example}`); 47 | const timeoutPromise = new Promise((_, reject) => 48 | setTimeout(() => reject(new Error(`Test timeout for ${example}`)), TEST_TIMEOUT) 49 | ); 50 | 51 | await Promise.race([testPromise, timeoutPromise]); 52 | } finally { 53 | // Clean up processes 54 | for (const proc of activeProcesses) { 55 | proc.kill('SIGTERM'); 56 | activeProcesses.delete(proc); 57 | } 58 | } 59 | } 60 | 61 | async function runAll() { 62 | for (const example of examples) { 63 | try { 64 | await runExample(example); 65 | } catch (error) { 66 | console.error(`Error testing ${example}:`, error); 67 | cleanup(); 68 | process.exit(1); 69 | } 70 | } 71 | process.exit(0); 72 | } 73 | 74 | runAll().catch(error => { 75 | console.error('Unexpected error:', error); 76 | cleanup(); 77 | process.exit(1); 78 | }); -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import * as babel from '@babel/core'; 2 | import solid from 'babel-preset-solid'; 3 | import { readFileSync } from 'fs'; 4 | import { mergeAndConcat } from 'merge-anything'; 5 | import { createRequire } from 'module'; 6 | import solidRefresh from 'solid-refresh/babel'; 7 | import type { Alias, AliasOptions, FilterPattern, Plugin } from 'vite'; 8 | import { createFilter, version } from 'vite'; 9 | import { crawlFrameworkPkgs } from 'vitefu'; 10 | 11 | const require = createRequire(import.meta.url); 12 | 13 | const runtimePublicPath = '/@solid-refresh'; 14 | const runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs'); 15 | const runtimeCode = readFileSync(runtimeFilePath, 'utf-8'); 16 | 17 | const isVite6 = version.startsWith('6.'); 18 | 19 | /** Possible options for the extensions property */ 20 | export interface ExtensionOptions { 21 | typescript?: boolean; 22 | } 23 | 24 | /** Configuration options for vite-plugin-solid. */ 25 | export interface Options { 26 | /** 27 | * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files 28 | * the plugin should operate on. 29 | */ 30 | include?: FilterPattern; 31 | /** 32 | * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files 33 | * to be ignored by the plugin. 34 | */ 35 | exclude?: FilterPattern; 36 | /** 37 | * This will inject solid-js/dev in place of solid-js in dev mode. Has no 38 | * effect in prod. If set to `false`, it won't inject it in dev. This is 39 | * useful for extra logs and debugging. 40 | * 41 | * @default true 42 | */ 43 | dev?: boolean; 44 | /** 45 | * This will force SSR code in the produced files. 46 | * 47 | * @default false 48 | */ 49 | ssr?: boolean; 50 | 51 | /** 52 | * This will inject HMR runtime in dev mode. Has no effect in prod. If 53 | * set to `false`, it won't inject the runtime in dev. 54 | * 55 | * @default true 56 | */ 57 | hot?: boolean; 58 | /** 59 | * This registers additional extensions that should be processed by 60 | * vite-plugin-solid. 61 | * 62 | * @default undefined 63 | */ 64 | extensions?: (string | [string, ExtensionOptions])[]; 65 | /** 66 | * Pass any additional babel transform options. They will be merged with 67 | * the transformations required by Solid. 68 | * 69 | * @default {} 70 | */ 71 | babel?: 72 | | babel.TransformOptions 73 | | ((source: string, id: string, ssr: boolean) => babel.TransformOptions) 74 | | ((source: string, id: string, ssr: boolean) => Promise); 75 | /** 76 | * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options). 77 | * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25). 78 | * 79 | * @default {} 80 | */ 81 | solid?: { 82 | /** 83 | * Removed unnecessary closing tags from template strings. More info here: 84 | * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates 85 | * 86 | * @default false 87 | */ 88 | omitNestedClosingTags?: boolean; 89 | 90 | /** 91 | * The name of the runtime module to import the methods from. 92 | * 93 | * @default "solid-js/web" 94 | */ 95 | moduleName?: string; 96 | 97 | /** 98 | * The output mode of the compiler. 99 | * Can be: 100 | * - "dom" is standard output 101 | * - "ssr" is for server side rendering of strings. 102 | * - "universal" is for using custom renderers from solid-js/universal 103 | * 104 | * @default "dom" 105 | */ 106 | generate?: 'ssr' | 'dom' | 'universal'; 107 | 108 | /** 109 | * Indicate whether the output should contain hydratable markers. 110 | * 111 | * @default false 112 | */ 113 | hydratable?: boolean; 114 | 115 | /** 116 | * Boolean to indicate whether to enable automatic event delegation on camelCase. 117 | * 118 | * @default true 119 | */ 120 | delegateEvents?: boolean; 121 | 122 | /** 123 | * Boolean indicates whether smart conditional detection should be used. 124 | * This optimizes simple boolean expressions and ternaries in JSX. 125 | * 126 | * @default true 127 | */ 128 | wrapConditionals?: boolean; 129 | 130 | /** 131 | * Boolean indicates whether to set current render context on Custom Elements and slots. 132 | * Useful for seemless Context API with Web Components. 133 | * 134 | * @default true 135 | */ 136 | contextToCustomElements?: boolean; 137 | 138 | /** 139 | * Array of Component exports from module, that aren't included by default with the library. 140 | * This plugin will automatically import them if it comes across them in the JSX. 141 | * 142 | * @default ["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"] 143 | */ 144 | builtIns?: string[]; 145 | }; 146 | } 147 | 148 | function getExtension(filename: string): string { 149 | const index = filename.lastIndexOf('.'); 150 | return index < 0 ? '' : filename.substring(index).replace(/\?.+$/, ''); 151 | } 152 | function containsSolidField(fields: Record) { 153 | const keys = Object.keys(fields); 154 | for (let i = 0; i < keys.length; i++) { 155 | const key = keys[i]; 156 | if (key === 'solid') return true; 157 | if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key])) 158 | return true; 159 | } 160 | return false; 161 | } 162 | 163 | function getJestDomExport(setupFiles: string[]) { 164 | return setupFiles?.some((path) => /jest-dom/.test(path)) 165 | ? undefined 166 | : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find( 167 | (path) => { 168 | try { 169 | require.resolve(path); 170 | return true; 171 | } catch (e) { 172 | return false; 173 | } 174 | }, 175 | ); 176 | } 177 | 178 | export default function solidPlugin(options: Partial = {}): Plugin { 179 | const filter = createFilter(options.include, options.exclude); 180 | 181 | let needHmr = false; 182 | let replaceDev = false; 183 | let projectRoot = process.cwd(); 184 | let isTestMode = false; 185 | 186 | return { 187 | name: 'solid', 188 | enforce: 'pre', 189 | 190 | async config(userConfig, { command }) { 191 | // We inject the dev mode only if the user explicitly wants it or if we are in dev (serve) mode 192 | replaceDev = options.dev === true || (options.dev !== false && command === 'serve'); 193 | projectRoot = userConfig.root; 194 | isTestMode = userConfig.mode === 'test'; 195 | 196 | if (!userConfig.resolve) userConfig.resolve = {}; 197 | userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias); 198 | 199 | const solidPkgsConfig = await crawlFrameworkPkgs({ 200 | viteUserConfig: userConfig, 201 | root: projectRoot || process.cwd(), 202 | isBuild: command === 'build', 203 | isFrameworkPkgByJson(pkgJson) { 204 | return containsSolidField(pkgJson.exports || {}); 205 | }, 206 | }); 207 | 208 | // fix for bundling dev in production 209 | const nestedDeps = replaceDev 210 | ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h'] 211 | : []; 212 | 213 | const userTest = (userConfig as any).test ?? {}; 214 | const test = {} as any; 215 | if (userConfig.mode === 'test') { 216 | // to simplify the processing of the config, we normalize the setupFiles to an array 217 | const userSetupFiles: string[] = 218 | typeof userTest.setupFiles === 'string' 219 | ? [userTest.setupFiles] 220 | : userTest.setupFiles || []; 221 | 222 | if (!userTest.environment && !options.ssr) { 223 | test.environment = 'jsdom'; 224 | } 225 | 226 | if ( 227 | !userTest.server?.deps?.external?.find((item: string | RegExp) => 228 | /solid-js/.test(item.toString()), 229 | ) 230 | ) { 231 | test.server = { deps: { external: [/solid-js/] } }; 232 | } 233 | if (!userTest.browser?.enabled) { 234 | // vitest browser mode already has bundled jest-dom assertions 235 | // https://main.vitest.dev/guide/browser/assertion-api.html#assertion-api 236 | const jestDomImport = getJestDomExport(userSetupFiles); 237 | if (jestDomImport) { 238 | test.setupFiles = [jestDomImport]; 239 | } 240 | } 241 | } 242 | 243 | return { 244 | /** 245 | * We only need esbuild on .ts or .js files. 246 | * .tsx & .jsx files are handled by us 247 | */ 248 | // esbuild: { include: /\.ts$/ }, 249 | resolve: { 250 | conditions: isVite6 251 | ? undefined 252 | : [ 253 | 'solid', 254 | ...(replaceDev ? ['development'] : []), 255 | ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []), 256 | ], 257 | dedupe: nestedDeps, 258 | alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }], 259 | }, 260 | optimizeDeps: { 261 | include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include], 262 | exclude: solidPkgsConfig.optimizeDeps.exclude, 263 | }, 264 | ssr: solidPkgsConfig.ssr, 265 | ...(test.server ? { test } : {}), 266 | }; 267 | }, 268 | 269 | // @ts-ignore This hook only works in Vite 6 270 | async configEnvironment(name, config, opts) { 271 | config.resolve ??= {}; 272 | // Emulate Vite default fallback for `resolve.conditions` if not set 273 | if (config.resolve.conditions == null) { 274 | // @ts-ignore These exports only exist in Vite 6 275 | const { defaultClientConditions, defaultServerConditions } = await import('vite'); 276 | if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) { 277 | config.resolve.conditions = [...defaultClientConditions]; 278 | } else { 279 | config.resolve.conditions = [...defaultServerConditions]; 280 | } 281 | } 282 | config.resolve.conditions = [ 283 | 'solid', 284 | ...(replaceDev ? ['development'] : []), 285 | ...(isTestMode && !opts.isSsrTargetWebworker ? ['browser'] : []), 286 | ...config.resolve.conditions, 287 | ]; 288 | }, 289 | 290 | configResolved(config) { 291 | needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false; 292 | }, 293 | 294 | resolveId(id) { 295 | if (id === runtimePublicPath) return id; 296 | }, 297 | 298 | load(id) { 299 | if (id === runtimePublicPath) return runtimeCode; 300 | }, 301 | 302 | async transform(source, id, transformOptions) { 303 | const isSsr = transformOptions && transformOptions.ssr; 304 | const currentFileExtension = getExtension(id); 305 | 306 | const extensionsToWatch = options.extensions || []; 307 | const allExtensions = extensionsToWatch.map((extension) => 308 | // An extension can be a string or a tuple [extension, options] 309 | typeof extension === 'string' ? extension : extension[0], 310 | ); 311 | 312 | if (!filter(id)) { 313 | return null; 314 | } 315 | 316 | id = id.replace(/\?.*$/, ''); 317 | 318 | if (!(/\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) { 319 | return null; 320 | } 321 | 322 | const inNodeModules = /node_modules/.test(id); 323 | 324 | let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean }; 325 | 326 | if (options.ssr) { 327 | if (isSsr) { 328 | solidOptions = { generate: 'ssr', hydratable: true }; 329 | } else { 330 | solidOptions = { generate: 'dom', hydratable: true }; 331 | } 332 | } else { 333 | solidOptions = { generate: 'dom', hydratable: false }; 334 | } 335 | 336 | // We need to know if the current file extension has a typescript options tied to it 337 | const shouldBeProcessedWithTypescript = 338 | /\.[mc]?tsx$/i.test(id) || 339 | extensionsToWatch.some((extension) => { 340 | if (typeof extension === 'string') { 341 | return extension.includes('tsx'); 342 | } 343 | 344 | const [extensionName, extensionOptions] = extension; 345 | if (extensionName !== currentFileExtension) return false; 346 | 347 | return extensionOptions.typescript; 348 | }); 349 | const plugins: NonNullable['plugins']> = [ 350 | 'jsx', 351 | ]; 352 | 353 | if (shouldBeProcessedWithTypescript) { 354 | plugins.push('typescript'); 355 | } 356 | 357 | const opts: babel.TransformOptions = { 358 | root: projectRoot, 359 | filename: id, 360 | sourceFileName: id, 361 | presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]], 362 | plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [], 363 | ast: false, 364 | sourceMaps: true, 365 | configFile: false, 366 | babelrc: false, 367 | parserOpts: { 368 | plugins, 369 | }, 370 | }; 371 | 372 | // Default value for babel user options 373 | let babelUserOptions: babel.TransformOptions = {}; 374 | 375 | if (options.babel) { 376 | if (typeof options.babel === 'function') { 377 | const babelOptions = options.babel(source, id, isSsr); 378 | babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions; 379 | } else { 380 | babelUserOptions = options.babel; 381 | } 382 | } 383 | 384 | const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions; 385 | 386 | const { code, map } = await babel.transformAsync(source, babelOptions); 387 | 388 | return { code, map }; 389 | }, 390 | }; 391 | } 392 | 393 | /** 394 | * This basically normalize all aliases of the config into 395 | * the array format of the alias. 396 | * 397 | * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }] 398 | */ 399 | function normalizeAliases(alias: AliasOptions = []): Alias[] { 400 | return Array.isArray(alias) 401 | ? alias 402 | : Object.entries(alias).map(([find, replacement]) => ({ find, replacement })); 403 | } 404 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "src", "cypress" 4 | ], 5 | "exclude": [ 6 | "**/*.spec.ts" 7 | ], 8 | "compilerOptions": { 9 | "target": "ESNext", 10 | "module": "ESNext", 11 | "moduleResolution": "node", 12 | "strict": false, 13 | "declaration": true, 14 | "noUnusedLocals": true, 15 | "skipLibCheck": true, 16 | "esModuleInterop": true, 17 | "allowSyntheticDefaultImports": true, 18 | "declarationDir": "dist/types", 19 | "types":["cypress", "node"], 20 | "baseUrl": "." 21 | } 22 | } --------------------------------------------------------------------------------