@component-hook/create-app 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +82 -82
  2. package/package.json +1 -1
  3. package/template-vue/.github/actions/setup-environment/action.yml +45 -45
  4. package/template-vue/.github/renovate.json +12 -12
  5. package/template-vue/.github/workflows/ci.yml +22 -22
  6. package/template-vue/.github/workflows/deploy.yml +27 -27
  7. package/template-vue/.github/workflows/preview.yml +17 -17
  8. package/template-vue/.gitlab/setup.yml +18 -18
  9. package/template-vue/.husky/commit-msg +3 -3
  10. package/template-vue/.husky/pre-commit +3 -3
  11. package/template-vue/.vscode/extensions.json +10 -10
  12. package/template-vue/.vscode/settings.json +27 -27
  13. package/template-vue/LICENSE +21 -21
  14. package/template-vue/README.md.art +100 -100
  15. package/template-vue/_gitignore +38 -38
  16. package/template-vue/_gitlab-ci.yml +22 -22
  17. package/template-vue/index.html.art +26 -26
  18. package/template-vue/package.json +73 -73
  19. package/template-vue/public/mockServiceWorker.js +307 -307
  20. package/template-vue/src/components.d.ts +14 -14
  21. package/template-vue/src/locales/en-US.json +3 -3
  22. package/template-vue/src/locales/zh-TW.json +3 -3
  23. package/template-vue/src/styles/common/all.postcss +1 -1
  24. package/template-vue/src/styles/common/button.postcss +12 -12
  25. package/template-vue/src/styles/index.postcss +1 -1
  26. package/template-vue/src/styles/tailwind.postcss +39 -39
  27. package/template-vue/src/vite-env.d.ts +12 -12
  28. package/template-vue/tsconfig.app.json +13 -13
  29. package/template-vue/tsconfig.json +14 -14
  30. package/template-vue/tsconfig.node.json +12 -12
  31. package/template-vue/tsconfig.vitest.json +8 -8
package/README.md CHANGED
@@ -1,82 +1,82 @@
1
- # @component-hook/create-app
2
-
3
- Scaffolding a basic `typescript` project.
4
-
5
- > **Compatibility Note:**
6
- > Requires [Node.js](https://nodejs.org/en/) version 18+, 20+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it.
7
-
8
- <p>
9
- <a href="https://npm-stat.com/charts.html?package=@component-hook/create-app">
10
- <img src="https://img.shields.io/npm/dm/@component-hook/create-app.svg" alt="npm"/>
11
- </a>
12
- <a href="https://www.npmjs.com/package/@component-hook/create-app">
13
- <img src="https://img.shields.io/npm/v/@component-hook/create-app.svg" alt="npm"/>
14
- </a>
15
- </p>
16
-
17
- ## Create Project
18
-
19
- ```bash
20
- $ npm create @component-hook/app@latest
21
-
22
- # or use yarn
23
- $ yarn create @component-hook/app
24
-
25
- # or use pnpm
26
- $ pnpm create @component-hook/app
27
- ```
28
-
29
- Then follow the prompts!
30
-
31
- You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a project, run:
32
-
33
- ```bash
34
- $ npm create @component-hook/app@latest basic-app -- --template vue
35
-
36
- # yarn
37
- $ yarn create @component-hook/app basic-app --template vue
38
-
39
- # pnpm
40
- $ pnpm create @component-hook/app basic-app --template vue
41
- ```
42
-
43
- Currently supported template presets include:
44
-
45
- - `vue`
46
-
47
- ## Project Default Setup
48
-
49
- - [Vite](https://cn.vite.dev/)
50
- - [TypeScript](https://www.typescriptlang.org/)
51
- - [Axios](https://github.com/axios/axios)
52
- - [TailwindcSS](https://tailwindcss.com/)
53
- - [PostCSS](https://postcss.org/) w/ `postcss-nesting` plugin
54
- - [Cssnano](https://cssnano.github.io/cssnano/) for minimizing production CSS
55
- - [Postcss-pxtorem](https://www.npmjs.com/package/postcss-pxtorem) generates rem units from pixel units
56
- - [Vite-plugin-svg-icons](https://github.com/vbenjs/vite-plugin-svg-icons) generate svg sprite map
57
- - [Eslint](https://eslint.org/)
58
- - [@component-hook/eslint-plugin](https://www.npmjs.com/package/@component-hook/eslint-plugin?activeTab=readme)
59
- - [Prettier](https://prettier.io/)
60
- - [Husky](https://www.npmjs.com/package/husky) to improves commits
61
- - if encounter npx: command not found, can execute `ln -s $(which npx) /usr/local/bin/npx` in zsh
62
- - [commitlint](https://commitlint.js.org/#/) checks if your commit messages meet the conventional commit format
63
- - [lint-staged](https://github.com/okonet/lint-staged) filter files checked by pre commit lint
64
- - Alias `@` to `<project_root>/src`
65
- - Mock use [msw](https://mswjs.io/)
66
- - `npx msw init ./public`
67
- - Unit test use [Vitest](https://vitest.dev/) + [Testing Library](https://testing-library.com/)
68
- - [jsdom](https://www.npmjs.com/package/jsdom)
69
- - [@vitest/coverage-v8](https://vitest.dev/guide/coverage.html)
70
- - [@testing-library/jest-dom](https://testing-library.com/docs/ecosystem-jest-dom/)
71
- - [@testing-library/user-event](https://testing-library.com/docs/ecosystem-user-event/)
72
- - E2E test use [playwright](https://playwright.dev/)
73
- - [Rollup-plugin-visualizer](https://github.com/btd/rollup-plugin-visualizer) visualize and analyze your Rollup bundle to see which modules are taking up space
74
- - Predefined and fully typed global variables:
75
- - `VITE_APP_VERSION` is read from `package.json` version at build time
76
- - `VITE_APP_BUILD_EPOCH` is populated as `new Date().getTime()` at build time
77
- - Github workflows (default)
78
- - ci - on workflow call and dispatch
79
- - deploy - on push main branch
80
- - preview - on pull request
81
- - Gitlab CI (use `--gitlab` command create project)
82
- - run tests - on branches, merge request and manual
1
+ # @component-hook/create-app
2
+
3
+ Scaffolding a basic `typescript` project.
4
+
5
+ > **Compatibility Note:**
6
+ > Requires [Node.js](https://nodejs.org/en/) version 18+, 20+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it.
7
+
8
+ <p>
9
+ <a href="https://npm-stat.com/charts.html?package=@component-hook/create-app">
10
+ <img src="https://img.shields.io/npm/dm/@component-hook/create-app.svg" alt="npm"/>
11
+ </a>
12
+ <a href="https://www.npmjs.com/package/@component-hook/create-app">
13
+ <img src="https://img.shields.io/npm/v/@component-hook/create-app.svg" alt="npm"/>
14
+ </a>
15
+ </p>
16
+
17
+ ## Create Project
18
+
19
+ ```bash
20
+ $ npm create @component-hook/app@latest
21
+
22
+ # or use yarn
23
+ $ yarn create @component-hook/app
24
+
25
+ # or use pnpm
26
+ $ pnpm create @component-hook/app
27
+ ```
28
+
29
+ Then follow the prompts!
30
+
31
+ You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a project, run:
32
+
33
+ ```bash
34
+ $ npm create @component-hook/app@latest basic-app -- --template vue
35
+
36
+ # yarn
37
+ $ yarn create @component-hook/app basic-app --template vue
38
+
39
+ # pnpm
40
+ $ pnpm create @component-hook/app basic-app --template vue
41
+ ```
42
+
43
+ Currently supported template presets include:
44
+
45
+ - `vue`
46
+
47
+ ## Project Default Setup
48
+
49
+ - [Vite](https://cn.vite.dev/)
50
+ - [TypeScript](https://www.typescriptlang.org/)
51
+ - [Axios](https://github.com/axios/axios)
52
+ - [TailwindcSS](https://tailwindcss.com/)
53
+ - [PostCSS](https://postcss.org/) w/ `postcss-nesting` plugin
54
+ - [Cssnano](https://cssnano.github.io/cssnano/) for minimizing production CSS
55
+ - [Postcss-pxtorem](https://www.npmjs.com/package/postcss-pxtorem) generates rem units from pixel units
56
+ - [Vite-plugin-svg-icons](https://github.com/vbenjs/vite-plugin-svg-icons) generate svg sprite map
57
+ - [Eslint](https://eslint.org/)
58
+ - [@component-hook/eslint-plugin](https://www.npmjs.com/package/@component-hook/eslint-plugin?activeTab=readme)
59
+ - [Prettier](https://prettier.io/)
60
+ - [Husky](https://www.npmjs.com/package/husky) to improves commits
61
+ - if encounter npx: command not found, can execute `ln -s $(which npx) /usr/local/bin/npx` in zsh
62
+ - [commitlint](https://commitlint.js.org/#/) checks if your commit messages meet the conventional commit format
63
+ - [lint-staged](https://github.com/okonet/lint-staged) filter files checked by pre commit lint
64
+ - Alias `@` to `<project_root>/src`
65
+ - Mock use [msw](https://mswjs.io/)
66
+ - `npx msw init ./public`
67
+ - Unit test use [Vitest](https://vitest.dev/) + [Testing Library](https://testing-library.com/)
68
+ - [jsdom](https://www.npmjs.com/package/jsdom)
69
+ - [@vitest/coverage-v8](https://vitest.dev/guide/coverage.html)
70
+ - [@testing-library/jest-dom](https://testing-library.com/docs/ecosystem-jest-dom/)
71
+ - [@testing-library/user-event](https://testing-library.com/docs/ecosystem-user-event/)
72
+ - E2E test use [playwright](https://playwright.dev/)
73
+ - [Rollup-plugin-visualizer](https://github.com/btd/rollup-plugin-visualizer) visualize and analyze your Rollup bundle to see which modules are taking up space
74
+ - Predefined and fully typed global variables:
75
+ - `VITE_APP_VERSION` is read from `package.json` version at build time
76
+ - `VITE_APP_BUILD_EPOCH` is populated as `new Date().getTime()` at build time
77
+ - Github workflows (default)
78
+ - ci - on workflow call and dispatch
79
+ - deploy - on push main branch
80
+ - preview - on pull request
81
+ - Gitlab CI (use `--gitlab` command create project)
82
+ - run tests - on branches, merge request and manual
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@component-hook/create-app",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Scaffolding a basic typescript project",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,45 +1,45 @@
1
- name: Setup environment
2
-
3
- description: Install dependencies
4
-
5
- runs:
6
- using: composite
7
- steps:
8
- - name: install Node.js
9
- uses: actions/setup-node@v4
10
- with:
11
- node-version: 20
12
-
13
- - name: install pnpm
14
- uses: pnpm/action-setup@v4
15
- with:
16
- run_install: false
17
-
18
- - name: get pnpm store directory
19
- id: pnpm-cache
20
- shell: bash
21
- run: |
22
- echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
23
-
24
- - name: setup pnpm cache
25
- uses: actions/cache@v4
26
- with:
27
- path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
28
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
29
- restore-keys: |
30
- ${{ runner.os }}-pnpm-store-
31
-
32
- - name: setup node_modules cache
33
- id: dependencies-cache
34
- uses: actions/cache@v4
35
- with:
36
- path: |
37
- **/node_modules
38
- key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
39
- restore-keys: |
40
- ${{ runner.os }}-node-modules-
41
-
42
- - name: install dependencies
43
- if: steps.dependencies-cache.outputs.cache-hit != 'true'
44
- shell: bash
45
- run: pnpm install
1
+ name: Setup environment
2
+
3
+ description: Install dependencies
4
+
5
+ runs:
6
+ using: composite
7
+ steps:
8
+ - name: install Node.js
9
+ uses: actions/setup-node@v4
10
+ with:
11
+ node-version: 20
12
+
13
+ - name: install pnpm
14
+ uses: pnpm/action-setup@v4
15
+ with:
16
+ run_install: false
17
+
18
+ - name: get pnpm store directory
19
+ id: pnpm-cache
20
+ shell: bash
21
+ run: |
22
+ echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
23
+
24
+ - name: setup pnpm cache
25
+ uses: actions/cache@v4
26
+ with:
27
+ path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
28
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
29
+ restore-keys: |
30
+ ${{ runner.os }}-pnpm-store-
31
+
32
+ - name: setup node_modules cache
33
+ id: dependencies-cache
34
+ uses: actions/cache@v4
35
+ with:
36
+ path: |
37
+ **/node_modules
38
+ key: ${{ runner.os }}-node-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
39
+ restore-keys: |
40
+ ${{ runner.os }}-node-modules-
41
+
42
+ - name: install dependencies
43
+ if: steps.dependencies-cache.outputs.cache-hit != 'true'
44
+ shell: bash
45
+ run: pnpm install
@@ -1,12 +1,12 @@
1
- {
2
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
- "extends": ["config:base", "group:allNonMajor", "schedule:weekly", ":semanticCommitTypeAll(chore)"],
4
- "labels": ["dependencies"],
5
- "rangeStrategy": "bump",
6
- "packageRules": [
7
- {
8
- "depTypeList": ["peerDependencies"],
9
- "enabled": false
10
- }
11
- ]
12
- }
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": ["config:base", "group:allNonMajor", "schedule:weekly", ":semanticCommitTypeAll(chore)"],
4
+ "labels": ["dependencies"],
5
+ "rangeStrategy": "bump",
6
+ "packageRules": [
7
+ {
8
+ "depTypeList": ["peerDependencies"],
9
+ "enabled": false
10
+ }
11
+ ]
12
+ }
@@ -1,22 +1,22 @@
1
- name: CI Pipeline
2
-
3
- on:
4
- workflow_call:
5
- workflow_dispatch:
6
-
7
- jobs:
8
- CI:
9
- runs-on: ubuntu-latest
10
- steps:
11
- - uses: actions/checkout@v4
12
- - name: setup environment
13
- uses: './.github/actions/setup-environment'
14
-
15
- - name: install Playwright browsers
16
- run: npx playwright install --with-deps
17
-
18
- - name: run unit test
19
- run: pnpm test:unit
20
-
21
- - name: run e2e test
22
- run: pnpm test:ci-e2e
1
+ name: CI Pipeline
2
+
3
+ on:
4
+ workflow_call:
5
+ workflow_dispatch:
6
+
7
+ jobs:
8
+ CI:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - name: setup environment
13
+ uses: './.github/actions/setup-environment'
14
+
15
+ - name: install Playwright browsers
16
+ run: npx playwright install --with-deps
17
+
18
+ - name: run unit test
19
+ run: pnpm test:unit
20
+
21
+ - name: run e2e test
22
+ run: pnpm test:ci-e2e
@@ -1,27 +1,27 @@
1
- name: Deploy to Production
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- paths:
7
- - 'src/**'
8
- - 'pnpm-lock.yaml'
9
- - 'package.json'
10
-
11
- jobs:
12
- CI:
13
- uses: './.github/workflows/ci.yml'
14
-
15
- deploy:
16
- runs-on: ubuntu-latest
17
- needs: CI
18
- steps:
19
- - uses: actions/checkout@v4
20
- # - name: setup environment
21
- # uses: './.github/actions/setup-environment'
22
-
23
- # - name: build production
24
- # run: pnpm build:production
25
-
26
- # - name: deploy to production
27
- # run: pnpm deploy
1
+ name: Deploy to Production
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - 'src/**'
8
+ - 'pnpm-lock.yaml'
9
+ - 'package.json'
10
+
11
+ jobs:
12
+ CI:
13
+ uses: './.github/workflows/ci.yml'
14
+
15
+ deploy:
16
+ runs-on: ubuntu-latest
17
+ needs: CI
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ # - name: setup environment
21
+ # uses: './.github/actions/setup-environment'
22
+
23
+ # - name: build production
24
+ # run: pnpm build:production
25
+
26
+ # - name: deploy to production
27
+ # run: pnpm deploy
@@ -1,17 +1,17 @@
1
- name: Prewiew Pull Request
2
-
3
- on:
4
- pull_request:
5
- types: [opened, synchronize, reopened]
6
-
7
- jobs:
8
- CI:
9
- uses: './.github/workflows/ci.yml'
10
-
11
- preview:
12
- runs-on: ubuntu-latest
13
- needs: CI
14
- steps:
15
- - uses: actions/checkout@v4
16
- # - name: setup environment
17
- # uses: './.github/actions/setup-environment'
1
+ name: Prewiew Pull Request
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+
7
+ jobs:
8
+ CI:
9
+ uses: './.github/workflows/ci.yml'
10
+
11
+ preview:
12
+ runs-on: ubuntu-latest
13
+ needs: CI
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ # - name: setup environment
17
+ # uses: './.github/actions/setup-environment'
@@ -1,18 +1,18 @@
1
- variables:
2
- NODE_VERSION: '20'
3
- CACHE_KEY: '${CI_PROJECT_PATH_SLUG}-${CI_COMMIT_REF_SLUG}'
4
-
5
- image: node:${NODE_VERSION}-alpine
6
-
7
- cache:
8
- key: ${CACHE_KEY}
9
- paths:
10
- - .pnpm-store
11
- - node_modules/
12
- policy: pull-push
13
-
14
- before_script:
15
- - corepack enable
16
- - corepack prepare --activate
17
- - pnpm config set store-dir .pnpm-store
18
- - pnpm install
1
+ variables:
2
+ NODE_VERSION: '20'
3
+ CACHE_KEY: '${CI_PROJECT_PATH_SLUG}-${CI_COMMIT_REF_SLUG}'
4
+
5
+ image: node:${NODE_VERSION}-alpine
6
+
7
+ cache:
8
+ key: ${CACHE_KEY}
9
+ paths:
10
+ - .pnpm-store
11
+ - node_modules/
12
+ policy: pull-push
13
+
14
+ before_script:
15
+ - corepack enable
16
+ - corepack prepare --activate
17
+ - pnpm config set store-dir .pnpm-store
18
+ - pnpm install
@@ -1,3 +1,3 @@
1
- #!/bin/sh
2
-
3
- npx --no -- commitlint --edit ${1}
1
+ #!/bin/sh
2
+
3
+ npx --no -- commitlint --edit ${1}
@@ -1,3 +1,3 @@
1
- #!/bin/sh
2
-
3
- npx lint-staged
1
+ #!/bin/sh
2
+
3
+ npx lint-staged
@@ -1,10 +1,10 @@
1
- {
2
- "recommendations": [
3
- "vue.volar",
4
- "bradlc.vscode-tailwindcss",
5
- "esbenp.prettier-vscode",
6
- "csstools.postcss",
7
- "cpylua.language-postcss",
8
- "streetsidesoftware.code-spell-checker"
9
- ]
10
- }
1
+ {
2
+ "recommendations": [
3
+ "vue.volar",
4
+ "bradlc.vscode-tailwindcss",
5
+ "esbenp.prettier-vscode",
6
+ "csstools.postcss",
7
+ "cpylua.language-postcss",
8
+ "streetsidesoftware.code-spell-checker"
9
+ ]
10
+ }
@@ -1,27 +1,27 @@
1
- {
2
- "[nginx]": {
3
- "editor.defaultFormatter": "raynigon.nginx-formatter"
4
- },
5
- "editor.tabSize": 2,
6
- "editor.defaultFormatter": "esbenp.prettier-vscode",
7
- "debug.javascript.autoAttachFilter": "smart",
8
- "editor.formatOnSave": true,
9
- "[dart]": {
10
- "editor.formatOnSave": true,
11
- "editor.formatOnType": true,
12
- "editor.rulers": [120],
13
- "editor.selectionHighlight": false,
14
- "editor.suggest.snippetsPreventQuickSuggestions": false,
15
- "editor.suggestSelection": "first",
16
- "editor.tabCompletion": "onlySnippets",
17
- "editor.wordBasedSuggestions": "off"
18
- },
19
- "workbench.editor.splitInGroupLayout": "vertical",
20
- "terminal.integrated.shellIntegration.enabled": true,
21
- "volar.format.initialIndent": {
22
- "html": true
23
- },
24
- "files.associations": {},
25
- "typescript.tsdk": "node_modules/typescript/lib",
26
- "cSpell.words": ["dotenv", "pinia", "persistedstate", "unplugin", "Sonarjs", "typecheck"]
27
- }
1
+ {
2
+ "[nginx]": {
3
+ "editor.defaultFormatter": "raynigon.nginx-formatter"
4
+ },
5
+ "editor.tabSize": 2,
6
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
7
+ "debug.javascript.autoAttachFilter": "smart",
8
+ "editor.formatOnSave": true,
9
+ "[dart]": {
10
+ "editor.formatOnSave": true,
11
+ "editor.formatOnType": true,
12
+ "editor.rulers": [120],
13
+ "editor.selectionHighlight": false,
14
+ "editor.suggest.snippetsPreventQuickSuggestions": false,
15
+ "editor.suggestSelection": "first",
16
+ "editor.tabCompletion": "onlySnippets",
17
+ "editor.wordBasedSuggestions": "off"
18
+ },
19
+ "workbench.editor.splitInGroupLayout": "vertical",
20
+ "terminal.integrated.shellIntegration.enabled": true,
21
+ "volar.format.initialIndent": {
22
+ "html": true
23
+ },
24
+ "files.associations": {},
25
+ "typescript.tsdk": "node_modules/typescript/lib",
26
+ "cSpell.words": ["dotenv", "pinia", "persistedstate", "unplugin", "Sonarjs", "typecheck"]
27
+ }
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c)
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.
1
+ MIT License
2
+
3
+ Copyright (c)
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.