├── .eslintrc.cjs
├── .github
└── workflows
│ ├── build.yml
│ └── release.yml
├── .gitignore
├── .husky
└── pre-commit
├── .npmrc
├── .prettierrc.mjs
├── example
├── App.vue
├── components
│ └── corner
│ │ └── index.ts
├── index.css
├── index.html
├── index.ts
├── layouts
│ └── Default.tsx
├── package.json
├── pages
│ └── page.tsx
├── pnpm-lock.yaml
├── postcss.config.cjs
├── shims.d.ts
├── tsconfig.json
├── uno.config.ts
└── vite.config.ts
├── package.json
├── pnpm-lock.yaml
├── postcss.config.cjs
├── readme.md
├── renovate.json
├── rollup.config.js
├── src
├── __tests__
│ └── index.test.ts
├── global.d.ts
├── index.css
├── index.ts
└── utils
│ └── index.ts
├── tsconfig.build.json
├── tsconfig.cjs.json
├── tsconfig.json
├── tsconfig.types.json
└── vitest.config.ts
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | browser: true,
5 | node: true,
6 | es6: true,
7 | },
8 | extends: ['@innei/eslint-config-ts'],
9 | }
10 |
--------------------------------------------------------------------------------
/.github/workflows/build.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: Node.js CI
5 |
6 | on:
7 | push:
8 | branches:
9 | - '**'
10 | pull_request:
11 | branches: [master, main]
12 |
13 | jobs:
14 | build:
15 | runs-on: ubuntu-latest
16 |
17 | strategy:
18 | matrix:
19 | node-version: [18.x]
20 |
21 | steps:
22 | - uses: actions/checkout@v2
23 | - name: Use Node.js ${{ matrix.node-version }}
24 | uses: actions/setup-node@v2
25 | with:
26 | node-version: ${{ matrix.node-version }}
27 | - name: Cache pnpm modules
28 | uses: actions/cache@v2
29 | env:
30 | cache-name: cache-pnpm-modules
31 | with:
32 | path: ~/.pnpm-store
33 | key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}
34 | restore-keys: |
35 | ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}
36 |
37 | - uses: pnpm/action-setup@v2.0.1
38 | with:
39 | version: 8.x.x
40 | run_install: true
41 | - run: pnpm run package
42 | - run: pnpm run test
43 | env:
44 | CI: true
45 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 |
3 | on:
4 | push:
5 | tags:
6 | - 'v*'
7 |
8 | jobs:
9 | release:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v3
13 | with:
14 | fetch-depth: 0
15 |
16 | - uses: actions/setup-node@v3
17 | with:
18 | node-version: 18.x
19 |
20 | - run: npx changelogithub # or changelogithub@0.12 if ensure the stable result
21 | env:
22 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | tags
2 | node_modules
3 | /node_modules
4 | .DS_Store
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | node_modules/
46 | jspm_packages/
47 |
48 | # Snowpack dependency directory (https://snowpack.dev/)
49 | web_modules/
50 |
51 | # TypeScript cache
52 | *.tsbuildinfo
53 |
54 | # Optional npm cache directory
55 | .npm
56 |
57 | # Optional eslint cache
58 | .eslintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 | .parcel-cache
78 |
79 | # Next.js build output
80 | .next
81 |
82 | # Nuxt.js build / generate output
83 | .nuxt
84 |
85 | # Gatsby files
86 | .cache/
87 |
88 | # vuepress build output
89 | .vuepress/dist
90 |
91 | # Serverless directories
92 | .serverless/
93 |
94 | # FuseBox cache
95 | .fusebox/
96 |
97 | # DynamoDB Local files
98 | .dynamodb/
99 |
100 | # TernJS port file
101 | .tern-port
102 |
103 | # Stores VSCode versions used for testing VSCode extensions
104 | .vscode-test
105 |
106 | # yarn v2
107 |
108 | .yarn/cache
109 | .yarn/unplugged
110 | .yarn/build-state.yml
111 | .pnp.*
112 |
113 | # vim
114 | ctag
115 | /tags
116 | .undodir
117 |
118 | # idea
119 | # .idea/*
120 |
121 | /dist
122 | /publish
123 | /build
124 | /lib
125 | /esm
126 | /types
127 |
128 | example/dist
129 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | lint-staged
5 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | registry=https://registry.npmjs.org
2 | # https://zenn.dev/haxibami/scraps/083718c1beec04
3 | strict-peer-dependencies=false
4 |
--------------------------------------------------------------------------------
/.prettierrc.mjs:
--------------------------------------------------------------------------------
1 | import config from '@innei/prettier'
2 | export default config
3 |
--------------------------------------------------------------------------------
/example/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/example/components/corner/index.ts:
--------------------------------------------------------------------------------
1 | export class GitHubCornerElement extends HTMLElement {
2 | constructor() {
3 | super()
4 | this.attachShadow({ mode: 'open' })
5 | const repo = this.getAttribute('repo')
6 | this.shadowRoot.innerHTML = `
7 | `
64 | }
65 | }
66 |
67 | customElements.define('github-corner', GitHubCornerElement)
68 |
--------------------------------------------------------------------------------
/example/index.css:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | font-family:
4 | system-ui,
5 | -apple-system,
6 | BlinkMacSystemFont,
7 | 'Segoe UI',
8 | Roboto,
9 | Oxygen,
10 | Ubuntu,
11 | Cantarell,
12 | 'Open Sans',
13 | 'Helvetica Neue',
14 | sans-serif;
15 | }
16 |
17 | .hello {
18 | padding: 0;
19 |
20 | .nest {
21 | bottom: 0;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/example/index.ts:
--------------------------------------------------------------------------------
1 | import './index.css'
2 | import 'uno.css'
3 | import '@unocss/reset/tailwind.css'
4 |
5 | import { createApp } from 'vue'
6 |
7 | import App from './App.vue'
8 |
9 | createApp(App).mount('#app')
10 |
--------------------------------------------------------------------------------
/example/layouts/Default.tsx:
--------------------------------------------------------------------------------
1 | import { defineComponent } from 'vue'
2 |
3 | export const DefaultLayout = defineComponent({
4 | setup(ctx, { slots }) {
5 | return () => (
6 |
7 | {slots.default?.()}
8 |
9 | )
10 | },
11 | })
12 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "scripts": {
4 | "dev": "vite"
5 | },
6 | "dependencies": {
7 | "@unocss/reset": "0.57.1",
8 | "my-awesome-lib": "link:../",
9 | "vue": "3.3.7"
10 | },
11 | "devDependencies": {
12 | "@vitejs/plugin-vue": "4.4.0",
13 | "@vitejs/plugin-vue-jsx": "3.0.2"
14 | }
15 | }
--------------------------------------------------------------------------------
/example/pages/page.tsx:
--------------------------------------------------------------------------------
1 | import { defineComponent } from 'vue'
2 |
3 | export const Page = defineComponent({
4 | setup() {
5 | return () => Hello world
6 | },
7 | })
8 |
--------------------------------------------------------------------------------
/example/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | '@unocss/reset':
9 | specifier: 0.57.1
10 | version: 0.57.1
11 | my-awesome-lib:
12 | specifier: link:../
13 | version: link:..
14 | vue:
15 | specifier: 3.3.7
16 | version: 3.3.7
17 |
18 | devDependencies:
19 | '@vitejs/plugin-vue':
20 | specifier: 4.4.0
21 | version: 4.4.0(vite@4.5.0)(vue@3.3.7)
22 | '@vitejs/plugin-vue-jsx':
23 | specifier: 3.0.2
24 | version: 3.0.2(vite@4.5.0)(vue@3.3.7)
25 |
26 | packages:
27 |
28 | /@ampproject/remapping@2.2.1:
29 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
30 | engines: {node: '>=6.0.0'}
31 | dependencies:
32 | '@jridgewell/gen-mapping': 0.3.3
33 | '@jridgewell/trace-mapping': 0.3.19
34 | dev: true
35 |
36 | /@babel/code-frame@7.22.10:
37 | resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==}
38 | engines: {node: '>=6.9.0'}
39 | dependencies:
40 | '@babel/highlight': 7.22.10
41 | chalk: 2.4.2
42 | dev: true
43 |
44 | /@babel/compat-data@7.22.9:
45 | resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==}
46 | engines: {node: '>=6.9.0'}
47 | dev: true
48 |
49 | /@babel/core@7.22.10:
50 | resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==}
51 | engines: {node: '>=6.9.0'}
52 | dependencies:
53 | '@ampproject/remapping': 2.2.1
54 | '@babel/code-frame': 7.22.10
55 | '@babel/generator': 7.22.10
56 | '@babel/helper-compilation-targets': 7.22.10
57 | '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10)
58 | '@babel/helpers': 7.22.10
59 | '@babel/parser': 7.22.10
60 | '@babel/template': 7.22.5
61 | '@babel/traverse': 7.22.10
62 | '@babel/types': 7.22.10
63 | convert-source-map: 1.9.0
64 | debug: 4.3.4
65 | gensync: 1.0.0-beta.2
66 | json5: 2.2.3
67 | semver: 6.3.1
68 | transitivePeerDependencies:
69 | - supports-color
70 | dev: true
71 |
72 | /@babel/generator@7.22.10:
73 | resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==}
74 | engines: {node: '>=6.9.0'}
75 | dependencies:
76 | '@babel/types': 7.22.10
77 | '@jridgewell/gen-mapping': 0.3.3
78 | '@jridgewell/trace-mapping': 0.3.19
79 | jsesc: 2.5.2
80 | dev: true
81 |
82 | /@babel/helper-annotate-as-pure@7.22.5:
83 | resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
84 | engines: {node: '>=6.9.0'}
85 | dependencies:
86 | '@babel/types': 7.22.10
87 | dev: true
88 |
89 | /@babel/helper-compilation-targets@7.22.10:
90 | resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==}
91 | engines: {node: '>=6.9.0'}
92 | dependencies:
93 | '@babel/compat-data': 7.22.9
94 | '@babel/helper-validator-option': 7.22.5
95 | browserslist: 4.21.10
96 | lru-cache: 5.1.1
97 | semver: 6.3.1
98 | dev: true
99 |
100 | /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.22.10):
101 | resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==}
102 | engines: {node: '>=6.9.0'}
103 | peerDependencies:
104 | '@babel/core': ^7.0.0
105 | dependencies:
106 | '@babel/core': 7.22.10
107 | '@babel/helper-annotate-as-pure': 7.22.5
108 | '@babel/helper-environment-visitor': 7.22.5
109 | '@babel/helper-function-name': 7.22.5
110 | '@babel/helper-member-expression-to-functions': 7.22.5
111 | '@babel/helper-optimise-call-expression': 7.22.5
112 | '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10)
113 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
114 | '@babel/helper-split-export-declaration': 7.22.6
115 | semver: 6.3.1
116 | dev: true
117 |
118 | /@babel/helper-environment-visitor@7.22.5:
119 | resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
120 | engines: {node: '>=6.9.0'}
121 | dev: true
122 |
123 | /@babel/helper-function-name@7.22.5:
124 | resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
125 | engines: {node: '>=6.9.0'}
126 | dependencies:
127 | '@babel/template': 7.22.5
128 | '@babel/types': 7.22.10
129 | dev: true
130 |
131 | /@babel/helper-hoist-variables@7.22.5:
132 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
133 | engines: {node: '>=6.9.0'}
134 | dependencies:
135 | '@babel/types': 7.22.10
136 | dev: true
137 |
138 | /@babel/helper-member-expression-to-functions@7.22.5:
139 | resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==}
140 | engines: {node: '>=6.9.0'}
141 | dependencies:
142 | '@babel/types': 7.22.10
143 | dev: true
144 |
145 | /@babel/helper-module-imports@7.22.5:
146 | resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==}
147 | engines: {node: '>=6.9.0'}
148 | dependencies:
149 | '@babel/types': 7.22.10
150 | dev: true
151 |
152 | /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10):
153 | resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==}
154 | engines: {node: '>=6.9.0'}
155 | peerDependencies:
156 | '@babel/core': ^7.0.0
157 | dependencies:
158 | '@babel/core': 7.22.10
159 | '@babel/helper-environment-visitor': 7.22.5
160 | '@babel/helper-module-imports': 7.22.5
161 | '@babel/helper-simple-access': 7.22.5
162 | '@babel/helper-split-export-declaration': 7.22.6
163 | '@babel/helper-validator-identifier': 7.22.5
164 | dev: true
165 |
166 | /@babel/helper-optimise-call-expression@7.22.5:
167 | resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
168 | engines: {node: '>=6.9.0'}
169 | dependencies:
170 | '@babel/types': 7.22.10
171 | dev: true
172 |
173 | /@babel/helper-plugin-utils@7.22.5:
174 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
175 | engines: {node: '>=6.9.0'}
176 | dev: true
177 |
178 | /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10):
179 | resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==}
180 | engines: {node: '>=6.9.0'}
181 | peerDependencies:
182 | '@babel/core': ^7.0.0
183 | dependencies:
184 | '@babel/core': 7.22.10
185 | '@babel/helper-environment-visitor': 7.22.5
186 | '@babel/helper-member-expression-to-functions': 7.22.5
187 | '@babel/helper-optimise-call-expression': 7.22.5
188 | dev: true
189 |
190 | /@babel/helper-simple-access@7.22.5:
191 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
192 | engines: {node: '>=6.9.0'}
193 | dependencies:
194 | '@babel/types': 7.22.10
195 | dev: true
196 |
197 | /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
198 | resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
199 | engines: {node: '>=6.9.0'}
200 | dependencies:
201 | '@babel/types': 7.22.10
202 | dev: true
203 |
204 | /@babel/helper-split-export-declaration@7.22.6:
205 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
206 | engines: {node: '>=6.9.0'}
207 | dependencies:
208 | '@babel/types': 7.22.10
209 | dev: true
210 |
211 | /@babel/helper-string-parser@7.22.5:
212 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
213 | engines: {node: '>=6.9.0'}
214 |
215 | /@babel/helper-validator-identifier@7.22.20:
216 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
217 | engines: {node: '>=6.9.0'}
218 |
219 | /@babel/helper-validator-identifier@7.22.5:
220 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
221 | engines: {node: '>=6.9.0'}
222 | dev: true
223 |
224 | /@babel/helper-validator-option@7.22.5:
225 | resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==}
226 | engines: {node: '>=6.9.0'}
227 | dev: true
228 |
229 | /@babel/helpers@7.22.10:
230 | resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==}
231 | engines: {node: '>=6.9.0'}
232 | dependencies:
233 | '@babel/template': 7.22.5
234 | '@babel/traverse': 7.22.10
235 | '@babel/types': 7.22.10
236 | transitivePeerDependencies:
237 | - supports-color
238 | dev: true
239 |
240 | /@babel/highlight@7.22.10:
241 | resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==}
242 | engines: {node: '>=6.9.0'}
243 | dependencies:
244 | '@babel/helper-validator-identifier': 7.22.5
245 | chalk: 2.4.2
246 | js-tokens: 4.0.0
247 | dev: true
248 |
249 | /@babel/parser@7.22.10:
250 | resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==}
251 | engines: {node: '>=6.0.0'}
252 | hasBin: true
253 | dependencies:
254 | '@babel/types': 7.22.10
255 | dev: true
256 |
257 | /@babel/parser@7.23.0:
258 | resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==}
259 | engines: {node: '>=6.0.0'}
260 | hasBin: true
261 | dependencies:
262 | '@babel/types': 7.23.0
263 |
264 | /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10):
265 | resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
266 | engines: {node: '>=6.9.0'}
267 | peerDependencies:
268 | '@babel/core': ^7.0.0-0
269 | dependencies:
270 | '@babel/core': 7.22.10
271 | '@babel/helper-plugin-utils': 7.22.5
272 | dev: true
273 |
274 | /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.10):
275 | resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
276 | engines: {node: '>=6.9.0'}
277 | peerDependencies:
278 | '@babel/core': ^7.0.0-0
279 | dependencies:
280 | '@babel/core': 7.22.10
281 | '@babel/helper-plugin-utils': 7.22.5
282 | dev: true
283 |
284 | /@babel/plugin-transform-typescript@7.22.10(@babel/core@7.22.10):
285 | resolution: {integrity: sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==}
286 | engines: {node: '>=6.9.0'}
287 | peerDependencies:
288 | '@babel/core': ^7.0.0-0
289 | dependencies:
290 | '@babel/core': 7.22.10
291 | '@babel/helper-annotate-as-pure': 7.22.5
292 | '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10)
293 | '@babel/helper-plugin-utils': 7.22.5
294 | '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10)
295 | dev: true
296 |
297 | /@babel/template@7.22.5:
298 | resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==}
299 | engines: {node: '>=6.9.0'}
300 | dependencies:
301 | '@babel/code-frame': 7.22.10
302 | '@babel/parser': 7.22.10
303 | '@babel/types': 7.22.10
304 | dev: true
305 |
306 | /@babel/traverse@7.22.10:
307 | resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==}
308 | engines: {node: '>=6.9.0'}
309 | dependencies:
310 | '@babel/code-frame': 7.22.10
311 | '@babel/generator': 7.22.10
312 | '@babel/helper-environment-visitor': 7.22.5
313 | '@babel/helper-function-name': 7.22.5
314 | '@babel/helper-hoist-variables': 7.22.5
315 | '@babel/helper-split-export-declaration': 7.22.6
316 | '@babel/parser': 7.22.10
317 | '@babel/types': 7.22.10
318 | debug: 4.3.4
319 | globals: 11.12.0
320 | transitivePeerDependencies:
321 | - supports-color
322 | dev: true
323 |
324 | /@babel/types@7.22.10:
325 | resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==}
326 | engines: {node: '>=6.9.0'}
327 | dependencies:
328 | '@babel/helper-string-parser': 7.22.5
329 | '@babel/helper-validator-identifier': 7.22.5
330 | to-fast-properties: 2.0.0
331 | dev: true
332 |
333 | /@babel/types@7.23.0:
334 | resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==}
335 | engines: {node: '>=6.9.0'}
336 | dependencies:
337 | '@babel/helper-string-parser': 7.22.5
338 | '@babel/helper-validator-identifier': 7.22.20
339 | to-fast-properties: 2.0.0
340 |
341 | /@esbuild/android-arm64@0.18.20:
342 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
343 | engines: {node: '>=12'}
344 | cpu: [arm64]
345 | os: [android]
346 | requiresBuild: true
347 | dev: true
348 | optional: true
349 |
350 | /@esbuild/android-arm@0.18.20:
351 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
352 | engines: {node: '>=12'}
353 | cpu: [arm]
354 | os: [android]
355 | requiresBuild: true
356 | dev: true
357 | optional: true
358 |
359 | /@esbuild/android-x64@0.18.20:
360 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
361 | engines: {node: '>=12'}
362 | cpu: [x64]
363 | os: [android]
364 | requiresBuild: true
365 | dev: true
366 | optional: true
367 |
368 | /@esbuild/darwin-arm64@0.18.20:
369 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
370 | engines: {node: '>=12'}
371 | cpu: [arm64]
372 | os: [darwin]
373 | requiresBuild: true
374 | dev: true
375 | optional: true
376 |
377 | /@esbuild/darwin-x64@0.18.20:
378 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
379 | engines: {node: '>=12'}
380 | cpu: [x64]
381 | os: [darwin]
382 | requiresBuild: true
383 | dev: true
384 | optional: true
385 |
386 | /@esbuild/freebsd-arm64@0.18.20:
387 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
388 | engines: {node: '>=12'}
389 | cpu: [arm64]
390 | os: [freebsd]
391 | requiresBuild: true
392 | dev: true
393 | optional: true
394 |
395 | /@esbuild/freebsd-x64@0.18.20:
396 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
397 | engines: {node: '>=12'}
398 | cpu: [x64]
399 | os: [freebsd]
400 | requiresBuild: true
401 | dev: true
402 | optional: true
403 |
404 | /@esbuild/linux-arm64@0.18.20:
405 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
406 | engines: {node: '>=12'}
407 | cpu: [arm64]
408 | os: [linux]
409 | requiresBuild: true
410 | dev: true
411 | optional: true
412 |
413 | /@esbuild/linux-arm@0.18.20:
414 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
415 | engines: {node: '>=12'}
416 | cpu: [arm]
417 | os: [linux]
418 | requiresBuild: true
419 | dev: true
420 | optional: true
421 |
422 | /@esbuild/linux-ia32@0.18.20:
423 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
424 | engines: {node: '>=12'}
425 | cpu: [ia32]
426 | os: [linux]
427 | requiresBuild: true
428 | dev: true
429 | optional: true
430 |
431 | /@esbuild/linux-loong64@0.18.20:
432 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
433 | engines: {node: '>=12'}
434 | cpu: [loong64]
435 | os: [linux]
436 | requiresBuild: true
437 | dev: true
438 | optional: true
439 |
440 | /@esbuild/linux-mips64el@0.18.20:
441 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
442 | engines: {node: '>=12'}
443 | cpu: [mips64el]
444 | os: [linux]
445 | requiresBuild: true
446 | dev: true
447 | optional: true
448 |
449 | /@esbuild/linux-ppc64@0.18.20:
450 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
451 | engines: {node: '>=12'}
452 | cpu: [ppc64]
453 | os: [linux]
454 | requiresBuild: true
455 | dev: true
456 | optional: true
457 |
458 | /@esbuild/linux-riscv64@0.18.20:
459 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
460 | engines: {node: '>=12'}
461 | cpu: [riscv64]
462 | os: [linux]
463 | requiresBuild: true
464 | dev: true
465 | optional: true
466 |
467 | /@esbuild/linux-s390x@0.18.20:
468 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
469 | engines: {node: '>=12'}
470 | cpu: [s390x]
471 | os: [linux]
472 | requiresBuild: true
473 | dev: true
474 | optional: true
475 |
476 | /@esbuild/linux-x64@0.18.20:
477 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
478 | engines: {node: '>=12'}
479 | cpu: [x64]
480 | os: [linux]
481 | requiresBuild: true
482 | dev: true
483 | optional: true
484 |
485 | /@esbuild/netbsd-x64@0.18.20:
486 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
487 | engines: {node: '>=12'}
488 | cpu: [x64]
489 | os: [netbsd]
490 | requiresBuild: true
491 | dev: true
492 | optional: true
493 |
494 | /@esbuild/openbsd-x64@0.18.20:
495 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
496 | engines: {node: '>=12'}
497 | cpu: [x64]
498 | os: [openbsd]
499 | requiresBuild: true
500 | dev: true
501 | optional: true
502 |
503 | /@esbuild/sunos-x64@0.18.20:
504 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
505 | engines: {node: '>=12'}
506 | cpu: [x64]
507 | os: [sunos]
508 | requiresBuild: true
509 | dev: true
510 | optional: true
511 |
512 | /@esbuild/win32-arm64@0.18.20:
513 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
514 | engines: {node: '>=12'}
515 | cpu: [arm64]
516 | os: [win32]
517 | requiresBuild: true
518 | dev: true
519 | optional: true
520 |
521 | /@esbuild/win32-ia32@0.18.20:
522 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
523 | engines: {node: '>=12'}
524 | cpu: [ia32]
525 | os: [win32]
526 | requiresBuild: true
527 | dev: true
528 | optional: true
529 |
530 | /@esbuild/win32-x64@0.18.20:
531 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
532 | engines: {node: '>=12'}
533 | cpu: [x64]
534 | os: [win32]
535 | requiresBuild: true
536 | dev: true
537 | optional: true
538 |
539 | /@jridgewell/gen-mapping@0.3.3:
540 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
541 | engines: {node: '>=6.0.0'}
542 | dependencies:
543 | '@jridgewell/set-array': 1.1.2
544 | '@jridgewell/sourcemap-codec': 1.4.15
545 | '@jridgewell/trace-mapping': 0.3.19
546 | dev: true
547 |
548 | /@jridgewell/resolve-uri@3.1.1:
549 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
550 | engines: {node: '>=6.0.0'}
551 | dev: true
552 |
553 | /@jridgewell/set-array@1.1.2:
554 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
555 | engines: {node: '>=6.0.0'}
556 | dev: true
557 |
558 | /@jridgewell/sourcemap-codec@1.4.15:
559 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
560 |
561 | /@jridgewell/trace-mapping@0.3.19:
562 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
563 | dependencies:
564 | '@jridgewell/resolve-uri': 3.1.1
565 | '@jridgewell/sourcemap-codec': 1.4.15
566 | dev: true
567 |
568 | /@unocss/reset@0.57.1:
569 | resolution: {integrity: sha512-f/ofoudjFN/HMtv1XV5phP58pOmNruBhr0GbVdBNylyieMQkFHowA7iSemChnC/fTbCcY6oSOAcFl4n9AefjdA==}
570 | dev: false
571 |
572 | /@vitejs/plugin-vue-jsx@3.0.2(vite@4.5.0)(vue@3.3.7):
573 | resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==}
574 | engines: {node: ^14.18.0 || >=16.0.0}
575 | peerDependencies:
576 | vite: ^4.0.0
577 | vue: ^3.0.0
578 | dependencies:
579 | '@babel/core': 7.22.10
580 | '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10)
581 | '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10)
582 | vite: 4.5.0
583 | vue: 3.3.7
584 | transitivePeerDependencies:
585 | - supports-color
586 | dev: true
587 |
588 | /@vitejs/plugin-vue@4.4.0(vite@4.5.0)(vue@3.3.7):
589 | resolution: {integrity: sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==}
590 | engines: {node: ^14.18.0 || >=16.0.0}
591 | peerDependencies:
592 | vite: ^4.0.0
593 | vue: ^3.2.25
594 | dependencies:
595 | vite: 4.5.0
596 | vue: 3.3.7
597 | dev: true
598 |
599 | /@vue/babel-helper-vue-transform-on@1.1.5:
600 | resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==}
601 | dev: true
602 |
603 | /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.10):
604 | resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==}
605 | peerDependencies:
606 | '@babel/core': ^7.0.0-0
607 | dependencies:
608 | '@babel/core': 7.22.10
609 | '@babel/helper-module-imports': 7.22.5
610 | '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10)
611 | '@babel/template': 7.22.5
612 | '@babel/traverse': 7.22.10
613 | '@babel/types': 7.22.10
614 | '@vue/babel-helper-vue-transform-on': 1.1.5
615 | camelcase: 6.3.0
616 | html-tags: 3.3.1
617 | svg-tags: 1.0.0
618 | transitivePeerDependencies:
619 | - supports-color
620 | dev: true
621 |
622 | /@vue/compiler-core@3.3.7:
623 | resolution: {integrity: sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==}
624 | dependencies:
625 | '@babel/parser': 7.23.0
626 | '@vue/shared': 3.3.7
627 | estree-walker: 2.0.2
628 | source-map-js: 1.0.2
629 |
630 | /@vue/compiler-dom@3.3.7:
631 | resolution: {integrity: sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==}
632 | dependencies:
633 | '@vue/compiler-core': 3.3.7
634 | '@vue/shared': 3.3.7
635 |
636 | /@vue/compiler-sfc@3.3.7:
637 | resolution: {integrity: sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==}
638 | dependencies:
639 | '@babel/parser': 7.23.0
640 | '@vue/compiler-core': 3.3.7
641 | '@vue/compiler-dom': 3.3.7
642 | '@vue/compiler-ssr': 3.3.7
643 | '@vue/reactivity-transform': 3.3.7
644 | '@vue/shared': 3.3.7
645 | estree-walker: 2.0.2
646 | magic-string: 0.30.5
647 | postcss: 8.4.31
648 | source-map-js: 1.0.2
649 |
650 | /@vue/compiler-ssr@3.3.7:
651 | resolution: {integrity: sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==}
652 | dependencies:
653 | '@vue/compiler-dom': 3.3.7
654 | '@vue/shared': 3.3.7
655 |
656 | /@vue/reactivity-transform@3.3.7:
657 | resolution: {integrity: sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==}
658 | dependencies:
659 | '@babel/parser': 7.23.0
660 | '@vue/compiler-core': 3.3.7
661 | '@vue/shared': 3.3.7
662 | estree-walker: 2.0.2
663 | magic-string: 0.30.5
664 |
665 | /@vue/reactivity@3.3.7:
666 | resolution: {integrity: sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==}
667 | dependencies:
668 | '@vue/shared': 3.3.7
669 |
670 | /@vue/runtime-core@3.3.7:
671 | resolution: {integrity: sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==}
672 | dependencies:
673 | '@vue/reactivity': 3.3.7
674 | '@vue/shared': 3.3.7
675 |
676 | /@vue/runtime-dom@3.3.7:
677 | resolution: {integrity: sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==}
678 | dependencies:
679 | '@vue/runtime-core': 3.3.7
680 | '@vue/shared': 3.3.7
681 | csstype: 3.1.2
682 |
683 | /@vue/server-renderer@3.3.7(vue@3.3.7):
684 | resolution: {integrity: sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==}
685 | peerDependencies:
686 | vue: 3.3.7
687 | dependencies:
688 | '@vue/compiler-ssr': 3.3.7
689 | '@vue/shared': 3.3.7
690 | vue: 3.3.7
691 |
692 | /@vue/shared@3.3.7:
693 | resolution: {integrity: sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==}
694 |
695 | /ansi-styles@3.2.1:
696 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
697 | engines: {node: '>=4'}
698 | dependencies:
699 | color-convert: 1.9.3
700 | dev: true
701 |
702 | /browserslist@4.21.10:
703 | resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==}
704 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
705 | hasBin: true
706 | dependencies:
707 | caniuse-lite: 1.0.30001521
708 | electron-to-chromium: 1.4.494
709 | node-releases: 2.0.13
710 | update-browserslist-db: 1.0.11(browserslist@4.21.10)
711 | dev: true
712 |
713 | /camelcase@6.3.0:
714 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
715 | engines: {node: '>=10'}
716 | dev: true
717 |
718 | /caniuse-lite@1.0.30001521:
719 | resolution: {integrity: sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==}
720 | dev: true
721 |
722 | /chalk@2.4.2:
723 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
724 | engines: {node: '>=4'}
725 | dependencies:
726 | ansi-styles: 3.2.1
727 | escape-string-regexp: 1.0.5
728 | supports-color: 5.5.0
729 | dev: true
730 |
731 | /color-convert@1.9.3:
732 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
733 | dependencies:
734 | color-name: 1.1.3
735 | dev: true
736 |
737 | /color-name@1.1.3:
738 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
739 | dev: true
740 |
741 | /convert-source-map@1.9.0:
742 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
743 | dev: true
744 |
745 | /csstype@3.1.2:
746 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
747 |
748 | /debug@4.3.4:
749 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
750 | engines: {node: '>=6.0'}
751 | peerDependencies:
752 | supports-color: '*'
753 | peerDependenciesMeta:
754 | supports-color:
755 | optional: true
756 | dependencies:
757 | ms: 2.1.2
758 | dev: true
759 |
760 | /electron-to-chromium@1.4.494:
761 | resolution: {integrity: sha512-KF7wtsFFDu4ws1ZsSOt4pdmO1yWVNWCFtijVYZPUeW4SV7/hy/AESjLn/+qIWgq7mHscNOKAwN5AIM1+YAy+Ww==}
762 | dev: true
763 |
764 | /esbuild@0.18.20:
765 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
766 | engines: {node: '>=12'}
767 | hasBin: true
768 | requiresBuild: true
769 | optionalDependencies:
770 | '@esbuild/android-arm': 0.18.20
771 | '@esbuild/android-arm64': 0.18.20
772 | '@esbuild/android-x64': 0.18.20
773 | '@esbuild/darwin-arm64': 0.18.20
774 | '@esbuild/darwin-x64': 0.18.20
775 | '@esbuild/freebsd-arm64': 0.18.20
776 | '@esbuild/freebsd-x64': 0.18.20
777 | '@esbuild/linux-arm': 0.18.20
778 | '@esbuild/linux-arm64': 0.18.20
779 | '@esbuild/linux-ia32': 0.18.20
780 | '@esbuild/linux-loong64': 0.18.20
781 | '@esbuild/linux-mips64el': 0.18.20
782 | '@esbuild/linux-ppc64': 0.18.20
783 | '@esbuild/linux-riscv64': 0.18.20
784 | '@esbuild/linux-s390x': 0.18.20
785 | '@esbuild/linux-x64': 0.18.20
786 | '@esbuild/netbsd-x64': 0.18.20
787 | '@esbuild/openbsd-x64': 0.18.20
788 | '@esbuild/sunos-x64': 0.18.20
789 | '@esbuild/win32-arm64': 0.18.20
790 | '@esbuild/win32-ia32': 0.18.20
791 | '@esbuild/win32-x64': 0.18.20
792 | dev: true
793 |
794 | /escalade@3.1.1:
795 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
796 | engines: {node: '>=6'}
797 | dev: true
798 |
799 | /escape-string-regexp@1.0.5:
800 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
801 | engines: {node: '>=0.8.0'}
802 | dev: true
803 |
804 | /estree-walker@2.0.2:
805 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
806 |
807 | /fsevents@2.3.3:
808 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
809 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
810 | os: [darwin]
811 | requiresBuild: true
812 | dev: true
813 | optional: true
814 |
815 | /gensync@1.0.0-beta.2:
816 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
817 | engines: {node: '>=6.9.0'}
818 | dev: true
819 |
820 | /globals@11.12.0:
821 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
822 | engines: {node: '>=4'}
823 | dev: true
824 |
825 | /has-flag@3.0.0:
826 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
827 | engines: {node: '>=4'}
828 | dev: true
829 |
830 | /html-tags@3.3.1:
831 | resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
832 | engines: {node: '>=8'}
833 | dev: true
834 |
835 | /js-tokens@4.0.0:
836 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
837 | dev: true
838 |
839 | /jsesc@2.5.2:
840 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
841 | engines: {node: '>=4'}
842 | hasBin: true
843 | dev: true
844 |
845 | /json5@2.2.3:
846 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
847 | engines: {node: '>=6'}
848 | hasBin: true
849 | dev: true
850 |
851 | /lru-cache@5.1.1:
852 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
853 | dependencies:
854 | yallist: 3.1.1
855 | dev: true
856 |
857 | /magic-string@0.30.5:
858 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
859 | engines: {node: '>=12'}
860 | dependencies:
861 | '@jridgewell/sourcemap-codec': 1.4.15
862 |
863 | /ms@2.1.2:
864 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
865 | dev: true
866 |
867 | /nanoid@3.3.6:
868 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
869 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
870 | hasBin: true
871 |
872 | /node-releases@2.0.13:
873 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
874 | dev: true
875 |
876 | /picocolors@1.0.0:
877 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
878 |
879 | /postcss@8.4.31:
880 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
881 | engines: {node: ^10 || ^12 || >=14}
882 | dependencies:
883 | nanoid: 3.3.6
884 | picocolors: 1.0.0
885 | source-map-js: 1.0.2
886 |
887 | /rollup@3.29.4:
888 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
889 | engines: {node: '>=14.18.0', npm: '>=8.0.0'}
890 | hasBin: true
891 | optionalDependencies:
892 | fsevents: 2.3.3
893 | dev: true
894 |
895 | /semver@6.3.1:
896 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
897 | hasBin: true
898 | dev: true
899 |
900 | /source-map-js@1.0.2:
901 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
902 | engines: {node: '>=0.10.0'}
903 |
904 | /supports-color@5.5.0:
905 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
906 | engines: {node: '>=4'}
907 | dependencies:
908 | has-flag: 3.0.0
909 | dev: true
910 |
911 | /svg-tags@1.0.0:
912 | resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
913 | dev: true
914 |
915 | /to-fast-properties@2.0.0:
916 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
917 | engines: {node: '>=4'}
918 |
919 | /update-browserslist-db@1.0.11(browserslist@4.21.10):
920 | resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
921 | hasBin: true
922 | peerDependencies:
923 | browserslist: '>= 4.21.0'
924 | dependencies:
925 | browserslist: 4.21.10
926 | escalade: 3.1.1
927 | picocolors: 1.0.0
928 | dev: true
929 |
930 | /vite@4.5.0:
931 | resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
932 | engines: {node: ^14.18.0 || >=16.0.0}
933 | hasBin: true
934 | peerDependencies:
935 | '@types/node': '>= 14'
936 | less: '*'
937 | lightningcss: ^1.21.0
938 | sass: '*'
939 | stylus: '*'
940 | sugarss: '*'
941 | terser: ^5.4.0
942 | peerDependenciesMeta:
943 | '@types/node':
944 | optional: true
945 | less:
946 | optional: true
947 | lightningcss:
948 | optional: true
949 | sass:
950 | optional: true
951 | stylus:
952 | optional: true
953 | sugarss:
954 | optional: true
955 | terser:
956 | optional: true
957 | dependencies:
958 | esbuild: 0.18.20
959 | postcss: 8.4.31
960 | rollup: 3.29.4
961 | optionalDependencies:
962 | fsevents: 2.3.3
963 | dev: true
964 |
965 | /vue@3.3.7:
966 | resolution: {integrity: sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==}
967 | peerDependencies:
968 | typescript: '*'
969 | peerDependenciesMeta:
970 | typescript:
971 | optional: true
972 | dependencies:
973 | '@vue/compiler-dom': 3.3.7
974 | '@vue/compiler-sfc': 3.3.7
975 | '@vue/runtime-dom': 3.3.7
976 | '@vue/server-renderer': 3.3.7(vue@3.3.7)
977 | '@vue/shared': 3.3.7
978 |
979 | /yallist@3.1.1:
980 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
981 | dev: true
982 |
--------------------------------------------------------------------------------
/example/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | ../postcss.config.cjs
2 |
--------------------------------------------------------------------------------
/example/shims.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable import/no-default-export */
2 | declare interface Window {
3 | // extend the window
4 | }
5 |
6 | // with vite-plugin-vue-markdown, markdown files can be treated as Vue components
7 | declare module '*.md' {
8 | import { type DefineComponent } from 'vue'
9 | const component: DefineComponent<{}, {}, any>
10 | export default component
11 | }
12 |
13 | declare module '*.vue' {
14 | import { type DefineComponent } from 'vue'
15 | const component: DefineComponent<{}, {}, any>
16 | export default component
17 | }
18 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "module": "ES2022",
5 | "target": "ES2020",
6 | "resolveJsonModule": true,
7 | "moduleResolution": "Node",
8 | "jsx": "preserve",
9 | "baseUrl": ".",
10 | "paths": {
11 | "~/*": [
12 | "../src/*"
13 | ],
14 | "~": [
15 | "../src"
16 | ]
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/example/uno.config.ts:
--------------------------------------------------------------------------------
1 | import {
2 | defineConfig,
3 | presetAttributify,
4 | presetIcons,
5 | presetTypography,
6 | presetUno,
7 | presetWind,
8 | transformerDirectives,
9 | transformerVariantGroup,
10 | } from 'unocss'
11 |
12 | export default defineConfig({
13 | shortcuts: [
14 | [
15 | 'btn',
16 | 'px-4 py-1 rounded inline-block bg-teal-700 text-white cursor-pointer !outline-none hover:bg-teal-800 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50',
17 | ],
18 | [
19 | 'icon-btn',
20 | 'inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-teal-600',
21 | ],
22 | ],
23 | presets: [
24 | presetWind({
25 | dark: 'media',
26 | }),
27 | presetAttributify(),
28 | presetUno(),
29 | presetAttributify(),
30 | presetIcons({
31 | scale: 1.2,
32 | warn: true,
33 | }),
34 | presetTypography(),
35 | ],
36 | transformers: [transformerDirectives(), transformerVariantGroup()],
37 | safelist: 'prose m-auto text-left'.split(' '),
38 | })
39 |
--------------------------------------------------------------------------------
/example/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { resolve } from 'path'
2 | import unoCSS from 'unocss/vite'
3 | import { defineConfig } from 'vite'
4 | import tsconfigPaths from 'vite-tsconfig-paths'
5 | import type { PluginOption } from 'vite'
6 |
7 | import vue from '@vitejs/plugin-vue'
8 | import vueJSX from '@vitejs/plugin-vue-jsx'
9 |
10 | import PKG from '../package.json'
11 |
12 | export default defineConfig({
13 | base: '',
14 | plugins: [
15 | vue(),
16 | vueJSX(),
17 | unoCSS(),
18 | tsconfigPaths({
19 | projects: [resolve(__dirname, './tsconfig.json')],
20 | }),
21 | htmlPlugin(),
22 | ],
23 |
24 | // root: resolve(__dirname, './example'),
25 | optimizeDeps: {
26 | include: ['my-awesome-lib'],
27 | },
28 | // resolve: {
29 | // alias: {
30 | // '~': resolve(__dirname, '..'),
31 | // },
32 | // },
33 | build: {
34 | rollupOptions: {
35 | input: {
36 | main: resolve(__dirname, './index.html'),
37 | },
38 | },
39 | },
40 | })
41 |
42 | function htmlPlugin() {
43 | return {
44 | name: 'html-transform',
45 | enforce: 'post',
46 | transformIndexHtml(html) {
47 | return html.replace(
48 | '----------------repo----------------',
49 | PKG.repository.directory,
50 | )
51 | },
52 | } satisfies PluginOption
53 | }
54 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "my-awesome-lib",
3 | "private": true,
4 | "version": "0.0.0",
5 | "description": "TODO",
6 | "author": "Innei",
7 | "license": "MIT",
8 | "repository": {
9 | "type": "git",
10 | "url": "https://github.com/Innei/rollup-typescript-lib",
11 | "directory": "Innei/rollup-typescript-lib"
12 | },
13 | "type": "module",
14 | "main": "./src/index.ts",
15 | "exports": {
16 | ".": {
17 | "import": "./src/index.ts"
18 | },
19 | "./*": {
20 | "import": "./src/*"
21 | }
22 | },
23 | "publishConfig": {
24 | "main": "dist/index.cjs",
25 | "module": "dist/index.js",
26 | "types": "types/index.d.ts",
27 | "exports": {
28 | ".": {
29 | "type": "./dist/index.d.ts",
30 | "import": "./dist/index.js",
31 | "require": "./dist/index.cjs"
32 | },
33 | "./src": {
34 | "import": "./src"
35 | },
36 | "./src/*": {
37 | "import": "./src/*"
38 | }
39 | },
40 | "files": [
41 | "dist",
42 | "lib",
43 | "esm",
44 | "readme.md",
45 | "tsconfig.json",
46 | "types",
47 | "src"
48 | ]
49 | },
50 | "husky": {
51 | "hooks": {
52 | "pre-commit": "lint-staged"
53 | }
54 | },
55 | "lint-staged": {
56 | "*.{js,jsx,ts,tsx}": [
57 | "prettier --ignore-path ./.prettierignore --write ",
58 | "eslint --cache"
59 | ]
60 | },
61 | "bump": {
62 | "before": [
63 | "npm run package"
64 | ],
65 | "publish": true,
66 | "changelog": true
67 | },
68 | "scripts": {
69 | "prebuild": "rm -rf lib && rm -rf esm",
70 | "build": "tsc --build . tsconfig.build.json && tsc --build tsconfig.cjs.json",
71 | "postbuild": "tsc-alias -p tsconfig.build.json && tsc-alias -p tsconfig.cjs.json && npm run types",
72 | "types": "rm -rf types && tsc --build tsconfig.types.json && tsc-alias -p tsconfig.types.json && npx dts-bundle-generator -o dist/index.d.ts ./src/index.ts --no-check --silent --project ./tsconfig.types.json",
73 | "package": "NODE_ENV=production npm run build && rollup -c",
74 | "prepackage": "rm -rf dist",
75 | "test": "vitest",
76 | "prepare": "husky install && cd example && pnpm i",
77 | "release": "bump"
78 | },
79 | "devDependencies": {
80 | "@innei/bump-version": "1.5.10",
81 | "@innei/eslint-config-react-ts": "0.12.2",
82 | "@innei/eslint-config-ts": "0.12.2",
83 | "@innei/prettier": "0.12.2",
84 | "@rollup/plugin-commonjs": "25.0.7",
85 | "@rollup/plugin-node-resolve": "15.2.3",
86 | "@rollup/plugin-typescript": "11.1.6",
87 | "@types/node": "20.11.17",
88 | "@unocss/preset-wind": "0.58.5",
89 | "dts-bundle-generator": "^9.3.1",
90 | "esbuild": "0.20.0",
91 | "husky": "9.0.10",
92 | "lint-staged": "15.2.2",
93 | "postcss": "8.4.35",
94 | "postcss-import": "16.0.0",
95 | "postcss-nested": "6.0.1",
96 | "prettier": "3.2.5",
97 | "rollup": "4.10.0",
98 | "rollup-plugin-esbuild": "6.1.1",
99 | "rollup-plugin-peer-deps-external": "2.2.4",
100 | "rollup-plugin-postcss": "4.0.2",
101 | "tsc-alias": "1.8.8",
102 | "tslib": "2.6.2",
103 | "typescript": "5.3.3",
104 | "unocss": "0.58.5",
105 | "vite": "5.1.1",
106 | "vite-tsconfig-paths": "4.3.1",
107 | "vitest": "1.2.2"
108 | }
109 | }
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | 'postcss-import': {},
4 | 'postcss-nested': {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # Rollup Typescript library template
2 |
3 | A simple TypeScript library template. Quick to start dev, build a Pure TypeScript or React Component library.
4 |
5 | Please use pnpm do this.
6 |
7 | ```sh
8 | pnpm i
9 | ```
10 |
11 | # Usage
12 |
13 | ### Package
14 |
15 | Bundle your source code via tsc, rollup.
16 |
17 | ```
18 | npm run package
19 | ```
20 |
21 | ### Dev
22 |
23 | Start dev mode by Vite.
24 |
25 | ```
26 | npm run dev
27 | ```
28 |
29 | ### Deploy
30 |
31 | Deploy example to GitHub Pages.
32 |
33 | ```
34 | npm run deploy
35 | npm run publish
36 | ```
37 |
38 | # Additional
39 |
40 | ## ESBuild & React
41 |
42 | If you want to bundle React JSX with rollup. Add additional packages.
43 |
44 | ```
45 | pnpm i -D rollup-plugin-esbuild
46 | ```
47 |
48 | And, un-comment this in `rollup.config.ts`.
49 |
50 | ```ts
51 | esbuild({
52 | include: /\.[jt]sx?$/,
53 | exclude: /node_modules/,
54 | sourceMap: false,
55 | minify: process.env.NODE_ENV === 'production',
56 | target: 'es2017',
57 | jsxFactory: 'React.createElement',
58 | jsxFragment: 'React.Fragment',
59 | define: {
60 | __VERSION__: '"x.y.z"',
61 | },
62 | tsconfig: './src/tsconfig.json',
63 | loaders: {
64 | '.json': 'json',
65 | '.js': 'jsx',
66 | },
67 | }),
68 | ```
69 |
70 | ## PostCSS & CSS Module
71 |
72 | Enable default now.
73 |
74 | Nest selector is supported too.
75 |
76 | To build css extract a file not bundle into js, un-comment this.
77 |
78 | ```ts
79 | css({
80 | extract: true,
81 | })
82 | ```
83 |
84 |
85 |
86 | ## License
87 |
88 | 2023 © Innei, MIT License.
89 |
90 | > [Personal Site](https://innei.in/) · GitHub [@Innei](https://github.com/innei/)
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "extends": [
4 | "config:base",
5 | ":semanticCommits",
6 | ":automergePatch",
7 | ":automergeTypes",
8 | ":automergeTesters",
9 | ":automergeLinters",
10 | ":automergeMinor",
11 | ":rebaseStalePrs"
12 | ],
13 | "packageRules": [
14 | {
15 | "updateTypes": [
16 | "major"
17 | ],
18 | "labels": [
19 | "UPDATE-MAJOR"
20 | ]
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | // @ts-check
2 | import { readFileSync } from 'fs'
3 | import { minify } from 'rollup-plugin-esbuild'
4 | import peerDepsExternal from 'rollup-plugin-peer-deps-external'
5 | import css from 'rollup-plugin-postcss'
6 |
7 | import commonjs from '@rollup/plugin-commonjs'
8 | import { nodeResolve } from '@rollup/plugin-node-resolve'
9 | import typescript from '@rollup/plugin-typescript'
10 |
11 | const packageJson = JSON.parse(
12 | readFileSync('./package.json', { encoding: 'utf-8' }),
13 | )
14 |
15 | const globals = {
16 | // @ts-ignore
17 | ...(packageJson?.dependencies || {}),
18 | }
19 |
20 | const dir = 'dist'
21 |
22 | /**
23 | * @type {import('rollup').RollupOptions[]}
24 | */
25 | const config = [
26 | {
27 | input: 'src/index.ts',
28 | // ignore lib
29 | external: [
30 | 'react',
31 | 'react-dom',
32 | 'lodash',
33 | 'lodash-es',
34 | ...Object.keys(globals),
35 | ],
36 |
37 | output: [
38 | {
39 | file: `${dir}/index.cjs`,
40 | format: 'cjs',
41 | sourcemap: true,
42 | },
43 | {
44 | file: `${dir}/index.min.cjs`,
45 | format: 'cjs',
46 | sourcemap: true,
47 | plugins: [minify()],
48 | },
49 | {
50 | file: `${dir}/index.js`,
51 | format: 'esm',
52 | sourcemap: true,
53 | },
54 | {
55 | file: `${dir}/index.min.js`,
56 | format: 'esm',
57 | sourcemap: true,
58 | plugins: [minify()],
59 | },
60 | ],
61 | plugins: [
62 | nodeResolve(),
63 | commonjs({ include: 'node_modules/**' }),
64 | typescript({
65 | tsconfig: './tsconfig.build.json',
66 | declaration: false,
67 | }),
68 | css({
69 | // extract: true,
70 | minimize: true,
71 | modules: {
72 | generateScopedName: '[hash:base64:5]',
73 | },
74 | }),
75 |
76 | // @ts-ignore
77 | peerDepsExternal(),
78 | ],
79 |
80 | treeshake: true,
81 | },
82 | ]
83 |
84 | export default config
85 |
--------------------------------------------------------------------------------
/src/__tests__/index.test.ts:
--------------------------------------------------------------------------------
1 |
2 | describe('test', () => {
3 | it('should be define', () => {
4 | expect(test).toBeDefined()
5 | })
6 | })
--------------------------------------------------------------------------------
/src/global.d.ts:
--------------------------------------------------------------------------------
1 | declare global {}
2 | export * from 'vite/client'
3 | export {}
4 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | .a {
2 | padding: 0;
3 |
4 | .b {
5 | bottom: 0;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { getTime } from '~/utils/index.js'
2 |
3 | import './index.css'
4 |
5 | export const date = getTime()
6 | const test = () => {
7 | console.log('hello, rollup')
8 | console.log(date)
9 | }
10 | export { test, getTime }
11 |
--------------------------------------------------------------------------------
/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export const getTime = () => +new Date()
2 |
--------------------------------------------------------------------------------
/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./esm",
5 | "noEmit": false
6 | },
7 | "exclude": [
8 | "esm/*",
9 | "build/*",
10 | "node_modules/*",
11 | "lib/*",
12 | "example/*",
13 | "vitest.config.ts",
14 | "vite.config.ts",
15 | "__tests__/*",
16 | "src/__tests__/*"
17 | ]
18 | }
--------------------------------------------------------------------------------
/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.build.json",
3 | "compilerOptions": {
4 | "module": "CommonJS",
5 | "moduleResolution": "Node",
6 | "outDir": "./lib",
7 | },
8 | "exclude": [
9 | "esm/*",
10 | "build/*",
11 | "node_modules/*",
12 | "lib/*",
13 | "example/*",
14 | "vitest.config.ts",
15 | "vite.config.ts",
16 | "__tests__/*",
17 | "src/__tests__/*"
18 | ]
19 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": true,
4 | "baseUrl": "./src",
5 | "rootDir": "./src",
6 | "outDir": "/tmp",
7 | "jsx": "react",
8 | "target": "ES2020",
9 | "lib": [
10 | "ESNext",
11 | "DOM",
12 | "DOM.Iterable"
13 | ],
14 | "module": "NodeNext",
15 | "moduleResolution": "NodeNext",
16 | "strict": true,
17 | "resolveJsonModule": true,
18 | "esModuleInterop": true,
19 | "skipLibCheck": true,
20 | "forceConsistentCasingInFileNames": true,
21 | "sourceMap": true,
22 | "types": [
23 | "vite/client",
24 | "vitest/globals"
25 | ],
26 | "paths": {
27 | "~/*": [
28 | "*"
29 | ]
30 | }
31 | },
32 | "exclude": [
33 | "esm/*",
34 | "build/*",
35 | "node_modules/*",
36 | "lib/*",
37 | "example/*",
38 | "vitest.config.ts",
39 | "vite.config.ts",
40 | ]
41 | }
--------------------------------------------------------------------------------
/tsconfig.types.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "commonjs",
5 | "rootDir": "./src",
6 | "outDir": "./types",
7 | "moduleResolution": "Node",
8 | "declaration": true,
9 | "declarationMap": false,
10 | "isolatedModules": false,
11 | "allowJs": false,
12 | "emitDeclarationOnly": true,
13 | "types": [],
14 | },
15 | "exclude": [
16 | "esm/*",
17 | "build/*",
18 | "node_modules/*",
19 | "lib/*",
20 | "example/*",
21 | "vitest.config.ts",
22 | "vite.config.ts",
23 | "src/__tests__/*"
24 | ]
25 | }
--------------------------------------------------------------------------------
/vitest.config.ts:
--------------------------------------------------------------------------------
1 | import tsPath from 'vite-tsconfig-paths'
2 | import { defineConfig } from 'vitest/config'
3 |
4 | export default defineConfig({
5 | test: {
6 | globals: true,
7 | include: ['src/__tests__/**/*.(spec|test).ts'],
8 | },
9 | plugins: [tsPath()],
10 | })
11 |
--------------------------------------------------------------------------------