music-lyric-kit 0.12.1 → 0.14.0

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@music-lyric-kit/lyric"),_=require("@music-lyric-kit/plugin-format-lrc"),x=require("@music-lyric-kit/plugin-format-ttml"),P=require("@music-lyric-kit/plugin-transform-interlude"),b=require("@music-lyric-kit/plugin-transform-background"),w=require("@music-lyric-kit/plugin-transform-agent"),y=require("@music-lyric-kit/plugin-transform-space"),T=require("@music-lyric-kit/plugin-transform-pure"),k=require("@music-lyric-kit/plugin-transform-stress"),s=require("@music-lyric-kit/core");function n(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,o.get?o:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const l=n(_),h=n(x),f=n(P),i=n(b),m=n(w),p=n(y),c=n(T),g=n(k),S=Object.freeze(Object.defineProperty({__proto__:null,Lrc:l,Ttml:h},Symbol.toStringTag,{value:"Module"})),O=Object.freeze(Object.defineProperty({__proto__:null,Agent:m,Background:i,Interlude:f,Pure:c,Space:p,Stress:g},Symbol.toStringTag,{value:"Module"})),a=[new l.Parser,new h.AmllParser];class j{constructor(e){this.client=e}_extract=new m.Extract;extract(e){return this.client.run(this._extract,e)}}class C{constructor(e){this.client=e}_extract=new i.Extract;_clean=new i.Clean;extract(e){return this.client.run(this._extract,e)}clean(){return this.client.run(this._clean)}}class I{constructor(e){this.client=e}_extractCreator=new c.ExtractCreator;_clean=new c.Clean;extractCreator(e){return this.client.run(this._extractCreator,e)}clean(e){return this.client.run(this._clean,e)}}class q{constructor(e){this.client=e}_insert=new f.Insert;insert(e){return this.client.run(this._insert,e)}}class L{constructor(e){this.client=e}_insert=new p.Insert;insert(e){return this.client.run(this._insert,e)}}class ${constructor(e){this.client=e}_mark=new g.Mark;mark(e){return this.client.run(this._mark,e)}}class d{context;format;input;done;agent;background;pure;interlude;space;stress;constructor(e){this.done=!1,this.input=e,this.format=this.input.format||"";const t=new u.Lyric.Info;this.context=new s.ParserContext({content:this.input.content,musicInfo:this.input.musicInfo},t),this.agent=new j(this),this.background=new C(this),this.pure=new I(this),this.interlude=new q(this),this.space=new L(this),this.stress=new $(this)}applyConfig(e,t){e.config&&(e.config.reset(),t&&e.config.update(t))}exec(e){this.done=!1;try{if(!e.check(this.context))return}catch(t){console.warn(`plugin check failed id=${e.id} err=${t?.message}`);return}try{e.exec(this.context)}catch(t){console.warn(`plugin call failed id=${e.id} err=${t?.message}`)}}run(e,t){return this.applyConfig(e,t),this.exec(e),this}infer(){if(this.format)return this;for(const e of a)try{if(e.check(this.context)){this.format=e.format;break}}catch{continue}return this}parse(){if(!this.format)throw new Error("no format detected. call .infer() before .parse()");const e=a.find(t=>t.format===this.format);if(!e)throw new Error(`parser plugin not found: "${this.format}"`);this.done=!1;try{e.exec(this.context)}catch(t){console.warn(`plugin call failed id=${e.id} err=${t?.message}`)}return this}final(){return this.done||(this.context.cleanWord(),this.context.syncLineTimeWithWord(),this.context.sort(),this.context.calcAgentIndex(),this.context.syncLineTimeWithBackground(),this.done=!0),{format:this.format,result:this.context.result}}}const A=r=>new d(r);Object.defineProperty(exports,"Lyric",{enumerable:!0,get:()=>u.Lyric});Object.defineProperty(exports,"Generator",{enumerable:!0,get:()=>s.Generator});Object.defineProperty(exports,"GeneratorContext",{enumerable:!0,get:()=>s.GeneratorContext});Object.defineProperty(exports,"Parser",{enumerable:!0,get:()=>s.Parser});Object.defineProperty(exports,"ParserContext",{enumerable:!0,get:()=>s.ParserContext});exports.Format=S;exports.ParserPipeline=d;exports.Transform=O;exports.createParserPipeline=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("@music-lyric-kit/lyric"),x=require("@music-lyric-kit/plugin-format-lrc"),P=require("@music-lyric-kit/plugin-format-ttml"),w=require("@music-lyric-kit/plugin-transform-interlude"),b=require("@music-lyric-kit/plugin-transform-background"),y=require("@music-lyric-kit/plugin-transform-agent"),T=require("@music-lyric-kit/plugin-transform-space"),k=require("@music-lyric-kit/plugin-transform-pure"),S=require("@music-lyric-kit/plugin-transform-stress"),O=require("@music-lyric-kit/plugin-transform-language"),s=require("@music-lyric-kit/core");function n(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const u=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,u.get?u:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const f=n(x),i=n(P),m=n(w),c=n(b),g=n(y),p=n(T),a=n(k),d=n(S),o=n(O),j=Object.freeze(Object.defineProperty({__proto__:null,Lrc:f,Ttml:i},Symbol.toStringTag,{value:"Module"})),C=Object.freeze(Object.defineProperty({__proto__:null,Agent:g,Background:c,Interlude:m,Language:o,Pure:a,Space:p,Stress:d},Symbol.toStringTag,{value:"Module"})),l=[new f.Parser,new i.AmllParser,new i.ItunesParser];class I{constructor(e){this.client=e}_extract=new g.Extract;extract(e){return this.client.run(this._extract,e)}}class L{constructor(e){this.client=e}_extract=new c.Extract;_clean=new c.Clean;extract(e){return this.client.run(this._extract,e)}clean(){return this.client.run(this._clean)}}class q{constructor(e){this.client=e}_extractCreator=new a.ExtractCreator;_clean=new a.Clean;extractCreator(e){return this.client.run(this._extractCreator,e)}clean(e){return this.client.run(this._clean,e)}}class A{constructor(e){this.client=e}_insert=new m.Insert;insert(e){return this.client.run(this._insert,e)}}class ${constructor(e){this.client=e}_insert=new p.Insert;insert(e){return this.client.run(this._insert,e)}}class B{constructor(e){this.client=e}_mark=new d.Mark;mark(e){return this.client.run(this._mark,e)}}class F{constructor(e){this.client=e}_infer=new o.Infer;_calculatePercent=new o.CalculatePercent;infer(e){return this.client.run(this._infer,e)}calculatePercent(e){return this.client.run(this._calculatePercent,e)}}class _{context;format;input;done;agent;background;pure;interlude;space;stress;language;constructor(e){this.done=!1,this.input=e,this.format=this.input.format||"";const t=new h.Lyric.Info;this.context=new s.ParserContext({content:this.input.content,musicInfo:this.input.musicInfo},t),this.agent=new I(this),this.background=new L(this),this.pure=new q(this),this.interlude=new A(this),this.space=new $(this),this.stress=new B(this),this.language=new F(this)}applyConfig(e,t){e.config&&(e.config.reset(),t&&e.config.update(t))}exec(e){this.done=!1;try{if(!e.check(this.context))return}catch(t){console.warn(`plugin check failed id=${e.id} err=${t?.message}`);return}try{e.exec(this.context)}catch(t){console.warn(`plugin call failed id=${e.id} err=${t?.message}`)}}run(e,t){return this.applyConfig(e,t),this.exec(e),this}infer(){if(this.format)return this;for(const e of l)try{if(e.check(this.context)){this.format=e.format;break}}catch{continue}return this}parse(){if(!this.format)throw new Error("no format detected. call .infer() before .parse()");const e=l.find(t=>t.format===this.format);if(!e)throw new Error(`parser plugin not found: "${this.format}"`);this.done=!1;try{e.exec(this.context)}catch(t){console.warn(`plugin call failed id=${e.id} err=${t?.message}`)}return this.context.finalizeAnnotation(),this}final(){return this.done||(this.context.cleanWord(),this.context.finalizeAnnotation(),this.context.syncLineTimeWithWord(),this.context.sort(),this.context.calcAgentIndex(),this.context.syncLineTimeWithBackground(),this.done=!0),{format:this.format,result:this.context.result}}}const z=r=>new _(r);Object.defineProperty(exports,"Lyric",{enumerable:!0,get:()=>h.Lyric});Object.defineProperty(exports,"Generator",{enumerable:!0,get:()=>s.Generator});Object.defineProperty(exports,"GeneratorContext",{enumerable:!0,get:()=>s.GeneratorContext});Object.defineProperty(exports,"Parser",{enumerable:!0,get:()=>s.Parser});Object.defineProperty(exports,"ParserContext",{enumerable:!0,get:()=>s.ParserContext});exports.Format=j;exports.ParserPipeline=_;exports.Transform=C;exports.createParserPipeline=z;
2
2
  //# sourceMappingURL=index.comm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.comm.js","sources":["../src/parser/pipeline.ts"],"sourcesContent":["import type { ParserParams } from '@music-lyric-kit/core'\n\nimport { Lyric } from '@music-lyric-kit/lyric'\nimport { ParserContext, ParserPlugin } from '@music-lyric-kit/core'\n\nimport { Format, Transform } from '@root/plugin'\n\nexport interface ParserPipelineInput {\n format?: string\n content: any\n musicInfo?: ParserParams['musicInfo']\n}\n\nexport interface ParserPipelineResult {\n format: string\n result: Lyric.Info\n}\n\nconst BuiltInFormats = [new Format.Lrc.Parser(), new Format.Ttml.AmllParser()]\n\nclass Agent {\n private _extract = new Transform.Agent.Extract()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Agent.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n}\n\nclass Background {\n private _extract = new Transform.Background.Extract()\n private _clean = new Transform.Background.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Background.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n\n clean() {\n return this.client.run(this._clean)\n }\n}\n\nclass Pure {\n private _extractCreator = new Transform.Pure.ExtractCreator()\n private _clean = new Transform.Pure.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extractCreator(options?: Transform.Pure.ExtractCreatorConfig) {\n return this.client.run(this._extractCreator, options)\n }\n\n clean(options?: Transform.Pure.CleanConfig) {\n return this.client.run(this._clean, options)\n }\n}\n\nclass Interlude {\n private _insert = new Transform.Interlude.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Interlude.InsertConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Space {\n private _insert = new Transform.Space.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Space.SpaceConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Stress {\n private _mark = new Transform.Stress.Mark()\n\n constructor(private client: ParserPipeline) {}\n\n mark(options?: Transform.Stress.MarkConfig) {\n return this.client.run(this._mark, options)\n }\n}\n\nexport class ParserPipeline {\n private context: ParserContext\n private format: string\n private input: ParserPipelineInput\n private done: boolean\n\n readonly agent: Agent\n readonly background: Background\n readonly pure: Pure\n readonly interlude: Interlude\n readonly space: Space\n readonly stress: Stress\n\n constructor(input: ParserPipelineInput) {\n this.done = false\n this.input = input\n this.format = this.input.format || ''\n\n const init = new Lyric.Info()\n this.context = new ParserContext({ content: this.input.content, musicInfo: this.input.musicInfo }, init)\n\n this.agent = new Agent(this)\n this.background = new Background(this)\n this.pure = new Pure(this)\n this.interlude = new Interlude(this)\n this.space = new Space(this)\n this.stress = new Stress(this)\n }\n\n private applyConfig(plugin: ParserPlugin, options?: any) {\n if (!plugin.config) {\n return\n }\n\n // reset config first\n plugin.config.reset()\n\n if (options) {\n plugin.config.update(options)\n }\n }\n\n private exec(plugin: ParserPlugin) {\n this.done = false\n\n try {\n const result = plugin.check(this.context)\n if (!result) {\n return\n }\n } catch (e: any) {\n console.warn(`plugin check failed id=${plugin.id} err=${e?.message}`)\n return\n }\n\n try {\n plugin.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${plugin.id} err=${e?.message}`)\n }\n }\n\n /**\n * Apply optional config to a plugin and execute it against the current context.\n * Intended for use by the pipeline plugin scopes.\n */\n run(plugin: ParserPlugin, options?: any): this {\n this.applyConfig(plugin, options)\n this.exec(plugin)\n return this\n }\n\n infer(): this {\n if (this.format) {\n return this\n }\n for (const plugin of BuiltInFormats) {\n try {\n const result = plugin.check(this.context)\n if (result) {\n this.format = plugin.format\n break\n }\n } catch {\n continue\n }\n }\n return this\n }\n\n parse(): this {\n if (!this.format) {\n throw new Error('no format detected. call .infer() before .parse()')\n }\n\n const parser = BuiltInFormats.find((item) => item.format === this.format)\n if (!parser) {\n throw new Error(`parser plugin not found: \"${this.format}\"`)\n }\n\n this.done = false\n\n try {\n parser.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${parser.id} err=${e?.message}`)\n }\n\n return this\n }\n\n final(): ParserPipelineResult {\n if (!this.done) {\n this.context.cleanWord()\n this.context.syncLineTimeWithWord()\n this.context.sort()\n this.context.calcAgentIndex()\n this.context.syncLineTimeWithBackground()\n this.done = true\n }\n\n return {\n format: this.format,\n result: this.context.result,\n }\n }\n}\n\nexport const createParserPipeline = (input: ParserPipelineInput) => {\n return new ParserPipeline(input)\n}\n"],"names":["BuiltInFormats","Format.Lrc","Format.Ttml","Agent","client","Transform.Agent","options","Background","Transform.Background","Pure","Transform.Pure","Interlude","Transform.Interlude","Space","Transform.Space","Stress","Transform.Stress","ParserPipeline","input","init","Lyric","ParserContext","plugin","e","parser","item","createParserPipeline"],"mappings":"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"}
1
+ {"version":3,"file":"index.comm.js","sources":["../src/parser/pipeline.ts"],"sourcesContent":["import type { ParserParams } from '@music-lyric-kit/core'\n\nimport { Lyric } from '@music-lyric-kit/lyric'\nimport { ParserContext, ParserPlugin } from '@music-lyric-kit/core'\n\nimport { Format, Transform } from '@root/plugin'\n\nexport interface ParserPipelineInput {\n format?: string\n content: any\n musicInfo?: ParserParams['musicInfo']\n}\n\nexport interface ParserPipelineResult {\n format: string\n result: Lyric.Info\n}\n\nconst BuiltInFormats = [new Format.Lrc.Parser(), new Format.Ttml.AmllParser(), new Format.Ttml.ItunesParser()]\n\nclass Agent {\n private _extract = new Transform.Agent.Extract()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Agent.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n}\n\nclass Background {\n private _extract = new Transform.Background.Extract()\n private _clean = new Transform.Background.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Background.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n\n clean() {\n return this.client.run(this._clean)\n }\n}\n\nclass Pure {\n private _extractCreator = new Transform.Pure.ExtractCreator()\n private _clean = new Transform.Pure.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extractCreator(options?: Transform.Pure.ExtractCreatorConfig) {\n return this.client.run(this._extractCreator, options)\n }\n\n clean(options?: Transform.Pure.CleanConfig) {\n return this.client.run(this._clean, options)\n }\n}\n\nclass Interlude {\n private _insert = new Transform.Interlude.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Interlude.InsertConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Space {\n private _insert = new Transform.Space.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Space.SpaceConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Stress {\n private _mark = new Transform.Stress.Mark()\n\n constructor(private client: ParserPipeline) {}\n\n mark(options?: Transform.Stress.MarkConfig) {\n return this.client.run(this._mark, options)\n }\n}\n\nclass Language {\n private _infer = new Transform.Language.Infer()\n private _calculatePercent = new Transform.Language.CalculatePercent()\n\n constructor(private client: ParserPipeline) {}\n\n infer(options?: Transform.Language.InferConfig) {\n return this.client.run(this._infer, options)\n }\n\n calculatePercent(options?: Transform.Language.CalculateConfig) {\n return this.client.run(this._calculatePercent, options)\n }\n}\n\nexport class ParserPipeline {\n private context: ParserContext\n private format: string\n private input: ParserPipelineInput\n private done: boolean\n\n readonly agent: Agent\n readonly background: Background\n readonly pure: Pure\n readonly interlude: Interlude\n readonly space: Space\n readonly stress: Stress\n readonly language: Language\n\n constructor(input: ParserPipelineInput) {\n this.done = false\n this.input = input\n this.format = this.input.format || ''\n\n const init = new Lyric.Info()\n this.context = new ParserContext({ content: this.input.content, musicInfo: this.input.musicInfo }, init)\n\n this.agent = new Agent(this)\n this.background = new Background(this)\n this.pure = new Pure(this)\n this.interlude = new Interlude(this)\n this.space = new Space(this)\n this.stress = new Stress(this)\n this.language = new Language(this)\n }\n\n private applyConfig(plugin: ParserPlugin, options?: any) {\n if (!plugin.config) {\n return\n }\n\n // reset config first\n plugin.config.reset()\n\n if (options) {\n plugin.config.update(options)\n }\n }\n\n private exec(plugin: ParserPlugin) {\n this.done = false\n\n try {\n const result = plugin.check(this.context)\n if (!result) {\n return\n }\n } catch (e: any) {\n console.warn(`plugin check failed id=${plugin.id} err=${e?.message}`)\n return\n }\n\n try {\n plugin.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${plugin.id} err=${e?.message}`)\n }\n }\n\n /**\n * Apply optional config to a plugin and execute it against the current context.\n * Intended for use by the pipeline plugin scopes.\n */\n run(plugin: ParserPlugin, options?: any): this {\n this.applyConfig(plugin, options)\n this.exec(plugin)\n return this\n }\n\n infer(): this {\n if (this.format) {\n return this\n }\n for (const plugin of BuiltInFormats) {\n try {\n const result = plugin.check(this.context)\n if (result) {\n this.format = plugin.format\n break\n }\n } catch {\n continue\n }\n }\n return this\n }\n\n parse(): this {\n if (!this.format) {\n throw new Error('no format detected. call .infer() before .parse()')\n }\n\n const parser = BuiltInFormats.find((item) => item.format === this.format)\n if (!parser) {\n throw new Error(`parser plugin not found: \"${this.format}\"`)\n }\n\n this.done = false\n\n try {\n parser.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${parser.id} err=${e?.message}`)\n }\n\n this.context.finalizeAnnotation()\n\n return this\n }\n\n final(): ParserPipelineResult {\n if (!this.done) {\n this.context.cleanWord()\n this.context.finalizeAnnotation()\n this.context.syncLineTimeWithWord()\n this.context.sort()\n this.context.calcAgentIndex()\n this.context.syncLineTimeWithBackground()\n this.done = true\n }\n\n return {\n format: this.format,\n result: this.context.result,\n }\n }\n}\n\nexport const createParserPipeline = (input: ParserPipelineInput) => {\n return new ParserPipeline(input)\n}\n"],"names":["BuiltInFormats","Format.Lrc","Format.Ttml","Agent","client","Transform.Agent","options","Background","Transform.Background","Pure","Transform.Pure","Interlude","Transform.Interlude","Space","Transform.Space","Stress","Transform.Stress","Language","Transform.Language","ParserPipeline","input","init","Lyric","ParserContext","plugin","e","parser","item","createParserPipeline"],"mappings":"0tCAkBMA,EAAiB,CAAC,IAAIC,EAAW,OAAU,IAAIC,EAAY,WAAc,IAAIA,EAAY,YAAc,EAE7G,MAAMC,CAAM,CAGV,YAAoBC,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAFrC,SAAW,IAAIC,EAAgB,QAIvC,QAAQC,EAAyC,CAC/C,OAAO,KAAK,OAAO,IAAI,KAAK,SAAUA,CAAO,CAC/C,CACF,CAEA,MAAMC,CAAW,CAIf,YAAoBH,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAHrC,SAAW,IAAII,EAAqB,QACpC,OAAS,IAAIA,EAAqB,MAI1C,QAAQF,EAA8C,CACpD,OAAO,KAAK,OAAO,IAAI,KAAK,SAAUA,CAAO,CAC/C,CAEA,OAAQ,CACN,OAAO,KAAK,OAAO,IAAI,KAAK,MAAM,CACpC,CACF,CAEA,MAAMG,CAAK,CAIT,YAAoBL,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAHrC,gBAAkB,IAAIM,EAAe,eACrC,OAAS,IAAIA,EAAe,MAIpC,eAAeJ,EAA+C,CAC5D,OAAO,KAAK,OAAO,IAAI,KAAK,gBAAiBA,CAAO,CACtD,CAEA,MAAMA,EAAsC,CAC1C,OAAO,KAAK,OAAO,IAAI,KAAK,OAAQA,CAAO,CAC7C,CACF,CAEA,MAAMK,CAAU,CAGd,YAAoBP,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAFrC,QAAU,IAAIQ,EAAoB,OAI1C,OAAON,EAA4C,CACjD,OAAO,KAAK,OAAO,IAAI,KAAK,QAASA,CAAO,CAC9C,CACF,CAEA,MAAMO,CAAM,CAGV,YAAoBT,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAFrC,QAAU,IAAIU,EAAgB,OAItC,OAAOR,EAAuC,CAC5C,OAAO,KAAK,OAAO,IAAI,KAAK,QAASA,CAAO,CAC9C,CACF,CAEA,MAAMS,CAAO,CAGX,YAAoBX,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAFrC,MAAQ,IAAIY,EAAiB,KAIrC,KAAKV,EAAuC,CAC1C,OAAO,KAAK,OAAO,IAAI,KAAK,MAAOA,CAAO,CAC5C,CACF,CAEA,MAAMW,CAAS,CAIb,YAAoBb,EAAwB,CAAxB,KAAA,OAAAA,CAAyB,CAHrC,OAAS,IAAIc,EAAmB,MAChC,kBAAoB,IAAIA,EAAmB,iBAInD,MAAMZ,EAA0C,CAC9C,OAAO,KAAK,OAAO,IAAI,KAAK,OAAQA,CAAO,CAC7C,CAEA,iBAAiBA,EAA8C,CAC7D,OAAO,KAAK,OAAO,IAAI,KAAK,kBAAmBA,CAAO,CACxD,CACF,CAEO,MAAMa,CAAe,CAClB,QACA,OACA,MACA,KAEC,MACA,WACA,KACA,UACA,MACA,OACA,SAET,YAAYC,EAA4B,CACtC,KAAK,KAAO,GACZ,KAAK,MAAQA,EACb,KAAK,OAAS,KAAK,MAAM,QAAU,GAEnC,MAAMC,EAAO,IAAIC,EAAAA,MAAM,KACvB,KAAK,QAAU,IAAIC,EAAAA,cAAc,CAAE,QAAS,KAAK,MAAM,QAAS,UAAW,KAAK,MAAM,SAAA,EAAaF,CAAI,EAEvG,KAAK,MAAQ,IAAIlB,EAAM,IAAI,EAC3B,KAAK,WAAa,IAAII,EAAW,IAAI,EACrC,KAAK,KAAO,IAAIE,EAAK,IAAI,EACzB,KAAK,UAAY,IAAIE,EAAU,IAAI,EACnC,KAAK,MAAQ,IAAIE,EAAM,IAAI,EAC3B,KAAK,OAAS,IAAIE,EAAO,IAAI,EAC7B,KAAK,SAAW,IAAIE,EAAS,IAAI,CACnC,CAEQ,YAAYO,EAAsBlB,EAAe,CAClDkB,EAAO,SAKZA,EAAO,OAAO,MAAA,EAEVlB,GACFkB,EAAO,OAAO,OAAOlB,CAAO,EAEhC,CAEQ,KAAKkB,EAAsB,CACjC,KAAK,KAAO,GAEZ,GAAI,CAEF,GAAI,CADWA,EAAO,MAAM,KAAK,OAAO,EAEtC,MAEJ,OAASC,EAAQ,CACf,QAAQ,KAAK,0BAA0BD,EAAO,EAAE,QAAQC,GAAG,OAAO,EAAE,EACpE,MACF,CAEA,GAAI,CACFD,EAAO,KAAK,KAAK,OAAO,CAC1B,OAASC,EAAQ,CACf,QAAQ,KAAK,yBAAyBD,EAAO,EAAE,QAAQC,GAAG,OAAO,EAAE,CACrE,CACF,CAMA,IAAID,EAAsBlB,EAAqB,CAC7C,YAAK,YAAYkB,EAAQlB,CAAO,EAChC,KAAK,KAAKkB,CAAM,EACT,IACT,CAEA,OAAc,CACZ,GAAI,KAAK,OACP,OAAO,KAET,UAAWA,KAAUxB,EACnB,GAAI,CAEF,GADewB,EAAO,MAAM,KAAK,OAAO,EAC5B,CACV,KAAK,OAASA,EAAO,OACrB,KACF,CACF,MAAQ,CACN,QACF,CAEF,OAAO,IACT,CAEA,OAAc,CACZ,GAAI,CAAC,KAAK,OACR,MAAM,IAAI,MAAM,mDAAmD,EAGrE,MAAME,EAAS1B,EAAe,KAAM2B,GAASA,EAAK,SAAW,KAAK,MAAM,EACxE,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,6BAA6B,KAAK,MAAM,GAAG,EAG7D,KAAK,KAAO,GAEZ,GAAI,CACFA,EAAO,KAAK,KAAK,OAAO,CAC1B,OAASD,EAAQ,CACf,QAAQ,KAAK,yBAAyBC,EAAO,EAAE,QAAQD,GAAG,OAAO,EAAE,CACrE,CAEA,YAAK,QAAQ,mBAAA,EAEN,IACT,CAEA,OAA8B,CAC5B,OAAK,KAAK,OACR,KAAK,QAAQ,UAAA,EACb,KAAK,QAAQ,mBAAA,EACb,KAAK,QAAQ,qBAAA,EACb,KAAK,QAAQ,KAAA,EACb,KAAK,QAAQ,eAAA,EACb,KAAK,QAAQ,2BAAA,EACb,KAAK,KAAO,IAGP,CACL,OAAQ,KAAK,OACb,OAAQ,KAAK,QAAQ,MAAA,CAEzB,CACF,CAEO,MAAMG,EAAwBR,GAC5B,IAAID,EAAeC,CAAK"}
@@ -6,6 +6,7 @@ import { GeneratorOptions } from '@music-lyric-kit/core';
6
6
  import { GeneratorParams } from '@music-lyric-kit/core';
7
7
  import { GeneratorResult } from '@music-lyric-kit/core';
8
8
  import * as Interlude from '@music-lyric-kit/plugin-transform-interlude';
9
+ import * as Language from '@music-lyric-kit/plugin-transform-language';
9
10
  import * as Lrc from '@music-lyric-kit/plugin-format-lrc';
10
11
  import { Lyric } from '@music-lyric-kit/lyric';
11
12
  import { Parser } from '@music-lyric-kit/core';
@@ -62,6 +63,15 @@ declare class Interlude_2 {
62
63
  insert(options?: Transform.Interlude.InsertConfig): ParserPipeline;
63
64
  }
64
65
 
66
+ declare class Language_2 {
67
+ private client;
68
+ private _infer;
69
+ private _calculatePercent;
70
+ constructor(client: ParserPipeline);
71
+ infer(options?: Transform.Language.InferConfig): ParserPipeline;
72
+ calculatePercent(options?: Transform.Language.CalculateConfig): ParserPipeline;
73
+ }
74
+
65
75
  export { Lyric }
66
76
 
67
77
  export { Parser }
@@ -83,6 +93,7 @@ export declare class ParserPipeline {
83
93
  readonly interlude: Interlude_2;
84
94
  readonly space: Space_2;
85
95
  readonly stress: Stress_2;
96
+ readonly language: Language_2;
86
97
  constructor(input: ParserPipelineInput);
87
98
  private applyConfig;
88
99
  private exec;
@@ -139,7 +150,8 @@ declare namespace Transform {
139
150
  Agent,
140
151
  Space,
141
152
  Pure,
142
- Stress
153
+ Stress,
154
+ Language
143
155
  }
144
156
  }
145
157
  export { Transform }
@@ -1,33 +1,35 @@
1
- import { Lyric as f } from "@music-lyric-kit/lyric";
1
+ import { Lyric as m } from "@music-lyric-kit/lyric";
2
2
  import { Lyric as $ } from "@music-lyric-kit/lyric";
3
- import * as o from "@music-lyric-kit/plugin-format-lrc";
4
- import * as c from "@music-lyric-kit/plugin-format-ttml";
5
- import * as a from "@music-lyric-kit/plugin-transform-interlude";
6
- import * as n from "@music-lyric-kit/plugin-transform-background";
7
- import * as l from "@music-lyric-kit/plugin-transform-agent";
8
- import * as u from "@music-lyric-kit/plugin-transform-space";
9
- import * as s from "@music-lyric-kit/plugin-transform-pure";
10
- import * as h from "@music-lyric-kit/plugin-transform-stress";
11
- import { ParserContext as m } from "@music-lyric-kit/core";
12
- import { Generator as A, GeneratorContext as B, Parser as E, ParserContext as j } from "@music-lyric-kit/core";
13
- const T = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3
+ import * as c from "@music-lyric-kit/plugin-format-lrc";
4
+ import * as n from "@music-lyric-kit/plugin-format-ttml";
5
+ import * as l from "@music-lyric-kit/plugin-transform-interlude";
6
+ import * as s from "@music-lyric-kit/plugin-transform-background";
7
+ import * as u from "@music-lyric-kit/plugin-transform-agent";
8
+ import * as h from "@music-lyric-kit/plugin-transform-space";
9
+ import * as i from "@music-lyric-kit/plugin-transform-pure";
10
+ import * as f from "@music-lyric-kit/plugin-transform-stress";
11
+ import * as o from "@music-lyric-kit/plugin-transform-language";
12
+ import { ParserContext as p } from "@music-lyric-kit/core";
13
+ import { Generator as E, GeneratorContext as j, Parser as z, ParserContext as F } from "@music-lyric-kit/core";
14
+ const I = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14
15
  __proto__: null,
15
- Lrc: o,
16
- Ttml: c
17
- }, Symbol.toStringTag, { value: "Module" })), C = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
16
+ Lrc: c,
17
+ Ttml: n
18
+ }, Symbol.toStringTag, { value: "Module" })), b = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18
19
  __proto__: null,
19
- Agent: l,
20
- Background: n,
21
- Interlude: a,
22
- Pure: s,
23
- Space: u,
24
- Stress: h
25
- }, Symbol.toStringTag, { value: "Module" })), i = [new o.Parser(), new c.AmllParser()];
26
- class p {
20
+ Agent: u,
21
+ Background: s,
22
+ Interlude: l,
23
+ Language: o,
24
+ Pure: i,
25
+ Space: h,
26
+ Stress: f
27
+ }, Symbol.toStringTag, { value: "Module" })), a = [new c.Parser(), new n.AmllParser(), new n.ItunesParser()];
28
+ class g {
27
29
  constructor(t) {
28
30
  this.client = t;
29
31
  }
30
- _extract = new l.Extract();
32
+ _extract = new u.Extract();
31
33
  extract(t) {
32
34
  return this.client.run(this._extract, t);
33
35
  }
@@ -36,8 +38,8 @@ class d {
36
38
  constructor(t) {
37
39
  this.client = t;
38
40
  }
39
- _extract = new n.Extract();
40
- _clean = new n.Clean();
41
+ _extract = new s.Extract();
42
+ _clean = new s.Clean();
41
43
  extract(t) {
42
44
  return this.client.run(this._extract, t);
43
45
  }
@@ -49,8 +51,8 @@ class x {
49
51
  constructor(t) {
50
52
  this.client = t;
51
53
  }
52
- _extractCreator = new s.ExtractCreator();
53
- _clean = new s.Clean();
54
+ _extractCreator = new i.ExtractCreator();
55
+ _clean = new i.Clean();
54
56
  extractCreator(t) {
55
57
  return this.client.run(this._extractCreator, t);
56
58
  }
@@ -58,34 +60,47 @@ class x {
58
60
  return this.client.run(this._clean, t);
59
61
  }
60
62
  }
61
- class g {
63
+ class w {
62
64
  constructor(t) {
63
65
  this.client = t;
64
66
  }
65
- _insert = new a.Insert();
67
+ _insert = new l.Insert();
66
68
  insert(t) {
67
69
  return this.client.run(this._insert, t);
68
70
  }
69
71
  }
70
- class w {
72
+ class _ {
71
73
  constructor(t) {
72
74
  this.client = t;
73
75
  }
74
- _insert = new u.Insert();
76
+ _insert = new h.Insert();
75
77
  insert(t) {
76
78
  return this.client.run(this._insert, t);
77
79
  }
78
80
  }
79
- class _ {
81
+ class P {
80
82
  constructor(t) {
81
83
  this.client = t;
82
84
  }
83
- _mark = new h.Mark();
85
+ _mark = new f.Mark();
84
86
  mark(t) {
85
87
  return this.client.run(this._mark, t);
86
88
  }
87
89
  }
88
90
  class k {
91
+ constructor(t) {
92
+ this.client = t;
93
+ }
94
+ _infer = new o.Infer();
95
+ _calculatePercent = new o.CalculatePercent();
96
+ infer(t) {
97
+ return this.client.run(this._infer, t);
98
+ }
99
+ calculatePercent(t) {
100
+ return this.client.run(this._calculatePercent, t);
101
+ }
102
+ }
103
+ class y {
89
104
  context;
90
105
  format;
91
106
  input;
@@ -96,40 +111,41 @@ class k {
96
111
  interlude;
97
112
  space;
98
113
  stress;
114
+ language;
99
115
  constructor(t) {
100
116
  this.done = !1, this.input = t, this.format = this.input.format || "";
101
- const r = new f.Info();
102
- this.context = new m({ content: this.input.content, musicInfo: this.input.musicInfo }, r), this.agent = new p(this), this.background = new d(this), this.pure = new x(this), this.interlude = new g(this), this.space = new w(this), this.stress = new _(this);
117
+ const e = new m.Info();
118
+ this.context = new p({ content: this.input.content, musicInfo: this.input.musicInfo }, e), this.agent = new g(this), this.background = new d(this), this.pure = new x(this), this.interlude = new w(this), this.space = new _(this), this.stress = new P(this), this.language = new k(this);
103
119
  }
104
- applyConfig(t, r) {
105
- t.config && (t.config.reset(), r && t.config.update(r));
120
+ applyConfig(t, e) {
121
+ t.config && (t.config.reset(), e && t.config.update(e));
106
122
  }
107
123
  exec(t) {
108
124
  this.done = !1;
109
125
  try {
110
126
  if (!t.check(this.context))
111
127
  return;
112
- } catch (r) {
113
- console.warn(`plugin check failed id=${t.id} err=${r?.message}`);
128
+ } catch (e) {
129
+ console.warn(`plugin check failed id=${t.id} err=${e?.message}`);
114
130
  return;
115
131
  }
116
132
  try {
117
133
  t.exec(this.context);
118
- } catch (r) {
119
- console.warn(`plugin call failed id=${t.id} err=${r?.message}`);
134
+ } catch (e) {
135
+ console.warn(`plugin call failed id=${t.id} err=${e?.message}`);
120
136
  }
121
137
  }
122
138
  /**
123
139
  * Apply optional config to a plugin and execute it against the current context.
124
140
  * Intended for use by the pipeline plugin scopes.
125
141
  */
126
- run(t, r) {
127
- return this.applyConfig(t, r), this.exec(t), this;
142
+ run(t, e) {
143
+ return this.applyConfig(t, e), this.exec(t), this;
128
144
  }
129
145
  infer() {
130
146
  if (this.format)
131
147
  return this;
132
- for (const t of i)
148
+ for (const t of a)
133
149
  try {
134
150
  if (t.check(this.context)) {
135
151
  this.format = t.format;
@@ -143,34 +159,34 @@ class k {
143
159
  parse() {
144
160
  if (!this.format)
145
161
  throw new Error("no format detected. call .infer() before .parse()");
146
- const t = i.find((r) => r.format === this.format);
162
+ const t = a.find((e) => e.format === this.format);
147
163
  if (!t)
148
164
  throw new Error(`parser plugin not found: "${this.format}"`);
149
165
  this.done = !1;
150
166
  try {
151
167
  t.exec(this.context);
152
- } catch (r) {
153
- console.warn(`plugin call failed id=${t.id} err=${r?.message}`);
168
+ } catch (e) {
169
+ console.warn(`plugin call failed id=${t.id} err=${e?.message}`);
154
170
  }
155
- return this;
171
+ return this.context.finalizeAnnotation(), this;
156
172
  }
157
173
  final() {
158
- return this.done || (this.context.cleanWord(), this.context.syncLineTimeWithWord(), this.context.sort(), this.context.calcAgentIndex(), this.context.syncLineTimeWithBackground(), this.done = !0), {
174
+ return this.done || (this.context.cleanWord(), this.context.finalizeAnnotation(), this.context.syncLineTimeWithWord(), this.context.sort(), this.context.calcAgentIndex(), this.context.syncLineTimeWithBackground(), this.done = !0), {
159
175
  format: this.format,
160
176
  result: this.context.result
161
177
  };
162
178
  }
163
179
  }
164
- const b = (e) => new k(e);
180
+ const S = (r) => new y(r);
165
181
  export {
166
- T as Format,
167
- A as Generator,
168
- B as GeneratorContext,
182
+ I as Format,
183
+ E as Generator,
184
+ j as GeneratorContext,
169
185
  $ as Lyric,
170
- E as Parser,
171
- j as ParserContext,
172
- k as ParserPipeline,
173
- C as Transform,
174
- b as createParserPipeline
186
+ z as Parser,
187
+ F as ParserContext,
188
+ y as ParserPipeline,
189
+ b as Transform,
190
+ S as createParserPipeline
175
191
  };
176
192
  //# sourceMappingURL=index.ecma.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.ecma.js","sources":["../src/parser/pipeline.ts"],"sourcesContent":["import type { ParserParams } from '@music-lyric-kit/core'\n\nimport { Lyric } from '@music-lyric-kit/lyric'\nimport { ParserContext, ParserPlugin } from '@music-lyric-kit/core'\n\nimport { Format, Transform } from '@root/plugin'\n\nexport interface ParserPipelineInput {\n format?: string\n content: any\n musicInfo?: ParserParams['musicInfo']\n}\n\nexport interface ParserPipelineResult {\n format: string\n result: Lyric.Info\n}\n\nconst BuiltInFormats = [new Format.Lrc.Parser(), new Format.Ttml.AmllParser()]\n\nclass Agent {\n private _extract = new Transform.Agent.Extract()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Agent.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n}\n\nclass Background {\n private _extract = new Transform.Background.Extract()\n private _clean = new Transform.Background.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Background.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n\n clean() {\n return this.client.run(this._clean)\n }\n}\n\nclass Pure {\n private _extractCreator = new Transform.Pure.ExtractCreator()\n private _clean = new Transform.Pure.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extractCreator(options?: Transform.Pure.ExtractCreatorConfig) {\n return this.client.run(this._extractCreator, options)\n }\n\n clean(options?: Transform.Pure.CleanConfig) {\n return this.client.run(this._clean, options)\n }\n}\n\nclass Interlude {\n private _insert = new Transform.Interlude.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Interlude.InsertConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Space {\n private _insert = new Transform.Space.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Space.SpaceConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Stress {\n private _mark = new Transform.Stress.Mark()\n\n constructor(private client: ParserPipeline) {}\n\n mark(options?: Transform.Stress.MarkConfig) {\n return this.client.run(this._mark, options)\n }\n}\n\nexport class ParserPipeline {\n private context: ParserContext\n private format: string\n private input: ParserPipelineInput\n private done: boolean\n\n readonly agent: Agent\n readonly background: Background\n readonly pure: Pure\n readonly interlude: Interlude\n readonly space: Space\n readonly stress: Stress\n\n constructor(input: ParserPipelineInput) {\n this.done = false\n this.input = input\n this.format = this.input.format || ''\n\n const init = new Lyric.Info()\n this.context = new ParserContext({ content: this.input.content, musicInfo: this.input.musicInfo }, init)\n\n this.agent = new Agent(this)\n this.background = new Background(this)\n this.pure = new Pure(this)\n this.interlude = new Interlude(this)\n this.space = new Space(this)\n this.stress = new Stress(this)\n }\n\n private applyConfig(plugin: ParserPlugin, options?: any) {\n if (!plugin.config) {\n return\n }\n\n // reset config first\n plugin.config.reset()\n\n if (options) {\n plugin.config.update(options)\n }\n }\n\n private exec(plugin: ParserPlugin) {\n this.done = false\n\n try {\n const result = plugin.check(this.context)\n if (!result) {\n return\n }\n } catch (e: any) {\n console.warn(`plugin check failed id=${plugin.id} err=${e?.message}`)\n return\n }\n\n try {\n plugin.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${plugin.id} err=${e?.message}`)\n }\n }\n\n /**\n * Apply optional config to a plugin and execute it against the current context.\n * Intended for use by the pipeline plugin scopes.\n */\n run(plugin: ParserPlugin, options?: any): this {\n this.applyConfig(plugin, options)\n this.exec(plugin)\n return this\n }\n\n infer(): this {\n if (this.format) {\n return this\n }\n for (const plugin of BuiltInFormats) {\n try {\n const result = plugin.check(this.context)\n if (result) {\n this.format = plugin.format\n break\n }\n } catch {\n continue\n }\n }\n return this\n }\n\n parse(): this {\n if (!this.format) {\n throw new Error('no format detected. call .infer() before .parse()')\n }\n\n const parser = BuiltInFormats.find((item) => item.format === this.format)\n if (!parser) {\n throw new Error(`parser plugin not found: \"${this.format}\"`)\n }\n\n this.done = false\n\n try {\n parser.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${parser.id} err=${e?.message}`)\n }\n\n return this\n }\n\n final(): ParserPipelineResult {\n if (!this.done) {\n this.context.cleanWord()\n this.context.syncLineTimeWithWord()\n this.context.sort()\n this.context.calcAgentIndex()\n this.context.syncLineTimeWithBackground()\n this.done = true\n }\n\n return {\n format: this.format,\n result: this.context.result,\n }\n }\n}\n\nexport const createParserPipeline = (input: ParserPipelineInput) => {\n return new ParserPipeline(input)\n}\n"],"names":["BuiltInFormats","Format.Lrc","Format.Ttml","Agent","client","Transform.Agent","options","Background","Transform.Background","Pure","Transform.Pure","Interlude","Transform.Interlude","Space","Transform.Space","Stress","Transform.Stress","ParserPipeline","input","init","Lyric","ParserContext","plugin","e","parser","item","createParserPipeline"],"mappings":"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"}
1
+ {"version":3,"file":"index.ecma.js","sources":["../src/parser/pipeline.ts"],"sourcesContent":["import type { ParserParams } from '@music-lyric-kit/core'\n\nimport { Lyric } from '@music-lyric-kit/lyric'\nimport { ParserContext, ParserPlugin } from '@music-lyric-kit/core'\n\nimport { Format, Transform } from '@root/plugin'\n\nexport interface ParserPipelineInput {\n format?: string\n content: any\n musicInfo?: ParserParams['musicInfo']\n}\n\nexport interface ParserPipelineResult {\n format: string\n result: Lyric.Info\n}\n\nconst BuiltInFormats = [new Format.Lrc.Parser(), new Format.Ttml.AmllParser(), new Format.Ttml.ItunesParser()]\n\nclass Agent {\n private _extract = new Transform.Agent.Extract()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Agent.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n}\n\nclass Background {\n private _extract = new Transform.Background.Extract()\n private _clean = new Transform.Background.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extract(options?: Transform.Background.ExtractConfig) {\n return this.client.run(this._extract, options)\n }\n\n clean() {\n return this.client.run(this._clean)\n }\n}\n\nclass Pure {\n private _extractCreator = new Transform.Pure.ExtractCreator()\n private _clean = new Transform.Pure.Clean()\n\n constructor(private client: ParserPipeline) {}\n\n extractCreator(options?: Transform.Pure.ExtractCreatorConfig) {\n return this.client.run(this._extractCreator, options)\n }\n\n clean(options?: Transform.Pure.CleanConfig) {\n return this.client.run(this._clean, options)\n }\n}\n\nclass Interlude {\n private _insert = new Transform.Interlude.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Interlude.InsertConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Space {\n private _insert = new Transform.Space.Insert()\n\n constructor(private client: ParserPipeline) {}\n\n insert(options?: Transform.Space.SpaceConfig) {\n return this.client.run(this._insert, options)\n }\n}\n\nclass Stress {\n private _mark = new Transform.Stress.Mark()\n\n constructor(private client: ParserPipeline) {}\n\n mark(options?: Transform.Stress.MarkConfig) {\n return this.client.run(this._mark, options)\n }\n}\n\nclass Language {\n private _infer = new Transform.Language.Infer()\n private _calculatePercent = new Transform.Language.CalculatePercent()\n\n constructor(private client: ParserPipeline) {}\n\n infer(options?: Transform.Language.InferConfig) {\n return this.client.run(this._infer, options)\n }\n\n calculatePercent(options?: Transform.Language.CalculateConfig) {\n return this.client.run(this._calculatePercent, options)\n }\n}\n\nexport class ParserPipeline {\n private context: ParserContext\n private format: string\n private input: ParserPipelineInput\n private done: boolean\n\n readonly agent: Agent\n readonly background: Background\n readonly pure: Pure\n readonly interlude: Interlude\n readonly space: Space\n readonly stress: Stress\n readonly language: Language\n\n constructor(input: ParserPipelineInput) {\n this.done = false\n this.input = input\n this.format = this.input.format || ''\n\n const init = new Lyric.Info()\n this.context = new ParserContext({ content: this.input.content, musicInfo: this.input.musicInfo }, init)\n\n this.agent = new Agent(this)\n this.background = new Background(this)\n this.pure = new Pure(this)\n this.interlude = new Interlude(this)\n this.space = new Space(this)\n this.stress = new Stress(this)\n this.language = new Language(this)\n }\n\n private applyConfig(plugin: ParserPlugin, options?: any) {\n if (!plugin.config) {\n return\n }\n\n // reset config first\n plugin.config.reset()\n\n if (options) {\n plugin.config.update(options)\n }\n }\n\n private exec(plugin: ParserPlugin) {\n this.done = false\n\n try {\n const result = plugin.check(this.context)\n if (!result) {\n return\n }\n } catch (e: any) {\n console.warn(`plugin check failed id=${plugin.id} err=${e?.message}`)\n return\n }\n\n try {\n plugin.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${plugin.id} err=${e?.message}`)\n }\n }\n\n /**\n * Apply optional config to a plugin and execute it against the current context.\n * Intended for use by the pipeline plugin scopes.\n */\n run(plugin: ParserPlugin, options?: any): this {\n this.applyConfig(plugin, options)\n this.exec(plugin)\n return this\n }\n\n infer(): this {\n if (this.format) {\n return this\n }\n for (const plugin of BuiltInFormats) {\n try {\n const result = plugin.check(this.context)\n if (result) {\n this.format = plugin.format\n break\n }\n } catch {\n continue\n }\n }\n return this\n }\n\n parse(): this {\n if (!this.format) {\n throw new Error('no format detected. call .infer() before .parse()')\n }\n\n const parser = BuiltInFormats.find((item) => item.format === this.format)\n if (!parser) {\n throw new Error(`parser plugin not found: \"${this.format}\"`)\n }\n\n this.done = false\n\n try {\n parser.exec(this.context)\n } catch (e: any) {\n console.warn(`plugin call failed id=${parser.id} err=${e?.message}`)\n }\n\n this.context.finalizeAnnotation()\n\n return this\n }\n\n final(): ParserPipelineResult {\n if (!this.done) {\n this.context.cleanWord()\n this.context.finalizeAnnotation()\n this.context.syncLineTimeWithWord()\n this.context.sort()\n this.context.calcAgentIndex()\n this.context.syncLineTimeWithBackground()\n this.done = true\n }\n\n return {\n format: this.format,\n result: this.context.result,\n }\n }\n}\n\nexport const createParserPipeline = (input: ParserPipelineInput) => {\n return new ParserPipeline(input)\n}\n"],"names":["BuiltInFormats","Format.Lrc","Format.Ttml","Agent","client","Transform.Agent","options","Background","Transform.Background","Pure","Transform.Pure","Interlude","Transform.Interlude","Space","Transform.Space","Stress","Transform.Stress","Language","Transform.Language","ParserPipeline","input","init","Lyric","ParserContext","plugin","parser","item","createParserPipeline"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "music-lyric-kit",
3
- "version": "0.12.1",
3
+ "version": "0.14.0",
4
4
  "author": "folltoshe",
5
5
  "type": "module",
6
6
  "description": "Music Lyric Kit",
@@ -34,17 +34,18 @@
34
34
  "dist"
35
35
  ],
36
36
  "dependencies": {
37
- "@music-lyric-kit/core": "0.12.1",
38
- "@music-lyric-kit/lyric": "0.12.1",
39
- "@music-lyric-kit/utils": "0.12.1",
40
- "@music-lyric-kit/plugin-format-ttml": "0.12.1",
41
- "@music-lyric-kit/plugin-format-lrc": "0.12.1",
42
- "@music-lyric-kit/plugin-transform-interlude": "0.12.1",
43
- "@music-lyric-kit/plugin-transform-background": "0.12.1",
44
- "@music-lyric-kit/plugin-transform-space": "0.12.1",
45
- "@music-lyric-kit/plugin-transform-agent": "0.12.1",
46
- "@music-lyric-kit/plugin-transform-pure": "0.12.1",
47
- "@music-lyric-kit/plugin-transform-stress": "0.12.1"
37
+ "@music-lyric-kit/core": "0.14.0",
38
+ "@music-lyric-kit/lyric": "0.14.0",
39
+ "@music-lyric-kit/utils": "0.14.0",
40
+ "@music-lyric-kit/plugin-format-ttml": "0.14.0",
41
+ "@music-lyric-kit/plugin-format-lrc": "0.14.0",
42
+ "@music-lyric-kit/plugin-transform-interlude": "0.14.0",
43
+ "@music-lyric-kit/plugin-transform-background": "0.14.0",
44
+ "@music-lyric-kit/plugin-transform-space": "0.14.0",
45
+ "@music-lyric-kit/plugin-transform-agent": "0.14.0",
46
+ "@music-lyric-kit/plugin-transform-pure": "0.14.0",
47
+ "@music-lyric-kit/plugin-transform-stress": "0.14.0",
48
+ "@music-lyric-kit/plugin-transform-language": "0.14.0"
48
49
  },
49
50
  "scripts": {
50
51
  "build": "vite build"