Created a simple test page where I'll implement the recorder for the speaking module

This commit is contained in:
Tiago Ribeiro
2023-06-14 14:37:12 +01:00
parent 31e2e56833
commit 31f2eb510e
4 changed files with 146 additions and 574 deletions

311
.pnp.cjs generated
View File

@@ -60,8 +60,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["react-firebase-hooks", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:5.1.1"],\ ["react-firebase-hooks", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:5.1.1"],\
["react-icons", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:4.8.0"],\ ["react-icons", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:4.8.0"],\
["react-lineto", "npm:3.3.0"],\ ["react-lineto", "npm:3.3.0"],\
["react-media-recorder", "npm:1.6.6"],\ ["react-media-recorder", "npm:1.6.5"],\
["react-mic", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:12.4.6"],\
["react-player", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:2.12.0"],\ ["react-player", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:2.12.0"],\
["react-string-replace", "npm:1.1.0"],\ ["react-string-replace", "npm:1.1.0"],\
["react-toastify", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:9.1.2"],\ ["react-toastify", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:9.1.2"],\
@@ -2396,17 +2395,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["automation-events", [\
["npm:5.0.3", {\
"packageLocation": "./.yarn/cache/automation-events-npm-5.0.3-3982bf01b9-8a9334e89d.zip/node_modules/automation-events/",\
"packageDependencies": [\
["automation-events", "npm:5.0.3"],\
["@babel/runtime", "npm:7.21.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["autoprefixer", [\ ["autoprefixer", [\
["npm:10.4.14", {\ ["npm:10.4.14", {\
"packageLocation": "./.yarn/cache/autoprefixer-npm-10.4.14-1e0b8c34fb-e9f18e664a.zip/node_modules/autoprefixer/",\ "packageLocation": "./.yarn/cache/autoprefixer-npm-10.4.14-1e0b8c34fb-e9f18e664a.zip/node_modules/autoprefixer/",\
@@ -2531,19 +2519,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["broker-factory", [\
["npm:3.0.75", {\
"packageLocation": "./.yarn/cache/broker-factory-npm-3.0.75-c7ab8f5cd5-68c846a62a.zip/node_modules/broker-factory/",\
"packageDependencies": [\
["broker-factory", "npm:3.0.75"],\
["@babel/runtime", "npm:7.21.0"],\
["fast-unique-numbers", "npm:7.0.2"],\
["tslib", "npm:2.5.0"],\
["worker-factory", "npm:6.0.76"]\
],\
"linkType": "HARD"\
}]\
]],\
["browserslist", [\ ["browserslist", [\
["npm:4.21.5", {\ ["npm:4.21.5", {\
"packageLocation": "./.yarn/cache/browserslist-npm-4.21.5-e3b9e9d029-9755986b22.zip/node_modules/browserslist/",\ "packageLocation": "./.yarn/cache/browserslist-npm-4.21.5-e3b9e9d029-9755986b22.zip/node_modules/browserslist/",\
@@ -2782,19 +2757,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["compilerr", [\
["npm:10.0.2", {\
"packageLocation": "./.yarn/cache/compilerr-npm-10.0.2-3e722899d8-ea4a9f2730.zip/node_modules/compilerr/",\
"packageDependencies": [\
["compilerr", "npm:10.0.2"],\
["@babel/runtime", "npm:7.21.0"],\
["dashify", "npm:2.0.0"],\
["indefinite-article", "npm:0.0.2"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["concat-map", [\ ["concat-map", [\
["npm:0.0.1", {\ ["npm:0.0.1", {\
"packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/",\ "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/",\
@@ -2902,15 +2864,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["dashify", [\
["npm:2.0.0", {\
"packageLocation": "./.yarn/cache/dashify-npm-2.0.0-7c0a7ccfd6-f13233f38f.zip/node_modules/dashify/",\
"packageDependencies": [\
["dashify", "npm:2.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["debug", [\ ["debug", [\
["npm:3.2.7", {\ ["npm:3.2.7", {\
"packageLocation": "./.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip/node_modules/debug/",\ "packageLocation": "./.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip/node_modules/debug/",\
@@ -3702,60 +3655,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["extendable-media-recorder", [\
["npm:6.6.10", {\
"packageLocation": "./.yarn/cache/extendable-media-recorder-npm-6.6.10-b815a56d83-51a4255852.zip/node_modules/extendable-media-recorder/",\
"packageDependencies": [\
["extendable-media-recorder", "npm:6.6.10"],\
["@babel/runtime", "npm:7.21.0"],\
["media-encoder-host", "npm:8.0.88"],\
["multi-buffer-data-view", "npm:3.0.24"],\
["recorder-audio-worklet", "npm:5.1.39"],\
["standardized-audio-context", "npm:25.3.43"],\
["subscribable-things", "npm:2.1.14"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["extendable-media-recorder-wav-encoder", [\
["npm:7.0.85", {\
"packageLocation": "./.yarn/cache/extendable-media-recorder-wav-encoder-npm-7.0.85-c69c802342-3c58fa5e41.zip/node_modules/extendable-media-recorder-wav-encoder/",\
"packageDependencies": [\
["extendable-media-recorder-wav-encoder", "npm:7.0.85"],\
["@babel/runtime", "npm:7.21.0"],\
["extendable-media-recorder-wav-encoder-broker", "npm:7.0.77"],\
["extendable-media-recorder-wav-encoder-worker", "npm:8.0.76"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["extendable-media-recorder-wav-encoder-broker", [\
["npm:7.0.77", {\
"packageLocation": "./.yarn/cache/extendable-media-recorder-wav-encoder-broker-npm-7.0.77-884e9f1892-6bf063169e.zip/node_modules/extendable-media-recorder-wav-encoder-broker/",\
"packageDependencies": [\
["extendable-media-recorder-wav-encoder-broker", "npm:7.0.77"],\
["@babel/runtime", "npm:7.21.0"],\
["broker-factory", "npm:3.0.75"],\
["extendable-media-recorder-wav-encoder-worker", "npm:8.0.76"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["extendable-media-recorder-wav-encoder-worker", [\
["npm:8.0.76", {\
"packageLocation": "./.yarn/cache/extendable-media-recorder-wav-encoder-worker-npm-8.0.76-947ae1dfae-fecdd6ccc3.zip/node_modules/extendable-media-recorder-wav-encoder-worker/",\
"packageDependencies": [\
["extendable-media-recorder-wav-encoder-worker", "npm:8.0.76"],\
["@babel/runtime", "npm:7.21.0"],\
["tslib", "npm:2.5.0"],\
["worker-factory", "npm:6.0.76"]\
],\
"linkType": "HARD"\
}]\
]],\
["fast-deep-equal", [\ ["fast-deep-equal", [\
["npm:3.1.3", {\ ["npm:3.1.3", {\
"packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\ "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\
@@ -3797,17 +3696,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["fast-unique-numbers", [\
["npm:7.0.2", {\
"packageLocation": "./.yarn/cache/fast-unique-numbers-npm-7.0.2-1ff2badbe7-66a27baf37.zip/node_modules/fast-unique-numbers/",\
"packageDependencies": [\
["fast-unique-numbers", "npm:7.0.2"],\
["@babel/runtime", "npm:7.21.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["fastparse", [\ ["fastparse", [\
["npm:1.1.2", {\ ["npm:1.1.2", {\
"packageLocation": "./.yarn/cache/fastparse-npm-1.1.2-6a35154770-c4d199809d.zip/node_modules/fastparse/",\ "packageLocation": "./.yarn/cache/fastparse-npm-1.1.2-6a35154770-c4d199809d.zip/node_modules/fastparse/",\
@@ -4495,15 +4383,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["indefinite-article", [\
["npm:0.0.2", {\
"packageLocation": "./.yarn/cache/indefinite-article-npm-0.0.2-cf886e7a36-5edd5cd34a.zip/node_modules/indefinite-article/",\
"packageDependencies": [\
["indefinite-article", "npm:0.0.2"]\
],\
"linkType": "HARD"\
}]\
]],\
["indent-string", [\ ["indent-string", [\
["npm:4.0.0", {\ ["npm:4.0.0", {\
"packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip/node_modules/indent-string/",\ "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip/node_modules/indent-string/",\
@@ -5158,46 +5037,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["media-encoder-host", [\
["npm:8.0.88", {\
"packageLocation": "./.yarn/cache/media-encoder-host-npm-8.0.88-1a1127401e-0c7e5bed73.zip/node_modules/media-encoder-host/",\
"packageDependencies": [\
["media-encoder-host", "npm:8.0.88"],\
["@babel/runtime", "npm:7.21.0"],\
["media-encoder-host-broker", "npm:7.0.78"],\
["media-encoder-host-worker", "npm:9.1.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["media-encoder-host-broker", [\
["npm:7.0.78", {\
"packageLocation": "./.yarn/cache/media-encoder-host-broker-npm-7.0.78-6ddcf730a2-d39c310b50.zip/node_modules/media-encoder-host-broker/",\
"packageDependencies": [\
["media-encoder-host-broker", "npm:7.0.78"],\
["@babel/runtime", "npm:7.21.0"],\
["broker-factory", "npm:3.0.75"],\
["fast-unique-numbers", "npm:7.0.2"],\
["media-encoder-host-worker", "npm:9.1.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["media-encoder-host-worker", [\
["npm:9.1.0", {\
"packageLocation": "./.yarn/cache/media-encoder-host-worker-npm-9.1.0-13dee28912-760f46f446.zip/node_modules/media-encoder-host-worker/",\
"packageDependencies": [\
["media-encoder-host-worker", "npm:9.1.0"],\
["@babel/runtime", "npm:7.21.0"],\
["extendable-media-recorder-wav-encoder-broker", "npm:7.0.77"],\
["tslib", "npm:2.5.0"],\
["worker-factory", "npm:6.0.76"]\
],\
"linkType": "HARD"\
}]\
]],\
["memoize-one", [\ ["memoize-one", [\
["npm:5.2.1", {\ ["npm:5.2.1", {\
"packageLocation": "./.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-a3cba7b824.zip/node_modules/memoize-one/",\ "packageLocation": "./.yarn/cache/memoize-one-npm-5.2.1-ee0f8be979-a3cba7b824.zip/node_modules/memoize-one/",\
@@ -5395,17 +5234,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["multi-buffer-data-view", [\
["npm:3.0.24", {\
"packageLocation": "./.yarn/cache/multi-buffer-data-view-npm-3.0.24-75b082426f-93fb4905ff.zip/node_modules/multi-buffer-data-view/",\
"packageDependencies": [\
["multi-buffer-data-view", "npm:3.0.24"],\
["@babel/runtime", "npm:7.21.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["mz", [\ ["mz", [\
["npm:2.7.0", {\ ["npm:2.7.0", {\
"packageLocation": "./.yarn/cache/mz-npm-2.7.0-ec3cef4ec2-8427de0ece.zip/node_modules/mz/",\ "packageLocation": "./.yarn/cache/mz-npm-2.7.0-ec3cef4ec2-8427de0ece.zip/node_modules/mz/",\
@@ -5538,8 +5366,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["react-firebase-hooks", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:5.1.1"],\ ["react-firebase-hooks", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:5.1.1"],\
["react-icons", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:4.8.0"],\ ["react-icons", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:4.8.0"],\
["react-lineto", "npm:3.3.0"],\ ["react-lineto", "npm:3.3.0"],\
["react-media-recorder", "npm:1.6.6"],\ ["react-media-recorder", "npm:1.6.5"],\
["react-mic", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:12.4.6"],\
["react-player", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:2.12.0"],\ ["react-player", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:2.12.0"],\
["react-string-replace", "npm:1.1.0"],\ ["react-string-replace", "npm:1.1.0"],\
["react-toastify", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:9.1.2"],\ ["react-toastify", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:9.1.2"],\
@@ -6345,32 +6172,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["react-ga", [\
["npm:2.7.0", {\
"packageLocation": "./.yarn/cache/react-ga-npm-2.7.0-87bdce9bdf-15d8571c15.zip/node_modules/react-ga/",\
"packageDependencies": [\
["react-ga", "npm:2.7.0"]\
],\
"linkType": "SOFT"\
}],\
["virtual:e1956ab5c33c6a3771f6a7a5970951d6b7a3cf85899f7243d2c8eaa604a12264dcaf1730152746b01bea7925dfaad73fbd473dddf94ef1cd64ae6dae7a019003#npm:2.7.0", {\
"packageLocation": "./.yarn/__virtual__/react-ga-virtual-c2cf70fb02/0/cache/react-ga-npm-2.7.0-87bdce9bdf-15d8571c15.zip/node_modules/react-ga/",\
"packageDependencies": [\
["react-ga", "virtual:e1956ab5c33c6a3771f6a7a5970951d6b7a3cf85899f7243d2c8eaa604a12264dcaf1730152746b01bea7925dfaad73fbd473dddf94ef1cd64ae6dae7a019003#npm:2.7.0"],\
["@types/prop-types", null],\
["@types/react", "npm:18.0.27"],\
["prop-types", "npm:15.8.1"],\
["react", "npm:18.2.0"]\
],\
"packagePeers": [\
"@types/prop-types",\
"@types/react",\
"prop-types",\
"react"\
],\
"linkType": "HARD"\
}]\
]],\
["react-icons", [\ ["react-icons", [\
["npm:4.8.0", {\ ["npm:4.8.0", {\
"packageLocation": "./.yarn/cache/react-icons-npm-4.8.0-aa5423cd6c-4dbba7ad98.zip/node_modules/react-icons/",\ "packageLocation": "./.yarn/cache/react-icons-npm-4.8.0-aa5423cd6c-4dbba7ad98.zip/node_modules/react-icons/",\
@@ -6414,38 +6215,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\ }]\
]],\ ]],\
["react-media-recorder", [\ ["react-media-recorder", [\
["npm:1.6.6", {\ ["npm:1.6.5", {\
"packageLocation": "./.yarn/cache/react-media-recorder-npm-1.6.6-73b5eabb2e-9dcb7f8b84.zip/node_modules/react-media-recorder/",\ "packageLocation": "./.yarn/cache/react-media-recorder-npm-1.6.5-d2f7ee76b0-0ace642df6.zip/node_modules/react-media-recorder/",\
"packageDependencies": [\ "packageDependencies": [\
["react-media-recorder", "npm:1.6.6"],\ ["react-media-recorder", "npm:1.6.5"]\
["extendable-media-recorder", "npm:6.6.10"],\
["extendable-media-recorder-wav-encoder", "npm:7.0.85"]\
],\
"linkType": "HARD"\
}]\
]],\
["react-mic", [\
["npm:12.4.6", {\
"packageLocation": "./.yarn/cache/react-mic-npm-12.4.6-282ff3c11b-b134169b12.zip/node_modules/react-mic/",\
"packageDependencies": [\
["react-mic", "npm:12.4.6"]\
],\
"linkType": "SOFT"\
}],\
["virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:12.4.6", {\
"packageLocation": "./.yarn/__virtual__/react-mic-virtual-e1956ab5c3/0/cache/react-mic-npm-12.4.6-282ff3c11b-b134169b12.zip/node_modules/react-mic/",\
"packageDependencies": [\
["react-mic", "virtual:bf6aaa3c042cc1a42ee2910afd2615e1727d392da84fae76c4ff4b04654d9bc15e6952fab427843d598f4a94d8eaa3198f30dab7b7c8d523ed6cd30ef92cfb66#npm:12.4.6"],\
["@types/prop-types", null],\
["@types/react", "npm:18.0.27"],\
["prop-types", "npm:15.8.1"],\
["react", "npm:18.2.0"],\
["react-ga", "virtual:e1956ab5c33c6a3771f6a7a5970951d6b7a3cf85899f7243d2c8eaa604a12264dcaf1730152746b01bea7925dfaad73fbd473dddf94ef1cd64ae6dae7a019003#npm:2.7.0"]\
],\
"packagePeers": [\
"@types/prop-types",\
"@types/react",\
"react"\
],\ ],\
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
@@ -6575,34 +6348,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["recorder-audio-worklet", [\
["npm:5.1.39", {\
"packageLocation": "./.yarn/cache/recorder-audio-worklet-npm-5.1.39-d9790798b0-5ea8d7a174.zip/node_modules/recorder-audio-worklet/",\
"packageDependencies": [\
["recorder-audio-worklet", "npm:5.1.39"],\
["@babel/runtime", "npm:7.21.0"],\
["broker-factory", "npm:3.0.75"],\
["fast-unique-numbers", "npm:7.0.2"],\
["recorder-audio-worklet-processor", "npm:4.2.21"],\
["standardized-audio-context", "npm:25.3.43"],\
["subscribable-things", "npm:2.1.14"],\
["tslib", "npm:2.5.0"],\
["worker-factory", "npm:6.0.76"]\
],\
"linkType": "HARD"\
}]\
]],\
["recorder-audio-worklet-processor", [\
["npm:4.2.21", {\
"packageLocation": "./.yarn/cache/recorder-audio-worklet-processor-npm-4.2.21-9bc59a2810-78074c9b09.zip/node_modules/recorder-audio-worklet-processor/",\
"packageDependencies": [\
["recorder-audio-worklet-processor", "npm:4.2.21"],\
["@babel/runtime", "npm:7.21.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["regenerator-runtime", [\ ["regenerator-runtime", [\
["npm:0.13.11", {\ ["npm:0.13.11", {\
"packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-27481628d2.zip/node_modules/regenerator-runtime/",\ "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-27481628d2.zip/node_modules/regenerator-runtime/",\
@@ -6711,15 +6456,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["rxjs-interop", [\
["npm:2.0.0", {\
"packageLocation": "./.yarn/cache/rxjs-interop-npm-2.0.0-3efb8202be-621263f0d3.zip/node_modules/rxjs-interop/",\
"packageDependencies": [\
["rxjs-interop", "npm:2.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["safe-buffer", [\ ["safe-buffer", [\
["npm:5.2.1", {\ ["npm:5.2.1", {\
"packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip/node_modules/safe-buffer/",\ "packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip/node_modules/safe-buffer/",\
@@ -6918,18 +6654,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["standardized-audio-context", [\
["npm:25.3.43", {\
"packageLocation": "./.yarn/cache/standardized-audio-context-npm-25.3.43-8c2f93e2b8-041ff9e2b9.zip/node_modules/standardized-audio-context/",\
"packageDependencies": [\
["standardized-audio-context", "npm:25.3.43"],\
["@babel/runtime", "npm:7.21.0"],\
["automation-events", "npm:5.0.3"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["stop-iteration-iterator", [\ ["stop-iteration-iterator", [\
["npm:1.0.0", {\ ["npm:1.0.0", {\
"packageLocation": "./.yarn/cache/stop-iteration-iterator-npm-1.0.0-ea451e1609-d04173690b.zip/node_modules/stop-iteration-iterator/",\ "packageLocation": "./.yarn/cache/stop-iteration-iterator-npm-1.0.0-ea451e1609-d04173690b.zip/node_modules/stop-iteration-iterator/",\
@@ -7080,18 +6804,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["subscribable-things", [\
["npm:2.1.14", {\
"packageLocation": "./.yarn/cache/subscribable-things-npm-2.1.14-818dc1c0f4-8a4cc4d42b.zip/node_modules/subscribable-things/",\
"packageDependencies": [\
["subscribable-things", "npm:2.1.14"],\
["@babel/runtime", "npm:7.21.0"],\
["rxjs-interop", "npm:2.0.0"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["sucrase", [\ ["sucrase", [\
["npm:3.32.0", {\ ["npm:3.32.0", {\
"packageLocation": "./.yarn/cache/sucrase-npm-3.32.0-77d3fb5106-79f760aef5.zip/node_modules/sucrase/",\ "packageLocation": "./.yarn/cache/sucrase-npm-3.32.0-77d3fb5106-79f760aef5.zip/node_modules/sucrase/",\
@@ -7623,19 +7335,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD"\ "linkType": "HARD"\
}]\ }]\
]],\ ]],\
["worker-factory", [\
["npm:6.0.76", {\
"packageLocation": "./.yarn/cache/worker-factory-npm-6.0.76-46a5ac4412-d07d547d96.zip/node_modules/worker-factory/",\
"packageDependencies": [\
["worker-factory", "npm:6.0.76"],\
["@babel/runtime", "npm:7.21.0"],\
["compilerr", "npm:10.0.2"],\
["fast-unique-numbers", "npm:7.0.2"],\
["tslib", "npm:2.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["wrap-ansi", [\ ["wrap-ansi", [\
["npm:7.0.0", {\ ["npm:7.0.0", {\
"packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip/node_modules/wrap-ansi/",\ "packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip/node_modules/wrap-ansi/",\

View File

@@ -36,8 +36,7 @@
"react-firebase-hooks": "^5.1.1", "react-firebase-hooks": "^5.1.1",
"react-icons": "^4.8.0", "react-icons": "^4.8.0",
"react-lineto": "^3.3.0", "react-lineto": "^3.3.0",
"react-media-recorder": "^1.6.6", "react-media-recorder": "1.6.5",
"react-mic": "^12.4.6",
"react-player": "^2.12.0", "react-player": "^2.12.0",
"react-string-replace": "^1.1.0", "react-string-replace": "^1.1.0",
"react-toastify": "^9.1.2", "react-toastify": "^9.1.2",

View File

@@ -1,13 +1,19 @@
/* eslint-disable @next/next/no-img-element */ /* eslint-disable @next/next/no-img-element */
import Head from "next/head"; import Head from "next/head";
import Navbar from "@/components/Navbar"; import Navbar from "@/components/Navbar";
import {ToastContainer} from "react-toastify"; import {ToastContainer} from "react-toastify";
import {withIronSessionSsr} from "iron-session/next"; import {withIronSessionSsr} from "iron-session/next";
import {sessionOptions} from "@/lib/session"; import {sessionOptions} from "@/lib/session";
import useUser from "@/hooks/useUser"; import useUser from "@/hooks/useUser";
import Sidebar from "@/components/Sidebar"; import Sidebar from "@/components/Sidebar";
import {ReactMediaRecorder} from "react-media-recorder"; import dynamic from "next/dynamic";
import {BsCheckCircleFill, BsMicFill, BsPauseCircle, BsPlayCircle, BsPlayFill, BsTrashFill} from "react-icons/bs";
import {useEffect, useState} from "react";
const ReactMediaRecorder = dynamic(() => import("react-media-recorder").then((mod) => mod.ReactMediaRecorder), {
ssr: false,
});
export const getServerSideProps = withIronSessionSsr(({req, res}) => { export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user; const user = req.session.user;
@@ -30,6 +36,21 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
export default function Page() { export default function Page() {
const {user} = useUser({redirectTo: "/login"}); const {user} = useUser({redirectTo: "/login"});
const [recordingDuration, setRecordingDuration] = useState(0);
const [isRecording, setIsRecording] = useState(false);
useEffect(() => {
let recordingInterval: NodeJS.Timer | undefined = undefined;
if (isRecording) {
recordingInterval = setInterval(() => setRecordingDuration((prev) => prev + 1), 1000);
} else if (recordingInterval) {
clearInterval(recordingInterval);
}
return () => {
if (recordingInterval) clearInterval(recordingInterval);
};
}, [isRecording]);
return ( return (
<> <>
@@ -51,13 +72,115 @@ export default function Page() {
<div className="w-5/6 h-full mr-8 bg-white shadow-md rounded-2xl p-12 flex flex-col gap-12"> <div className="w-5/6 h-full mr-8 bg-white shadow-md rounded-2xl p-12 flex flex-col gap-12">
<ReactMediaRecorder <ReactMediaRecorder
audio audio
askPermissionOnMount render={({status, startRecording, stopRecording, pauseRecording, resumeRecording, clearBlobUrl, mediaBlobUrl}) => (
render={({status, startRecording, stopRecording, mediaBlobUrl}) => ( <div className="w-full p-4 px-8 bg-transparent border-2 border-mti-gray-platinum rounded-2xl flex-col gap-8 items-center">
<div> <p className="text-base font-normal">Record your answer:</p>
<p>{status}</p> <div className="flex gap-8 items-center justify-center py-8">
<button onClick={startRecording}>Start Recording</button> {status === "idle" && (
<button onClick={stopRecording}>Stop Recording</button> <>
<audio src={mediaBlobUrl} controls autoPlay loop /> {!mediaBlobUrl && <div className="w-full h-2 max-w-4xl bg-mti-gray-smoke rounded-full" />}
{status === "idle" && (
<BsMicFill
onClick={() => {
setRecordingDuration(0);
startRecording();
setIsRecording(true);
}}
className="h-5 w-5 text-mti-gray-cool cursor-pointer"
/>
)}
</>
)}
{status === "recording" && (
<>
<div className="flex gap-4 items-center">
<span className="text-xs w-9">
{Math.round(recordingDuration / 60)
.toString(10)
.padStart(2, "0")}
:
{Math.round(recordingDuration % 60)
.toString(10)
.padStart(2, "0")}
</span>
</div>
<div className="w-full h-2 max-w-4xl bg-mti-gray-smoke rounded-full" />
<div className="flex gap-4 items-center">
<BsPauseCircle
onClick={() => {
setIsRecording(false);
pauseRecording();
}}
className="text-red-500 w-8 h-8 cursor-pointer"
/>
<BsCheckCircleFill
onClick={() => {
setIsRecording(false);
stopRecording();
}}
className="text-mti-green-light w-8 h-8 cursor-pointer"
/>
</div>
</>
)}
{status === "paused" && (
<>
<div className="flex gap-4 items-center">
<span className="text-xs w-9">
{Math.round(recordingDuration / 60)
.toString(10)
.padStart(2, "0")}
:
{Math.round(recordingDuration % 60)
.toString(10)
.padStart(2, "0")}
</span>
</div>
<div className="w-full h-2 max-w-4xl bg-mti-gray-smoke rounded-full" />
<div className="flex gap-4 items-center">
<BsPlayCircle
onClick={() => {
setIsRecording(true);
resumeRecording();
}}
className="text-mti-green-light w-8 h-8 cursor-pointer"
/>
<BsCheckCircleFill
onClick={() => {
setIsRecording(false);
stopRecording();
}}
className="text-mti-green-light w-8 h-8 cursor-pointer"
/>
</div>
</>
)}
{status === "stopped" && (
<>
<BsPlayFill className="text-mti-gray-cool cursor-pointer w-5 h-5" />
<div className="w-full h-2 max-w-4xl bg-mti-gray-smoke rounded-full" />
<div className="flex gap-4 items-center">
<BsTrashFill
className="text-mti-gray-cool cursor-pointer w-5 h-5"
onClick={() => {
setRecordingDuration(0);
clearBlobUrl();
}}
/>
<BsMicFill
onClick={() => {
clearBlobUrl();
setRecordingDuration(0);
startRecording();
setIsRecording(true);
}}
className="h-5 w-5 text-mti-gray-cool cursor-pointer"
/>
</div>
</>
)}
</div>
</div> </div>
)} )}
/> />

265
yarn.lock
View File

@@ -5,7 +5,7 @@ __metadata:
version: 6 version: 6
cacheKey: 8 cacheKey: 8
"@babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": "@babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7":
version: 7.21.0 version: 7.21.0
resolution: "@babel/runtime@npm:7.21.0" resolution: "@babel/runtime@npm:7.21.0"
dependencies: dependencies:
@@ -1573,16 +1573,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"automation-events@npm:^5.0.3":
version: 5.0.3
resolution: "automation-events@npm:5.0.3"
dependencies:
"@babel/runtime": ^7.21.0
tslib: ^2.5.0
checksum: 8a9334e89d8cc4628e4db93e9e1dcce9f62ee41cfd7c4691f52f81eb0850b3f8f54a3dd89b36d1a45d9966bf1e4a17697178b1afdfa074e9bfd02ed181d75ba9
languageName: node
linkType: hard
"autoprefixer@npm:^10.4.13": "autoprefixer@npm:^10.4.13":
version: 10.4.14 version: 10.4.14
resolution: "autoprefixer@npm:10.4.14" resolution: "autoprefixer@npm:10.4.14"
@@ -1684,18 +1674,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"broker-factory@npm:^3.0.75":
version: 3.0.75
resolution: "broker-factory@npm:3.0.75"
dependencies:
"@babel/runtime": ^7.21.0
fast-unique-numbers: ^7.0.2
tslib: ^2.5.0
worker-factory: ^6.0.76
checksum: 68c846a62aa04c8d31fa87be68d10a453f686f08d3ed9cd5020f15d54b39da98d6127c71dd4e976c5def1db4d972a0313b0b0cb853ace0338aaf7e1b79414fb7
languageName: node
linkType: hard
"browserslist@npm:^4.21.5": "browserslist@npm:^4.21.5":
version: 4.21.5 version: 4.21.5
resolution: "browserslist@npm:4.21.5" resolution: "browserslist@npm:4.21.5"
@@ -1909,18 +1887,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"compilerr@npm:^10.0.2":
version: 10.0.2
resolution: "compilerr@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.21.0
dashify: ^2.0.0
indefinite-article: 0.0.2
tslib: ^2.5.0
checksum: ea4a9f27307da2fecd1bf34b13140d6b336ea1cbcd104303f7793ac76b9b64aed1c2f3de503411fc0b09f72eee05975f6dc2fcc7aa238a1a97e874ae15a78eb2
languageName: node
linkType: hard
"concat-map@npm:0.0.1": "concat-map@npm:0.0.1":
version: 0.0.1 version: 0.0.1
resolution: "concat-map@npm:0.0.1" resolution: "concat-map@npm:0.0.1"
@@ -2001,13 +1967,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"dashify@npm:^2.0.0":
version: 2.0.0
resolution: "dashify@npm:2.0.0"
checksum: f13233f38fc39ea8dabe3a5bef51421906aa8a52e4403fcb56e3e6464428f5c0bdd75562706929a245c698bceccf68a82e30e9e327a0c582469868522a163f8c
languageName: node
linkType: hard
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
version: 4.3.4 version: 4.3.4
resolution: "debug@npm:4.3.4" resolution: "debug@npm:4.3.4"
@@ -2604,56 +2563,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"extendable-media-recorder-wav-encoder-broker@npm:^7.0.77":
version: 7.0.77
resolution: "extendable-media-recorder-wav-encoder-broker@npm:7.0.77"
dependencies:
"@babel/runtime": ^7.21.0
broker-factory: ^3.0.75
extendable-media-recorder-wav-encoder-worker: ^8.0.76
tslib: ^2.5.0
checksum: 6bf063169e56ef65e94cee27c701e3052b29d6bd28d51548e91b07947256d008cf8d2338fd90f673061ba80a694cb74c4c3983023063234319c4c10f6fa3315f
languageName: node
linkType: hard
"extendable-media-recorder-wav-encoder-worker@npm:^8.0.76":
version: 8.0.76
resolution: "extendable-media-recorder-wav-encoder-worker@npm:8.0.76"
dependencies:
"@babel/runtime": ^7.21.0
tslib: ^2.5.0
worker-factory: ^6.0.76
checksum: fecdd6ccc3b16ba31d2edcc411a2def678151a2bc702b4a5a621a206548003d80f73c2f05793947f3961bd361b96ad994d2f1adfecf478ffb0baf7eadfb9b972
languageName: node
linkType: hard
"extendable-media-recorder-wav-encoder@npm:^7.0.68":
version: 7.0.85
resolution: "extendable-media-recorder-wav-encoder@npm:7.0.85"
dependencies:
"@babel/runtime": ^7.21.0
extendable-media-recorder-wav-encoder-broker: ^7.0.77
extendable-media-recorder-wav-encoder-worker: ^8.0.76
tslib: ^2.5.0
checksum: 3c58fa5e4167fab4d10e31a17f7f5533ed38d40457d4ccb78858e42b62146d3e20eba127e1d373dfdc55763c4b20f55ee2554fc8e1cb1898c347052f1425ccf4
languageName: node
linkType: hard
"extendable-media-recorder@npm:^6.6.5":
version: 6.6.10
resolution: "extendable-media-recorder@npm:6.6.10"
dependencies:
"@babel/runtime": ^7.18.9
media-encoder-host: ^8.0.76
multi-buffer-data-view: ^3.0.20
recorder-audio-worklet: ^5.1.26
standardized-audio-context: ^25.3.29
subscribable-things: ^2.1.6
tslib: ^2.4.0
checksum: 51a42558523224ed6eb031cdd0bb80299762d2ed88cf3cb2ae05439efbbdb14be486b6788ce62a02395e33489d939b2f8e839ec2f3f93e8ac10d0288445a0ff0
languageName: node
linkType: hard
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
version: 3.1.3 version: 3.1.3
resolution: "fast-deep-equal@npm:3.1.3" resolution: "fast-deep-equal@npm:3.1.3"
@@ -2688,16 +2597,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"fast-unique-numbers@npm:^7.0.2":
version: 7.0.2
resolution: "fast-unique-numbers@npm:7.0.2"
dependencies:
"@babel/runtime": ^7.21.0
tslib: ^2.5.0
checksum: 66a27baf3724658cabba1994156a70319b17187f1e58143ed2b0afa7ae0da1bf295452baff9c30230564742decb21071b8803049109e03ae6d677adc571718c6
languageName: node
linkType: hard
"fastparse@npm:^1.1.2": "fastparse@npm:^1.1.2":
version: 1.1.2 version: 1.1.2
resolution: "fastparse@npm:1.1.2" resolution: "fastparse@npm:1.1.2"
@@ -3303,13 +3202,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"indefinite-article@npm:0.0.2":
version: 0.0.2
resolution: "indefinite-article@npm:0.0.2"
checksum: 5edd5cd34a80e56ab82a8fa6ee96de28e3fbd3003a0f5dab388421c4bf0b512dd337f9955d993af8b55fbdc923e14625a72350218a4d41aae773054e0a4b45fe
languageName: node
linkType: hard
"indent-string@npm:^4.0.0": "indent-string@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "indent-string@npm:4.0.0" resolution: "indent-string@npm:4.0.0"
@@ -3880,43 +3772,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"media-encoder-host-broker@npm:^7.0.78":
version: 7.0.78
resolution: "media-encoder-host-broker@npm:7.0.78"
dependencies:
"@babel/runtime": ^7.21.0
broker-factory: ^3.0.75
fast-unique-numbers: ^7.0.2
media-encoder-host-worker: ^9.1.0
tslib: ^2.5.0
checksum: d39c310b50cb1aa304fb74efffe91fad9fe7e81084540fa6de505579e5c6829a432fe371539228cf830cb0aff78fec8c3863cf15ff5aba9fef4e4bb19992654e
languageName: node
linkType: hard
"media-encoder-host-worker@npm:^9.1.0":
version: 9.1.0
resolution: "media-encoder-host-worker@npm:9.1.0"
dependencies:
"@babel/runtime": ^7.21.0
extendable-media-recorder-wav-encoder-broker: ^7.0.77
tslib: ^2.5.0
worker-factory: ^6.0.76
checksum: 760f46f446ab825996fd785405a71fe44aa67af2dbb050d9f14e614baffbbfa62b1f5abcc9c44e0e7e70dc4e2516099d0e2a0e584217f0897e3e155e683a8426
languageName: node
linkType: hard
"media-encoder-host@npm:^8.0.76":
version: 8.0.88
resolution: "media-encoder-host@npm:8.0.88"
dependencies:
"@babel/runtime": ^7.21.0
media-encoder-host-broker: ^7.0.78
media-encoder-host-worker: ^9.1.0
tslib: ^2.5.0
checksum: 0c7e5bed73a2f95ba15044b6e866136422a22e6b32f7ad1aae27acfcb084dfa99841e5d2a02c783dd0edc831b9e0aeb8b5b65a2cc5780d080bba4a1acd4eb7b8
languageName: node
linkType: hard
"memoize-one@npm:^5.1.1": "memoize-one@npm:^5.1.1":
version: 5.2.1 version: 5.2.1
resolution: "memoize-one@npm:5.2.1" resolution: "memoize-one@npm:5.2.1"
@@ -4096,16 +3951,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"multi-buffer-data-view@npm:^3.0.20":
version: 3.0.24
resolution: "multi-buffer-data-view@npm:3.0.24"
dependencies:
"@babel/runtime": ^7.20.6
tslib: ^2.4.1
checksum: 93fb4905ff820da8d74cddf7ae6931127d02c8752c504bd5095c9742b88448e84e802a7464f1b3019b218ec29117d9b53f0a61ee420478ae93ccc324e8306197
languageName: node
linkType: hard
"mz@npm:^2.7.0": "mz@npm:^2.7.0":
version: 2.7.0 version: 2.7.0
resolution: "mz@npm:2.7.0" resolution: "mz@npm:2.7.0"
@@ -4176,8 +4021,7 @@ __metadata:
react-firebase-hooks: ^5.1.1 react-firebase-hooks: ^5.1.1
react-icons: ^4.8.0 react-icons: ^4.8.0
react-lineto: ^3.3.0 react-lineto: ^3.3.0
react-media-recorder: ^1.6.6 react-media-recorder: 1.6.5
react-mic: ^12.4.6
react-player: ^2.12.0 react-player: ^2.12.0
react-string-replace: ^1.1.0 react-string-replace: ^1.1.0
react-toastify: ^9.1.2 react-toastify: ^9.1.2
@@ -4717,7 +4561,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prop-types@npm:^15.5.10, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": "prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
version: 15.8.1 version: 15.8.1
resolution: "prop-types@npm:15.8.1" resolution: "prop-types@npm:15.8.1"
dependencies: dependencies:
@@ -4855,16 +4699,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react-ga@npm:^2.2.0":
version: 2.7.0
resolution: "react-ga@npm:2.7.0"
peerDependencies:
prop-types: ^15.6.0
react: ^15.6.2 || ^16.0
checksum: 15d8571c156edfaa204ff0041db7a901b0eeca3e3b21774e918269b0fe48204bb5b6a3df882caea5e0077aa3a32be39a48e7082e556563338f2a78b402a59463
languageName: node
linkType: hard
"react-icons@npm:^4.8.0": "react-icons@npm:^4.8.0":
version: 4.8.0 version: 4.8.0
resolution: "react-icons@npm:4.8.0" resolution: "react-icons@npm:4.8.0"
@@ -4891,26 +4725,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react-media-recorder@npm:^1.6.6": "react-media-recorder@npm:1.6.5":
version: 1.6.6 version: 1.6.5
resolution: "react-media-recorder@npm:1.6.6" resolution: "react-media-recorder@npm:1.6.5"
dependencies: checksum: 0ace642df6502640fdf51477d297c968700be0d4690e01264dc05f1dbeabd7fec70d42588b83248c5f5ad01a9b99e9fb592c47a5947c90e8f86c3d374679eaa3
extendable-media-recorder: ^6.6.5
extendable-media-recorder-wav-encoder: ^7.0.68
checksum: 9dcb7f8b84a749dc51a6cdcf873a2f6150efd6c67b7e9fb6beff072ef335759e90ad4f9c3a993619ec0adc9bfa711b5812dbcbf8da52d0ce72e508ba018081de
languageName: node
linkType: hard
"react-mic@npm:^12.4.6":
version: 12.4.6
resolution: "react-mic@npm:12.4.6"
dependencies:
prop-types: ^15.5.10
react-ga: ^2.2.0
peerDependencies:
prop-types: ^15.5.10
react: 16.x
checksum: b134169b12f7c04b57c9e0695c13255d0c1abff06c338bbeeb7ed02adc2c2ef0c8140cdf11bfa98df19300a1455e300fa0cf06d8db5d987b1222ebb667861fc0
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5011,32 +4829,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"recorder-audio-worklet-processor@npm:^4.2.21":
version: 4.2.21
resolution: "recorder-audio-worklet-processor@npm:4.2.21"
dependencies:
"@babel/runtime": ^7.21.0
tslib: ^2.5.0
checksum: 78074c9b09a7f4b9c7905eac2ad93d77706667b51325341fd47974e8748a1f5c362a2e57588bff99c5203c9fb1695a8767f821be5047353ad1ee127df99ae18c
languageName: node
linkType: hard
"recorder-audio-worklet@npm:^5.1.26":
version: 5.1.39
resolution: "recorder-audio-worklet@npm:5.1.39"
dependencies:
"@babel/runtime": ^7.21.0
broker-factory: ^3.0.75
fast-unique-numbers: ^7.0.2
recorder-audio-worklet-processor: ^4.2.21
standardized-audio-context: ^25.3.41
subscribable-things: ^2.1.14
tslib: ^2.5.0
worker-factory: ^6.0.76
checksum: 5ea8d7a17476a49a083b00b733da8c2900c353b0d19d437ff3adbcaab06dfd7f0a15edd6e03f3680aed6c2b382d9a14ad42d18ea13245a5508b7a66efd8cd2ca
languageName: node
linkType: hard
"regenerator-runtime@npm:^0.13.11": "regenerator-runtime@npm:^0.13.11":
version: 0.13.11 version: 0.13.11
resolution: "regenerator-runtime@npm:0.13.11" resolution: "regenerator-runtime@npm:0.13.11"
@@ -5162,13 +4954,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"rxjs-interop@npm:^2.0.0":
version: 2.0.0
resolution: "rxjs-interop@npm:2.0.0"
checksum: 621263f0d327f8f3524adc5f83b27f6d217ce914b91d818a5e087f1eb237b2c5b4a7675565301985cee5e43c3a790341da484b92eef8e6b8927306ae827b9ae0
languageName: node
linkType: hard
"safe-buffer@npm:>=5.1.0, safe-buffer@npm:~5.2.0": "safe-buffer@npm:>=5.1.0, safe-buffer@npm:~5.2.0":
version: 5.2.1 version: 5.2.1
resolution: "safe-buffer@npm:5.2.1" resolution: "safe-buffer@npm:5.2.1"
@@ -5349,17 +5134,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"standardized-audio-context@npm:^25.3.29, standardized-audio-context@npm:^25.3.41":
version: 25.3.43
resolution: "standardized-audio-context@npm:25.3.43"
dependencies:
"@babel/runtime": ^7.21.0
automation-events: ^5.0.3
tslib: ^2.5.0
checksum: 041ff9e2b956c6a5a03410a3f5f6e888ab34d5136567438b237aa7a1f99f04359e15860d2d251e3c74b6b41ebbf0e4ead3bb184a3c9c88ff1ede131411789633
languageName: node
linkType: hard
"stop-iteration-iterator@npm:^1.0.0": "stop-iteration-iterator@npm:^1.0.0":
version: 1.0.0 version: 1.0.0
resolution: "stop-iteration-iterator@npm:1.0.0" resolution: "stop-iteration-iterator@npm:1.0.0"
@@ -5486,17 +5260,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"subscribable-things@npm:^2.1.14, subscribable-things@npm:^2.1.6":
version: 2.1.14
resolution: "subscribable-things@npm:2.1.14"
dependencies:
"@babel/runtime": ^7.21.0
rxjs-interop: ^2.0.0
tslib: ^2.5.0
checksum: 8a4cc4d42b40610e9cd010f0afa72de0d2cac15b54ee66ef39f168183f171784bfb92849a4adaf11b7c5ca65930c23e843d9a1d4e2b642f7601f04d5179bf706
languageName: node
linkType: hard
"sucrase@npm:^3.29.0": "sucrase@npm:^3.29.0":
version: 3.32.0 version: 3.32.0
resolution: "sucrase@npm:3.32.0" resolution: "sucrase@npm:3.32.0"
@@ -5687,7 +5450,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0": "tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0":
version: 2.5.0 version: 2.5.0
resolution: "tslib@npm:2.5.0" resolution: "tslib@npm:2.5.0"
checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1
@@ -5944,18 +5707,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"worker-factory@npm:^6.0.76":
version: 6.0.76
resolution: "worker-factory@npm:6.0.76"
dependencies:
"@babel/runtime": ^7.21.0
compilerr: ^10.0.2
fast-unique-numbers: ^7.0.2
tslib: ^2.5.0
checksum: d07d547d967ba63099a0b0f04c2ce18bbf3cc1aec8759598e16ebc0c68cb0f03711a7316ae76512f48cd5d06b30348a31e2058bd3356815bd56c2effc105036e
languageName: node
linkType: hard
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
version: 7.0.0 version: 7.0.0
resolution: "wrap-ansi@npm:7.0.0" resolution: "wrap-ansi@npm:7.0.0"