@digabi/exam-engine-core 23.8.2-alpha.0 → 23.8.2
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/dist/__tests__/annotations.test.d.ts +2 -0
- package/dist/__tests__/annotations.test.d.ts.map +1 -0
- package/dist/__tests__/annotations.test.js +306 -0
- package/dist/__tests__/annotations.test.js.map +1 -0
- package/dist/__tests__/examServerApi.d.ts.map +1 -1
- package/dist/__tests__/examServerApi.js +0 -2
- package/dist/__tests__/examServerApi.js.map +1 -1
- package/dist/__tests__/playwright/Annotations.test.d.ts +2 -0
- package/dist/__tests__/playwright/Annotations.test.d.ts.map +1 -0
- package/dist/__tests__/playwright/Annotations.test.js +201 -0
- package/dist/__tests__/playwright/Annotations.test.js.map +1 -0
- package/dist/__tests__/playwright/attachments/Attachments.test.d.ts +2 -0
- package/dist/__tests__/playwright/attachments/Attachments.test.d.ts.map +1 -0
- package/dist/__tests__/playwright/attachments/Attachments.test.js +30 -0
- package/dist/__tests__/playwright/attachments/Attachments.test.js.map +1 -0
- package/dist/__tests__/playwright/grading-instructions/GradingInstructions.test.d.ts +2 -0
- package/dist/__tests__/playwright/grading-instructions/GradingInstructions.test.d.ts.map +1 -0
- package/dist/__tests__/playwright/grading-instructions/GradingInstructions.test.js +30 -0
- package/dist/__tests__/playwright/grading-instructions/GradingInstructions.test.js.map +1 -0
- package/dist/__tests__/playwright/stories/Annotations.story.d.ts +15 -0
- package/dist/__tests__/playwright/stories/Annotations.story.d.ts.map +1 -0
- package/dist/__tests__/playwright/stories/Annotations.story.js +27 -0
- package/dist/__tests__/playwright/stories/Annotations.story.js.map +1 -0
- package/dist/__tests__/playwright/stories/attachments/Attachments.story.d.ts +13 -0
- package/dist/__tests__/playwright/stories/attachments/Attachments.story.d.ts.map +1 -0
- package/dist/__tests__/playwright/stories/attachments/Attachments.story.js +17 -0
- package/dist/__tests__/playwright/stories/attachments/Attachments.story.js.map +1 -0
- package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.d.ts +13 -0
- package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.d.ts.map +1 -0
- package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.js +16 -0
- package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.js.map +1 -0
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/assets/NotoMono.ttf +0 -0
- package/dist/assets/NotoMono.woff +0 -0
- package/dist/assets/NotoMono.woff2 +0 -0
- package/dist/assets/NotoSans-Bold.ttf +0 -0
- package/dist/assets/NotoSans-Bold.woff +0 -0
- package/dist/assets/NotoSans-Bold.woff2 +0 -0
- package/dist/assets/NotoSans-BoldItalic.ttf +0 -0
- package/dist/assets/NotoSans-BoldItalic.woff +0 -0
- package/dist/assets/NotoSans-BoldItalic.woff2 +0 -0
- package/dist/assets/NotoSans-Italic.ttf +0 -0
- package/dist/assets/NotoSans-Italic.woff +0 -0
- package/dist/assets/NotoSans-Italic.woff2 +0 -0
- package/dist/assets/NotoSans-Light.ttf +0 -0
- package/dist/assets/NotoSans-Light.woff +0 -0
- package/dist/assets/NotoSans-Light.woff2 +0 -0
- package/dist/assets/NotoSans-LightItalic.ttf +0 -0
- package/dist/assets/NotoSans-LightItalic.woff +0 -0
- package/dist/assets/NotoSans-LightItalic.woff2 +0 -0
- package/dist/assets/NotoSans-Regular.ttf +0 -0
- package/dist/assets/NotoSans-Regular.woff +0 -0
- package/dist/assets/NotoSans-Regular.woff2 +0 -0
- package/dist/assets/NotoSans-SemiBold.ttf +0 -0
- package/dist/assets/NotoSans-SemiBold.woff +0 -0
- package/dist/assets/NotoSans-SemiBold.woff2 +0 -0
- package/dist/assets/NotoSans-SemiBoldItalic.ttf +0 -0
- package/dist/assets/NotoSans-SemiBoldItalic.woff +0 -0
- package/dist/assets/NotoSans-SemiBoldItalic.woff2 +0 -0
- package/dist/assets/closeButton.svg +1 -0
- package/dist/assets/collapse.svg +12 -0
- package/dist/assets/expand.svg +12 -0
- package/dist/assets/helpButton.svg +9 -0
- package/dist/assets/redoButton.svg +5 -0
- package/dist/assets/undoButton.svg +5 -0
- package/dist/components/attachments/Attachments.js +1 -1
- package/dist/components/attachments/Attachments.js.map +1 -1
- package/dist/components/context/QuestionContext.d.ts.map +1 -1
- package/dist/components/context/QuestionContext.js +1 -1
- package/dist/components/context/QuestionContext.js.map +1 -1
- package/dist/components/exam/Exam.d.ts.map +1 -1
- package/dist/components/exam/Exam.js +1 -3
- package/dist/components/exam/Exam.js.map +1 -1
- package/dist/components/grading/GradingAnswer.d.ts +6 -2
- package/dist/components/grading/GradingAnswer.d.ts.map +1 -1
- package/dist/components/grading/GradingAnswer.js +3 -4
- package/dist/components/grading/GradingAnswer.js.map +1 -1
- package/dist/components/grading/examAnnotationUtils.d.ts +4 -0
- package/dist/components/grading/examAnnotationUtils.d.ts.map +1 -0
- package/dist/components/grading/examAnnotationUtils.js +123 -0
- package/dist/components/grading/examAnnotationUtils.js.map +1 -0
- package/dist/components/results/DNDAnswerContainer.d.ts +4 -0
- package/dist/components/results/DNDAnswerContainer.d.ts.map +1 -0
- package/dist/components/results/DNDAnswerContainer.js +22 -0
- package/dist/components/results/DNDAnswerContainer.js.map +1 -0
- package/dist/components/results/Results.d.ts.map +1 -1
- package/dist/components/results/Results.js +1 -3
- package/dist/components/results/Results.js.map +1 -1
- package/dist/components/shared/AnnotatableText.d.ts +5 -0
- package/dist/components/shared/AnnotatableText.d.ts.map +1 -0
- package/dist/components/shared/AnnotatableText.js +25 -0
- package/dist/components/shared/AnnotatableText.js.map +1 -0
- package/dist/components/shared/AnnotationImageMark.d.ts +16 -0
- package/dist/components/shared/AnnotationImageMark.d.ts.map +1 -0
- package/dist/components/shared/AnnotationImageMark.js +99 -0
- package/dist/components/shared/AnnotationImageMark.js.map +1 -0
- package/dist/components/shared/AnnotationMark.d.ts +9 -0
- package/dist/components/shared/AnnotationMark.d.ts.map +1 -0
- package/dist/components/shared/AnnotationMark.js +14 -0
- package/dist/components/shared/AnnotationMark.js.map +1 -0
- package/dist/components/shared/AnnotationPopup.d.ts +3 -0
- package/dist/components/shared/AnnotationPopup.d.ts.map +1 -0
- package/dist/components/shared/AnnotationPopup.js +24 -0
- package/dist/components/shared/AnnotationPopup.js.map +1 -0
- package/dist/components/shared/AnnotationTextMark.d.ts +11 -0
- package/dist/components/shared/AnnotationTextMark.d.ts.map +1 -0
- package/dist/components/shared/AnnotationTextMark.js +21 -0
- package/dist/components/shared/AnnotationTextMark.js.map +1 -0
- package/dist/components/shared/QuestionNumber.d.ts +1 -1
- package/dist/components/shared/QuestionNumber.d.ts.map +1 -1
- package/dist/components/shared/QuestionNumber.js +4 -1
- package/dist/components/shared/QuestionNumber.js.map +1 -1
- package/dist/components/shared/markText.d.ts +6 -0
- package/dist/components/shared/markText.d.ts.map +1 -0
- package/dist/components/shared/markText.js +77 -0
- package/dist/components/shared/markText.js.map +1 -0
- package/dist/createRenderChildNodes.d.ts +2 -0
- package/dist/createRenderChildNodes.d.ts.map +1 -1
- package/dist/createRenderChildNodes.js +4 -3
- package/dist/createRenderChildNodes.js.map +1 -1
- package/dist/dom-utils.js +1 -1
- package/dist/dom-utils.js.map +1 -1
- package/dist/eslint.config.d.ts +22 -0
- package/dist/eslint.config.d.ts.map +1 -0
- package/dist/eslint.config.js +31 -0
- package/dist/eslint.config.js.map +1 -0
- package/dist/i18n/exam_titles_fi-FI.d.ts +46 -0
- package/dist/i18n/exam_titles_fi-FI.d.ts.map +1 -0
- package/dist/i18n/exam_titles_fi-FI.js +46 -0
- package/dist/i18n/exam_titles_fi-FI.js.map +1 -0
- package/dist/i18n/exam_titles_fi-FI.json +45 -0
- package/dist/i18n/exam_titles_sv-FI.d.ts +46 -0
- package/dist/i18n/exam_titles_sv-FI.d.ts.map +1 -0
- package/dist/i18n/exam_titles_sv-FI.js +46 -0
- package/dist/i18n/exam_titles_sv-FI.js.map +1 -0
- package/dist/i18n/exam_titles_sv-FI.json +45 -0
- package/dist/i18n/exams.d.ts +11 -0
- package/dist/i18n/exams.d.ts.map +1 -0
- package/dist/i18n/exams.js +10 -0
- package/dist/i18n/exams.js.map +1 -0
- package/dist/i18n/fi-FI.d.ts +0 -3
- package/dist/i18n/fi-FI.d.ts.map +1 -1
- package/dist/i18n/fi-FI.js +0 -3
- package/dist/i18n/fi-FI.js.map +1 -1
- package/dist/i18n/sv-FI.d.ts.map +1 -1
- package/dist/i18n/sv-FI.js +0 -3
- package/dist/i18n/sv-FI.js.map +1 -1
- package/dist/main-bundle.js +13 -13
- package/dist/main-bundle.js.LICENSE.txt +0 -7
- package/dist/main.css +1 -1
- package/dist/parser/parseExamStructure.d.ts +1 -8
- package/dist/parser/parseExamStructure.d.ts.map +1 -1
- package/dist/parser/parseExamStructure.js +1 -1
- package/dist/parser/parseExamStructure.js.map +1 -1
- package/dist/types/ExamAnnotations.d.ts +46 -0
- package/dist/types/ExamAnnotations.d.ts.map +1 -0
- package/dist/types/ExamAnnotations.js +2 -0
- package/dist/types/ExamAnnotations.js.map +1 -0
- package/dist/types/ExamAnswer.d.ts +1 -5
- package/dist/types/ExamAnswer.d.ts.map +1 -1
- package/dist/types/ExamServerAPI.d.ts +0 -4
- package/dist/types/ExamServerAPI.d.ts.map +1 -1
- package/dist/types/GradingStructure.d.ts +1 -7
- package/dist/types/GradingStructure.d.ts.map +1 -1
- package/dist/validateAnswers.d.ts.map +1 -1
- package/dist/validateAnswers.js +0 -1
- package/dist/validateAnswers.js.map +1 -1
- package/package.json +2 -3
- package/dist/components/exam/AudioAnswer.d.ts +0 -7
- package/dist/components/exam/AudioAnswer.d.ts.map +0 -1
- package/dist/components/exam/AudioAnswer.js +0 -79
- package/dist/components/exam/AudioAnswer.js.map +0 -1
- package/dist/components/exam/AudioAnswerRecorder.d.ts +0 -10
- package/dist/components/exam/AudioAnswerRecorder.d.ts.map +0 -1
- package/dist/components/exam/AudioAnswerRecorder.js +0 -28
- package/dist/components/exam/AudioAnswerRecorder.js.map +0 -1
- package/dist/components/exam/OralAnswer.d.ts +0 -6
- package/dist/components/exam/OralAnswer.d.ts.map +0 -1
- package/dist/components/exam/OralAnswer.js +0 -18
- package/dist/components/exam/OralAnswer.js.map +0 -1
- package/dist/components/results/AudioAnswer.d.ts +0 -6
- package/dist/components/results/AudioAnswer.d.ts.map +0 -1
- package/dist/components/results/AudioAnswer.js +0 -13
- package/dist/components/results/AudioAnswer.js.map +0 -1
- package/dist/components/shared/internal/AudioError.d.ts +0 -8
- package/dist/components/shared/internal/AudioError.d.ts.map +0 -1
- package/dist/components/shared/internal/AudioError.js +0 -17
- package/dist/components/shared/internal/AudioError.js.map +0 -1
- package/dist/components/shared/internal/AudioRecordingError.d.ts +0 -8
- package/dist/components/shared/internal/AudioRecordingError.d.ts.map +0 -1
- package/dist/components/shared/internal/AudioRecordingError.js +0 -17
- package/dist/components/shared/internal/AudioRecordingError.js.map +0 -1
- package/dist/node_modules_music-metadata_lib_aiff_AiffParser_js.main-bundle.js +0 -33
- package/dist/node_modules_music-metadata_lib_dsdiff_DsdiffParser_js.main-bundle.js +0 -26
- package/dist/node_modules_music-metadata_lib_dsf_DsfParser_js.main-bundle.js +0 -33
- package/dist/node_modules_music-metadata_lib_wavpack_WavPackParser_js.main-bundle.js +0 -26
- package/dist/vendors-node_modules_music-metadata_lib_asf_AsfParser_js.main-bundle.js +0 -40
- package/dist/vendors-node_modules_music-metadata_lib_flac_FlacParser_js.main-bundle.js +0 -47
- package/dist/vendors-node_modules_music-metadata_lib_id3v2_ID3v2Parser_js.main-bundle.js +0 -26
- package/dist/vendors-node_modules_music-metadata_lib_matroska_MatroskaParser_js.main-bundle.js +0 -40
- package/dist/vendors-node_modules_music-metadata_lib_mp4_MP4Parser_js.main-bundle.js +0 -33
- package/dist/vendors-node_modules_music-metadata_lib_mpeg_MpegParser_js.main-bundle.js +0 -47
- package/dist/vendors-node_modules_music-metadata_lib_musepack_MusepackParser_js.main-bundle.js +0 -68
- package/dist/vendors-node_modules_music-metadata_lib_ogg_OggParser_js.main-bundle.js +0 -82
- package/dist/vendors-node_modules_music-metadata_lib_wav_WaveParser_js.main-bundle.js +0 -40
@@ -1,40 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
/*
|
3
|
-
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
4
|
-
* This devtool is neither made for production nor for readable output files.
|
5
|
-
* It uses "eval()" calls to create a separate source file in the browser devtools.
|
6
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
7
|
-
* or disable the default devtool with "devtool: false".
|
8
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
9
|
-
*/
|
10
|
-
(this["webpackChunkExamBundle"] = this["webpackChunkExamBundle"] || []).push([["vendors-node_modules_music-metadata_lib_wav_WaveParser_js"],{
|
11
|
-
|
12
|
-
/***/ "../../node_modules/music-metadata/lib/riff/RiffChunk.js":
|
13
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
14
|
-
|
15
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Header: () => (/* binding */ Header),\n/* harmony export */ ListInfoTagValue: () => (/* binding */ ListInfoTagValue)\n/* harmony export */ });\n/* harmony import */ var token_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"../../node_modules/token-types/lib/index.js\");\n\n/**\n * Common RIFF chunk header\n */\nconst Header = {\n len: 8,\n get: (buf, off) => {\n return {\n // Group-ID\n chunkID: new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(4, 'latin1').get(buf, off),\n // Size\n chunkSize: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT32_LE.get(buf, off + 4)\n };\n }\n};\n/**\n * Token to parse RIFF-INFO tag value\n */\nclass ListInfoTagValue {\n constructor(tagHeader) {\n this.tagHeader = tagHeader;\n this.len = tagHeader.chunkSize;\n this.len += this.len & 1; // if it is an odd length, round up to even\n }\n get(buf, off) {\n return new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(this.tagHeader.chunkSize, 'ascii').get(buf, off);\n }\n}\n//# sourceMappingURL=RiffChunk.js.map\n\n//# sourceURL=webpack://ExamBundle/../../node_modules/music-metadata/lib/riff/RiffChunk.js?");
|
16
|
-
|
17
|
-
/***/ }),
|
18
|
-
|
19
|
-
/***/ "../../node_modules/music-metadata/lib/wav/BwfChunk.js":
|
20
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
21
|
-
|
22
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BroadcastAudioExtensionChunk: () => (/* binding */ BroadcastAudioExtensionChunk)\n/* harmony export */ });\n/* harmony import */ var token_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"../../node_modules/token-types/lib/index.js\");\n/* harmony import */ var _common_Util_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"../../node_modules/music-metadata/lib/common/Util.js\");\n\n\n/**\n * Broadcast Audio Extension Chunk\n * Ref: https://tech.ebu.ch/docs/tech/tech3285.pdf\n */\nconst BroadcastAudioExtensionChunk = {\n len: 420,\n get: (uint8array, off) => {\n return {\n description: (0,_common_Util_js__WEBPACK_IMPORTED_MODULE_1__.stripNulls)(new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(256, 'ascii').get(uint8array, off)).trim(),\n originator: (0,_common_Util_js__WEBPACK_IMPORTED_MODULE_1__.stripNulls)(new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(32, 'ascii').get(uint8array, off + 256)).trim(),\n originatorReference: (0,_common_Util_js__WEBPACK_IMPORTED_MODULE_1__.stripNulls)(new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(32, 'ascii').get(uint8array, off + 288)).trim(),\n originationDate: (0,_common_Util_js__WEBPACK_IMPORTED_MODULE_1__.stripNulls)(new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(10, 'ascii').get(uint8array, off + 320)).trim(),\n originationTime: (0,_common_Util_js__WEBPACK_IMPORTED_MODULE_1__.stripNulls)(new token_types__WEBPACK_IMPORTED_MODULE_0__.StringType(8, 'ascii').get(uint8array, off + 330)).trim(),\n timeReferenceLow: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT32_LE.get(uint8array, off + 338),\n timeReferenceHigh: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT32_LE.get(uint8array, off + 342),\n version: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(uint8array, off + 346),\n umid: new token_types__WEBPACK_IMPORTED_MODULE_0__.Uint8ArrayType(64).get(uint8array, off + 348),\n loudnessValue: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(uint8array, off + 412),\n maxTruePeakLevel: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(uint8array, off + 414),\n maxMomentaryLoudness: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(uint8array, off + 416),\n maxShortTermLoudness: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(uint8array, off + 418)\n };\n }\n};\n//# sourceMappingURL=BwfChunk.js.map\n\n//# sourceURL=webpack://ExamBundle/../../node_modules/music-metadata/lib/wav/BwfChunk.js?");
|
23
|
-
|
24
|
-
/***/ }),
|
25
|
-
|
26
|
-
/***/ "../../node_modules/music-metadata/lib/wav/WaveChunk.js":
|
27
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
28
|
-
|
29
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FactChunk: () => (/* binding */ FactChunk),\n/* harmony export */ Format: () => (/* binding */ Format),\n/* harmony export */ WaveContentError: () => (/* binding */ WaveContentError),\n/* harmony export */ WaveFormat: () => (/* binding */ WaveFormat)\n/* harmony export */ });\n/* harmony import */ var token_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"../../node_modules/token-types/lib/index.js\");\n/* harmony import */ var _ParseError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"../../node_modules/music-metadata/lib/ParseError.js\");\n\n\nclass WaveContentError extends (0,_ParseError_js__WEBPACK_IMPORTED_MODULE_1__.makeUnexpectedFileContentError)('Wave') {\n}\n/**\n * Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/dd317599(v=vs.85).aspx\n */\nvar WaveFormat;\n(function (WaveFormat) {\n WaveFormat[WaveFormat[\"PCM\"] = 1] = \"PCM\";\n // MPEG-4 and AAC Audio Types\n WaveFormat[WaveFormat[\"ADPCM\"] = 2] = \"ADPCM\";\n WaveFormat[WaveFormat[\"IEEE_FLOAT\"] = 3] = \"IEEE_FLOAT\";\n WaveFormat[WaveFormat[\"MPEG_ADTS_AAC\"] = 5632] = \"MPEG_ADTS_AAC\";\n WaveFormat[WaveFormat[\"MPEG_LOAS\"] = 5634] = \"MPEG_LOAS\";\n WaveFormat[WaveFormat[\"RAW_AAC1\"] = 255] = \"RAW_AAC1\";\n // Dolby Audio Types\n WaveFormat[WaveFormat[\"DOLBY_AC3_SPDIF\"] = 146] = \"DOLBY_AC3_SPDIF\";\n WaveFormat[WaveFormat[\"DVM\"] = 8192] = \"DVM\";\n WaveFormat[WaveFormat[\"RAW_SPORT\"] = 576] = \"RAW_SPORT\";\n WaveFormat[WaveFormat[\"ESST_AC3\"] = 577] = \"ESST_AC3\";\n WaveFormat[WaveFormat[\"DRM\"] = 9] = \"DRM\";\n WaveFormat[WaveFormat[\"DTS2\"] = 8193] = \"DTS2\";\n WaveFormat[WaveFormat[\"MPEG\"] = 80] = \"MPEG\";\n})(WaveFormat || (WaveFormat = {}));\n/**\n * format chunk; chunk-id is \"fmt \"\n * http://soundfile.sapp.org/doc/WaveFormat/\n */\nclass Format {\n constructor(header) {\n if (header.chunkSize < 16)\n throw new WaveContentError('Invalid chunk size');\n this.len = header.chunkSize;\n }\n get(buf, off) {\n return {\n wFormatTag: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(buf, off),\n nChannels: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(buf, off + 2),\n nSamplesPerSec: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT32_LE.get(buf, off + 4),\n nAvgBytesPerSec: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT32_LE.get(buf, off + 8),\n nBlockAlign: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(buf, off + 12),\n wBitsPerSample: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT16_LE.get(buf, off + 14)\n };\n }\n}\n/**\n * Fact chunk; chunk-id is \"fact\"\n * http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html\n * http://www.recordingblogs.com/wiki/fact-chunk-of-a-wave-file\n */\nclass FactChunk {\n constructor(header) {\n if (header.chunkSize < 4) {\n throw new WaveContentError('Invalid fact chunk size.');\n }\n this.len = header.chunkSize;\n }\n get(buf, off) {\n return {\n dwSampleLength: token_types__WEBPACK_IMPORTED_MODULE_0__.UINT32_LE.get(buf, off)\n };\n }\n}\n//# sourceMappingURL=WaveChunk.js.map\n\n//# sourceURL=webpack://ExamBundle/../../node_modules/music-metadata/lib/wav/WaveChunk.js?");
|
30
|
-
|
31
|
-
/***/ }),
|
32
|
-
|
33
|
-
/***/ "../../node_modules/music-metadata/lib/wav/WaveParser.js":
|
34
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
35
|
-
|
36
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WaveParser: () => (/* binding */ WaveParser)\n/* harmony export */ });\n/* harmony import */ var strtok3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"../../node_modules/strtok3/lib/core.js\");\n/* harmony import */ var token_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"../../node_modules/token-types/lib/index.js\");\n/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"../../node_modules/debug/src/browser.js\");\n/* harmony import */ var _riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"../../node_modules/music-metadata/lib/riff/RiffChunk.js\");\n/* harmony import */ var _WaveChunk_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"../../node_modules/music-metadata/lib/wav/WaveChunk.js\");\n/* harmony import */ var _id3v2_ID3v2Parser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"../../node_modules/music-metadata/lib/id3v2/ID3v2Parser.js\");\n/* harmony import */ var _common_Util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"../../node_modules/music-metadata/lib/common/Util.js\");\n/* harmony import */ var _common_FourCC_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"../../node_modules/music-metadata/lib/common/FourCC.js\");\n/* harmony import */ var _common_BasicParser_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"../../node_modules/music-metadata/lib/common/BasicParser.js\");\n/* harmony import */ var _BwfChunk_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"../../node_modules/music-metadata/lib/wav/BwfChunk.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst debug = debug__WEBPACK_IMPORTED_MODULE_2__('music-metadata:parser:RIFF');\n/**\n * Resource Interchange File Format (RIFF) Parser\n *\n * WAVE PCM soundfile format\n *\n * Ref:\n * - http://www.johnloomis.org/cpe102/asgn/asgn1/riff.html\n * - http://soundfile.sapp.org/doc/WaveFormat\n *\n * ToDo: Split WAVE part from RIFF parser\n */\nclass WaveParser extends _common_BasicParser_js__WEBPACK_IMPORTED_MODULE_8__.BasicParser {\n constructor() {\n super(...arguments);\n this.blockAlign = 0;\n }\n async parse() {\n const riffHeader = await this.tokenizer.readToken(_riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__.Header);\n debug(`pos=${this.tokenizer.position}, parse: chunkID=${riffHeader.chunkID}`);\n if (riffHeader.chunkID !== 'RIFF')\n return; // Not RIFF format\n return this.parseRiffChunk(riffHeader.chunkSize).catch(err => {\n if (!(err instanceof strtok3__WEBPACK_IMPORTED_MODULE_0__.EndOfStreamError)) {\n throw err;\n }\n });\n }\n async parseRiffChunk(chunkSize) {\n const type = await this.tokenizer.readToken(_common_FourCC_js__WEBPACK_IMPORTED_MODULE_7__.FourCcToken);\n this.metadata.setFormat('container', type);\n switch (type) {\n case 'WAVE':\n return this.readWaveChunk(chunkSize - _common_FourCC_js__WEBPACK_IMPORTED_MODULE_7__.FourCcToken.len);\n default:\n throw new _WaveChunk_js__WEBPACK_IMPORTED_MODULE_4__.WaveContentError(`Unsupported RIFF format: RIFF/${type}`);\n }\n }\n async readWaveChunk(remaining) {\n while (remaining >= _riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__.Header.len) {\n const header = await this.tokenizer.readToken(_riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__.Header);\n remaining -= _riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__.Header.len + header.chunkSize;\n if (header.chunkSize > remaining) {\n this.metadata.addWarning('Data chunk size exceeds file size');\n }\n this.header = header;\n debug(`pos=${this.tokenizer.position}, readChunk: chunkID=RIFF/WAVE/${header.chunkID}`);\n switch (header.chunkID) {\n case 'LIST':\n await this.parseListTag(header);\n break;\n case 'fact': // extended Format chunk,\n this.metadata.setFormat('lossless', false);\n this.fact = await this.tokenizer.readToken(new _WaveChunk_js__WEBPACK_IMPORTED_MODULE_4__.FactChunk(header));\n break;\n case 'fmt ': { // The Util Chunk, non-PCM Formats\n const fmt = await this.tokenizer.readToken(new _WaveChunk_js__WEBPACK_IMPORTED_MODULE_4__.Format(header));\n let subFormat = _WaveChunk_js__WEBPACK_IMPORTED_MODULE_4__.WaveFormat[fmt.wFormatTag];\n if (!subFormat) {\n debug(`WAVE/non-PCM format=${fmt.wFormatTag}`);\n subFormat = `non-PCM (${fmt.wFormatTag})`;\n }\n this.metadata.setFormat('codec', subFormat);\n this.metadata.setFormat('bitsPerSample', fmt.wBitsPerSample);\n this.metadata.setFormat('sampleRate', fmt.nSamplesPerSec);\n this.metadata.setFormat('numberOfChannels', fmt.nChannels);\n this.metadata.setFormat('bitrate', fmt.nBlockAlign * fmt.nSamplesPerSec * 8);\n this.blockAlign = fmt.nBlockAlign;\n break;\n }\n case 'id3 ': // The way Picard, FooBar currently stores, ID3 meta-data\n case 'ID3 ': { // The way Mp3Tags stores ID3 meta-data\n const id3_data = await this.tokenizer.readToken(new token_types__WEBPACK_IMPORTED_MODULE_1__.Uint8ArrayType(header.chunkSize));\n const rst = strtok3__WEBPACK_IMPORTED_MODULE_0__.fromBuffer(id3_data);\n await new _id3v2_ID3v2Parser_js__WEBPACK_IMPORTED_MODULE_5__.ID3v2Parser().parse(this.metadata, rst, this.options);\n break;\n }\n case 'data': { // PCM-data\n if (this.metadata.format.lossless !== false) {\n this.metadata.setFormat('lossless', true);\n }\n let chunkSize = header.chunkSize;\n if (this.tokenizer.fileInfo.size) {\n const calcRemaining = this.tokenizer.fileInfo.size - this.tokenizer.position;\n if (calcRemaining < chunkSize) {\n this.metadata.addWarning('data chunk length exceeding file length');\n chunkSize = calcRemaining;\n }\n }\n const numberOfSamples = this.fact ? this.fact.dwSampleLength : (chunkSize === 0xffffffff ? undefined : chunkSize / this.blockAlign);\n if (numberOfSamples) {\n this.metadata.setFormat('numberOfSamples', numberOfSamples);\n if (this.metadata.format.sampleRate) {\n this.metadata.setFormat('duration', numberOfSamples / this.metadata.format.sampleRate);\n }\n }\n if (this.metadata.format.codec === 'ADPCM') { // ADPCM is 4 bits lossy encoding resulting in 352kbps\n this.metadata.setFormat('bitrate', 352000);\n }\n else if (this.metadata.format.sampleRate) {\n this.metadata.setFormat('bitrate', this.blockAlign * this.metadata.format.sampleRate * 8);\n }\n await this.tokenizer.ignore(header.chunkSize);\n break;\n }\n case 'bext': { // Broadcast Audio Extension chunk\thttps://tech.ebu.ch/docs/tech/tech3285.pdf\n const bext = await this.tokenizer.readToken(_BwfChunk_js__WEBPACK_IMPORTED_MODULE_9__.BroadcastAudioExtensionChunk);\n Object.keys(bext).forEach(key => {\n this.metadata.addTag('exif', `bext.${key}`, bext[key]);\n });\n const bextRemaining = header.chunkSize - _BwfChunk_js__WEBPACK_IMPORTED_MODULE_9__.BroadcastAudioExtensionChunk.len;\n await this.tokenizer.ignore(bextRemaining);\n break;\n }\n case '\\x00\\x00\\x00\\x00': // padding ??\n debug(`Ignore padding chunk: RIFF/${header.chunkID} of ${header.chunkSize} bytes`);\n this.metadata.addWarning(`Ignore chunk: RIFF/${header.chunkID}`);\n await this.tokenizer.ignore(header.chunkSize);\n break;\n default:\n debug(`Ignore chunk: RIFF/${header.chunkID} of ${header.chunkSize} bytes`);\n this.metadata.addWarning(`Ignore chunk: RIFF/${header.chunkID}`);\n await this.tokenizer.ignore(header.chunkSize);\n }\n if (this.header.chunkSize % 2 === 1) {\n debug('Read odd padding byte'); // https://wiki.multimedia.cx/index.php/RIFF\n await this.tokenizer.ignore(1);\n }\n }\n }\n async parseListTag(listHeader) {\n const listType = await this.tokenizer.readToken(new token_types__WEBPACK_IMPORTED_MODULE_1__.StringType(4, 'latin1'));\n debug('pos=%s, parseListTag: chunkID=RIFF/WAVE/LIST/%s', this.tokenizer.position, listType);\n switch (listType) {\n case 'INFO':\n return this.parseRiffInfoTags(listHeader.chunkSize - 4);\n default:\n this.metadata.addWarning(`Ignore chunk: RIFF/WAVE/LIST/${listType}`);\n debug(`Ignoring chunkID=RIFF/WAVE/LIST/${listType}`);\n return this.tokenizer.ignore(listHeader.chunkSize - 4).then();\n }\n }\n async parseRiffInfoTags(chunkSize) {\n while (chunkSize >= 8) {\n const header = await this.tokenizer.readToken(_riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__.Header);\n const valueToken = new _riff_RiffChunk_js__WEBPACK_IMPORTED_MODULE_3__.ListInfoTagValue(header);\n const value = await this.tokenizer.readToken(valueToken);\n this.addTag(header.chunkID, _common_Util_js__WEBPACK_IMPORTED_MODULE_6__.stripNulls(value));\n chunkSize -= (8 + valueToken.len);\n }\n if (chunkSize !== 0) {\n throw new _WaveChunk_js__WEBPACK_IMPORTED_MODULE_4__.WaveContentError(`Illegal remaining size: ${chunkSize}`);\n }\n }\n addTag(id, value) {\n this.metadata.addTag('exif', id, value);\n }\n}\n//# sourceMappingURL=WaveParser.js.map\n\n//# sourceURL=webpack://ExamBundle/../../node_modules/music-metadata/lib/wav/WaveParser.js?");
|
37
|
-
|
38
|
-
/***/ })
|
39
|
-
|
40
|
-
}]);
|