UNPKG

srt-validator

Version:
1 lines 8.3 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.srtValidator=t():e.srtValidator=t()}(self,(function(){return(()=>{"use strict";var e={170:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default={hour:36e5,minute:6e4,second:1e3}},544:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=r(916),o=r(234);t.default={parse:n.default,serialize:o.default}},916:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseTimeStamp=void 0;var n=r(734),o=r(572),a=r(170),u=/\r?\n/,i=/\s$/,s=/^(\d{2}):(\d{2}):(\d{2}),(\d{3})$/;function c(e,t){if(!e)throw new o.default("Missing sequence number",t,n.default.PARSER_ERROR_MISSING_SEQUENCE_NUMBER);var r=Number(e);if(!Number.isInteger(r)||i.test(e))throw new o.default("Expected Integer for sequence number: ".concat(e),t,n.default.PARSER_ERROR_INVALID_SEQUENCE_NUMBER);return r}function l(e,t){var r=s.exec(e);if(!r)throw new o.default("Invalid time stamp: ".concat(e),t,n.default.PARSER_ERROR_INVALID_TIME_STAMP);var u=r.slice(1).map(Number),i=u[0],c=u[1],l=u[2],d=u[3];return i*a.default.hour+c*a.default.minute+l*a.default.second+d}function d(e,t){if(!e)throw new o.default("Missing time span",t,n.default.PARSER_ERROR_MISSING_TIME_SPAN);var r=e.split(" --\x3e "),a=r[0],u=r[1];if(!a||!u||i.test(e))throw new o.default("Invalid time span: ".concat(e),t,n.default.PARSER_ERROR_INVALID_TIME_SPAN);return{start:l(a,t),end:l(u,t)}}t.parseTimeStamp=l,t.default=function(e){for(var t=e.trimEnd().split(u),r=[],a=0;a<t.length;a+=1){var i={chunkStart:a,timeSpan:a,text:a,chunkEnd:a},s=c(t[a],a);a+=1,i.timeSpan=a;var l=d(t[a],a);a+=1,i.text=a;for(var f=[];t[a]&&t[a].trim();)f.push(t[a]),a+=1;var _=f.join("\n");if(!_)throw new o.default("Missing caption text",a,n.default.PARSER_ERROR_MISSING_TEXT);i.chunkEnd=a-1,r.push({lineNumbers:i,sequenceNumber:s,time:l,text:_})}return r}},234:function(e,t,r){var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=r(170),a="\n";function u(e,t){var r=e,n=e/o.default.hour,a=(r%=o.default.hour)/o.default.minute,u=(r%=o.default.minute)/o.default.second;r%=o.default.second;var i=[2,2,2,3],s=[n,a,u,r].map((function(e,t){return"".concat(Math.floor(e)).padStart(i[t],"0")})),c=s[0],l=s[1],d=s[2],f=s[3];return"".concat(c,":").concat(l,":").concat(d).concat(t).concat(f)}t.default=function(e,t){void 0===t&&(t="SRT");var r={FILE_HEADER:"",MS_SEPERATOR:",",FORMAT_TEXT:function(e){return e},CHUNK_SEPARATOR:"".concat(a).concat(a)};switch(t.toLowerCase()){case"webvtt":r=n(n({},r),{FILE_HEADER:"WEBVTT".concat(a).concat(a),MS_SEPERATOR:"."});break;case"srt":break;default:throw new Error("Unrecognized format: ".concat(t))}return r.FILE_HEADER+e.map((function(e){return"".concat(e.sequenceNumber,"\n").concat((t=e.time,n=r.MS_SEPERATOR,"".concat(u(t.start,n)," --\x3e ").concat(u(t.end,n))),"\n").concat(r.FORMAT_TEXT(e.text));var t,n})).join(r.CHUNK_SEPARATOR)}},734:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.PARSER_ERROR_MISSING_TEXT="parserErrorMissingText",e.PARSER_ERROR_MISSING_SEQUENCE_NUMBER="parserErrorMissingSequenceNumber",e.PARSER_ERROR_INVALID_SEQUENCE_NUMBER="parserErrorInvalidSequenceNumber",e.PARSER_ERROR_MISSING_TIME_SPAN="parserErrorMissingTimeSpan",e.PARSER_ERROR_INVALID_TIME_SPAN="parserErrorInvalidTimeSpan",e.PARSER_ERROR_INVALID_TIME_STAMP="parserErrorInvalidTimeStamp",e.VALIDATOR_ERROR_START_TIME="validatorErrorStartTime",e.VALIDATOR_ERROR_END_TIME="validatorErrorEndTime",e.VALIDATOR_ERROR_SEQUENCE_NUMBER_START="validatorErrorSequenceNumberStart",e.VALIDATOR_ERROR_SEQUENCE_NUMBER_INCREMENT="validatorErrorSequenceNumberIncrement"}(r||(r={})),t.default=r},572:function(e,t){var r,n=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,r,n){var o=e.call(this,t)||this;return o.lineNumber=r,o.errorCode=n,o.lineNumber=r+1,o.errorCode=n,o}return n(t,e),t}(Error);t.default=o},969:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.parsedJSON=e,this.result=[],this.parsedJSON=e}return e.prototype.addToResult=function(e){this.result.push(e)},e}();t.default=r},513:function(e,t,r){var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var a=r(969),u=r(734),i=function(e){function t(t){var r=e.call(this,t)||this;return r.parsedJSON=t,r.validator="CaptionTimeSpanValidator",r}return o(t,e),t.prototype.validate=function(){var e=this;if(!this.parsedJSON.length)return this.result;var t=0;return this.parsedJSON.map((function(t){var r=t.time,n=r.start,o=r.end,a=t.lineNumbers;return n>=o&&e.addToResult({errorCode:u.default.VALIDATOR_ERROR_START_TIME,message:"start time should be less than end time",lineNumber:a.timeSpan+1,validator:e.validator}),{start:n,end:o,lineNumbers:a}})).forEach((function(r,n){var o=r.start,a=r.end,i=r.lineNumbers;0!==n?(t>o&&e.addToResult({errorCode:u.default.VALIDATOR_ERROR_END_TIME,message:"start time should be less than previous end time",lineNumber:i.timeSpan+1,validator:e.validator}),t=a):t=a})),this.result},t}(a.default);t.default=i},531:function(e,t,r){var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var a=r(969),u=r(734),i=function(e){function t(t){var r=e.call(this,t)||this;return r.parsedJSON=t,r.validator="LineNumberValidator",r}return o(t,e),t.prototype.validate=function(){if(!this.parsedJSON.length)return this.result;1!==this.parsedJSON[0].sequenceNumber&&this.addToResult({errorCode:u.default.VALIDATOR_ERROR_SEQUENCE_NUMBER_START,message:"number of sequence need to start with 1",lineNumber:this.parsedJSON[0].lineNumbers.chunkStart+1,validator:this.validator});for(var e=1;e<this.parsedJSON.length;e+=1){var t=this.parsedJSON[e],r=t.sequenceNumber,n=t.lineNumbers;r!==e+1&&this.addToResult({errorCode:u.default.VALIDATOR_ERROR_SEQUENCE_NUMBER_INCREMENT,message:"number of sequence need to increment by 1",lineNumber:n.chunkStart+1,validator:this.validator})}return this.result},t}(a.default);t.default=i}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.parser=e.validator=void 0;var t=r(544),o=r(513),a=r(531);function u(e){var r,n,u,i=[];try{r=t.default.parse(e)}catch(e){i.push(e)}return i.length?i:(i.push.apply(i,(n=[a.default,o.default],u=r,n.map((function(e){return new e(u).validate()})).reduce((function(e,t){return e.push.apply(e,t),e}),[]))),i.sort((function(e,t){return e.lineNumber-t.lineNumber})))}e.validator=u,e.parser=t.default,e.default=u})(),n})()}));