@aim-packages/subtitle 0.0.2 → 0.0.3

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/index.cjs.js CHANGED
@@ -1,13 +1,13 @@
1
- "use strict";var b=Object.defineProperty;var j=(s,e,t)=>e in s?b(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var f=(s,e,t)=>j(s,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function g(s,e=2){return s.toString().padStart(e,"0")}function m(s){const e=Math.floor(s/3600),t=Math.floor(s%3600/60),r=s%3600%60,n=Math.floor(r%1*1e3),i=g(e),c=g(t),o=g(Math.floor(r)),d=g(n,3);return`${i}:${c}:${o}.${d}`}function y(s){if(!s)return 0;const e=s.split(":");try{let t=e[2].split(",");return t.length===1&&(t=e[2].split(".")),parseFloat(e[0])*3600+parseFloat(e[1])*60+parseFloat(t[0])+parseFloat("0."+t[1])}catch{return 0}}const w=Object.freeze(Object.defineProperty({__proto__:null,convertToSeconds:y,formatTime:m,padNumber:g},Symbol.toStringTag,{value:"Module"}));/**
1
+ "use strict";var re=Object.defineProperty;var ne=(t,e,r)=>e in t?re(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var d=(t,e,r)=>ne(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function I(t,e=2){return t.toString().padStart(e,"0")}function M(t){const e=Math.floor(t/3600),r=Math.floor(t%3600/60),n=t%3600%60,i=Math.floor(n%1*1e3),s=I(e),o=I(r),f=I(Math.floor(n)),a=I(i,3);return`${s}:${o}:${f}.${a}`}function z(t){if(!t)return 0;const e=t.split(":");try{let r=e[2].split(",");return r.length===1&&(r=e[2].split(".")),parseFloat(e[0])*3600+parseFloat(e[1])*60+parseFloat(r[0])+parseFloat("0."+r[1])}catch{return 0}}function ae(t){return/[\u4E00-\u9FFF\u3040-\u309F\u30A0-\u30FF\uAC00-\uD7AF]/.test(t)}const ie=Object.freeze(Object.defineProperty({__proto__:null,containsCJKCharacters:ae,convertToSeconds:z,formatTime:M,padNumber:I},Symbol.toStringTag,{value:"Module"}));/**
2
2
  * @name ass2vtt
3
3
  * @desc Converts ASS subtitle data into VTT format.
4
4
  * @author YuQian2015 (https://github.com/YuQian2015)
5
5
  * @license MIT
6
- */function F(s){const e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function t(r=""){return r.split(/[:.]/).map((n,i,c)=>{if(i===c.length-1){if(n.length===1)return"."+n+"00";if(n.length===2)return"."+n+"0"}else if(n.length===1)return(i===0?"0":":0")+n;return i===0?n:i===c.length-1?"."+n:":"+n}).join("")}return`WEBVTT
6
+ */function se(t){const e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(n=""){return n.split(/[:.]/).map((i,s,o)=>{if(s===o.length-1){if(i.length===1)return"."+i+"00";if(i.length===2)return"."+i+"0"}else if(i.length===1)return(s===0?"0":":0")+i;return s===0?i:s===o.length-1?"."+i:":"+i}).join("")}return`WEBVTT
7
7
 
8
- `+s.split(/\r?\n/).map(r=>{const n=r.match(e);return n?{start:t(n[1].trim()),end:t(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"<br />").trim().split(/\r?\n/).map(i=>i.trim()).join(`
9
- `)}:null}).filter(r=>r).map((r,n)=>r?r.start+" --> "+r.end+`
10
- `+r.text:"").filter(r=>r.trim()).join(`
8
+ `+t.split(/\r?\n/).map(n=>{const i=n.match(e);return i?{start:r(i[1].trim()),end:r(i[2].trim()),text:i[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"<br />").trim().split(/\r?\n/).map(s=>s.trim()).join(`
9
+ `)}:null}).filter(n=>n).map((n,i)=>n?n.start+" --> "+n.end+`
10
+ `+n.text:"").filter(n=>n.trim()).join(`
11
11
 
12
12
  `)}/**
13
13
  * @name parseSRT
@@ -17,9 +17,9 @@
17
17
  * @author Newtopia Dev (http://www.newtopia.com)
18
18
  * @version 1.0.1
19
19
  * @license MIT
20
- */function $(s,e){let t=e;for(;!s[t];)t++;return t}function M(s){let e=s.length-1;for(;e>=0&&!s[e];)e--;return e}function E(s="",e={propName:{}}){const t=[],r=s.split(/(?:\r\n|\r|\n)/gm).filter(l=>l.length>0),n=r.map((l,a)=>r[a+2]&&/\d{2}:\d{2}:\d{2}[,\.]\d{2,3}\s*-->\s*\d{2}:\d{2}:\d{2}[,\.]\d{2,3}/.test(r[a+2])?l+`\r
21
- `:l).join(`
22
- `).split(/(?:\r\n|\r|\n)/gm),i=M(n)+1;let c=0,o,d,h;for(let l=0;l<i;l++){for(h={},d=[],l=$(n,l),h.id=parseInt(n[l++],10),o=n[l++].split(/[\t ]*-->[\t ]*/),h[e.propName.start||"start"]=e.timeInText?o[0]:y(o[0]),c=o[1].indexOf(" "),c!==-1&&(o[1]=o[1].substr(0,c)),h[e.propName.end||"end"]=e.timeInText?o[1]:y(o[1]);l<i&&n[l];)d.push(n[l++]);const a=e.propName.text||"text";h[a]=d.join(e.keepMultiLine?`
23
- `:" ").replace(/\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}/gi,""),h[a]=h[a].replace(/</g,"&lt;").replace(/>/g,"&gt;"),h[a]=h[a].replace(/&lt;(\/?(font|b|u|i|s))((\s+(\w|\w[\w\-]*\w)(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)(\/?)&gt;/gi,"<$1$3$7>"),e.ignoreLineBreaks?h[a]=h[a].replace(/\\N/gi,""):h[a]=h[a].replace(/\\N/gi,"<br />"),t.push(h)}return t}function N(s,e){const t=/<\/?[^>]+(>|$)/g;return new Promise((r,n)=>{let i={};const c=[];let o=!1;const d=s.split(`
24
- `);d.forEach((l,a)=>{l.replace(t,"")===" "||l.replace(t,"")===""||(l.indexOf("-->")!==-1?(o=!0,typeof i.start=="number"&&i.start>=0&&c.push(v(i)),i={start:k(l.split("-->")[0].trimRight().split(" ").pop()),end:k(l.split("-->")[1].trimLeft().split(" ").shift()),part:""}):o&&(c.length!==0?(c[c.length-1].part.replace(t,""),l.replace(t,""),i.part.length===0?i.part=l:i.part=`${i.part}
25
- ${l}`,a===d.length-1&&c.push(v(i))):(i.part=l,c.push(v(i)),i.part="")))}),i=[];const h=/(<([0-9:.>]+)>)/ig;c.forEach(l=>{const _=l.part.split().map(function(p){return p.replace(h,function(u){return u.split("").reduce(function(T,D){return`==${u.replace("<","").replace(">","")}`},0)})})[0].replace(t,"").split(" "),x=[];_.forEach(function(p){if(p.indexOf("==")>-1){const u=p.split("=="),T=u[0];if(u[1],T==""||T=="##")return;x.push({word:L(p.split("==")[0]),time:k(p.split("==")[1])})}else x.push({word:L(p),time:void 0})}),l.words=x,l.part=l.part.replace(t,"")}),r(c)})}function k(s){const e=s.split(":"),t=e[e.length-3]?+e[e.length-3]:0,r=e[e.length-2]?+e[e.length-2]:0,n=+e[e.length-1];return t*3600+r*60+n}function L(s){return s.replace(/[^0-9a-z'-]/gi,"").toLowerCase()}function v(s){if(s==null||typeof s!="object")return s;const e=s.constructor();for(const t in s)s.hasOwnProperty(t)&&(e[t]=s[t]);return e}async function O(s){return E(s,{keepMultiLine:!0,propName:{}}).filter(r=>r.text).map(r=>({st:m(r.start),et:m(r.end),text:r.text}))}async function S(s){return(await N(s)).filter(r=>r.part).map(r=>({st:m(r.start),et:m(r.end),text:r.part}))}async function P(s){return S(F(s))}const A=Object.freeze(Object.defineProperty({__proto__:null,assToAimSegments:P,srtToAimSegments:O,vttToAimSegments:S},Symbol.toStringTag,{value:"Module"}));class z{constructor(e){f(this,"chains",{});f(this,"delimit","__replace__");f(this,"onFilter");f(this,"checked",!1);f(this,"checkedText","");f(this,"checkedLevel");f(this,"filteredText","");this.onFilter=e}add(e,t){typeof e!="string"&&(e=new TextDecoder().decode(e));const r=e;if(!r)return;let n=this.chains;for(let i=0;i<r.length;i++){if(r[i]in n)n=n[r[i]];else{if(!(n instanceof Object))break;let c,o;for(let d=i;d<r.length;d++)n[r[d]]={},[c,o]=[n,r[d]],n=n[r[d]];c&&o&&(c[o]={[this.delimit]:t||""});break}i===r.length-1&&(n[this.delimit]=t||"")}}parse(e){e.forEach(t=>{this.add(...t)})}reParse(e){this.chains={},e.forEach(t=>{this.add(t[0],t[1])})}feed(e){if(!this.checked&&!this.chains[e]){this.filteredText+=e,this.onFilter&&this.onFilter(e);return}if(!this.checked&&this.chains[e]){this.checked=!0,this.checkedLevel=this.chains[e],this.checkedText+=e;return}if(this.checked&&this.checkedLevel[e]){this.checkedLevel=this.checkedLevel[e],this.checkedText+=e;return}if(this.checked&&!this.checkedLevel[e]){const t=typeof this.checkedLevel[this.delimit]=="string"?this.checkedLevel[this.delimit]:this.checkedText;t&&t.length&&t.split("").forEach(r=>{this.filteredText+=r,this.onFilter&&this.onFilter(r)}),this.checked=!1,this.checkedText="",this.checkedLevel=void 0,this.chains[e]?(this.checked=!0,this.checkedLevel=this.chains[e],this.checkedText=e):(this.onFilter&&this.onFilter(e),this.filteredText+=e)}}feedAll(e){return e.length?(e.split("").forEach(r=>{this.feed(r)}),this.end()):""}end(){if(this.checked&&this.checkedText){const t=typeof this.checkedLevel[this.delimit]=="string"?this.checkedLevel[this.delimit]:this.checkedText;t&&t.length&&t.split("").forEach(r=>{this.onFilter&&this.onFilter(r),this.filteredText+=r}),this.checkedText="",this.checkedLevel=void 0,this.checked=!1}const e=this.filteredText;return this.filteredText="",e}}const I=Object.freeze(Object.defineProperty({__proto__:null,StreamFilter:z},Symbol.toStringTag,{value:"Module"}));exports.filter=I;exports.parser=A;exports.utils=w;
20
+ */function oe(t,e){let r=e;for(;!t[r];)r++;return r}function ce(t){let e=t.length-1;for(;e>=0&&!t[e];)e--;return e}function ue(t="",e={propName:{}}){const r=[],n=t.split(/(?:\r\n|\r|\n)/gm).filter(u=>u.length>0),i=n.map((u,h)=>n[h+2]&&/\d{2}:\d{2}:\d{2}[,\.]\d{2,3}\s*-->\s*\d{2}:\d{2}:\d{2}[,\.]\d{2,3}/.test(n[h+2])?u+`\r
21
+ `:u).join(`
22
+ `).split(/(?:\r\n|\r|\n)/gm),s=ce(i)+1;let o=0,f,a,c;for(let u=0;u<s;u++){for(c={},a=[],u=oe(i,u),c.id=parseInt(i[u++],10),f=i[u++].split(/[\t ]*-->[\t ]*/),c[e.propName.start||"start"]=e.timeInText?f[0]:z(f[0]),o=f[1].indexOf(" "),o!==-1&&(f[1]=f[1].substr(0,o)),c[e.propName.end||"end"]=e.timeInText?f[1]:z(f[1]);u<s&&i[u];)a.push(i[u++]);const h=e.propName.text||"text";c[h]=a.join(e.keepMultiLine?`
23
+ `:" ").replace(/\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}/gi,""),c[h]=c[h].replace(/</g,"&lt;").replace(/>/g,"&gt;"),c[h]=c[h].replace(/&lt;(\/?(font|b|u|i|s))((\s+(\w|\w[\w\-]*\w)(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)(\/?)&gt;/gi,"<$1$3$7>"),e.ignoreLineBreaks?c[h]=c[h].replace(/\\N/gi,""):c[h]=c[h].replace(/\\N/gi,"<br />"),r.push(c)}return r}function fe(t,e){const r=/<\/?[^>]+(>|$)/g;return new Promise((n,i)=>{let s={};const o=[];let f=!1;const a=t.split(`
24
+ `);a.forEach((u,h)=>{u.replace(r,"")===" "||u.replace(r,"")===""||(u.indexOf("-->")!==-1?(f=!0,typeof s.start=="number"&&s.start>=0&&o.push(q(s)),s={start:W(u.split("-->")[0].trimRight().split(" ").pop()),end:W(u.split("-->")[1].trimLeft().split(" ").shift()),part:""}):f&&(o.length!==0?(o[o.length-1].part.replace(r,""),u.replace(r,""),s.part.length===0?s.part=u:s.part=`${s.part}
25
+ ${u}`,h===a.length-1&&o.push(q(s))):(s.part=u,o.push(q(s)),s.part="")))}),s=[];const c=/(<([0-9:.>]+)>)/ig;o.forEach(u=>{const F=u.part.split().map(function(g){return g.replace(c,function(b){return b.split("").reduce(function(V,Ya){return`==${b.replace("<","").replace(">","")}`},0)})})[0].replace(r,"").split(" "),T=[];F.forEach(function(g){if(g.indexOf("==")>-1){const b=g.split("=="),V=b[0];if(b[1],V==""||V=="##")return;T.push({word:ct(g.split("==")[0]),time:W(g.split("==")[1])})}else T.push({word:ct(g),time:void 0})}),u.words=T,u.part=u.part.replace(r,"")}),n(o)})}function W(t){const e=t.split(":"),r=e[e.length-3]?+e[e.length-3]:0,n=e[e.length-2]?+e[e.length-2]:0,i=+e[e.length-1];return r*3600+n*60+i}function ct(t){return t.replace(/[^0-9a-z'-]/gi,"").toLowerCase()}function q(t){if(t==null||typeof t!="object")return t;const e=t.constructor();for(const r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}async function le(t){return ue(t,{keepMultiLine:!0,propName:{}}).filter(n=>n.text).map(n=>({st:M(n.start),et:M(n.end),text:n.text}))}async function Ft(t){return(await fe(t)).filter(n=>n.part).map(n=>({st:M(n.start),et:M(n.end),text:n.part}))}async function he(t){return Ft(se(t))}const pe=Object.freeze(Object.defineProperty({__proto__:null,assToAimSegments:he,srtToAimSegments:le,vttToAimSegments:Ft},Symbol.toStringTag,{value:"Module"}));class ge{constructor(e){d(this,"chains",{});d(this,"delimit","__replace__");d(this,"onFilter");d(this,"checked",!1);d(this,"checkedText","");d(this,"checkedLevel");d(this,"filteredText","");this.onFilter=e}add(e,r){typeof e!="string"&&(e=new TextDecoder().decode(e));const n=e;if(!n)return;let i=this.chains;for(let s=0;s<n.length;s++){if(n[s]in i)i=i[n[s]];else{if(!(i instanceof Object))break;let o,f;for(let a=s;a<n.length;a++)i[n[a]]={},[o,f]=[i,n[a]],i=i[n[a]];o&&f&&(o[f]={[this.delimit]:r||""});break}s===n.length-1&&(i[this.delimit]=r||"")}}parse(e){e.forEach(r=>{this.add(...r)})}reParse(e){this.chains={},e.forEach(r=>{this.add(r[0],r[1])})}feed(e){if(!this.checked&&!this.chains[e]){this.filteredText+=e,this.onFilter&&this.onFilter(e);return}if(!this.checked&&this.chains[e]){this.checked=!0,this.checkedLevel=this.chains[e],this.checkedText+=e;return}if(this.checked&&this.checkedLevel[e]){this.checkedLevel=this.checkedLevel[e],this.checkedText+=e;return}if(this.checked&&!this.checkedLevel[e]){const r=typeof this.checkedLevel[this.delimit]=="string"?this.checkedLevel[this.delimit]:this.checkedText;r&&r.length&&r.split("").forEach(n=>{this.filteredText+=n,this.onFilter&&this.onFilter(n)}),this.checked=!1,this.checkedText="",this.checkedLevel=void 0,this.chains[e]?(this.checked=!0,this.checkedLevel=this.chains[e],this.checkedText=e):(this.onFilter&&this.onFilter(e),this.filteredText+=e)}}feedAll(e){return e.length?(e.split("").forEach(n=>{this.feed(n)}),this.end()):""}end(){if(this.checked&&this.checkedText){const r=typeof this.checkedLevel[this.delimit]=="string"?this.checkedLevel[this.delimit]:this.checkedText;r&&r.length&&r.split("").forEach(n=>{this.onFilter&&this.onFilter(n),this.filteredText+=n}),this.checkedText="",this.checkedLevel=void 0,this.checked=!1}const e=this.filteredText;return this.filteredText="",e}}const de=Object.freeze(Object.defineProperty({__proto__:null,StreamFilter:ge},Symbol.toStringTag,{value:"Module"}));var Ct=typeof global=="object"&&global&&global.Object===Object&&global,be=typeof self=="object"&&self&&self.Object===Object&&self,y=Ct||be||Function("return this")(),x=y.Symbol,It=Object.prototype,ye=It.hasOwnProperty,Te=It.toString,C=x?x.toStringTag:void 0;function ve(t){var e=ye.call(t,C),r=t[C];try{t[C]=void 0;var n=!0}catch{}var i=Te.call(t);return n&&(e?t[C]=r:delete t[C]),i}var _e=Object.prototype,me=_e.toString;function je(t){return me.call(t)}var $e="[object Null]",Se="[object Undefined]",ut=x?x.toStringTag:void 0;function B(t){return t==null?t===void 0?Se:$e:ut&&ut in Object(t)?ve(t):je(t)}function U(t){return t!=null&&typeof t=="object"}var et=Array.isArray;function k(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Oe="[object AsyncFunction]",xe="[object Function]",we="[object GeneratorFunction]",Ae="[object Proxy]";function Lt(t){if(!k(t))return!1;var e=B(t);return e==xe||e==we||e==Oe||e==Ae}var Y=y["__core-js_shared__"],ft=function(){var t=/[^.]+$/.exec(Y&&Y.keys&&Y.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Pe(t){return!!ft&&ft in t}var Ee=Function.prototype,Fe=Ee.toString;function $(t){if(t!=null){try{return Fe.call(t)}catch{}try{return t+""}catch{}}return""}var Ce=/[\\^$.*+?()[\]{}|]/g,Ie=/^\[object .+?Constructor\]$/,Le=Function.prototype,Me=Object.prototype,ze=Le.toString,Ne=Me.hasOwnProperty,De=RegExp("^"+ze.call(Ne).replace(Ce,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Be(t){if(!k(t)||Pe(t))return!1;var e=Lt(t)?De:Ie;return e.test($(t))}function Ue(t,e){return t==null?void 0:t[e]}function S(t,e){var r=Ue(t,e);return Be(r)?r:void 0}var X=S(y,"WeakMap"),lt=Object.create,ke=function(){function t(){}return function(e){if(!k(e))return{};if(lt)return lt(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function Ge(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}var ht=function(){try{var t=S(Object,"defineProperty");return t({},"",{}),t}catch{}}();function Re(t,e){for(var r=-1,n=t==null?0:t.length;++r<n&&e(t[r],r,t)!==!1;);return t}var He=9007199254740991,Ke=/^(?:0|[1-9]\d*)$/;function Ve(t,e){var r=typeof t;return e=e??He,!!e&&(r=="number"||r!="symbol"&&Ke.test(t))&&t>-1&&t%1==0&&t<e}function Mt(t,e,r){e=="__proto__"&&ht?ht(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}function zt(t,e){return t===e||t!==t&&e!==e}var We=Object.prototype,qe=We.hasOwnProperty;function Nt(t,e,r){var n=t[e];(!(qe.call(t,e)&&zt(n,r))||r===void 0&&!(e in t))&&Mt(t,e,r)}function R(t,e,r,n){var i=!r;r||(r={});for(var s=-1,o=e.length;++s<o;){var f=e[s],a=void 0;a===void 0&&(a=t[f]),i?Mt(r,f,a):Nt(r,f,a)}return r}var Ye=9007199254740991;function Dt(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Ye}function Bt(t){return t!=null&&Dt(t.length)&&!Lt(t)}var Je=Object.prototype;function rt(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||Je;return t===r}function Xe(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}var Ze="[object Arguments]";function pt(t){return U(t)&&B(t)==Ze}var Ut=Object.prototype,Qe=Ut.hasOwnProperty,tr=Ut.propertyIsEnumerable,er=pt(function(){return arguments}())?pt:function(t){return U(t)&&Qe.call(t,"callee")&&!tr.call(t,"callee")};function rr(){return!1}var kt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gt=kt&&typeof module=="object"&&module&&!module.nodeType&&module,nr=gt&&gt.exports===kt,dt=nr?y.Buffer:void 0,ar=dt?dt.isBuffer:void 0,Gt=ar||rr,ir="[object Arguments]",sr="[object Array]",or="[object Boolean]",cr="[object Date]",ur="[object Error]",fr="[object Function]",lr="[object Map]",hr="[object Number]",pr="[object Object]",gr="[object RegExp]",dr="[object Set]",br="[object String]",yr="[object WeakMap]",Tr="[object ArrayBuffer]",vr="[object DataView]",_r="[object Float32Array]",mr="[object Float64Array]",jr="[object Int8Array]",$r="[object Int16Array]",Sr="[object Int32Array]",Or="[object Uint8Array]",xr="[object Uint8ClampedArray]",wr="[object Uint16Array]",Ar="[object Uint32Array]",p={};p[_r]=p[mr]=p[jr]=p[$r]=p[Sr]=p[Or]=p[xr]=p[wr]=p[Ar]=!0;p[ir]=p[sr]=p[Tr]=p[or]=p[vr]=p[cr]=p[ur]=p[fr]=p[lr]=p[hr]=p[pr]=p[gr]=p[dr]=p[br]=p[yr]=!1;function Pr(t){return U(t)&&Dt(t.length)&&!!p[B(t)]}function nt(t){return function(e){return t(e)}}var Rt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,L=Rt&&typeof module=="object"&&module&&!module.nodeType&&module,Er=L&&L.exports===Rt,J=Er&&Ct.process,w=function(){try{var t=L&&L.require&&L.require("util").types;return t||J&&J.binding&&J.binding("util")}catch{}}(),bt=w&&w.isTypedArray,Fr=bt?nt(bt):Pr,Cr=Object.prototype,Ir=Cr.hasOwnProperty;function Ht(t,e){var r=et(t),n=!r&&er(t),i=!r&&!n&&Gt(t),s=!r&&!n&&!i&&Fr(t),o=r||n||i||s,f=o?Xe(t.length,String):[],a=f.length;for(var c in t)(e||Ir.call(t,c))&&!(o&&(c=="length"||i&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||Ve(c,a)))&&f.push(c);return f}function Kt(t,e){return function(r){return t(e(r))}}var Lr=Kt(Object.keys,Object),Mr=Object.prototype,zr=Mr.hasOwnProperty;function Nr(t){if(!rt(t))return Lr(t);var e=[];for(var r in Object(t))zr.call(t,r)&&r!="constructor"&&e.push(r);return e}function at(t){return Bt(t)?Ht(t):Nr(t)}function Dr(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var Br=Object.prototype,Ur=Br.hasOwnProperty;function kr(t){if(!k(t))return Dr(t);var e=rt(t),r=[];for(var n in t)n=="constructor"&&(e||!Ur.call(t,n))||r.push(n);return r}function it(t){return Bt(t)?Ht(t,!0):kr(t)}var N=S(Object,"create");function Gr(){this.__data__=N?N(null):{},this.size=0}function Rr(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Hr="__lodash_hash_undefined__",Kr=Object.prototype,Vr=Kr.hasOwnProperty;function Wr(t){var e=this.__data__;if(N){var r=e[t];return r===Hr?void 0:r}return Vr.call(e,t)?e[t]:void 0}var qr=Object.prototype,Yr=qr.hasOwnProperty;function Jr(t){var e=this.__data__;return N?e[t]!==void 0:Yr.call(e,t)}var Xr="__lodash_hash_undefined__";function Zr(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=N&&e===void 0?Xr:e,this}function j(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}j.prototype.clear=Gr;j.prototype.delete=Rr;j.prototype.get=Wr;j.prototype.has=Jr;j.prototype.set=Zr;function Qr(){this.__data__=[],this.size=0}function H(t,e){for(var r=t.length;r--;)if(zt(t[r][0],e))return r;return-1}var tn=Array.prototype,en=tn.splice;function rn(t){var e=this.__data__,r=H(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():en.call(e,r,1),--this.size,!0}function nn(t){var e=this.__data__,r=H(e,t);return r<0?void 0:e[r][1]}function an(t){return H(this.__data__,t)>-1}function sn(t,e){var r=this.__data__,n=H(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function _(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}_.prototype.clear=Qr;_.prototype.delete=rn;_.prototype.get=nn;_.prototype.has=an;_.prototype.set=sn;var D=S(y,"Map");function on(){this.size=0,this.__data__={hash:new j,map:new(D||_),string:new j}}function cn(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function K(t,e){var r=t.__data__;return cn(e)?r[typeof e=="string"?"string":"hash"]:r.map}function un(t){var e=K(this,t).delete(t);return this.size-=e?1:0,e}function fn(t){return K(this,t).get(t)}function ln(t){return K(this,t).has(t)}function hn(t,e){var r=K(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}function A(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}A.prototype.clear=on;A.prototype.delete=un;A.prototype.get=fn;A.prototype.has=ln;A.prototype.set=hn;function Vt(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}var Wt=Kt(Object.getPrototypeOf,Object);function pn(){this.__data__=new _,this.size=0}function gn(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}function dn(t){return this.__data__.get(t)}function bn(t){return this.__data__.has(t)}var yn=200;function Tn(t,e){var r=this.__data__;if(r instanceof _){var n=r.__data__;if(!D||n.length<yn-1)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new A(n)}return r.set(t,e),this.size=r.size,this}function P(t){var e=this.__data__=new _(t);this.size=e.size}P.prototype.clear=pn;P.prototype.delete=gn;P.prototype.get=dn;P.prototype.has=bn;P.prototype.set=Tn;function vn(t,e){return t&&R(e,at(e),t)}function _n(t,e){return t&&R(e,it(e),t)}var qt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yt=qt&&typeof module=="object"&&module&&!module.nodeType&&module,mn=yt&&yt.exports===qt,Tt=mn?y.Buffer:void 0,vt=Tt?Tt.allocUnsafe:void 0;function jn(t,e){if(e)return t.slice();var r=t.length,n=vt?vt(r):new t.constructor(r);return t.copy(n),n}function $n(t,e){for(var r=-1,n=t==null?0:t.length,i=0,s=[];++r<n;){var o=t[r];e(o,r,t)&&(s[i++]=o)}return s}function Yt(){return[]}var Sn=Object.prototype,On=Sn.propertyIsEnumerable,_t=Object.getOwnPropertySymbols,st=_t?function(t){return t==null?[]:(t=Object(t),$n(_t(t),function(e){return On.call(t,e)}))}:Yt;function xn(t,e){return R(t,st(t),e)}var wn=Object.getOwnPropertySymbols,Jt=wn?function(t){for(var e=[];t;)Vt(e,st(t)),t=Wt(t);return e}:Yt;function An(t,e){return R(t,Jt(t),e)}function Xt(t,e,r){var n=e(t);return et(t)?n:Vt(n,r(t))}function Pn(t){return Xt(t,at,st)}function En(t){return Xt(t,it,Jt)}var Z=S(y,"DataView"),Q=S(y,"Promise"),tt=S(y,"Set"),mt="[object Map]",Fn="[object Object]",jt="[object Promise]",$t="[object Set]",St="[object WeakMap]",Ot="[object DataView]",Cn=$(Z),In=$(D),Ln=$(Q),Mn=$(tt),zn=$(X),v=B;(Z&&v(new Z(new ArrayBuffer(1)))!=Ot||D&&v(new D)!=mt||Q&&v(Q.resolve())!=jt||tt&&v(new tt)!=$t||X&&v(new X)!=St)&&(v=function(t){var e=B(t),r=e==Fn?t.constructor:void 0,n=r?$(r):"";if(n)switch(n){case Cn:return Ot;case In:return mt;case Ln:return jt;case Mn:return $t;case zn:return St}return e});var Nn=Object.prototype,Dn=Nn.hasOwnProperty;function Bn(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&Dn.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var xt=y.Uint8Array;function ot(t){var e=new t.constructor(t.byteLength);return new xt(e).set(new xt(t)),e}function Un(t,e){var r=e?ot(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var kn=/\w*$/;function Gn(t){var e=new t.constructor(t.source,kn.exec(t));return e.lastIndex=t.lastIndex,e}var wt=x?x.prototype:void 0,At=wt?wt.valueOf:void 0;function Rn(t){return At?Object(At.call(t)):{}}function Hn(t,e){var r=e?ot(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var Kn="[object Boolean]",Vn="[object Date]",Wn="[object Map]",qn="[object Number]",Yn="[object RegExp]",Jn="[object Set]",Xn="[object String]",Zn="[object Symbol]",Qn="[object ArrayBuffer]",ta="[object DataView]",ea="[object Float32Array]",ra="[object Float64Array]",na="[object Int8Array]",aa="[object Int16Array]",ia="[object Int32Array]",sa="[object Uint8Array]",oa="[object Uint8ClampedArray]",ca="[object Uint16Array]",ua="[object Uint32Array]";function fa(t,e,r){var n=t.constructor;switch(e){case Qn:return ot(t);case Kn:case Vn:return new n(+t);case ta:return Un(t,r);case ea:case ra:case na:case aa:case ia:case sa:case oa:case ca:case ua:return Hn(t,r);case Wn:return new n;case qn:case Xn:return new n(t);case Yn:return Gn(t);case Jn:return new n;case Zn:return Rn(t)}}function la(t){return typeof t.constructor=="function"&&!rt(t)?ke(Wt(t)):{}}var ha="[object Map]";function pa(t){return U(t)&&v(t)==ha}var Pt=w&&w.isMap,ga=Pt?nt(Pt):pa,da="[object Set]";function ba(t){return U(t)&&v(t)==da}var Et=w&&w.isSet,ya=Et?nt(Et):ba,Ta=1,va=2,_a=4,Zt="[object Arguments]",ma="[object Array]",ja="[object Boolean]",$a="[object Date]",Sa="[object Error]",Qt="[object Function]",Oa="[object GeneratorFunction]",xa="[object Map]",wa="[object Number]",te="[object Object]",Aa="[object RegExp]",Pa="[object Set]",Ea="[object String]",Fa="[object Symbol]",Ca="[object WeakMap]",Ia="[object ArrayBuffer]",La="[object DataView]",Ma="[object Float32Array]",za="[object Float64Array]",Na="[object Int8Array]",Da="[object Int16Array]",Ba="[object Int32Array]",Ua="[object Uint8Array]",ka="[object Uint8ClampedArray]",Ga="[object Uint16Array]",Ra="[object Uint32Array]",l={};l[Zt]=l[ma]=l[Ia]=l[La]=l[ja]=l[$a]=l[Ma]=l[za]=l[Na]=l[Da]=l[Ba]=l[xa]=l[wa]=l[te]=l[Aa]=l[Pa]=l[Ea]=l[Fa]=l[Ua]=l[ka]=l[Ga]=l[Ra]=!0;l[Sa]=l[Qt]=l[Ca]=!1;function G(t,e,r,n,i,s){var o,f=e&Ta,a=e&va,c=e&_a;if(o!==void 0)return o;if(!k(t))return t;var u=et(t);if(u){if(o=Bn(t),!f)return Ge(t,o)}else{var h=v(t),O=h==Qt||h==Oa;if(Gt(t))return jn(t,f);if(h==te||h==Zt||O&&!i){if(o=a||O?{}:la(t),!f)return a?An(t,_n(o,t)):xn(t,vn(o,t))}else{if(!l[h])return i?t:{};o=fa(t,h,f)}}s||(s=new P);var E=s.get(t);if(E)return E;s.set(t,o),ya(t)?t.forEach(function(g){o.add(G(g,e,r,g,t,s))}):ga(t)&&t.forEach(function(g,b){o.set(b,G(g,e,r,b,t,s))});var F=c?a?En:Pn:a?it:at,T=u?void 0:F(t);return Re(T||t,function(g,b){T&&(b=g,g=t[b]),Nt(o,b,G(g,e,r,b,t,s))}),o}var Ha=1,Ka=4;function Va(t){return G(t,Ha|Ka)}class ee{constructor(e){d(this,"threshold",2);d(this,"hit",0);d(this,"prevSegment");d(this,"hitSegment");d(this,"hitSegmentList",[]);d(this,"options");this.options=e||{}}push(e){var r,n;this.hitSegment&&this.hitSegment.text!==e.text&&(this.hitSegmentList.push(this.hitSegment),this.reset()),this.prevSegment&&e.text===this.prevSegment.text?(this.hit++,this.hit===1&&(this.hitSegment=Va(this.prevSegment)),this.threshold<=this.hit&&this.hitSegment&&(this.hitSegment.et=e.et,this.hitSegment.hit=this.hit,(n=(r=this.options).onHit)==null||n.call(r,this.hitSegmentList))):this.hit=0,this.prevSegment=e}end(){var e,r;this.hitSegment&&(this.hitSegmentList.push(this.hitSegment),(r=(e=this.options).onHit)==null||r.call(e,this.hitSegmentList)),this.reset()}reset(){this.hit=0,this.prevSegment=void 0,this.hitSegment=void 0}}const m={punc:/[.,?!\],。!?…]{1}/,em:/[.?!\]。!?…]{1}/,space:/^\s+|\s+$|\s{2,}/g,ep:/[.,?!,。!?…]{1}\s*$/};function Wa(t,e){let r=[];const n=new ee({onHit:a=>{r=a}}),i=a=>a.trim().length===0,s=a=>{const c=z(a.st),u=z(a.et);return c>=u},o={emt:[],ep:[],zf:[],punc:[],em:[],space:[]},f=[];return t.forEach((a,c)=>{const u=m.punc.test(a.text),h=m.em.test(a.text),O=m.space.test(a.text),E=i(a.text),F=s(a),T=m.ep.test(a.text);n.push(a),a.punc=u?1:0,u&&o.punc.push(c),a.em=h?1:0,h&&o.em.push(c),a.space=O?1:0,O&&(e!=null&&e.space?a.text=a.text.replace(m.space," ").trim():o.space.push(c)),a.emt=i(a.text)?1:0,E&&(e!=null&&e.emt||o.emt.push(c)),a.zf=s(a)?1:0,F&&(e!=null&&e.zf||o.zf.push(c)),a.ep=T?1:0,T&&(e!=null&&e.ep?a.text=a.text.replace(m.ep,""):o.ep.push(c)),!(e!=null&&e.zf&&a.zf)&&(e!=null&&e.emt&&a.emt||f.push(a))}),n.end(),{result:o,repeat:r,segments:f}}const qa=Object.freeze(Object.defineProperty({__proto__:null,RepeatCheck:ee,subtitleOptimization:Wa,subtitleOptimizationRegExp:m},Symbol.toStringTag,{value:"Module"}));exports.filter=de;exports.parser=pe;exports.tools=qa;exports.utils=ie;
package/dist/index.d.ts CHANGED
@@ -66,6 +66,15 @@ declare interface AimSegments {
66
66
 
67
67
  declare function assToAimSegments(text: string): Promise<AimSegments[]>;
68
68
 
69
+ /**
70
+ * 匹配中文、日文、韩文字符的正则表达式
71
+ *
72
+ * @export
73
+ * @param {string} str
74
+ * @return {*} {boolean}
75
+ */
76
+ declare function containsCJKCharacters(str: string): boolean;
77
+
69
78
  /**
70
79
  * Convert a HH:MM:SS,MMM or HH:MM:SS.MMM time format into seconds.
71
80
  *
@@ -90,6 +99,15 @@ export declare namespace filter {
90
99
  */
91
100
  declare function formatTime(seconds: number): string;
92
101
 
102
+ declare interface OptimizationOptions {
103
+ emt: boolean;
104
+ ep: boolean;
105
+ zf: boolean;
106
+ punc: boolean;
107
+ em: boolean;
108
+ space: boolean;
109
+ }
110
+
93
111
  /**
94
112
  * 为数字前方自动补0到特定的位数,默认两位
95
113
  */
@@ -103,6 +121,23 @@ export declare namespace parser {
103
121
  }
104
122
  }
105
123
 
124
+ declare class RepeatCheck {
125
+ threshold: number;
126
+ hit: number;
127
+ prevSegment?: AimSegments;
128
+ hitSegment?: AimSegments;
129
+ hitSegmentList: AimSegments[];
130
+ options: RepeatCheckOption;
131
+ constructor(options?: RepeatCheckOption);
132
+ push(segment: AimSegments): void;
133
+ end(): void;
134
+ reset(): void;
135
+ }
136
+
137
+ declare interface RepeatCheckOption {
138
+ onHit?: (segment: AimSegments[]) => void;
139
+ }
140
+
106
141
  declare function srtToAimSegments(text: string): Promise<AimSegments[]>;
107
142
 
108
143
  declare class StreamFilter {
@@ -122,11 +157,41 @@ declare class StreamFilter {
122
157
  end(): string;
123
158
  }
124
159
 
160
+ declare function subtitleOptimization(segments: AimSegments[], options?: OptimizationOptions): {
161
+ result: {
162
+ emt: number[];
163
+ ep: number[];
164
+ zf: number[];
165
+ punc: number[];
166
+ em: number[];
167
+ space: number[];
168
+ };
169
+ repeat: AimSegments[];
170
+ segments: AimSegments[];
171
+ };
172
+
173
+ declare const subtitleOptimizationRegExp: {
174
+ punc: RegExp;
175
+ em: RegExp;
176
+ space: RegExp;
177
+ ep: RegExp;
178
+ };
179
+
180
+ export declare namespace tools {
181
+ export {
182
+ subtitleOptimization,
183
+ RepeatCheckOption,
184
+ RepeatCheck,
185
+ subtitleOptimizationRegExp
186
+ }
187
+ }
188
+
125
189
  export declare namespace utils {
126
190
  export {
127
191
  padNumber,
128
192
  formatTime,
129
- convertToSeconds
193
+ convertToSeconds,
194
+ containsCJKCharacters
130
195
  }
131
196
  }
132
197
 
package/dist/index.es.js CHANGED
@@ -1,29 +1,33 @@
1
- var b = Object.defineProperty;
2
- var w = (s, e, t) => e in s ? b(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var f = (s, e, t) => w(s, typeof e != "symbol" ? e + "" : e, t);
4
- function g(s, e = 2) {
5
- return s.toString().padStart(e, "0");
6
- }
7
- function m(s) {
8
- const e = Math.floor(s / 3600), t = Math.floor(s % 3600 / 60), r = s % 3600 % 60, n = Math.floor(r % 1 * 1e3), i = g(e), c = g(t), o = g(Math.floor(r)), d = g(n, 3);
9
- return `${i}:${c}:${o}.${d}`;
10
- }
11
- function L(s) {
12
- if (!s)
1
+ var re = Object.defineProperty;
2
+ var ne = (t, e, r) => e in t ? re(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var g = (t, e, r) => ne(t, typeof e != "symbol" ? e + "" : e, r);
4
+ function I(t, e = 2) {
5
+ return t.toString().padStart(e, "0");
6
+ }
7
+ function M(t) {
8
+ const e = Math.floor(t / 3600), r = Math.floor(t % 3600 / 60), n = t % 3600 % 60, i = Math.floor(n % 1 * 1e3), s = I(e), o = I(r), f = I(Math.floor(n)), a = I(i, 3);
9
+ return `${s}:${o}:${f}.${a}`;
10
+ }
11
+ function z(t) {
12
+ if (!t)
13
13
  return 0;
14
- const e = s.split(":");
14
+ const e = t.split(":");
15
15
  try {
16
- let t = e[2].split(",");
17
- return t.length === 1 && (t = e[2].split(".")), parseFloat(e[0]) * 3600 + parseFloat(e[1]) * 60 + parseFloat(t[0]) + parseFloat("0." + t[1]);
16
+ let r = e[2].split(",");
17
+ return r.length === 1 && (r = e[2].split(".")), parseFloat(e[0]) * 3600 + parseFloat(e[1]) * 60 + parseFloat(r[0]) + parseFloat("0." + r[1]);
18
18
  } catch {
19
19
  return 0;
20
20
  }
21
21
  }
22
- const B = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
22
+ function ae(t) {
23
+ return /[\u4E00-\u9FFF\u3040-\u309F\u30A0-\u30FF\uAC00-\uD7AF]/.test(t);
24
+ }
25
+ const Wa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
23
26
  __proto__: null,
24
- convertToSeconds: L,
25
- formatTime: m,
26
- padNumber: g
27
+ containsCJKCharacters: ae,
28
+ convertToSeconds: z,
29
+ formatTime: M,
30
+ padNumber: I
27
31
  }, Symbol.toStringTag, { value: "Module" }));
28
32
  /**
29
33
  * @name ass2vtt
@@ -31,35 +35,35 @@ const B = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
31
35
  * @author YuQian2015 (https://github.com/YuQian2015)
32
36
  * @license MIT
33
37
  */
34
- function F(s) {
38
+ function ie(t) {
35
39
  const e = new RegExp(
36
40
  "Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$",
37
41
  "i"
38
42
  );
39
- function t(r = "") {
40
- return r.split(/[:.]/).map((n, i, c) => {
41
- if (i === c.length - 1) {
42
- if (n.length === 1)
43
- return "." + n + "00";
44
- if (n.length === 2)
45
- return "." + n + "0";
46
- } else if (n.length === 1)
47
- return (i === 0 ? "0" : ":0") + n;
48
- return i === 0 ? n : i === c.length - 1 ? "." + n : ":" + n;
43
+ function r(n = "") {
44
+ return n.split(/[:.]/).map((i, s, o) => {
45
+ if (s === o.length - 1) {
46
+ if (i.length === 1)
47
+ return "." + i + "00";
48
+ if (i.length === 2)
49
+ return "." + i + "0";
50
+ } else if (i.length === 1)
51
+ return (s === 0 ? "0" : ":0") + i;
52
+ return s === 0 ? i : s === o.length - 1 ? "." + i : ":" + i;
49
53
  }).join("");
50
54
  }
51
55
  return `WEBVTT
52
56
 
53
- ` + s.split(/\r?\n/).map((r) => {
54
- const n = r.match(e);
55
- return n ? {
56
- start: t(n[1].trim()),
57
- end: t(n[2].trim()),
58
- text: n[5].replace(/{[\s\S]*?}/g, "").replace(/(\\N)/g, "<br />").trim().split(/\r?\n/).map((i) => i.trim()).join(`
57
+ ` + t.split(/\r?\n/).map((n) => {
58
+ const i = n.match(e);
59
+ return i ? {
60
+ start: r(i[1].trim()),
61
+ end: r(i[2].trim()),
62
+ text: i[5].replace(/{[\s\S]*?}/g, "").replace(/(\\N)/g, "<br />").trim().split(/\r?\n/).map((s) => s.trim()).join(`
59
63
  `)
60
64
  } : null;
61
- }).filter((r) => r).map((r, n) => r ? r.start + " --> " + r.end + `
62
- ` + r.text : "").filter((r) => r.trim()).join(`
65
+ }).filter((n) => n).map((n, i) => n ? n.start + " --> " + n.end + `
66
+ ` + n.text : "").filter((n) => n.trim()).join(`
63
67
 
64
68
  `);
65
69
  }
@@ -72,156 +76,156 @@ function F(s) {
72
76
  * @version 1.0.1
73
77
  * @license MIT
74
78
  */
75
- function $(s, e) {
76
- let t = e;
77
- for (; !s[t]; )
78
- t++;
79
- return t;
79
+ function se(t, e) {
80
+ let r = e;
81
+ for (; !t[r]; )
82
+ r++;
83
+ return r;
80
84
  }
81
- function j(s) {
82
- let e = s.length - 1;
83
- for (; e >= 0 && !s[e]; )
85
+ function oe(t) {
86
+ let e = t.length - 1;
87
+ for (; e >= 0 && !t[e]; )
84
88
  e--;
85
89
  return e;
86
90
  }
87
- function E(s = "", e = { propName: {} }) {
88
- const t = [], r = s.split(/(?:\r\n|\r|\n)/gm).filter((l) => l.length > 0), n = r.map((l, a) => r[a + 2] && /\d{2}:\d{2}:\d{2}[,\.]\d{2,3}\s*-->\s*\d{2}:\d{2}:\d{2}[,\.]\d{2,3}/.test(r[a + 2]) ? l + `\r
89
- ` : l).join(`
90
- `).split(/(?:\r\n|\r|\n)/gm), i = j(n) + 1;
91
- let c = 0, o, d, h;
92
- for (let l = 0; l < i; l++) {
93
- for (h = {}, d = [], l = $(n, l), h.id = parseInt(n[l++], 10), o = n[l++].split(/[\t ]*-->[\t ]*/), h[e.propName.start || "start"] = e.timeInText ? o[0] : L(o[0]), c = o[1].indexOf(" "), c !== -1 && (o[1] = o[1].substr(0, c)), h[e.propName.end || "end"] = e.timeInText ? o[1] : L(o[1]); l < i && n[l]; )
94
- d.push(n[l++]);
95
- const a = e.propName.text || "text";
96
- h[a] = d.join(e.keepMultiLine ? `
97
- ` : " ").replace(/\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}/gi, ""), h[a] = h[a].replace(/</g, "&lt;").replace(/>/g, "&gt;"), h[a] = h[a].replace(/&lt;(\/?(font|b|u|i|s))((\s+(\w|\w[\w\-]*\w)(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)(\/?)&gt;/gi, "<$1$3$7>"), e.ignoreLineBreaks ? h[a] = h[a].replace(/\\N/gi, "") : h[a] = h[a].replace(/\\N/gi, "<br />"), t.push(h);
91
+ function ce(t = "", e = { propName: {} }) {
92
+ const r = [], n = t.split(/(?:\r\n|\r|\n)/gm).filter((u) => u.length > 0), i = n.map((u, h) => n[h + 2] && /\d{2}:\d{2}:\d{2}[,\.]\d{2,3}\s*-->\s*\d{2}:\d{2}:\d{2}[,\.]\d{2,3}/.test(n[h + 2]) ? u + `\r
93
+ ` : u).join(`
94
+ `).split(/(?:\r\n|\r|\n)/gm), s = oe(i) + 1;
95
+ let o = 0, f, a, c;
96
+ for (let u = 0; u < s; u++) {
97
+ for (c = {}, a = [], u = se(i, u), c.id = parseInt(i[u++], 10), f = i[u++].split(/[\t ]*-->[\t ]*/), c[e.propName.start || "start"] = e.timeInText ? f[0] : z(f[0]), o = f[1].indexOf(" "), o !== -1 && (f[1] = f[1].substr(0, o)), c[e.propName.end || "end"] = e.timeInText ? f[1] : z(f[1]); u < s && i[u]; )
98
+ a.push(i[u++]);
99
+ const h = e.propName.text || "text";
100
+ c[h] = a.join(e.keepMultiLine ? `
101
+ ` : " ").replace(/\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}/gi, ""), c[h] = c[h].replace(/</g, "&lt;").replace(/>/g, "&gt;"), c[h] = c[h].replace(/&lt;(\/?(font|b|u|i|s))((\s+(\w|\w[\w\-]*\w)(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)(\/?)&gt;/gi, "<$1$3$7>"), e.ignoreLineBreaks ? c[h] = c[h].replace(/\\N/gi, "") : c[h] = c[h].replace(/\\N/gi, "<br />"), r.push(c);
98
102
  }
99
- return t;
103
+ return r;
100
104
  }
101
- function M(s, e) {
102
- const t = /<\/?[^>]+(>|$)/g;
103
- return new Promise((r, n) => {
104
- let i = {};
105
- const c = [];
106
- let o = !1;
107
- const d = s.split(`
105
+ function ue(t, e) {
106
+ const r = /<\/?[^>]+(>|$)/g;
107
+ return new Promise((n, i) => {
108
+ let s = {};
109
+ const o = [];
110
+ let f = !1;
111
+ const a = t.split(`
108
112
  `);
109
- d.forEach((l, a) => {
110
- l.replace(t, "") === " " || l.replace(t, "") === "" || (l.indexOf("-->") !== -1 ? (o = !0, typeof i.start == "number" && i.start >= 0 && c.push(v(i)), i = {
111
- start: k(l.split("-->")[0].trimRight().split(" ").pop()),
112
- end: k(l.split("-->")[1].trimLeft().split(" ").shift()),
113
+ a.forEach((u, h) => {
114
+ u.replace(r, "") === " " || u.replace(r, "") === "" || (u.indexOf("-->") !== -1 ? (f = !0, typeof s.start == "number" && s.start >= 0 && o.push(q(s)), s = {
115
+ start: W(u.split("-->")[0].trimRight().split(" ").pop()),
116
+ end: W(u.split("-->")[1].trimLeft().split(" ").shift()),
113
117
  part: ""
114
- }) : o && (c.length !== 0 ? (c[c.length - 1].part.replace(t, ""), l.replace(t, ""), i.part.length === 0 ? i.part = l : i.part = `${i.part}
115
- ${l}`, a === d.length - 1 && c.push(v(i))) : (i.part = l, c.push(v(i)), i.part = "")));
116
- }), i = [];
117
- const h = /(<([0-9:.>]+)>)/ig;
118
- c.forEach((l) => {
119
- const S = l.part.split().map(function(p) {
120
- return p.replace(h, function(u) {
121
- return u.split("").reduce(function(T, I) {
122
- return `==${u.replace("<", "").replace(">", "")}`;
118
+ }) : f && (o.length !== 0 ? (o[o.length - 1].part.replace(r, ""), u.replace(r, ""), s.part.length === 0 ? s.part = u : s.part = `${s.part}
119
+ ${u}`, h === a.length - 1 && o.push(q(s))) : (s.part = u, o.push(q(s)), s.part = "")));
120
+ }), s = [];
121
+ const c = /(<([0-9:.>]+)>)/ig;
122
+ o.forEach((u) => {
123
+ const F = u.part.split().map(function(d) {
124
+ return d.replace(c, function(b) {
125
+ return b.split("").reduce(function(V, Ka) {
126
+ return `==${b.replace("<", "").replace(">", "")}`;
123
127
  }, 0);
124
128
  });
125
- })[0].replace(t, "").split(" "), x = [];
126
- S.forEach(function(p) {
127
- if (p.indexOf("==") > -1) {
128
- const u = p.split("=="), T = u[0];
129
- if (u[1], T == "" || T == "##")
129
+ })[0].replace(r, "").split(" "), T = [];
130
+ F.forEach(function(d) {
131
+ if (d.indexOf("==") > -1) {
132
+ const b = d.split("=="), V = b[0];
133
+ if (b[1], V == "" || V == "##")
130
134
  return;
131
- x.push({
132
- word: _(p.split("==")[0]),
133
- time: k(p.split("==")[1])
135
+ T.push({
136
+ word: ct(d.split("==")[0]),
137
+ time: W(d.split("==")[1])
134
138
  });
135
139
  } else
136
- x.push({
137
- word: _(p),
140
+ T.push({
141
+ word: ct(d),
138
142
  time: void 0
139
143
  });
140
- }), l.words = x, l.part = l.part.replace(t, "");
141
- }), r(c);
144
+ }), u.words = T, u.part = u.part.replace(r, "");
145
+ }), n(o);
142
146
  });
143
147
  }
144
- function k(s) {
145
- const e = s.split(":"), t = e[e.length - 3] ? +e[e.length - 3] : 0, r = e[e.length - 2] ? +e[e.length - 2] : 0, n = +e[e.length - 1];
146
- return t * 3600 + r * 60 + n;
148
+ function W(t) {
149
+ const e = t.split(":"), r = e[e.length - 3] ? +e[e.length - 3] : 0, n = e[e.length - 2] ? +e[e.length - 2] : 0, i = +e[e.length - 1];
150
+ return r * 3600 + n * 60 + i;
147
151
  }
148
- function _(s) {
149
- return s.replace(/[^0-9a-z'-]/gi, "").toLowerCase();
152
+ function ct(t) {
153
+ return t.replace(/[^0-9a-z'-]/gi, "").toLowerCase();
150
154
  }
151
- function v(s) {
152
- if (s == null || typeof s != "object")
153
- return s;
154
- const e = s.constructor();
155
- for (const t in s)
156
- s.hasOwnProperty(t) && (e[t] = s[t]);
155
+ function q(t) {
156
+ if (t == null || typeof t != "object")
157
+ return t;
158
+ const e = t.constructor();
159
+ for (const r in t)
160
+ t.hasOwnProperty(r) && (e[r] = t[r]);
157
161
  return e;
158
162
  }
159
- async function N(s) {
160
- return E(s, {
163
+ async function fe(t) {
164
+ return ce(t, {
161
165
  keepMultiLine: !0,
162
166
  propName: {}
163
- }).filter((r) => r.text).map((r) => ({
164
- st: m(r.start),
165
- et: m(r.end),
166
- text: r.text
167
+ }).filter((n) => n.text).map((n) => ({
168
+ st: M(n.start),
169
+ et: M(n.end),
170
+ text: n.text
167
171
  }));
168
172
  }
169
- async function y(s) {
170
- return (await M(s)).filter((r) => r.part).map((r) => ({
171
- st: m(r.start),
172
- et: m(r.end),
173
- text: r.part
173
+ async function Ft(t) {
174
+ return (await ue(t)).filter((n) => n.part).map((n) => ({
175
+ st: M(n.start),
176
+ et: M(n.end),
177
+ text: n.part
174
178
  }));
175
179
  }
176
- async function O(s) {
177
- return y(F(s));
180
+ async function le(t) {
181
+ return Ft(ie(t));
178
182
  }
179
- const D = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
183
+ const qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
180
184
  __proto__: null,
181
- assToAimSegments: O,
182
- srtToAimSegments: N,
183
- vttToAimSegments: y
185
+ assToAimSegments: le,
186
+ srtToAimSegments: fe,
187
+ vttToAimSegments: Ft
184
188
  }, Symbol.toStringTag, { value: "Module" }));
185
- class P {
189
+ class he {
186
190
  constructor(e) {
187
- f(this, "chains", {});
188
- f(this, "delimit", "__replace__");
189
- f(this, "onFilter");
190
- f(this, "checked", !1);
191
- f(this, "checkedText", "");
192
- f(this, "checkedLevel");
193
- f(this, "filteredText", "");
191
+ g(this, "chains", {});
192
+ g(this, "delimit", "__replace__");
193
+ g(this, "onFilter");
194
+ g(this, "checked", !1);
195
+ g(this, "checkedText", "");
196
+ g(this, "checkedLevel");
197
+ g(this, "filteredText", "");
194
198
  this.onFilter = e;
195
199
  }
196
- add(e, t) {
200
+ add(e, r) {
197
201
  typeof e != "string" && (e = new TextDecoder().decode(e));
198
- const r = e;
199
- if (!r)
202
+ const n = e;
203
+ if (!n)
200
204
  return;
201
- let n = this.chains;
202
- for (let i = 0; i < r.length; i++) {
203
- if (r[i] in n)
204
- n = n[r[i]];
205
+ let i = this.chains;
206
+ for (let s = 0; s < n.length; s++) {
207
+ if (n[s] in i)
208
+ i = i[n[s]];
205
209
  else {
206
- if (!(n instanceof Object))
210
+ if (!(i instanceof Object))
207
211
  break;
208
- let c, o;
209
- for (let d = i; d < r.length; d++)
210
- n[r[d]] = {}, [c, o] = [n, r[d]], n = n[r[d]];
211
- c && o && (c[o] = { [this.delimit]: t || "" });
212
+ let o, f;
213
+ for (let a = s; a < n.length; a++)
214
+ i[n[a]] = {}, [o, f] = [i, n[a]], i = i[n[a]];
215
+ o && f && (o[f] = { [this.delimit]: r || "" });
212
216
  break;
213
217
  }
214
- i === r.length - 1 && (n[this.delimit] = t || "");
218
+ s === n.length - 1 && (i[this.delimit] = r || "");
215
219
  }
216
220
  }
217
221
  parse(e) {
218
- e.forEach((t) => {
219
- this.add(...t);
222
+ e.forEach((r) => {
223
+ this.add(...r);
220
224
  });
221
225
  }
222
226
  reParse(e) {
223
- this.chains = {}, e.forEach((t) => {
224
- this.add(t[0], t[1]);
227
+ this.chains = {}, e.forEach((r) => {
228
+ this.add(r[0], r[1]);
225
229
  });
226
230
  }
227
231
  feed(e) {
@@ -238,34 +242,667 @@ class P {
238
242
  return;
239
243
  }
240
244
  if (this.checked && !this.checkedLevel[e]) {
241
- const t = typeof this.checkedLevel[this.delimit] == "string" ? this.checkedLevel[this.delimit] : this.checkedText;
242
- t && t.length && t.split("").forEach((r) => {
243
- this.filteredText += r, this.onFilter && this.onFilter(r);
245
+ const r = typeof this.checkedLevel[this.delimit] == "string" ? this.checkedLevel[this.delimit] : this.checkedText;
246
+ r && r.length && r.split("").forEach((n) => {
247
+ this.filteredText += n, this.onFilter && this.onFilter(n);
244
248
  }), this.checked = !1, this.checkedText = "", this.checkedLevel = void 0, this.chains[e] ? (this.checked = !0, this.checkedLevel = this.chains[e], this.checkedText = e) : (this.onFilter && this.onFilter(e), this.filteredText += e);
245
249
  }
246
250
  }
247
251
  feedAll(e) {
248
- return e.length ? (e.split("").forEach((r) => {
249
- this.feed(r);
252
+ return e.length ? (e.split("").forEach((n) => {
253
+ this.feed(n);
250
254
  }), this.end()) : "";
251
255
  }
252
256
  end() {
253
257
  if (this.checked && this.checkedText) {
254
- const t = typeof this.checkedLevel[this.delimit] == "string" ? this.checkedLevel[this.delimit] : this.checkedText;
255
- t && t.length && t.split("").forEach((r) => {
256
- this.onFilter && this.onFilter(r), this.filteredText += r;
258
+ const r = typeof this.checkedLevel[this.delimit] == "string" ? this.checkedLevel[this.delimit] : this.checkedText;
259
+ r && r.length && r.split("").forEach((n) => {
260
+ this.onFilter && this.onFilter(n), this.filteredText += n;
257
261
  }), this.checkedText = "", this.checkedLevel = void 0, this.checked = !1;
258
262
  }
259
263
  const e = this.filteredText;
260
264
  return this.filteredText = "", e;
261
265
  }
262
266
  }
263
- const H = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
267
+ const Ya = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
268
+ __proto__: null,
269
+ StreamFilter: he
270
+ }, Symbol.toStringTag, { value: "Module" }));
271
+ var Ct = typeof global == "object" && global && global.Object === Object && global, pe = typeof self == "object" && self && self.Object === Object && self, y = Ct || pe || Function("return this")(), O = y.Symbol, It = Object.prototype, de = It.hasOwnProperty, ge = It.toString, C = O ? O.toStringTag : void 0;
272
+ function be(t) {
273
+ var e = de.call(t, C), r = t[C];
274
+ try {
275
+ t[C] = void 0;
276
+ var n = !0;
277
+ } catch {
278
+ }
279
+ var i = ge.call(t);
280
+ return n && (e ? t[C] = r : delete t[C]), i;
281
+ }
282
+ var ye = Object.prototype, Te = ye.toString;
283
+ function me(t) {
284
+ return Te.call(t);
285
+ }
286
+ var ve = "[object Null]", _e = "[object Undefined]", ut = O ? O.toStringTag : void 0;
287
+ function B(t) {
288
+ return t == null ? t === void 0 ? _e : ve : ut && ut in Object(t) ? be(t) : me(t);
289
+ }
290
+ function U(t) {
291
+ return t != null && typeof t == "object";
292
+ }
293
+ var et = Array.isArray;
294
+ function k(t) {
295
+ var e = typeof t;
296
+ return t != null && (e == "object" || e == "function");
297
+ }
298
+ var je = "[object AsyncFunction]", $e = "[object Function]", Se = "[object GeneratorFunction]", xe = "[object Proxy]";
299
+ function Lt(t) {
300
+ if (!k(t))
301
+ return !1;
302
+ var e = B(t);
303
+ return e == $e || e == Se || e == je || e == xe;
304
+ }
305
+ var Y = y["__core-js_shared__"], ft = function() {
306
+ var t = /[^.]+$/.exec(Y && Y.keys && Y.keys.IE_PROTO || "");
307
+ return t ? "Symbol(src)_1." + t : "";
308
+ }();
309
+ function Oe(t) {
310
+ return !!ft && ft in t;
311
+ }
312
+ var we = Function.prototype, Ae = we.toString;
313
+ function $(t) {
314
+ if (t != null) {
315
+ try {
316
+ return Ae.call(t);
317
+ } catch {
318
+ }
319
+ try {
320
+ return t + "";
321
+ } catch {
322
+ }
323
+ }
324
+ return "";
325
+ }
326
+ var Pe = /[\\^$.*+?()[\]{}|]/g, Ee = /^\[object .+?Constructor\]$/, Fe = Function.prototype, Ce = Object.prototype, Ie = Fe.toString, Le = Ce.hasOwnProperty, Me = RegExp(
327
+ "^" + Ie.call(Le).replace(Pe, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
328
+ );
329
+ function ze(t) {
330
+ if (!k(t) || Oe(t))
331
+ return !1;
332
+ var e = Lt(t) ? Me : Ee;
333
+ return e.test($(t));
334
+ }
335
+ function Ne(t, e) {
336
+ return t == null ? void 0 : t[e];
337
+ }
338
+ function S(t, e) {
339
+ var r = Ne(t, e);
340
+ return ze(r) ? r : void 0;
341
+ }
342
+ var X = S(y, "WeakMap"), lt = Object.create, De = /* @__PURE__ */ function() {
343
+ function t() {
344
+ }
345
+ return function(e) {
346
+ if (!k(e))
347
+ return {};
348
+ if (lt)
349
+ return lt(e);
350
+ t.prototype = e;
351
+ var r = new t();
352
+ return t.prototype = void 0, r;
353
+ };
354
+ }();
355
+ function Be(t, e) {
356
+ var r = -1, n = t.length;
357
+ for (e || (e = Array(n)); ++r < n; )
358
+ e[r] = t[r];
359
+ return e;
360
+ }
361
+ var ht = function() {
362
+ try {
363
+ var t = S(Object, "defineProperty");
364
+ return t({}, "", {}), t;
365
+ } catch {
366
+ }
367
+ }();
368
+ function Ue(t, e) {
369
+ for (var r = -1, n = t == null ? 0 : t.length; ++r < n && e(t[r], r, t) !== !1; )
370
+ ;
371
+ return t;
372
+ }
373
+ var ke = 9007199254740991, Ge = /^(?:0|[1-9]\d*)$/;
374
+ function Re(t, e) {
375
+ var r = typeof t;
376
+ return e = e ?? ke, !!e && (r == "number" || r != "symbol" && Ge.test(t)) && t > -1 && t % 1 == 0 && t < e;
377
+ }
378
+ function Mt(t, e, r) {
379
+ e == "__proto__" && ht ? ht(t, e, {
380
+ configurable: !0,
381
+ enumerable: !0,
382
+ value: r,
383
+ writable: !0
384
+ }) : t[e] = r;
385
+ }
386
+ function zt(t, e) {
387
+ return t === e || t !== t && e !== e;
388
+ }
389
+ var He = Object.prototype, Ke = He.hasOwnProperty;
390
+ function Nt(t, e, r) {
391
+ var n = t[e];
392
+ (!(Ke.call(t, e) && zt(n, r)) || r === void 0 && !(e in t)) && Mt(t, e, r);
393
+ }
394
+ function R(t, e, r, n) {
395
+ var i = !r;
396
+ r || (r = {});
397
+ for (var s = -1, o = e.length; ++s < o; ) {
398
+ var f = e[s], a = void 0;
399
+ a === void 0 && (a = t[f]), i ? Mt(r, f, a) : Nt(r, f, a);
400
+ }
401
+ return r;
402
+ }
403
+ var Ve = 9007199254740991;
404
+ function Dt(t) {
405
+ return typeof t == "number" && t > -1 && t % 1 == 0 && t <= Ve;
406
+ }
407
+ function Bt(t) {
408
+ return t != null && Dt(t.length) && !Lt(t);
409
+ }
410
+ var We = Object.prototype;
411
+ function rt(t) {
412
+ var e = t && t.constructor, r = typeof e == "function" && e.prototype || We;
413
+ return t === r;
414
+ }
415
+ function qe(t, e) {
416
+ for (var r = -1, n = Array(t); ++r < t; )
417
+ n[r] = e(r);
418
+ return n;
419
+ }
420
+ var Ye = "[object Arguments]";
421
+ function pt(t) {
422
+ return U(t) && B(t) == Ye;
423
+ }
424
+ var Ut = Object.prototype, Je = Ut.hasOwnProperty, Xe = Ut.propertyIsEnumerable, Ze = pt(/* @__PURE__ */ function() {
425
+ return arguments;
426
+ }()) ? pt : function(t) {
427
+ return U(t) && Je.call(t, "callee") && !Xe.call(t, "callee");
428
+ };
429
+ function Qe() {
430
+ return !1;
431
+ }
432
+ var kt = typeof exports == "object" && exports && !exports.nodeType && exports, dt = kt && typeof module == "object" && module && !module.nodeType && module, tr = dt && dt.exports === kt, gt = tr ? y.Buffer : void 0, er = gt ? gt.isBuffer : void 0, Gt = er || Qe, rr = "[object Arguments]", nr = "[object Array]", ar = "[object Boolean]", ir = "[object Date]", sr = "[object Error]", or = "[object Function]", cr = "[object Map]", ur = "[object Number]", fr = "[object Object]", lr = "[object RegExp]", hr = "[object Set]", pr = "[object String]", dr = "[object WeakMap]", gr = "[object ArrayBuffer]", br = "[object DataView]", yr = "[object Float32Array]", Tr = "[object Float64Array]", mr = "[object Int8Array]", vr = "[object Int16Array]", _r = "[object Int32Array]", jr = "[object Uint8Array]", $r = "[object Uint8ClampedArray]", Sr = "[object Uint16Array]", xr = "[object Uint32Array]", p = {};
433
+ p[yr] = p[Tr] = p[mr] = p[vr] = p[_r] = p[jr] = p[$r] = p[Sr] = p[xr] = !0;
434
+ p[rr] = p[nr] = p[gr] = p[ar] = p[br] = p[ir] = p[sr] = p[or] = p[cr] = p[ur] = p[fr] = p[lr] = p[hr] = p[pr] = p[dr] = !1;
435
+ function Or(t) {
436
+ return U(t) && Dt(t.length) && !!p[B(t)];
437
+ }
438
+ function nt(t) {
439
+ return function(e) {
440
+ return t(e);
441
+ };
442
+ }
443
+ var Rt = typeof exports == "object" && exports && !exports.nodeType && exports, L = Rt && typeof module == "object" && module && !module.nodeType && module, wr = L && L.exports === Rt, J = wr && Ct.process, w = function() {
444
+ try {
445
+ var t = L && L.require && L.require("util").types;
446
+ return t || J && J.binding && J.binding("util");
447
+ } catch {
448
+ }
449
+ }(), bt = w && w.isTypedArray, Ar = bt ? nt(bt) : Or, Pr = Object.prototype, Er = Pr.hasOwnProperty;
450
+ function Ht(t, e) {
451
+ var r = et(t), n = !r && Ze(t), i = !r && !n && Gt(t), s = !r && !n && !i && Ar(t), o = r || n || i || s, f = o ? qe(t.length, String) : [], a = f.length;
452
+ for (var c in t)
453
+ (e || Er.call(t, c)) && !(o && // Safari 9 has enumerable `arguments.length` in strict mode.
454
+ (c == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
455
+ i && (c == "offset" || c == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
456
+ s && (c == "buffer" || c == "byteLength" || c == "byteOffset") || // Skip index properties.
457
+ Re(c, a))) && f.push(c);
458
+ return f;
459
+ }
460
+ function Kt(t, e) {
461
+ return function(r) {
462
+ return t(e(r));
463
+ };
464
+ }
465
+ var Fr = Kt(Object.keys, Object), Cr = Object.prototype, Ir = Cr.hasOwnProperty;
466
+ function Lr(t) {
467
+ if (!rt(t))
468
+ return Fr(t);
469
+ var e = [];
470
+ for (var r in Object(t))
471
+ Ir.call(t, r) && r != "constructor" && e.push(r);
472
+ return e;
473
+ }
474
+ function at(t) {
475
+ return Bt(t) ? Ht(t) : Lr(t);
476
+ }
477
+ function Mr(t) {
478
+ var e = [];
479
+ if (t != null)
480
+ for (var r in Object(t))
481
+ e.push(r);
482
+ return e;
483
+ }
484
+ var zr = Object.prototype, Nr = zr.hasOwnProperty;
485
+ function Dr(t) {
486
+ if (!k(t))
487
+ return Mr(t);
488
+ var e = rt(t), r = [];
489
+ for (var n in t)
490
+ n == "constructor" && (e || !Nr.call(t, n)) || r.push(n);
491
+ return r;
492
+ }
493
+ function it(t) {
494
+ return Bt(t) ? Ht(t, !0) : Dr(t);
495
+ }
496
+ var N = S(Object, "create");
497
+ function Br() {
498
+ this.__data__ = N ? N(null) : {}, this.size = 0;
499
+ }
500
+ function Ur(t) {
501
+ var e = this.has(t) && delete this.__data__[t];
502
+ return this.size -= e ? 1 : 0, e;
503
+ }
504
+ var kr = "__lodash_hash_undefined__", Gr = Object.prototype, Rr = Gr.hasOwnProperty;
505
+ function Hr(t) {
506
+ var e = this.__data__;
507
+ if (N) {
508
+ var r = e[t];
509
+ return r === kr ? void 0 : r;
510
+ }
511
+ return Rr.call(e, t) ? e[t] : void 0;
512
+ }
513
+ var Kr = Object.prototype, Vr = Kr.hasOwnProperty;
514
+ function Wr(t) {
515
+ var e = this.__data__;
516
+ return N ? e[t] !== void 0 : Vr.call(e, t);
517
+ }
518
+ var qr = "__lodash_hash_undefined__";
519
+ function Yr(t, e) {
520
+ var r = this.__data__;
521
+ return this.size += this.has(t) ? 0 : 1, r[t] = N && e === void 0 ? qr : e, this;
522
+ }
523
+ function j(t) {
524
+ var e = -1, r = t == null ? 0 : t.length;
525
+ for (this.clear(); ++e < r; ) {
526
+ var n = t[e];
527
+ this.set(n[0], n[1]);
528
+ }
529
+ }
530
+ j.prototype.clear = Br;
531
+ j.prototype.delete = Ur;
532
+ j.prototype.get = Hr;
533
+ j.prototype.has = Wr;
534
+ j.prototype.set = Yr;
535
+ function Jr() {
536
+ this.__data__ = [], this.size = 0;
537
+ }
538
+ function H(t, e) {
539
+ for (var r = t.length; r--; )
540
+ if (zt(t[r][0], e))
541
+ return r;
542
+ return -1;
543
+ }
544
+ var Xr = Array.prototype, Zr = Xr.splice;
545
+ function Qr(t) {
546
+ var e = this.__data__, r = H(e, t);
547
+ if (r < 0)
548
+ return !1;
549
+ var n = e.length - 1;
550
+ return r == n ? e.pop() : Zr.call(e, r, 1), --this.size, !0;
551
+ }
552
+ function tn(t) {
553
+ var e = this.__data__, r = H(e, t);
554
+ return r < 0 ? void 0 : e[r][1];
555
+ }
556
+ function en(t) {
557
+ return H(this.__data__, t) > -1;
558
+ }
559
+ function rn(t, e) {
560
+ var r = this.__data__, n = H(r, t);
561
+ return n < 0 ? (++this.size, r.push([t, e])) : r[n][1] = e, this;
562
+ }
563
+ function v(t) {
564
+ var e = -1, r = t == null ? 0 : t.length;
565
+ for (this.clear(); ++e < r; ) {
566
+ var n = t[e];
567
+ this.set(n[0], n[1]);
568
+ }
569
+ }
570
+ v.prototype.clear = Jr;
571
+ v.prototype.delete = Qr;
572
+ v.prototype.get = tn;
573
+ v.prototype.has = en;
574
+ v.prototype.set = rn;
575
+ var D = S(y, "Map");
576
+ function nn() {
577
+ this.size = 0, this.__data__ = {
578
+ hash: new j(),
579
+ map: new (D || v)(),
580
+ string: new j()
581
+ };
582
+ }
583
+ function an(t) {
584
+ var e = typeof t;
585
+ return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null;
586
+ }
587
+ function K(t, e) {
588
+ var r = t.__data__;
589
+ return an(e) ? r[typeof e == "string" ? "string" : "hash"] : r.map;
590
+ }
591
+ function sn(t) {
592
+ var e = K(this, t).delete(t);
593
+ return this.size -= e ? 1 : 0, e;
594
+ }
595
+ function on(t) {
596
+ return K(this, t).get(t);
597
+ }
598
+ function cn(t) {
599
+ return K(this, t).has(t);
600
+ }
601
+ function un(t, e) {
602
+ var r = K(this, t), n = r.size;
603
+ return r.set(t, e), this.size += r.size == n ? 0 : 1, this;
604
+ }
605
+ function A(t) {
606
+ var e = -1, r = t == null ? 0 : t.length;
607
+ for (this.clear(); ++e < r; ) {
608
+ var n = t[e];
609
+ this.set(n[0], n[1]);
610
+ }
611
+ }
612
+ A.prototype.clear = nn;
613
+ A.prototype.delete = sn;
614
+ A.prototype.get = on;
615
+ A.prototype.has = cn;
616
+ A.prototype.set = un;
617
+ function Vt(t, e) {
618
+ for (var r = -1, n = e.length, i = t.length; ++r < n; )
619
+ t[i + r] = e[r];
620
+ return t;
621
+ }
622
+ var Wt = Kt(Object.getPrototypeOf, Object);
623
+ function fn() {
624
+ this.__data__ = new v(), this.size = 0;
625
+ }
626
+ function ln(t) {
627
+ var e = this.__data__, r = e.delete(t);
628
+ return this.size = e.size, r;
629
+ }
630
+ function hn(t) {
631
+ return this.__data__.get(t);
632
+ }
633
+ function pn(t) {
634
+ return this.__data__.has(t);
635
+ }
636
+ var dn = 200;
637
+ function gn(t, e) {
638
+ var r = this.__data__;
639
+ if (r instanceof v) {
640
+ var n = r.__data__;
641
+ if (!D || n.length < dn - 1)
642
+ return n.push([t, e]), this.size = ++r.size, this;
643
+ r = this.__data__ = new A(n);
644
+ }
645
+ return r.set(t, e), this.size = r.size, this;
646
+ }
647
+ function P(t) {
648
+ var e = this.__data__ = new v(t);
649
+ this.size = e.size;
650
+ }
651
+ P.prototype.clear = fn;
652
+ P.prototype.delete = ln;
653
+ P.prototype.get = hn;
654
+ P.prototype.has = pn;
655
+ P.prototype.set = gn;
656
+ function bn(t, e) {
657
+ return t && R(e, at(e), t);
658
+ }
659
+ function yn(t, e) {
660
+ return t && R(e, it(e), t);
661
+ }
662
+ var qt = typeof exports == "object" && exports && !exports.nodeType && exports, yt = qt && typeof module == "object" && module && !module.nodeType && module, Tn = yt && yt.exports === qt, Tt = Tn ? y.Buffer : void 0, mt = Tt ? Tt.allocUnsafe : void 0;
663
+ function mn(t, e) {
664
+ if (e)
665
+ return t.slice();
666
+ var r = t.length, n = mt ? mt(r) : new t.constructor(r);
667
+ return t.copy(n), n;
668
+ }
669
+ function vn(t, e) {
670
+ for (var r = -1, n = t == null ? 0 : t.length, i = 0, s = []; ++r < n; ) {
671
+ var o = t[r];
672
+ e(o, r, t) && (s[i++] = o);
673
+ }
674
+ return s;
675
+ }
676
+ function Yt() {
677
+ return [];
678
+ }
679
+ var _n = Object.prototype, jn = _n.propertyIsEnumerable, vt = Object.getOwnPropertySymbols, st = vt ? function(t) {
680
+ return t == null ? [] : (t = Object(t), vn(vt(t), function(e) {
681
+ return jn.call(t, e);
682
+ }));
683
+ } : Yt;
684
+ function $n(t, e) {
685
+ return R(t, st(t), e);
686
+ }
687
+ var Sn = Object.getOwnPropertySymbols, Jt = Sn ? function(t) {
688
+ for (var e = []; t; )
689
+ Vt(e, st(t)), t = Wt(t);
690
+ return e;
691
+ } : Yt;
692
+ function xn(t, e) {
693
+ return R(t, Jt(t), e);
694
+ }
695
+ function Xt(t, e, r) {
696
+ var n = e(t);
697
+ return et(t) ? n : Vt(n, r(t));
698
+ }
699
+ function On(t) {
700
+ return Xt(t, at, st);
701
+ }
702
+ function wn(t) {
703
+ return Xt(t, it, Jt);
704
+ }
705
+ var Z = S(y, "DataView"), Q = S(y, "Promise"), tt = S(y, "Set"), _t = "[object Map]", An = "[object Object]", jt = "[object Promise]", $t = "[object Set]", St = "[object WeakMap]", xt = "[object DataView]", Pn = $(Z), En = $(D), Fn = $(Q), Cn = $(tt), In = $(X), m = B;
706
+ (Z && m(new Z(new ArrayBuffer(1))) != xt || D && m(new D()) != _t || Q && m(Q.resolve()) != jt || tt && m(new tt()) != $t || X && m(new X()) != St) && (m = function(t) {
707
+ var e = B(t), r = e == An ? t.constructor : void 0, n = r ? $(r) : "";
708
+ if (n)
709
+ switch (n) {
710
+ case Pn:
711
+ return xt;
712
+ case En:
713
+ return _t;
714
+ case Fn:
715
+ return jt;
716
+ case Cn:
717
+ return $t;
718
+ case In:
719
+ return St;
720
+ }
721
+ return e;
722
+ });
723
+ var Ln = Object.prototype, Mn = Ln.hasOwnProperty;
724
+ function zn(t) {
725
+ var e = t.length, r = new t.constructor(e);
726
+ return e && typeof t[0] == "string" && Mn.call(t, "index") && (r.index = t.index, r.input = t.input), r;
727
+ }
728
+ var Ot = y.Uint8Array;
729
+ function ot(t) {
730
+ var e = new t.constructor(t.byteLength);
731
+ return new Ot(e).set(new Ot(t)), e;
732
+ }
733
+ function Nn(t, e) {
734
+ var r = e ? ot(t.buffer) : t.buffer;
735
+ return new t.constructor(r, t.byteOffset, t.byteLength);
736
+ }
737
+ var Dn = /\w*$/;
738
+ function Bn(t) {
739
+ var e = new t.constructor(t.source, Dn.exec(t));
740
+ return e.lastIndex = t.lastIndex, e;
741
+ }
742
+ var wt = O ? O.prototype : void 0, At = wt ? wt.valueOf : void 0;
743
+ function Un(t) {
744
+ return At ? Object(At.call(t)) : {};
745
+ }
746
+ function kn(t, e) {
747
+ var r = e ? ot(t.buffer) : t.buffer;
748
+ return new t.constructor(r, t.byteOffset, t.length);
749
+ }
750
+ var Gn = "[object Boolean]", Rn = "[object Date]", Hn = "[object Map]", Kn = "[object Number]", Vn = "[object RegExp]", Wn = "[object Set]", qn = "[object String]", Yn = "[object Symbol]", Jn = "[object ArrayBuffer]", Xn = "[object DataView]", Zn = "[object Float32Array]", Qn = "[object Float64Array]", ta = "[object Int8Array]", ea = "[object Int16Array]", ra = "[object Int32Array]", na = "[object Uint8Array]", aa = "[object Uint8ClampedArray]", ia = "[object Uint16Array]", sa = "[object Uint32Array]";
751
+ function oa(t, e, r) {
752
+ var n = t.constructor;
753
+ switch (e) {
754
+ case Jn:
755
+ return ot(t);
756
+ case Gn:
757
+ case Rn:
758
+ return new n(+t);
759
+ case Xn:
760
+ return Nn(t, r);
761
+ case Zn:
762
+ case Qn:
763
+ case ta:
764
+ case ea:
765
+ case ra:
766
+ case na:
767
+ case aa:
768
+ case ia:
769
+ case sa:
770
+ return kn(t, r);
771
+ case Hn:
772
+ return new n();
773
+ case Kn:
774
+ case qn:
775
+ return new n(t);
776
+ case Vn:
777
+ return Bn(t);
778
+ case Wn:
779
+ return new n();
780
+ case Yn:
781
+ return Un(t);
782
+ }
783
+ }
784
+ function ca(t) {
785
+ return typeof t.constructor == "function" && !rt(t) ? De(Wt(t)) : {};
786
+ }
787
+ var ua = "[object Map]";
788
+ function fa(t) {
789
+ return U(t) && m(t) == ua;
790
+ }
791
+ var Pt = w && w.isMap, la = Pt ? nt(Pt) : fa, ha = "[object Set]";
792
+ function pa(t) {
793
+ return U(t) && m(t) == ha;
794
+ }
795
+ var Et = w && w.isSet, da = Et ? nt(Et) : pa, ga = 1, ba = 2, ya = 4, Zt = "[object Arguments]", Ta = "[object Array]", ma = "[object Boolean]", va = "[object Date]", _a = "[object Error]", Qt = "[object Function]", ja = "[object GeneratorFunction]", $a = "[object Map]", Sa = "[object Number]", te = "[object Object]", xa = "[object RegExp]", Oa = "[object Set]", wa = "[object String]", Aa = "[object Symbol]", Pa = "[object WeakMap]", Ea = "[object ArrayBuffer]", Fa = "[object DataView]", Ca = "[object Float32Array]", Ia = "[object Float64Array]", La = "[object Int8Array]", Ma = "[object Int16Array]", za = "[object Int32Array]", Na = "[object Uint8Array]", Da = "[object Uint8ClampedArray]", Ba = "[object Uint16Array]", Ua = "[object Uint32Array]", l = {};
796
+ l[Zt] = l[Ta] = l[Ea] = l[Fa] = l[ma] = l[va] = l[Ca] = l[Ia] = l[La] = l[Ma] = l[za] = l[$a] = l[Sa] = l[te] = l[xa] = l[Oa] = l[wa] = l[Aa] = l[Na] = l[Da] = l[Ba] = l[Ua] = !0;
797
+ l[_a] = l[Qt] = l[Pa] = !1;
798
+ function G(t, e, r, n, i, s) {
799
+ var o, f = e & ga, a = e & ba, c = e & ya;
800
+ if (o !== void 0)
801
+ return o;
802
+ if (!k(t))
803
+ return t;
804
+ var u = et(t);
805
+ if (u) {
806
+ if (o = zn(t), !f)
807
+ return Be(t, o);
808
+ } else {
809
+ var h = m(t), x = h == Qt || h == ja;
810
+ if (Gt(t))
811
+ return mn(t, f);
812
+ if (h == te || h == Zt || x && !i) {
813
+ if (o = a || x ? {} : ca(t), !f)
814
+ return a ? xn(t, yn(o, t)) : $n(t, bn(o, t));
815
+ } else {
816
+ if (!l[h])
817
+ return i ? t : {};
818
+ o = oa(t, h, f);
819
+ }
820
+ }
821
+ s || (s = new P());
822
+ var E = s.get(t);
823
+ if (E)
824
+ return E;
825
+ s.set(t, o), da(t) ? t.forEach(function(d) {
826
+ o.add(G(d, e, r, d, t, s));
827
+ }) : la(t) && t.forEach(function(d, b) {
828
+ o.set(b, G(d, e, r, b, t, s));
829
+ });
830
+ var F = c ? a ? wn : On : a ? it : at, T = u ? void 0 : F(t);
831
+ return Ue(T || t, function(d, b) {
832
+ T && (b = d, d = t[b]), Nt(o, b, G(d, e, r, b, t, s));
833
+ }), o;
834
+ }
835
+ var ka = 1, Ga = 4;
836
+ function Ra(t) {
837
+ return G(t, ka | Ga);
838
+ }
839
+ class ee {
840
+ constructor(e) {
841
+ g(this, "threshold", 2);
842
+ g(this, "hit", 0);
843
+ g(this, "prevSegment");
844
+ g(this, "hitSegment");
845
+ g(this, "hitSegmentList", []);
846
+ g(this, "options");
847
+ this.options = e || {};
848
+ }
849
+ push(e) {
850
+ var r, n;
851
+ this.hitSegment && this.hitSegment.text !== e.text && (this.hitSegmentList.push(this.hitSegment), this.reset()), this.prevSegment && e.text === this.prevSegment.text ? (this.hit++, this.hit === 1 && (this.hitSegment = Ra(this.prevSegment)), this.threshold <= this.hit && this.hitSegment && (this.hitSegment.et = e.et, this.hitSegment.hit = this.hit, (n = (r = this.options).onHit) == null || n.call(r, this.hitSegmentList))) : this.hit = 0, this.prevSegment = e;
852
+ }
853
+ end() {
854
+ var e, r;
855
+ this.hitSegment && (this.hitSegmentList.push(this.hitSegment), (r = (e = this.options).onHit) == null || r.call(e, this.hitSegmentList)), this.reset();
856
+ }
857
+ reset() {
858
+ this.hit = 0, this.prevSegment = void 0, this.hitSegment = void 0;
859
+ }
860
+ }
861
+ const _ = {
862
+ punc: /[.,?!\],。!?…]{1}/,
863
+ // 是否存在句子分割符号
864
+ em: /[.?!\]。!?…]{1}/,
865
+ // 是否存在行尾分割符号
866
+ space: /^\s+|\s+$|\s{2,}/g,
867
+ // 是否存在连续空白
868
+ ep: /[.,?!,。!?…]{1}\s*$/
869
+ // 是否存在行尾标点和可能存在的空格字符
870
+ };
871
+ function Ha(t, e) {
872
+ let r = [];
873
+ const n = new ee({
874
+ onHit: (a) => {
875
+ r = a;
876
+ }
877
+ }), i = (a) => a.trim().length === 0, s = (a) => {
878
+ const c = z(a.st), u = z(a.et);
879
+ return c >= u;
880
+ }, o = {
881
+ emt: [],
882
+ ep: [],
883
+ zf: [],
884
+ punc: [],
885
+ em: [],
886
+ space: []
887
+ }, f = [];
888
+ return t.forEach((a, c) => {
889
+ const u = _.punc.test(a.text), h = _.em.test(a.text), x = _.space.test(a.text), E = i(a.text), F = s(a), T = _.ep.test(a.text);
890
+ n.push(a), a.punc = u ? 1 : 0, u && o.punc.push(c), a.em = h ? 1 : 0, h && o.em.push(c), a.space = x ? 1 : 0, x && (e != null && e.space ? a.text = a.text.replace(_.space, " ").trim() : o.space.push(c)), a.emt = i(a.text) ? 1 : 0, E && (e != null && e.emt || o.emt.push(c)), a.zf = s(a) ? 1 : 0, F && (e != null && e.zf || o.zf.push(c)), a.ep = T ? 1 : 0, T && (e != null && e.ep ? a.text = a.text.replace(_.ep, "") : o.ep.push(c)), !(e != null && e.zf && a.zf) && (e != null && e.emt && a.emt || f.push(a));
891
+ }), n.end(), {
892
+ result: o,
893
+ repeat: r,
894
+ segments: f
895
+ };
896
+ }
897
+ const Ja = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
264
898
  __proto__: null,
265
- StreamFilter: P
899
+ RepeatCheck: ee,
900
+ subtitleOptimization: Ha,
901
+ subtitleOptimizationRegExp: _
266
902
  }, Symbol.toStringTag, { value: "Module" }));
267
903
  export {
268
- H as filter,
269
- D as parser,
270
- B as utils
904
+ Ya as filter,
905
+ qa as parser,
906
+ Ja as tools,
907
+ Wa as utils
271
908
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aim-packages/subtitle",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "main": "dist/index.cjs.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {