├── .eslintrc.yml
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── bug.yml
│ ├── config.yml
│ └── enhancement.yml
├── dependabot.yml
└── workflows
│ ├── codeql-analysis.yml
│ ├── publish-next.yml
│ ├── publish.yml
│ └── test.yml
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .vscode
└── settings.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── generate.ts
├── package-lock.json
├── package.json
├── pnpm-lock.yaml
├── src
├── index.ts
└── utils.ts
├── svelte.config.mjs
├── tests
├── assets
│ ├── expected
│ │ ├── animations
│ │ │ ├── case-01.svelte
│ │ │ └── case-02.svelte
│ │ ├── attributify
│ │ │ ├── case-01.svelte
│ │ │ ├── case-02.svelte
│ │ │ ├── case-03.svelte
│ │ │ └── case-04.svelte
│ │ ├── classAttribute
│ │ │ ├── case-01.svelte
│ │ │ ├── case-02.svelte
│ │ │ ├── case-03.svelte
│ │ │ ├── case-04.svelte
│ │ │ ├── case-05.svelte
│ │ │ └── case-06.svelte
│ │ ├── styleTag
│ │ │ ├── case-01.svelte
│ │ │ ├── case-02.svelte
│ │ │ ├── case-03.svelte
│ │ │ └── case-04.svelte
│ │ ├── unocss
│ │ │ └── case-01.svelte
│ │ └── windiExpression
│ │ │ ├── case-01.svelte
│ │ │ ├── case-02.svelte
│ │ │ ├── case-03.svelte
│ │ │ ├── case-04.svelte
│ │ │ ├── case-05.svelte
│ │ │ ├── case-06.svelte
│ │ │ └── case-07.svelte
│ └── input
│ │ ├── animations
│ │ ├── case-01.svelte
│ │ └── case-02.svelte
│ │ ├── attributify
│ │ ├── case-01.svelte
│ │ ├── case-02.svelte
│ │ ├── case-03.svelte
│ │ └── case-04.svelte
│ │ ├── classAttribute
│ │ ├── case-01.svelte
│ │ ├── case-02.svelte
│ │ ├── case-03.svelte
│ │ ├── case-04.svelte
│ │ ├── case-05.svelte
│ │ └── case-06.svelte
│ │ ├── styleTag
│ │ ├── case-01.svelte
│ │ ├── case-02.svelte
│ │ ├── case-03.svelte
│ │ └── case-04.svelte
│ │ ├── template.svelte
│ │ ├── unocss
│ │ └── case-01.svelte
│ │ └── windiExpression
│ │ ├── case-01.svelte
│ │ ├── case-02.svelte
│ │ ├── case-03.svelte
│ │ ├── case-04.svelte
│ │ ├── case-05.svelte
│ │ ├── case-06.svelte
│ │ └── case-07.svelte
└── usage.ts
└── tsconfig.json
/.eslintrc.yml:
--------------------------------------------------------------------------------
1 | env:
2 | browser: false
3 | es2021: true
4 | extends:
5 | - 'eslint:recommended'
6 | - 'plugin:@typescript-eslint/recommended'
7 | parser: '@typescript-eslint/parser'
8 | parserOptions:
9 | ecmaVersion: 12
10 | sourceType: module
11 | plugins:
12 | - '@typescript-eslint'
13 | rules:
14 | indent:
15 | - error
16 | - 2
17 | linebreak-style:
18 | - error
19 | - unix
20 | quotes:
21 | - error
22 | - single
23 | semi:
24 | - error
25 | - never
26 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | example/** -linguist-detectable
2 | site/** -linguist-detectable
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug.yml:
--------------------------------------------------------------------------------
1 | name: "\U0001F41E Bug report"
2 | description: Report an issue
3 | labels: [bug, pending triage]
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | Thanks for taking the time to fill out this bug report!
9 | - type: textarea
10 | id: bug-description
11 | attributes:
12 | label: Describe the bug
13 | description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us.
14 | placeholder: Bug description
15 | validations:
16 | required: true
17 | - type: textarea
18 | id: system-info
19 | attributes:
20 | label: System Info
21 | description: Output of `npx envinfo --console --system --IDEs --binaries --browsers --npmPackages windicss,svelte-windicss-preprocess,svelte`
22 | render: shell
23 | placeholder: System, Binaries, Browsers
24 | validations:
25 | required: true
26 | - type: dropdown
27 | id: package-manager
28 | attributes:
29 | label: Used Package Manager
30 | description: Select the used package manager
31 | options:
32 | - npm
33 | - yarn
34 | - pnpm
35 | validations:
36 | required: true
37 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 | contact_links:
3 | - name: Discord Chat
4 | url: https://chat.windicss.org
5 | about: Ask questions and discuss with other Windi CSS users in real time.
6 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/enhancement.yml:
--------------------------------------------------------------------------------
1 | name: "\U0001F680 New feature proposal"
2 | description: Propose a new feature to be added to Vite
3 | labels: ['enhancement']
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | Thanks for your interest in the project and taking the time to fill out this feature report!
9 | - type: textarea
10 | id: feature-description
11 | attributes:
12 | label: Clear and concise description of the problem
13 | description: 'I want this feature.'
14 | validations:
15 | required: true
16 | - type: textarea
17 | id: suggested-solution
18 | attributes:
19 | label: Suggested solution
20 | description: 'What are your ideas?'
21 | validations:
22 | required: true
23 | - type: textarea
24 | id: additional-context
25 | attributes:
26 | label: Additional context
27 | description: Any other context or screenshots about the feature request here.
28 | - type: checkboxes
29 | id: checkboxes
30 | attributes:
31 | label: Validations
32 | description: Before submitting the issue, please make sure you do the following
33 | options:
34 | - label: Read the [docs](https://windicss.org).
35 | required: true
36 | - label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
37 | required: true
38 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | # Enable version updates for npm
4 | - package-ecosystem: 'npm'
5 | # Look for `package.json` and `lock` files in the `root` directory
6 | directory: '/'
7 | # Check the npm registry for updates every day (weekdays)
8 | schedule:
9 | interval: 'daily'
10 | time: '08:30'
11 | # Use Japan Standard Time (UTC +09:00)
12 | timezone: 'Europe/Berlin'
13 | versioning-strategy: 'increase'
14 | labels:
15 | - 'dependencies'
16 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: 'CodeQL'
13 |
14 | on:
15 | push:
16 | branches: [main]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [main]
20 | schedule:
21 | - cron: '37 10 * * 1'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: ['javascript']
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
37 | # Learn more:
38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
39 |
40 | steps:
41 | - name: Checkout repository
42 | uses: actions/checkout@v2
43 |
44 | # Initializes the CodeQL tools for scanning.
45 | - name: Initialize CodeQL
46 | uses: github/codeql-action/init@v1
47 | with:
48 | languages: ${{ matrix.language }}
49 | # If you wish to specify custom queries, you can do so here or in a config file.
50 | # By default, queries listed here will override any specified in a config file.
51 | # Prefix the list here with "+" to use these queries and those in the config file.
52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main
53 |
54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55 | # If this step fails, then you should remove it and run the build manually (see below)
56 | - name: Autobuild
57 | uses: github/codeql-action/autobuild@v1
58 |
59 | # ℹ️ Command-line programs to run using the OS shell.
60 | # 📚 https://git.io/JvXDl
61 |
62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63 | # and modify them (or add more) to build your code if your project
64 | # uses a compiled language
65 |
66 | #- run: |
67 | # make bootstrap
68 | # make release
69 |
70 | - name: Perform CodeQL Analysis
71 | uses: github/codeql-action/analyze@v1
72 |
--------------------------------------------------------------------------------
/.github/workflows/publish-next.yml:
--------------------------------------------------------------------------------
1 | name: Publish next Package
2 |
3 | on:
4 | push:
5 | tags:
6 | - v*-beta*
7 | - v*-alpha*
8 | - v*-next*
9 |
10 | jobs:
11 | publish-npm:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v1
15 | - uses: actions/setup-node@v1
16 | with:
17 | node-version: 16
18 | registry-url: https://registry.npmjs.org/
19 | - run: npm install --frozen-lockfile
20 | - run: npm run build:clean
21 | - run: npm run test
22 | - run: npx conventional-github-releaser -p angular
23 | env:
24 | CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{secrets.GITHUB_TOKEN}}
25 | - run: npm publish --tag next
26 | env:
27 | NODE_AUTH_TOKEN: ${{secrets.NPM_SECRET}}
28 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish Package
2 |
3 | on:
4 | push:
5 | tags:
6 | - v[0-9]+.[0-9]+.[0-9]+
7 |
8 | jobs:
9 | publish-npm:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v2
13 | - uses: actions/setup-node@v2
14 | with:
15 | node-version: 16
16 | registry-url: https://registry.npmjs.org/
17 | - run: npm install
18 | - run: npm run build:clean
19 | - run: npm run test
20 | - run: npx conventional-github-releaser -p angular
21 | env:
22 | CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{secrets.GITHUB_TOKEN}}
23 | - run: npm publish --tag latest
24 | env:
25 | NODE_AUTH_TOKEN: ${{secrets.NPM_SECRET}}
26 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3 |
4 | name: Test
5 |
6 | on: [push, pull_request]
7 |
8 | jobs:
9 | build:
10 | runs-on: ubuntu-latest
11 |
12 | strategy:
13 | matrix:
14 | node-version: [16, 17]
15 |
16 | steps:
17 | - uses: actions/checkout@v2
18 | - name: Use Node.js ${{ matrix.node-version }}
19 | uses: actions/setup-node@v2
20 | with:
21 | node-version: ${{ matrix.node-version }}
22 | - name: Install dependencies
23 | run: npm install
24 | - name: Run tests
25 | run: npm run test
26 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
2 | /public/build/
3 |
4 | /src/**/*.js
5 | /src/**/*.d.ts
6 |
7 | .DS_Store
8 | /dist/
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | tests/assets/expected/**/*.svelte
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "arrowParens": "avoid",
3 | "bracketSpacing": true,
4 | "printWidth": 80,
5 | "semi": false,
6 | "singleQuote": true,
7 | "tabWidth": 2,
8 | "useTabs": false,
9 | "proseWrap": "never",
10 | "svelteIndentScriptAndStyle": false
11 | }
12 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "standard.enable": false,
3 | "typescript.format.enable": false,
4 | "svelte.plugin.svelte.format.enable": false
5 | }
6 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## [v4.2.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.2.2...v4.2.3) (2021-12-05)
4 |
5 | ### Fix
6 |
7 | * :bug: reimplement config loader
8 |
9 |
10 |
11 | ## [v4.2.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.2.1...v4.2.2) (2021-12-05)
12 |
13 | ### Fix
14 |
15 | * :bug: add attributes backwards compatibility
16 |
17 |
18 |
19 | ## [v4.2.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.2.0...v4.2.1) (2021-12-05)
20 |
21 | ### Ci
22 |
23 | * :green_heart: bump node version
24 |
25 |
26 |
27 | ## [v4.2.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.7...v4.2.0) (2021-12-05)
28 |
29 | ### Chore
30 |
31 | * :arrow_up: bump deps
32 | * :heavy_minus_sign: remove unused deps
33 | * :arrow_up: bump deps
34 |
35 | ### Feat
36 |
37 | * :boom: support experimental scan
38 |
39 | ### Fix
40 |
41 | * `@keyframes` missing in css
42 | * :bug: filename could be `undefined`
43 |
44 | ### Style
45 |
46 | * :rotating_light: lint
47 | * :lipstick: change printWidth in codeStyle
48 |
49 | ### Test
50 |
51 | * :white_check_mark: update test for new logic
52 |
53 | ### Tests
54 |
55 | * add animation tests
56 |
57 |
58 |
59 | ## [v4.1.7](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.6...v4.1.7) (2021-11-17)
60 |
61 | ### Chore
62 |
63 | * :art: optimise imports
64 | * :building_construction: improvements
65 | * :arrow_up: bump deps
66 | * :heavy_plus_sign: add dev deps
67 |
68 | ### Fix
69 |
70 | * :label: fix eslint warnings
71 |
72 | ### Refactor
73 |
74 | * :recycle: icon safelist
75 |
76 |
77 |
78 | ## [v4.1.6](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.6-beta.2...v4.1.6) (2021-11-10)
79 |
80 | ### Chore
81 |
82 | * :arrow_up: bump deps
83 |
84 | ### Fix
85 |
86 | * :bug: devTools not working
87 |
88 | ### Test
89 |
90 | * :white_check_mark: fixes project
91 |
92 |
93 |
94 | ## [v4.1.6-beta.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.6-beta.1...v4.1.6-beta.2) (2021-11-03)
95 |
96 |
97 |
98 | ## [v4.1.6-beta.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.5...v4.1.6-beta.1) (2021-11-01)
99 |
100 | ### Fix
101 |
102 | * :building_construction: remove unocss from bundle
103 |
104 |
105 |
106 | ## [v4.1.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.5-beta.1...v4.1.5) (2021-11-01)
107 |
108 | ### Chore
109 |
110 | * :arrow_up: bump deps
111 |
112 | ### Feat
113 |
114 | * :sparkles: add support for custom icons
115 |
116 |
117 |
118 | ## [v4.1.5-beta.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.4...v4.1.5-beta.1) (2021-10-31)
119 |
120 | ### Chore
121 |
122 | * :arrow_up: bump deps
123 | * :recycle: move repo to pnpm
124 |
125 | ### Feat
126 |
127 | * :alembic: add experimental support for config HMR
128 |
129 |
130 |
131 | ## [v4.1.4](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.3...v4.1.4) (2021-10-31)
132 |
133 | ### Fix
134 |
135 | * :bug: unocss styles overwrite each-other
136 |
137 |
138 |
139 | ## [v4.1.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.2...v4.1.3) (2021-10-31)
140 |
141 | ### Fix
142 |
143 | * :bug: unocss does not check safelist
144 |
145 |
146 |
147 | ## [v4.1.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.1...v4.1.2) (2021-10-31)
148 |
149 | ### Chore
150 |
151 | * :arrow_up: bump deps
152 |
153 | ### Feat
154 |
155 | * :sparkles: add unocss pure css icons
156 |
157 | ### Test
158 |
159 | * :white_check_mark: add unocss pure css icons test
160 |
161 |
162 |
163 | ## [v4.1.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.0...v4.1.1) (2021-10-26)
164 |
165 | ### Chore
166 |
167 | * :arrow_up: bump deps
168 | * :mute: cleanup
169 |
170 | ### Fix
171 |
172 | * :bug: multiline css selector not working
173 |
174 | ### Test
175 |
176 | * :white_check_mark: add multiline css selector tests
177 |
178 |
179 |
180 | ## [v4.1.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.0-beta.3...v4.1.0) (2021-10-22)
181 |
182 | ### Chore
183 |
184 | * :arrow_down: fix esbuild
185 | * :arrow_up: bump deps
186 | * :arrow_up: bump deps ([#266](https://github.com/windicss/svelte-windicss-preprocess/issues/266))
187 |
188 | ### Ci
189 |
190 | * :green_heart: try to fix publish script
191 |
192 | ### Fix
193 |
194 | * :test_tube: test install script
195 |
196 | ### Test
197 |
198 | * :test_tube: update github action
199 |
200 |
201 |
202 | ## [v4.1.0-beta.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.0-beta.2...v4.1.0-beta.3) (2021-09-28)
203 |
204 |
205 |
206 | ## [v4.1.0-beta.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.1.0-beta.1...v4.1.0-beta.2) (2021-08-09)
207 |
208 | ### Chore
209 |
210 | * :arrow_up: bump deps
211 | * :arrow_up: bump deps
212 | * :arrow_up: bump deps
213 |
214 | ### Fix
215 |
216 | * :bug: partial `:global()` css selector get removed & wrong order [#208](https://github.com/windicss/svelte-windicss-preprocess/issues/208)
217 |
218 | ### Refactor
219 |
220 | * :recycle: ignore `xmlns` in attributify
221 |
222 | ### Test
223 |
224 | * :white_check_mark: add test case [#208](https://github.com/windicss/svelte-windicss-preprocess/issues/208)
225 |
226 |
227 |
228 | ## [v4.1.0-beta.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.12...v4.1.0-beta.1) (2021-08-04)
229 |
230 | ### Ci
231 |
232 | * :construction_worker: remove outdated nodejs version
233 |
234 | ### Fix
235 |
236 | * require.resolve is not a function
237 |
238 | ### Refactor
239 |
240 | * :recycle: change to full file parser
241 |
242 | ### Revert
243 |
244 | * require.resolve
245 |
246 | ### Style
247 |
248 | * :rotating_light: lint
249 | * :wrench: update code style rules
250 |
251 | ### Test
252 |
253 | * :white_check_mark: adapt tests
254 |
255 |
256 |
257 | ## [v4.0.12](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.11...v4.0.12) (2021-07-07)
258 |
259 | ### Chore
260 |
261 | * add enhancement form
262 | * add issue form
263 |
264 | ### Fix
265 |
266 | * devtools breaks without windi config
267 | * issue form
268 |
269 | ### Test
270 |
271 | * add loop to include all tests
272 |
273 |
274 |
275 | ## [v4.0.11](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.10...v4.0.11) (2021-06-22)
276 |
277 | ### Fix
278 |
279 | * inline expression
280 |
281 |
282 |
283 | ## [v4.0.10](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.9...v4.0.10) (2021-06-17)
284 |
285 | ### Chore
286 |
287 | * bump deps
288 |
289 |
290 |
291 | ## [v4.0.9](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.8...v4.0.9) (2021-06-17)
292 |
293 | ### Chore
294 |
295 | * remove deprecated logging
296 |
297 | ### Feat
298 |
299 | * add new metrics solution
300 | * move devtools to script preprocessor
301 | * add default export
302 |
303 | ### Fix
304 |
305 | * parallel file loader
306 | * duplicate load of config file
307 |
308 | ### Style
309 |
310 | * improve comments
311 | * fix interface name
312 |
313 |
314 |
315 | ## [v4.0.8](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.7...v4.0.8) (2021-06-04)
316 |
317 | ### Chore
318 |
319 | * bump deps
320 |
321 |
322 |
323 | ## [v4.0.7](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.6...v4.0.7) (2021-05-28)
324 |
325 | ### Fix
326 |
327 | * dropped css for parallel bundlers
328 |
329 |
330 |
331 | ## [v4.0.6](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.5...v4.0.6) (2021-05-26)
332 |
333 | ### Chore
334 |
335 | * cleanup
336 | * :arrow_up: bump deps
337 |
338 | ### Ci
339 |
340 | * add test to release script
341 |
342 | ### Feat
343 |
344 | * :label: improve types
345 |
346 | ### Fix
347 |
348 | * run after config loaded
349 |
350 | ### Style
351 |
352 | * remove comments
353 |
354 |
355 |
356 | ## [v4.0.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.4...v4.0.5) (2021-05-25)
357 |
358 | ### Chore
359 |
360 | * bump deps
361 | * cleanup
362 | * remove unused deps
363 | * add contributer to package.json
364 | * remove comment
365 |
366 | ### Ci
367 |
368 | * slow cron of codeql
369 | * add codeql
370 |
371 | ### Fix
372 |
373 | * async promise executor
374 |
375 | ### Refactor
376 |
377 | * optimize complexity
378 |
379 | ### Style
380 |
381 | * more lint
382 |
383 | ### Test
384 |
385 | * prepare more tests
386 |
387 |
388 |
389 | ## [v4.0.4](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.3...v4.0.4) (2021-05-23)
390 |
391 | ### Chore
392 |
393 | * remove outdated test
394 | * update license
395 | * remove depreacated test config
396 | * bump deps
397 |
398 | ### Ci
399 |
400 | * add more test versions
401 | * fix test action
402 |
403 | ### Feat
404 |
405 | * add windi template literal
406 | * add preflight windi config
407 | * add safelist support
408 | * add linter
409 |
410 | ### Fix
411 |
412 | * mulitple new lines
413 | * minor format issues
414 |
415 | ### Style
416 |
417 | * eslint
418 | * add missing \n
419 | * fix style
420 |
421 | ### Test
422 |
423 | * add windiExpression
424 | * add generate script
425 | * add preflights
426 | * more inline function
427 | * use src instead of dist
428 | * add class attribute tests
429 |
430 |
431 |
432 | ## [v4.0.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.2...v4.0.3) (2021-05-17)
433 |
434 | ### Fix
435 |
436 | * global & scoped styles combined
437 |
438 |
439 |
440 | ## [v4.0.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.1...v4.0.2) (2021-05-13)
441 |
442 | ### Chore
443 |
444 | * remove duplicate ci action
445 |
446 | ### Ci
447 |
448 | * fix publish action
449 |
450 |
451 |
452 | ## [v4.0.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0...v4.0.1) (2021-05-13)
453 |
454 | ### Ci
455 |
456 | * fix ci action
457 |
458 |
459 |
460 | ## [v4.0.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.17...v4.0.0) (2021-05-13)
461 |
462 | ### Chore
463 |
464 | * bump version
465 |
466 | ### Ci
467 |
468 | * latest
469 | * sematic release tag
470 | * fix trigger event
471 | * add publish for next version
472 | * fix gh page deploy
473 | * fix pre release tags
474 |
475 | ### Fix
476 |
477 | * playground
478 | * playground
479 | * try global preflights
480 |
481 |
482 |
483 | ## [v4.0.0-beta.17](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.16...v4.0.0-beta.17) (2021-05-13)
484 |
485 | ### Fix
486 |
487 | * pluginOptions
488 |
489 |
490 |
491 | ## [v4.0.0-beta.16](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.15...v4.0.0-beta.16) (2021-05-13)
492 |
493 | ### Chore
494 |
495 | * bump deps
496 |
497 | ### Fix
498 |
499 | * generate all preflights
500 |
501 |
502 |
503 | ## [v4.0.0-beta.15](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.14...v4.0.0-beta.15) (2021-05-12)
504 |
505 | ### Chore
506 |
507 | * some comments
508 |
509 | ### Feat
510 |
511 | * add safelist
512 |
513 | ### Fix
514 |
515 | * remove old code
516 |
517 |
518 |
519 | ## [v4.0.0-beta.14](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.13...v4.0.0-beta.14) (2021-05-12)
520 |
521 | ### Chore
522 |
523 | * marks
524 | * cleanup
525 | * drop gh pages
526 | * update readme
527 | * drop old test
528 | * drop playground
529 | * :fire: drop example
530 |
531 | ### Fix
532 |
533 | * bugs
534 |
535 | ### Refactor
536 |
537 | * :boom: refactor: use style pre-processor
538 |
539 |
540 |
541 | ## [v4.0.0-beta.13](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.12...v4.0.0-beta.13) (2021-05-12)
542 |
543 | ### Fix
544 |
545 | * new processor after config loaded
546 |
547 |
548 |
549 | ## [v4.0.0-beta.12](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.11...v4.0.0-beta.12) (2021-05-12)
550 |
551 | ### Chore
552 |
553 | * bump deps
554 |
555 | ### Revert
556 |
557 | * use always global
558 |
559 | ### Style
560 |
561 | * logging
562 |
563 |
564 |
565 | ## [v4.0.0-beta.11](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.10...v4.0.0-beta.11) (2021-05-11)
566 |
567 | ### Docs
568 |
569 | * clean
570 |
571 | ### Fix
572 |
573 | * downstream fix for playground
574 |
575 | ### Refactor
576 |
577 | * performance metrics
578 |
579 | ### Test
580 |
581 | * remove old test files
582 |
583 |
584 |
585 | ## [v4.0.0-beta.10](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.9...v4.0.0-beta.10) (2021-05-03)
586 |
587 | ### Chore
588 |
589 | * pin deps
590 |
591 | ### Feat
592 |
593 | * devTools
594 |
595 | ### Fix
596 |
597 | * external deps
598 |
599 | ### Perf
600 |
601 | * debug timings
602 | * debug timings
603 |
604 | ### Refactor
605 |
606 | * type definition
607 | * organize imports
608 | * config loader
609 |
610 |
611 |
612 | ## [v4.0.0-beta.9](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.8...v4.0.0-beta.9) (2021-04-29)
613 |
614 |
615 |
616 | ## [v4.0.0-beta.8](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.5.3...v4.0.0-beta.8) (2021-04-29)
617 |
618 | ### Chore
619 |
620 | * deprecate finally outdated examples
621 | * style & config
622 | * update libs
623 |
624 | ### Ci
625 |
626 | * test everywhere
627 | * publish script
628 | * semantic
629 | * fixes
630 | * main branch changes
631 |
632 | ### Feat
633 |
634 | * support modern ES functions
635 |
636 | ### Fix
637 |
638 | * new line at end
639 | * kit preflights
640 |
641 | ### Test
642 |
643 | * add input cases by [@TedMetah](https://github.com/TedMetah) ([#119](https://github.com/windicss/svelte-windicss-preprocess/issues/119))
644 | * git bug
645 | * fix new lib
646 |
647 | ### Wip
648 |
649 | * prepare class handler
650 | * prepare magician
651 |
652 |
653 |
654 | ## [v3.5.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.5.2...v3.5.3) (2021-04-17)
655 |
656 | ### Fix
657 |
658 | * try global preflights
659 |
660 |
661 |
662 | ## [v3.5.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.7...v3.5.2) (2021-04-13)
663 |
664 | ### Ci
665 |
666 | * latest
667 | * sematic release tag
668 | * fix trigger event
669 | * add publish for next version
670 | * fix gh page deploy
671 | * fix pre release tags
672 |
673 |
674 |
675 | ## [v4.0.0-beta.7](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.6...v4.0.0-beta.7) (2021-04-13)
676 |
677 | ### Ci
678 |
679 | * publish script
680 |
681 |
682 |
683 | ## [v4.0.0-beta.6](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.5...v4.0.0-beta.6) (2021-04-13)
684 |
685 | ### Test
686 |
687 | * git bug
688 |
689 |
690 |
691 | ## [v4.0.0-beta.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.4...v4.0.0-beta.5) (2021-04-13)
692 |
693 | ### Ci
694 |
695 | * semantic
696 |
697 | ### Test
698 |
699 | * fix new lib
700 |
701 |
702 |
703 | ## [v4.0.0-beta.4](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.3...v4.0.0-beta.4) (2021-04-13)
704 |
705 | ### Ci
706 |
707 | * fixes
708 |
709 |
710 |
711 | ## [v4.0.0-beta.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.2...v4.0.0-beta.3) (2021-04-13)
712 |
713 | ### Ci
714 |
715 | * main branch changes
716 |
717 |
718 |
719 | ## [v4.0.0-beta.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v4.0.0-beta.1...v4.0.0-beta.2) (2021-04-13)
720 |
721 | ### Chore
722 |
723 | * update libs
724 |
725 |
726 |
727 | ## [v4.0.0-beta.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.5.1...v4.0.0-beta.1) (2021-04-13)
728 |
729 |
730 |
731 | ## [v3.5.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.5.0...v3.5.1) (2021-04-13)
732 |
733 | ### Chore
734 |
735 | * more debug
736 |
737 | ### Revert
738 |
739 | * inline expression regex
740 |
741 |
742 |
743 | ## [v3.5.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.4.1...v3.5.0) (2021-04-13)
744 |
745 | ### Build
746 |
747 | * bundle chalk
748 |
749 | ### Chore
750 |
751 | * update gitignore
752 |
753 | ### Fix
754 |
755 | * inline expression
756 | * types location
757 |
758 |
759 |
760 | ## [v3.4.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.4.0...v3.4.1) (2021-04-12)
761 |
762 | ### Chore
763 |
764 | * updates
765 |
766 | ### Fix
767 |
768 | * debug option check close# 114 ([#115](https://github.com/windicss/svelte-windicss-preprocess/issues/115))
769 |
770 |
771 |
772 | ## [v3.4.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.3.2...v3.4.0) (2021-04-10)
773 |
774 | ### Chore
775 |
776 | * bump version
777 |
778 | ### Feat
779 |
780 | * add async configLoader to support mjs and cjs ([#109](https://github.com/windicss/svelte-windicss-preprocess/issues/109))
781 |
782 |
783 |
784 | ## [v3.3.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.3.1...v3.3.2) (2021-04-10)
785 |
786 | ### Fix
787 |
788 | * custom option priority
789 |
790 |
791 |
792 | ## [v3.3.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.3.0...v3.3.1) (2021-04-09)
793 |
794 | ### Fix
795 |
796 | * enhance kit support
797 |
798 |
799 |
800 | ## [v3.3.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.2.1...v3.3.0) (2021-04-05)
801 |
802 | ### Feat
803 |
804 | * drop browser target
805 | * add plugin-utils config loader
806 |
807 | ### Fix
808 |
809 | * keyframes do not need ":global" surroundings ([#100](https://github.com/windicss/svelte-windicss-preprocess/issues/100))
810 |
811 |
812 |
813 | ## [v3.2.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.2.0...v3.2.1) (2021-04-03)
814 |
815 | ### Docs
816 |
817 | * update readme
818 |
819 | ### Fix
820 |
821 | * support ES modules
822 |
823 |
824 |
825 | ## [v3.2.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.1.5...v3.2.0) (2021-04-03)
826 |
827 | ### Chore
828 |
829 | * add dev marks
830 |
831 | ### Ci
832 |
833 | * fix npm scripts
834 |
835 | ### Feat
836 |
837 | * support svelte-kit
838 |
839 |
840 |
841 | ## [v3.1.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.1.4...v3.1.5) (2021-03-29)
842 |
843 | ### Fix
844 |
845 | * image height on svelte repl ([#84](https://github.com/windicss/svelte-windicss-preprocess/issues/84))
846 |
847 |
848 |
849 | ## [v3.1.4](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.1.3...v3.1.4) (2021-03-27)
850 |
851 | ### Fix
852 |
853 | * windi attributes using unique identifier
854 |
855 |
856 |
857 | ## [v3.1.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.1.2...v3.1.3) (2021-03-26)
858 |
859 | ### Chore
860 |
861 | * dump packages
862 |
863 | ### Docs
864 |
865 | * cross link for svelte-kit
866 |
867 | ### Fix
868 |
869 | * inline expression parser
870 |
871 |
872 |
873 | ## [v3.1.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.1.1...v3.1.2) (2021-03-25)
874 |
875 | ### Chore
876 |
877 | * update example config
878 | * fix port of example
879 |
880 | ### Docs
881 |
882 | * adapt to new logic
883 |
884 | ### Feat
885 |
886 | * offline design-in-devtools support
887 |
888 | ### Fix
889 |
890 | * workaround of windiconfig issue
891 |
892 | ### Refactor
893 |
894 | * script regex
895 | * allow offline use of devTools
896 |
897 |
898 |
899 | ## [v3.1.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.1.0...v3.1.1) (2021-03-23)
900 |
901 | ### Chore
902 |
903 | * bump package version
904 |
905 |
906 |
907 | ## [v3.1.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.2...v3.1.0) (2021-03-23)
908 |
909 | ### Chore
910 |
911 | * add lib
912 |
913 | ### Ci
914 |
915 | * change dependabot strategy
916 |
917 | ### Feat
918 |
919 | * wip dev-in-devtools
920 | * add css class auto-completion devTools
921 |
922 | ### Fix
923 |
924 | * directive class interpretation
925 |
926 | ### Refactor
927 |
928 | * design-in-devtools windicss-runtime-dom
929 |
930 |
931 |
932 | ## [v3.0.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.1...v3.0.2) (2021-03-18)
933 |
934 | ### Fix
935 |
936 | * regex convert
937 |
938 |
939 |
940 | ## [v3.0.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0...v3.0.1) (2021-03-18)
941 |
942 | ### Docs
943 |
944 | * update
945 | * remove broken link
946 | * add temporary docs
947 | * update readme
948 |
949 | ### Fix
950 |
951 | * workaround for rollup build bug
952 |
953 | ### Refactor
954 |
955 | * remove kit examples since change to vite
956 |
957 |
958 |
959 | ## [v3.0.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.23...v3.0.0) (2021-03-18)
960 |
961 | ### Docs
962 |
963 | * refactor docs for v3
964 |
965 | ### Fix
966 |
967 | * global style tag
968 |
969 |
970 |
971 | ## [v3.0.0-beta.23](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.22...v3.0.0-beta.23) (2021-03-18)
972 |
973 | ### Fix
974 |
975 | * scripts
976 |
977 |
978 |
979 | ## [v3.0.0-beta.22](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.21...v3.0.0-beta.22) (2021-03-18)
980 |
981 | ### Fix
982 |
983 | * npm scripts
984 |
985 |
986 |
987 | ## [v3.0.0-beta.21](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.20...v3.0.0-beta.21) (2021-03-18)
988 |
989 | ### Fix
990 |
991 | * github actions
992 |
993 |
994 |
995 | ## [v3.0.0-beta.20](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.19...v3.0.0-beta.20) (2021-03-18)
996 |
997 | ### Chore
998 |
999 | * bump package versions
1000 | * upate action to npm
1001 | * changed back to npm
1002 |
1003 | ### Ci
1004 |
1005 | * add dependabot
1006 |
1007 | ### Refactor
1008 |
1009 | * improved format logic
1010 | * remove debug code
1011 | * remove outdated code
1012 | * remove debug code
1013 | * remove outdated code
1014 |
1015 |
1016 |
1017 | ## [v3.0.0-beta.19](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.18...v3.0.0-beta.19) (2021-03-18)
1018 |
1019 | ### Fix
1020 |
1021 | * formatting
1022 |
1023 |
1024 |
1025 | ## [v3.0.0-beta.18](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.17...v3.0.0-beta.18) (2021-03-17)
1026 |
1027 | ### Revert
1028 |
1029 | * revert formatting
1030 |
1031 |
1032 |
1033 | ## [v3.0.0-beta.17](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.16...v3.0.0-beta.17) (2021-03-17)
1034 |
1035 | ### Fix
1036 |
1037 | * support single line comment
1038 |
1039 | ### Refactor
1040 |
1041 | * change included variants
1042 | * remove outdated code
1043 |
1044 | ### Style
1045 |
1046 | * unused vars
1047 |
1048 |
1049 |
1050 | ## [v3.0.0-beta.16](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.15...v3.0.0-beta.16) (2021-03-16)
1051 |
1052 | ### Test
1053 |
1054 | * refactor test
1055 |
1056 |
1057 |
1058 | ## [v3.0.0-beta.15](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.14...v3.0.0-beta.15) (2021-03-16)
1059 |
1060 | ### Fix
1061 |
1062 | * variant in directive class
1063 |
1064 |
1065 |
1066 | ## [v3.0.0-beta.14](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.13...v3.0.0-beta.14) (2021-03-16)
1067 |
1068 | ### Feat
1069 |
1070 | * support directive class
1071 |
1072 | ### Fix
1073 |
1074 | * suggested svelte format
1075 |
1076 |
1077 |
1078 | ## [v3.0.0-beta.13](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.12...v3.0.0-beta.13) (2021-03-16)
1079 |
1080 | ### Fix
1081 |
1082 | * linter
1083 |
1084 |
1085 |
1086 | ## [v3.0.0-beta.12](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.11...v3.0.0-beta.12) (2021-03-16)
1087 |
1088 | ### Chore
1089 |
1090 | * comments
1091 | * bump packages to new version
1092 |
1093 | ### Feat
1094 |
1095 | * support windi template string
1096 |
1097 |
1098 |
1099 | ## [v3.0.0-beta.11](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.10...v3.0.0-beta.11) (2021-03-16)
1100 |
1101 | ### Fix
1102 |
1103 | * regex global style tag
1104 |
1105 |
1106 |
1107 | ## [v3.0.0-beta.10](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.9...v3.0.0-beta.10) (2021-03-15)
1108 |
1109 | ### Chore
1110 |
1111 | * add more debug logging
1112 |
1113 | ### Fix
1114 |
1115 | * fix verbosity option
1116 | * internal expression regex ([#66](https://github.com/windicss/svelte-windicss-preprocess/issues/66))
1117 |
1118 | ### Refactor
1119 |
1120 | * fixes various bugs
1121 | * adapt example
1122 |
1123 |
1124 |
1125 | ## [v3.0.0-beta.9](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.8...v3.0.0-beta.9) (2021-03-11)
1126 |
1127 | ### Chore
1128 |
1129 | * debugs
1130 | * bump packages
1131 |
1132 | ### Feat
1133 |
1134 | * no duplicate base styles in production
1135 | * add option for mode
1136 | * add check for main file
1137 | * add debug logging
1138 |
1139 | ### Fix
1140 |
1141 | * fix log and test
1142 | * delete outdated logging
1143 | * logging issue
1144 | * className breaks
1145 |
1146 | ### Refactor
1147 |
1148 | * debug example
1149 | * deprecated old options
1150 |
1151 | ### Style
1152 |
1153 | * formatting
1154 |
1155 | ### Test
1156 |
1157 | * fix test
1158 |
1159 |
1160 |
1161 | ## [v3.0.0-beta.8](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2021-03-09)
1162 |
1163 | ### Fix
1164 |
1165 | * add missing variant modifier
1166 |
1167 |
1168 |
1169 | ## [v3.0.0-beta.7](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2021-03-09)
1170 |
1171 | ### Fix
1172 |
1173 | * class directive break
1174 |
1175 |
1176 |
1177 | ## [v3.0.0-beta.6](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2021-03-09)
1178 |
1179 | ### Chore
1180 |
1181 | * fix missing lib
1182 |
1183 |
1184 |
1185 | ## [v3.0.0-beta.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2021-03-09)
1186 |
1187 | ### Refactor
1188 |
1189 | * WIP html validation
1190 | * change html validation
1191 |
1192 |
1193 |
1194 | ## [v3.0.0-beta.4](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2021-03-09)
1195 |
1196 | ### Docs
1197 |
1198 | * add docs for inline expression
1199 |
1200 | ### Refactor
1201 |
1202 | * new html style
1203 |
1204 | ### Test
1205 |
1206 | * adapted tests
1207 |
1208 |
1209 |
1210 | ## [v3.0.0-beta.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2021-03-08)
1211 |
1212 | ### Fix
1213 |
1214 | * fix browser version
1215 |
1216 |
1217 |
1218 | ## [v3.0.0-beta.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v3.0.0-beta.1...v3.0.0-beta.2) (2021-03-08)
1219 |
1220 | ### Chore
1221 |
1222 | * bump windicss
1223 | * update packages
1224 |
1225 | ### Docs
1226 |
1227 | * update docs with experimental parser
1228 |
1229 | ### Feat
1230 |
1231 | * improves REPL([#47](https://github.com/windicss/svelte-windicss-preprocess/issues/47))
1232 | * add html format checks
1233 |
1234 | ### Fix
1235 |
1236 | * variant matching
1237 | * REPL build
1238 | * REPL build
1239 |
1240 |
1241 |
1242 | ## [v3.0.0-beta.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.3.1...v3.0.0-beta.1) (2021-03-05)
1243 |
1244 | ### Chore
1245 |
1246 | * wip example
1247 |
1248 | ### Feat
1249 |
1250 | * add experimental parser
1251 |
1252 | ### Fix
1253 |
1254 | * support windi template literals
1255 |
1256 |
1257 |
1258 | ## [v2.3.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.3.0...v2.3.1) (2021-03-04)
1259 |
1260 | ### Chore
1261 |
1262 | * packages
1263 |
1264 | ### Revert
1265 |
1266 | * custom fix
1267 |
1268 | ### Test
1269 |
1270 | * fixed wrong naming
1271 | * replaced test lib
1272 |
1273 |
1274 |
1275 | ## [v2.3.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.2.4...v2.3.0) (2021-03-03)
1276 |
1277 | ### Chore
1278 |
1279 | * bumps windicss to latest release
1280 |
1281 | ### Perf
1282 |
1283 | * switch to sucrase
1284 |
1285 | ### Style
1286 |
1287 | * formatting
1288 |
1289 | ### Test
1290 |
1291 | * added test
1292 | * reverted test change
1293 | * update snapshot
1294 | * better tests
1295 |
1296 |
1297 |
1298 | ## [v2.2.4](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.2.3...v2.2.4) (2021-02-28)
1299 |
1300 | ### Test
1301 |
1302 | * adapted test
1303 |
1304 |
1305 |
1306 | ## [v2.2.3](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.2.2...v2.2.3) (2021-02-28)
1307 |
1308 | ### Chore
1309 |
1310 | * bumps windicss release to 2.2.1
1311 |
1312 |
1313 |
1314 | ## [v2.2.2](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.2.1...v2.2.2) (2021-02-27)
1315 |
1316 | ### Chore
1317 |
1318 | * add pnpm as dev dependency ([#38](https://github.com/windicss/svelte-windicss-preprocess/issues/38))
1319 | * fixes examples
1320 | * refactor examples
1321 |
1322 | ### Docs
1323 |
1324 | * updated tailwind configuration docs
1325 |
1326 | ### Fix
1327 |
1328 | * adapted to svelte scoped styles
1329 | * global style tags always parses global
1330 |
1331 | ### Test
1332 |
1333 | * adapted tests to new features
1334 |
1335 |
1336 |
1337 | ## [v2.2.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.2.0...v2.2.1) (2021-02-24)
1338 |
1339 | ### Fix
1340 |
1341 | * i missed the install
1342 |
1343 |
1344 |
1345 | ## [v2.2.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.9...v2.2.0) (2021-02-24)
1346 |
1347 | ### Chore
1348 |
1349 | * update to windicss 2.2
1350 |
1351 |
1352 |
1353 | ## [v2.1.9](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.8...v2.1.9) (2021-02-23)
1354 |
1355 | ### Fix
1356 |
1357 | * fix tests
1358 |
1359 |
1360 |
1361 | ## [v2.1.8](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.7...v2.1.8) (2021-02-23)
1362 |
1363 | ### Fix
1364 |
1365 | * :global gets added to often
1366 |
1367 | ### Test
1368 |
1369 | * rework svelte tests
1370 |
1371 |
1372 |
1373 | ## [v2.1.7](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.6...v2.1.7) (2021-02-23)
1374 |
1375 | ### Fix
1376 |
1377 | * [#18](https://github.com/windicss/svelte-windicss-preprocess/issues/18) utility groups transformation
1378 |
1379 | ### Style
1380 |
1381 | * consistent style
1382 |
1383 |
1384 |
1385 | ## [v2.1.6](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.5...v2.1.6) (2021-02-22)
1386 |
1387 | ### Chore
1388 |
1389 | * updated packages
1390 | * add jasmine snapshot chore: switch to esno
1391 |
1392 |
1393 |
1394 | ## [v2.1.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.1...v2.1.5) (2021-02-21)
1395 |
1396 | ### Fix
1397 |
1398 | * Styles in style tag works even if it's commented out [#55](https://github.com/windicss/svelte-windicss-preprocess/issues/55)
1399 |
1400 |
1401 |
1402 | ## [v2.1.1](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.1.0...v2.1.1) (2021-02-10)
1403 |
1404 |
1405 |
1406 | ## [v2.1.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v2.0.0...v2.1.0) (2021-02-08)
1407 |
1408 |
1409 |
1410 | ## [v2.0.0](https://github.com/windicss/svelte-windicss-preprocess/compare/v1.0.9...v2.0.0) (2021-01-20)
1411 |
1412 |
1413 |
1414 | ## [v1.0.9](https://github.com/windicss/svelte-windicss-preprocess/compare/v1.0.6...v1.0.9) (2021-01-18)
1415 |
1416 |
1417 |
1418 | ## [v1.0.6](https://github.com/windicss/svelte-windicss-preprocess/compare/v1.0.5...v1.0.6) (2021-01-13)
1419 |
1420 |
1421 |
1422 | ## [v1.0.5](https://github.com/windicss/svelte-windicss-preprocess/compare/v1.0.4...v1.0.5) (2021-01-12)
1423 |
1424 |
1425 |
1426 | ## v1.0.4 (2021-01-07)
1427 |
1428 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to svelte-windicss-preprocess
2 |
3 | Thanks for your interest in contributing! Please read carefully through our guidelines below to ensure that your contribution adheres to our project's standards.
4 |
5 | ## Issue Tracking
6 |
7 | We use [GitHub Issues](https://github.com/windicss/svelte-windicss-preprocess/issues) to track all tasks related to this project.
8 |
9 | ## Build the project locally
10 |
11 | In order to contribute to svelte-windicss-preprocess, you must first get a copy of the project running locally on your computer.
12 |
13 | There are five steps to building this project:
14 |
15 | 1. [Set up Git and Install Node.js](#set-up-git-and-install-nodejs)
16 | 2. [Fork the repository](#fork-the-repository)
17 | 3. [Clone your fork](#clone-your-fork)
18 | 4. [Install dependencies](#install-dependencies)
19 | 5. [Build the project](#build-the-project)
20 |
21 | ### Set up Git and Install Node.js
22 |
23 | All GitHub projects are backed by a version control software called *Git*. You'll need to [set up Git](https://github.com/danthareja/contribute-to-open-source/wiki/Setting-up-Git) in order to contribute to *any* project on GitHub.
24 |
25 | This specific project is written in JavaScript and uses Node.js as it's runtime. You'll need to [install Node.js](https://nodejs.org/en/) in order to run the project.
26 |
27 | ### Fork the [repository](https://github.com/windicss/svelte-windicss-preprocess.git)
28 |
29 | A *fork* is a copy of a repository. Forking a repository lets you to make changes to your copy without affecting any of the original code.
30 |
31 | Click **Fork** (in the top-right corner of the page) to copy this repository to your GitHub account.
32 |
33 | ### Clone your fork
34 |
35 | Use git to clone your fork to your computer.
36 |
37 | ```
38 | $ git clone https://github.com/${username}/svelte-windicss-preprocess.git
39 | ```
40 |
41 | ### Install dependencies
42 |
43 | This project uses [pnpm](https://pnpm.js.org/), a command-line tool bundled with Node.js, to maintain third-party dependencies.
44 |
45 | First, navigate into the project's directory
46 |
47 | ```
48 | $ cd svelte-windicss-preprocess
49 | ```
50 |
51 | Next, use `pnpm` to install the project' dependencies
52 | ```
53 | $ pnpm install
54 | ```
55 |
56 | ### Build the project
57 |
58 | Development Version
59 |
60 | ```
61 | $ pnpm build
62 | ```
63 |
64 | Production Version
65 |
66 | ```
67 | $ pnpm build:prod
68 | ```
69 |
70 | ## Submit a Pull Request
71 |
72 | After you successfully [build the project](#build-the-project), you can make some changes of your own.
73 |
74 | There are five steps to submit pull request:
75 |
76 | 1. [Create a new branch](#create-a-new-branch)
77 | 2. [Make your changes](#make-your-changes)
78 | 3. [Test your changes](#test-your-changes)
79 | 4. [Push your changes](#push-your-changes)
80 | 5. [Open a Pull Request](#open-a-pull-request)
81 |
82 | ### Create a new branch
83 |
84 | ```
85 | $ git branch fix-issue-123
86 | $ git checkout fix-issue-123
87 | ```
88 |
89 | ### Make your changes
90 |
91 | Make sure your code is following [TypeScript Style Guide](https://google.github.io/styleguide/tsguide.html).
92 |
93 | ### Test your changes
94 |
95 | You should add a new test file for your changes into [test](/tree/main/test) folder, the file should have extension `.test.ts`.
96 |
97 | Run tests:
98 | ```
99 | $ pnpm test
100 | ```
101 |
102 | ### Push your changes
103 |
104 | ```
105 | $ git add .
106 | $ git commit -m "fix issue 123"
107 | $ git push origin fix-issue-123
108 | ```
109 |
110 | ### Open a Pull Request
111 |
112 | 1. Find the [New Pull Request](https://github.com/windicss/svelte-windicss-preprocess/compare) button
113 | 2. Select the option to **compare across forks**
114 | 3. Select **your fork**(${username}/svelte-windicss-preprocess) in the `head repository` option
115 | 4. Select **your branch** in the `compare` option
116 | 5. Click **Create Pull Request**
117 |
118 | ## License
119 |
120 | By contributing, you agree that your contributions will be licensed under its [MIT license](https://github.com/windicss/svelte-windicss-preprocess/blob/main/LICENSE).
121 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Veritas Raven, Windi CSS Contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | ⚠️ Windi CSS is Sunsetting ⚠️
3 | We are sunsetting Windi CSS and we recommend new projects to seek for alternatives. Read the full blog post.
4 |
5 |
6 |
7 |
8 | # svelte-windicss-preprocess
9 |
10 | A svelte preprocessor for [windicss](https://github.com/windicss/windicss). Windi CSS is a next generation utility-first CSS framework.
11 |
12 | If you are already familiar with [Tailwind CSS](https://tailwindcss.com/docs), think about Windi CSS as an on-demanded alternative to Tailwind, which provides faster load times, fully compatible with Tailwind v2.0 and with a bunch of additional cool features.
13 |
14 | ---
15 |
16 | ## Installation
17 |
18 | > Now we have a great Windi CSS playground, you can [try it online](https://windicss.org/play.html)
19 |
20 | ```sh
21 | npm i -D svelte-windicss-preprocess
22 | ```
23 |
24 | ---
25 |
26 | ## Integrations & Configuration
27 |
28 | ### see our [guides](https://windicss.org/integrations/svelte.html) in our windi css docs
29 |
30 | ## Resources
31 |
32 | - [Documentation](https://windicss.org)
33 |
34 | - [MIT License](https://github.com/windicss/svelte-windicss-preprocess/blob/main/LICENSE)
35 |
--------------------------------------------------------------------------------
/generate.ts:
--------------------------------------------------------------------------------
1 | import { readFileSync, writeFileSync } from 'fs'
2 | import { join } from 'path'
3 | import { preprocess } from 'svelte/compiler'
4 | import { windi } from './src/index'
5 |
6 | async function main(subPath: string) {
7 | const path = join(process.cwd(), subPath)
8 | console.log(path)
9 |
10 | const input = readFileSync(path, {
11 | encoding: 'utf-8',
12 | })
13 | const { code } = await preprocess(
14 | input,
15 | windi({
16 | silent: false,
17 | experimental: {
18 | icons: {
19 | prefix: 'i-',
20 | extraProperties: {
21 | display: 'inline-block',
22 | },
23 | },
24 | },
25 | }),
26 | {
27 | filename: 'generate.svelte',
28 | }
29 | )
30 | writeFileSync(path.replace('input', 'expected'), code, {
31 | encoding: 'utf-8',
32 | })
33 | console.log('done')
34 | }
35 | main(process.argv[2])
36 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-windicss-preprocess",
3 | "description": "A Svelte Preprocessor to compile tailwindcss at build time based on windicss compiler.",
4 | "version": "4.2.8",
5 | "author": "Veritas Raven",
6 | "contributors": [],
7 | "dependencies": {
8 | "@iconify/json": "1.1.432",
9 | "fast-glob": "3.2.7",
10 | "unconfig": "0.2.2",
11 | "windicss": "3.5.4",
12 | "windicss-runtime-dom": "3.0.0"
13 | },
14 | "devDependencies": {
15 | "@antfu/ni": "0.11.0",
16 | "@nbhr/utils": "0.0.29",
17 | "@types/node": "16.11.9",
18 | "@typescript-eslint/eslint-plugin": "5.4.0",
19 | "@typescript-eslint/parser": "5.4.0",
20 | "@unocss/core": "0.12.1",
21 | "@unocss/preset-icons": "0.12.1",
22 | "bumpp": "7.1.1",
23 | "cross-env": "7.0.3",
24 | "eslint": "8.3.0",
25 | "picocolors": "1.0.0",
26 | "pnpm": "6.23.1",
27 | "rimraf": "3.0.2",
28 | "sucrase": "3.20.3",
29 | "svelte": "3.44.2",
30 | "tslib": "2.3.1",
31 | "tsm": "2.1.4",
32 | "tsup": "5.8.0",
33 | "typescript": "4.5.2",
34 | "uvu": "0.5.2"
35 | },
36 | "exports": {
37 | ".": {
38 | "import": "./dist/index.mjs",
39 | "require": "./dist/index.js"
40 | }
41 | },
42 | "files": [
43 | "dist/**/*"
44 | ],
45 | "homepage": "https://windicss.org/",
46 | "keywords": [
47 | "compiler",
48 | "css",
49 | "preprocess",
50 | "svelte",
51 | "tailwindcss",
52 | "windicss"
53 | ],
54 | "license": "MIT",
55 | "maintainers": [
56 | {
57 | "name": "Alexander Niebuhr",
58 | "email": "tech@nbhr.io"
59 | }
60 | ],
61 | "repository": {
62 | "type": "git",
63 | "url": "https://github.com/windicss/svelte-windicss-preprocess.git"
64 | },
65 | "scripts": {
66 | "build": "tsup ./src/index.ts --dts --format esm,cjs --no-splitting",
67 | "build:clean": "rimraf dist && nr build",
68 | "dev": "nr build --watch",
69 | "lint": "eslint src",
70 | "lint:tests": "eslint tests --ext .ts",
71 | "release": "nr test && nr build:clean && bumpp --tag --commit --push",
72 | "test": "uvu -r sucrase/register tests",
73 | "test:generate": "tsm generate.ts"
74 | },
75 | "types": "dist/index.d.ts",
76 | "volta": {
77 | "node": "16.13.1"
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.3
2 |
3 | specifiers:
4 | '@antfu/ni': 0.11.0
5 | '@iconify/json': 1.1.432
6 | '@nbhr/utils': 0.0.29
7 | '@types/node': 16.11.9
8 | '@typescript-eslint/eslint-plugin': 5.4.0
9 | '@typescript-eslint/parser': 5.4.0
10 | '@unocss/core': 0.12.1
11 | '@unocss/preset-icons': 0.12.1
12 | bumpp: 7.1.1
13 | cross-env: 7.0.3
14 | eslint: 8.3.0
15 | fast-glob: 3.2.7
16 | picocolors: 1.0.0
17 | pnpm: 6.23.1
18 | rimraf: 3.0.2
19 | sucrase: 3.20.3
20 | svelte: 3.44.2
21 | tslib: 2.3.1
22 | tsm: 2.1.4
23 | tsup: 5.8.0
24 | typescript: 4.5.2
25 | unconfig: 0.2.2
26 | uvu: 0.5.2
27 | windicss: 3.5.4
28 | windicss-runtime-dom: 3.0.0
29 |
30 | dependencies:
31 | '@iconify/json': 1.1.432
32 | fast-glob: 3.2.7
33 | unconfig: 0.2.2
34 | windicss: 3.5.4
35 | windicss-runtime-dom: 3.0.0
36 |
37 | devDependencies:
38 | '@antfu/ni': 0.11.0
39 | '@nbhr/utils': 0.0.29
40 | '@types/node': 16.11.9
41 | '@typescript-eslint/eslint-plugin': 5.4.0_5c8ff4cecd5a55e744866c0654edac32
42 | '@typescript-eslint/parser': 5.4.0_eslint@8.3.0+typescript@4.5.2
43 | '@unocss/core': 0.12.1
44 | '@unocss/preset-icons': 0.12.1
45 | bumpp: 7.1.1
46 | cross-env: 7.0.3
47 | eslint: 8.3.0
48 | picocolors: 1.0.0
49 | pnpm: 6.23.1
50 | rimraf: 3.0.2
51 | sucrase: 3.20.3
52 | svelte: 3.44.2
53 | tslib: 2.3.1
54 | tsm: 2.1.4
55 | tsup: 5.8.0_typescript@4.5.2
56 | typescript: 4.5.2
57 | uvu: 0.5.2
58 |
59 | packages:
60 |
61 | /@antfu/ni/0.11.0:
62 | resolution: {integrity: sha512-+Iep4kXORK9tTr+ZYWln2H1LO3YHRgHKnafiWxXokLV5nE6U7hY1NyVjBVyhYU7TJIAskE4sZmvgZznzuHo2lg==}
63 | hasBin: true
64 | dev: true
65 |
66 | /@antfu/utils/0.3.0:
67 | resolution: {integrity: sha512-UU8TLr/EoXdg7OjMp0h9oDoIAVr+Z/oW9cpOxQQyrsz6Qzd2ms/1CdWx8fl2OQdFpxGmq5Vc4TwfLHId6nAZjA==}
68 | dependencies:
69 | '@types/throttle-debounce': 2.1.0
70 | dev: false
71 |
72 | /@eslint/eslintrc/1.0.4:
73 | resolution: {integrity: sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==}
74 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
75 | dependencies:
76 | ajv: 6.12.6
77 | debug: 4.3.2
78 | espree: 9.1.0
79 | globals: 13.12.0
80 | ignore: 4.0.6
81 | import-fresh: 3.3.0
82 | js-yaml: 4.1.0
83 | minimatch: 3.0.4
84 | strip-json-comments: 3.1.1
85 | transitivePeerDependencies:
86 | - supports-color
87 | dev: true
88 |
89 | /@humanwhocodes/config-array/0.6.0:
90 | resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==}
91 | engines: {node: '>=10.10.0'}
92 | dependencies:
93 | '@humanwhocodes/object-schema': 1.2.0
94 | debug: 4.3.2
95 | minimatch: 3.0.4
96 | transitivePeerDependencies:
97 | - supports-color
98 | dev: true
99 |
100 | /@humanwhocodes/object-schema/1.2.0:
101 | resolution: {integrity: sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==}
102 | dev: true
103 |
104 | /@iconify/json/1.1.432:
105 | resolution: {integrity: sha512-ZcQKCnJXmeKDKxSu4vOFCYkCv8sjX1OASTMQpzqVzt3ivBBDudAYyXJlO4hgk0X4B2R0IMHRNvRgCAYkKDa2eQ==}
106 | dev: false
107 |
108 | /@iconify/types/1.0.10:
109 | resolution: {integrity: sha512-SN3z6einVeUckDQiE8p4POF7X4hk4/y2+a7a4ogJOCxX5XT6z1zXNN8dwS5O1vloXpc6mkHizRZm2qPnhK6NnQ==}
110 | dev: true
111 |
112 | /@iconify/utils/1.0.18:
113 | resolution: {integrity: sha512-uCfJ7FdTxDk1DLKsvynTsYX4LnkGIDw+LCpoY0mRdl+NrNPCjYZ8HHYs4xzmo7cryRe0ZT0yuF2f3oipPIHn8w==}
114 | dependencies:
115 | '@iconify/types': 1.0.10
116 | dev: true
117 |
118 | /@jsdevtools/ez-spawn/3.0.4:
119 | resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==}
120 | engines: {node: '>=10'}
121 | dependencies:
122 | call-me-maybe: 1.0.1
123 | cross-spawn: 7.0.3
124 | string-argv: 0.3.1
125 | type-detect: 4.0.8
126 | dev: true
127 |
128 | /@nbhr/utils/0.0.29:
129 | resolution: {integrity: sha512-Oshi44WrZmk7hgoXdsRm0r8HYx28X+PeZWSpVIdsJbHB/QbgTfvlHhOzyyhHNCr/pS54JdrHvhEd0l5f7B/+pg==}
130 | dev: true
131 |
132 | /@nodelib/fs.scandir/2.1.5:
133 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
134 | engines: {node: '>= 8'}
135 | dependencies:
136 | '@nodelib/fs.stat': 2.0.5
137 | run-parallel: 1.2.0
138 |
139 | /@nodelib/fs.stat/2.0.5:
140 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
141 | engines: {node: '>= 8'}
142 |
143 | /@nodelib/fs.walk/1.2.8:
144 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
145 | engines: {node: '>= 8'}
146 | dependencies:
147 | '@nodelib/fs.scandir': 2.1.5
148 | fastq: 1.13.0
149 |
150 | /@types/json-schema/7.0.9:
151 | resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==}
152 | dev: true
153 |
154 | /@types/node/16.11.9:
155 | resolution: {integrity: sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==}
156 | dev: true
157 |
158 | /@types/throttle-debounce/2.1.0:
159 | resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==}
160 | dev: false
161 |
162 | /@typescript-eslint/eslint-plugin/5.4.0_5c8ff4cecd5a55e744866c0654edac32:
163 | resolution: {integrity: sha512-9/yPSBlwzsetCsGEn9j24D8vGQgJkOTr4oMLas/w886ZtzKIs1iyoqFrwsX2fqYEeUwsdBpC21gcjRGo57u0eg==}
164 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
165 | peerDependencies:
166 | '@typescript-eslint/parser': ^5.0.0
167 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
168 | typescript: '*'
169 | peerDependenciesMeta:
170 | typescript:
171 | optional: true
172 | dependencies:
173 | '@typescript-eslint/experimental-utils': 5.4.0_eslint@8.3.0+typescript@4.5.2
174 | '@typescript-eslint/parser': 5.4.0_eslint@8.3.0+typescript@4.5.2
175 | '@typescript-eslint/scope-manager': 5.4.0
176 | debug: 4.3.2
177 | eslint: 8.3.0
178 | functional-red-black-tree: 1.0.1
179 | ignore: 5.1.8
180 | regexpp: 3.2.0
181 | semver: 7.3.5
182 | tsutils: 3.21.0_typescript@4.5.2
183 | typescript: 4.5.2
184 | transitivePeerDependencies:
185 | - supports-color
186 | dev: true
187 |
188 | /@typescript-eslint/experimental-utils/5.4.0_eslint@8.3.0+typescript@4.5.2:
189 | resolution: {integrity: sha512-Nz2JDIQUdmIGd6p33A+naQmwfkU5KVTLb/5lTk+tLVTDacZKoGQisj8UCxk7onJcrgjIvr8xWqkYI+DbI3TfXg==}
190 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
191 | peerDependencies:
192 | eslint: '*'
193 | dependencies:
194 | '@types/json-schema': 7.0.9
195 | '@typescript-eslint/scope-manager': 5.4.0
196 | '@typescript-eslint/types': 5.4.0
197 | '@typescript-eslint/typescript-estree': 5.4.0_typescript@4.5.2
198 | eslint: 8.3.0
199 | eslint-scope: 5.1.1
200 | eslint-utils: 3.0.0_eslint@8.3.0
201 | transitivePeerDependencies:
202 | - supports-color
203 | - typescript
204 | dev: true
205 |
206 | /@typescript-eslint/parser/5.4.0_eslint@8.3.0+typescript@4.5.2:
207 | resolution: {integrity: sha512-JoB41EmxiYpaEsRwpZEYAJ9XQURPFer8hpkIW9GiaspVLX8oqbqNM8P4EP8HOZg96yaALiLEVWllA2E8vwsIKw==}
208 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
209 | peerDependencies:
210 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
211 | typescript: '*'
212 | peerDependenciesMeta:
213 | typescript:
214 | optional: true
215 | dependencies:
216 | '@typescript-eslint/scope-manager': 5.4.0
217 | '@typescript-eslint/types': 5.4.0
218 | '@typescript-eslint/typescript-estree': 5.4.0_typescript@4.5.2
219 | debug: 4.3.2
220 | eslint: 8.3.0
221 | typescript: 4.5.2
222 | transitivePeerDependencies:
223 | - supports-color
224 | dev: true
225 |
226 | /@typescript-eslint/scope-manager/5.4.0:
227 | resolution: {integrity: sha512-pRxFjYwoi8R+n+sibjgF9iUiAELU9ihPBtHzocyW8v8D8G8KeQvXTsW7+CBYIyTYsmhtNk50QPGLE3vrvhM5KA==}
228 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
229 | dependencies:
230 | '@typescript-eslint/types': 5.4.0
231 | '@typescript-eslint/visitor-keys': 5.4.0
232 | dev: true
233 |
234 | /@typescript-eslint/types/5.4.0:
235 | resolution: {integrity: sha512-GjXNpmn+n1LvnttarX+sPD6+S7giO+9LxDIGlRl4wK3a7qMWALOHYuVSZpPTfEIklYjaWuMtfKdeByx0AcaThA==}
236 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
237 | dev: true
238 |
239 | /@typescript-eslint/typescript-estree/5.4.0_typescript@4.5.2:
240 | resolution: {integrity: sha512-nhlNoBdhKuwiLMx6GrybPT3SFILm5Gij2YBdPEPFlYNFAXUJWX6QRgvi/lwVoadaQEFsizohs6aFRMqsXI2ewA==}
241 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
242 | peerDependencies:
243 | typescript: '*'
244 | peerDependenciesMeta:
245 | typescript:
246 | optional: true
247 | dependencies:
248 | '@typescript-eslint/types': 5.4.0
249 | '@typescript-eslint/visitor-keys': 5.4.0
250 | debug: 4.3.2
251 | globby: 11.0.4
252 | is-glob: 4.0.3
253 | semver: 7.3.5
254 | tsutils: 3.21.0_typescript@4.5.2
255 | typescript: 4.5.2
256 | transitivePeerDependencies:
257 | - supports-color
258 | dev: true
259 |
260 | /@typescript-eslint/visitor-keys/5.4.0:
261 | resolution: {integrity: sha512-PVbax7MeE7tdLfW5SA0fs8NGVVr+buMPrcj+CWYWPXsZCH8qZ1THufDzbXm1xrZ2b2PA1iENJ0sRq5fuUtvsJg==}
262 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
263 | dependencies:
264 | '@typescript-eslint/types': 5.4.0
265 | eslint-visitor-keys: 3.1.0
266 | dev: true
267 |
268 | /@unocss/core/0.12.1:
269 | resolution: {integrity: sha512-Paa+trPCc/4aTV5B6gmlOU0ZYssBIH8zUBeuyPK4jYp6cIlYXsGNGRQhkkBTik+/U6XNk8wDr3zCKQetO59G1g==}
270 | dev: true
271 |
272 | /@unocss/preset-icons/0.12.1:
273 | resolution: {integrity: sha512-kiO5LaB5rRdkBIluKI8YClzq8BjpXzt3qkVl6pcfwmUKiPPiWT7gYV2ky9w0s92GgrN5g3oGrPzFCvyhYZVkMA==}
274 | dependencies:
275 | '@iconify/utils': 1.0.18
276 | '@unocss/core': 0.12.1
277 | local-pkg: 0.4.0
278 | dev: true
279 |
280 | /acorn-jsx/5.3.2_acorn@8.6.0:
281 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
282 | peerDependencies:
283 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
284 | dependencies:
285 | acorn: 8.6.0
286 | dev: true
287 |
288 | /acorn/8.6.0:
289 | resolution: {integrity: sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==}
290 | engines: {node: '>=0.4.0'}
291 | hasBin: true
292 | dev: true
293 |
294 | /ajv/6.12.6:
295 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
296 | dependencies:
297 | fast-deep-equal: 3.1.3
298 | fast-json-stable-stringify: 2.1.0
299 | json-schema-traverse: 0.4.1
300 | uri-js: 4.4.1
301 | dev: true
302 |
303 | /ansi-colors/4.1.1:
304 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
305 | engines: {node: '>=6'}
306 | dev: true
307 |
308 | /ansi-regex/5.0.1:
309 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
310 | engines: {node: '>=8'}
311 | dev: true
312 |
313 | /ansi-styles/4.3.0:
314 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
315 | engines: {node: '>=8'}
316 | dependencies:
317 | color-convert: 2.0.1
318 | dev: true
319 |
320 | /any-promise/1.3.0:
321 | resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=}
322 | dev: true
323 |
324 | /anymatch/3.1.2:
325 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
326 | engines: {node: '>= 8'}
327 | dependencies:
328 | normalize-path: 3.0.0
329 | picomatch: 2.3.0
330 | dev: true
331 |
332 | /argparse/2.0.1:
333 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
334 | dev: true
335 |
336 | /array-back/3.1.0:
337 | resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==}
338 | engines: {node: '>=6'}
339 | dev: true
340 |
341 | /array-union/2.1.0:
342 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
343 | engines: {node: '>=8'}
344 | dev: true
345 |
346 | /balanced-match/1.0.2:
347 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
348 | dev: true
349 |
350 | /binary-extensions/2.2.0:
351 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
352 | engines: {node: '>=8'}
353 | dev: true
354 |
355 | /brace-expansion/1.1.11:
356 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
357 | dependencies:
358 | balanced-match: 1.0.2
359 | concat-map: 0.0.1
360 | dev: true
361 |
362 | /braces/3.0.2:
363 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
364 | engines: {node: '>=8'}
365 | dependencies:
366 | fill-range: 7.0.1
367 |
368 | /builtins/4.0.0:
369 | resolution: {integrity: sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw==}
370 | dependencies:
371 | semver: 7.3.5
372 | dev: true
373 |
374 | /bumpp/7.1.1:
375 | resolution: {integrity: sha512-pAGjraw9T4I4dnkiQHrKUVQb55dOM5Nj72SVtVlkjFjWjFtg0aSgipQuxDWZ0cqm8WoqtaiBPk+7jHfnZxr7lA==}
376 | engines: {node: '>=10'}
377 | hasBin: true
378 | dependencies:
379 | '@jsdevtools/ez-spawn': 3.0.4
380 | chalk: 4.1.2
381 | command-line-args: 5.2.0
382 | globby: 11.0.4
383 | prompts: 2.4.2
384 | semver: 7.3.5
385 | dev: true
386 |
387 | /cac/6.7.11:
388 | resolution: {integrity: sha512-m4xrA2MKfid6uDV2j2+0mXrtPGxlvAW0y+7Gnn2P8WVMSG+4e4tcoYX++94ZPblPfpBccJ5e7HvKdghlX5yiDA==}
389 | engines: {node: '>=8'}
390 | dev: true
391 |
392 | /call-me-maybe/1.0.1:
393 | resolution: {integrity: sha1-JtII6onje1y95gJQoV8DHBak1ms=}
394 | dev: true
395 |
396 | /callsites/3.1.0:
397 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
398 | engines: {node: '>=6'}
399 | dev: true
400 |
401 | /chalk/4.1.2:
402 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
403 | engines: {node: '>=10'}
404 | dependencies:
405 | ansi-styles: 4.3.0
406 | supports-color: 7.2.0
407 | dev: true
408 |
409 | /chokidar/3.5.2:
410 | resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==}
411 | engines: {node: '>= 8.10.0'}
412 | dependencies:
413 | anymatch: 3.1.2
414 | braces: 3.0.2
415 | glob-parent: 5.1.2
416 | is-binary-path: 2.1.0
417 | is-glob: 4.0.3
418 | normalize-path: 3.0.0
419 | readdirp: 3.6.0
420 | optionalDependencies:
421 | fsevents: 2.3.2
422 | dev: true
423 |
424 | /color-convert/2.0.1:
425 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
426 | engines: {node: '>=7.0.0'}
427 | dependencies:
428 | color-name: 1.1.4
429 | dev: true
430 |
431 | /color-name/1.1.4:
432 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
433 | dev: true
434 |
435 | /command-line-args/5.2.0:
436 | resolution: {integrity: sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A==}
437 | engines: {node: '>=4.0.0'}
438 | dependencies:
439 | array-back: 3.1.0
440 | find-replace: 3.0.0
441 | lodash.camelcase: 4.3.0
442 | typical: 4.0.0
443 | dev: true
444 |
445 | /commander/4.1.1:
446 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
447 | engines: {node: '>= 6'}
448 | dev: true
449 |
450 | /concat-map/0.0.1:
451 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
452 | dev: true
453 |
454 | /cross-env/7.0.3:
455 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
456 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
457 | hasBin: true
458 | dependencies:
459 | cross-spawn: 7.0.3
460 | dev: true
461 |
462 | /cross-spawn/7.0.3:
463 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
464 | engines: {node: '>= 8'}
465 | dependencies:
466 | path-key: 3.1.1
467 | shebang-command: 2.0.0
468 | which: 2.0.2
469 | dev: true
470 |
471 | /debug/4.3.2:
472 | resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==}
473 | engines: {node: '>=6.0'}
474 | peerDependencies:
475 | supports-color: '*'
476 | peerDependenciesMeta:
477 | supports-color:
478 | optional: true
479 | dependencies:
480 | ms: 2.1.2
481 | dev: true
482 |
483 | /deep-is/0.1.4:
484 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
485 | dev: true
486 |
487 | /defu/5.0.0:
488 | resolution: {integrity: sha512-VHg73EDeRXlu7oYWRmmrNp/nl7QkdXUxkQQKig0Zk8daNmm84AbGoC8Be6/VVLJEKxn12hR0UBmz8O+xQiAPKQ==}
489 | dev: false
490 |
491 | /dequal/2.0.2:
492 | resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==}
493 | engines: {node: '>=6'}
494 | dev: true
495 |
496 | /diff/5.0.0:
497 | resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
498 | engines: {node: '>=0.3.1'}
499 | dev: true
500 |
501 | /dir-glob/3.0.1:
502 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
503 | engines: {node: '>=8'}
504 | dependencies:
505 | path-type: 4.0.0
506 | dev: true
507 |
508 | /doctrine/3.0.0:
509 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
510 | engines: {node: '>=6.0.0'}
511 | dependencies:
512 | esutils: 2.0.3
513 | dev: true
514 |
515 | /enquirer/2.3.6:
516 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==}
517 | engines: {node: '>=8.6'}
518 | dependencies:
519 | ansi-colors: 4.1.1
520 | dev: true
521 |
522 | /esbuild-android-arm64/0.13.12:
523 | resolution: {integrity: sha512-TSVZVrb4EIXz6KaYjXfTzPyyRpXV5zgYIADXtQsIenjZ78myvDGaPi11o4ZSaHIwFHsuwkB6ne5SZRBwAQ7maw==}
524 | cpu: [arm64]
525 | os: [android]
526 | requiresBuild: true
527 | dev: true
528 | optional: true
529 |
530 | /esbuild-darwin-64/0.13.12:
531 | resolution: {integrity: sha512-c51C+N+UHySoV2lgfWSwwmlnLnL0JWj/LzuZt9Ltk9ub1s2Y8cr6SQV5W3mqVH1egUceew6KZ8GyI4nwu+fhsw==}
532 | cpu: [x64]
533 | os: [darwin]
534 | requiresBuild: true
535 | dev: true
536 | optional: true
537 |
538 | /esbuild-darwin-arm64/0.13.12:
539 | resolution: {integrity: sha512-JvAMtshP45Hd8A8wOzjkY1xAnTKTYuP/QUaKp5eUQGX+76GIie3fCdUUr2ZEKdvpSImNqxiZSIMziEiGB5oUmQ==}
540 | cpu: [arm64]
541 | os: [darwin]
542 | requiresBuild: true
543 | dev: true
544 | optional: true
545 |
546 | /esbuild-freebsd-64/0.13.12:
547 | resolution: {integrity: sha512-r6On/Skv9f0ZjTu6PW5o7pdXr8aOgtFOEURJZYf1XAJs0IQ+gW+o1DzXjVkIoT+n1cm3N/t1KRJfX71MPg/ZUA==}
548 | cpu: [x64]
549 | os: [freebsd]
550 | requiresBuild: true
551 | dev: true
552 | optional: true
553 |
554 | /esbuild-freebsd-arm64/0.13.12:
555 | resolution: {integrity: sha512-F6LmI2Q1gii073kmBE3NOTt/6zLL5zvZsxNLF8PMAwdHc+iBhD1vzfI8uQZMJA1IgXa3ocr3L3DJH9fLGXy6Yw==}
556 | cpu: [arm64]
557 | os: [freebsd]
558 | requiresBuild: true
559 | dev: true
560 | optional: true
561 |
562 | /esbuild-linux-32/0.13.12:
563 | resolution: {integrity: sha512-U1UZwG3UIwF7/V4tCVAo/nkBV9ag5KJiJTt+gaCmLVWH3bPLX7y+fNlhIWZy8raTMnXhMKfaTvWZ9TtmXzvkuQ==}
564 | cpu: [ia32]
565 | os: [linux]
566 | requiresBuild: true
567 | dev: true
568 | optional: true
569 |
570 | /esbuild-linux-64/0.13.12:
571 | resolution: {integrity: sha512-YpXSwtu2NxN3N4ifJxEdsgd6Q5d8LYqskrAwjmoCT6yQnEHJSF5uWcxv783HWN7lnGpJi9KUtDvYsnMdyGw71Q==}
572 | cpu: [x64]
573 | os: [linux]
574 | requiresBuild: true
575 | dev: true
576 | optional: true
577 |
578 | /esbuild-linux-arm/0.13.12:
579 | resolution: {integrity: sha512-SyiT/JKxU6J+DY2qUiSLZJqCAftIt3uoGejZ0HDnUM2MGJqEGSGh7p1ecVL2gna3PxS4P+j6WAehCwgkBPXNIw==}
580 | cpu: [arm]
581 | os: [linux]
582 | requiresBuild: true
583 | dev: true
584 | optional: true
585 |
586 | /esbuild-linux-arm64/0.13.12:
587 | resolution: {integrity: sha512-sgDNb8kb3BVodtAlcFGgwk+43KFCYjnFOaOfJibXnnIojNWuJHpL6aQJ4mumzNWw8Rt1xEtDQyuGK9f+Y24jGA==}
588 | cpu: [arm64]
589 | os: [linux]
590 | requiresBuild: true
591 | dev: true
592 | optional: true
593 |
594 | /esbuild-linux-mips64le/0.13.12:
595 | resolution: {integrity: sha512-qQJHlZBG+QwVIA8AbTEtbvF084QgDi4DaUsUnA+EolY1bxrG+UyOuGflM2ZritGhfS/k7THFjJbjH2wIeoKA2g==}
596 | cpu: [mips64el]
597 | os: [linux]
598 | requiresBuild: true
599 | dev: true
600 | optional: true
601 |
602 | /esbuild-linux-ppc64le/0.13.12:
603 | resolution: {integrity: sha512-2dSnm1ldL7Lppwlo04CGQUpwNn5hGqXI38OzaoPOkRsBRWFBozyGxTFSee/zHFS+Pdh3b28JJbRK3owrrRgWNw==}
604 | cpu: [ppc64]
605 | os: [linux]
606 | requiresBuild: true
607 | dev: true
608 | optional: true
609 |
610 | /esbuild-netbsd-64/0.13.12:
611 | resolution: {integrity: sha512-D4raxr02dcRiQNbxOLzpqBzcJNFAdsDNxjUbKkDMZBkL54Z0vZh4LRndycdZAMcIdizC/l/Yp/ZsBdAFxc5nbA==}
612 | cpu: [x64]
613 | os: [netbsd]
614 | requiresBuild: true
615 | dev: true
616 | optional: true
617 |
618 | /esbuild-openbsd-64/0.13.12:
619 | resolution: {integrity: sha512-KuLCmYMb2kh05QuPJ+va60bKIH5wHL8ypDkmpy47lzwmdxNsuySeCMHuTv5o2Af1RUn5KLO5ZxaZeq4GEY7DaQ==}
620 | cpu: [x64]
621 | os: [openbsd]
622 | requiresBuild: true
623 | dev: true
624 | optional: true
625 |
626 | /esbuild-sunos-64/0.13.12:
627 | resolution: {integrity: sha512-jBsF+e0woK3miKI8ufGWKG3o3rY9DpHvCVRn5eburMIIE+2c+y3IZ1srsthKyKI6kkXLvV4Cf/E7w56kLipMXw==}
628 | cpu: [x64]
629 | os: [sunos]
630 | requiresBuild: true
631 | dev: true
632 | optional: true
633 |
634 | /esbuild-windows-32/0.13.12:
635 | resolution: {integrity: sha512-L9m4lLFQrFeR7F+eLZXG82SbXZfUhyfu6CexZEil6vm+lc7GDCE0Q8DiNutkpzjv1+RAbIGVva9muItQ7HVTkQ==}
636 | cpu: [ia32]
637 | os: [win32]
638 | requiresBuild: true
639 | dev: true
640 | optional: true
641 |
642 | /esbuild-windows-64/0.13.12:
643 | resolution: {integrity: sha512-k4tX4uJlSbSkfs78W5d9+I9gpd+7N95W7H2bgOMFPsYREVJs31+Q2gLLHlsnlY95zBoPQMIzHooUIsixQIBjaQ==}
644 | cpu: [x64]
645 | os: [win32]
646 | requiresBuild: true
647 | dev: true
648 | optional: true
649 |
650 | /esbuild-windows-arm64/0.13.12:
651 | resolution: {integrity: sha512-2tTv/BpYRIvuwHpp2M960nG7uvL+d78LFW/ikPItO+2GfK51CswIKSetSpDii+cjz8e9iSPgs+BU4o8nWICBwQ==}
652 | cpu: [arm64]
653 | os: [win32]
654 | requiresBuild: true
655 | dev: true
656 | optional: true
657 |
658 | /esbuild/0.13.12:
659 | resolution: {integrity: sha512-vTKKUt+yoz61U/BbrnmlG9XIjwpdIxmHB8DlPR0AAW6OdS+nBQBci6LUHU2q9WbBobMEIQxxDpKbkmOGYvxsow==}
660 | hasBin: true
661 | requiresBuild: true
662 | optionalDependencies:
663 | esbuild-android-arm64: 0.13.12
664 | esbuild-darwin-64: 0.13.12
665 | esbuild-darwin-arm64: 0.13.12
666 | esbuild-freebsd-64: 0.13.12
667 | esbuild-freebsd-arm64: 0.13.12
668 | esbuild-linux-32: 0.13.12
669 | esbuild-linux-64: 0.13.12
670 | esbuild-linux-arm: 0.13.12
671 | esbuild-linux-arm64: 0.13.12
672 | esbuild-linux-mips64le: 0.13.12
673 | esbuild-linux-ppc64le: 0.13.12
674 | esbuild-netbsd-64: 0.13.12
675 | esbuild-openbsd-64: 0.13.12
676 | esbuild-sunos-64: 0.13.12
677 | esbuild-windows-32: 0.13.12
678 | esbuild-windows-64: 0.13.12
679 | esbuild-windows-arm64: 0.13.12
680 | dev: true
681 |
682 | /escape-string-regexp/4.0.0:
683 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
684 | engines: {node: '>=10'}
685 | dev: true
686 |
687 | /eslint-scope/5.1.1:
688 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
689 | engines: {node: '>=8.0.0'}
690 | dependencies:
691 | esrecurse: 4.3.0
692 | estraverse: 4.3.0
693 | dev: true
694 |
695 | /eslint-scope/7.1.0:
696 | resolution: {integrity: sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==}
697 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
698 | dependencies:
699 | esrecurse: 4.3.0
700 | estraverse: 5.3.0
701 | dev: true
702 |
703 | /eslint-utils/3.0.0_eslint@8.3.0:
704 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
705 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
706 | peerDependencies:
707 | eslint: '>=5'
708 | dependencies:
709 | eslint: 8.3.0
710 | eslint-visitor-keys: 2.1.0
711 | dev: true
712 |
713 | /eslint-visitor-keys/2.1.0:
714 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
715 | engines: {node: '>=10'}
716 | dev: true
717 |
718 | /eslint-visitor-keys/3.1.0:
719 | resolution: {integrity: sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==}
720 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
721 | dev: true
722 |
723 | /eslint/8.3.0:
724 | resolution: {integrity: sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==}
725 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
726 | hasBin: true
727 | dependencies:
728 | '@eslint/eslintrc': 1.0.4
729 | '@humanwhocodes/config-array': 0.6.0
730 | ajv: 6.12.6
731 | chalk: 4.1.2
732 | cross-spawn: 7.0.3
733 | debug: 4.3.2
734 | doctrine: 3.0.0
735 | enquirer: 2.3.6
736 | escape-string-regexp: 4.0.0
737 | eslint-scope: 7.1.0
738 | eslint-utils: 3.0.0_eslint@8.3.0
739 | eslint-visitor-keys: 3.1.0
740 | espree: 9.1.0
741 | esquery: 1.4.0
742 | esutils: 2.0.3
743 | fast-deep-equal: 3.1.3
744 | file-entry-cache: 6.0.1
745 | functional-red-black-tree: 1.0.1
746 | glob-parent: 6.0.2
747 | globals: 13.12.0
748 | ignore: 4.0.6
749 | import-fresh: 3.3.0
750 | imurmurhash: 0.1.4
751 | is-glob: 4.0.3
752 | js-yaml: 4.1.0
753 | json-stable-stringify-without-jsonify: 1.0.1
754 | levn: 0.4.1
755 | lodash.merge: 4.6.2
756 | minimatch: 3.0.4
757 | natural-compare: 1.4.0
758 | optionator: 0.9.1
759 | progress: 2.0.3
760 | regexpp: 3.2.0
761 | semver: 7.3.5
762 | strip-ansi: 6.0.1
763 | strip-json-comments: 3.1.1
764 | text-table: 0.2.0
765 | v8-compile-cache: 2.3.0
766 | transitivePeerDependencies:
767 | - supports-color
768 | dev: true
769 |
770 | /espree/9.1.0:
771 | resolution: {integrity: sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==}
772 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
773 | dependencies:
774 | acorn: 8.6.0
775 | acorn-jsx: 5.3.2_acorn@8.6.0
776 | eslint-visitor-keys: 3.1.0
777 | dev: true
778 |
779 | /esquery/1.4.0:
780 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
781 | engines: {node: '>=0.10'}
782 | dependencies:
783 | estraverse: 5.3.0
784 | dev: true
785 |
786 | /esrecurse/4.3.0:
787 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
788 | engines: {node: '>=4.0'}
789 | dependencies:
790 | estraverse: 5.3.0
791 | dev: true
792 |
793 | /estraverse/4.3.0:
794 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
795 | engines: {node: '>=4.0'}
796 | dev: true
797 |
798 | /estraverse/5.3.0:
799 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
800 | engines: {node: '>=4.0'}
801 | dev: true
802 |
803 | /esutils/2.0.3:
804 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
805 | engines: {node: '>=0.10.0'}
806 | dev: true
807 |
808 | /execa/5.1.1:
809 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
810 | engines: {node: '>=10'}
811 | dependencies:
812 | cross-spawn: 7.0.3
813 | get-stream: 6.0.1
814 | human-signals: 2.1.0
815 | is-stream: 2.0.1
816 | merge-stream: 2.0.0
817 | npm-run-path: 4.0.1
818 | onetime: 5.1.2
819 | signal-exit: 3.0.5
820 | strip-final-newline: 2.0.0
821 | dev: true
822 |
823 | /fast-deep-equal/3.1.3:
824 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
825 | dev: true
826 |
827 | /fast-glob/3.2.7:
828 | resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
829 | engines: {node: '>=8'}
830 | dependencies:
831 | '@nodelib/fs.stat': 2.0.5
832 | '@nodelib/fs.walk': 1.2.8
833 | glob-parent: 5.1.2
834 | merge2: 1.4.1
835 | micromatch: 4.0.4
836 |
837 | /fast-json-stable-stringify/2.1.0:
838 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
839 | dev: true
840 |
841 | /fast-levenshtein/2.0.6:
842 | resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
843 | dev: true
844 |
845 | /fastq/1.13.0:
846 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
847 | dependencies:
848 | reusify: 1.0.4
849 |
850 | /file-entry-cache/6.0.1:
851 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
852 | engines: {node: ^10.12.0 || >=12.0.0}
853 | dependencies:
854 | flat-cache: 3.0.4
855 | dev: true
856 |
857 | /fill-range/7.0.1:
858 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
859 | engines: {node: '>=8'}
860 | dependencies:
861 | to-regex-range: 5.0.1
862 |
863 | /find-replace/3.0.0:
864 | resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==}
865 | engines: {node: '>=4.0.0'}
866 | dependencies:
867 | array-back: 3.1.0
868 | dev: true
869 |
870 | /flat-cache/3.0.4:
871 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
872 | engines: {node: ^10.12.0 || >=12.0.0}
873 | dependencies:
874 | flatted: 3.2.2
875 | rimraf: 3.0.2
876 | dev: true
877 |
878 | /flatted/3.2.2:
879 | resolution: {integrity: sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==}
880 | dev: true
881 |
882 | /fs.realpath/1.0.0:
883 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
884 | dev: true
885 |
886 | /fsevents/2.3.2:
887 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
888 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
889 | os: [darwin]
890 | requiresBuild: true
891 | dev: true
892 | optional: true
893 |
894 | /functional-red-black-tree/1.0.1:
895 | resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=}
896 | dev: true
897 |
898 | /get-stream/6.0.1:
899 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
900 | engines: {node: '>=10'}
901 | dev: true
902 |
903 | /glob-parent/5.1.2:
904 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
905 | engines: {node: '>= 6'}
906 | dependencies:
907 | is-glob: 4.0.3
908 |
909 | /glob-parent/6.0.2:
910 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
911 | engines: {node: '>=10.13.0'}
912 | dependencies:
913 | is-glob: 4.0.3
914 | dev: true
915 |
916 | /glob/7.1.6:
917 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
918 | dependencies:
919 | fs.realpath: 1.0.0
920 | inflight: 1.0.6
921 | inherits: 2.0.4
922 | minimatch: 3.0.4
923 | once: 1.4.0
924 | path-is-absolute: 1.0.1
925 | dev: true
926 |
927 | /glob/7.2.0:
928 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
929 | dependencies:
930 | fs.realpath: 1.0.0
931 | inflight: 1.0.6
932 | inherits: 2.0.4
933 | minimatch: 3.0.4
934 | once: 1.4.0
935 | path-is-absolute: 1.0.1
936 | dev: true
937 |
938 | /globals/13.12.0:
939 | resolution: {integrity: sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==}
940 | engines: {node: '>=8'}
941 | dependencies:
942 | type-fest: 0.20.2
943 | dev: true
944 |
945 | /globby/11.0.4:
946 | resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==}
947 | engines: {node: '>=10'}
948 | dependencies:
949 | array-union: 2.1.0
950 | dir-glob: 3.0.1
951 | fast-glob: 3.2.7
952 | ignore: 5.1.8
953 | merge2: 1.4.1
954 | slash: 3.0.0
955 | dev: true
956 |
957 | /has-flag/4.0.0:
958 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
959 | engines: {node: '>=8'}
960 | dev: true
961 |
962 | /human-signals/2.1.0:
963 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
964 | engines: {node: '>=10.17.0'}
965 | dev: true
966 |
967 | /ignore/4.0.6:
968 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==}
969 | engines: {node: '>= 4'}
970 | dev: true
971 |
972 | /ignore/5.1.8:
973 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==}
974 | engines: {node: '>= 4'}
975 | dev: true
976 |
977 | /import-cwd/3.0.0:
978 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==}
979 | engines: {node: '>=8'}
980 | dependencies:
981 | import-from: 3.0.0
982 | dev: true
983 |
984 | /import-fresh/3.3.0:
985 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
986 | engines: {node: '>=6'}
987 | dependencies:
988 | parent-module: 1.0.1
989 | resolve-from: 4.0.0
990 | dev: true
991 |
992 | /import-from/3.0.0:
993 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==}
994 | engines: {node: '>=8'}
995 | dependencies:
996 | resolve-from: 5.0.0
997 | dev: true
998 |
999 | /import-meta-resolve/1.1.1:
1000 | resolution: {integrity: sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==}
1001 | dependencies:
1002 | builtins: 4.0.0
1003 | dev: true
1004 |
1005 | /imurmurhash/0.1.4:
1006 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
1007 | engines: {node: '>=0.8.19'}
1008 | dev: true
1009 |
1010 | /inflight/1.0.6:
1011 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
1012 | dependencies:
1013 | once: 1.4.0
1014 | wrappy: 1.0.2
1015 | dev: true
1016 |
1017 | /inherits/2.0.4:
1018 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1019 | dev: true
1020 |
1021 | /is-binary-path/2.1.0:
1022 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1023 | engines: {node: '>=8'}
1024 | dependencies:
1025 | binary-extensions: 2.2.0
1026 | dev: true
1027 |
1028 | /is-extglob/2.1.1:
1029 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
1030 | engines: {node: '>=0.10.0'}
1031 |
1032 | /is-glob/4.0.3:
1033 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1034 | engines: {node: '>=0.10.0'}
1035 | dependencies:
1036 | is-extglob: 2.1.1
1037 |
1038 | /is-number/7.0.0:
1039 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1040 | engines: {node: '>=0.12.0'}
1041 |
1042 | /is-stream/2.0.1:
1043 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
1044 | engines: {node: '>=8'}
1045 | dev: true
1046 |
1047 | /isexe/2.0.0:
1048 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
1049 | dev: true
1050 |
1051 | /jiti/1.12.9:
1052 | resolution: {integrity: sha512-TdcJywkQtcwLxogc4rSMAi479G2eDPzfW0fLySks7TPhgZZ4s/tM6stnzayIh3gS/db3zExWJyUx4cNWrwAmoQ==}
1053 | hasBin: true
1054 | dev: false
1055 |
1056 | /joycon/3.0.1:
1057 | resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==}
1058 | engines: {node: '>=10'}
1059 | dev: true
1060 |
1061 | /js-yaml/4.1.0:
1062 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1063 | hasBin: true
1064 | dependencies:
1065 | argparse: 2.0.1
1066 | dev: true
1067 |
1068 | /json-schema-traverse/0.4.1:
1069 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1070 | dev: true
1071 |
1072 | /json-stable-stringify-without-jsonify/1.0.1:
1073 | resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=}
1074 | dev: true
1075 |
1076 | /kleur/3.0.3:
1077 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
1078 | engines: {node: '>=6'}
1079 | dev: true
1080 |
1081 | /kleur/4.1.4:
1082 | resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==}
1083 | engines: {node: '>=6'}
1084 | dev: true
1085 |
1086 | /levn/0.4.1:
1087 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1088 | engines: {node: '>= 0.8.0'}
1089 | dependencies:
1090 | prelude-ls: 1.2.1
1091 | type-check: 0.4.0
1092 | dev: true
1093 |
1094 | /lilconfig/2.0.3:
1095 | resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==}
1096 | engines: {node: '>=10'}
1097 | dev: true
1098 |
1099 | /lines-and-columns/1.1.6:
1100 | resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=}
1101 | dev: true
1102 |
1103 | /local-pkg/0.4.0:
1104 | resolution: {integrity: sha512-2XBWjO/v63JeR1HPzLJxdTVRQDB84Av2p2KtBA5ahvpyLUPubcAU6iXlAJrONcY7aSqgJhXxElAnKtnYsRolPQ==}
1105 | engines: {node: '>=14'}
1106 | dependencies:
1107 | mlly: 0.2.10
1108 | dev: true
1109 |
1110 | /lodash.camelcase/4.3.0:
1111 | resolution: {integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY=}
1112 | dev: true
1113 |
1114 | /lodash.merge/4.6.2:
1115 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1116 | dev: true
1117 |
1118 | /lru-cache/6.0.0:
1119 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1120 | engines: {node: '>=10'}
1121 | dependencies:
1122 | yallist: 4.0.0
1123 | dev: true
1124 |
1125 | /merge-stream/2.0.0:
1126 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
1127 | dev: true
1128 |
1129 | /merge2/1.4.1:
1130 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1131 | engines: {node: '>= 8'}
1132 |
1133 | /micromatch/4.0.4:
1134 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==}
1135 | engines: {node: '>=8.6'}
1136 | dependencies:
1137 | braces: 3.0.2
1138 | picomatch: 2.3.0
1139 |
1140 | /mimic-fn/2.1.0:
1141 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
1142 | engines: {node: '>=6'}
1143 | dev: true
1144 |
1145 | /minimatch/3.0.4:
1146 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
1147 | dependencies:
1148 | brace-expansion: 1.1.11
1149 | dev: true
1150 |
1151 | /mlly/0.2.10:
1152 | resolution: {integrity: sha512-xfyW6c2QBGArtctzNnTV5leOKX8nOMz2simeubtXofdsdSJFSNw+Ncvrs8kxcN3pBrQLXuYBHNFV6NgZ5Ryf4A==}
1153 | dependencies:
1154 | import-meta-resolve: 1.1.1
1155 | dev: true
1156 |
1157 | /mri/1.2.0:
1158 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
1159 | engines: {node: '>=4'}
1160 | dev: true
1161 |
1162 | /ms/2.1.2:
1163 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1164 | dev: true
1165 |
1166 | /mz/2.7.0:
1167 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1168 | dependencies:
1169 | any-promise: 1.3.0
1170 | object-assign: 4.1.1
1171 | thenify-all: 1.6.0
1172 | dev: true
1173 |
1174 | /natural-compare/1.4.0:
1175 | resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=}
1176 | dev: true
1177 |
1178 | /node-modules-regexp/1.0.0:
1179 | resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=}
1180 | engines: {node: '>=0.10.0'}
1181 | dev: true
1182 |
1183 | /normalize-path/3.0.0:
1184 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1185 | engines: {node: '>=0.10.0'}
1186 | dev: true
1187 |
1188 | /npm-run-path/4.0.1:
1189 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
1190 | engines: {node: '>=8'}
1191 | dependencies:
1192 | path-key: 3.1.1
1193 | dev: true
1194 |
1195 | /object-assign/4.1.1:
1196 | resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
1197 | engines: {node: '>=0.10.0'}
1198 | dev: true
1199 |
1200 | /once/1.4.0:
1201 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
1202 | dependencies:
1203 | wrappy: 1.0.2
1204 | dev: true
1205 |
1206 | /onetime/5.1.2:
1207 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
1208 | engines: {node: '>=6'}
1209 | dependencies:
1210 | mimic-fn: 2.1.0
1211 | dev: true
1212 |
1213 | /optionator/0.9.1:
1214 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1215 | engines: {node: '>= 0.8.0'}
1216 | dependencies:
1217 | deep-is: 0.1.4
1218 | fast-levenshtein: 2.0.6
1219 | levn: 0.4.1
1220 | prelude-ls: 1.2.1
1221 | type-check: 0.4.0
1222 | word-wrap: 1.2.3
1223 | dev: true
1224 |
1225 | /parent-module/1.0.1:
1226 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1227 | engines: {node: '>=6'}
1228 | dependencies:
1229 | callsites: 3.1.0
1230 | dev: true
1231 |
1232 | /path-is-absolute/1.0.1:
1233 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
1234 | engines: {node: '>=0.10.0'}
1235 | dev: true
1236 |
1237 | /path-key/3.1.1:
1238 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1239 | engines: {node: '>=8'}
1240 | dev: true
1241 |
1242 | /path-type/4.0.0:
1243 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1244 | engines: {node: '>=8'}
1245 | dev: true
1246 |
1247 | /picocolors/1.0.0:
1248 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1249 | dev: true
1250 |
1251 | /picomatch/2.3.0:
1252 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==}
1253 | engines: {node: '>=8.6'}
1254 |
1255 | /pirates/4.0.1:
1256 | resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==}
1257 | engines: {node: '>= 6'}
1258 | dependencies:
1259 | node-modules-regexp: 1.0.0
1260 | dev: true
1261 |
1262 | /pnpm/6.23.1:
1263 | resolution: {integrity: sha512-4IFtNC3d/TXc1YGtl+SOpI442S0cJQpZa9FgVdNpiy3x/UGpzQNI7Cz9dbsqWFFDukG7K81gI5LyhIWyOT6J/A==}
1264 | engines: {node: '>=12.17'}
1265 | hasBin: true
1266 | dev: true
1267 |
1268 | /postcss-load-config/3.1.0:
1269 | resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==}
1270 | engines: {node: '>= 10'}
1271 | peerDependencies:
1272 | ts-node: '>=9.0.0'
1273 | peerDependenciesMeta:
1274 | ts-node:
1275 | optional: true
1276 | dependencies:
1277 | import-cwd: 3.0.0
1278 | lilconfig: 2.0.3
1279 | yaml: 1.10.2
1280 | dev: true
1281 |
1282 | /prelude-ls/1.2.1:
1283 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1284 | engines: {node: '>= 0.8.0'}
1285 | dev: true
1286 |
1287 | /progress/2.0.3:
1288 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
1289 | engines: {node: '>=0.4.0'}
1290 | dev: true
1291 |
1292 | /prompts/2.4.2:
1293 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
1294 | engines: {node: '>= 6'}
1295 | dependencies:
1296 | kleur: 3.0.3
1297 | sisteransi: 1.0.5
1298 | dev: true
1299 |
1300 | /punycode/2.1.1:
1301 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
1302 | engines: {node: '>=6'}
1303 | dev: true
1304 |
1305 | /queue-microtask/1.2.3:
1306 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1307 |
1308 | /readdirp/3.6.0:
1309 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1310 | engines: {node: '>=8.10.0'}
1311 | dependencies:
1312 | picomatch: 2.3.0
1313 | dev: true
1314 |
1315 | /regexpp/3.2.0:
1316 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
1317 | engines: {node: '>=8'}
1318 | dev: true
1319 |
1320 | /resolve-from/4.0.0:
1321 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1322 | engines: {node: '>=4'}
1323 | dev: true
1324 |
1325 | /resolve-from/5.0.0:
1326 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
1327 | engines: {node: '>=8'}
1328 | dev: true
1329 |
1330 | /reusify/1.0.4:
1331 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1332 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1333 |
1334 | /rimraf/3.0.2:
1335 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1336 | hasBin: true
1337 | dependencies:
1338 | glob: 7.2.0
1339 | dev: true
1340 |
1341 | /rollup/2.60.1:
1342 | resolution: {integrity: sha512-akwfnpjY0rXEDSn1UTVfKXJhPsEBu+imi1gqBA1ZkHGydUnkV/fWCC90P7rDaLEW8KTwBcS1G3N4893Ndz+jwg==}
1343 | engines: {node: '>=10.0.0'}
1344 | hasBin: true
1345 | optionalDependencies:
1346 | fsevents: 2.3.2
1347 | dev: true
1348 |
1349 | /run-parallel/1.2.0:
1350 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1351 | dependencies:
1352 | queue-microtask: 1.2.3
1353 |
1354 | /sade/1.7.4:
1355 | resolution: {integrity: sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==}
1356 | engines: {node: '>= 6'}
1357 | dependencies:
1358 | mri: 1.2.0
1359 | dev: true
1360 |
1361 | /semver/7.3.5:
1362 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==}
1363 | engines: {node: '>=10'}
1364 | hasBin: true
1365 | dependencies:
1366 | lru-cache: 6.0.0
1367 | dev: true
1368 |
1369 | /shebang-command/2.0.0:
1370 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1371 | engines: {node: '>=8'}
1372 | dependencies:
1373 | shebang-regex: 3.0.0
1374 | dev: true
1375 |
1376 | /shebang-regex/3.0.0:
1377 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1378 | engines: {node: '>=8'}
1379 | dev: true
1380 |
1381 | /signal-exit/3.0.5:
1382 | resolution: {integrity: sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==}
1383 | dev: true
1384 |
1385 | /sisteransi/1.0.5:
1386 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
1387 | dev: true
1388 |
1389 | /slash/3.0.0:
1390 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1391 | engines: {node: '>=8'}
1392 | dev: true
1393 |
1394 | /string-argv/0.3.1:
1395 | resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==}
1396 | engines: {node: '>=0.6.19'}
1397 | dev: true
1398 |
1399 | /strip-ansi/6.0.1:
1400 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1401 | engines: {node: '>=8'}
1402 | dependencies:
1403 | ansi-regex: 5.0.1
1404 | dev: true
1405 |
1406 | /strip-final-newline/2.0.0:
1407 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
1408 | engines: {node: '>=6'}
1409 | dev: true
1410 |
1411 | /strip-json-comments/3.1.1:
1412 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1413 | engines: {node: '>=8'}
1414 | dev: true
1415 |
1416 | /sucrase/3.20.3:
1417 | resolution: {integrity: sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==}
1418 | engines: {node: '>=8'}
1419 | hasBin: true
1420 | dependencies:
1421 | commander: 4.1.1
1422 | glob: 7.1.6
1423 | lines-and-columns: 1.1.6
1424 | mz: 2.7.0
1425 | pirates: 4.0.1
1426 | ts-interface-checker: 0.1.13
1427 | dev: true
1428 |
1429 | /supports-color/7.2.0:
1430 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1431 | engines: {node: '>=8'}
1432 | dependencies:
1433 | has-flag: 4.0.0
1434 | dev: true
1435 |
1436 | /svelte/3.44.2:
1437 | resolution: {integrity: sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==}
1438 | engines: {node: '>= 8'}
1439 | dev: true
1440 |
1441 | /text-table/0.2.0:
1442 | resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
1443 | dev: true
1444 |
1445 | /thenify-all/1.6.0:
1446 | resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=}
1447 | engines: {node: '>=0.8'}
1448 | dependencies:
1449 | thenify: 3.3.1
1450 | dev: true
1451 |
1452 | /thenify/3.3.1:
1453 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1454 | dependencies:
1455 | any-promise: 1.3.0
1456 | dev: true
1457 |
1458 | /to-regex-range/5.0.1:
1459 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1460 | engines: {node: '>=8.0'}
1461 | dependencies:
1462 | is-number: 7.0.0
1463 |
1464 | /totalist/2.0.0:
1465 | resolution: {integrity: sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==}
1466 | engines: {node: '>=6'}
1467 | dev: true
1468 |
1469 | /tree-kill/1.2.2:
1470 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
1471 | hasBin: true
1472 | dev: true
1473 |
1474 | /ts-interface-checker/0.1.13:
1475 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1476 | dev: true
1477 |
1478 | /tslib/1.14.1:
1479 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
1480 | dev: true
1481 |
1482 | /tslib/2.3.1:
1483 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
1484 | dev: true
1485 |
1486 | /tsm/2.1.4:
1487 | resolution: {integrity: sha512-gz1zckplzOzHdiY1HVVUoH8bl2eWxbU6uJraB31w1NQ+/kQkjix3ldYHBnWaoNnOL9q8ruS+E2Wckdcw56DzrA==}
1488 | engines: {node: '>=12'}
1489 | hasBin: true
1490 | dependencies:
1491 | esbuild: 0.13.12
1492 | dev: true
1493 |
1494 | /tsup/5.8.0_typescript@4.5.2:
1495 | resolution: {integrity: sha512-cg87uof0dumoSMN/UddkelOstg9o+/yBK3g7NAmnbyJQCdTMiRocNfRZdF8+EpYpZ/kpCwUMMsvMCilMDWz5Rg==}
1496 | hasBin: true
1497 | peerDependencies:
1498 | typescript: ^4.2.3
1499 | peerDependenciesMeta:
1500 | typescript:
1501 | optional: true
1502 | dependencies:
1503 | cac: 6.7.11
1504 | chalk: 4.1.2
1505 | chokidar: 3.5.2
1506 | debug: 4.3.2
1507 | esbuild: 0.13.12
1508 | execa: 5.1.1
1509 | globby: 11.0.4
1510 | joycon: 3.0.1
1511 | postcss-load-config: 3.1.0
1512 | resolve-from: 5.0.0
1513 | rollup: 2.60.1
1514 | sucrase: 3.20.3
1515 | tree-kill: 1.2.2
1516 | typescript: 4.5.2
1517 | transitivePeerDependencies:
1518 | - supports-color
1519 | - ts-node
1520 | dev: true
1521 |
1522 | /tsutils/3.21.0_typescript@4.5.2:
1523 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
1524 | engines: {node: '>= 6'}
1525 | peerDependencies:
1526 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
1527 | dependencies:
1528 | tslib: 1.14.1
1529 | typescript: 4.5.2
1530 | dev: true
1531 |
1532 | /type-check/0.4.0:
1533 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1534 | engines: {node: '>= 0.8.0'}
1535 | dependencies:
1536 | prelude-ls: 1.2.1
1537 | dev: true
1538 |
1539 | /type-detect/4.0.8:
1540 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
1541 | engines: {node: '>=4'}
1542 | dev: true
1543 |
1544 | /type-fest/0.20.2:
1545 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1546 | engines: {node: '>=10'}
1547 | dev: true
1548 |
1549 | /typescript/4.5.2:
1550 | resolution: {integrity: sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==}
1551 | engines: {node: '>=4.2.0'}
1552 | hasBin: true
1553 | dev: true
1554 |
1555 | /typical/4.0.0:
1556 | resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==}
1557 | engines: {node: '>=8'}
1558 | dev: true
1559 |
1560 | /unconfig/0.2.2:
1561 | resolution: {integrity: sha512-JN1MeYJ/POnjBj7NgOJJxPp6+NcD6Nd0hEuK0D89kjm9GvQQUq8HeE2Eb7PZgtu+64mWkDiqeJn1IZoLH7htPg==}
1562 | dependencies:
1563 | '@antfu/utils': 0.3.0
1564 | defu: 5.0.0
1565 | jiti: 1.12.9
1566 | dev: false
1567 |
1568 | /uri-js/4.4.1:
1569 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1570 | dependencies:
1571 | punycode: 2.1.1
1572 | dev: true
1573 |
1574 | /uvu/0.5.2:
1575 | resolution: {integrity: sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==}
1576 | engines: {node: '>=8'}
1577 | hasBin: true
1578 | dependencies:
1579 | dequal: 2.0.2
1580 | diff: 5.0.0
1581 | kleur: 4.1.4
1582 | sade: 1.7.4
1583 | totalist: 2.0.0
1584 | dev: true
1585 |
1586 | /v8-compile-cache/2.3.0:
1587 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
1588 | dev: true
1589 |
1590 | /which/2.0.2:
1591 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1592 | engines: {node: '>= 8'}
1593 | hasBin: true
1594 | dependencies:
1595 | isexe: 2.0.0
1596 | dev: true
1597 |
1598 | /windicss-runtime-dom/3.0.0:
1599 | resolution: {integrity: sha512-a12Uhu71yT1U8w0PzJ3amF9xmC8b1rWFLgXEfI/UyuwUi6D1vUACOO6vb0iY4T4OtP/bJAjQMM7lv3hMWSwLuQ==}
1600 | dev: false
1601 |
1602 | /windicss/3.5.4:
1603 | resolution: {integrity: sha512-x2Iu0a69dtNiKHMkR886lx0WKbZI5GqvXyvGBCJ2VA6rcjKYjnzCA/Ljd6hNQBfqlkSum8J+qAVcCfLzQFI4rQ==}
1604 | engines: {node: '>= 12'}
1605 | hasBin: true
1606 | dev: false
1607 |
1608 | /word-wrap/1.2.3:
1609 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
1610 | engines: {node: '>=0.10.0'}
1611 | dev: true
1612 |
1613 | /wrappy/1.0.2:
1614 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
1615 | dev: true
1616 |
1617 | /yallist/4.0.0:
1618 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
1619 | dev: true
1620 |
1621 | /yaml/1.10.2:
1622 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
1623 | engines: {node: '>= 6'}
1624 | dev: true
1625 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import type { IconifyJSON } from '@iconify/types'
2 | // import { useConfig, useDebugger } from '@nbhr/utils'
3 | import type { UnoGenerator } from '@unocss/core'
4 | import { createGenerator } from '@unocss/core'
5 | import UnocssIcons from '@unocss/preset-icons'
6 | import fg from 'fast-glob'
7 | import { readFileSync } from 'fs'
8 | import { parse, preprocess } from 'svelte/compiler'
9 | import type {
10 | PreprocessorGroup,
11 | Processed,
12 | } from 'svelte/types/compiler/preprocess'
13 | import { Processor } from 'windicss/lib'
14 | // import type { FullConfig } from 'windicss/types/interfaces'
15 | import { CSSParser } from 'windicss/utils/parser'
16 | import { StyleSheet } from 'windicss/utils/style'
17 | import { globalStyleSheet, Magician, SetObject } from './utils'
18 | import { loadConfig } from 'unconfig'
19 | import { FullConfig } from 'windicss/types/interfaces'
20 |
21 | // const DEV = false
22 | // let windiConfig: FullConfig
23 | // let configMTime: number
24 | // let OPTIONS: BaseConfig
25 |
26 | let entryFileName = ''
27 |
28 | interface generatorObject {
29 | data: SetObject
30 | updatedAt: number
31 | writtenAt?: number
32 | }
33 |
34 | const raw = new Map([
35 | [
36 | '__GLOBAL',
37 | {
38 | data: {
39 | inlineClasses: new Set(),
40 | inlineDirectives: new Set(),
41 | inlineExpressions: new Set(),
42 | inlineIcons: new Set(),
43 | inlineAttributify: new Map(),
44 | },
45 | updatedAt: Date.now(),
46 | },
47 | ],
48 | ])
49 |
50 | async function generateCSS(
51 | key: string,
52 | attributes: Record
53 | ) {
54 | const t = raw.get(key)
55 |
56 | // MARK: WINDI DEFAULT
57 | // const FILESHEET = CSS_STYLESHEETS.get(filename || '') || undefined
58 | // if (FILESHEET && attributes['windi:global']) {
59 | // INLINE_STYLE = globalStyleSheet(FILESHEET['code']).build()
60 | // } else if (FILESHEET) {
61 | // INLINE_STYLE = FILESHEET['code'].build()
62 | // }
63 | const defaultStyleSheet = generatorWindi.interpret(
64 | Array.from(
65 | new Set([
66 | ...(t?.data.inlineClasses || new Set()),
67 | ...(t?.data.inlineDirectives || new Set()),
68 | ...(t?.data.inlineExpressions || new Set()),
69 | ])
70 | ).join(' ')
71 | ).styleSheet
72 | let defaultStyles = ''
73 | if (attributes['windi:global'] || attributes['windi-inline-global']) {
74 | defaultStyles = globalStyleSheet(defaultStyleSheet).build()
75 | } else {
76 | defaultStyles = defaultStyleSheet.build()
77 | }
78 |
79 | // MARK: ATTRIBUTIFY
80 | const nObj: Record = {}
81 | t?.data.inlineAttributify.forEach((v: Set, k: string) => {
82 | nObj[k] = Array.from(v)
83 | })
84 |
85 | const attributifyStyleSheet = generatorWindi.attributify(nObj).styleSheet
86 | let attributifyStyles = ''
87 | if (attributes['windi:global'] || attributes['windi-inline-global']) {
88 | attributifyStyles = globalStyleSheet(attributifyStyleSheet).build()
89 | } else {
90 | attributifyStyles = attributifyStyleSheet.build()
91 | }
92 |
93 | // MARK: ICONS (experimental)
94 | let iconStyles = ''
95 | if (generatorUno && configuration.experimental?.icons != undefined) {
96 | iconStyles = await generatorUno
97 | .generate(t?.data.inlineIcons || '')
98 | .then(resolve => resolve.css)
99 | }
100 | return { defaultStyles, attributifyStyles, iconStyles }
101 | }
102 |
103 | function agent(): PreprocessorGroup {
104 | let result: SetObject
105 | return {
106 | async markup({ content, filename }): Promise {
107 | if (!filename) return { code: content }
108 | // console.log(filename, 'markup agent')
109 | let worker = new Magician(content, filename, configuration)
110 | worker = worker.prepare()
111 | worker = worker.setInject()
112 | worker = worker.extract()
113 | result = worker.getSets()
114 | raw.set(filename, {
115 | data: result,
116 | updatedAt: Date.now(),
117 | })
118 |
119 | return {
120 | code: worker.getContent(),
121 | }
122 | },
123 | }
124 | }
125 |
126 | function main(): PreprocessorGroup {
127 | if (configuration.experimental?.scan !== undefined) {
128 | const files = fg.sync(['src/**/*.svelte'], {})
129 | for (const file of files) {
130 | const content = readFileSync(file).toString()
131 | const filename = file
132 | const ast = parse(content, { filename })
133 | const hasGlobalInline = ast.css.attributes.some(
134 | el => el.name == 'windi-inline-global'
135 | )
136 | console.log(filename, hasGlobalInline)
137 | let worker = new Magician(content, filename, configuration)
138 | worker = worker.prepare()
139 | worker = worker.extract()
140 | const result = worker.getSets()
141 | if (hasGlobalInline) {
142 | const global = raw.get('__GLOBAL')!.data
143 | raw.set('__GLOBAL', {
144 | data: {
145 | inlineClasses: new Set([
146 | ...global.inlineClasses,
147 | ...result.inlineClasses,
148 | ]),
149 | inlineDirectives: new Set([
150 | ...global.inlineDirectives,
151 | ...result.inlineDirectives,
152 | ]),
153 | inlineExpressions: new Set([
154 | ...global.inlineExpressions,
155 | ...result.inlineExpressions,
156 | ]),
157 | inlineIcons: new Set([
158 | ...global.inlineIcons,
159 | ...result.inlineIcons,
160 | ]),
161 | inlineAttributify: new Map([
162 | ...global.inlineAttributify,
163 | ...result.inlineAttributify,
164 | ]),
165 | },
166 | updatedAt: Date.now(),
167 | })
168 | raw.set(filename, {
169 | data: {
170 | inlineClasses: new Set(),
171 | inlineDirectives: new Set(),
172 | inlineExpressions: new Set(),
173 | inlineIcons: new Set(),
174 | inlineAttributify: new Map(),
175 | },
176 | updatedAt: Date.now(),
177 | })
178 | } else {
179 | raw.set(filename, {
180 | data: result,
181 | updatedAt: Date.now(),
182 | })
183 | }
184 | }
185 | }
186 |
187 | return {
188 | async style({ content, attributes, filename }): Promise {
189 | if (!filename) return { code: content }
190 | // console.log(filename, 'style main')
191 | // // MARK: PREFLIGHTS
192 | // if (OPTIONS.preflights === true && attributes['windi:preflights:global']) {
193 | // const PREFLIGHTS = PROCESSOR.preflight()
194 | // PREFLIGHTS_STYLE = globalStyleSheet(PREFLIGHTS).build()
195 | // } else if (OPTIONS.preflights === true && attributes['windi:preflights']) {
196 | // const PREFLIGHTS = PROCESSOR.preflight()
197 | // PREFLIGHTS_STYLE = PREFLIGHTS.build()
198 | // }
199 | let preflightStyleSheet = new StyleSheet()
200 | if (
201 | attributes['windi:preflights:global'] ||
202 | attributes['windi-preflights-global']
203 | ) {
204 | preflightStyleSheet = globalStyleSheet(generatorWindi.preflight())
205 | }
206 | const preflightStyles = preflightStyleSheet.build()
207 |
208 | // // MARK: SAFELIST
209 | // if (OPTIONS.safeList && attributes['windi:safelist:global']) {
210 | // const SAFELIST = PROCESSOR.interpret(OPTIONS.safeList).styleSheet
211 | // SAFELIST_STYLE = globalStyleSheet(SAFELIST).build()
212 | // if (OPTIONS.experimental && OPTIONS.experimental.icons != undefined) {
213 | // let UNO_SAFELIST_STYLE = ''
214 | // const { css } = await UNO.generate(OPTIONS.safeList)
215 | // const UNO_SAFELIST_STYLESHEET = new CSSParser(css).parse()
216 | // UNO_SAFELIST_STYLE = globalStyleSheet(UNO_SAFELIST_STYLESHEET).build()
217 | // SAFELIST_STYLE += UNO_SAFELIST_STYLE
218 | // }
219 | // } else if (OPTIONS.safeList && attributes['windi:safelist']) {
220 | // const SAFELIST = PROCESSOR.interpret(OPTIONS.safeList).styleSheet
221 | // SAFELIST_STYLE = SAFELIST.build()
222 | // if (OPTIONS.experimental && OPTIONS.experimental.icons != undefined) {
223 | // let UNO_SAFELIST_STYLE = ''
224 | // const { css } = await UNO.generate(OPTIONS.safeList)
225 | // UNO_SAFELIST_STYLE = css
226 | // SAFELIST_STYLE += UNO_SAFELIST_STYLE
227 | // }
228 | // }
229 | let safelistStyleSheet = new StyleSheet()
230 | let safelistIconsStyleSheet = new StyleSheet()
231 | if (
232 | attributes['windi:safelist:global'] ||
233 | attributes['windi-safelist-global']
234 | ) {
235 | safelistStyleSheet = globalStyleSheet(
236 | generatorWindi.interpret(configuration.safeList || '').styleSheet
237 | )
238 | if (generatorUno && configuration.experimental?.icons != undefined) {
239 | const { css } = await generatorUno.generate(
240 | configuration.safeList || ''
241 | )
242 | safelistIconsStyleSheet = globalStyleSheet(new CSSParser(css).parse())
243 | }
244 | }
245 | let safelistStyles = safelistStyleSheet.build()
246 | safelistStyles += safelistIconsStyleSheet.build()
247 |
248 | let defaultStyles, attributifyStyles, iconStyles
249 | if (entryFileName.length > 0) {
250 | const result = await generateCSS(filename, attributes)
251 | defaultStyles = result.defaultStyles
252 | attributifyStyles = result.attributifyStyles
253 | iconStyles = result.iconStyles
254 | } else {
255 | entryFileName = filename
256 | const resultGlobal = await generateCSS('__GLOBAL', {
257 | 'windi-inline-global': true,
258 | })
259 | defaultStyles = resultGlobal.defaultStyles
260 | attributifyStyles = resultGlobal.attributifyStyles
261 | iconStyles = resultGlobal.iconStyles
262 | const result = await generateCSS(filename, attributes)
263 | defaultStyles += result.defaultStyles
264 | attributifyStyles += result.attributifyStyles
265 | iconStyles += result.iconStyles
266 | }
267 |
268 | // MARK: CUSTOM CSS + WINDI @apply
269 | // let CSS: StyleSheet
270 | // CSS_SOURCE = content
271 | // if (CSS_SOURCE && attributes['global']) {
272 | // CSS = new CSSParser(CSS_SOURCE, PROCESSOR).parse()
273 | // CSS_STYLE = globalStyleSheet(CSS).build()
274 | // } else if (CSS_SOURCE) {
275 | // const tmpCSS = CSS_SOURCE
276 | // const rules = [...(tmpCSS.matchAll(/(?[^}]*){(?[^}]*)}/gim) || [])]
277 | // rules.forEach(rule => {
278 | // if (rule.groups && rule.groups.selector.includes(':global')) {
279 | // const globalCSS = new CSSParser(rule[0], PROCESSOR).parse()
280 | // const buildGlobalCSS = globalStyleSheet(globalCSS).build()
281 | // if (buildGlobalCSS.length > 0) CSS_STYLE += buildGlobalCSS + '\n'
282 | // } else {
283 | // CSS = new CSSParser(rule[0], PROCESSOR).parse()
284 | // const buildLocalCSS = CSS.build()
285 | // if (buildLocalCSS.length > 0) CSS_STYLE += buildLocalCSS + '\n'
286 | // }
287 | // })
288 | // }
289 | const cssStyleSheet =
290 | new CSSParser(content, generatorWindi).parse() || new StyleSheet()
291 |
292 | let cssStyles = ''
293 | if (attributes['global']) {
294 | cssStyles = globalStyleSheet(cssStyleSheet).build()
295 | } else {
296 | cssStyles = cssStyleSheet.build()
297 | }
298 |
299 | // // MARK: COMBINE
300 | // let newStyleCode = '\n'
301 | // if (PREFLIGHTS_STYLE.length > 0) newStyleCode += PREFLIGHTS_STYLE + '\n'
302 | // if (SAFELIST_STYLE.length > 0) newStyleCode += SAFELIST_STYLE + '\n'
303 | // if (CSS_STYLE.length > 0) newStyleCode += CSS_STYLE + '\n'
304 | // if (INLINE_STYLE.length > 0) newStyleCode += INLINE_STYLE + '\n'
305 | // if (UNO_STYLE.length > 0) newStyleCode += UNO_STYLE + '\n'
306 | let newCode = ''
307 | if (preflightStyles.length > 0) newCode += '\n' + preflightStyles
308 | if (safelistStyles.length > 0) newCode += '\n' + safelistStyles
309 | if (defaultStyles.length > 0) newCode += '\n' + defaultStyles
310 | if (attributifyStyles.length > 0) newCode += '\n' + attributifyStyles
311 | if (iconStyles.length > 0) newCode += '\n' + iconStyles
312 | if (cssStyles.length > 0) newCode += '\n' + cssStyles
313 | newCode += '\n'
314 |
315 | return {
316 | code: newCode,
317 | }
318 | },
319 | }
320 | }
321 |
322 | export interface BaseConfig {
323 | silent?: boolean
324 | mode?: 'development' | 'production'
325 | configPath?: string
326 | disableFormat?: boolean
327 | devTools?: {
328 | enabled: boolean
329 | completions?: boolean
330 | }
331 | //
332 | safeList?: string
333 | preflights?: boolean
334 | // bundle?: string;
335 | // debug?: boolean;
336 | // compile?: boolean;
337 | // prefix?: string;
338 | // verbosity?: number;
339 | experimental?: {
340 | icons?: {
341 | prefix?: string
342 | collections?: Record
343 | extraProperties?: Record
344 | }
345 | scan?: boolean
346 | }
347 | }
348 | export type DefaultConfig = BaseConfig
349 | export type UserConfig = BaseConfig
350 |
351 | const defaultConfig: DefaultConfig = {
352 | silent: false,
353 | // mode
354 | // configPath
355 | disableFormat: false,
356 | devTools: {
357 | enabled: false,
358 | },
359 | safeList: undefined,
360 | preflights: true,
361 | // bundle: undefined,
362 | // compile: false,
363 | // prefix: 'windi-',
364 | // verbosity: 1,
365 | // debug: false,
366 | }
367 |
368 | let configuration: BaseConfig
369 | let generatorWindi: Processor
370 | let generatorUno: UnoGenerator
371 | let windiConfiguration: FullConfig
372 |
373 | // if (windiConfig != undefined) {
374 | // if (OPTIONS.configPath) {
375 | // // get modified time of config file
376 | // const mTime = statSync(OPTIONS.configPath).mtimeMs
377 | // if (mTime > configMTime) {
378 | // const tmpConfigPath = `./${Date.now()}windi.config.js`
379 | // copyFileSync(OPTIONS.configPath, tmpConfigPath)
380 | // loadConfig(tmpConfigPath)
381 | // .catch(e => {
382 | // useDebugger.createLog('Unknown Error while loading the config')
383 | // console.error(e)
384 | // })
385 | // .finally(() => {
386 | // rmSync(tmpConfigPath)
387 | // resolve({
388 | // code: _preprocess(content, filename),
389 | // })
390 | // })
391 | // } else {
392 | // resolve({
393 | // code: _preprocess(content, filename),
394 | // })
395 | // }
396 | // }
397 | // } else {
398 | // if (OPTIONS.configPath) {
399 | // loadConfig(OPTIONS.configPath)
400 | // .catch(e => {
401 | // useDebugger.createLog('Unknown Error while loading the config')
402 | // console.error(e)
403 | // })
404 | // .finally(() => {
405 | // resolve({
406 | // code: _preprocess(content, filename),
407 | // })
408 | // })
409 | // } else {
410 | // PROCESSOR.loadConfig()
411 | // resolve({
412 | // code: _preprocess(content, filename),
413 | // })
414 | // }
415 | // }
416 |
417 | // function loadConfig(path: string): Promise {
418 | // useDebugger.createLog('Trying to load windi configuration from ' + path)
419 | // return useConfig.load(path).then(config => {
420 | // // write current unix timestamp to configMTime
421 | // configMTime = Date.now()
422 | // if (config.preflight === false) OPTIONS.preflights = false
423 | // if (config.safelist && typeof config.safelist == 'string') {
424 | // OPTIONS.safeList = config.safelist
425 | // } else if (config.safelist) {
426 | // const tmpSafelist = config.safelist as (string | string[])[]
427 | // OPTIONS.safeList = [...new Set(tmpSafelist.flat(Infinity))].join(' ')
428 | // }
429 | // console.log(config)
430 | // console.log(JSON.stringify(config.theme))
431 | // PROCESSOR.loadConfig(config)
432 | // useDebugger.createLog('Configuration loaded successfully')
433 | // windiConfig = config
434 | // })
435 | // }
436 | export function windi(userConfig: UserConfig = {}): PreprocessorGroup {
437 | configuration = { ...defaultConfig, ...userConfig }
438 | generatorWindi = new Processor()
439 | const steps: PreprocessorGroup[] = []
440 | if (configuration.experimental?.icons != undefined) {
441 | generatorUno = createGenerator(
442 | {
443 | presets: [
444 | UnocssIcons({
445 | ...configuration.experimental.icons,
446 | }),
447 | ],
448 | },
449 | {}
450 | )
451 | }
452 |
453 | if (configuration.experimental?.scan == undefined) {
454 | steps.push(agent())
455 | }
456 | steps.push(main())
457 |
458 | return {
459 | async markup({ content, filename }): Promise {
460 | if (!windiConfiguration) {
461 | const { config } = await loadConfig({
462 | merge: false,
463 | sources: [
464 | {
465 | files: 'windi.config',
466 | // default extensions
467 | extensions: ['ts', 'mts', 'cts', 'js', 'mjs', 'cjs', 'json', ''],
468 | },
469 | ],
470 | })
471 | windiConfiguration = config
472 | if (typeof config?.safelist == 'string') {
473 | configuration.safeList = config.safelist
474 | } else if (config?.safelist) {
475 | configuration.safeList = [
476 | ...new Set(config.safelist.flat(Infinity)),
477 | ].join(' ')
478 | }
479 | generatorWindi.loadConfig(config)
480 | }
481 | let currentContent = content
482 |
483 | for (const step of steps) {
484 | const code = (await preprocess(currentContent, step, { filename })).code
485 | currentContent = code
486 | }
487 |
488 | return {
489 | code: currentContent,
490 | }
491 | },
492 | }
493 | }
494 |
495 | export default windi
496 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | import { parse } from 'svelte/compiler'
2 | import { StyleSheet } from 'windicss/utils/style'
3 | import type { BaseConfig } from './index'
4 |
5 | export function globalStyleSheet(styleSheet: StyleSheet): StyleSheet {
6 | // turn all styles in stylesheet to global style
7 | styleSheet.children.forEach(style => {
8 | if (
9 | !style.rule.includes(':global') &&
10 | style.meta.group !== 'keyframes' &&
11 | !style.atRules?.some(rule => rule.includes('@keyframes'))
12 | ) {
13 | style.wrapRule((rule: string) => `:global(${rule})`)
14 | }
15 | if (style.atRules && !style.atRules.includes('-global-')) {
16 | style.atRules[0] = style.atRules[0].replace(
17 | /(?<=keyframes )(?=\w)/gi,
18 | '-global-'
19 | )
20 | }
21 | })
22 | return styleSheet
23 | }
24 |
25 | export interface SetObject {
26 | inlineClasses: Set
27 | inlineDirectives: Set
28 | inlineExpressions: Set
29 | inlineIcons: Set
30 | inlineAttributify: Map>
31 | }
32 |
33 | export class Magician {
34 | content: string
35 | filename: string
36 | configuration: BaseConfig = {}
37 | classes: string[] = []
38 | expressions: string[] = []
39 | directives: string[] = []
40 | attributifies: Map = new Map()
41 |
42 | constructor(
43 | content: string,
44 | filename: string,
45 | configuration: BaseConfig = {}
46 | ) {
47 | this.content = content
48 | this.filename = filename
49 | this.configuration = configuration
50 | }
51 |
52 | prepare(): this {
53 | // TODO: find a way to allow comments in processing
54 | this.content = this.content.replace(//g, '')
55 | this.content = this.content.replace(
56 | /([!\w][\w:_/-]*?):\(([\w\s/-]*?)\)/gm,
57 | (_, groupOne: string, groupTwo: string) =>
58 | groupTwo
59 | .split(/\s/g)
60 | .map(cssClass => `${groupOne}:${cssClass}`)
61 | .join(' ')
62 | )
63 |
64 | return this
65 | }
66 |
67 | setInject(): this {
68 | // const ast = parse(content, { filename })
69 | let ast
70 | try {
71 | ast = parse(this.content, {})
72 | } catch (error) {
73 | //
74 | }
75 | if (ast && !ast.css) {
76 | this.content += '\n\n'
77 | } else if (ast && (ast.css.content.start == ast.css.content.end)) {
78 | this.content = this.content.replace("", "")
79 | }
80 |
81 | return this
82 | }
83 |
84 | extract(): this {
85 | // console.log(this.content)
86 | this.processClassAttribute()
87 | this.processClassAttributeWithCurly()
88 | this.processDirectiveClass()
89 | this.processAttributify()
90 | this.processWindiExpression()
91 |
92 | return this
93 | }
94 |
95 | processClassAttribute(): this {
96 | const CLASS_MATCHES = [
97 | ...this.content.matchAll(/class=(['"`])(?[^\1]+?)\1/gi),
98 | ]
99 | if (CLASS_MATCHES.length < 1) return this
100 | for (const match of CLASS_MATCHES) {
101 | const cleanMatch = match.groups?.classes
102 | .replace(/windi[`].+?[`]/gi, ' ') // windi`XYZ`
103 | .replace(/(? {
114 | return c.length > 0
115 | })
116 | )
117 | }
118 | return this
119 | }
120 |
121 | processClassAttributeWithCurly(): this {
122 | const CLASS_MATCHES = [
123 | ...this.content.matchAll(/class=([{])(?[^}]+?)}/gi),
124 | ]
125 |
126 | if (CLASS_MATCHES.length < 1) return this
127 | for (const match of CLASS_MATCHES) {
128 | const cleanMatch = match.groups?.classes
129 | .replace(/windi[`].+?[`]/gi, ' ') // windi`XYZ`
130 | .replace(/(? {
141 | return c.length > 0
142 | })
143 | )
144 | }
145 | return this
146 | }
147 |
148 | processDirectiveClass(): this {
149 | const tmpContent = this.content
150 | const DIRECTIVE_CLASS_MATCHES = [
151 | ...tmpContent.matchAll(/\s(class):(?[^=]+)(=)/gi),
152 | ]
153 | if (DIRECTIVE_CLASS_MATCHES.length < 1) return this
154 | for (const match of DIRECTIVE_CLASS_MATCHES) {
155 | this.directives = this.directives.concat(match[2])
156 | // this.directiveClassList.push(match[2])
157 | }
158 | this.content = tmpContent
159 | return this
160 | }
161 |
162 | processWindiExpression(): this {
163 | const tmpContent = this.content
164 | const WINDI_MATCHES = [...tmpContent.matchAll(/windi`(?.*?)`/gi)]
165 | if (WINDI_MATCHES.length < 1) return this
166 | for (const match of WINDI_MATCHES) {
167 | const cleanedMatch = match[1]
168 | .replace(
169 | /(?[^\2]+?)\2/gi),
184 | ]
185 |
186 | if (ATTRIBUTIFY_CLASS_MATCHES.length < 1) return this
187 | for (const match of ATTRIBUTIFY_CLASS_MATCHES) {
188 | if (match[1] == 'class') continue
189 | if (match[1] == 'href') continue
190 | if (match[1] == 'for') continue
191 | // if (match[1] == 'this') continue
192 | // if (match[1] == 'name') continue
193 | // if (match[1] == 'stroke') continue
194 | // if (match[1] == 'd') continue
195 | // if (match[1] == 'slot') continue
196 | // if (match[1] == 'viewBox') continue
197 | // if (match[1] == 'points') continue
198 | // if (match[1] == 'label') continue
199 | // if (match[1] == 'xmlns') continue
200 | if (match[1].startsWith('class:')) continue
201 | const cleanedMatch = match[3]
202 | .replace(
203 | /windi[`].+?[`]|(? = new Set([])
231 | if (this.configuration.experimental?.icons != undefined) {
232 | iC = new Set(
233 | this.classes.filter(
234 | c =>
235 | !c.startsWith(
236 | this.configuration.experimental?.icons?.prefix || 'i-'
237 | )
238 | )
239 | )
240 | } else {
241 | iC = new Set(this.classes)
242 | }
243 |
244 | const iD = new Set(this.directives)
245 |
246 | const iE = new Set(this.expressions)
247 |
248 | let iI: Set = new Set([])
249 | if (this.configuration.experimental?.icons != undefined) {
250 | iI = new Set(
251 | this.classes.filter(c =>
252 | c.startsWith(this.configuration.experimental?.icons?.prefix || 'i-')
253 | )
254 | )
255 | }
256 |
257 | const iA = new Map()
258 | this.attributifies.forEach((v, k) => {
259 | const unique = new Set(v)
260 | iA.set(k, unique)
261 | })
262 | return {
263 | inlineClasses: iC,
264 | inlineDirectives: iD,
265 | inlineExpressions: iE,
266 | inlineIcons: iI,
267 | inlineAttributify: iA,
268 | }
269 | }
270 | }
271 |
--------------------------------------------------------------------------------
/svelte.config.mjs:
--------------------------------------------------------------------------------
1 | import { windi } from './dist/index.js'
2 | export default {
3 | preprocess: [
4 | windi({
5 | silent: false,
6 | experimental: {
7 | icons: {
8 | prefix: 'i-',
9 | extraProperties: {
10 | display: 'inline-block',
11 | },
12 | },
13 | },
14 | }),
15 | ],
16 | }
17 |
--------------------------------------------------------------------------------
/tests/assets/expected/animations/case-01.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/tests/assets/expected/animations/case-02.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/tests/assets/expected/attributify/case-01.svelte:
--------------------------------------------------------------------------------
1 | hello world
2 |
3 |
--------------------------------------------------------------------------------
/tests/assets/expected/attributify/case-02.svelte:
--------------------------------------------------------------------------------
1 | hello world
2 |
3 |
--------------------------------------------------------------------------------
/tests/assets/expected/attributify/case-03.svelte:
--------------------------------------------------------------------------------
1 | Hello
2 |
3 |
9 |
--------------------------------------------------------------------------------
/tests/assets/expected/attributify/case-04.svelte:
--------------------------------------------------------------------------------
1 |
6 | Hello World
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/assets/expected/classAttribute/case-01.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | my text is large
6 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/tests/assets/expected/classAttribute/case-02.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | my text is large
6 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/tests/assets/expected/classAttribute/case-03.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | my text is large
6 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/tests/assets/expected/classAttribute/case-04.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | my text is large
7 |
8 |
9 |
19 |
--------------------------------------------------------------------------------
/tests/assets/expected/classAttribute/case-05.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
18 |
--------------------------------------------------------------------------------
/tests/assets/expected/classAttribute/case-06.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
18 |
--------------------------------------------------------------------------------
/tests/assets/expected/styleTag/case-01.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/assets/expected/styleTag/case-02.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
25 |
26 | Hello World
--------------------------------------------------------------------------------
/tests/assets/expected/styleTag/case-03.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
Hello World
7 |
8 |
9 |
10 |
16 |
--------------------------------------------------------------------------------
/tests/assets/expected/styleTag/case-04.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
Hello World
6 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/tests/assets/expected/unocss/case-01.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-01.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | my class should be dynamic
11 |
12 |
13 |
23 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-02.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | my class should be dynamic
14 |
15 |
16 |
26 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-03.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | my class should be dynamic
14 |
15 |
16 |
26 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-04.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | my class should be dynamic
11 |
12 |
13 |
23 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-05.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 | my class should be dynamic
18 |
19 |
20 |
30 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-06.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 | my class should be dynamic
16 |
17 |
18 |
28 |
--------------------------------------------------------------------------------
/tests/assets/expected/windiExpression/case-07.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 | my class should be dynamic
16 |
17 |
18 |
28 |
--------------------------------------------------------------------------------
/tests/assets/input/animations/case-01.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/tests/assets/input/animations/case-02.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/tests/assets/input/attributify/case-01.svelte:
--------------------------------------------------------------------------------
1 | hello world
2 |
3 |
--------------------------------------------------------------------------------
/tests/assets/input/attributify/case-02.svelte:
--------------------------------------------------------------------------------
1 | hello world
2 |
3 |
--------------------------------------------------------------------------------
/tests/assets/input/attributify/case-03.svelte:
--------------------------------------------------------------------------------
1 | Hello
2 |
3 |
5 |
--------------------------------------------------------------------------------
/tests/assets/input/attributify/case-04.svelte:
--------------------------------------------------------------------------------
1 |
6 | Hello World
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/assets/input/classAttribute/case-01.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | my text is large
6 |
7 |
8 |
10 |
--------------------------------------------------------------------------------
/tests/assets/input/classAttribute/case-02.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | my text is large
6 |
7 |
8 |
10 |
--------------------------------------------------------------------------------
/tests/assets/input/classAttribute/case-03.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | my text is large
6 |
7 |
8 |
10 |
--------------------------------------------------------------------------------
/tests/assets/input/classAttribute/case-04.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | my text is large
7 |
8 |
9 |
11 |
--------------------------------------------------------------------------------
/tests/assets/input/classAttribute/case-05.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
10 |
--------------------------------------------------------------------------------
/tests/assets/input/classAttribute/case-06.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
10 |
--------------------------------------------------------------------------------
/tests/assets/input/styleTag/case-01.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/assets/input/styleTag/case-02.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
17 |
18 | Hello World
--------------------------------------------------------------------------------
/tests/assets/input/styleTag/case-03.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
Hello World
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/assets/input/styleTag/case-04.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
Hello World
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/assets/input/template.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
10 |
--------------------------------------------------------------------------------
/tests/assets/input/unocss/case-01.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-01.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | my class should be dynamic
11 |
12 |
13 |
15 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-02.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | my class should be dynamic
14 |
15 |
16 |
18 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-03.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | my class should be dynamic
14 |
15 |
16 |
18 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-04.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | my class should be dynamic
11 |
12 |
13 |
15 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-05.svelte:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 | my class should be dynamic
18 |
19 |
20 |
22 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-06.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 | my class should be dynamic
16 |
17 |
18 |
20 |
--------------------------------------------------------------------------------
/tests/assets/input/windiExpression/case-07.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 | my class should be dynamic
16 |
17 |
18 |
20 |
--------------------------------------------------------------------------------
/tests/usage.ts:
--------------------------------------------------------------------------------
1 | import { readdirSync, readFileSync } from 'fs'
2 | import { preprocess } from 'svelte/compiler'
3 | import { suite } from 'uvu'
4 | import { fixture } from 'uvu/assert'
5 |
6 | readdirSync('tests/assets/input/', { withFileTypes: true }).forEach(dirent => {
7 | if (dirent.isDirectory()) {
8 | const test = suite(dirent.name)
9 | readdirSync('tests/assets/input/' + dirent.name, {
10 | withFileTypes: true,
11 | }).forEach(file => {
12 | if (file.isFile()) {
13 | test(dirent.name + '_' + file.name, async () => {
14 | const input = readFileSync(
15 | 'tests/assets/input/' + dirent.name + '/' + file.name,
16 | 'utf-8'
17 | )
18 | const expected = readFileSync(
19 | 'tests/assets/expected/' + dirent.name + '/' + file.name,
20 | 'utf-8'
21 | )
22 | const { windi } = await import('../src/index')
23 | const { code } = await preprocess(
24 | input,
25 | windi({
26 | silent: true,
27 | experimental: {
28 | icons: {
29 | prefix: 'i-',
30 | extraProperties: {
31 | display: 'inline-block',
32 | },
33 | },
34 | },
35 | }),
36 | {
37 | filename: file.name,
38 | }
39 | )
40 | fixture(code, expected)
41 | })
42 | }
43 | })
44 | test.run()
45 | }
46 | })
47 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2015",
4 | "module": "ES2020",
5 | "strict": true,
6 | "moduleResolution": "node",
7 | "esModuleInterop": true,
8 | "skipLibCheck": true,
9 | "forceConsistentCasingInFileNames": true,
10 | "lib": ["ES2021.String", "ES2020.String", "ES2019.Object", "ES2019.Array"]
11 | }
12 | }
13 |
--------------------------------------------------------------------------------