mirror of
				https://github.com/TeamPiped/Piped.git
				synced 2025-10-30 20:21:58 +00:00 
			
		
		
		
	Merge pull request #3224 from TeamPiped/xmljs-remove
Remove xml-js for fast-xml-parser
This commit is contained in:
		| @@ -15,19 +15,17 @@ | ||||
|         "@fortawesome/free-brands-svg-icons": "6.5.1", | ||||
|         "@fortawesome/free-solid-svg-icons": "6.5.1", | ||||
|         "@fortawesome/vue-fontawesome": "3.0.5", | ||||
|         "buffer": "6.0.3", | ||||
|         "dompurify": "3.0.6", | ||||
|         "fast-xml-parser": "4.3.2", | ||||
|         "hotkeys-js": "3.12.2", | ||||
|         "javascript-time-ago": "2.5.9", | ||||
|         "linkify-html": "4.1.3", | ||||
|         "linkifyjs": "4.1.3", | ||||
|         "qrcode": "^1.5.3", | ||||
|         "shaka-player": "4.7.1", | ||||
|         "stream-browserify": "3.0.0", | ||||
|         "vue": "3.3.10", | ||||
|         "vue-i18n": "9.8.0", | ||||
|         "vue-router": "4.2.5", | ||||
|         "xml-js": "1.6.11" | ||||
|         "vue-router": "4.2.5" | ||||
|     }, | ||||
|     "devDependencies": { | ||||
|         "@iconify-json/fa6-brands": "1.1.17", | ||||
|   | ||||
							
								
								
									
										74
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										74
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @@ -17,12 +17,12 @@ dependencies: | ||||
|   '@fortawesome/vue-fontawesome': | ||||
|     specifier: 3.0.5 | ||||
|     version: 3.0.5(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.3.10) | ||||
|   buffer: | ||||
|     specifier: 6.0.3 | ||||
|     version: 6.0.3 | ||||
|   dompurify: | ||||
|     specifier: 3.0.6 | ||||
|     version: 3.0.6 | ||||
|   fast-xml-parser: | ||||
|     specifier: 4.3.2 | ||||
|     version: 4.3.2 | ||||
|   hotkeys-js: | ||||
|     specifier: 3.12.2 | ||||
|     version: 3.12.2 | ||||
| @@ -41,9 +41,6 @@ dependencies: | ||||
|   shaka-player: | ||||
|     specifier: 4.7.1 | ||||
|     version: 4.7.1 | ||||
|   stream-browserify: | ||||
|     specifier: 3.0.0 | ||||
|     version: 3.0.0 | ||||
|   vue: | ||||
|     specifier: 3.3.10 | ||||
|     version: 3.3.10(typescript@5.3.2) | ||||
| @@ -53,9 +50,6 @@ dependencies: | ||||
|   vue-router: | ||||
|     specifier: 4.2.5 | ||||
|     version: 4.2.5(vue@3.3.10) | ||||
|   xml-js: | ||||
|     specifier: 1.6.11 | ||||
|     version: 1.6.11 | ||||
|  | ||||
| devDependencies: | ||||
|   '@iconify-json/fa6-brands': | ||||
| @@ -2623,10 +2617,6 @@ packages: | ||||
|     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} | ||||
|     dev: true | ||||
|  | ||||
|   /base64-js@1.5.1: | ||||
|     resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} | ||||
|     dev: false | ||||
|  | ||||
|   /big-integer@1.6.52: | ||||
|     resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} | ||||
|     engines: {node: '>=0.6'} | ||||
| @@ -2683,13 +2673,6 @@ packages: | ||||
|     resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} | ||||
|     dev: true | ||||
|  | ||||
|   /buffer@6.0.3: | ||||
|     resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} | ||||
|     dependencies: | ||||
|       base64-js: 1.5.1 | ||||
|       ieee754: 1.2.1 | ||||
|     dev: false | ||||
|  | ||||
|   /builtin-modules@3.3.0: | ||||
|     resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} | ||||
|     engines: {node: '>=6'} | ||||
| @@ -3318,6 +3301,13 @@ packages: | ||||
|     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} | ||||
|     dev: true | ||||
|  | ||||
|   /fast-xml-parser@4.3.2: | ||||
|     resolution: {integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==} | ||||
|     hasBin: true | ||||
|     dependencies: | ||||
|       strnum: 1.0.5 | ||||
|     dev: false | ||||
|  | ||||
|   /fastq@1.15.0: | ||||
|     resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} | ||||
|     dependencies: | ||||
| @@ -3594,10 +3584,6 @@ packages: | ||||
|     resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} | ||||
|     dev: true | ||||
|  | ||||
|   /ieee754@1.2.1: | ||||
|     resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} | ||||
|     dev: false | ||||
|  | ||||
|   /ignore@5.3.0: | ||||
|     resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} | ||||
|     engines: {node: '>= 4'} | ||||
| @@ -3625,6 +3611,7 @@ packages: | ||||
|  | ||||
|   /inherits@2.0.4: | ||||
|     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} | ||||
|     dev: true | ||||
|  | ||||
|   /internal-slot@1.0.6: | ||||
|     resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} | ||||
| @@ -4460,15 +4447,6 @@ packages: | ||||
|       safe-buffer: 5.2.1 | ||||
|     dev: true | ||||
|  | ||||
|   /readable-stream@3.6.2: | ||||
|     resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} | ||||
|     engines: {node: '>= 6'} | ||||
|     dependencies: | ||||
|       inherits: 2.0.4 | ||||
|       string_decoder: 1.3.0 | ||||
|       util-deprecate: 1.0.2 | ||||
|     dev: false | ||||
|  | ||||
|   /readdirp@3.6.0: | ||||
|     resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} | ||||
|     engines: {node: '>=8.10.0'} | ||||
| @@ -4635,6 +4613,7 @@ packages: | ||||
|  | ||||
|   /safe-buffer@5.2.1: | ||||
|     resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} | ||||
|     dev: true | ||||
|  | ||||
|   /safe-regex-test@1.0.0: | ||||
|     resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} | ||||
| @@ -4644,10 +4623,6 @@ packages: | ||||
|       is-regex: 1.1.4 | ||||
|     dev: true | ||||
|  | ||||
|   /sax@1.3.0: | ||||
|     resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} | ||||
|     dev: false | ||||
|  | ||||
|   /semver@6.3.1: | ||||
|     resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} | ||||
|     hasBin: true | ||||
| @@ -4763,13 +4738,6 @@ packages: | ||||
|     deprecated: Please use @jridgewell/sourcemap-codec instead | ||||
|     dev: true | ||||
|  | ||||
|   /stream-browserify@3.0.0: | ||||
|     resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} | ||||
|     dependencies: | ||||
|       inherits: 2.0.4 | ||||
|       readable-stream: 3.6.2 | ||||
|     dev: false | ||||
|  | ||||
|   /string-width@4.2.3: | ||||
|     resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} | ||||
|     engines: {node: '>=8'} | ||||
| @@ -4818,12 +4786,6 @@ packages: | ||||
|       es-abstract: 1.22.3 | ||||
|     dev: true | ||||
|  | ||||
|   /string_decoder@1.3.0: | ||||
|     resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} | ||||
|     dependencies: | ||||
|       safe-buffer: 5.2.1 | ||||
|     dev: false | ||||
|  | ||||
|   /stringify-object@3.3.0: | ||||
|     resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} | ||||
|     engines: {node: '>=4'} | ||||
| @@ -4859,6 +4821,10 @@ packages: | ||||
|     engines: {node: '>=8'} | ||||
|     dev: true | ||||
|  | ||||
|   /strnum@1.0.5: | ||||
|     resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} | ||||
|     dev: false | ||||
|  | ||||
|   /supports-color@5.5.0: | ||||
|     resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} | ||||
|     engines: {node: '>=4'} | ||||
| @@ -5158,6 +5124,7 @@ packages: | ||||
|  | ||||
|   /util-deprecate@1.0.2: | ||||
|     resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} | ||||
|     dev: true | ||||
|  | ||||
|   /vite-plugin-eslint@1.8.1(eslint@8.55.0)(vite@5.0.5): | ||||
|     resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} | ||||
| @@ -5493,13 +5460,6 @@ packages: | ||||
|     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} | ||||
|     dev: true | ||||
|  | ||||
|   /xml-js@1.6.11: | ||||
|     resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} | ||||
|     hasBin: true | ||||
|     dependencies: | ||||
|       sax: 1.3.0 | ||||
|     dev: false | ||||
|  | ||||
|   /xml-name-validator@4.0.0: | ||||
|     resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} | ||||
|     engines: {node: '>=12'} | ||||
|   | ||||
| @@ -1,42 +1,33 @@ | ||||
| // Based of https://github.com/GilgusMaximus/yt-dash-manifest-generator/blob/master/src/DashGenerator.js | ||||
|  | ||||
| import { Buffer } from "buffer"; | ||||
| window.Buffer = Buffer; | ||||
| import { json2xml } from "xml-js"; | ||||
| import { XMLBuilder } from "fast-xml-parser"; | ||||
|  | ||||
| export function generate_dash_file_from_formats(VideoFormats, VideoLength) { | ||||
|     const generatedJSON = generate_xmljs_json_from_data(VideoFormats, VideoLength); | ||||
|     return json2xml(generatedJSON); | ||||
|     const builder = new XMLBuilder({ | ||||
|         ignoreAttributes: false, | ||||
|         allowBooleanAttributes: true, | ||||
|         suppressBooleanAttributes: false, | ||||
|         attributeNamePrefix: "_", | ||||
|     }); | ||||
|     return builder.build(generatedJSON); | ||||
| } | ||||
|  | ||||
| function generate_xmljs_json_from_data(VideoFormatArray, VideoLength) { | ||||
|     const convertJSON = { | ||||
|         declaration: { | ||||
|             attributes: { | ||||
|                 version: "1.0", | ||||
|                 encoding: "utf-8", | ||||
|         "?xml": { | ||||
|             _version: "1.0", | ||||
|             _encoding: "utf-8", | ||||
|             MPD: { | ||||
|                 _xmlns: "urn:mpeg:dash:schema:mpd:2011", | ||||
|                 _profiles: "urn:mpeg:dash:profile:full:2011", | ||||
|                 _minBufferTime: "PT1.5S", | ||||
|                 _type: "static", | ||||
|                 _mediaPresentationDuration: `PT${VideoLength}S`, | ||||
|                 Period: { | ||||
|                     AdaptationSet: generate_adaptation_set(VideoFormatArray), | ||||
|                 }, | ||||
|             }, | ||||
|         }, | ||||
|         elements: [ | ||||
|             { | ||||
|                 type: "element", | ||||
|                 name: "MPD", | ||||
|                 attributes: { | ||||
|                     xmlns: "urn:mpeg:dash:schema:mpd:2011", | ||||
|                     profiles: "urn:mpeg:dash:profile:full:2011", | ||||
|                     minBufferTime: "PT1.5S", | ||||
|                     type: "static", | ||||
|                     mediaPresentationDuration: `PT${VideoLength}S`, | ||||
|                 }, | ||||
|                 elements: [ | ||||
|                     { | ||||
|                         type: "element", | ||||
|                         name: "Period", | ||||
|                         elements: generate_adaptation_set(VideoFormatArray), | ||||
|                     }, | ||||
|                 ], | ||||
|             }, | ||||
|         ], | ||||
|     }; | ||||
|     return convertJSON; | ||||
| } | ||||
| @@ -76,34 +67,27 @@ function generate_adaptation_set(VideoFormatArray) { | ||||
|  | ||||
|     mimeAudioObjs.forEach(mimeAudioObj => { | ||||
|         const adapSet = { | ||||
|             type: "element", | ||||
|             name: "AdaptationSet", | ||||
|             attributes: { | ||||
|                 id: mimeAudioObj.audioTrackId, | ||||
|                 lang: mimeAudioObj.audioTrackId?.substr(0, 2), | ||||
|                 mimeType: mimeAudioObj.mimeType, | ||||
|                 startWithSAP: "1", | ||||
|                 subsegmentAlignment: "true", | ||||
|             }, | ||||
|             elements: [], | ||||
|             _id: mimeAudioObj.audioTrackId, | ||||
|             _lang: mimeAudioObj.audioTrackId?.substr(0, 2), | ||||
|             _mimeType: mimeAudioObj.mimeType, | ||||
|             _startWithSAP: "1", | ||||
|             _subsegmentAlignment: "true", | ||||
|             Representation: [], | ||||
|         }; | ||||
|  | ||||
|         let isVideoFormat = false; | ||||
|  | ||||
|         if (mimeAudioObj.mimeType.includes("video")) { | ||||
|             isVideoFormat = true; | ||||
|         } | ||||
|  | ||||
|         if (isVideoFormat) { | ||||
|             adapSet.attributes.scanType = "progressive"; | ||||
|             adapSet["_scanType"] = "progressive"; | ||||
|         } | ||||
|  | ||||
|         for (var i = 0; i < mimeAudioObj.videoFormats.length; i++) { | ||||
|             const videoFormat = mimeAudioObj.videoFormats[i]; | ||||
|             if (isVideoFormat) { | ||||
|                 adapSet.elements.push(generate_representation_video(videoFormat)); | ||||
|                 adapSet.Representation.push(generate_representation_video(videoFormat)); | ||||
|             } else { | ||||
|                 adapSet.elements.push(generate_representation_audio(videoFormat)); | ||||
|                 adapSet.Representation.push(generate_representation_audio(videoFormat)); | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -114,94 +98,40 @@ function generate_adaptation_set(VideoFormatArray) { | ||||
|  | ||||
| function generate_representation_audio(Format) { | ||||
|     const representation = { | ||||
|         type: "element", | ||||
|         name: "Representation", | ||||
|         attributes: { | ||||
|             id: Format.itag, | ||||
|             codecs: Format.codec, | ||||
|             bandwidth: Format.bitrate, | ||||
|         _id: Format.itag, | ||||
|         _codecs: Format.codec, | ||||
|         _bandwidth: Format.bitrate, | ||||
|         AudioChannelConfiguration: { | ||||
|             _schemeIdUri: "urn:mpeg:dash:23003:3:audio_channel_configuration:2011", | ||||
|             _value: "2", | ||||
|         }, | ||||
|         elements: [ | ||||
|             { | ||||
|                 type: "element", | ||||
|                 name: "AudioChannelConfiguration", | ||||
|                 attributes: { | ||||
|                     schemeIdUri: "urn:mpeg:dash:23003:3:audio_channel_configuration:2011", | ||||
|                     value: "2", | ||||
|                 }, | ||||
|         BaseURL: Format.url, | ||||
|         SegmentBase: { | ||||
|             _indexRange: `${Format.indexStart}-${Format.indexEnd}`, | ||||
|             Initialization: { | ||||
|                 _range: `${Format.initStart}-${Format.initEnd}`, | ||||
|             }, | ||||
|             { | ||||
|                 type: "element", | ||||
|                 name: "BaseURL", | ||||
|                 elements: [ | ||||
|                     { | ||||
|                         type: "text", | ||||
|                         text: Format.url, | ||||
|                     }, | ||||
|                 ], | ||||
|             }, | ||||
|             { | ||||
|                 type: "element", | ||||
|                 name: "SegmentBase", | ||||
|                 attributes: { | ||||
|                     indexRange: `${Format.indexStart}-${Format.indexEnd}`, | ||||
|                 }, | ||||
|                 elements: [ | ||||
|                     { | ||||
|                         type: "element", | ||||
|                         name: "Initialization", | ||||
|                         attributes: { | ||||
|                             range: `${Format.initStart}-${Format.initEnd}`, | ||||
|                         }, | ||||
|                     }, | ||||
|                 ], | ||||
|             }, | ||||
|         ], | ||||
|         }, | ||||
|     }; | ||||
|     return representation; | ||||
| } | ||||
|  | ||||
| function generate_representation_video(Format) { | ||||
|     const representation = { | ||||
|         type: "element", | ||||
|         name: "Representation", | ||||
|         attributes: { | ||||
|             id: Format.itag, | ||||
|             codecs: Format.codec, | ||||
|             bandwidth: Format.bitrate, | ||||
|             width: Format.width, | ||||
|             height: Format.height, | ||||
|             maxPlayoutRate: "1", | ||||
|             frameRate: Format.fps, | ||||
|         _id: Format.itag, | ||||
|         _codecs: Format.codec, | ||||
|         _bandwidth: Format.bitrate, | ||||
|         _width: Format.width, | ||||
|         _height: Format.height, | ||||
|         _maxPlayoutRate: "1", | ||||
|         _frameRate: Format.fps, | ||||
|         BaseURL: Format.url, | ||||
|         SegmentBase: { | ||||
|             _indexRange: `${Format.indexStart}-${Format.indexEnd}`, | ||||
|             Initialization: { | ||||
|                 _range: `${Format.initStart}-${Format.initEnd}`, | ||||
|             }, | ||||
|         }, | ||||
|         elements: [ | ||||
|             { | ||||
|                 type: "element", | ||||
|                 name: "BaseURL", | ||||
|                 elements: [ | ||||
|                     { | ||||
|                         type: "text", | ||||
|                         text: Format.url, | ||||
|                     }, | ||||
|                 ], | ||||
|             }, | ||||
|             { | ||||
|                 type: "element", | ||||
|                 name: "SegmentBase", | ||||
|                 attributes: { | ||||
|                     indexRange: `${Format.indexStart}-${Format.indexEnd}`, | ||||
|                 }, | ||||
|                 elements: [ | ||||
|                     { | ||||
|                         type: "element", | ||||
|                         name: "Initialization", | ||||
|                         attributes: { | ||||
|                             range: `${Format.initStart}-${Format.initEnd}`, | ||||
|                         }, | ||||
|                     }, | ||||
|                 ], | ||||
|             }, | ||||
|         ], | ||||
|     }; | ||||
|     return representation; | ||||
| } | ||||
|   | ||||
| @@ -68,7 +68,6 @@ export default defineConfig({ | ||||
|     resolve: { | ||||
|         alias: { | ||||
|             "@": path.resolve(__dirname, "./src"), | ||||
|             stream: "stream-browserify", | ||||
|         }, | ||||
|     }, | ||||
|     build: { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kavin
					Kavin