{"remainingRequest":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js!/home/camus/work/lotus/node_modules/ts-loader/index.js??ref--15-2!/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/pitchContext.ts","dependencies":[{"path":"/home/camus/work/lotus/inc/pitchContext.ts","mtime":1732184473663},{"path":"/home/camus/work/lotus/node_modules/cache-loader/dist/cjs.js","mtime":1719800821084},{"path":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js","mtime":1727163989637},{"path":"/home/camus/work/lotus/node_modules/ts-loader/index.js","mtime":1726221607070},{"path":"/home/camus/work/lotus/node_modules/eslint-loader/index.js","mtime":1719800837044}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHNoYTEgZnJvbSAic2hhMSI7CmltcG9ydCBEaWN0QXJyYXkgZnJvbSAiLi9EaWN0QXJyYXkiOwpjb25zdCBHUk9VUF9OX1RPX1BJVENIID0gWzAsIDIsIDQsIDUsIDcsIDksIDExXTsKY29uc3QgTUlERExFX0MgPSA2MDsKY29uc3QgbW9kNyA9IHggPT4gewogIGxldCB5ID0geCAlIDc7CiAgd2hpbGUgKHkgPCAwKSB5ICs9IDc7CiAgcmV0dXJuIHk7Cn07CmNvbnN0IG1vZDEyID0geCA9PiB7CiAgbGV0IHkgPSB4ICUgMTI7CiAgd2hpbGUgKHkgPCAwKSB5ICs9IDEyOwogIHJldHVybiB5Owp9Owo7CmNvbnN0IHN0cmluZ2lmeU51bWJlciA9IHggPT4gTnVtYmVyLmlzRmluaXRlKHgpID8geCA6IHgudG9TdHJpbmcoKTsKY29uc3QgUEhPTkVUUyA9ICJDREVGR0FCIjsKY29uc3QgQUxURVJfTkFNRVMgPSB7CiAgWy0yXTogIlx1MjY2RFx1MjY2RCIsCiAgWy0xXTogIlx1MjY2RCIsCiAgWzBdOiAiXHUyNjZFIiwKICBbMV06ICJcdTI2NkYiLAogIFsyXTogIlx1RDgzNFx1REQyQSIKfTsKLyoKICAgIENvb3JkaW5hdGVzOgoKICAgICAgICBub3RlOgogICAgICAgICAgICB6ZXJvOiB0aGUgbWlkZGxlIEMgbGluZSAobWF5YmUgYWx0ZXJlZCkKICAgICAgICAgICAgcG9zaXRpdmU6IGhpZ2ggKHJpZ2h0IG9uIHBpYW5vIGtleWJvYXJkKQogICAgICAgICAgICB1bml0OiBhIHN0ZXAgaW4gc2NhbGVzIG9mIHRoZSBjdXJyZW50IHN0YWZmIGtleQoKICAgICAgICBzdGFmZiBZOgogICAgICAgICAgICB6ZXJvOiB0aGUgdGhpcmQgKG1pZGRsZSkgbGluZSBhbW9uZyA1IHN0YWZmIGxpbmVzCiAgICAgICAgICAgIHBvc2l0aXZlOiBkb3duCiAgICAgICAgICAgIHVuaXQ6IGEgaW50ZXJ2YWwgYmV0d2VlbiAyIG5laWdoYm9yIHN0YWZmIGxpbmVzCiovCmNsYXNzIFBpdGNoQ29uZmlnIHsKICBjb25zdHJ1Y3RvcigpIHsKICAgIHRoaXMuY2xlZiA9IC0zOwogICAgdGhpcy5rZXlBbHRlcnMgPSBuZXcgRGljdEFycmF5KCk7CiAgICB0aGlzLm9jdGF2ZVNoaWZ0ID0gMDsKICAgIHRoaXMuYWx0ZXJzID0gbmV3IERpY3RBcnJheSgpOwogIH0KICBnZXQga2V5U2lnbmF0dXJlKCkgewogICAgcmV0dXJuIHRoaXMua2V5QWx0ZXJzLmZpbHRlcihhID0+IE51bWJlci5pc0ludGVnZXIoYSkpLnJlZHVjZSgoc3VtLCBhKSA9PiBzdW0gKyBhLCAwKTsKICB9CiAgbm90ZVRvWShub3RlKSB7CiAgICByZXR1cm4gLW5vdGUgLyAyIC0gdGhpcy5jbGVmIC0gdGhpcy5vY3RhdmVTaGlmdCAqIDMuNTsKICB9CiAgcGl0Y2hUb05vdGUocGl0Y2gsIHsKICAgIHByZWZlcnJlZEFsdGVyID0gbnVsbAogIH0gPSB7fSkgewogICAgaWYgKCFwcmVmZXJyZWRBbHRlcikgcHJlZmVycmVkQWx0ZXIgPSB0aGlzLmtleVNpZ25hdHVyZSA8IDAgPyAtMSA6IDE7CiAgICBjb25zdCBncm91cCA9IE1hdGguZmxvb3IoKHBpdGNoIC0gTUlERExFX0MpIC8gMTIpOwogICAgY29uc3QgZ3AgPSBtb2QxMihwaXRjaCk7CiAgICBjb25zdCBhbHRlcmVkR3AgPSBHUk9VUF9OX1RPX1BJVENILmluY2x1ZGVzKGdwKSA/IGdwIDogbW9kMTIoZ3AgLSBwcmVmZXJyZWRBbHRlcik7CiAgICBjb25zdCBnbiA9IEdST1VQX05fVE9fUElUQ0guaW5kZXhPZihhbHRlcmVkR3ApOwogICAgY29uc29sZS5hc3NlcnQoZ24gPj0gMCwgImludmFsaWQgcHJlZmVycmVkQWx0ZXI6IiwgcGl0Y2gsIHByZWZlcnJlZEFsdGVyLCBhbHRlcmVkR3ApOwogICAgY29uc3QgbmF0dXJhbE5vdGUgPSBncm91cCAqIDcgKyBnbjsKICAgIGNvbnN0IGFsdGVyVmFsdWUgPSBncCAtIGFsdGVyZWRHcDsKICAgIGNvbnN0IGtleUFsdGVyVmFsdWUgPSB0aGlzLmtleUFsdGVyc1tnbl0gfHwgMDsKICAgIGNvbnN0IG9uQWNjID0gTnVtYmVyLmlzSW50ZWdlcih0aGlzLmFsdGVyc1tuYXR1cmFsTm90ZV0pOwogICAgY29uc3QgYWx0ZXIgPSBvbkFjYyA/IGFsdGVyVmFsdWUgOiBhbHRlclZhbHVlID09PSBrZXlBbHRlclZhbHVlID8gbnVsbCA6IGFsdGVyVmFsdWU7CiAgICByZXR1cm4gewogICAgICBub3RlOiBuYXR1cmFsTm90ZSwKICAgICAgYWx0ZXIKICAgIH07CiAgfQogIHBpdGNoVG9ZKHBpdGNoLCB7CiAgICBwcmVmZXJyZWRBbHRlciA9IG51bGwKICB9ID0ge30pIHsKICAgIGNvbnN0IHsKICAgICAgbm90ZSwKICAgICAgYWx0ZXIKICAgIH0gPSB0aGlzLnBpdGNoVG9Ob3RlKHBpdGNoLCB7CiAgICAgIHByZWZlcnJlZEFsdGVyCiAgICB9KTsKICAgIGNvbnN0IHkgPSB0aGlzLm5vdGVUb1kobm90ZSk7CiAgICByZXR1cm4gewogICAgICB5LAogICAgICBhbHRlcgogICAgfTsKICB9CiAgeVRvTm90ZSh5KSB7CiAgICBjb25zb2xlLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHkgKiAyKSwgImludmFsaWQgeToiLCB5KTsKICAgIC8vaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHkgKiAyKSkKICAgIC8vCWRlYnVnZ2VyOwogICAgcmV0dXJuICgteSAtIHRoaXMub2N0YXZlU2hpZnQgKiAzLjUgLSB0aGlzLmNsZWYpICogMjsKICB9CiAgYWx0ZXJPbk5vdGUobm90ZSkgewogICAgaWYgKE51bWJlci5pc0ludGVnZXIodGhpcy5hbHRlcnNbbm90ZV0pKSByZXR1cm4gdGhpcy5hbHRlcnNbbm90ZV07CiAgICBjb25zdCBnbiA9IG1vZDcobm90ZSk7CiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih0aGlzLmtleUFsdGVyc1tnbl0pKSByZXR1cm4gdGhpcy5rZXlBbHRlcnNbZ25dOwogICAgcmV0dXJuIDA7CiAgfQogIG5vdGVUb1BpdGNoKG5vdGUpIHsKICAgIGNvbnN0IGdyb3VwID0gTWF0aC5mbG9vcihub3RlIC8gNyk7CiAgICBjb25zdCBnbiA9IG1vZDcobm90ZSk7CiAgICBjb25zdCBwaXRjaCA9IE1JRERMRV9DICsgZ3JvdXAgKiAxMiArIEdST1VQX05fVE9fUElUQ0hbZ25dICsgdGhpcy5hbHRlck9uTm90ZShub3RlKTsKICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHBpdGNoKSkgewogICAgICBjb25zb2xlLndhcm4oImludmFsaWQgcGl0Y2ggdmFsdWU6IiwgcGl0Y2gsIG5vdGUsIGdyb3VwLCBnbik7CiAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIHJldHVybiBwaXRjaDsKICB9CiAgeVRvUGl0Y2goeSkgewogICAgcmV0dXJuIHRoaXMubm90ZVRvUGl0Y2godGhpcy55VG9Ob3RlKHkpKTsKICB9CiAgeVRvUGl0Y2hOYW1lKHkpIHsKICAgIGNvbnN0IG5vdGUgPSB0aGlzLnlUb05vdGUoeSk7CiAgICBjb25zdCBncm91cCA9IE1hdGguZmxvb3Iobm90ZSAvIDcpOwogICAgY29uc3QgZ24gPSBtb2Q3KG5vdGUpOwogICAgbGV0IGFsdGVyID0gdGhpcy5hbHRlck9uTm90ZShub3RlKTsKICAgIGlmICghYWx0ZXIgJiYgIU51bWJlci5pc0ludGVnZXIodGhpcy5hbHRlcnNbbm90ZV0pKSBhbHRlciA9IG51bGw7CiAgICByZXR1cm4gYCR7QUxURVJfTkFNRVNbYWx0ZXJdID8gQUxURVJfTkFNRVNbYWx0ZXJdIDogIiJ9JHtQSE9ORVRTW2duXX0ke2dyb3VwICsgNH1gOwogIH0KfQo7CmNsYXNzIFBpdGNoQ29udGV4dCBleHRlbmRzIFBpdGNoQ29uZmlnIHsKICBjb25zdHJ1Y3RvcihkYXRhKSB7CiAgICBzdXBlcigpOwogICAgLy9jb25zb2xlLmFzc2VydChkYXRhLmtleUFsdGVycyBpbnN0YW5jZW9mIERpY3RBcnJheSwgInVuZXhwZWN0ZWQga2V5QWx0ZXJzOiIsIGRhdGEpOwogICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTsKICB9CiAgdG9KU09OKCkgewogICAgcmV0dXJuIHsKICAgICAgX19wcm90b3R5cGU6ICJQaXRjaENvbnRleHQiLAogICAgICBjbGVmOiB0aGlzLmNsZWYsCiAgICAgIGtleUFsdGVyczogbmV3IERpY3RBcnJheSh0aGlzLmtleUFsdGVycyksCiAgICAgIG9jdGF2ZVNoaWZ0OiB0aGlzLm9jdGF2ZVNoaWZ0LAogICAgICBhbHRlcnM6IG5ldyBEaWN0QXJyYXkodGhpcy5hbHRlcnMpCiAgICB9OwogIH0KICBnZXQgaGFzaCgpIHsKICAgIHJldHVybiBzaGExKEpTT04uc3RyaW5naWZ5KHRoaXMpKTsKICB9Cn0KOwo7CmNsYXNzIFBpdGNoQ29udGV4dFRhYmxlIHsKICBjb25zdHJ1Y3Rvcih7CiAgICBpdGVtcwogIH0pIHsKICAgIHRoaXMuaXRlbXMgPSBpdGVtcy5tYXAoUGl0Y2hDb250ZXh0VGFibGUuaXRlbUZyb21KU09OKTsKICB9CiAgc3RhdGljIGNyZWF0ZUZyb21Ob3RhdGlvbihjb250ZXh0cywgbm90ZXMsIHRyYWNrKSB7CiAgICBjb25zdCBpdGVtcyA9IFtdOwogICAgbGV0IGluZGV4ID0gLTE7CiAgICBjb25zdCB0cmFja05vdGVzID0gbm90ZXMuZmlsdGVyKG5vdGUgPT4gbm90ZS5zdGFmZlRyYWNrID09PSB0cmFjayk7CiAgICBmb3IgKGNvbnN0IG5vdGUgb2YgdHJhY2tOb3RlcykgewogICAgICB3aGlsZSAobm90ZS5jb250ZXh0SW5kZXggPiBpbmRleCkgewogICAgICAgICsraW5kZXg7CiAgICAgICAgY29uc3QgY29udGV4dCA9IGNvbnRleHRzW2luZGV4XTsKICAgICAgICBjb25zb2xlLmFzc2VydCghIWNvbnRleHQsICJpbnZhbGlkIGNvbnRleHRJbmRleDoiLCBpbmRleCwgbm90ZS5jb250ZXh0SW5kZXgsIGNvbnRleHRzLmxlbmd0aCk7CiAgICAgICAgaXRlbXMucHVzaCh7CiAgICAgICAgICB0aWNrOiBub3RlLnN0YXJ0VGljaywKICAgICAgICAgIGNvbnRleHQKICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgLy8gYXNzaWduIGVuZCB0aWNrcwogICAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaSkgPT4gaXRlbS5lbmRUaWNrID0gaSArIDEgPCBpdGVtcy5sZW5ndGggPyBpdGVtc1tpICsgMV0udGljayA6IEluZmluaXR5KTsKICAgIC8vIHN0YXJ0IGZyb20gMAogICAgaWYgKGl0ZW1zWzBdKSBpdGVtc1swXS50aWNrID0gMDsKICAgIHJldHVybiBuZXcgUGl0Y2hDb250ZXh0VGFibGUoewogICAgICBpdGVtcwogICAgfSk7CiAgfQogIHN0YXRpYyBjcmVhdGVQaXRjaENvbnRleHRHcm91cChjb250ZXh0R3JvdXAsIG1pZGlOb3RhdGlvbikgewogICAgcmV0dXJuIGNvbnRleHRHcm91cC5tYXAoKGNvbnRleHRzLCB0cmFjaykgPT4gUGl0Y2hDb250ZXh0VGFibGUuY3JlYXRlRnJvbU5vdGF0aW9uKGNvbnRleHRzLCBtaWRpTm90YXRpb24ubm90ZXMsIHRyYWNrKSk7CiAgfQogIC8vIHdvcmthcm91bmQgJ0luZmluaXR5JyBKU09OIHJlcHJlc2VudGF0aW9uIGlzc3VlLgogIHN0YXRpYyBpdGVtVG9KU09OKGl0ZW0pIHsKICAgIHJldHVybiB7CiAgICAgIC4uLml0ZW0sCiAgICAgIGVuZFRpY2s6IHN0cmluZ2lmeU51bWJlcihpdGVtLmVuZFRpY2spCiAgICB9OwogIH0KICBzdGF0aWMgaXRlbUZyb21KU09OKGl0ZW0pIHsKICAgIHJldHVybiB7CiAgICAgIC4uLml0ZW0sCiAgICAgIGVuZFRpY2s6IE51bWJlcihpdGVtLmVuZFRpY2spCiAgICB9OwogIH0KICB0b0pTT04oKSB7CiAgICByZXR1cm4gewogICAgICBfX3Byb3RvdHlwZTogIlBpdGNoQ29udGV4dFRhYmxlIiwKICAgICAgaXRlbXM6IHRoaXMuaXRlbXMubWFwKFBpdGNoQ29udGV4dFRhYmxlLml0ZW1Ub0pTT04pCiAgICB9OwogIH0KICBsb29rdXAodGljaykgewogICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZChpdGVtID0+IHRpY2sgPj0gaXRlbS50aWNrICYmIHRpY2sgPCBpdGVtLmVuZFRpY2spOwogICAgcmV0dXJuIGl0ZW0gJiYgaXRlbS5jb250ZXh0OwogIH0KfQo7CmNsYXNzIE5vdGF0aW9uVHJhY2sgewogIGNvbnN0cnVjdG9yKCkgewogICAgdGhpcy5lbmRUaW1lID0gMDsKICAgIHRoaXMubm90ZXMgPSBbXTsKICAgIHRoaXMuY29udGV4dHMgPSBbXTsKICB9CiAgZ2V0IGxhc3RQaXRjaENvbnRleHQoKSB7CiAgICBpZiAodGhpcy5jb250ZXh0cy5sZW5ndGgpIHJldHVybiB0aGlzLmNvbnRleHRzW3RoaXMuY29udGV4dHMubGVuZ3RoIC0gMV07CiAgICByZXR1cm4gbnVsbDsKICB9CiAgYXBwZW5kTm90ZSh0aW1lLCBkYXRhKSB7CiAgICB0aGlzLm5vdGVzLnB1c2goewogICAgICB0aW1lOiB0aGlzLmVuZFRpbWUgKyB0aW1lLAogICAgICAuLi5kYXRhCiAgICB9KTsKICB9Cn0KOwpjbGFzcyBTdGFmZkNvbnRleHQgZXh0ZW5kcyBQaXRjaENvbmZpZyB7CiAgY29uc3RydWN0b3IoewogICAgbG9nZ2VyCiAgfSkgewogICAgc3VwZXIoKTsKICAgIHRoaXMuYmVhdHNQZXJNZWFzdXJlID0gNDsKICAgIHRoaXMudHJhY2sgPSBuZXcgTm90YXRpb25UcmFjaygpOwogICAgdGhpcy5kaXJ0eSA9IHRydWU7CiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjsKICB9CiAgc25hcHNob3QoewogICAgdGljawogIH0gPSB7fSkgewogICAgaWYgKHRoaXMuZGlydHkpIHsKICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBQaXRjaENvbnRleHQoewogICAgICAgIGNsZWY6IHRoaXMuY2xlZiwKICAgICAgICBrZXlBbHRlcnM6IHRoaXMua2V5QWx0ZXJzLmNsb25lKCksCiAgICAgICAgb2N0YXZlU2hpZnQ6IHRoaXMub2N0YXZlU2hpZnQsCiAgICAgICAgYWx0ZXJzOiB0aGlzLmFsdGVycy5jbG9uZSgpLAogICAgICAgIHRpY2sKICAgICAgfSk7CiAgICAgIGlmICghdGhpcy50cmFjay5sYXN0UGl0Y2hDb250ZXh0IHx8IGNvbnRleHQuaGFzaCAhPT0gdGhpcy50cmFjay5sYXN0UGl0Y2hDb250ZXh0Lmhhc2gpIHRoaXMudHJhY2suY29udGV4dHMucHVzaChjb250ZXh0KTsKICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRoaXMudHJhY2suY29udGV4dHMubGVuZ3RoIC0gMTsKICB9CiAgcmVzZXRLZXlBbHRlcnMoKSB7CiAgICB0aGlzLmxvZ2dlci5hcHBlbmQoInJlc2V0S2V5QWx0ZXJzIiwgT2JqZWN0LmtleXModGhpcy5rZXlBbHRlcnMpLmxlbmd0aCk7CiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5rZXlBbHRlcnMpLmxlbmd0aCkgewogICAgICB0aGlzLmtleUFsdGVycy5jbGVhcigpOwogICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTsKICAgIH0KICB9CiAgcmVzZXRBbHRlcnMoKSB7CiAgICB0aGlzLmxvZ2dlci5hcHBlbmQoInJlc2V0QWx0ZXJzIiwgT2JqZWN0LmtleXModGhpcy5hbHRlcnMpLmxlbmd0aCk7CiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5hbHRlcnMpLmxlbmd0aCkgewogICAgICB0aGlzLmFsdGVycy5jbGVhcigpOwogICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTsKICAgIH0KICB9CiAgc2V0S2V5QWx0ZXIoeSwgdmFsdWUpIHsKICAgIC8vY29uc29sZS5sb2coInNldEtleUFsdGVyOiIsIHksIHZhbHVlKTsKICAgIC8vIHJlc2V0IG9sZCBrZXkgYWx0ZXJzIGluIG9uZSBzdGFmZgogICAgdGhpcy5rZXlBbHRlcnMuZm9yRWFjaCgodiwgbikgPT4gewogICAgICBpZiAodiAqIHZhbHVlIDwgMCkgdGhpcy5rZXlBbHRlcnNbbl0gPSAwOwogICAgfSk7CiAgICBjb25zdCBuID0gbW9kNyh0aGlzLnlUb05vdGUoeSkpOwogICAgdGhpcy5rZXlBbHRlcnNbbl0gPSB2YWx1ZTsKICAgIHRoaXMubG9nZ2VyLmFwcGVuZCgic2V0S2V5QWx0ZXIiLCB7CiAgICAgIG4sCiAgICAgIHZhbHVlCiAgICB9KTsKICAgIHRoaXMuZGlydHkgPSB0cnVlOwogIH0KICBzZXRBbHRlcih5LCB2YWx1ZSkgewogICAgLy9jb25zb2xlLmxvZygic2V0QWx0ZXI6IiwgeSwgdGhpcy55VG9Ob3RlKHkpLCB2YWx1ZSk7CiAgICBjb25zdCBuID0gdGhpcy55VG9Ob3RlKHkpOwogICAgdGhpcy5hbHRlcnNbbl0gPSB2YWx1ZTsKICAgIHRoaXMubG9nZ2VyLmFwcGVuZCgic2V0QWx0ZXIiLCB7CiAgICAgIG4sCiAgICAgIHZhbHVlCiAgICB9KTsKICAgIHRoaXMuZGlydHkgPSB0cnVlOwogIH0KICBzZXRDbGVmKHksIHZhbHVlKSB7CiAgICBjb25zdCBjbGVmID0gLXkgLSB2YWx1ZSAvIDI7CiAgICBpZiAoY2xlZiAhPT0gdGhpcy5jbGVmKSB7CiAgICAgIHRoaXMuY2xlZiA9IGNsZWY7CiAgICAgIHRoaXMuZGlydHkgPSB0cnVlOwogICAgfQogIH0KICBzZXRPY3RhdmVTaGlmdCh2YWx1ZSkgewogICAgaWYgKHRoaXMub2N0YXZlU2hpZnQgIT09IHZhbHVlKSB7CiAgICAgIHRoaXMub2N0YXZlU2hpZnQgPSB2YWx1ZTsKICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7CiAgICAgIHRoaXMubG9nZ2VyLmFwcGVuZCgib2N0YXZlU2hpZnQiLCB2YWx1ZSk7CiAgICB9CiAgfQogIHNldEJlYXRzUGVyTWVhc3VyZSh2YWx1ZSkgewogICAgdGhpcy5iZWF0c1Blck1lYXN1cmUgPSB2YWx1ZTsKICAgIC8vIHRoaXMgd29uJ3QgY2hhbmdlIHBpdGNoIGNvbnRleHQKICB9Cn0KOwpleHBvcnQgeyBQaXRjaENvbnRleHQsIFBpdGNoQ29udGV4dFRhYmxlLCBOb3RhdGlvblRyYWNrLCBTdGFmZkNvbnRleHQgfTs="},{"version":3,"names":["sha1","DictArray","GROUP_N_TO_PITCH","MIDDLE_C","mod7","x","y","mod12","stringifyNumber","Number","isFinite","toString","PHONETS","ALTER_NAMES","PitchConfig","constructor","clef","keyAlters","octaveShift","alters","keySignature","filter","a","isInteger","reduce","sum","noteToY","note","pitchToNote","pitch","preferredAlter","group","Math","floor","gp","alteredGp","includes","gn","indexOf","console","assert","naturalNote","alterValue","keyAlterValue","onAcc","alter","pitchToY","yToNote","alterOnNote","noteToPitch","warn","yToPitch","yToPitchName","PitchContext","data","Object","assign","toJSON","__prototype","hash","JSON","stringify","PitchContextTable","items","map","itemFromJSON","createFromNotation","contexts","notes","track","index","trackNotes","staffTrack","contextIndex","context","length","push","tick","startTick","forEach","item","i","endTick","Infinity","createPitchContextGroup","contextGroup","midiNotation","itemToJSON","lookup","find","NotationTrack","endTime","lastPitchContext","appendNote","time","StaffContext","logger","beatsPerMeasure","dirty","snapshot","clone","resetKeyAlters","append","keys","clear","resetAlters","setKeyAlter","value","v","n","setAlter","setClef","setOctaveShift","setBeatsPerMeasure"],"sources":["/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/pitchContext.ts"],"sourcesContent":["\nimport sha1 from \"sha1\";\n// eslint-disable-next-line\nimport {MusicNotation} from \"@k-l-lambda/music-widgets\";\n\nimport DictArray from \"./DictArray\";\n// eslint-disable-next-line\nimport LogRecorder from \"./logRecorder\";\n\n\n\nconst GROUP_N_TO_PITCH = [0, 2, 4, 5, 7, 9, 11];\nconst MIDDLE_C = 60;\n\n\nconst mod7 = x => {\n\tlet y = x % 7;\n\twhile (y < 0)\n\t\ty += 7;\n\n\treturn y;\n};\n\nconst mod12 = x => {\n\tlet y = x % 12;\n\twhile (y < 0)\n\t\ty += 12;\n\n\treturn y;\n};\n\n\ninterface NotationNote {\n\ttrack?: number;\n\ttime?: number;\n\tstartTick?: number;\n\tpitch: number;\n\tid?: string;\n\ttied?: boolean;\n\tcontextIndex?: number;\n\tstaffTrack?: number;\n\ttype?: number;\n};\n\n\nconst stringifyNumber = x => Number.isFinite(x) ? x : x.toString();\n\n\nconst PHONETS = \"CDEFGAB\";\n\nconst ALTER_NAMES = {\n\t[-2]: \"\\u266D\\u266D\",\n\t[-1]: \"\\u266D\",\n\t[0]: \"\\u266E\",\n\t[1]: \"\\u266F\",\n\t[2]: \"\\uD834\\uDD2A\",\n};\n\n\n/*\n\tCoordinates:\n\n\t\tnote:\n\t\t\tzero: the middle C line (maybe altered)\n\t\t\tpositive: high (right on piano keyboard)\n\t\t\tunit: a step in scales of the current staff key\n\n\t\tstaff Y:\n\t\t\tzero: the third (middle) line among 5 staff lines\n\t\t\tpositive: down\n\t\t\tunit: a interval between 2 neighbor staff lines\n*/\n\n\nclass PitchConfig {\n\tclef: number = -3;\n\tkeyAlters: DictArray = new DictArray();\n\toctaveShift: number = 0;\n\talters: DictArray = new DictArray();\n\n\n\tget keySignature (): number {\n\t\treturn this.keyAlters.filter(a => Number.isInteger(a)).reduce((sum, a) => sum + a, 0);\n\t}\n\n\n\tnoteToY (note: number): number {\n\t\treturn -note / 2 - this.clef - this.octaveShift * 3.5;\n\t}\n\n\n\tpitchToNote (pitch: number, {preferredAlter = null} = {}): {note: number, alter: number} {\n\t\tif (!preferredAlter)\n\t\t\tpreferredAlter = this.keySignature < 0 ? -1 : 1;\n\n\t\tconst group = Math.floor((pitch - MIDDLE_C) / 12);\n\t\tconst gp = mod12(pitch);\n\t\tconst alteredGp = GROUP_N_TO_PITCH.includes(gp) ? gp : mod12(gp - preferredAlter);\n\t\tconst gn = GROUP_N_TO_PITCH.indexOf(alteredGp);\n\t\tconsole.assert(gn >= 0, \"invalid preferredAlter:\", pitch, preferredAlter, alteredGp);\n\n\t\tconst naturalNote = group * 7 + gn;\n\n\t\tconst alterValue = gp - alteredGp;\n\t\tconst keyAlterValue = this.keyAlters[gn] || 0;\n\t\tconst onAcc = Number.isInteger(this.alters[naturalNote]);\n\n\t\tconst alter = onAcc ? alterValue :\n\t\t\t(alterValue === keyAlterValue ? null : alterValue);\n\n\t\treturn {note: naturalNote, alter};\n\t}\n\n\n\tpitchToY (pitch: number, {preferredAlter = null} = {}): {y: number, alter: number} {\n\t\tconst {note, alter} = this.pitchToNote(pitch, {preferredAlter});\n\t\tconst y = this.noteToY(note);\n\n\t\treturn {y, alter};\n\t}\n\n\n\tyToNote (y: number): number {\n\t\tconsole.assert(Number.isInteger(y * 2), \"invalid y:\", y);\n\t\t//if (!Number.isInteger(y * 2))\n\t\t//\tdebugger;\n\n\t\treturn (-y - this.octaveShift * 3.5 - this.clef) * 2;\n\t}\n\n\n\talterOnNote (note: number): number {\n\t\tif (Number.isInteger(this.alters[note]))\n\t\t\treturn this.alters[note];\n\n\t\tconst gn = mod7(note);\n\t\tif (Number.isInteger(this.keyAlters[gn]))\n\t\t\treturn this.keyAlters[gn];\n\n\t\treturn 0;\n\t}\n\n\n\tnoteToPitch (note: number): number {\n\t\tconst group = Math.floor(note / 7);\n\t\tconst gn = mod7(note);\n\n\t\tconst pitch = MIDDLE_C + group * 12 + GROUP_N_TO_PITCH[gn] + this.alterOnNote(note);\n\t\tif (!Number.isFinite(pitch)) {\n\t\t\tconsole.warn(\"invalid pitch value:\", pitch, note, group, gn);\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn pitch;\n\t}\n\n\n\tyToPitch (y: number): number {\n\t\treturn this.noteToPitch(this.yToNote(y));\n\t}\n\n\n\tyToPitchName (y: number): string {\n\t\tconst note = this.yToNote(y);\n\t\tconst group = Math.floor(note / 7);\n\t\tconst gn = mod7(note);\n\n\t\tlet alter = this.alterOnNote(note);\n\t\tif (!alter && !Number.isInteger(this.alters[note]))\n\t\t\talter = null;\n\n\t\treturn `${ALTER_NAMES[alter] ? ALTER_NAMES[alter] : \"\"}${PHONETS[gn]}${group + 4}`;\n\t}\n};\n\n\nclass PitchContext extends PitchConfig {\n\ttick?: number;\n\n\n\tconstructor (data) {\n\t\tsuper();\n\n\t\t//console.assert(data.keyAlters instanceof DictArray, \"unexpected keyAlters:\", data);\n\t\tObject.assign(this, data);\n\t}\n\n\n\ttoJSON () {\n\t\treturn {\n\t\t\t__prototype: \"PitchContext\",\n\t\t\tclef: this.clef,\n\t\t\tkeyAlters: new DictArray(this.keyAlters),\n\t\t\toctaveShift: this.octaveShift,\n\t\t\talters: new DictArray(this.alters),\n\t\t};\n\t}\n\n\n\tget hash () {\n\t\treturn sha1(JSON.stringify(this));\n\t}\n};\n\n\ninterface PitchContextItem {\n\ttick: number;\n\tendTick: number;\n\tcontext: PitchContext;\n};\n\n\nclass PitchContextTable {\n\titems: PitchContextItem[];\n\n\n\tstatic createFromNotation (contexts: PitchContext[], notes: NotationNote[], track: number) {\n\t\tconst items = [];\n\n\t\tlet index = -1;\n\t\tconst trackNotes = notes.filter(note => note.staffTrack === track);\n\t\tfor (const note of trackNotes) {\n\t\t\twhile (note.contextIndex > index) {\n\t\t\t\t++index;\n\t\t\t\tconst context = contexts[index];\n\t\t\t\tconsole.assert(!!context, \"invalid contextIndex:\", index, note.contextIndex, contexts.length);\n\n\t\t\t\titems.push({\n\t\t\t\t\ttick: note.startTick,\n\t\t\t\t\tcontext,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// assign end ticks\n\t\titems.forEach((item, i) => item.endTick = (i + 1 < items.length ? items[i + 1].tick : Infinity));\n\n\t\t// start from 0\n\t\tif (items[0])\n\t\t\titems[0].tick = 0;\n\n\t\treturn new PitchContextTable({items});\n\t}\n\n\n\tstatic createPitchContextGroup (contextGroup: PitchContext[][], midiNotation: MusicNotation.NotationData): PitchContextTable[] {\n\t\treturn contextGroup.map((contexts, track) => PitchContextTable.createFromNotation(contexts, midiNotation.notes, track));\n\t}\n\n\n\t// workaround 'Infinity' JSON representation issue.\n\tstatic itemToJSON (item: PitchContextItem) {\n\t\treturn {\n\t\t\t...item,\n\t\t\tendTick: stringifyNumber(item.endTick),\n\t\t};\n\t}\n\n\n\tstatic itemFromJSON (item: PitchContextItem) {\n\t\treturn {\n\t\t\t...item,\n\t\t\tendTick: Number(item.endTick),\n\t\t};\n\t}\n\n\n\tconstructor ({items}: {items: PitchContextItem[]}) {\n\t\tthis.items = items.map(PitchContextTable.itemFromJSON);\n\t}\n\n\n\ttoJSON () {\n\t\treturn {\n\t\t\t__prototype: \"PitchContextTable\",\n\t\t\titems: this.items.map(PitchContextTable.itemToJSON),\n\t\t};\n\t}\n\n\n\tlookup (tick: number): PitchContext {\n\t\tconst item = this.items.find(item => tick >= item.tick && tick < item.endTick);\n\n\t\treturn item && item.context;\n\t}\n};\n\n\nclass NotationTrack {\n\tendTime = 0;\n\tnotes: NotationNote[] = [];\n\n\tcontexts: PitchContext[] = [];\n\n\n\tget lastPitchContext (): PitchContext {\n\t\tif (this.contexts.length)\n\t\t\treturn this.contexts[this.contexts.length - 1];\n\n\t\treturn null;\n\t}\n\n\n\tappendNote (time: number, data: NotationNote) {\n\t\tthis.notes.push({\n\t\t\ttime: this.endTime + time,\n\t\t\t...data,\n\t\t});\n\t}\n};\n\n\nclass StaffContext extends PitchConfig {\n\tlogger: LogRecorder;\n\n\tbeatsPerMeasure = 4;\n\ttrack = new NotationTrack();\n\n\tdirty = true;\n\n\n\tconstructor ({logger}) {\n\t\tsuper();\n\n\t\tthis.logger = logger;\n\t}\n\n\n\tsnapshot ({tick}: {tick?: number} = {}): number {\n\t\tif (this.dirty) {\n\t\t\tconst context = new PitchContext({\n\t\t\t\tclef: this.clef,\n\t\t\t\tkeyAlters: this.keyAlters.clone(),\n\t\t\t\toctaveShift: this.octaveShift,\n\t\t\t\talters: this.alters.clone(),\n\t\t\t\ttick,\n\t\t\t});\n\t\t\tif (!this.track.lastPitchContext || context.hash !== this.track.lastPitchContext.hash)\n\t\t\t\tthis.track.contexts.push(context);\n\n\t\t\tthis.dirty = false;\n\t\t}\n\n\t\treturn this.track.contexts.length - 1;\n\t}\n\n\n\tresetKeyAlters () {\n\t\tthis.logger.append(\"resetKeyAlters\", Object.keys(this.keyAlters).length);\n\n\t\tif (Object.keys(this.keyAlters).length) {\n\t\t\tthis.keyAlters.clear();\n\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\n\n\tresetAlters () {\n\t\tthis.logger.append(\"resetAlters\", Object.keys(this.alters).length);\n\n\t\tif (Object.keys(this.alters).length) {\n\t\t\tthis.alters.clear();\n\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\n\n\tsetKeyAlter (y, value) {\n\t\t//console.log(\"setKeyAlter:\", y, value);\n\n\t\t// reset old key alters in one staff\n\t\tthis.keyAlters.forEach((v, n) => {\n\t\t\tif (v * value < 0)\n\t\t\t\tthis.keyAlters[n] = 0;\n\t\t});\n\n\t\tconst n = mod7(this.yToNote(y));\n\t\tthis.keyAlters[n] = value;\n\n\t\tthis.logger.append(\"setKeyAlter\", {n, value});\n\n\t\tthis.dirty = true;\n\t}\n\n\n\tsetAlter (y, value) {\n\t\t//console.log(\"setAlter:\", y, this.yToNote(y), value);\n\t\tconst n = this.yToNote(y);\n\t\tthis.alters[n] = value;\n\n\t\tthis.logger.append(\"setAlter\", {n, value});\n\n\t\tthis.dirty = true;\n\t}\n\n\n\tsetClef (y, value) {\n\t\tconst clef = -y - value / 2;\n\t\tif (clef !== this.clef) {\n\t\t\tthis.clef = clef;\n\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\n\n\tsetOctaveShift (value) {\n\t\tif (this.octaveShift !== value) {\n\t\t\tthis.octaveShift = value;\n\n\t\t\tthis.dirty = true;\n\t\n\t\t\tthis.logger.append(\"octaveShift\", value);\n\t\t}\n\t}\n\n\n\tsetBeatsPerMeasure (value) {\n\t\tthis.beatsPerMeasure = value;\n\n\t\t// this won't change pitch context\n\t}\n};\n\n\n\nexport {\n\tPitchContext,\n\tPitchContextTable,\n\tNotationTrack,\n\tStaffContext,\n};\n"],"mappings":"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","ignoreList":[]}]}