@untemps/react-vocal 1.7.37 → 2.0.0-beta.10
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.
- package/CHANGELOG.md +98 -2
- package/README.md +72 -31
- package/dist/index.es.js +567 -2
- package/dist/index.js +7 -2
- package/package.json +39 -65
- package/.github/workflows/publish.yml +0 -30
- package/.prettierignore +0 -2
- package/.prettierrc +0 -29
- package/CLAUDE.md +0 -55
- package/assets/icon-idle.png +0 -0
- package/assets/icon-listening.png +0 -0
- package/assets/microphone.png +0 -0
- package/assets/react-vocal.png +0 -0
- package/babel.config.js +0 -12
- package/commitlint.config.js +0 -7
- package/dev/babel.config.js +0 -4
- package/dev/package.json +0 -14
- package/dev/public/index.html +0 -24
- package/dev/rollup.config.js +0 -29
- package/dev/src/index.js +0 -46
- package/dev/yarn.lock +0 -201
- package/dist/index.umd.js +0 -2
- package/jest/jest.setup.js +0 -72
- package/rollup.config.js +0 -42
- package/src/components/Icon.js +0 -37
- package/src/components/Vocal.js +0 -235
- package/src/components/__tests__/Icon.test.js +0 -42
- package/src/components/__tests__/Vocal.test.js +0 -273
- package/src/components/__tests__/VocalWithMockedUseVocal.test.js +0 -40
- package/src/hooks/__tests__/useCommands.test.js +0 -64
- package/src/hooks/__tests__/useTimeout.test.js +0 -69
- package/src/hooks/__tests__/useVocal.test.js +0 -197
- package/src/hooks/useCommands.js +0 -21
- package/src/hooks/useTimeout.js +0 -23
- package/src/hooks/useVocal.js +0 -58
- package/src/index.js +0 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@untemps/react-vocal",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta.10",
|
|
4
4
|
"author": "Vincent Le Badezet <v.lebadezet@untemps.net>",
|
|
5
5
|
"repository": "git@github.com:untemps/react-vocal.git",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,71 +20,51 @@
|
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public"
|
|
22
22
|
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist/index.js",
|
|
25
|
+
"dist/index.es.js",
|
|
26
|
+
"CHANGELOG.md"
|
|
27
|
+
],
|
|
23
28
|
"main": "dist/index.js",
|
|
24
29
|
"module": "dist/index.es.js",
|
|
25
30
|
"engines": {
|
|
26
|
-
"node": "
|
|
31
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
27
32
|
},
|
|
28
33
|
"devDependencies": {
|
|
29
|
-
"@
|
|
30
|
-
"
|
|
31
|
-
"@
|
|
32
|
-
"@babel/plugin-transform-react-jsx": "^7.12.12",
|
|
33
|
-
"@babel/plugin-transform-runtime": "^7.12.10",
|
|
34
|
-
"@babel/preset-env": "^7.12.11",
|
|
35
|
-
"@babel/preset-react": "^7.12.10",
|
|
36
|
-
"@commitlint/cli": "^9.1.1",
|
|
37
|
-
"@commitlint/config-conventional": "^9.1.1",
|
|
38
|
-
"@rollup/plugin-babel": "^5.2.2",
|
|
39
|
-
"@rollup/plugin-commonjs": "^17.0.0",
|
|
40
|
-
"@rollup/plugin-node-resolve": "^11.0.1",
|
|
34
|
+
"@commitlint/cli": "^20.5.3",
|
|
35
|
+
"fuse.js": "^7.3.0",
|
|
36
|
+
"@commitlint/config-conventional": "^20.5.3",
|
|
41
37
|
"@semantic-release/changelog": "^6.0.3",
|
|
42
38
|
"@semantic-release/git": "^10.0.1",
|
|
43
39
|
"@semantic-release/github": "^12.0.6",
|
|
44
|
-
"@testing-library/dom": "^
|
|
45
|
-
"@testing-library/jest-dom": "^
|
|
46
|
-
"@testing-library/react": "^
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"react-test-renderer": "^17.0.1",
|
|
59
|
-
"rimraf": "^3.0.2",
|
|
60
|
-
"rollup": "^2.35.1",
|
|
61
|
-
"rollup-plugin-sizes": "^1.0.4",
|
|
62
|
-
"rollup-plugin-terser": "^7.0.2",
|
|
63
|
-
"rollup-plugin-visualizer": "^5.14.0",
|
|
64
|
-
"semantic-release": "^25.0.3"
|
|
40
|
+
"@testing-library/dom": "^10.4.1",
|
|
41
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
42
|
+
"@testing-library/react": "^16.3.2",
|
|
43
|
+
"@untemps/utils": "^3.2.0",
|
|
44
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
45
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
46
|
+
"husky": "^9.1.7",
|
|
47
|
+
"jsdom": "^29.1.1",
|
|
48
|
+
"prettier": "^3.8.3",
|
|
49
|
+
"react": "^19.2.5",
|
|
50
|
+
"react-dom": "^19.2.5",
|
|
51
|
+
"semantic-release": "^25.0.3",
|
|
52
|
+
"vite": "^8.0.10",
|
|
53
|
+
"vitest": "^4.1.5"
|
|
65
54
|
},
|
|
66
55
|
"peerDependencies": {
|
|
67
|
-
"
|
|
68
|
-
"react
|
|
69
|
-
|
|
70
|
-
"dependencies": {
|
|
71
|
-
"@untemps/vocal": "^1.3.0",
|
|
72
|
-
"fuse.js": "^6.4.6"
|
|
73
|
-
},
|
|
74
|
-
"jest": {
|
|
75
|
-
"coverageDirectory": "./coverage/",
|
|
76
|
-
"collectCoverage": true,
|
|
77
|
-
"setupFilesAfterEnv": [
|
|
78
|
-
"<rootDir>/jest/jest.setup.js"
|
|
79
|
-
],
|
|
80
|
-
"restoreMocks": true
|
|
56
|
+
"fuse.js": ">=6.0.0",
|
|
57
|
+
"react": ">=16.13.1",
|
|
58
|
+
"react-dom": ">=16.13.1"
|
|
81
59
|
},
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
60
|
+
"peerDependenciesMeta": {
|
|
61
|
+
"fuse.js": {
|
|
62
|
+
"optional": true
|
|
86
63
|
}
|
|
87
64
|
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@untemps/vocal": "^2.0.1"
|
|
67
|
+
},
|
|
88
68
|
"release": {
|
|
89
69
|
"branches": [
|
|
90
70
|
"main",
|
|
@@ -120,10 +100,6 @@
|
|
|
120
100
|
{
|
|
121
101
|
"path": "dist/index.es.js",
|
|
122
102
|
"label": "ES distribution"
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"path": "dist/index.umd.js",
|
|
126
|
-
"label": "UMD distribution"
|
|
127
103
|
}
|
|
128
104
|
]
|
|
129
105
|
}
|
|
@@ -131,13 +107,11 @@
|
|
|
131
107
|
]
|
|
132
108
|
},
|
|
133
109
|
"scripts": {
|
|
134
|
-
"dev": "cd dev &&
|
|
135
|
-
"test": "
|
|
136
|
-
"test:ci": "
|
|
137
|
-
"build": "
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"build:umd": "cross-env NODE_ENV=production BABEL_ENV=umd rollup -c",
|
|
141
|
-
"prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write && git add . && git status"
|
|
110
|
+
"dev": "cd dev && yarn && yarn dev",
|
|
111
|
+
"test": "vitest",
|
|
112
|
+
"test:ci": "vitest run --coverage",
|
|
113
|
+
"build": "vite build",
|
|
114
|
+
"prepare": "husky",
|
|
115
|
+
"prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write && git add -u && git status"
|
|
142
116
|
}
|
|
143
117
|
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
name: "Publish package"
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
branches:
|
|
5
|
-
- main
|
|
6
|
-
- beta
|
|
7
|
-
permissions:
|
|
8
|
-
contents: write
|
|
9
|
-
id-token: write
|
|
10
|
-
pull-requests: write
|
|
11
|
-
issues: write
|
|
12
|
-
jobs:
|
|
13
|
-
release:
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- uses: actions/checkout@v6
|
|
17
|
-
with:
|
|
18
|
-
fetch-depth: 0
|
|
19
|
-
- uses: actions/setup-node@v6
|
|
20
|
-
with:
|
|
21
|
-
node-version: '24'
|
|
22
|
-
- run: yarn install --frozen-lockfile
|
|
23
|
-
- run: yarn test:ci
|
|
24
|
-
- run: yarn build
|
|
25
|
-
- run: npx semantic-release
|
|
26
|
-
env:
|
|
27
|
-
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
28
|
-
- uses: codecov/codecov-action@v5
|
|
29
|
-
with:
|
|
30
|
-
files: coverage/lcov.info
|
package/.prettierignore
DELETED
package/.prettierrc
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"printWidth": 120,
|
|
3
|
-
"useTabs": true,
|
|
4
|
-
"tabWidth": 4,
|
|
5
|
-
"singleQuote": true,
|
|
6
|
-
"semi": false,
|
|
7
|
-
"trailingComma": "es5",
|
|
8
|
-
"bracketSpacing": true,
|
|
9
|
-
"overrides": [
|
|
10
|
-
{
|
|
11
|
-
"files": "./**/*.js",
|
|
12
|
-
"options": {
|
|
13
|
-
"parser": "babylon"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"files": "./**/*.json",
|
|
18
|
-
"options": {
|
|
19
|
-
"parser": "json"
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"files": ".prettierrc",
|
|
24
|
-
"options": {
|
|
25
|
-
"parser": "json"
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
package/CLAUDE.md
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Commands
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
yarn test # watch mode
|
|
9
|
-
yarn test:ci # CI mode with coverage (also runs in pre-commit hook)
|
|
10
|
-
yarn build # build CJS + ES + UMD to dist/
|
|
11
|
-
yarn dev # dev server at http://localhost:10001/ (separate dev/ package)
|
|
12
|
-
yarn prettier # format all JS files and stage changes
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Run a single test file:
|
|
16
|
-
```bash
|
|
17
|
-
yarn jest src/hooks/__tests__/useVocal.test.js
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Build formats are driven by `BABEL_ENV`: `cjs` → `dist/index.js`, `es` → `dist/index.es.js`, `umd` → `dist/index.umd.js`.
|
|
21
|
-
|
|
22
|
-
## Architecture
|
|
23
|
-
|
|
24
|
-
This is a React library wrapping the [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API) via `@untemps/vocal` (the `SpeechRecognitionWrapper` class).
|
|
25
|
-
|
|
26
|
-
### Public API (`src/index.js`)
|
|
27
|
-
|
|
28
|
-
- **`Vocal`** (default export) — the component
|
|
29
|
-
- **`useVocal`** — named export, the hook
|
|
30
|
-
- **`isSupported`** — boolean re-exported from `@untemps/vocal`
|
|
31
|
-
|
|
32
|
-
### Hook layer (`src/hooks/`)
|
|
33
|
-
|
|
34
|
-
| Hook | Role |
|
|
35
|
-
|------|------|
|
|
36
|
-
| `useVocal` | Creates/manages a `SpeechRecognitionWrapper` instance in a ref. Returns `[ref, { start, stop, abort, subscribe, unsubscribe, clean }]`. Instance is re-created when `lang` or `grammars` change. |
|
|
37
|
-
| `useCommands` | Fuzzy-matches a speech result string against a `commands` map using **fuse.js** (default score threshold `0.4` — lower = stricter). Keys are lowercased. |
|
|
38
|
-
| `useTimeout` | Manages the recognition timeout: starts on `start` event, pauses on `speechstart`, restarts on `speechend`, fires `_onEnd` on expiry. |
|
|
39
|
-
|
|
40
|
-
### Component (`src/components/Vocal.js`)
|
|
41
|
-
|
|
42
|
-
Composes the three hooks above. Three render modes depending on `children`:
|
|
43
|
-
- **function** `(start, stop, isStarted) => element` — full control
|
|
44
|
-
- **React element** — receives `onClick` injected via `cloneElement`
|
|
45
|
-
- **no children** — renders the default `<Icon>` button
|
|
46
|
-
|
|
47
|
-
The `__rsInstance` prop (undocumented) injects a custom `SpeechRecognitionWrapper` instance, used exclusively in tests.
|
|
48
|
-
|
|
49
|
-
### Testing
|
|
50
|
-
|
|
51
|
-
`jest/jest.setup.js` globally mocks `SpeechRecognition`, `Permissions`, `MediaDevices`, and `SpeechGrammarList`. The mock exposes a custom `say(sentence)` method that fires the full `speechstart → result/nomatch → speechend` event sequence synchronously — use it to simulate recognition in tests.
|
|
52
|
-
|
|
53
|
-
## Commit convention
|
|
54
|
-
|
|
55
|
-
Angular Conventional Commits (`feat`, `fix`, `chore`, `docs`, etc.). Enforced by commitlint on `commit-msg` hook.
|
package/assets/icon-idle.png
DELETED
|
Binary file
|
|
Binary file
|
package/assets/microphone.png
DELETED
|
Binary file
|
package/assets/react-vocal.png
DELETED
|
Binary file
|
package/babel.config.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
module.exports = api => ({
|
|
2
|
-
"presets": [
|
|
3
|
-
"@babel/preset-env",
|
|
4
|
-
"@babel/preset-react"
|
|
5
|
-
],
|
|
6
|
-
"plugins": [
|
|
7
|
-
"@babel/plugin-proposal-class-properties",
|
|
8
|
-
"@babel/plugin-transform-react-jsx",
|
|
9
|
-
...(api.env('test') ? ["@babel/plugin-transform-runtime"] : [])
|
|
10
|
-
]
|
|
11
|
-
})
|
|
12
|
-
|
package/commitlint.config.js
DELETED
package/dev/babel.config.js
DELETED
package/dev/package.json
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "react-vocal-demo",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"main": "index.js",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"devDependencies": {
|
|
7
|
-
"@rollup/plugin-replace": "^2.3.3",
|
|
8
|
-
"rollup-plugin-livereload": "^2.0.0",
|
|
9
|
-
"rollup-plugin-serve": "^1.0.4"
|
|
10
|
-
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"start": "rollup -c -w"
|
|
13
|
-
}
|
|
14
|
-
}
|
package/dev/public/index.html
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<meta name="theme-color" content="#000000" />
|
|
7
|
-
<meta name="description" content="Web site created using create-react-app" />
|
|
8
|
-
<title>react-vocal</title>
|
|
9
|
-
<script src="./index.js" type="module"></script>
|
|
10
|
-
<style>
|
|
11
|
-
* {
|
|
12
|
-
font-family: Arial,sans-serif;
|
|
13
|
-
font-size: 12px;
|
|
14
|
-
}
|
|
15
|
-
body {
|
|
16
|
-
padding: 32px;
|
|
17
|
-
}
|
|
18
|
-
</style>
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
22
|
-
<div id="root"></div>
|
|
23
|
-
</body>
|
|
24
|
-
</html>
|
package/dev/rollup.config.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import babel from '@rollup/plugin-babel'
|
|
2
|
-
import resolve from '@rollup/plugin-node-resolve'
|
|
3
|
-
import replace from '@rollup/plugin-replace'
|
|
4
|
-
import serve from 'rollup-plugin-serve'
|
|
5
|
-
import livereload from 'rollup-plugin-livereload'
|
|
6
|
-
import commonjs from '@rollup/plugin-commonjs'
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
input: 'src/index.js',
|
|
10
|
-
output: {
|
|
11
|
-
file: 'dist/index.js',
|
|
12
|
-
},
|
|
13
|
-
plugins: [
|
|
14
|
-
replace({
|
|
15
|
-
'process.env.NODE_ENV': JSON.stringify('development'),
|
|
16
|
-
}),
|
|
17
|
-
babel({
|
|
18
|
-
exclude: 'node_modules/**',
|
|
19
|
-
babelHelpers: 'bundled',
|
|
20
|
-
}),
|
|
21
|
-
resolve(),
|
|
22
|
-
commonjs(),
|
|
23
|
-
serve({
|
|
24
|
-
open: true,
|
|
25
|
-
contentBase: ['dist', 'public'],
|
|
26
|
-
}),
|
|
27
|
-
livereload(),
|
|
28
|
-
],
|
|
29
|
-
}
|
package/dev/src/index.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import 'regenerator-runtime/runtime'
|
|
2
|
-
import React, { useState } from 'react'
|
|
3
|
-
import ReactDOM from 'react-dom'
|
|
4
|
-
|
|
5
|
-
import Vocal from '../../src'
|
|
6
|
-
|
|
7
|
-
const App = () => {
|
|
8
|
-
const [logs, setLogs] = useState('')
|
|
9
|
-
const [borderColor, setBorderColor] = useState()
|
|
10
|
-
|
|
11
|
-
const _log = (value) => setLogs((logs) => `${logs}${logs.length > 0 ? '\n' : ''} ----- ${value}`)
|
|
12
|
-
|
|
13
|
-
const _onVocalStart = () => {
|
|
14
|
-
_log('start')
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const _onVocalEnd = () => {
|
|
18
|
-
_log(`end`)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const _onVocalResult = (result) => {
|
|
22
|
-
_log(`result: "${result}"`)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const _onVocalError = (e) => {
|
|
26
|
-
_log(e.message)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<>
|
|
31
|
-
<Vocal
|
|
32
|
-
lang="fr"
|
|
33
|
-
commands={{
|
|
34
|
-
'Change la bordure en rouge': () => setBorderColor('red'),
|
|
35
|
-
}}
|
|
36
|
-
onStart={_onVocalStart}
|
|
37
|
-
onEnd={_onVocalEnd}
|
|
38
|
-
onResult={_onVocalResult}
|
|
39
|
-
onError={_onVocalError}
|
|
40
|
-
/>
|
|
41
|
-
<textarea value={logs} rows={30} disabled style={{ width: '100%', marginTop: 16, borderColor }} />
|
|
42
|
-
</>
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
ReactDOM.render(<App />, document.getElementById('root'))
|
package/dev/yarn.lock
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
2
|
-
# yarn lockfile v1
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
"@rollup/plugin-replace@^2.3.3":
|
|
6
|
-
version "2.3.3"
|
|
7
|
-
resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.3.3.tgz#cd6bae39444de119f5d905322b91ebd4078562e7"
|
|
8
|
-
integrity sha512-XPmVXZ7IlaoWaJLkSCDaa0Y6uVo5XQYHhiMFzOd5qSv5rE+t/UJToPIOE56flKIxBFQI27ONsxb7dqHnwSsjKQ==
|
|
9
|
-
dependencies:
|
|
10
|
-
"@rollup/pluginutils" "^3.0.8"
|
|
11
|
-
magic-string "^0.25.5"
|
|
12
|
-
|
|
13
|
-
"@rollup/pluginutils@^3.0.8":
|
|
14
|
-
version "3.1.0"
|
|
15
|
-
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
|
|
16
|
-
integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
|
|
17
|
-
dependencies:
|
|
18
|
-
"@types/estree" "0.0.39"
|
|
19
|
-
estree-walker "^1.0.1"
|
|
20
|
-
picomatch "^2.2.2"
|
|
21
|
-
|
|
22
|
-
"@types/estree@0.0.39":
|
|
23
|
-
version "0.0.39"
|
|
24
|
-
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
|
|
25
|
-
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
|
|
26
|
-
|
|
27
|
-
anymatch@~3.1.1:
|
|
28
|
-
version "3.1.1"
|
|
29
|
-
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
|
|
30
|
-
integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
|
|
31
|
-
dependencies:
|
|
32
|
-
normalize-path "^3.0.0"
|
|
33
|
-
picomatch "^2.0.4"
|
|
34
|
-
|
|
35
|
-
async-limiter@~1.0.0:
|
|
36
|
-
version "1.0.1"
|
|
37
|
-
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
|
|
38
|
-
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
|
|
39
|
-
|
|
40
|
-
binary-extensions@^2.0.0:
|
|
41
|
-
version "2.1.0"
|
|
42
|
-
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9"
|
|
43
|
-
integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
|
|
44
|
-
|
|
45
|
-
braces@~3.0.2:
|
|
46
|
-
version "3.0.3"
|
|
47
|
-
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
|
48
|
-
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
|
49
|
-
dependencies:
|
|
50
|
-
fill-range "^7.1.1"
|
|
51
|
-
|
|
52
|
-
chokidar@^3.3.0:
|
|
53
|
-
version "3.4.2"
|
|
54
|
-
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
|
|
55
|
-
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
|
|
56
|
-
dependencies:
|
|
57
|
-
anymatch "~3.1.1"
|
|
58
|
-
braces "~3.0.2"
|
|
59
|
-
glob-parent "~5.1.0"
|
|
60
|
-
is-binary-path "~2.1.0"
|
|
61
|
-
is-glob "~4.0.1"
|
|
62
|
-
normalize-path "~3.0.0"
|
|
63
|
-
readdirp "~3.4.0"
|
|
64
|
-
optionalDependencies:
|
|
65
|
-
fsevents "~2.1.2"
|
|
66
|
-
|
|
67
|
-
estree-walker@^1.0.1:
|
|
68
|
-
version "1.0.1"
|
|
69
|
-
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
|
|
70
|
-
integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
|
|
71
|
-
|
|
72
|
-
fill-range@^7.1.1:
|
|
73
|
-
version "7.1.1"
|
|
74
|
-
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
|
75
|
-
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
|
76
|
-
dependencies:
|
|
77
|
-
to-regex-range "^5.0.1"
|
|
78
|
-
|
|
79
|
-
fsevents@~2.1.2:
|
|
80
|
-
version "2.1.3"
|
|
81
|
-
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
|
|
82
|
-
integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
|
|
83
|
-
|
|
84
|
-
glob-parent@~5.1.0:
|
|
85
|
-
version "5.1.2"
|
|
86
|
-
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
|
87
|
-
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
|
88
|
-
dependencies:
|
|
89
|
-
is-glob "^4.0.1"
|
|
90
|
-
|
|
91
|
-
is-binary-path@~2.1.0:
|
|
92
|
-
version "2.1.0"
|
|
93
|
-
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
|
94
|
-
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
|
95
|
-
dependencies:
|
|
96
|
-
binary-extensions "^2.0.0"
|
|
97
|
-
|
|
98
|
-
is-extglob@^2.1.1:
|
|
99
|
-
version "2.1.1"
|
|
100
|
-
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
|
101
|
-
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
|
|
102
|
-
|
|
103
|
-
is-glob@^4.0.1, is-glob@~4.0.1:
|
|
104
|
-
version "4.0.1"
|
|
105
|
-
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
|
|
106
|
-
integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
|
|
107
|
-
dependencies:
|
|
108
|
-
is-extglob "^2.1.1"
|
|
109
|
-
|
|
110
|
-
is-number@^7.0.0:
|
|
111
|
-
version "7.0.0"
|
|
112
|
-
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
|
113
|
-
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
|
114
|
-
|
|
115
|
-
livereload-js@^3.1.0:
|
|
116
|
-
version "3.3.1"
|
|
117
|
-
resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.3.1.tgz#61f887468086762e61fb2987412cf9d1dda99202"
|
|
118
|
-
integrity sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ==
|
|
119
|
-
|
|
120
|
-
livereload@^0.9.1:
|
|
121
|
-
version "0.9.1"
|
|
122
|
-
resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.1.tgz#65125dabdf2db4fd3f1169e953fe56e3bcc6f477"
|
|
123
|
-
integrity sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==
|
|
124
|
-
dependencies:
|
|
125
|
-
chokidar "^3.3.0"
|
|
126
|
-
livereload-js "^3.1.0"
|
|
127
|
-
opts ">= 1.2.0"
|
|
128
|
-
ws "^6.2.1"
|
|
129
|
-
|
|
130
|
-
magic-string@^0.25.5:
|
|
131
|
-
version "0.25.7"
|
|
132
|
-
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
|
|
133
|
-
integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
|
|
134
|
-
dependencies:
|
|
135
|
-
sourcemap-codec "^1.4.4"
|
|
136
|
-
|
|
137
|
-
mime@>=2.4.6:
|
|
138
|
-
version "2.4.6"
|
|
139
|
-
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
|
|
140
|
-
integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
|
|
141
|
-
|
|
142
|
-
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
|
143
|
-
version "3.0.0"
|
|
144
|
-
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
|
145
|
-
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
|
146
|
-
|
|
147
|
-
opener@1:
|
|
148
|
-
version "1.5.2"
|
|
149
|
-
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
|
|
150
|
-
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
|
|
151
|
-
|
|
152
|
-
"opts@>= 1.2.0":
|
|
153
|
-
version "2.0.2"
|
|
154
|
-
resolved "https://registry.yarnpkg.com/opts/-/opts-2.0.2.tgz#a17e189fbbfee171da559edd8a42423bc5993ce1"
|
|
155
|
-
integrity sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==
|
|
156
|
-
|
|
157
|
-
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2:
|
|
158
|
-
version "2.3.2"
|
|
159
|
-
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
|
|
160
|
-
integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
|
|
161
|
-
|
|
162
|
-
readdirp@~3.4.0:
|
|
163
|
-
version "3.4.0"
|
|
164
|
-
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
|
|
165
|
-
integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
|
|
166
|
-
dependencies:
|
|
167
|
-
picomatch "^2.2.1"
|
|
168
|
-
|
|
169
|
-
rollup-plugin-livereload@^2.0.0:
|
|
170
|
-
version "2.0.0"
|
|
171
|
-
resolved "https://registry.yarnpkg.com/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.0.tgz#d3928d74e8cf2ae4286c5dd46b770fd3f3b82313"
|
|
172
|
-
integrity sha512-oC/8NqumGYuphkqrfszOHUUIwzKsaHBICw6QRwT5uD07gvePTS+HW+GFwu6f9K8W02CUuTvtIM9AWJrbj4wE1A==
|
|
173
|
-
dependencies:
|
|
174
|
-
livereload "^0.9.1"
|
|
175
|
-
|
|
176
|
-
rollup-plugin-serve@^1.0.4:
|
|
177
|
-
version "1.0.4"
|
|
178
|
-
resolved "https://registry.yarnpkg.com/rollup-plugin-serve/-/rollup-plugin-serve-1.0.4.tgz#17665974185f9007ecaeb0835c4e89612e04d234"
|
|
179
|
-
integrity sha512-74Gh47+dGKhmy04MIu9deXwn8VGlWsk93HcGIbO+NCdZ9roRXVO7y4l/9MLAAujuYpzsWCopHHZT8/6PSRzGLg==
|
|
180
|
-
dependencies:
|
|
181
|
-
mime ">=2.4.6"
|
|
182
|
-
opener "1"
|
|
183
|
-
|
|
184
|
-
sourcemap-codec@^1.4.4:
|
|
185
|
-
version "1.4.8"
|
|
186
|
-
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
|
|
187
|
-
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
|
|
188
|
-
|
|
189
|
-
to-regex-range@^5.0.1:
|
|
190
|
-
version "5.0.1"
|
|
191
|
-
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
|
192
|
-
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
|
193
|
-
dependencies:
|
|
194
|
-
is-number "^7.0.0"
|
|
195
|
-
|
|
196
|
-
ws@^6.2.1:
|
|
197
|
-
version "6.2.2"
|
|
198
|
-
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
|
|
199
|
-
integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
|
|
200
|
-
dependencies:
|
|
201
|
-
async-limiter "~1.0.0"
|