diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 61c5f80..2fdbf8e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,21 +5,40 @@ on: - master jobs: Build-and-Deploy: + env: + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Use Node.js - uses: actions/setup-node@v2-beta + - uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 with: - node-version: '14' - - name: Install & build + version: 8 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + - name: Install & Build run: | - npm install - npm run build - - name: Deploy + pnpm i --frozen-lockfile + pnpm build + + - name: Deploy to GitHub pages uses: peaceiris/actions-gh-pages@v3 with: - publish_dir: ./docs + publish_dir: ./dist personal_token: ${{ secrets.GITHUB_TOKEN }} force_orphan: true + + - name: Deploy to Vercel + uses: amondnet/vercel-action@v25 + if: ${{ env.VERCEL_TOKEN && env.VERCEL_ORG_ID && env.VERCEL_PROJECT_ID }} + with: + vercel-token: ${{ secrets.VERCEL_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} + vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} + vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} + working-directory: ./dist + vercel-args: --prod diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 0000000..a791585 --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,35 @@ +name: Commit preview +on: + push: + branches-ignore: + - master +jobs: + Build-and-Deploy: + env: + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + - name: Install & Build + run: | + pnpm i --frozen-lockfile + pnpm build + + - uses: amondnet/vercel-action@v25 + if: ${{ env.VERCEL_TOKEN && env.VERCEL_ORG_ID && env.VERCEL_PROJECT_ID }} + with: + vercel-token: ${{ secrets.VERCEL_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} + vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} + vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} + working-directory: ./dist diff --git a/.gitignore b/.gitignore index fa8c718..0058936 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,7 @@ yarn.lock # Bundle dist/ -.cache/ +.parcel-cache/ docs/ # IDE diff --git a/.parcelrc b/.parcelrc new file mode 100644 index 0000000..2a5ffc1 --- /dev/null +++ b/.parcelrc @@ -0,0 +1,6 @@ +{ + "extends": "@parcel/config-default", + "transformers": { + "*.{ts,tsx}": ["@parcel/transformer-typescript-tsc"] + } +} \ No newline at end of file diff --git a/ReadMe.md b/ReadMe.md index 1dc20ca..5b168b0 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -2,8 +2,8 @@ [Web Components][1] library for GitHub based on [WebCell][2] -[![NPM Dependency](https://david-dm.org/TechQuery/GitHub-Web-Widget.svg)][3] -[![CI & CD](https://github.com/EasyWebApp/GitHub-Web-Widget/workflows/CI%20&%20CD/badge.svg)][4] +[![NPM Dependency](https://img.shields.io/librariesio/github/TechQuery/GitHub-Web-Widget.svg)][3] +[![CI & CD](https://github.com/TechQuery/GitHub-Web-Widget/actions/workflows/main.yml/badge.svg)][4] [![NPM](https://nodei.co/npm/github-web-widget.png?downloads=true&downloadRank=true&stars=true)][5] @@ -21,56 +21,93 @@ https://tech-query.me/GitHub-Web-Widget/demo/ ## Usage +### Installation + ```shell -npm install github-web-widget +npm install dom-renderer web-cell github-web-widget +npm install parcel @parcel/config-default @parcel/transformer-typescript-tsc -D +``` + +### `package.json` + +```json +{ + "scripts": { + "start": "parcel source/index.html --open", + "build": "parcel build source/index.html --public-url ." + } +} +``` + +### `tsconfig.json` + +```json +{ + "compilerOptions": { + "target": "ES6", + "module": "ES2020", + "moduleResolution": "Node", + "useDefineForClassFields": true, + "jsx": "react-jsx", + "jsxImportSource": "dom-renderer" + } +} +``` + +### `.parcelrc` + +```json +{ + "extends": "@parcel/config-default", + "transformers": { + "*.{ts,tsx}": ["@parcel/transformer-typescript-tsc"] + } +} ``` -[`source/index.html`][12] +### [`source/index.html`][12] ```html - + Your Blog - - - - + + + + - + ``` -[`source/index.tsx`][13] +### [`source/index.tsx`][13] -```JavaScript -import { render, createCell } from 'web-cell'; +```tsx +import { DOMRenderer } from 'dom-renderer'; import { CommandLine, GithubRepository, GithubIssue, GithubProfile, GithubEvents -} from 'github-web-widget/source'; +} from 'github-web-widget'; -render( +new DOMRenderer().render(

GitHub Web Widget

@@ -108,8 +145,8 @@ render( [1]: https://www.webcomponents.org/ [2]: https://web-cell.dev/ -[3]: https://david-dm.org/TechQuery/GitHub-Web-Widget -[4]: https://github.com/EasyWebApp/WebCell/actions +[3]: https://libraries.io/npm/github-web-widget +[4]: https://github.com/EasyWebApp/GitHub-Web-Widget/actions/workflows/main.yml [5]: https://nodei.co/npm/github-web-widget/ [6]: https://tech-query.me/GitHub-Web-Widget/classes/commandline.commandline-1.html [7]: https://tech-query.me/GitHub-Web-Widget/interfaces/profile.githubprofileprops.html diff --git a/package.json b/package.json index dcee2f6..851900b 100644 --- a/package.json +++ b/package.json @@ -25,10 +25,10 @@ "module": "dist/index.js", "scripts": { "prepare": "husky install", - "start": "cd test/ && parcel index.html -d ../docs/demo/ --open", - "pack-demo": "cd test/ && parcel build index.html --public-url . -d ../docs/demo/", + "start": "rm -rf .parcel-cache/ docs/demo/ && cd test/ && parcel index.html --dist-dir ../docs/demo/ --open", + "pack-demo": "cd test/ && parcel build index.html --public-url . --dist-dir ../docs/demo/", "test": "lint-staged", - "pack-dist": "cross-env NODE_ENV=build microbundle --external web-cell,classnames,marked,koajax,prismjs,.+\\.png --globals web-cell=WebCell,classnames=classNames,koajax=KoAJAX,prismjs=Prism --name GithubWebWidget --css-modules true", + "pack-dist": "rm -rf .parcel-cache/ dist/ && parcel build", "pack-docs": "rm -rf docs/ && typedoc source/ && npm run pack-demo", "build": "rm -rf dist/ && npm run pack-dist && npm run pack-docs", "help": "npm run pack-docs && open-cli docs/index.html", @@ -48,7 +48,13 @@ }, "devDependencies": { "@octokit/openapi-types": "^19.1.0", + "@parcel/config-default": "~2.11.0", + "@parcel/packager-ts": "~2.11.0", + "@parcel/transformer-less": "~2.11.0", + "@parcel/transformer-typescript-tsc": "~2.11.0", + "@parcel/transformer-typescript-types": "~2.11.0", "@types/prismjs": "^1.26.3", + "@typescript-eslint/eslint-plugin": "^6.19.0", "@typescript-eslint/parser": "^6.19.0", "cross-env": "^7.0.3", "element-internals-polyfill": "^1.3.10", @@ -58,9 +64,10 @@ "iterable-observer": "^1.0.1", "lint-staged": "^15.2.0", "open-cli": "^8.0.0", - "parcel": "^2.11.0", + "parcel": "~2.11.0", "prettier": "^3.2.2", "typedoc": "^0.25.7", + "typedoc-plugin-mdn-links": "^3.1.12", "typescript": "~5.3.3", "web-utility": "^4.1.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed81e9a..d9b7b7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,9 +28,27 @@ devDependencies: '@octokit/openapi-types': specifier: ^19.1.0 version: 19.1.0 + '@parcel/config-default': + specifier: ~2.11.0 + version: 2.11.0(@parcel/core@2.11.0)(typescript@5.3.3) + '@parcel/packager-ts': + specifier: ~2.11.0 + version: 2.11.0 + '@parcel/transformer-less': + specifier: ~2.11.0 + version: 2.11.0 + '@parcel/transformer-typescript-tsc': + specifier: ~2.11.0 + version: 2.11.0(typescript@5.3.3) + '@parcel/transformer-typescript-types': + specifier: ~2.11.0 + version: 2.11.0(typescript@5.3.3) '@types/prismjs': specifier: ^1.26.3 version: 1.26.3 + '@typescript-eslint/eslint-plugin': + specifier: ^6.19.0 + version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^6.19.0 version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) @@ -59,7 +77,7 @@ devDependencies: specifier: ^8.0.0 version: 8.0.0 parcel: - specifier: ^2.11.0 + specifier: ~2.11.0 version: 2.11.0(typescript@5.3.3) prettier: specifier: ^3.2.2 @@ -67,6 +85,9 @@ devDependencies: typedoc: specifier: ^0.25.7 version: 0.25.7(typescript@5.3.3) + typedoc-plugin-mdn-links: + specifier: ^3.1.12 + version: 3.1.12(typedoc@0.25.7) typescript: specifier: ~5.3.3 version: 5.3.3 @@ -300,13 +321,13 @@ packages: resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} dev: true - /@parcel/bundler-default@2.11.0(@parcel/core@2.11.0): + /@parcel/bundler-default@2.11.0: resolution: {integrity: sha512-ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 '@parcel/graph': 3.1.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 @@ -334,11 +355,11 @@ packages: chalk: 4.1.2 dev: true - /@parcel/compressor-raw@2.11.0(@parcel/core@2.11.0): + /@parcel/compressor-raw@2.11.0: resolution: {integrity: sha512-RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true @@ -348,38 +369,38 @@ packages: peerDependencies: '@parcel/core': ^2.11.0 dependencies: - '@parcel/bundler-default': 2.11.0(@parcel/core@2.11.0) - '@parcel/compressor-raw': 2.11.0(@parcel/core@2.11.0) + '@parcel/bundler-default': 2.11.0 + '@parcel/compressor-raw': 2.11.0 '@parcel/core': 2.11.0 - '@parcel/namer-default': 2.11.0(@parcel/core@2.11.0) - '@parcel/optimizer-css': 2.11.0(@parcel/core@2.11.0) - '@parcel/optimizer-htmlnano': 2.11.0(@parcel/core@2.11.0)(typescript@5.3.3) + '@parcel/namer-default': 2.11.0 + '@parcel/optimizer-css': 2.11.0 + '@parcel/optimizer-htmlnano': 2.11.0(typescript@5.3.3) '@parcel/optimizer-image': 2.11.0(@parcel/core@2.11.0) - '@parcel/optimizer-svgo': 2.11.0(@parcel/core@2.11.0) - '@parcel/optimizer-swc': 2.11.0(@parcel/core@2.11.0) - '@parcel/packager-css': 2.11.0(@parcel/core@2.11.0) - '@parcel/packager-html': 2.11.0(@parcel/core@2.11.0) - '@parcel/packager-js': 2.11.0(@parcel/core@2.11.0) - '@parcel/packager-raw': 2.11.0(@parcel/core@2.11.0) - '@parcel/packager-svg': 2.11.0(@parcel/core@2.11.0) - '@parcel/packager-wasm': 2.11.0(@parcel/core@2.11.0) - '@parcel/reporter-dev-server': 2.11.0(@parcel/core@2.11.0) + '@parcel/optimizer-svgo': 2.11.0 + '@parcel/optimizer-swc': 2.11.0 + '@parcel/packager-css': 2.11.0 + '@parcel/packager-html': 2.11.0 + '@parcel/packager-js': 2.11.0 + '@parcel/packager-raw': 2.11.0 + '@parcel/packager-svg': 2.11.0 + '@parcel/packager-wasm': 2.11.0 + '@parcel/reporter-dev-server': 2.11.0 '@parcel/resolver-default': 2.11.0(@parcel/core@2.11.0) - '@parcel/runtime-browser-hmr': 2.11.0(@parcel/core@2.11.0) - '@parcel/runtime-js': 2.11.0(@parcel/core@2.11.0) - '@parcel/runtime-react-refresh': 2.11.0(@parcel/core@2.11.0) - '@parcel/runtime-service-worker': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-babel': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-css': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-html': 2.11.0(@parcel/core@2.11.0) + '@parcel/runtime-browser-hmr': 2.11.0 + '@parcel/runtime-js': 2.11.0 + '@parcel/runtime-react-refresh': 2.11.0 + '@parcel/runtime-service-worker': 2.11.0 + '@parcel/transformer-babel': 2.11.0 + '@parcel/transformer-css': 2.11.0 + '@parcel/transformer-html': 2.11.0 '@parcel/transformer-image': 2.11.0(@parcel/core@2.11.0) '@parcel/transformer-js': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-json': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-postcss': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-posthtml': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-raw': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-react-refresh-wrap': 2.11.0(@parcel/core@2.11.0) - '@parcel/transformer-svg': 2.11.0(@parcel/core@2.11.0) + '@parcel/transformer-json': 2.11.0 + '@parcel/transformer-postcss': 2.11.0 + '@parcel/transformer-posthtml': 2.11.0 + '@parcel/transformer-raw': 2.11.0 + '@parcel/transformer-react-refresh-wrap': 2.11.0 + '@parcel/transformer-svg': 2.11.0 transitivePeerDependencies: - '@swc/helpers' - cssnano @@ -404,11 +425,11 @@ packages: '@parcel/graph': 3.1.0 '@parcel/logger': 2.11.0 '@parcel/package-manager': 2.11.0(@parcel/core@2.11.0) - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/profiler': 2.11.0 '@parcel/rust': 2.11.0 '@parcel/source-map': 2.1.1 - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 '@parcel/workers': 2.11.0(@parcel/core@2.11.0) abortcontroller-polyfill: 1.7.5 @@ -444,7 +465,7 @@ packages: dependencies: '@parcel/core': 2.11.0 '@parcel/rust': 2.11.0 - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 '@parcel/watcher': 2.4.0 '@parcel/workers': 2.11.0(@parcel/core@2.11.0) @@ -472,12 +493,12 @@ packages: chalk: 4.1.2 dev: true - /@parcel/namer-default@2.11.0(@parcel/core@2.11.0): + /@parcel/namer-default@2.11.0: resolution: {integrity: sha512-DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -498,12 +519,12 @@ packages: - '@parcel/core' dev: true - /@parcel/optimizer-css@2.11.0(@parcel/core@2.11.0): + /@parcel/optimizer-css@2.11.0: resolution: {integrity: sha512-bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.11.0 browserslist: 4.22.2 @@ -513,11 +534,11 @@ packages: - '@parcel/core' dev: true - /@parcel/optimizer-htmlnano@2.11.0(@parcel/core@2.11.0)(typescript@5.3.3): + /@parcel/optimizer-htmlnano@2.11.0(typescript@5.3.3): resolution: {integrity: sha512-c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 htmlnano: 2.1.0(svgo@2.8.0)(typescript@5.3.3) nullthrows: 1.1.1 posthtml: 0.16.6 @@ -542,30 +563,30 @@ packages: dependencies: '@parcel/core': 2.11.0 '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 '@parcel/utils': 2.11.0 '@parcel/workers': 2.11.0(@parcel/core@2.11.0) dev: true - /@parcel/optimizer-svgo@2.11.0(@parcel/core@2.11.0): + /@parcel/optimizer-svgo@2.11.0: resolution: {integrity: sha512-TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 svgo: 2.8.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/optimizer-swc@2.11.0(@parcel/core@2.11.0): + /@parcel/optimizer-swc@2.11.0: resolution: {integrity: sha512-ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.11.0 '@swc/core': 1.3.103 @@ -586,18 +607,18 @@ packages: '@parcel/fs': 2.11.0(@parcel/core@2.11.0) '@parcel/logger': 2.11.0 '@parcel/node-resolver-core': 3.2.0(@parcel/core@2.11.0) - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 '@parcel/workers': 2.11.0(@parcel/core@2.11.0) semver: 7.5.4 dev: true - /@parcel/packager-css@2.11.0(@parcel/core@2.11.0): + /@parcel/packager-css@2.11.0: resolution: {integrity: sha512-AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 @@ -605,12 +626,12 @@ packages: - '@parcel/core' dev: true - /@parcel/packager-html@2.11.0(@parcel/core@2.11.0): + /@parcel/packager-html@2.11.0: resolution: {integrity: sha512-ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 posthtml: 0.16.6 @@ -618,15 +639,15 @@ packages: - '@parcel/core' dev: true - /@parcel/packager-js@2.11.0(@parcel/core@2.11.0): + /@parcel/packager-js@2.11.0: resolution: {integrity: sha512-SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 '@parcel/source-map': 2.1.1 - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 globals: 13.24.0 nullthrows: 1.1.1 @@ -634,41 +655,50 @@ packages: - '@parcel/core' dev: true - /@parcel/packager-raw@2.11.0(@parcel/core@2.11.0): + /@parcel/packager-raw@2.11.0: resolution: {integrity: sha512-2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/packager-svg@2.11.0(@parcel/core@2.11.0): + /@parcel/packager-svg@2.11.0: resolution: {integrity: sha512-2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 posthtml: 0.16.6 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/packager-wasm@2.11.0(@parcel/core@2.11.0): + /@parcel/packager-ts@2.11.0: + resolution: {integrity: sha512-j9TxAz65nHYo/c2aEwGcPUE2F6qOenr6vm1YR8jHnahrW9LEPXkZjSJA1i85Hs+ihAQKpSatMJzO5RojBgcevw==} + engines: {node: '>= 12.0.0', parcel: ^2.11.0} + dependencies: + '@parcel/plugin': 2.11.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/packager-wasm@2.11.0: resolution: {integrity: sha512-tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==} engines: {node: '>=12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/plugin@2.11.0(@parcel/core@2.11.0): + /@parcel/plugin@2.11.0: resolution: {integrity: sha512-9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==} engines: {node: '>= 12.0.0'} dependencies: - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/types': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true @@ -682,40 +712,36 @@ packages: chrome-trace-event: 1.0.3 dev: true - /@parcel/reporter-cli@2.11.0(@parcel/core@2.11.0): + /@parcel/reporter-cli@2.11.0: resolution: {integrity: sha512-hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 chalk: 4.1.2 cli-progress: 3.12.0 term-size: 2.2.1 - transitivePeerDependencies: - - '@parcel/core' dev: true - /@parcel/reporter-dev-server@2.11.0(@parcel/core@2.11.0): + /@parcel/reporter-dev-server@2.11.0: resolution: {integrity: sha512-T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/reporter-tracer@2.11.0(@parcel/core@2.11.0): + /@parcel/reporter-tracer@2.11.0: resolution: {integrity: sha512-33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 chrome-trace-event: 1.0.3 nullthrows: 1.1.1 - transitivePeerDependencies: - - '@parcel/core' dev: true /@parcel/resolver-default@2.11.0(@parcel/core@2.11.0): @@ -723,38 +749,38 @@ packages: engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/node-resolver-core': 3.2.0(@parcel/core@2.11.0) - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/runtime-browser-hmr@2.11.0(@parcel/core@2.11.0): + /@parcel/runtime-browser-hmr@2.11.0: resolution: {integrity: sha512-uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/runtime-js@2.11.0(@parcel/core@2.11.0): + /@parcel/runtime-js@2.11.0: resolution: {integrity: sha512-fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/runtime-react-refresh@2.11.0(@parcel/core@2.11.0): + /@parcel/runtime-react-refresh@2.11.0: resolution: {integrity: sha512-Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 react-error-overlay: 6.0.9 react-refresh: 0.9.0 @@ -762,11 +788,11 @@ packages: - '@parcel/core' dev: true - /@parcel/runtime-service-worker@2.11.0(@parcel/core@2.11.0): + /@parcel/runtime-service-worker@2.11.0: resolution: {integrity: sha512-c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 transitivePeerDependencies: @@ -785,12 +811,12 @@ packages: detect-libc: 1.0.3 dev: true - /@parcel/transformer-babel@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-babel@2.11.0: resolution: {integrity: sha512-WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.11.0 browserslist: 4.22.2 @@ -801,12 +827,12 @@ packages: - '@parcel/core' dev: true - /@parcel/transformer-css@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-css@2.11.0: resolution: {integrity: sha512-nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.11.0 browserslist: 4.22.2 @@ -816,12 +842,12 @@ packages: - '@parcel/core' dev: true - /@parcel/transformer-html@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-html@2.11.0: resolution: {integrity: sha512-90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 nullthrows: 1.1.1 posthtml: 0.16.6 @@ -840,7 +866,7 @@ packages: '@parcel/core': ^2.11.0 dependencies: '@parcel/core': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 '@parcel/workers': 2.11.0(@parcel/core@2.11.0) nullthrows: 1.1.1 @@ -854,7 +880,7 @@ packages: dependencies: '@parcel/core': 2.11.0 '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.11.0 @@ -866,22 +892,33 @@ packages: semver: 7.5.4 dev: true - /@parcel/transformer-json@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-json@2.11.0: resolution: {integrity: sha512-Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 json5: 2.2.3 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/transformer-postcss@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-less@2.11.0: + resolution: {integrity: sha512-6mPGUFYp70dowY5LUz6Q03xxMhj2zwjRmmPWNPtu730M0wPFZFjq+ROPLDWQMMQHgiW5A8DiXK14H5LPabutRA==} + engines: {node: '>= 12.0.0', parcel: ^2.11.0} + dependencies: + '@parcel/plugin': 2.11.0 + '@parcel/source-map': 2.1.1 + less: 4.2.0 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-postcss@2.11.0: resolution: {integrity: sha512-Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 '@parcel/utils': 2.11.0 clone: 2.1.2 @@ -892,11 +929,11 @@ packages: - '@parcel/core' dev: true - /@parcel/transformer-posthtml@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-posthtml@2.11.0: resolution: {integrity: sha512-dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 posthtml: 0.16.6 @@ -907,32 +944,32 @@ packages: - '@parcel/core' dev: true - /@parcel/transformer-raw@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-raw@2.11.0: resolution: {integrity: sha512-2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/transformer-react-refresh-wrap@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-react-refresh-wrap@2.11.0: resolution: {integrity: sha512-6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/utils': 2.11.0 react-refresh: 0.9.0 transitivePeerDependencies: - '@parcel/core' dev: true - /@parcel/transformer-svg@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-svg@2.11.0: resolution: {integrity: sha512-GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==} engines: {node: '>= 12.0.0', parcel: ^2.11.0} dependencies: '@parcel/diagnostic': 2.11.0 - '@parcel/plugin': 2.11.0(@parcel/core@2.11.0) + '@parcel/plugin': 2.11.0 '@parcel/rust': 2.11.0 nullthrows: 1.1.1 posthtml: 0.16.6 @@ -943,7 +980,48 @@ packages: - '@parcel/core' dev: true - /@parcel/types@2.11.0(@parcel/core@2.11.0): + /@parcel/transformer-typescript-tsc@2.11.0(typescript@5.3.3): + resolution: {integrity: sha512-ELDYqWGCaBv9GqrFmSQxBbdZIUN/LkkUfSAgf0OPFpM2XEEsAqeJdXxwvwkucxR7MkIfpsnCIPRKlILmALlwrQ==} + engines: {node: '>= 12.0.0', parcel: ^2.11.0} + peerDependencies: + typescript: '>=3.0.0' + dependencies: + '@parcel/plugin': 2.11.0 + '@parcel/source-map': 2.1.1 + '@parcel/ts-utils': 2.11.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/transformer-typescript-types@2.11.0(typescript@5.3.3): + resolution: {integrity: sha512-d9iTDMtFyAZkqxMGguBNGD6q9QKvLd0deUs7Ax8jdhYMjxwAEGU48mg8vjPjumItgA/2mD4ptMJjQB25mtetfA==} + engines: {node: '>= 12.0.0', parcel: ^2.11.0} + peerDependencies: + typescript: '>=3.0.0' + dependencies: + '@parcel/diagnostic': 2.11.0 + '@parcel/plugin': 2.11.0 + '@parcel/source-map': 2.1.1 + '@parcel/ts-utils': 2.11.0(typescript@5.3.3) + '@parcel/utils': 2.11.0 + nullthrows: 1.1.1 + typescript: 5.3.3 + transitivePeerDependencies: + - '@parcel/core' + dev: true + + /@parcel/ts-utils@2.11.0(typescript@5.3.3): + resolution: {integrity: sha512-przIVpyuyAk1enpbbjVxn146dY25L1qcD/qU5HOCK8oH3ddQ0n1RgpXT9HKVpqteOnQIHDupUrZLArK6aqEnwA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + typescript: '>=3.0.0' + dependencies: + nullthrows: 1.1.1 + typescript: 5.3.3 + dev: true + + /@parcel/types@2.11.0: resolution: {integrity: sha512-lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==} dependencies: '@parcel/cache': 2.11.0(@parcel/core@2.11.0) @@ -1112,7 +1190,7 @@ packages: '@parcel/diagnostic': 2.11.0 '@parcel/logger': 2.11.0 '@parcel/profiler': 2.11.0 - '@parcel/types': 2.11.0(@parcel/core@2.11.0) + '@parcel/types': 2.11.0 '@parcel/utils': 2.11.0 nullthrows: 1.1.1 dev: true @@ -1254,10 +1332,47 @@ packages: engines: {node: '>=10.13.0'} dev: true + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + /@types/prismjs@1.26.3: resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} dev: true + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 + debug: 4.3.4 + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1287,6 +1402,26 @@ packages: '@typescript-eslint/visitor-keys': 6.19.0 dev: true + /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@6.19.0: resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1314,6 +1449,25 @@ packages: - supports-color dev: true + /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + eslint: 8.56.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@6.19.0: resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1556,6 +1710,12 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -1754,6 +1914,15 @@ packages: engines: {node: '>=0.12'} dev: true + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -2037,6 +2206,12 @@ packages: slash: 3.0.0 dev: true + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + requiresBuild: true + dev: true + optional: true + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -2108,6 +2283,15 @@ packages: hasBin: true dev: true + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + safer-buffer: 2.1.2 + dev: true + optional: true + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true @@ -2117,6 +2301,14 @@ packages: engines: {node: '>= 4'} dev: true + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -2207,6 +2399,10 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + /is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -2279,6 +2475,24 @@ packages: - typescript dev: false + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + dev: true + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2477,6 +2691,16 @@ packages: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + dev: true + optional: true + /marked@11.1.1: resolution: {integrity: sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==} engines: {node: '>= 18'} @@ -2515,6 +2739,14 @@ packages: picomatch: 2.3.1 dev: true + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + dev: true + optional: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -2572,6 +2804,17 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.3.0 + dev: true + optional: true + /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} dev: true @@ -2702,9 +2945,9 @@ packages: '@parcel/fs': 2.11.0(@parcel/core@2.11.0) '@parcel/logger': 2.11.0 '@parcel/package-manager': 2.11.0(@parcel/core@2.11.0) - '@parcel/reporter-cli': 2.11.0(@parcel/core@2.11.0) - '@parcel/reporter-dev-server': 2.11.0(@parcel/core@2.11.0) - '@parcel/reporter-tracer': 2.11.0(@parcel/core@2.11.0) + '@parcel/reporter-cli': 2.11.0 + '@parcel/reporter-dev-server': 2.11.0 + '@parcel/reporter-tracer': 2.11.0 '@parcel/utils': 2.11.0 chalk: 4.1.2 commander: 7.2.0 @@ -2738,6 +2981,11 @@ packages: lines-and-columns: 1.2.4 dev: true + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2783,6 +3031,13 @@ packages: hasBin: true dev: true + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true + dev: true + optional: true + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true @@ -2832,6 +3087,12 @@ packages: engines: {node: '>=6'} dev: false + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + dev: true + optional: true + /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -2917,6 +3178,25 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + requiresBuild: true + dev: true + optional: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + requiresBuild: true + dev: true + optional: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + requiresBuild: true + dev: true + optional: true + /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -3162,6 +3442,14 @@ packages: engines: {node: '>=14.16'} dev: true + /typedoc-plugin-mdn-links@3.1.12(typedoc@0.25.7): + resolution: {integrity: sha512-B6GLXAq2kL7crem0uJYAN7uMmbBZdf+znUanwk/u6gQQFKveUSzCZrtO9pb0ZIe2uCv1T60XDfcO+bTm7R18aw==} + peerDependencies: + typedoc: '>= 0.23.14 || 0.24.x || 0.25.x' + dependencies: + typedoc: 0.25.7(typescript@5.3.3) + dev: true + /typedoc@0.25.7(typescript@5.3.3): resolution: {integrity: sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==} engines: {node: '>= 16'} diff --git a/source/CommandLine.tsx b/source/CommandLine.tsx index 8c88aec..269b7d7 100644 --- a/source/CommandLine.tsx +++ b/source/CommandLine.tsx @@ -1,12 +1,14 @@ import { observable } from 'mobx'; import { WebCellProps, attribute, component, observer } from 'web-cell'; -@component({ - tagName: 'command-line' -}) +export interface CommandLineProps extends WebCellProps { + text: string; +} + +@component({ tagName: 'command-line' }) @observer export class CommandLine extends HTMLElement { - declare props: WebCellProps; + declare props: CommandLineProps; @attribute @observable @@ -16,9 +18,9 @@ export class CommandLine extends HTMLElement { @observable accessor shownIndex = 0; - get text() { - return this.children.join('').trim(); - } + @attribute + @observable + accessor text = ''; connectedCallback() { this.classList.add( @@ -44,7 +46,7 @@ export class CommandLine extends HTMLElement { if (!text) return; - let { shownIndex } = this; + const { shownIndex } = this; this.shownIndex++; @@ -70,12 +72,12 @@ export class CommandLine extends HTMLElement { return ( <> - $ + $ {text.slice(0, shownIndex)} -